@fundamental-ngx/core 0.34.3-rc.3 → 0.34.3-rc.30

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 (468) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/button-bar/button-bar.component.d.ts +5 -1
  7. package/bar/esm2020/button-bar/button-bar.component.mjs +10 -3
  8. package/bar/fesm2015/fundamental-ngx-core-bar.mjs +9 -2
  9. package/bar/fesm2015/fundamental-ngx-core-bar.mjs.map +1 -1
  10. package/bar/fesm2020/fundamental-ngx-core-bar.mjs +9 -2
  11. package/bar/fesm2020/fundamental-ngx-core-bar.mjs.map +1 -1
  12. package/bar/package.json +1 -1
  13. package/breadcrumb/breadcrumb.component.d.ts +3 -1
  14. package/breadcrumb/esm2020/breadcrumb.component.mjs +10 -4
  15. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +9 -3
  16. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  17. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +9 -3
  18. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  19. package/breadcrumb/package.json +1 -1
  20. package/busy-indicator/package.json +1 -1
  21. package/button/package.json +1 -1
  22. package/calendar/package.json +1 -1
  23. package/card/package.json +1 -1
  24. package/carousel/carousel.component.d.ts +20 -3
  25. package/carousel/esm2020/carousel.component.mjs +90 -26
  26. package/carousel/fesm2015/fundamental-ngx-core-carousel.mjs +89 -25
  27. package/carousel/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
  28. package/carousel/fesm2020/fundamental-ngx-core-carousel.mjs +89 -25
  29. package/carousel/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
  30. package/carousel/package.json +1 -1
  31. package/checkbox/checkbox/checkbox.component.d.ts +1 -1
  32. package/checkbox/esm2020/checkbox/checkbox.component.mjs +2 -2
  33. package/checkbox/fesm2015/fundamental-ngx-core-checkbox.mjs +1 -1
  34. package/checkbox/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
  35. package/checkbox/fesm2020/fundamental-ngx-core-checkbox.mjs +1 -1
  36. package/checkbox/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
  37. package/checkbox/package.json +1 -1
  38. package/combobox/combobox.component.d.ts +2 -1
  39. package/combobox/combobox.module.d.ts +11 -10
  40. package/combobox/esm2020/combobox.component.mjs +4 -3
  41. package/combobox/esm2020/combobox.module.mjs +7 -6
  42. package/combobox/esm2020/list-group.pipe.mjs +16 -0
  43. package/combobox/esm2020/public_api.mjs +2 -1
  44. package/combobox/fesm2015/fundamental-ngx-core-combobox.mjs +30 -16
  45. package/combobox/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
  46. package/combobox/fesm2020/fundamental-ngx-core-combobox.mjs +30 -16
  47. package/combobox/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
  48. package/{utils/pipes → combobox}/list-group.pipe.d.ts +2 -1
  49. package/combobox/package.json +1 -1
  50. package/combobox/public_api.d.ts +1 -0
  51. package/date-picker/esm2020/date-picker.component.mjs +3 -3
  52. package/date-picker/fesm2015/fundamental-ngx-core-date-picker.mjs +2 -2
  53. package/date-picker/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
  54. package/date-picker/fesm2020/fundamental-ngx-core-date-picker.mjs +2 -2
  55. package/date-picker/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
  56. package/date-picker/package.json +1 -1
  57. package/datetime/package.json +1 -1
  58. package/datetime-picker/datetime-picker.component.d.ts +7 -1
  59. package/datetime-picker/datetime-picker.module.d.ts +3 -2
  60. package/datetime-picker/esm2020/datetime-picker.component.mjs +21 -10
  61. package/datetime-picker/esm2020/datetime-picker.module.mjs +5 -1
  62. package/datetime-picker/fesm2015/fundamental-ngx-core-datetime-picker.mjs +25 -10
  63. package/datetime-picker/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  64. package/datetime-picker/fesm2020/fundamental-ngx-core-datetime-picker.mjs +25 -10
  65. package/datetime-picker/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  66. package/datetime-picker/package.json +1 -1
  67. package/dialog/base/dialog-content-base.class.d.ts +8 -4
  68. package/dialog/esm2020/base/dialog-content-base.class.mjs +1 -1
  69. package/dialog/esm2020/dialog-default/dialog-default.component.mjs +3 -3
  70. package/dialog/fesm2015/fundamental-ngx-core-dialog.mjs +2 -2
  71. package/dialog/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
  72. package/dialog/fesm2020/fundamental-ngx-core-dialog.mjs +2 -2
  73. package/dialog/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
  74. package/dialog/package.json +1 -1
  75. package/dynamic-page/dynamic-page-content/dynamic-page-content.component.d.ts +8 -3
  76. package/dynamic-page/dynamic-page.component.d.ts +7 -3
  77. package/dynamic-page/esm2020/dynamic-page-content/dynamic-page-content.component.mjs +17 -8
  78. package/dynamic-page/esm2020/dynamic-page.component.mjs +29 -8
  79. package/dynamic-page/fesm2015/fundamental-ngx-core-dynamic-page.mjs +58 -29
  80. package/dynamic-page/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  81. package/dynamic-page/fesm2020/fundamental-ngx-core-dynamic-page.mjs +57 -29
  82. package/dynamic-page/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  83. package/dynamic-page/package.json +1 -1
  84. package/dynamic-side-content/package.json +1 -1
  85. package/esm2020/bar/button-bar/button-bar.component.mjs +10 -3
  86. package/esm2020/breadcrumb/breadcrumb.component.mjs +10 -4
  87. package/esm2020/carousel/carousel.component.mjs +90 -26
  88. package/esm2020/checkbox/checkbox/checkbox.component.mjs +2 -2
  89. package/esm2020/combobox/combobox.component.mjs +4 -3
  90. package/esm2020/combobox/combobox.module.mjs +7 -6
  91. package/esm2020/combobox/list-group.pipe.mjs +16 -0
  92. package/esm2020/combobox/public_api.mjs +2 -1
  93. package/esm2020/date-picker/date-picker.component.mjs +3 -3
  94. package/esm2020/datetime-picker/datetime-picker.component.mjs +21 -10
  95. package/esm2020/datetime-picker/datetime-picker.module.mjs +5 -1
  96. package/esm2020/dialog/base/dialog-content-base.class.mjs +1 -1
  97. package/esm2020/dialog/dialog-default/dialog-default.component.mjs +3 -3
  98. package/esm2020/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +17 -8
  99. package/esm2020/dynamic-page/dynamic-page.component.mjs +29 -8
  100. package/esm2020/facets/facet/facet.component.mjs +3 -3
  101. package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +1 -1
  102. package/esm2020/fixed-card-layout/fixed-card-layout.component.mjs +19 -4
  103. package/esm2020/form/form-label/form-label.component.mjs +14 -6
  104. package/esm2020/form/form-label/form-label.module.mjs +5 -4
  105. package/esm2020/form/form-message/form-message.component.mjs +1 -1
  106. package/esm2020/grid-list/components/grid-list/grid-list-base.component.mjs +1 -1
  107. package/esm2020/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
  108. package/esm2020/grid-list/helpers/parse-layout-pattern.mjs +2 -2
  109. package/esm2020/link/link.component.mjs +6 -3
  110. package/esm2020/menu/services/menu.service.mjs +8 -6
  111. package/esm2020/message-box/message-box-default/message-box-default.component.mjs +3 -3
  112. package/esm2020/message-toast/constants.mjs +3 -0
  113. package/esm2020/message-toast/message-toast-service/message-toast.service.mjs +15 -7
  114. package/esm2020/message-toast/message-toast.module.mjs +43 -3
  115. package/esm2020/message-toast/public_api.mjs +2 -1
  116. package/esm2020/multi-input/multi-input.component.mjs +2 -2
  117. package/esm2020/pagination/pagination.component.mjs +7 -7
  118. package/esm2020/popover/base/base-popover.class.mjs +2 -2
  119. package/esm2020/popover/popover-container/popover-container.directive.mjs +36 -0
  120. package/esm2020/popover/popover-service/popover.service.mjs +12 -3
  121. package/esm2020/popover/popover.module.mjs +10 -5
  122. package/esm2020/popover/public_api.mjs +2 -1
  123. package/esm2020/quick-view/quick-view-group-item-label/quick-view-group-item-label.component.mjs +1 -1
  124. package/esm2020/rating-indicator/components/rating-indicator.component.mjs +4 -7
  125. package/esm2020/select/select.component.mjs +1 -10
  126. package/esm2020/select/select.interface.mjs +1 -1
  127. package/esm2020/shared/interfaces/form-states.mjs +1 -1
  128. package/esm2020/shared/public_api.mjs +2 -1
  129. package/esm2020/shared/utils/form.mjs +5 -0
  130. package/esm2020/slider/slider.component.mjs +3 -3
  131. package/esm2020/text/text.component.mjs +1 -1
  132. package/esm2020/tile/directives/numeric-content.directives.mjs +1 -1
  133. package/esm2020/time/time-column/time-column.component.mjs +2 -2
  134. package/esm2020/time-picker/time-picker.component.mjs +6 -3
  135. package/esm2020/utils/pipes/pipe.module.mjs +4 -33
  136. package/esm2020/utils/public_api.mjs +1 -2
  137. package/facets/esm2020/facet/facet.component.mjs +3 -3
  138. package/facets/fesm2015/fundamental-ngx-core-facets.mjs +2 -2
  139. package/facets/fesm2015/fundamental-ngx-core-facets.mjs.map +1 -1
  140. package/facets/fesm2020/fundamental-ngx-core-facets.mjs +2 -2
  141. package/facets/fesm2020/fundamental-ngx-core-facets.mjs.map +1 -1
  142. package/facets/package.json +1 -1
  143. package/feed-input/package.json +1 -1
  144. package/feed-list-item/esm2020/components/item/feed-list-item.component.mjs +1 -1
  145. package/feed-list-item/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
  146. package/feed-list-item/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
  147. package/feed-list-item/package.json +1 -1
  148. package/fesm2015/fundamental-ngx-core-bar.mjs +9 -2
  149. package/fesm2015/fundamental-ngx-core-bar.mjs.map +1 -1
  150. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +9 -3
  151. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  152. package/fesm2015/fundamental-ngx-core-carousel.mjs +89 -25
  153. package/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
  154. package/fesm2015/fundamental-ngx-core-checkbox.mjs +1 -1
  155. package/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
  156. package/fesm2015/fundamental-ngx-core-combobox.mjs +30 -16
  157. package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
  158. package/fesm2015/fundamental-ngx-core-date-picker.mjs +2 -2
  159. package/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
  160. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +25 -10
  161. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  162. package/fesm2015/fundamental-ngx-core-dialog.mjs +2 -2
  163. package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
  164. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +58 -29
  165. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  166. package/fesm2015/fundamental-ngx-core-facets.mjs +2 -2
  167. package/fesm2015/fundamental-ngx-core-facets.mjs.map +1 -1
  168. package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
  169. package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +19 -3
  170. package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  171. package/fesm2015/fundamental-ngx-core-form.mjs +17 -8
  172. package/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
  173. package/fesm2015/fundamental-ngx-core-grid-list.mjs +3 -3
  174. package/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
  175. package/fesm2015/fundamental-ngx-core-link.mjs +5 -2
  176. package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
  177. package/fesm2015/fundamental-ngx-core-menu.mjs +7 -5
  178. package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
  179. package/fesm2015/fundamental-ngx-core-message-box.mjs +2 -2
  180. package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
  181. package/fesm2015/fundamental-ngx-core-message-toast.mjs +57 -9
  182. package/fesm2015/fundamental-ngx-core-message-toast.mjs.map +1 -1
  183. package/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  184. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  185. package/fesm2015/fundamental-ngx-core-pagination.mjs +6 -6
  186. package/fesm2015/fundamental-ngx-core-pagination.mjs.map +1 -1
  187. package/fesm2015/fundamental-ngx-core-popover.mjs +51 -8
  188. package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
  189. package/fesm2015/fundamental-ngx-core-quick-view.mjs +1 -1
  190. package/fesm2015/fundamental-ngx-core-rating-indicator.mjs +3 -6
  191. package/fesm2015/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  192. package/fesm2015/fundamental-ngx-core-select.mjs +1 -10
  193. package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  194. package/fesm2015/fundamental-ngx-core-shared.mjs +6 -1
  195. package/fesm2015/fundamental-ngx-core-shared.mjs.map +1 -1
  196. package/fesm2015/fundamental-ngx-core-slider.mjs +2 -2
  197. package/fesm2015/fundamental-ngx-core-slider.mjs.map +1 -1
  198. package/fesm2015/fundamental-ngx-core-text.mjs +1 -1
  199. package/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
  200. package/fesm2015/fundamental-ngx-core-time-picker.mjs +5 -2
  201. package/fesm2015/fundamental-ngx-core-time-picker.mjs.map +1 -1
  202. package/fesm2015/fundamental-ngx-core-time.mjs +1 -1
  203. package/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
  204. package/fesm2015/fundamental-ngx-core-utils.mjs +4 -46
  205. package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  206. package/fesm2020/fundamental-ngx-core-bar.mjs +9 -2
  207. package/fesm2020/fundamental-ngx-core-bar.mjs.map +1 -1
  208. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +9 -3
  209. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  210. package/fesm2020/fundamental-ngx-core-carousel.mjs +89 -25
  211. package/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
  212. package/fesm2020/fundamental-ngx-core-checkbox.mjs +1 -1
  213. package/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
  214. package/fesm2020/fundamental-ngx-core-combobox.mjs +30 -16
  215. package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
  216. package/fesm2020/fundamental-ngx-core-date-picker.mjs +2 -2
  217. package/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
  218. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +25 -10
  219. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  220. package/fesm2020/fundamental-ngx-core-dialog.mjs +2 -2
  221. package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
  222. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +57 -29
  223. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  224. package/fesm2020/fundamental-ngx-core-facets.mjs +2 -2
  225. package/fesm2020/fundamental-ngx-core-facets.mjs.map +1 -1
  226. package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
  227. package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +18 -3
  228. package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  229. package/fesm2020/fundamental-ngx-core-form.mjs +17 -8
  230. package/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
  231. package/fesm2020/fundamental-ngx-core-grid-list.mjs +3 -3
  232. package/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
  233. package/fesm2020/fundamental-ngx-core-link.mjs +5 -2
  234. package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
  235. package/fesm2020/fundamental-ngx-core-menu.mjs +7 -5
  236. package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
  237. package/fesm2020/fundamental-ngx-core-message-box.mjs +2 -2
  238. package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
  239. package/fesm2020/fundamental-ngx-core-message-toast.mjs +55 -9
  240. package/fesm2020/fundamental-ngx-core-message-toast.mjs.map +1 -1
  241. package/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  242. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  243. package/fesm2020/fundamental-ngx-core-pagination.mjs +6 -6
  244. package/fesm2020/fundamental-ngx-core-pagination.mjs.map +1 -1
  245. package/fesm2020/fundamental-ngx-core-popover.mjs +50 -8
  246. package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
  247. package/fesm2020/fundamental-ngx-core-quick-view.mjs +1 -1
  248. package/fesm2020/fundamental-ngx-core-rating-indicator.mjs +3 -6
  249. package/fesm2020/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  250. package/fesm2020/fundamental-ngx-core-select.mjs +1 -10
  251. package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  252. package/fesm2020/fundamental-ngx-core-shared.mjs +6 -1
  253. package/fesm2020/fundamental-ngx-core-shared.mjs.map +1 -1
  254. package/fesm2020/fundamental-ngx-core-slider.mjs +2 -2
  255. package/fesm2020/fundamental-ngx-core-slider.mjs.map +1 -1
  256. package/fesm2020/fundamental-ngx-core-text.mjs +1 -1
  257. package/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
  258. package/fesm2020/fundamental-ngx-core-time-picker.mjs +5 -2
  259. package/fesm2020/fundamental-ngx-core-time-picker.mjs.map +1 -1
  260. package/fesm2020/fundamental-ngx-core-time.mjs +1 -1
  261. package/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
  262. package/fesm2020/fundamental-ngx-core-utils.mjs +4 -46
  263. package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  264. package/file-uploader/package.json +1 -1
  265. package/fixed-card-layout/esm2020/fixed-card-layout.component.mjs +19 -4
  266. package/fixed-card-layout/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +19 -3
  267. package/fixed-card-layout/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  268. package/fixed-card-layout/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +18 -3
  269. package/fixed-card-layout/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  270. package/fixed-card-layout/fixed-card-layout.component.d.ts +4 -2
  271. package/fixed-card-layout/package.json +1 -1
  272. package/flexible-column-layout/package.json +1 -1
  273. package/form/esm2020/form-label/form-label.component.mjs +14 -6
  274. package/form/esm2020/form-label/form-label.module.mjs +5 -4
  275. package/form/esm2020/form-message/form-message.component.mjs +1 -1
  276. package/form/fesm2015/fundamental-ngx-core-form.mjs +17 -8
  277. package/form/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
  278. package/form/fesm2020/fundamental-ngx-core-form.mjs +17 -8
  279. package/form/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
  280. package/form/form-label/form-label.component.d.ts +3 -1
  281. package/form/form-label/form-label.module.d.ts +2 -1
  282. package/form/form-message/form-message.component.d.ts +5 -3
  283. package/form/package.json +1 -1
  284. package/formatted-text/package.json +1 -1
  285. package/grid-list/components/grid-list/grid-list-base.component.d.ts +1 -1
  286. package/grid-list/components/grid-list-item/grid-list-item.component.d.ts +2 -2
  287. package/grid-list/esm2020/components/grid-list/grid-list-base.component.mjs +1 -1
  288. package/grid-list/esm2020/components/grid-list-item/grid-list-item.component.mjs +3 -3
  289. package/grid-list/esm2020/helpers/parse-layout-pattern.mjs +2 -2
  290. package/grid-list/fesm2015/fundamental-ngx-core-grid-list.mjs +3 -3
  291. package/grid-list/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
  292. package/grid-list/fesm2020/fundamental-ngx-core-grid-list.mjs +3 -3
  293. package/grid-list/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
  294. package/grid-list/package.json +1 -1
  295. package/icon/package.json +1 -1
  296. package/illustrated-message/package.json +1 -1
  297. package/infinite-scroll/package.json +1 -1
  298. package/info-label/package.json +1 -1
  299. package/inline-help/package.json +1 -1
  300. package/input-group/package.json +1 -1
  301. package/layout-grid/package.json +1 -1
  302. package/layout-panel/package.json +1 -1
  303. package/link/esm2020/link.component.mjs +6 -3
  304. package/link/fesm2015/fundamental-ngx-core-link.mjs +5 -2
  305. package/link/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
  306. package/link/fesm2020/fundamental-ngx-core-link.mjs +5 -2
  307. package/link/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
  308. package/link/link.component.d.ts +3 -1
  309. package/link/package.json +1 -1
  310. package/list/package.json +1 -1
  311. package/menu/esm2020/services/menu.service.mjs +8 -6
  312. package/menu/fesm2015/fundamental-ngx-core-menu.mjs +7 -5
  313. package/menu/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
  314. package/menu/fesm2020/fundamental-ngx-core-menu.mjs +7 -5
  315. package/menu/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
  316. package/menu/package.json +1 -1
  317. package/message-box/esm2020/message-box-default/message-box-default.component.mjs +3 -3
  318. package/message-box/fesm2015/fundamental-ngx-core-message-box.mjs +2 -2
  319. package/message-box/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
  320. package/message-box/fesm2020/fundamental-ngx-core-message-box.mjs +2 -2
  321. package/message-box/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
  322. package/message-box/package.json +1 -1
  323. package/message-strip/package.json +1 -1
  324. package/message-toast/constants.d.ts +3 -0
  325. package/message-toast/esm2020/constants.mjs +3 -0
  326. package/message-toast/esm2020/message-toast-service/message-toast.service.mjs +15 -7
  327. package/message-toast/esm2020/message-toast.module.mjs +43 -3
  328. package/message-toast/esm2020/public_api.mjs +2 -1
  329. package/message-toast/fesm2015/fundamental-ngx-core-message-toast.mjs +57 -9
  330. package/message-toast/fesm2015/fundamental-ngx-core-message-toast.mjs.map +1 -1
  331. package/message-toast/fesm2020/fundamental-ngx-core-message-toast.mjs +55 -9
  332. package/message-toast/fesm2020/fundamental-ngx-core-message-toast.mjs.map +1 -1
  333. package/message-toast/message-toast-service/message-toast.service.d.ts +2 -1
  334. package/message-toast/message-toast.module.d.ts +14 -0
  335. package/message-toast/package.json +1 -1
  336. package/message-toast/public_api.d.ts +1 -0
  337. package/micro-process-flow/package.json +1 -1
  338. package/mobile-mode/package.json +1 -1
  339. package/multi-input/esm2020/multi-input.component.mjs +2 -2
  340. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  341. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  342. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  343. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  344. package/multi-input/multi-input.component.d.ts +3 -3
  345. package/multi-input/package.json +1 -1
  346. package/nested-list/package.json +1 -1
  347. package/notification/package.json +1 -1
  348. package/object-identifier/package.json +1 -1
  349. package/object-marker/package.json +1 -1
  350. package/object-number/package.json +1 -1
  351. package/object-status/package.json +1 -1
  352. package/package.json +2 -2
  353. package/pagination/esm2020/pagination.component.mjs +7 -7
  354. package/pagination/fesm2015/fundamental-ngx-core-pagination.mjs +6 -6
  355. package/pagination/fesm2015/fundamental-ngx-core-pagination.mjs.map +1 -1
  356. package/pagination/fesm2020/fundamental-ngx-core-pagination.mjs +6 -6
  357. package/pagination/fesm2020/fundamental-ngx-core-pagination.mjs.map +1 -1
  358. package/pagination/package.json +1 -1
  359. package/pagination/pagination.component.d.ts +4 -4
  360. package/panel/package.json +1 -1
  361. package/popover/base/base-popover.class.d.ts +1 -1
  362. package/popover/esm2020/base/base-popover.class.mjs +2 -2
  363. package/popover/esm2020/popover-container/popover-container.directive.mjs +36 -0
  364. package/popover/esm2020/popover-service/popover.service.mjs +12 -3
  365. package/popover/esm2020/popover.module.mjs +10 -5
  366. package/popover/esm2020/public_api.mjs +2 -1
  367. package/popover/fesm2015/fundamental-ngx-core-popover.mjs +51 -8
  368. package/popover/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
  369. package/popover/fesm2020/fundamental-ngx-core-popover.mjs +50 -8
  370. package/popover/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
  371. package/popover/package.json +1 -1
  372. package/popover/popover-container/popover-container.directive.d.ts +17 -0
  373. package/popover/popover-service/popover.service.d.ts +4 -2
  374. package/popover/popover.module.d.ts +5 -4
  375. package/popover/public_api.d.ts +1 -0
  376. package/product-switch/package.json +1 -1
  377. package/progress-indicator/package.json +1 -1
  378. package/quick-view/esm2020/quick-view-group-item-label/quick-view-group-item-label.component.mjs +1 -1
  379. package/quick-view/fesm2015/fundamental-ngx-core-quick-view.mjs +1 -1
  380. package/quick-view/fesm2020/fundamental-ngx-core-quick-view.mjs +1 -1
  381. package/quick-view/package.json +1 -1
  382. package/radio/package.json +1 -1
  383. package/rating-indicator/esm2020/components/rating-indicator.component.mjs +4 -7
  384. package/rating-indicator/fesm2015/fundamental-ngx-core-rating-indicator.mjs +3 -6
  385. package/rating-indicator/fesm2015/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  386. package/rating-indicator/fesm2020/fundamental-ngx-core-rating-indicator.mjs +3 -6
  387. package/rating-indicator/fesm2020/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  388. package/rating-indicator/package.json +1 -1
  389. package/resizable-card-layout/package.json +1 -1
  390. package/schematics/ng-add/index.js +1 -1
  391. package/scroll-spy/package.json +1 -1
  392. package/scrollbar/package.json +1 -1
  393. package/segmented-button/package.json +1 -1
  394. package/select/esm2020/select.component.mjs +1 -10
  395. package/select/esm2020/select.interface.mjs +1 -1
  396. package/select/fesm2015/fundamental-ngx-core-select.mjs +1 -10
  397. package/select/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  398. package/select/fesm2020/fundamental-ngx-core-select.mjs +1 -10
  399. package/select/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  400. package/select/package.json +1 -1
  401. package/select/select.component.d.ts +5 -11
  402. package/select/select.interface.d.ts +1 -2
  403. package/shared/esm2020/interfaces/form-states.mjs +1 -1
  404. package/shared/esm2020/public_api.mjs +2 -1
  405. package/shared/esm2020/utils/form.mjs +5 -0
  406. package/shared/fesm2015/fundamental-ngx-core-shared.mjs +6 -1
  407. package/shared/fesm2015/fundamental-ngx-core-shared.mjs.map +1 -1
  408. package/shared/fesm2020/fundamental-ngx-core-shared.mjs +6 -1
  409. package/shared/fesm2020/fundamental-ngx-core-shared.mjs.map +1 -1
  410. package/shared/interfaces/form-states.d.ts +1 -1
  411. package/shared/package.json +1 -1
  412. package/shared/public_api.d.ts +1 -0
  413. package/shared/utils/form.d.ts +2 -0
  414. package/shellbar/package.json +1 -1
  415. package/side-navigation/package.json +1 -1
  416. package/slider/esm2020/slider.component.mjs +3 -3
  417. package/slider/fesm2015/fundamental-ngx-core-slider.mjs +2 -2
  418. package/slider/fesm2015/fundamental-ngx-core-slider.mjs.map +1 -1
  419. package/slider/fesm2020/fundamental-ngx-core-slider.mjs +2 -2
  420. package/slider/fesm2020/fundamental-ngx-core-slider.mjs.map +1 -1
  421. package/slider/package.json +1 -1
  422. package/split-button/package.json +1 -1
  423. package/splitter/package.json +1 -1
  424. package/status-indicator/package.json +1 -1
  425. package/step-input/package.json +1 -1
  426. package/switch/package.json +1 -1
  427. package/table/package.json +1 -1
  428. package/tabs/package.json +1 -1
  429. package/text/esm2020/text.component.mjs +1 -1
  430. package/text/fesm2015/fundamental-ngx-core-text.mjs +1 -1
  431. package/text/fesm2020/fundamental-ngx-core-text.mjs +1 -1
  432. package/text/package.json +1 -1
  433. package/tile/directives/numeric-content.directives.d.ts +5 -5
  434. package/tile/esm2020/directives/numeric-content.directives.mjs +1 -1
  435. package/tile/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
  436. package/tile/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
  437. package/tile/package.json +1 -1
  438. package/time/esm2020/time-column/time-column.component.mjs +2 -2
  439. package/time/fesm2015/fundamental-ngx-core-time.mjs +1 -1
  440. package/time/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
  441. package/time/fesm2020/fundamental-ngx-core-time.mjs +1 -1
  442. package/time/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
  443. package/time/package.json +1 -1
  444. package/time-picker/esm2020/time-picker.component.mjs +6 -3
  445. package/time-picker/fesm2015/fundamental-ngx-core-time-picker.mjs +5 -2
  446. package/time-picker/fesm2015/fundamental-ngx-core-time-picker.mjs.map +1 -1
  447. package/time-picker/fesm2020/fundamental-ngx-core-time-picker.mjs +5 -2
  448. package/time-picker/fesm2020/fundamental-ngx-core-time-picker.mjs.map +1 -1
  449. package/time-picker/package.json +1 -1
  450. package/timeline/package.json +1 -1
  451. package/title/package.json +1 -1
  452. package/token/package.json +1 -1
  453. package/toolbar/package.json +1 -1
  454. package/tree/package.json +1 -1
  455. package/upload-collection/package.json +1 -1
  456. package/utils/esm2020/pipes/pipe.module.mjs +4 -33
  457. package/utils/esm2020/public_api.mjs +1 -2
  458. package/utils/fesm2015/fundamental-ngx-core-utils.mjs +4 -46
  459. package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  460. package/utils/fesm2020/fundamental-ngx-core-utils.mjs +4 -46
  461. package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  462. package/utils/package.json +1 -1
  463. package/utils/pipes/pipe.module.d.ts +4 -5
  464. package/utils/public_api.d.ts +0 -1
  465. package/vertical-navigation/package.json +1 -1
  466. package/wizard/package.json +1 -1
  467. package/esm2020/utils/pipes/list-group.pipe.mjs +0 -16
  468. package/utils/esm2020/pipes/list-group.pipe.mjs +0 -16
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-bar",
3
- "version": "0.34.3-rc.3",
3
+ "version": "0.34.3-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-sheet",
3
- "version": "0.34.3-rc.3",
3
+ "version": "0.34.3-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/alert",
3
- "version": "0.34.3-rc.3",
3
+ "version": "0.34.3-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar",
3
- "version": "0.34.3-rc.3",
3
+ "version": "0.34.3-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar-group",
3
- "version": "0.34.3-rc.3",
3
+ "version": "0.34.3-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -21,8 +21,12 @@ export declare class ButtonBarComponent extends BaseButton implements OnInit, On
21
21
  ariaLabel: string;
22
22
  /** the aria-labelledby ids to be associated with this element */
23
23
  ariaLabelledby: string;
24
+ /** @hidden */
25
+ private readonly _defaultId;
24
26
  /** id for this element */
25
- id: string;
27
+ get id(): string;
28
+ set id(value: string | null | undefined);
29
+ _id: string | null | undefined;
26
30
  /** @hidden */
27
31
  _barElement: boolean;
28
32
  get pointerEvents(): string;
@@ -19,13 +19,20 @@ export class ButtonBarComponent extends BaseButton {
19
19
  * Default value is set to 'transparent'
20
20
  */
21
21
  this.fdType = 'transparent';
22
- /** id for this element */
23
- this.id = `fd-button-bar-id-${randomButtonBarId++}`;
22
+ /** @hidden */
23
+ this._defaultId = `fd-button-bar-id-${randomButtonBarId++}`;
24
24
  /** @hidden */
25
25
  this._barElement = true;
26
26
  /** @hidden */
27
27
  this._subscriptions = new Subscription();
28
28
  }
29
+ /** id for this element */
30
+ get id() {
31
+ return this._id || this._defaultId;
32
+ }
33
+ set id(value) {
34
+ this._id = value;
35
+ }
29
36
  get pointerEvents() {
30
37
  return this._disabled ? 'none' : 'auto';
31
38
  }
@@ -114,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
114
121
  type: ViewChild,
115
122
  args: [ButtonComponent]
116
123
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9iYXIvYnV0dG9uLWJhci9idXR0b24tYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBRXBFLElBQUksaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBc0IxQixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBVTtJQWlEOUMsWUFBZ0Msc0JBQTZDLEVBQVUsTUFBeUI7UUFDNUcsS0FBSyxFQUFFLENBQUM7UUFEb0IsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBaERoSCx3RUFBd0U7UUFHeEUsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQjs7O1dBR0c7UUFFSCxXQUFNLEdBQWUsYUFBYSxDQUFDO1FBa0JuQywwQkFBMEI7UUFFMUIsT0FBRSxHQUFHLG9CQUFvQixpQkFBaUIsRUFBRSxFQUFFLENBQUM7UUFFL0MsY0FBYztRQUVkLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBV25CLGNBQWM7UUFDTixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFJNUMsQ0FBQztJQWRELElBQ0ksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQztJQWFELGNBQWM7SUFDZCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDbEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQ0wsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzsrR0FwRVEsa0JBQWtCO21HQUFsQixrQkFBa0IsaWJBMkNoQixlQUFlLHVFQTlEaEI7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJUOzJGQUVRLGtCQUFrQjtrQkFyQjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7aUJBQ0o7OzBCQWtEZ0IsUUFBUTs0RUE3Q3JCLFNBQVM7c0JBRlIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxtQ0FBbUM7Z0JBUWhELE1BQU07c0JBREwsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sRUFBRTtzQkFERCxLQUFLO2dCQUtOLFdBQVc7c0JBRFYsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBSWhDLGFBQWE7c0JBRGhCLFdBQVc7dUJBQUMsc0JBQXNCO2dCQU9uQyxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQnV0dG9uLCBCdXR0b25UeXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcblxubGV0IHJhbmRvbUJ1dHRvbkJhcklkID0gMDtcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtYnV0dG9uLWJhcicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICBbZ2x5cGhQb3NpdGlvbl09XCJnbHlwaFBvc2l0aW9uXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXG4gICAgICAgICAgICBbY29tcGFjdF09XCJjb21wYWN0XCJcbiAgICAgICAgICAgIFtmZFR5cGVdPVwiZmRUeXBlXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJ0aXRsZVwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgICAgICBbZmRNZW51XT1cImZkTWVudVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQmFyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUJ1dHRvbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogV2hldGhlciB0aGUgZWxlbWVudCBzaG91bGQgdGFrZSB0aGUgd2hvbGUgd2lkdGggb2YgdGhlIGNvbnRhaW5lci4gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtYmFyX19lbGVtZW50LS1mdWxsLXdpZHRoJylcbiAgICBmdWxsV2lkdGggPSBmYWxzZTtcblxuICAgIC8qKiBUaGUgdHlwZSBvZiB0aGUgYnV0dG9uLiBUeXBlcyBpbmNsdWRlOlxuICAgICAqICdzdGFuZGFyZCcgfCAncG9zaXRpdmUnIHwgJ25lZ2F0aXZlJyB8ICdhdHRlbnRpb24nIHwgJ2hhbGYnIHwgJ2dob3N0JyB8ICd0cmFuc3BhcmVudCcgfCAnZW1waGFzaXplZCcgfCAnbWVudScuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBzZXQgdG8gJ3RyYW5zcGFyZW50J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmRUeXBlOiBCdXR0b25UeXBlID0gJ3RyYW5zcGFyZW50JztcblxuICAgIC8qKiBhZGRpbmcgdGl0bGUgdG8gdGhlIGJ1dHRvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgYnV0dG9uIGlzIGNvbXBhY3QuICovXG4gICAgQElucHV0KClcbiAgICBjb21wYWN0PzogYm9vbGVhbjtcblxuICAgIC8qKiBBcmlhIGxhYmVsIGF0dHJpYnV0ZSB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIHRoZSBhcmlhLWxhYmVsbGVkYnkgaWRzIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGVsZW1lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmc7XG5cbiAgICAvKiogaWQgZm9yIHRoaXMgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQgPSBgZmQtYnV0dG9uLWJhci1pZC0ke3JhbmRvbUJ1dHRvbkJhcklkKyt9YDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1iYXJfX2VsZW1lbnQnKVxuICAgIF9iYXJFbGVtZW50ID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUucG9pbnRlci1ldmVudHMnKVxuICAgIGdldCBwb2ludGVyRXZlbnRzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCA/ICdub25lJyA6ICdhdXRvJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQnV0dG9uQ29tcG9uZW50KVxuICAgIF9idXR0b25Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlLCBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb21wYWN0ID09PSB1bmRlZmluZWQgJiYgdGhpcy5fY29udGVudERlbnNpdHlTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UuX2lzQ29tcGFjdERlbnNpdHkuc3Vic2NyaWJlKChpc0NvbXBhY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wYWN0ID0gaXNDb21wYWN0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9iYXIvYnV0dG9uLWJhci9idXR0b24tYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBRXBFLElBQUksaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBc0IxQixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBVTtJQTJEOUMsWUFBZ0Msc0JBQTZDLEVBQVUsTUFBeUI7UUFDNUcsS0FBSyxFQUFFLENBQUM7UUFEb0IsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBMURoSCx3RUFBd0U7UUFHeEUsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQjs7O1dBR0c7UUFFSCxXQUFNLEdBQWUsYUFBYSxDQUFDO1FBa0JuQyxjQUFjO1FBQ0csZUFBVSxHQUFHLG9CQUFvQixpQkFBaUIsRUFBRSxFQUFFLENBQUM7UUFheEUsY0FBYztRQUVkLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBV25CLGNBQWM7UUFDTixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFJNUMsQ0FBQztJQTdCRCwwQkFBMEI7SUFDMUIsSUFDSSxFQUFFO1FBQ0YsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDdkMsQ0FBQztJQUNELElBQUksRUFBRSxDQUFDLEtBQWdDO1FBQ25DLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFRRCxJQUNJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFhRCxjQUFjO0lBQ2QsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzNELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUNMLENBQUM7U0FDTDtJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQzs7K0dBOUVRLGtCQUFrQjttR0FBbEIsa0JBQWtCLGliQXFEaEIsZUFBZSx1RUF4RWhCOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVDsyRkFFUSxrQkFBa0I7a0JBckI5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJUO2lCQUNKOzswQkE0RGdCLFFBQVE7NEVBdkRyQixTQUFTO3NCQUZSLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsbUNBQW1DO2dCQVFoRCxNQUFNO3NCQURMLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLO2dCQVFGLEVBQUU7c0JBREwsS0FBSztnQkFZTixXQUFXO3NCQURWLFdBQVc7dUJBQUMsdUJBQXVCO2dCQUloQyxhQUFhO3NCQURoQixXQUFXO3VCQUFDLHNCQUFzQjtnQkFPbkMsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUJ1dHRvbiwgQnV0dG9uVHlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5cbmxldCByYW5kb21CdXR0b25CYXJJZCA9IDA7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWJ1dHRvbi1iYXInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgW2dseXBoUG9zaXRpb25dPVwiZ2x5cGhQb3NpdGlvblwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxuICAgICAgICAgICAgW2NvbXBhY3RdPVwiY29tcGFjdFwiXG4gICAgICAgICAgICBbZmRUeXBlXT1cImZkVHlwZVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwidGl0bGVcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICAgICAgW2ZkTWVudV09XCJmZE1lbnVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkJhckNvbXBvbmVudCBleHRlbmRzIEJhc2VCdXR0b24gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGVsZW1lbnQgc2hvdWxkIHRha2UgdGhlIHdob2xlIHdpZHRoIG9mIHRoZSBjb250YWluZXIuICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWJhcl9fZWxlbWVudC0tZnVsbC13aWR0aCcpXG4gICAgZnVsbFdpZHRoID0gZmFsc2U7XG5cbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIGJ1dHRvbi4gVHlwZXMgaW5jbHVkZTpcbiAgICAgKiAnc3RhbmRhcmQnIHwgJ3Bvc2l0aXZlJyB8ICduZWdhdGl2ZScgfCAnYXR0ZW50aW9uJyB8ICdoYWxmJyB8ICdnaG9zdCcgfCAndHJhbnNwYXJlbnQnIHwgJ2VtcGhhc2l6ZWQnIHwgJ21lbnUnLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgc2V0IHRvICd0cmFuc3BhcmVudCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZkVHlwZTogQnV0dG9uVHlwZSA9ICd0cmFuc3BhcmVudCc7XG5cbiAgICAvKiogYWRkaW5nIHRpdGxlIHRvIHRoZSBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciBvciBub3QgdGhlIGJ1dHRvbiBpcyBjb21wYWN0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29tcGFjdD86IGJvb2xlYW47XG5cbiAgICAvKiogQXJpYSBsYWJlbCBhdHRyaWJ1dGUgdmFsdWUuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IHN0cmluZztcblxuICAgIC8qKiB0aGUgYXJpYS1sYWJlbGxlZGJ5IGlkcyB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBlbGVtZW50ICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRieTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0SWQgPSBgZmQtYnV0dG9uLWJhci1pZC0ke3JhbmRvbUJ1dHRvbkJhcklkKyt9YDtcblxuICAgIC8qKiBpZCBmb3IgdGhpcyBlbGVtZW50ICovXG4gICAgQElucHV0KClcbiAgICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkIHx8IHRoaXMuX2RlZmF1bHRJZDtcbiAgICB9XG4gICAgc2V0IGlkKHZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2lkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgX2lkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWJhcl9fZWxlbWVudCcpXG4gICAgX2JhckVsZW1lbnQgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyLWV2ZW50cycpXG4gICAgZ2V0IHBvaW50ZXJFdmVudHMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkID8gJ25vbmUnIDogJ2F1dG8nO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChCdXR0b25Db21wb25lbnQpXG4gICAgX2J1dHRvbkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UsIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBhY3QgPT09IHVuZGVmaW5lZCAmJiB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnREZW5zaXR5U2VydmljZS5faXNDb21wYWN0RGVuc2l0eS5zdWJzY3JpYmUoKGlzQ29tcGFjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBhY3QgPSBpc0NvbXBhY3Q7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -200,13 +200,20 @@ class ButtonBarComponent extends BaseButton {
200
200
  * Default value is set to 'transparent'
201
201
  */
202
202
  this.fdType = 'transparent';
203
- /** id for this element */
204
- this.id = `fd-button-bar-id-${randomButtonBarId++}`;
203
+ /** @hidden */
204
+ this._defaultId = `fd-button-bar-id-${randomButtonBarId++}`;
205
205
  /** @hidden */
206
206
  this._barElement = true;
207
207
  /** @hidden */
208
208
  this._subscriptions = new Subscription();
209
209
  }
210
+ /** id for this element */
211
+ get id() {
212
+ return this._id || this._defaultId;
213
+ }
214
+ set id(value) {
215
+ this._id = value;
216
+ }
210
217
  get pointerEvents() {
211
218
  return this._disabled ? 'none' : 'auto';
212
219
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-bar.mjs","sources":["../../../../../libs/core/src/lib/bar/bar.component.ts","../../../../../libs/core/src/lib/bar/bar.component.html","../../../../../libs/core/src/lib/bar/directives/bar-left.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-middle.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-right.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-element.directive.ts","../../../../../libs/core/src/lib/bar/button-bar/button-bar.component.ts","../../../../../libs/core/src/lib/bar/bar.module.ts","../../../../../libs/core/src/lib/bar/fundamental-ngx-core-bar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\n\nexport type SizeType = '' | 's' | 'm_l' | 'xl';\nexport type BarDesignType = 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer';\n\n/**\n * The Bar component is a container that holds titles, buttons and input controls.\n * Its content is distributed in three areas - left, middle and right.\n * The Bar has 2 modes - Desktop (default) and Tablet/Mobile (cozy).\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-bar]',\n templateUrl: './bar.component.html',\n styleUrls: ['./bar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarComponent implements OnChanges, OnInit, CssClassBuilder, OnDestroy {\n /** user's custom classes */\n @Input()\n class: string;\n\n /** Whether the Bar component is used as a header, subheader, header-with-subheader,\n * footer or floating-footer.\n * Types available: 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer' */\n @Input()\n barDesign: BarDesignType;\n\n /** Whether the Bar component is used in Page Layout. */\n @Input()\n inPage: boolean;\n\n /** Whether the Bar component is used in Home Page Layout. */\n @Input()\n inHomePage: boolean;\n\n /** The size of the Page in Page responsive design.\n * Available sizes: 's' | 'm_l' | 'xl'\n */\n @Input()\n size: SizeType = '';\n\n /** Whether to apply cozy mode to the Bar. */\n @Input()\n cozy?: boolean;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(private _elementRef: ElementRef, @Optional() private _contentDensityService: ContentDensityService) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this.cozy === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._contentDensityListener.subscribe((density) => {\n this.cozy = density === 'cozy';\n this.buildComponentCssClass();\n })\n );\n }\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return [\n 'fd-bar',\n this.cozy ? 'fd-bar--cozy' : '',\n this.barDesign ? `fd-bar--${this.barDesign}` : '',\n this.inPage && !this.size ? 'fd-bar--page' : '',\n this.inPage && this.size ? `fd-bar--page-${this.size}` : '',\n this.inHomePage && !this.size ? 'fd-bar--home-page' : '',\n this.inHomePage && this.size ? `fd-bar--home-page-${this.size}` : '',\n this.class\n ];\n }\n\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n","<ng-content select=\"[fd-bar-left]\"></ng-content>\n<ng-content select=\"[fd-bar-middle]\"></ng-content>\n<ng-content select=\"[fd-bar-right]\"></ng-content>\n<ng-content></ng-content>\n","import { Directive } from '@angular/core';\n\n/**\n * The left side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-left]',\n host: {\n class: 'fd-bar__left'\n }\n})\nexport class BarLeftDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The middle section of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-middle]',\n host: {\n class: 'fd-bar__middle'\n }\n})\nexport class BarMiddleDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The right side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-right]',\n host: {\n class: 'fd-bar__right'\n }\n})\nexport class BarRightDirective {}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n/**\n * An element of the Bar.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-bar-element'\n})\nexport class BarElementDirective {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** Whether the element is title. */\n @Input()\n @HostBinding('class.fd-bar__element--title')\n isTitle = false;\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n barElement = true;\n}\n","import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { BaseButton, ButtonType } from '@fundamental-ngx/core/button';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { Subscription } from 'rxjs';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\n\nlet randomButtonBarId = 0;\n@Component({\n selector: 'fd-button-bar',\n template: `\n <button\n fd-button\n [id]=\"id\"\n [type]=\"type\"\n [glyphPosition]=\"glyphPosition\"\n [glyph]=\"glyph\"\n [compact]=\"compact\"\n [fdType]=\"fdType\"\n [label]=\"label\"\n [attr.title]=\"title\"\n [ariaLabel]=\"ariaLabel\"\n [fdMenu]=\"fdMenu\"\n [disabled]=\"disabled\"\n >\n <ng-content></ng-content>\n </button>\n `\n})\nexport class ButtonBarComponent extends BaseButton implements OnInit, OnDestroy {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** The type of the button. Types include:\n * 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu'.\n * Default value is set to 'transparent'\n */\n @Input()\n fdType: ButtonType = 'transparent';\n\n /** adding title to the button */\n @Input()\n title: string;\n\n /** Whether or not the button is compact. */\n @Input()\n compact?: boolean;\n\n /** Aria label attribute value. */\n @Input()\n ariaLabel: string;\n\n /** the aria-labelledby ids to be associated with this element */\n @Input()\n ariaLabelledby: string;\n\n /** id for this element */\n @Input()\n id = `fd-button-bar-id-${randomButtonBarId++}`;\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n _barElement = true;\n\n @HostBinding('style.pointer-events')\n get pointerEvents(): string {\n return this._disabled ? 'none' : 'auto';\n }\n\n /** @hidden */\n @ViewChild(ButtonComponent)\n _buttonComponent: ButtonComponent;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n constructor(@Optional() private _contentDensityService: ContentDensityService, private _cdRef: ChangeDetectorRef) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.compact === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._isCompactDensity.subscribe((isCompact) => {\n this.compact = isCompact;\n this._cdRef.markForCheck();\n })\n );\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BarComponent } from './bar.component';\nimport { BarLeftDirective } from './directives/bar-left.directive';\nimport { BarMiddleDirective } from './directives/bar-middle.directive';\nimport { BarRightDirective } from './directives/bar-right.directive';\nimport { BarElementDirective } from './directives/bar-element.directive';\nimport { ButtonBarComponent } from './button-bar/button-bar.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\n@NgModule({\n declarations: [\n BarComponent,\n BarLeftDirective,\n BarMiddleDirective,\n BarRightDirective,\n BarElementDirective,\n ButtonBarComponent\n ],\n imports: [CommonModule, ButtonModule],\n exports: [\n BarComponent,\n BarLeftDirective,\n BarMiddleDirective,\n BarRightDirective,\n BarElementDirective,\n ButtonBarComponent\n ]\n})\nexport class BarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-bar.mjs","sources":["../../../../../libs/core/src/lib/bar/bar.component.ts","../../../../../libs/core/src/lib/bar/bar.component.html","../../../../../libs/core/src/lib/bar/directives/bar-left.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-middle.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-right.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-element.directive.ts","../../../../../libs/core/src/lib/bar/button-bar/button-bar.component.ts","../../../../../libs/core/src/lib/bar/bar.module.ts","../../../../../libs/core/src/lib/bar/fundamental-ngx-core-bar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\n\nexport type SizeType = '' | 's' | 'm_l' | 'xl';\nexport type BarDesignType = 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer';\n\n/**\n * The Bar component is a container that holds titles, buttons and input controls.\n * Its content is distributed in three areas - left, middle and right.\n * The Bar has 2 modes - Desktop (default) and Tablet/Mobile (cozy).\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-bar]',\n templateUrl: './bar.component.html',\n styleUrls: ['./bar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarComponent implements OnChanges, OnInit, CssClassBuilder, OnDestroy {\n /** user's custom classes */\n @Input()\n class: string;\n\n /** Whether the Bar component is used as a header, subheader, header-with-subheader,\n * footer or floating-footer.\n * Types available: 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer' */\n @Input()\n barDesign: BarDesignType;\n\n /** Whether the Bar component is used in Page Layout. */\n @Input()\n inPage: boolean;\n\n /** Whether the Bar component is used in Home Page Layout. */\n @Input()\n inHomePage: boolean;\n\n /** The size of the Page in Page responsive design.\n * Available sizes: 's' | 'm_l' | 'xl'\n */\n @Input()\n size: SizeType = '';\n\n /** Whether to apply cozy mode to the Bar. */\n @Input()\n cozy?: boolean;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(private _elementRef: ElementRef, @Optional() private _contentDensityService: ContentDensityService) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this.cozy === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._contentDensityListener.subscribe((density) => {\n this.cozy = density === 'cozy';\n this.buildComponentCssClass();\n })\n );\n }\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return [\n 'fd-bar',\n this.cozy ? 'fd-bar--cozy' : '',\n this.barDesign ? `fd-bar--${this.barDesign}` : '',\n this.inPage && !this.size ? 'fd-bar--page' : '',\n this.inPage && this.size ? `fd-bar--page-${this.size}` : '',\n this.inHomePage && !this.size ? 'fd-bar--home-page' : '',\n this.inHomePage && this.size ? `fd-bar--home-page-${this.size}` : '',\n this.class\n ];\n }\n\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n","<ng-content select=\"[fd-bar-left]\"></ng-content>\n<ng-content select=\"[fd-bar-middle]\"></ng-content>\n<ng-content select=\"[fd-bar-right]\"></ng-content>\n<ng-content></ng-content>\n","import { Directive } from '@angular/core';\n\n/**\n * The left side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-left]',\n host: {\n class: 'fd-bar__left'\n }\n})\nexport class BarLeftDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The middle section of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-middle]',\n host: {\n class: 'fd-bar__middle'\n }\n})\nexport class BarMiddleDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The right side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-right]',\n host: {\n class: 'fd-bar__right'\n }\n})\nexport class BarRightDirective {}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n/**\n * An element of the Bar.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-bar-element'\n})\nexport class BarElementDirective {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** Whether the element is title. */\n @Input()\n @HostBinding('class.fd-bar__element--title')\n isTitle = false;\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n barElement = true;\n}\n","import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { BaseButton, ButtonType } from '@fundamental-ngx/core/button';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { Subscription } from 'rxjs';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\n\nlet randomButtonBarId = 0;\n@Component({\n selector: 'fd-button-bar',\n template: `\n <button\n fd-button\n [id]=\"id\"\n [type]=\"type\"\n [glyphPosition]=\"glyphPosition\"\n [glyph]=\"glyph\"\n [compact]=\"compact\"\n [fdType]=\"fdType\"\n [label]=\"label\"\n [attr.title]=\"title\"\n [ariaLabel]=\"ariaLabel\"\n [fdMenu]=\"fdMenu\"\n [disabled]=\"disabled\"\n >\n <ng-content></ng-content>\n </button>\n `\n})\nexport class ButtonBarComponent extends BaseButton implements OnInit, OnDestroy {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** The type of the button. Types include:\n * 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu'.\n * Default value is set to 'transparent'\n */\n @Input()\n fdType: ButtonType = 'transparent';\n\n /** adding title to the button */\n @Input()\n title: string;\n\n /** Whether or not the button is compact. */\n @Input()\n compact?: boolean;\n\n /** Aria label attribute value. */\n @Input()\n ariaLabel: string;\n\n /** the aria-labelledby ids to be associated with this element */\n @Input()\n ariaLabelledby: string;\n\n /** @hidden */\n private readonly _defaultId = `fd-button-bar-id-${randomButtonBarId++}`;\n\n /** id for this element */\n @Input()\n get id(): string {\n return this._id || this._defaultId;\n }\n set id(value: string | null | undefined) {\n this._id = value;\n }\n\n _id: string | null | undefined;\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n _barElement = true;\n\n @HostBinding('style.pointer-events')\n get pointerEvents(): string {\n return this._disabled ? 'none' : 'auto';\n }\n\n /** @hidden */\n @ViewChild(ButtonComponent)\n _buttonComponent: ButtonComponent;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n constructor(@Optional() private _contentDensityService: ContentDensityService, private _cdRef: ChangeDetectorRef) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.compact === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._isCompactDensity.subscribe((isCompact) => {\n this.compact = isCompact;\n this._cdRef.markForCheck();\n })\n );\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BarComponent } from './bar.component';\nimport { BarLeftDirective } from './directives/bar-left.directive';\nimport { BarMiddleDirective } from './directives/bar-middle.directive';\nimport { BarRightDirective } from './directives/bar-right.directive';\nimport { BarElementDirective } from './directives/bar-element.directive';\nimport { ButtonBarComponent } from './button-bar/button-bar.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\n@NgModule({\n declarations: [\n BarComponent,\n BarLeftDirective,\n BarMiddleDirective,\n BarRightDirective,\n BarElementDirective,\n ButtonBarComponent\n ],\n imports: [CommonModule, ButtonModule],\n exports: [\n BarComponent,\n BarLeftDirective,\n BarMiddleDirective,\n BarRightDirective,\n BarElementDirective,\n ButtonBarComponent\n ]\n})\nexport class BarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;AAmBA;;;;;MAaa,YAAY;;IAiCrB,YAAoB,WAAuB,EAAsB,sBAA6C;QAA1F,gBAAW,GAAX,WAAW,CAAY;QAAsB,2BAAsB,GAAtB,sBAAsB,CAAuB;;;;QAV9G,SAAI,GAAa,EAAE,CAAC;;QAOZ,mBAAc,GAAG,IAAI,YAAY,EAAE,CAAC;KAGsE;;IAGlH,QAAQ;QACJ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,sBAAsB,EAAE;YACxD,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,OAAO;gBAClE,IAAI,CAAC,IAAI,GAAG,OAAO,KAAK,MAAM,CAAC;gBAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;aACjC,CAAC,CACL,CAAC;SACL;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,WAAW;QACP,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACrC;;IAGD,WAAW;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;;;;IAOD,sBAAsB;QAClB,OAAO;YACH,QAAQ;YACR,IAAI,CAAC,IAAI,GAAG,cAAc,GAAG,EAAE;YAC/B,IAAI,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YACjD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,cAAc,GAAG,EAAE;YAC/C,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,gBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAC3D,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,mBAAmB,GAAG,EAAE;YACxD,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,GAAG,qBAAqB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YACpE,IAAI,CAAC,KAAK;SACb,CAAC;KACL;IAED,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;yGA9EQ,YAAY;6FAAZ,YAAY,iMChCzB,4LAIA;AD2FI;IALC,aAAa;;;;0DAgBb;2FA1EQ,YAAY;kBARxB,SAAS;+BAEI,UAAU,iBAGL,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;;;8BAmCD,QAAQ;;yBA9BtD,KAAK;sBADJ,KAAK;gBAON,SAAS;sBADR,KAAK;gBAKN,MAAM;sBADL,KAAK;gBAKN,UAAU;sBADT,KAAK;gBAON,IAAI;sBADH,KAAK;gBAKN,IAAI;sBADH,KAAK;;;;;;QAqCN,sBAAsB;;AE7F1B;;;MAUa,gBAAgB;;6GAAhB,gBAAgB;iGAAhB,gBAAgB;2FAAhB,gBAAgB;kBAP5B,SAAS;mBAAC;;oBAEP,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE;wBACF,KAAK,EAAE,cAAc;qBACxB;iBACJ;;;ACTD;;;MAUa,kBAAkB;;+GAAlB,kBAAkB;mGAAlB,kBAAkB;2FAAlB,kBAAkB;kBAP9B,SAAS;mBAAC;;oBAEP,QAAQ,EAAE,iBAAiB;oBAC3B,IAAI,EAAE;wBACF,KAAK,EAAE,gBAAgB;qBAC1B;iBACJ;;;ACTD;;;MAUa,iBAAiB;;8GAAjB,iBAAiB;kGAAjB,iBAAiB;2FAAjB,iBAAiB;kBAP7B,SAAS;mBAAC;;oBAEP,QAAQ,EAAE,gBAAgB;oBAC1B,IAAI,EAAE;wBACF,KAAK,EAAE,eAAe;qBACzB;iBACJ;;;ACTD;;;MAOa,mBAAmB;IAJhC;;QAQI,cAAS,GAAG,KAAK,CAAC;;QAKlB,YAAO,GAAG,KAAK,CAAC;;QAIhB,eAAU,GAAG,IAAI,CAAC;KACrB;;gHAdY,mBAAmB;oGAAnB,mBAAmB;2FAAnB,mBAAmB;kBAJ/B,SAAS;mBAAC;;oBAEP,QAAQ,EAAE,gBAAgB;iBAC7B;8BAKG,SAAS;sBAFR,KAAK;;sBACL,WAAW;uBAAC,mCAAmC;gBAMhD,OAAO;sBAFN,KAAK;;sBACL,WAAW;uBAAC,8BAA8B;gBAK3C,UAAU;sBADT,WAAW;uBAAC,uBAAuB;;;ACNxC,IAAI,iBAAiB,GAAG,CAAC,CAAC;MAsBb,2BAA2B,UAAU;IA2D9C,YAAgC,sBAA6C,EAAU,MAAyB;QAC5G,KAAK,EAAE,CAAC;QADoB,2BAAsB,GAAtB,sBAAsB,CAAuB;QAAU,WAAM,GAAN,MAAM,CAAmB;;QAvDhH,cAAS,GAAG,KAAK,CAAC;;;;;QAOlB,WAAM,GAAe,aAAa,CAAC;;QAmBlB,eAAU,GAAG,oBAAoB,iBAAiB,EAAE,EAAE,CAAC;;QAexE,gBAAW,GAAG,IAAI,CAAC;;QAYX,mBAAc,GAAG,IAAI,YAAY,EAAE,CAAC;KAI3C;;IA5BD,IACI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;KACtC;IACD,IAAI,EAAE,CAAC,KAAgC;QACnC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;KACpB;IAQD,IACI,aAAa;QACb,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;KAC3C;;IAcD,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC3D,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS;gBAC9D,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;aAC9B,CAAC,CACL,CAAC;SACL;KACJ;;IAGD,WAAW;QACP,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACrC;;+GA9EQ,kBAAkB;mGAAlB,kBAAkB,ibAqDhB,eAAe,uEAxEhB;;;;;;;;;;;;;;;;;KAiBT;2FAEQ,kBAAkB;kBArB9B,SAAS;mBAAC;oBACP,QAAQ,EAAE,eAAe;oBACzB,QAAQ,EAAE;;;;;;;;;;;;;;;;;KAiBT;iBACJ;;;8BA4DgB,QAAQ;;yBAvDrB,SAAS;sBAFR,KAAK;;sBACL,WAAW;uBAAC,mCAAmC;gBAQhD,MAAM;sBADL,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,OAAO;sBADN,KAAK;gBAKN,SAAS;sBADR,KAAK;gBAKN,cAAc;sBADb,KAAK;gBAQF,EAAE;sBADL,KAAK;gBAYN,WAAW;sBADV,WAAW;uBAAC,uBAAuB;gBAIhC,aAAa;sBADhB,WAAW;uBAAC,sBAAsB;gBAOnC,gBAAgB;sBADf,SAAS;uBAAC,eAAe;;;MC5DjB,SAAS;;sGAAT,SAAS;uGAAT,SAAS,iBAjBd,YAAY;QACZ,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB,aAEZ,YAAY,EAAE,YAAY,aAEhC,YAAY;QACZ,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB;uGAGb,SAAS,YAVT,CAAC,YAAY,EAAE,YAAY,CAAC;2FAU5B,SAAS;kBAnBrB,QAAQ;mBAAC;oBACN,YAAY,EAAE;wBACV,YAAY;wBACZ,gBAAgB;wBAChB,kBAAkB;wBAClB,iBAAiB;wBACjB,mBAAmB;wBACnB,kBAAkB;qBACrB;oBACD,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;oBACrC,OAAO,EAAE;wBACL,YAAY;wBACZ,gBAAgB;wBAChB,kBAAkB;wBAClB,iBAAiB;wBACjB,mBAAmB;wBACnB,kBAAkB;qBACrB;iBACJ;;;AC7BD;;;;;;"}
@@ -198,13 +198,20 @@ class ButtonBarComponent extends BaseButton {
198
198
  * Default value is set to 'transparent'
199
199
  */
200
200
  this.fdType = 'transparent';
201
- /** id for this element */
202
- this.id = `fd-button-bar-id-${randomButtonBarId++}`;
201
+ /** @hidden */
202
+ this._defaultId = `fd-button-bar-id-${randomButtonBarId++}`;
203
203
  /** @hidden */
204
204
  this._barElement = true;
205
205
  /** @hidden */
206
206
  this._subscriptions = new Subscription();
207
207
  }
208
+ /** id for this element */
209
+ get id() {
210
+ return this._id || this._defaultId;
211
+ }
212
+ set id(value) {
213
+ this._id = value;
214
+ }
208
215
  get pointerEvents() {
209
216
  return this._disabled ? 'none' : 'auto';
210
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-bar.mjs","sources":["../../../../../libs/core/src/lib/bar/bar.component.ts","../../../../../libs/core/src/lib/bar/bar.component.html","../../../../../libs/core/src/lib/bar/directives/bar-left.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-middle.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-right.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-element.directive.ts","../../../../../libs/core/src/lib/bar/button-bar/button-bar.component.ts","../../../../../libs/core/src/lib/bar/bar.module.ts","../../../../../libs/core/src/lib/bar/fundamental-ngx-core-bar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\n\nexport type SizeType = '' | 's' | 'm_l' | 'xl';\nexport type BarDesignType = 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer';\n\n/**\n * The Bar component is a container that holds titles, buttons and input controls.\n * Its content is distributed in three areas - left, middle and right.\n * The Bar has 2 modes - Desktop (default) and Tablet/Mobile (cozy).\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-bar]',\n templateUrl: './bar.component.html',\n styleUrls: ['./bar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarComponent implements OnChanges, OnInit, CssClassBuilder, OnDestroy {\n /** user's custom classes */\n @Input()\n class: string;\n\n /** Whether the Bar component is used as a header, subheader, header-with-subheader,\n * footer or floating-footer.\n * Types available: 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer' */\n @Input()\n barDesign: BarDesignType;\n\n /** Whether the Bar component is used in Page Layout. */\n @Input()\n inPage: boolean;\n\n /** Whether the Bar component is used in Home Page Layout. */\n @Input()\n inHomePage: boolean;\n\n /** The size of the Page in Page responsive design.\n * Available sizes: 's' | 'm_l' | 'xl'\n */\n @Input()\n size: SizeType = '';\n\n /** Whether to apply cozy mode to the Bar. */\n @Input()\n cozy?: boolean;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(private _elementRef: ElementRef, @Optional() private _contentDensityService: ContentDensityService) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this.cozy === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._contentDensityListener.subscribe((density) => {\n this.cozy = density === 'cozy';\n this.buildComponentCssClass();\n })\n );\n }\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return [\n 'fd-bar',\n this.cozy ? 'fd-bar--cozy' : '',\n this.barDesign ? `fd-bar--${this.barDesign}` : '',\n this.inPage && !this.size ? 'fd-bar--page' : '',\n this.inPage && this.size ? `fd-bar--page-${this.size}` : '',\n this.inHomePage && !this.size ? 'fd-bar--home-page' : '',\n this.inHomePage && this.size ? `fd-bar--home-page-${this.size}` : '',\n this.class\n ];\n }\n\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n","<ng-content select=\"[fd-bar-left]\"></ng-content>\n<ng-content select=\"[fd-bar-middle]\"></ng-content>\n<ng-content select=\"[fd-bar-right]\"></ng-content>\n<ng-content></ng-content>\n","import { Directive } from '@angular/core';\n\n/**\n * The left side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-left]',\n host: {\n class: 'fd-bar__left'\n }\n})\nexport class BarLeftDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The middle section of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-middle]',\n host: {\n class: 'fd-bar__middle'\n }\n})\nexport class BarMiddleDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The right side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-right]',\n host: {\n class: 'fd-bar__right'\n }\n})\nexport class BarRightDirective {}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n/**\n * An element of the Bar.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-bar-element'\n})\nexport class BarElementDirective {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** Whether the element is title. */\n @Input()\n @HostBinding('class.fd-bar__element--title')\n isTitle = false;\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n barElement = true;\n}\n","import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { BaseButton, ButtonType } from '@fundamental-ngx/core/button';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { Subscription } from 'rxjs';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\n\nlet randomButtonBarId = 0;\n@Component({\n selector: 'fd-button-bar',\n template: `\n <button\n fd-button\n [id]=\"id\"\n [type]=\"type\"\n [glyphPosition]=\"glyphPosition\"\n [glyph]=\"glyph\"\n [compact]=\"compact\"\n [fdType]=\"fdType\"\n [label]=\"label\"\n [attr.title]=\"title\"\n [ariaLabel]=\"ariaLabel\"\n [fdMenu]=\"fdMenu\"\n [disabled]=\"disabled\"\n >\n <ng-content></ng-content>\n </button>\n `\n})\nexport class ButtonBarComponent extends BaseButton implements OnInit, OnDestroy {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** The type of the button. Types include:\n * 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu'.\n * Default value is set to 'transparent'\n */\n @Input()\n fdType: ButtonType = 'transparent';\n\n /** adding title to the button */\n @Input()\n title: string;\n\n /** Whether or not the button is compact. */\n @Input()\n compact?: boolean;\n\n /** Aria label attribute value. */\n @Input()\n ariaLabel: string;\n\n /** the aria-labelledby ids to be associated with this element */\n @Input()\n ariaLabelledby: string;\n\n /** id for this element */\n @Input()\n id = `fd-button-bar-id-${randomButtonBarId++}`;\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n _barElement = true;\n\n @HostBinding('style.pointer-events')\n get pointerEvents(): string {\n return this._disabled ? 'none' : 'auto';\n }\n\n /** @hidden */\n @ViewChild(ButtonComponent)\n _buttonComponent: ButtonComponent;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n constructor(@Optional() private _contentDensityService: ContentDensityService, private _cdRef: ChangeDetectorRef) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.compact === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._isCompactDensity.subscribe((isCompact) => {\n this.compact = isCompact;\n this._cdRef.markForCheck();\n })\n );\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BarComponent } from './bar.component';\nimport { BarLeftDirective } from './directives/bar-left.directive';\nimport { BarMiddleDirective } from './directives/bar-middle.directive';\nimport { BarRightDirective } from './directives/bar-right.directive';\nimport { BarElementDirective } from './directives/bar-element.directive';\nimport { ButtonBarComponent } from './button-bar/button-bar.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\n@NgModule({\n declarations: [\n BarComponent,\n BarLeftDirective,\n BarMiddleDirective,\n BarRightDirective,\n BarElementDirective,\n ButtonBarComponent\n ],\n imports: [CommonModule, ButtonModule],\n exports: [\n BarComponent,\n BarLeftDirective,\n BarMiddleDirective,\n BarRightDirective,\n BarElementDirective,\n ButtonBarComponent\n ]\n})\nexport class BarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-bar.mjs","sources":["../../../../../libs/core/src/lib/bar/bar.component.ts","../../../../../libs/core/src/lib/bar/bar.component.html","../../../../../libs/core/src/lib/bar/directives/bar-left.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-middle.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-right.directive.ts","../../../../../libs/core/src/lib/bar/directives/bar-element.directive.ts","../../../../../libs/core/src/lib/bar/button-bar/button-bar.component.ts","../../../../../libs/core/src/lib/bar/bar.module.ts","../../../../../libs/core/src/lib/bar/fundamental-ngx-core-bar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\n\nexport type SizeType = '' | 's' | 'm_l' | 'xl';\nexport type BarDesignType = 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer';\n\n/**\n * The Bar component is a container that holds titles, buttons and input controls.\n * Its content is distributed in three areas - left, middle and right.\n * The Bar has 2 modes - Desktop (default) and Tablet/Mobile (cozy).\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-bar]',\n templateUrl: './bar.component.html',\n styleUrls: ['./bar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarComponent implements OnChanges, OnInit, CssClassBuilder, OnDestroy {\n /** user's custom classes */\n @Input()\n class: string;\n\n /** Whether the Bar component is used as a header, subheader, header-with-subheader,\n * footer or floating-footer.\n * Types available: 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer' */\n @Input()\n barDesign: BarDesignType;\n\n /** Whether the Bar component is used in Page Layout. */\n @Input()\n inPage: boolean;\n\n /** Whether the Bar component is used in Home Page Layout. */\n @Input()\n inHomePage: boolean;\n\n /** The size of the Page in Page responsive design.\n * Available sizes: 's' | 'm_l' | 'xl'\n */\n @Input()\n size: SizeType = '';\n\n /** Whether to apply cozy mode to the Bar. */\n @Input()\n cozy?: boolean;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(private _elementRef: ElementRef, @Optional() private _contentDensityService: ContentDensityService) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this.cozy === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._contentDensityListener.subscribe((density) => {\n this.cozy = density === 'cozy';\n this.buildComponentCssClass();\n })\n );\n }\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return [\n 'fd-bar',\n this.cozy ? 'fd-bar--cozy' : '',\n this.barDesign ? `fd-bar--${this.barDesign}` : '',\n this.inPage && !this.size ? 'fd-bar--page' : '',\n this.inPage && this.size ? `fd-bar--page-${this.size}` : '',\n this.inHomePage && !this.size ? 'fd-bar--home-page' : '',\n this.inHomePage && this.size ? `fd-bar--home-page-${this.size}` : '',\n this.class\n ];\n }\n\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n","<ng-content select=\"[fd-bar-left]\"></ng-content>\n<ng-content select=\"[fd-bar-middle]\"></ng-content>\n<ng-content select=\"[fd-bar-right]\"></ng-content>\n<ng-content></ng-content>\n","import { Directive } from '@angular/core';\n\n/**\n * The left side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-left]',\n host: {\n class: 'fd-bar__left'\n }\n})\nexport class BarLeftDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The middle section of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-middle]',\n host: {\n class: 'fd-bar__middle'\n }\n})\nexport class BarMiddleDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The right side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-right]',\n host: {\n class: 'fd-bar__right'\n }\n})\nexport class BarRightDirective {}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n/**\n * An element of the Bar.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-bar-element'\n})\nexport class BarElementDirective {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** Whether the element is title. */\n @Input()\n @HostBinding('class.fd-bar__element--title')\n isTitle = false;\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n barElement = true;\n}\n","import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { BaseButton, ButtonType } from '@fundamental-ngx/core/button';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { Subscription } from 'rxjs';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\n\nlet randomButtonBarId = 0;\n@Component({\n selector: 'fd-button-bar',\n template: `\n <button\n fd-button\n [id]=\"id\"\n [type]=\"type\"\n [glyphPosition]=\"glyphPosition\"\n [glyph]=\"glyph\"\n [compact]=\"compact\"\n [fdType]=\"fdType\"\n [label]=\"label\"\n [attr.title]=\"title\"\n [ariaLabel]=\"ariaLabel\"\n [fdMenu]=\"fdMenu\"\n [disabled]=\"disabled\"\n >\n <ng-content></ng-content>\n </button>\n `\n})\nexport class ButtonBarComponent extends BaseButton implements OnInit, OnDestroy {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** The type of the button. Types include:\n * 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu'.\n * Default value is set to 'transparent'\n */\n @Input()\n fdType: ButtonType = 'transparent';\n\n /** adding title to the button */\n @Input()\n title: string;\n\n /** Whether or not the button is compact. */\n @Input()\n compact?: boolean;\n\n /** Aria label attribute value. */\n @Input()\n ariaLabel: string;\n\n /** the aria-labelledby ids to be associated with this element */\n @Input()\n ariaLabelledby: string;\n\n /** @hidden */\n private readonly _defaultId = `fd-button-bar-id-${randomButtonBarId++}`;\n\n /** id for this element */\n @Input()\n get id(): string {\n return this._id || this._defaultId;\n }\n set id(value: string | null | undefined) {\n this._id = value;\n }\n\n _id: string | null | undefined;\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n _barElement = true;\n\n @HostBinding('style.pointer-events')\n get pointerEvents(): string {\n return this._disabled ? 'none' : 'auto';\n }\n\n /** @hidden */\n @ViewChild(ButtonComponent)\n _buttonComponent: ButtonComponent;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n constructor(@Optional() private _contentDensityService: ContentDensityService, private _cdRef: ChangeDetectorRef) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.compact === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._isCompactDensity.subscribe((isCompact) => {\n this.compact = isCompact;\n this._cdRef.markForCheck();\n })\n );\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BarComponent } from './bar.component';\nimport { BarLeftDirective } from './directives/bar-left.directive';\nimport { BarMiddleDirective } from './directives/bar-middle.directive';\nimport { BarRightDirective } from './directives/bar-right.directive';\nimport { BarElementDirective } from './directives/bar-element.directive';\nimport { ButtonBarComponent } from './button-bar/button-bar.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\n@NgModule({\n declarations: [\n BarComponent,\n BarLeftDirective,\n BarMiddleDirective,\n BarRightDirective,\n BarElementDirective,\n ButtonBarComponent\n ],\n imports: [CommonModule, ButtonModule],\n exports: [\n BarComponent,\n BarLeftDirective,\n BarMiddleDirective,\n BarRightDirective,\n BarElementDirective,\n ButtonBarComponent\n ]\n})\nexport class BarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/bar/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/bar",
3
- "version": "0.34.3-rc.3",
3
+ "version": "0.34.3-rc.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -39,6 +39,8 @@ export declare class BreadcrumbComponent implements AfterContentInit, OnInit, On
39
39
  * performs better. When not provided, the immediate parent element's width will be used.
40
40
  */
41
41
  containerElement: HTMLElement;
42
+ /** Whether or not to append items to the overflow dropdown in reverse order. Default is true. */
43
+ reverse: boolean;
42
44
  /** @hidden */
43
45
  containerBoundary: number;
44
46
  /** @hidden */
@@ -78,5 +80,5 @@ export declare class BreadcrumbComponent implements AfterContentInit, OnInit, On
78
80
  private makeBreadcrumbVisible;
79
81
  private makeBreadcrumbInvisible;
80
82
  static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, [null, { optional: true; }, { optional: true; }, null]>;
81
- static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "fd-breadcrumb", never, { "compact": "compact"; "containerElement": "containerElement"; }, {}, ["breadcrumbItems"], ["*"]>;
83
+ static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "fd-breadcrumb", never, { "compact": "compact"; "containerElement": "containerElement"; "reverse": "reverse"; }, {}, ["breadcrumbItems"], ["*"]>;
82
84
  }
@@ -34,6 +34,8 @@ export class BreadcrumbComponent {
34
34
  this.collapsedBreadcrumbItems = [];
35
35
  /** @hidden */
36
36
  this.placement$ = new BehaviorSubject('bottom-start');
37
+ /** Whether or not to append items to the overflow dropdown in reverse order. Default is true. */
38
+ this.reverse = false;
37
39
  /** @hidden */
38
40
  this._subscriptions = new Subscription();
39
41
  }
@@ -112,7 +114,9 @@ export class BreadcrumbComponent {
112
114
  i < this.breadcrumbItems.length) {
113
115
  const breadcrumbItem = this.breadcrumbItems.filter((item, index) => index === i)[0];
114
116
  if (this.collapsedBreadcrumbItems.indexOf(breadcrumbItem) === -1) {
115
- this.collapsedBreadcrumbItems.push(breadcrumbItem);
117
+ this.reverse
118
+ ? this.collapsedBreadcrumbItems.push(breadcrumbItem)
119
+ : this.collapsedBreadcrumbItems.unshift(breadcrumbItem);
116
120
  }
117
121
  // hide the original breadcrumb items that have been moved in to the collapsed menu
118
122
  breadcrumbItem.elementRef.nativeElement.style.display = 'none';
@@ -183,12 +187,12 @@ export class BreadcrumbComponent {
183
187
  }
184
188
  }
185
189
  BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i0.ElementRef }, { token: i1.RtlService, optional: true }, { token: i1.ContentDensityService, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
186
- BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { compact: "compact", containerElement: "containerElement" }, host: { listeners: { "window:resize": "onResize()" }, classAttribute: "fd-breadcrumb" }, queries: [{ propertyName: "breadcrumbItems", predicate: i0.forwardRef(function () { return BreadcrumbItemDirective; }) }], viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, descendants: true }], ngImport: i0, template: "<fd-menu #menu [compact]=\"compact\" closeOnEscapeKey=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement$ | async\">\n <li fd-menu-item *ngFor=\"let collapsedBreadcrumbItem of collapsedBreadcrumbItems\">\n <a\n fd-menu-interactive\n [attr.href]=\"collapsedBreadcrumbItem.href\"\n [routerLink]=\"collapsedBreadcrumbItem.routerLink\"\n >\n <span fd-menu-title>{{ collapsedBreadcrumbItem.elementRef.nativeElement.innerText }}</span>\n </a>\n </li>\n</fd-menu>\n\n<fd-breadcrumb-item *ngIf=\"collapsedBreadcrumbItems.length\" [fdMenuTrigger]=\"menu\">\n <a fd-breadcrumb-link tabindex=\"0\" class=\"fd-breadcrumb__collapsed\" (keydown)=\"keyDownHandle($event)\">\n ...\n <i role=\"presentation\" class=\"fd-breadcrumb__dropdown-icon sap-icon sap-icon--slim-arrow-down\"></i>\n </a>\n</fd-breadcrumb-item>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.8\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;flex-wrap:wrap;align-items:center;list-style:none}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapContent_LabelColor)}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{content:\"/\";color:var(--sapContent_LabelColor);margin-right:.25rem;margin-left:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb__link{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapLinkColor);-webkit-text-decoration:var(--fdLink_Text_Decoration);text-decoration:var(--fdLink_Text_Decoration);text-shadow:var(--sapContent_TextShadow);line-height:inherit;display:inline-block;transition:all 125ms ease-in}.fd-breadcrumb__link:after,.fd-breadcrumb__link:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__link--emphasized{font-weight:700}.fd-breadcrumb__link:visited{color:var(--sapLink_Visited_Color)}.fd-breadcrumb__link.is-hover,.fd-breadcrumb__link:hover{color:var(--sapLink_Hover_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link.is-focus,.fd-breadcrumb__link:focus{z-index:5;box-shadow:none;outline-offset:-.0625rem;outline-width:var(--sapContent_FocusWidth);outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link.is-active,.fd-breadcrumb__link:active{color:var(--sapLink_Active_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link--inverted{color:var(--sapLink_InvertedColor);text-shadow:none}.fd-breadcrumb__link--inverted.is-hover,.fd-breadcrumb__link--inverted:hover{color:var(--sapLink_InvertedColor)}.fd-breadcrumb__link--inverted.is-focus,.fd-breadcrumb__link--inverted:focus{z-index:5;outline-color:var(--sapContent_ContrastFocusColor)}.fd-breadcrumb__link--subtle{color:var(--sapLink_SubtleColor)}.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled,.fd-breadcrumb__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);color:var(--sapLinkColor);pointer-events:none}.fd-breadcrumb__link>img{vertical-align:bottom}.fd-breadcrumb__link:focus .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active .fd-breadcrumb__dropdown-icon,.fd-breadcrumb__link:active:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__dropdown-icon [class*=sap-icon],.fd-breadcrumb__dropdown-icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;text-decoration:inherit;color:var(--sapLinkColor)}.fd-breadcrumb{display:inline-block;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}\n"], components: [{ type: i2.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "compact", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { type: i2.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i2.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { type: i2.MenuTitleDirective, selector: "[fd-menu-title]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.BreadcrumbItemDirective, selector: "fd-breadcrumb-item" }, { type: i2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { type: i6.BreadcrumbLinkDirective, selector: "[fd-breadcrumb-link]", inputs: ["routerLink"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
190
+ BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { compact: "compact", containerElement: "containerElement", reverse: "reverse" }, host: { listeners: { "window:resize": "onResize()" }, classAttribute: "fd-breadcrumb" }, queries: [{ propertyName: "breadcrumbItems", predicate: i0.forwardRef(function () { return BreadcrumbItemDirective; }) }], viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, descendants: true }], ngImport: i0, template: "<fd-menu #menu [compact]=\"compact\" [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement$ | async\">\n <li fd-menu-item *ngFor=\"let collapsedBreadcrumbItem of collapsedBreadcrumbItems\">\n <a\n fd-menu-interactive\n [attr.href]=\"collapsedBreadcrumbItem.href\"\n [routerLink]=\"collapsedBreadcrumbItem.routerLink\"\n >\n <span fd-menu-title>{{ collapsedBreadcrumbItem.elementRef.nativeElement.innerText }}</span>\n </a>\n </li>\n</fd-menu>\n\n<fd-breadcrumb-item *ngIf=\"collapsedBreadcrumbItems.length\" [fdMenuTrigger]=\"menu\">\n <a fd-breadcrumb-link tabindex=\"0\" class=\"fd-breadcrumb__collapsed\" (keydown)=\"keyDownHandle($event)\">\n ...\n <i role=\"presentation\" class=\"fd-breadcrumb__dropdown-icon sap-icon sap-icon--slim-arrow-down\"></i>\n </a>\n</fd-breadcrumb-item>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.8\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;flex-wrap:wrap;align-items:center;list-style:none}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapContent_LabelColor)}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{content:\"/\";color:var(--sapContent_LabelColor);margin-right:.25rem;margin-left:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb__link{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapLinkColor);-webkit-text-decoration:var(--fdLink_Text_Decoration);text-decoration:var(--fdLink_Text_Decoration);text-shadow:var(--sapContent_TextShadow);line-height:inherit;display:inline-block;transition:all 125ms ease-in}.fd-breadcrumb__link:after,.fd-breadcrumb__link:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__link--emphasized{font-weight:700}.fd-breadcrumb__link:visited{color:var(--sapLink_Visited_Color)}.fd-breadcrumb__link.is-hover,.fd-breadcrumb__link:hover{color:var(--sapLink_Hover_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link.is-focus,.fd-breadcrumb__link:focus{z-index:5;box-shadow:none;outline-offset:-.0625rem;outline-width:var(--sapContent_FocusWidth);outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link.is-active,.fd-breadcrumb__link:active{color:var(--sapLink_Active_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link--inverted{color:var(--sapLink_InvertedColor);text-shadow:none}.fd-breadcrumb__link--inverted.is-hover,.fd-breadcrumb__link--inverted:hover{color:var(--sapLink_InvertedColor)}.fd-breadcrumb__link--inverted.is-focus,.fd-breadcrumb__link--inverted:focus{z-index:5;outline-color:var(--sapContent_ContrastFocusColor)}.fd-breadcrumb__link--subtle{color:var(--sapLink_SubtleColor)}.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled,.fd-breadcrumb__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);color:var(--sapLinkColor);pointer-events:none}.fd-breadcrumb__link>img{vertical-align:bottom}.fd-breadcrumb__link:focus .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active .fd-breadcrumb__dropdown-icon,.fd-breadcrumb__link:active:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__dropdown-icon [class*=sap-icon],.fd-breadcrumb__dropdown-icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;text-decoration:inherit;color:var(--sapLinkColor)}.fd-breadcrumb{display:inline-block;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}\n"], components: [{ type: i2.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "compact", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { type: i2.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i2.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { type: i2.MenuTitleDirective, selector: "[fd-menu-title]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.BreadcrumbItemDirective, selector: "fd-breadcrumb-item" }, { type: i2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { type: i6.BreadcrumbLinkDirective, selector: "[fd-breadcrumb-link]", inputs: ["routerLink"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
187
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbComponent, decorators: [{
188
192
  type: Component,
189
193
  args: [{ selector: 'fd-breadcrumb', host: {
190
194
  class: 'fd-breadcrumb'
191
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-menu #menu [compact]=\"compact\" closeOnEscapeKey=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement$ | async\">\n <li fd-menu-item *ngFor=\"let collapsedBreadcrumbItem of collapsedBreadcrumbItems\">\n <a\n fd-menu-interactive\n [attr.href]=\"collapsedBreadcrumbItem.href\"\n [routerLink]=\"collapsedBreadcrumbItem.routerLink\"\n >\n <span fd-menu-title>{{ collapsedBreadcrumbItem.elementRef.nativeElement.innerText }}</span>\n </a>\n </li>\n</fd-menu>\n\n<fd-breadcrumb-item *ngIf=\"collapsedBreadcrumbItems.length\" [fdMenuTrigger]=\"menu\">\n <a fd-breadcrumb-link tabindex=\"0\" class=\"fd-breadcrumb__collapsed\" (keydown)=\"keyDownHandle($event)\">\n ...\n <i role=\"presentation\" class=\"fd-breadcrumb__dropdown-icon sap-icon sap-icon--slim-arrow-down\"></i>\n </a>\n</fd-breadcrumb-item>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.8\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;flex-wrap:wrap;align-items:center;list-style:none}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapContent_LabelColor)}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{content:\"/\";color:var(--sapContent_LabelColor);margin-right:.25rem;margin-left:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb__link{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapLinkColor);-webkit-text-decoration:var(--fdLink_Text_Decoration);text-decoration:var(--fdLink_Text_Decoration);text-shadow:var(--sapContent_TextShadow);line-height:inherit;display:inline-block;transition:all 125ms ease-in}.fd-breadcrumb__link:after,.fd-breadcrumb__link:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__link--emphasized{font-weight:700}.fd-breadcrumb__link:visited{color:var(--sapLink_Visited_Color)}.fd-breadcrumb__link.is-hover,.fd-breadcrumb__link:hover{color:var(--sapLink_Hover_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link.is-focus,.fd-breadcrumb__link:focus{z-index:5;box-shadow:none;outline-offset:-.0625rem;outline-width:var(--sapContent_FocusWidth);outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link.is-active,.fd-breadcrumb__link:active{color:var(--sapLink_Active_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link--inverted{color:var(--sapLink_InvertedColor);text-shadow:none}.fd-breadcrumb__link--inverted.is-hover,.fd-breadcrumb__link--inverted:hover{color:var(--sapLink_InvertedColor)}.fd-breadcrumb__link--inverted.is-focus,.fd-breadcrumb__link--inverted:focus{z-index:5;outline-color:var(--sapContent_ContrastFocusColor)}.fd-breadcrumb__link--subtle{color:var(--sapLink_SubtleColor)}.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled,.fd-breadcrumb__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);color:var(--sapLinkColor);pointer-events:none}.fd-breadcrumb__link>img{vertical-align:bottom}.fd-breadcrumb__link:focus .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active .fd-breadcrumb__dropdown-icon,.fd-breadcrumb__link:active:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__dropdown-icon [class*=sap-icon],.fd-breadcrumb__dropdown-icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;text-decoration:inherit;color:var(--sapLinkColor)}.fd-breadcrumb{display:inline-block;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}\n"] }]
195
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-menu #menu [compact]=\"compact\" [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement$ | async\">\n <li fd-menu-item *ngFor=\"let collapsedBreadcrumbItem of collapsedBreadcrumbItems\">\n <a\n fd-menu-interactive\n [attr.href]=\"collapsedBreadcrumbItem.href\"\n [routerLink]=\"collapsedBreadcrumbItem.routerLink\"\n >\n <span fd-menu-title>{{ collapsedBreadcrumbItem.elementRef.nativeElement.innerText }}</span>\n </a>\n </li>\n</fd-menu>\n\n<fd-breadcrumb-item *ngIf=\"collapsedBreadcrumbItems.length\" [fdMenuTrigger]=\"menu\">\n <a fd-breadcrumb-link tabindex=\"0\" class=\"fd-breadcrumb__collapsed\" (keydown)=\"keyDownHandle($event)\">\n ...\n <i role=\"presentation\" class=\"fd-breadcrumb__dropdown-icon sap-icon sap-icon--slim-arrow-down\"></i>\n </a>\n</fd-breadcrumb-item>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.8\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;flex-wrap:wrap;align-items:center;list-style:none}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapContent_LabelColor)}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{content:\"/\";color:var(--sapContent_LabelColor);margin-right:.25rem;margin-left:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb__link{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapLinkColor);-webkit-text-decoration:var(--fdLink_Text_Decoration);text-decoration:var(--fdLink_Text_Decoration);text-shadow:var(--sapContent_TextShadow);line-height:inherit;display:inline-block;transition:all 125ms ease-in}.fd-breadcrumb__link:after,.fd-breadcrumb__link:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__link--emphasized{font-weight:700}.fd-breadcrumb__link:visited{color:var(--sapLink_Visited_Color)}.fd-breadcrumb__link.is-hover,.fd-breadcrumb__link:hover{color:var(--sapLink_Hover_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link.is-focus,.fd-breadcrumb__link:focus{z-index:5;box-shadow:none;outline-offset:-.0625rem;outline-width:var(--sapContent_FocusWidth);outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link.is-active,.fd-breadcrumb__link:active{color:var(--sapLink_Active_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Opposite);text-decoration:var(--fdLink_Text_Decoration_Opposite)}.fd-breadcrumb__link--inverted{color:var(--sapLink_InvertedColor);text-shadow:none}.fd-breadcrumb__link--inverted.is-hover,.fd-breadcrumb__link--inverted:hover{color:var(--sapLink_InvertedColor)}.fd-breadcrumb__link--inverted.is-focus,.fd-breadcrumb__link--inverted:focus{z-index:5;outline-color:var(--sapContent_ContrastFocusColor)}.fd-breadcrumb__link--subtle{color:var(--sapLink_SubtleColor)}.fd-breadcrumb__link.is-disabled,.fd-breadcrumb__link:disabled,.fd-breadcrumb__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);color:var(--sapLinkColor);pointer-events:none}.fd-breadcrumb__link>img{vertical-align:bottom}.fd-breadcrumb__link:focus .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:active .fd-breadcrumb__dropdown-icon,.fd-breadcrumb__link:active:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Active_Color)}.fd-breadcrumb__link:hover .fd-breadcrumb__dropdown-icon{color:var(--sapLink_Hover_Color)}.fd-breadcrumb__dropdown-icon [class*=sap-icon],.fd-breadcrumb__dropdown-icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;text-decoration:inherit;color:var(--sapLinkColor)}.fd-breadcrumb{display:inline-block;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}\n"] }]
192
196
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.RtlService, decorators: [{
193
197
  type: Optional
194
198
  }] }, { type: i1.ContentDensityService, decorators: [{
@@ -203,8 +207,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
203
207
  args: [MenuComponent]
204
208
  }], containerElement: [{
205
209
  type: Input
210
+ }], reverse: [{
211
+ type: Input
206
212
  }], onResize: [{
207
213
  type: HostListener,
208
214
  args: ['window:resize', []]
209
215
  }] } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQUVwRTs7Ozs7Ozs7OztHQVVHO0FBYUgsTUFBTSxPQUFPLG1CQUFtQjtJQW1DNUIsWUFDVyxVQUFzQixFQUNULFdBQXVCLEVBQ3ZCLHNCQUE2QyxFQUN6RCxNQUF5QjtRQUgxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1QsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsMkJBQXNCLEdBQXRCLHNCQUFz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NkNOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2JyZWFkY3J1bWItaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lbnUnO1xuaW1wb3J0IHsgRU5URVIsIFNQQUNFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IFBsYWNlbWVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcblxuLyoqXG4gKiBCcmVhZGNydW1iIHBhcmVudCB3cmFwcGVyIGRpcmVjdGl2ZS4gTXVzdCBoYXZlIGJyZWFkY3J1bWIgaXRlbSBjaGlsZCBkaXJlY3RpdmVzLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxmZC1icmVhZGNydW1iPlxuICogICAgIDxmZC1icmVhZGNydW1iLWl0ZW0+XG4gKiAgICAgICAgIDxhIGZkLWJyZWFkY3J1bWItbGluayBbcm91dGVyTGlua109XCInIydcIj5CcmVhZGNydW1iIExpbms8L2E+XG4gKiAgICAgPC9mZC1icmVhZGNydW1iLWl0ZW0+XG4gKiA8L2ZkLWJyZWFkY3J1bWI+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgLy8gVE9ETyB0byBiZSBkaXNjdXNzZWRcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBzZWxlY3RvcjogJ2ZkLWJyZWFkY3J1bWInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1icmVhZGNydW1iJ1xuICAgIH0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JyZWFkY3J1bWIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIFdoZW5ldmVyIGxpbmtzIHdyYXBwZWQgaW5zaWRlIG92ZXJmbG93IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gY29tcGFjdCBtb2RlICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29tcGFjdD86IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSkpXG4gICAgYnJlYWRjcnVtYkl0ZW1zOiBRdWVyeUxpc3Q8QnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKE1lbnVDb21wb25lbnQpXG4gICAgbWVudUNvbXBvbmVudDogTWVudUNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zOiBBcnJheTxCcmVhZGNydW1iSXRlbURpcmVjdGl2ZT4gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuIHVzZWQgdG8gY29tcGFyZSB0byB0aGUgY3VycmVudCB3aWR0aCB0byBrbm93IHdoZXRoZXIgdG8gY29sbGFwc2Ugb3IgZXhwYW5kIGJyZWFkY3J1bWJzICovXG4gICAgcHJldmlvdXNDb250YWluZXJXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwbGFjZW1lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQbGFjZW1lbnQ+KCdib3R0b20tc3RhcnQnKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBlbGVtZW50IHRvIGFjdCBhcyB0aGUgYnJlYWRjcnVtYiBjb250YWluZXIuIFdoZW4gcHJvdmlkZWQsIHRoZSBicmVhZGNydW1iJ3MgcmVzcG9uc2l2ZSBjb2xsYXBzaW5nIGJlaGF2aW9yXG4gICAgICogcGVyZm9ybXMgYmV0dGVyLiBXaGVuIG5vdCBwcm92aWRlZCwgdGhlIGltbWVkaWF0ZSBwYXJlbnQgZWxlbWVudCdzIHdpZHRoIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRhaW5lckVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb250YWluZXJCb3VuZGFyeTogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25SZXNpemUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fcnRsU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICAgICAgdGhpcy5fcnRsU2VydmljZS5ydGwuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5wbGFjZW1lbnQkLm5leHQodmFsdWUgPyAnYm90dG9tLWVuZCcgOiAnYm90dG9tLXN0YXJ0JykpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbXBhY3QgPT09IHVuZGVmaW5lZCAmJiB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnREZW5zaXR5U2VydmljZS5faXNDb21wYWN0RGVuc2l0eS5zdWJzY3JpYmUoKGlzQ29tcGFjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBhY3QgPSBpc0NvbXBhY3Q7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFtdKVxuICAgIG9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRhaW5lckJvdW5kYXJ5ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJCb3VuZGFyeSA9IHRoaXMuY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgfVxuICAgICAgICAvKlxuICAgICAgICAgICAgaWYgdGhpcyBpcyB0aGUgZmlyc3QgbG9hZCBhbmQgdGhlcmUgaXMgbm8gcHJldmlvdXNDb250YWluZXJXaWR0aCxcbiAgICAgICAgICAgIG9yIHRoZSBjb250YWluZXIgYm91bmRhcnkgaXMgc21hbGxlciB0aGFuIHRoZSBwcmV2aW91c0NvbnRhaW5lcldpZHRoXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIXRoaXMucHJldmlvdXNDb250YWluZXJXaWR0aCB8fCB0aGlzLmNvbnRhaW5lckJvdW5kYXJ5IDwgdGhpcy5wcmV2aW91c0NvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICAvLyBhbmQgdGhlIGJyZWFkY3J1bWJzIGV4dGVuZCBwYXN0IHRoZSB3aW5kb3dcbiAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA+IHRoaXMuY29udGFpbmVyQm91bmRhcnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlQnJlYWRjcnVtYnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGlmIHRoZSBzY3JlZW4gaXMgZ2V0dGluZyBiaWdnZXIgYW5kIHRoZXJlIGFyZSBjb2xsYXBzZWQgYnJlYWRjcnVtYnNcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kQnJlYWRjcnVtYnMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXZpb3VzQ29udGFpbmVyV2lkdGggPSB0aGlzLmNvbnRhaW5lckJvdW5kYXJ5O1xuICAgICAgICB0aGlzLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBrZXlEb3duSGFuZGxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVDb21wb25lbnQudG9nZ2xlKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXRDb250YWluZXJCb3VuZGFyeSgpOiBudW1iZXIge1xuICAgICAgICBsZXQgY29udGFpbmVyQm91bmRhcnkgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXJFbGVtZW50KSB7XG4gICAgICAgICAgICBjb250YWluZXJCb3VuZGFyeSA9IHRoaXMuY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250YWluZXJCb3VuZGFyeTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICpcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIG1vdmVzIGJyZWFkY3J1bWJzIGZyb20gdGhlIG9yaWdpbmFsIFF1ZXJ5TGlzdCBvZiBCcmVhZENydW1iSXRlbURpcmVjdGl2ZXMgaW50byB0aGUgYXJyYXkgb2ZcbiAgICAgKiBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMuXG4gICAgICogKi9cbiAgICBjb2xsYXBzZUJyZWFkY3J1bWJzKCk6IHZvaWQge1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckJvdW5kYXJ5ID0gdGhpcy5nZXRDb250YWluZXJCb3VuZGFyeSgpO1xuICAgICAgICAvLyBtb3ZlIHRoZSBicmVhZGNydW1iIGl0ZW1zIGludG8gYSBjb2xsYXBzZWQgbWVudSBvbmUgYnkgb25lLCB1bnRpbCB0aGUgbGFzdCBvbmUgaXMgaW5zaWRlIHRoZSB3aW5kb3dcbiAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPiBjb250YWluZXJCb3VuZGFyeSAmJlxuICAgICAgICAgICAgaSA8IHRoaXMuYnJlYWRjcnVtYkl0ZW1zLmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGJyZWFkY3J1bWJJdGVtID0gdGhpcy5icmVhZGNydW1iSXRlbXMuZmlsdGVyKChpdGVtLCBpbmRleCkgPT4gaW5kZXggPT09IGkpWzBdO1xuICAgICAgICAgICAgaWYgKHRoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLmluZGV4T2YoYnJlYWRjcnVtYkl0ZW0pID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLnB1c2goYnJlYWRjcnVtYkl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaGlkZSB0aGUgb3JpZ2luYWwgYnJlYWRjcnVtYiBpdGVtcyB0aGF0IGhhdmUgYmVlbiBtb3ZlZCBpbiB0byB0aGUgY29sbGFwc2VkIG1lbnVcbiAgICAgICAgICAgIGJyZWFkY3J1bWJJdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiByZW1vdmVzIGJyZWFkY3J1bWIgaXRlbXMgZnJvbSB0aGUgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zIGFycmF5IGFuZCBtYWtlcyB0aGVtIHZpc2libGUgYWdhaW4gaW4gdGhlXG4gICAgICogb3JpZ2luYWwgUXVlcnlMaXN0IG9mIEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlcy5cbiAgICAgKiAqL1xuICAgIGV4cGFuZEJyZWFkY3J1bWJzKCk6IHZvaWQge1xuICAgICAgICBsZXQgYnJlYWtMb29wID0gZmFsc2U7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxDb2xsYXBzZWRMZW5ndGggPSB0aGlzLmNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcy5sZW5ndGg7XG4gICAgICAgIHdoaWxlICh0aGlzLmZpdEluQm91bmRyaWVzKCkgJiYgIWJyZWFrTG9vcCAmJiBpIDwgb3JpZ2luYWxDb2xsYXBzZWRMZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGdldCB0aGUgbW9zdCByZWNlbnRseSBjb2xsYXBzZWQgYnJlYWRjcnVtYlxuICAgICAgICAgICAgY29uc3QgY29sbGFwc2VkSXRlbVRvUG9wID0gdGhpcy5nZXRDb2xsYXBzZWRJdGVtKCk7XG4gICAgICAgICAgICAvLyBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFkY3J1bWIgZnJvbSB0aGUgb3JpZ2luYWwgYnJlYWRjcnVtYiBpdGVtIFF1ZXJ5TGlzdFxuICAgICAgICAgICAgY29uc3QgYnJlYWRjcnVtYlRvQ2hlY2sgPSB0aGlzLmdldEJyZWFkY3J1bWJUb0NoZWNrKGNvbGxhcHNlZEl0ZW1Ub1BvcCk7XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICBzZXQgZGlzcGxheTogJ2lubGluZS1ibG9jaycgYW5kIHZpc2liaWxpdHk6ICdoaWRkZW4nIC0gdGhpcyB3YXksIHRoZSBwYXJlbnQgYnJlYWRjcnVtYiBjb21wb25lbnQncyB3aWR0aCB3aWxsXG4gICAgICAgICAgICAgIGNvbnRhaW4gdGhlIHdpZHRoIG9mIHRoZSBicmVhZGNydW1iIGl0ZW0gd2UgbWlnaHQgcG9wLCB3aXRob3V0IGFjdHVhbGx5IG1ha2luZyB0aGUgaXRlbSB2aXNpYmxlIHRvIHRoZSB1c2VyXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuYXBwbHlTdHlsZXNUb0JyZWFkY3J1bWIoYnJlYWRjcnVtYlRvQ2hlY2spO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5maXRJbkJvdW5kcmllcygpKSB7XG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgIGlmIHRoZSB3aWR0aCBvZiB0aGUgYnJlYWRjcnVtYiBjb21wb25lbnQgaXMgc3RpbGwgc21hbGxlciB0aGFuIHRoZSB3aW5kb3cgd2lkdGgsIGluY2x1ZGluZyB0aGVcbiAgICAgICAgICAgICAgICAgIGJyZWFkY3J1bWJUb0NoZWNrLCBwb3AgdGhlIGxhdGVzdCBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbVxuICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgdGhpcy5wb3BMYXN0RWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFrZUJyZWFkY3J1bWJWaXNpYmxlKGJyZWFkY3J1bWJUb0NoZWNrKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgIGlmIHRoZSB3aWR0aCBvZiB0aGUgYnJlYWRjcnVtYiBjb21wb25lbnQgaXMgd2lkZXIgdGhhbiB0aGUgd2luZG93IGFmdGVyIG1ha2luZyB0aGUgYnJlYWRjcnVtYlRvQ2hlY2snc1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsIHRoZW4gcHV0IGl0J3MgZGlzcGxheSBiYWNrIHRvICdub25lJyBhbmQgZG9uJ3QgcG9wIHRoZSBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRoaXMubWFrZUJyZWFkY3J1bWJJbnZpc2libGUoYnJlYWRjcnVtYlRvQ2hlY2spO1xuICAgICAgICAgICAgICAgIGJyZWFrTG9vcCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpdEluQm91bmRyaWVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPCB0aGlzLmdldENvbnRhaW5lckJvdW5kYXJ5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2xsYXBzZWRJdGVtKCk6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zW3RoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QnJlYWRjcnVtYlRvQ2hlY2soY29sbGFwc2VkSXRlbVRvUG9wOiBCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSk6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnJlYWRjcnVtYkl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbSA9PT0gY29sbGFwc2VkSXRlbVRvUG9wKVswXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5U3R5bGVzVG9CcmVhZGNydW1iKGJyZWFkY3J1bWI6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgICAgIGJyZWFkY3J1bWIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcbiAgICAgICAgYnJlYWRjcnVtYi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgIH1cblxuICAgIHByaXZhdGUgcG9wTGFzdEVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLnBvcCgpO1xuICAgICAgICAvLyBtYWtlIHRoZSBicmVhZGNydW1iIHdlIGNoZWNrZWQgdmlzaWJsZVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFrZUJyZWFkY3J1bWJWaXNpYmxlKGJyZWFkY3J1bWI6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgICAgIGJyZWFkY3J1bWIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYWtlQnJlYWRjcnVtYkludmlzaWJsZShicmVhZGNydW1iOiBCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBicmVhZGNydW1iLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbn1cbiIsIjxmZC1tZW51ICNtZW51IFtjb21wYWN0XT1cImNvbXBhY3RcIiBjbG9zZU9uRXNjYXBlS2V5PVwidHJ1ZVwiIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIiBbcGxhY2VtZW50XT1cInBsYWNlbWVudCQgfCBhc3luY1wiPlxuICAgIDxsaSBmZC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IGNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtIG9mIGNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtc1wiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbWVudS1pbnRlcmFjdGl2ZVxuICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJjb2xsYXBzZWRCcmVhZGNydW1iSXRlbS5ocmVmXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtLnJvdXRlckxpbmtcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7IGNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lclRleHQgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuPC9mZC1tZW51PlxuXG48ZmQtYnJlYWRjcnVtYi1pdGVtICpuZ0lmPVwiY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLmxlbmd0aFwiIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIj5cbiAgICA8YSBmZC1icmVhZGNydW1iLWxpbmsgdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJmZC1icmVhZGNydW1iX19jb2xsYXBzZWRcIiAoa2V5ZG93bik9XCJrZXlEb3duSGFuZGxlKCRldmVudClcIj5cbiAgICAgICAgLi4uXG4gICAgICAgIDxpIHJvbGU9XCJwcmVzZW50YXRpb25cIiBjbGFzcz1cImZkLWJyZWFkY3J1bWJfX2Ryb3Bkb3duLWljb24gc2FwLWljb24gc2FwLWljb24tLXNsaW0tYXJyb3ctZG93blwiPjwvaT5cbiAgICA8L2E+XG48L2ZkLWJyZWFkY3J1bWItaXRlbT5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQUVwRTs7Ozs7Ozs7OztHQVVHO0FBYUgsTUFBTSxPQUFPLG1CQUFtQjtJQXVDNUIsWUFDVyxVQUFzQixFQUNULFdBQXVCLEVBQ3ZCLHNCQUE2QyxFQUN6RCxNQUF5QjtRQUgxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1QsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsMkJBQXNCLEdBQXRCLHNCQUFz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O2dCQUtOLGVBQWU7c0JBRGQsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBSzFELGFBQWE7c0JBRFosU0FBUzt1QkFBQyxhQUFhO2dCQWlCeEIsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQTZDTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9icmVhZGNydW1iLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZW51JztcbmltcG9ydCB7IEVOVEVSLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5cbi8qKlxuICogQnJlYWRjcnVtYiBwYXJlbnQgd3JhcHBlciBkaXJlY3RpdmUuIE11c3QgaGF2ZSBicmVhZGNydW1iIGl0ZW0gY2hpbGQgZGlyZWN0aXZlcy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtYnJlYWRjcnVtYj5cbiAqICAgICA8ZmQtYnJlYWRjcnVtYi1pdGVtPlxuICogICAgICAgICA8YSBmZC1icmVhZGNydW1iLWxpbmsgW3JvdXRlckxpbmtdPVwiJyMnXCI+QnJlYWRjcnVtYiBMaW5rPC9hPlxuICogICAgIDwvZmQtYnJlYWRjcnVtYi1pdGVtPlxuICogPC9mZC1icmVhZGNydW1iPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIFRPRE8gdG8gYmUgZGlzY3Vzc2VkXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgc2VsZWN0b3I6ICdmZC1icmVhZGNydW1iJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtYnJlYWRjcnVtYidcbiAgICB9LFxuICAgIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBXaGVuZXZlciBsaW5rcyB3cmFwcGVkIGluc2lkZSBvdmVyZmxvdyBzaG91bGQgYmUgZGlzcGxheWVkIGluIGNvbXBhY3QgbW9kZSAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbXBhY3Q/OiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gQnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmUpKVxuICAgIGJyZWFkY3J1bWJJdGVtczogUXVlcnlMaXN0PEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChNZW51Q29tcG9uZW50KVxuICAgIG1lbnVDb21wb25lbnQ6IE1lbnVDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtczogQXJyYXk8QnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmU+ID0gW107XG5cbiAgICAvKiogQGhpZGRlbiB1c2VkIHRvIGNvbXBhcmUgdG8gdGhlIGN1cnJlbnQgd2lkdGggdG8ga25vdyB3aGV0aGVyIHRvIGNvbGxhcHNlIG9yIGV4cGFuZCBicmVhZGNydW1icyAqL1xuICAgIHByZXZpb3VzQ29udGFpbmVyV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcGxhY2VtZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGxhY2VtZW50PignYm90dG9tLXN0YXJ0Jyk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZWxlbWVudCB0byBhY3QgYXMgdGhlIGJyZWFkY3J1bWIgY29udGFpbmVyLiBXaGVuIHByb3ZpZGVkLCB0aGUgYnJlYWRjcnVtYidzIHJlc3BvbnNpdmUgY29sbGFwc2luZyBiZWhhdmlvclxuICAgICAqIHBlcmZvcm1zIGJldHRlci4gV2hlbiBub3QgcHJvdmlkZWQsIHRoZSBpbW1lZGlhdGUgcGFyZW50IGVsZW1lbnQncyB3aWR0aCB3aWxsIGJlIHVzZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIC8qKiBXaGV0aGVyIG9yIG5vdCB0byBhcHBlbmQgaXRlbXMgdG8gdGhlIG92ZXJmbG93IGRyb3Bkb3duIGluIHJldmVyc2Ugb3JkZXIuIERlZmF1bHQgaXMgdHJ1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJldmVyc2UgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29udGFpbmVyQm91bmRhcnk6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcnRsU2VydmljZTogUnRsU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMucGxhY2VtZW50JC5uZXh0KHZhbHVlID8gJ2JvdHRvbS1lbmQnIDogJ2JvdHRvbS1zdGFydCcpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb21wYWN0ID09PSB1bmRlZmluZWQgJiYgdGhpcy5fY29udGVudERlbnNpdHlTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UuX2lzQ29tcGFjdERlbnNpdHkuc3Vic2NyaWJlKChpc0NvbXBhY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wYWN0ID0gaXNDb21wYWN0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbXSlcbiAgICBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250YWluZXJCb3VuZGFyeSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyQm91bmRhcnkgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgLypcbiAgICAgICAgICAgIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGxvYWQgYW5kIHRoZXJlIGlzIG5vIHByZXZpb3VzQ29udGFpbmVyV2lkdGgsXG4gICAgICAgICAgICBvciB0aGUgY29udGFpbmVyIGJvdW5kYXJ5IGlzIHNtYWxsZXIgdGhhbiB0aGUgcHJldmlvdXNDb250YWluZXJXaWR0aFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCF0aGlzLnByZXZpb3VzQ29udGFpbmVyV2lkdGggfHwgdGhpcy5jb250YWluZXJCb3VuZGFyeSA8IHRoaXMucHJldmlvdXNDb250YWluZXJXaWR0aCkge1xuICAgICAgICAgICAgLy8gYW5kIHRoZSBicmVhZGNydW1icyBleHRlbmQgcGFzdCB0aGUgd2luZG93XG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPiB0aGlzLmNvbnRhaW5lckJvdW5kYXJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZUJyZWFkY3J1bWJzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGUgc2NyZWVuIGlzIGdldHRpbmcgYmlnZ2VyIGFuZCB0aGVyZSBhcmUgY29sbGFwc2VkIGJyZWFkY3J1bWJzXG4gICAgICAgICAgICB0aGlzLmV4cGFuZEJyZWFkY3J1bWJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmV2aW91c0NvbnRhaW5lcldpZHRoID0gdGhpcy5jb250YWluZXJCb3VuZGFyeTtcbiAgICAgICAgdGhpcy5fY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAga2V5RG93bkhhbmRsZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSkge1xuICAgICAgICAgICAgdGhpcy5tZW51Q29tcG9uZW50LnRvZ2dsZSgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0Q29udGFpbmVyQm91bmRhcnkoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGNvbnRhaW5lckJvdW5kYXJ5ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgICAgICAgY29udGFpbmVyQm91bmRhcnkgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGFpbmVyQm91bmRhcnk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBtb3ZlcyBicmVhZGNydW1icyBmcm9tIHRoZSBvcmlnaW5hbCBRdWVyeUxpc3Qgb2YgQnJlYWRDcnVtYkl0ZW1EaXJlY3RpdmVzIGludG8gdGhlIGFycmF5IG9mXG4gICAgICogY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLlxuICAgICAqICovXG4gICAgY29sbGFwc2VCcmVhZGNydW1icygpOiB2b2lkIHtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBjb25zdCBjb250YWluZXJCb3VuZGFyeSA9IHRoaXMuZ2V0Q29udGFpbmVyQm91bmRhcnkoKTtcbiAgICAgICAgLy8gbW92ZSB0aGUgYnJlYWRjcnVtYiBpdGVtcyBpbnRvIGEgY29sbGFwc2VkIG1lbnUgb25lIGJ5IG9uZSwgdW50aWwgdGhlIGxhc3Qgb25lIGlzIGluc2lkZSB0aGUgd2luZG93XG4gICAgICAgIHdoaWxlIChcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoID4gY29udGFpbmVyQm91bmRhcnkgJiZcbiAgICAgICAgICAgIGkgPCB0aGlzLmJyZWFkY3J1bWJJdGVtcy5sZW5ndGhcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBicmVhZGNydW1iSXRlbSA9IHRoaXMuYnJlYWRjcnVtYkl0ZW1zLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IGluZGV4ID09PSBpKVswXTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcy5pbmRleE9mKGJyZWFkY3J1bWJJdGVtKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldmVyc2VcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcy5wdXNoKGJyZWFkY3J1bWJJdGVtKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLnVuc2hpZnQoYnJlYWRjcnVtYkl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaGlkZSB0aGUgb3JpZ2luYWwgYnJlYWRjcnVtYiBpdGVtcyB0aGF0IGhhdmUgYmVlbiBtb3ZlZCBpbiB0byB0aGUgY29sbGFwc2VkIG1lbnVcbiAgICAgICAgICAgIGJyZWFkY3J1bWJJdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiByZW1vdmVzIGJyZWFkY3J1bWIgaXRlbXMgZnJvbSB0aGUgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zIGFycmF5IGFuZCBtYWtlcyB0aGVtIHZpc2libGUgYWdhaW4gaW4gdGhlXG4gICAgICogb3JpZ2luYWwgUXVlcnlMaXN0IG9mIEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlcy5cbiAgICAgKiAqL1xuICAgIGV4cGFuZEJyZWFkY3J1bWJzKCk6IHZvaWQge1xuICAgICAgICBsZXQgYnJlYWtMb29wID0gZmFsc2U7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxDb2xsYXBzZWRMZW5ndGggPSB0aGlzLmNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtcy5sZW5ndGg7XG4gICAgICAgIHdoaWxlICh0aGlzLmZpdEluQm91bmRyaWVzKCkgJiYgIWJyZWFrTG9vcCAmJiBpIDwgb3JpZ2luYWxDb2xsYXBzZWRMZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGdldCB0aGUgbW9zdCByZWNlbnRseSBjb2xsYXBzZWQgYnJlYWRjcnVtYlxuICAgICAgICAgICAgY29uc3QgY29sbGFwc2VkSXRlbVRvUG9wID0gdGhpcy5nZXRDb2xsYXBzZWRJdGVtKCk7XG4gICAgICAgICAgICAvLyBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFkY3J1bWIgZnJvbSB0aGUgb3JpZ2luYWwgYnJlYWRjcnVtYiBpdGVtIFF1ZXJ5TGlzdFxuICAgICAgICAgICAgY29uc3QgYnJlYWRjcnVtYlRvQ2hlY2sgPSB0aGlzLmdldEJyZWFkY3J1bWJUb0NoZWNrKGNvbGxhcHNlZEl0ZW1Ub1BvcCk7XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICBzZXQgZGlzcGxheTogJ2lubGluZS1ibG9jaycgYW5kIHZpc2liaWxpdHk6ICdoaWRkZW4nIC0gdGhpcyB3YXksIHRoZSBwYXJlbnQgYnJlYWRjcnVtYiBjb21wb25lbnQncyB3aWR0aCB3aWxsXG4gICAgICAgICAgICAgIGNvbnRhaW4gdGhlIHdpZHRoIG9mIHRoZSBicmVhZGNydW1iIGl0ZW0gd2UgbWlnaHQgcG9wLCB3aXRob3V0IGFjdHVhbGx5IG1ha2luZyB0aGUgaXRlbSB2aXNpYmxlIHRvIHRoZSB1c2VyXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuYXBwbHlTdHlsZXNUb0JyZWFkY3J1bWIoYnJlYWRjcnVtYlRvQ2hlY2spO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5maXRJbkJvdW5kcmllcygpKSB7XG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgIGlmIHRoZSB3aWR0aCBvZiB0aGUgYnJlYWRjcnVtYiBjb21wb25lbnQgaXMgc3RpbGwgc21hbGxlciB0aGFuIHRoZSB3aW5kb3cgd2lkdGgsIGluY2x1ZGluZyB0aGVcbiAgICAgICAgICAgICAgICAgIGJyZWFkY3J1bWJUb0NoZWNrLCBwb3AgdGhlIGxhdGVzdCBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbVxuICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgdGhpcy5wb3BMYXN0RWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFrZUJyZWFkY3J1bWJWaXNpYmxlKGJyZWFkY3J1bWJUb0NoZWNrKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgIGlmIHRoZSB3aWR0aCBvZiB0aGUgYnJlYWRjcnVtYiBjb21wb25lbnQgaXMgd2lkZXIgdGhhbiB0aGUgd2luZG93IGFmdGVyIG1ha2luZyB0aGUgYnJlYWRjcnVtYlRvQ2hlY2snc1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsIHRoZW4gcHV0IGl0J3MgZGlzcGxheSBiYWNrIHRvICdub25lJyBhbmQgZG9uJ3QgcG9wIHRoZSBjb2xsYXBzZWRCcmVhZGNydW1iSXRlbVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRoaXMubWFrZUJyZWFkY3J1bWJJbnZpc2libGUoYnJlYWRjcnVtYlRvQ2hlY2spO1xuICAgICAgICAgICAgICAgIGJyZWFrTG9vcCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpdEluQm91bmRyaWVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPCB0aGlzLmdldENvbnRhaW5lckJvdW5kYXJ5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2xsYXBzZWRJdGVtKCk6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zW3RoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QnJlYWRjcnVtYlRvQ2hlY2soY29sbGFwc2VkSXRlbVRvUG9wOiBCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSk6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnJlYWRjcnVtYkl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbSA9PT0gY29sbGFwc2VkSXRlbVRvUG9wKVswXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5U3R5bGVzVG9CcmVhZGNydW1iKGJyZWFkY3J1bWI6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgICAgIGJyZWFkY3J1bWIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcbiAgICAgICAgYnJlYWRjcnVtYi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgIH1cblxuICAgIHByaXZhdGUgcG9wTGFzdEVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zLnBvcCgpO1xuICAgICAgICAvLyBtYWtlIHRoZSBicmVhZGNydW1iIHdlIGNoZWNrZWQgdmlzaWJsZVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFrZUJyZWFkY3J1bWJWaXNpYmxlKGJyZWFkY3J1bWI6IEJyZWFkY3J1bWJJdGVtRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgICAgIGJyZWFkY3J1bWIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYWtlQnJlYWRjcnVtYkludmlzaWJsZShicmVhZGNydW1iOiBCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBicmVhZGNydW1iLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbn1cbiIsIjxmZC1tZW51ICNtZW51IFtjb21wYWN0XT1cImNvbXBhY3RcIiBbY2xvc2VPbkVzY2FwZUtleV09XCJ0cnVlXCIgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50JCB8IGFzeW5jXCI+XG4gICAgPGxpIGZkLW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW0gb2YgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW1zXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgICBmZC1tZW51LWludGVyYWN0aXZlXG4gICAgICAgICAgICBbYXR0ci5ocmVmXT1cImNvbGxhcHNlZEJyZWFkY3J1bWJJdGVtLmhyZWZcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgY29sbGFwc2VkQnJlYWRjcnVtYkl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L2ZkLW1lbnU+XG5cbjxmZC1icmVhZGNydW1iLWl0ZW0gKm5nSWY9XCJjb2xsYXBzZWRCcmVhZGNydW1iSXRlbXMubGVuZ3RoXCIgW2ZkTWVudVRyaWdnZXJdPVwibWVudVwiPlxuICAgIDxhIGZkLWJyZWFkY3J1bWItbGluayB0YWJpbmRleD1cIjBcIiBjbGFzcz1cImZkLWJyZWFkY3J1bWJfX2NvbGxhcHNlZFwiIChrZXlkb3duKT1cImtleURvd25IYW5kbGUoJGV2ZW50KVwiPlxuICAgICAgICAuLi5cbiAgICAgICAgPGkgcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzPVwiZmQtYnJlYWRjcnVtYl9fZHJvcGRvd24taWNvbiBzYXAtaWNvbiBzYXAtaWNvbi0tc2xpbS1hcnJvdy1kb3duXCI+PC9pPlxuICAgIDwvYT5cbjwvZmQtYnJlYWRjcnVtYi1pdGVtPlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=