@eui/ecl 17.0.0-next.9 → 17.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1358) hide show
  1. package/assets/i18n-ecl/bg.json +4 -1
  2. package/assets/i18n-ecl/cs.json +4 -1
  3. package/assets/i18n-ecl/da.json +4 -1
  4. package/assets/i18n-ecl/de.json +4 -1
  5. package/assets/i18n-ecl/el.json +5 -2
  6. package/assets/i18n-ecl/en.json +4 -1
  7. package/assets/i18n-ecl/es.json +4 -1
  8. package/assets/i18n-ecl/et.json +4 -1
  9. package/assets/i18n-ecl/fi.json +4 -1
  10. package/assets/i18n-ecl/fr.json +4 -1
  11. package/assets/i18n-ecl/ga.json +4 -1
  12. package/assets/i18n-ecl/hr.json +4 -1
  13. package/assets/i18n-ecl/hu.json +4 -1
  14. package/assets/i18n-ecl/it.json +4 -1
  15. package/assets/i18n-ecl/lt.json +4 -1
  16. package/assets/i18n-ecl/lv.json +4 -1
  17. package/assets/i18n-ecl/mt.json +4 -1
  18. package/assets/i18n-ecl/nl.json +4 -1
  19. package/assets/i18n-ecl/pl.json +4 -1
  20. package/assets/i18n-ecl/pt.json +4 -1
  21. package/assets/i18n-ecl/ro.json +4 -1
  22. package/assets/i18n-ecl/sk.json +4 -1
  23. package/assets/i18n-ecl/sl.json +4 -1
  24. package/assets/i18n-ecl/sv.json +4 -1
  25. package/docs/classes/EclAccordionToggleEvent.html +309 -0
  26. package/docs/classes/EclAppLanguageDismissEvent.html +311 -0
  27. package/docs/classes/EclBaseEvent.html +253 -0
  28. package/docs/classes/EclBreadcrumbSegmentClickEvent.html +223 -0
  29. package/docs/classes/EclCategoryFilterItemSelectEvent.html +309 -0
  30. package/docs/classes/EclDatePickerDatePickedEvent.html +309 -0
  31. package/docs/classes/EclDomEvent.html +314 -0
  32. package/docs/classes/EclExpandableToggleEvent.html +309 -0
  33. package/docs/classes/EclFileDownloadEvent.html +309 -0
  34. package/docs/classes/EclFileItemsToggleEvent.html +309 -0
  35. package/docs/classes/EclFileUploadFileSelectedEvent.html +309 -0
  36. package/docs/classes/EclGalleryDownloadEvent.html +324 -0
  37. package/docs/classes/EclGalleryFullScreenEvent.html +309 -0
  38. package/docs/classes/EclGalleryHideEvent.html +223 -0
  39. package/docs/classes/EclGalleryItemClickEvent.html +223 -0
  40. package/docs/classes/EclGalleryItemEvent.html +309 -0
  41. package/docs/classes/EclGalleryMediaSource.html +236 -0
  42. package/docs/classes/EclGalleryMediaTrack.html +288 -0
  43. package/docs/classes/EclGalleryShareEvent.html +309 -0
  44. package/docs/classes/EclGalleryShowEvent.html +223 -0
  45. package/docs/classes/EclGalleryToggleItemsEvent.html +309 -0
  46. package/docs/classes/EclInpageNavigationItemClickEvent.html +309 -0
  47. package/docs/classes/EclInpageNavigationSectionEnterEvent.html +309 -0
  48. package/docs/classes/EclLanguageService.html +887 -0
  49. package/docs/classes/EclMenuItemCaretEvent.html +355 -0
  50. package/docs/classes/EclMenuItemFocusEvent.html +355 -0
  51. package/docs/classes/EclMenuItemHoverEvent.html +355 -0
  52. package/docs/classes/EclMenuItemHoverOutEvent.html +355 -0
  53. package/docs/classes/EclMenuItemKeydownEvent.html +355 -0
  54. package/docs/classes/EclMenuItemParentFocusEvent.html +253 -0
  55. package/docs/classes/EclMenuItemSelectEvent.html +355 -0
  56. package/docs/classes/EclMessageCloseEvent.html +223 -0
  57. package/docs/classes/EclModalCloseEvent.html +311 -0
  58. package/docs/classes/EclModalOpenEvent.html +223 -0
  59. package/docs/classes/EclMultiselectMainInputClickEvent.html +253 -0
  60. package/docs/classes/EclMultiselectOptionClickEvent-1.html +253 -0
  61. package/docs/classes/EclMultiselectOptionClickEvent.html +253 -0
  62. package/docs/classes/EclMultiselectOptionKeydownEvent-1.html +291 -0
  63. package/docs/classes/EclMultiselectOptionKeydownEvent.html +291 -0
  64. package/docs/classes/EclNewsTickerItemEvent.html +309 -0
  65. package/docs/classes/EclPaginationEvent.html +391 -0
  66. package/docs/classes/EclPaginationItemClickEvent.html +223 -0
  67. package/docs/classes/EclRangeEvent.html +309 -0
  68. package/docs/classes/EclRatingChangeEvent.html +311 -0
  69. package/docs/classes/EclSearchFormEvent.html +309 -0
  70. package/docs/classes/EclSiteHeaderLanguageClickEvent.html +223 -0
  71. package/docs/classes/EclSiteHeaderLanguageCloseEvent.html +223 -0
  72. package/docs/classes/EclSiteHeaderLanguageSelectedEvent.html +309 -0
  73. package/docs/classes/EclSiteHeaderLoginBoxToggleEvent.html +309 -0
  74. package/docs/classes/EclSiteHeaderLoginEvent.html +223 -0
  75. package/docs/classes/EclSiteHeaderLogoClickEvent.html +223 -0
  76. package/docs/classes/EclSiteHeaderSearchEvent.html +309 -0
  77. package/docs/classes/EclSiteHeaderSearchToggleEvent.html +309 -0
  78. package/docs/classes/EclSlideEvent.html +309 -0
  79. package/docs/classes/EclSocialMediaFollowItemClickEvent.html +223 -0
  80. package/docs/classes/EclSocialMediaShareItemClickEvent.html +223 -0
  81. package/docs/classes/EclSortTableEvent.html +347 -0
  82. package/docs/classes/EclTabSelectEvent.html +309 -0
  83. package/docs/classes/EclTagRemoveEvent.html +223 -0
  84. package/docs/classes/EclTimelineItemToggleEvent.html +347 -0
  85. package/docs/components/EclAccordionComponent.html +464 -0
  86. package/docs/components/EclAccordionItemComponent.html +679 -0
  87. package/docs/components/EclAppComponent.html +630 -0
  88. package/docs/components/EclBannerComponent.html +695 -0
  89. package/docs/components/EclBlockquoteComponent.html +674 -0
  90. package/docs/components/EclBreadcrumbComponent.html +815 -0
  91. package/docs/components/EclBreadcrumbSegmentComponent.html +870 -0
  92. package/docs/components/EclButtonComponent.html +642 -0
  93. package/docs/components/EclCardBodyComponent.html +460 -0
  94. package/docs/components/EclCardComponent.html +546 -0
  95. package/docs/components/EclCardImageComponent.html +509 -0
  96. package/docs/components/EclCarouselComponent.html +2042 -0
  97. package/docs/components/EclCarouselItemComponent.html +967 -0
  98. package/docs/components/EclCategoryFilterComponent.html +687 -0
  99. package/docs/components/EclCategoryFilterItemComponent.html +1012 -0
  100. package/docs/components/EclCategoryFilterListComponent.html +758 -0
  101. package/docs/components/EclCheckboxHelpComponent.html +476 -0
  102. package/docs/components/EclCheckboxLabelComponent.html +504 -0
  103. package/docs/components/EclContentBlockComponent.html +460 -0
  104. package/docs/components/EclContentItemComponent.html +638 -0
  105. package/docs/components/EclDateBlockComponent.html +761 -0
  106. package/docs/components/EclDescriptionListDefinitionComponent.html +670 -0
  107. package/docs/components/EclExpandableComponent.html +589 -0
  108. package/docs/components/EclFactFiguresComponent.html +484 -0
  109. package/docs/components/EclFactFiguresDescriptionComponent.html +460 -0
  110. package/docs/components/EclFactFiguresItemComponent.html +518 -0
  111. package/docs/components/EclFactFiguresTitleComponent.html +460 -0
  112. package/docs/components/EclFactFiguresValueComponent.html +460 -0
  113. package/docs/components/EclFactFiguresViewAllComponent.html +518 -0
  114. package/docs/components/EclFeaturedComponent.html +586 -0
  115. package/docs/components/EclFeaturedItemComponent.html +581 -0
  116. package/docs/components/EclFeaturedItemDescriptionComponent.html +480 -0
  117. package/docs/components/EclFileComponent.html +904 -0
  118. package/docs/components/EclFileItemComponent.html +853 -0
  119. package/docs/components/EclFileItemsComponent.html +677 -0
  120. package/docs/components/EclFileTaxonomyComponent.html +452 -0
  121. package/docs/components/EclFormGroupComponent.html +452 -0
  122. package/docs/components/EclFormLabelComponent.html +552 -0
  123. package/docs/components/EclGalleryComponent.html +2015 -0
  124. package/docs/components/EclGalleryFooterComponent.html +507 -0
  125. package/docs/components/EclGalleryItemComponent.html +1315 -0
  126. package/docs/components/EclIconComponent.html +796 -0
  127. package/docs/components/EclInpageNavigationComponent.html +680 -0
  128. package/docs/components/EclInpageNavigationItemComponent.html +669 -0
  129. package/docs/components/EclListIllustrationComponent.html +500 -0
  130. package/docs/components/EclListIllustrationImageComponent.html +644 -0
  131. package/docs/components/EclListIllustrationItemComponent.html +611 -0
  132. package/docs/components/EclMediaContainerComponent.html +692 -0
  133. package/docs/components/EclMenuComponent.html +1737 -0
  134. package/docs/components/EclMenuItemComponent.html +1958 -0
  135. package/docs/components/EclMenuMegaComponent.html +819 -0
  136. package/docs/components/EclMenuMegaItemComponent.html +1138 -0
  137. package/docs/components/EclMessageComponent.html +803 -0
  138. package/docs/components/EclModalBodyComponent.html +452 -0
  139. package/docs/components/EclModalComponent.html +926 -0
  140. package/docs/components/EclModalFooterComponent.html +510 -0
  141. package/docs/components/EclModalHeaderComponent.html +576 -0
  142. package/docs/components/EclMultiselectComponent.html +905 -0
  143. package/docs/components/EclMultiselectDropdownComponent.html +2840 -0
  144. package/docs/components/EclMultiselectInputComponent.html +861 -0
  145. package/docs/components/EclMultiselectOptgroupComponent.html +471 -0
  146. package/docs/components/EclMultiselectOptionComponent.html +1174 -0
  147. package/docs/components/EclNavigationListComponent.html +476 -0
  148. package/docs/components/EclNavigationListImageComponent.html +485 -0
  149. package/docs/components/EclNavigationListItemComponent.html +603 -0
  150. package/docs/components/EclNewsTickerComponent.html +1286 -0
  151. package/docs/components/EclNewsTickerItemComponent.html +831 -0
  152. package/docs/components/EclPageHeaderComponent.html +636 -0
  153. package/docs/components/EclPageHeaderDescriptionContainerComponent.html +667 -0
  154. package/docs/components/EclPaginationComponent.html +899 -0
  155. package/docs/components/EclPaginationItemComponent.html +811 -0
  156. package/docs/components/EclPopoverComponent.html +870 -0
  157. package/docs/components/EclRadioHelpComponent.html +476 -0
  158. package/docs/components/EclRadioLabelComponent.html +504 -0
  159. package/docs/components/EclRangeValueComponent.html +479 -0
  160. package/docs/components/EclRatingFieldComponent.html +935 -0
  161. package/docs/components/EclSearchFormComponent.html +1099 -0
  162. package/docs/components/EclSelectContainerComponent.html +514 -0
  163. package/docs/components/EclSiteFooterComponent.html +752 -0
  164. package/docs/components/EclSiteFooterFixedContentECComponent.html +515 -0
  165. package/docs/components/EclSiteFooterFixedContentEUComponent.html +549 -0
  166. package/docs/components/EclSiteHeaderActionComponent.html +478 -0
  167. package/docs/components/EclSiteHeaderBannerTopComponent.html +379 -0
  168. package/docs/components/EclSiteHeaderComponent.html +1002 -0
  169. package/docs/components/EclSiteHeaderEnvironmentComponent.html +532 -0
  170. package/docs/components/EclSiteHeaderLanguageComponent.html +1557 -0
  171. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +1164 -0
  172. package/docs/components/EclSiteHeaderLoginComponent.html +754 -0
  173. package/docs/components/EclSiteHeaderMessageComponent.html +452 -0
  174. package/docs/components/EclSiteHeaderSearchComponent.html +1118 -0
  175. package/docs/components/EclSocialMediaFollowComponent.html +503 -0
  176. package/docs/components/EclSocialMediaFollowItemComponent.html +740 -0
  177. package/docs/components/EclSocialMediaShareComponent.html +503 -0
  178. package/docs/components/EclSocialMediaShareItemComponent.html +740 -0
  179. package/docs/components/EclSpinnerComponent.html +548 -0
  180. package/docs/components/EclStickyContainerComponent.html +629 -0
  181. package/docs/components/EclTabComponent.html +1136 -0
  182. package/docs/components/EclTabLabelComponent.html +465 -0
  183. package/docs/components/EclTabMoreComponent.html +570 -0
  184. package/docs/components/EclTableSortButtonComponent.html +562 -0
  185. package/docs/components/EclTabsComponent.html +1827 -0
  186. package/docs/components/EclTagComponent.html +671 -0
  187. package/docs/components/EclTimelineComponent.html +588 -0
  188. package/docs/components/EclTimelineItemComponent.html +830 -0
  189. package/docs/components/EclTimelineItemTogglerComponent.html +492 -0
  190. package/docs/dependencies.html +337 -0
  191. package/docs/directives/ECLBaseDirective.html +413 -0
  192. package/docs/directives/ECLClickOutsideDirective.html +531 -0
  193. package/docs/directives/EclBannerCreditDirective.html +440 -0
  194. package/docs/directives/EclBannerDescriptionDirective.html +440 -0
  195. package/docs/directives/EclBannerDescriptionTextDirective.html +440 -0
  196. package/docs/directives/EclBannerImageDirective.html +434 -0
  197. package/docs/directives/EclBannerPictureDirective.html +414 -0
  198. package/docs/directives/EclBannerTitleDirective.html +440 -0
  199. package/docs/directives/EclBannerTitleTextDirective.html +440 -0
  200. package/docs/directives/EclBlockquoteImageDirective.html +414 -0
  201. package/docs/directives/EclBlockquotePictureDirective.html +414 -0
  202. package/docs/directives/EclButtonLabelDirective.html +414 -0
  203. package/docs/directives/EclCardImageDirective.html +414 -0
  204. package/docs/directives/EclCardPictureDirective.html +414 -0
  205. package/docs/directives/EclCheckboxDirective.html +630 -0
  206. package/docs/directives/EclCheckboxInputDirective.html +529 -0
  207. package/docs/directives/EclContentBlockDescriptionDirective.html +414 -0
  208. package/docs/directives/EclContentBlockLabelDirective.html +414 -0
  209. package/docs/directives/EclContentBlockLabelsDirective.html +414 -0
  210. package/docs/directives/EclContentBlockLinkDirective.html +414 -0
  211. package/docs/directives/EclContentBlockLinksContainerDirective.html +414 -0
  212. package/docs/directives/EclContentBlockLinksDirective.html +414 -0
  213. package/docs/directives/EclContentBlockListContainerDirective.html +414 -0
  214. package/docs/directives/EclContentBlockListDirective.html +414 -0
  215. package/docs/directives/EclContentBlockPrimaryMetaDirective.html +414 -0
  216. package/docs/directives/EclContentBlockPrimaryMetasDirective.html +414 -0
  217. package/docs/directives/EclContentBlockSecondaryMetaDirective.html +414 -0
  218. package/docs/directives/EclContentBlockSecondaryMetaIconDirective.html +414 -0
  219. package/docs/directives/EclContentBlockSecondaryMetaLabelDirective.html +414 -0
  220. package/docs/directives/EclContentBlockSecondaryMetasDirective.html +414 -0
  221. package/docs/directives/EclContentBlockTagDirective.html +414 -0
  222. package/docs/directives/EclContentBlockTagsDirective.html +414 -0
  223. package/docs/directives/EclContentBlockTitleDirective.html +414 -0
  224. package/docs/directives/EclContentItemImageDirective.html +414 -0
  225. package/docs/directives/EclContentItemPictureDirective.html +462 -0
  226. package/docs/directives/EclDatePickerDirective.html +1144 -0
  227. package/docs/directives/EclDescriptionListDefinitionItemDirective.html +477 -0
  228. package/docs/directives/EclDescriptionListDirective.html +563 -0
  229. package/docs/directives/EclDescriptionListTermDirective.html +434 -0
  230. package/docs/directives/EclFeaturedItemLinkDirective.html +434 -0
  231. package/docs/directives/EclFeedbackMessageDirective.html +472 -0
  232. package/docs/directives/EclFileImageDirective.html +434 -0
  233. package/docs/directives/EclFilePictureDirective.html +414 -0
  234. package/docs/directives/EclFileUploadDirective.html +970 -0
  235. package/docs/directives/EclGalleryMediaDirective.html +557 -0
  236. package/docs/directives/EclGalleryPictureDirective.html +414 -0
  237. package/docs/directives/EclHelpBlockDirective.html +438 -0
  238. package/docs/directives/EclHiddenDirective.html +365 -0
  239. package/docs/directives/EclLabelDirective.html +438 -0
  240. package/docs/directives/EclLinkDirective.html +730 -0
  241. package/docs/directives/EclLinkLabelDirective.html +414 -0
  242. package/docs/directives/EclListIllustrationIconDirective.html +434 -0
  243. package/docs/directives/EclListIllustrationImageDirective.html +462 -0
  244. package/docs/directives/EclListIllustrationPictureDirective.html +414 -0
  245. package/docs/directives/EclMediaContainerIframeDirective.html +551 -0
  246. package/docs/directives/EclMediaContainerItemDirective.html +567 -0
  247. package/docs/directives/EclMediaContainerPictureDirective.html +414 -0
  248. package/docs/directives/EclMessageTitleDirective.html +414 -0
  249. package/docs/directives/EclModalCloseDirective.html +524 -0
  250. package/docs/directives/EclModalTriggerDirective.html +473 -0
  251. package/docs/directives/EclMultiselectOptionDirective.html +762 -0
  252. package/docs/directives/EclNavigationListImageDirective.html +414 -0
  253. package/docs/directives/EclNavigationListPictureDirective.html +414 -0
  254. package/docs/directives/EclOrderedListDirective.html +434 -0
  255. package/docs/directives/EclOrderedListItemDirective.html +434 -0
  256. package/docs/directives/EclPageHeaderBackgroundImageDirective.html +440 -0
  257. package/docs/directives/EclPageHeaderBackgroundPictureDirective.html +440 -0
  258. package/docs/directives/EclPageHeaderDescriptionDirective.html +440 -0
  259. package/docs/directives/EclPageHeaderDescriptionPictureDirective.html +440 -0
  260. package/docs/directives/EclPageHeaderDescriptionThumbnailDirective.html +440 -0
  261. package/docs/directives/EclPageHeaderMetaDirective.html +440 -0
  262. package/docs/directives/EclPageHeaderMetaItemDirective.html +440 -0
  263. package/docs/directives/EclPageHeaderTitleDirective.html +440 -0
  264. package/docs/directives/EclPopoverContentDirective.html +414 -0
  265. package/docs/directives/EclPopoverItemDirective.html +414 -0
  266. package/docs/directives/EclPopoverLinkDirective.html +414 -0
  267. package/docs/directives/EclPopoverListDirective.html +414 -0
  268. package/docs/directives/EclPopoverToggleDirective.html +745 -0
  269. package/docs/directives/EclRadioDirective.html +574 -0
  270. package/docs/directives/EclRadioInputDirective.html +541 -0
  271. package/docs/directives/EclRangeDirective.html +687 -0
  272. package/docs/directives/EclSelectDirective.html +648 -0
  273. package/docs/directives/EclSiteFooterColumnDirective.html +434 -0
  274. package/docs/directives/EclSiteFooterContentDirective.html +434 -0
  275. package/docs/directives/EclSiteFooterDescriptionDirective.html +434 -0
  276. package/docs/directives/EclSiteFooterLinkDirective.html +434 -0
  277. package/docs/directives/EclSiteFooterListDirective.html +472 -0
  278. package/docs/directives/EclSiteFooterListItemDirective.html +434 -0
  279. package/docs/directives/EclSiteFooterLogoDirective.html +434 -0
  280. package/docs/directives/EclSiteFooterLogoImageDesktopDirective.html +442 -0
  281. package/docs/directives/EclSiteFooterLogoImageDirective.html +434 -0
  282. package/docs/directives/EclSiteFooterLogoItemDirective.html +434 -0
  283. package/docs/directives/EclSiteFooterLogoLinkDirective.html +434 -0
  284. package/docs/directives/EclSiteFooterLogoListDirective.html +434 -0
  285. package/docs/directives/EclSiteFooterPictureDirective.html +440 -0
  286. package/docs/directives/EclSiteFooterRowDirective.html +434 -0
  287. package/docs/directives/EclSiteFooterSectionDirective.html +530 -0
  288. package/docs/directives/EclSiteFooterTitleDirective.html +458 -0
  289. package/docs/directives/EclSiteFooterTitleLinkDirective.html +434 -0
  290. package/docs/directives/EclSiteHeaderCtaDirective.html +434 -0
  291. package/docs/directives/EclSiteHeaderLoginDescriptionDirective.html +440 -0
  292. package/docs/directives/EclSiteHeaderLoginSeparatorDirective.html +440 -0
  293. package/docs/directives/EclSocialMediaFollowLinkDirective.html +472 -0
  294. package/docs/directives/EclSocialMediaShareLinkDirective.html +472 -0
  295. package/docs/directives/EclSpinnerLabelDirective.html +278 -0
  296. package/docs/directives/EclTableBodyDirective.html +414 -0
  297. package/docs/directives/EclTableCellDirective.html +457 -0
  298. package/docs/directives/EclTableCellGroupDirective.html +433 -0
  299. package/docs/directives/EclTableDirective.html +572 -0
  300. package/docs/directives/EclTableHeadDirective.html +516 -0
  301. package/docs/directives/EclTableHeaderDirective.html +764 -0
  302. package/docs/directives/EclTableResponsiveDirective.html +414 -0
  303. package/docs/directives/EclTableRowDirective.html +414 -0
  304. package/docs/directives/EclTextAreaDirective.html +549 -0
  305. package/docs/directives/EclTextInputDirective.html +639 -0
  306. package/docs/directives/EclTimelineItemLabelDirective.html +414 -0
  307. package/docs/directives/EclTimelineItemTitleDirective.html +414 -0
  308. package/docs/directives/EclUnorderedListDirective.html +482 -0
  309. package/docs/directives/EclUnorderedListItemDirective.html +434 -0
  310. package/docs/fonts/ionicons.eot +0 -0
  311. package/docs/fonts/ionicons.svg +2090 -0
  312. package/docs/fonts/ionicons.ttf +0 -0
  313. package/docs/fonts/ionicons.woff +0 -0
  314. package/docs/fonts/ionicons.woff2 +0 -0
  315. package/docs/fonts/roboto-v15-latin-300.eot +0 -0
  316. package/docs/fonts/roboto-v15-latin-300.svg +314 -0
  317. package/docs/fonts/roboto-v15-latin-300.ttf +0 -0
  318. package/docs/fonts/roboto-v15-latin-300.woff +0 -0
  319. package/docs/fonts/roboto-v15-latin-300.woff2 +0 -0
  320. package/docs/fonts/roboto-v15-latin-700.eot +0 -0
  321. package/docs/fonts/roboto-v15-latin-700.svg +310 -0
  322. package/docs/fonts/roboto-v15-latin-700.ttf +0 -0
  323. package/docs/fonts/roboto-v15-latin-700.woff +0 -0
  324. package/docs/fonts/roboto-v15-latin-700.woff2 +0 -0
  325. package/docs/fonts/roboto-v15-latin-italic.eot +0 -0
  326. package/docs/fonts/roboto-v15-latin-italic.svg +323 -0
  327. package/docs/fonts/roboto-v15-latin-italic.ttf +0 -0
  328. package/docs/fonts/roboto-v15-latin-italic.woff +0 -0
  329. package/docs/fonts/roboto-v15-latin-italic.woff2 +0 -0
  330. package/docs/fonts/roboto-v15-latin-regular.eot +0 -0
  331. package/docs/fonts/roboto-v15-latin-regular.svg +308 -0
  332. package/docs/fonts/roboto-v15-latin-regular.ttf +0 -0
  333. package/docs/fonts/roboto-v15-latin-regular.woff +0 -0
  334. package/docs/fonts/roboto-v15-latin-regular.woff2 +0 -0
  335. package/docs/images/compodoc-vectorise-inverted.png +0 -0
  336. package/docs/images/compodoc-vectorise-inverted.svg +201 -0
  337. package/docs/images/compodoc-vectorise.png +0 -0
  338. package/docs/images/compodoc-vectorise.svg +201 -0
  339. package/docs/images/favicon.ico +0 -0
  340. package/docs/index.html +179 -0
  341. package/docs/injectables/EclDefaultLanguageService.html +903 -0
  342. package/docs/injectables/EclThemeService.html +482 -0
  343. package/docs/interfaces/EclBreadcrumb.html +343 -0
  344. package/docs/interfaces/EclCarouselItem.html +292 -0
  345. package/docs/interfaces/EclCategoryFilterItem.html +349 -0
  346. package/docs/interfaces/EclFileUpload.html +286 -0
  347. package/docs/interfaces/EclGalleryItem.html +325 -0
  348. package/docs/interfaces/EclLanguage.html +292 -0
  349. package/docs/interfaces/EclMenuItem.html +574 -0
  350. package/docs/interfaces/EclModalResult.html +259 -0
  351. package/docs/interfaces/EclMultiselectOption.html +382 -0
  352. package/docs/interfaces/EclTab.html +214 -0
  353. package/docs/js/compodoc.js +14 -0
  354. package/docs/js/lazy-load-graphs.js +44 -0
  355. package/docs/js/libs/EventDispatcher.js +5 -0
  356. package/docs/js/libs/bootstrap-native.js +1 -0
  357. package/docs/js/libs/clipboard.min.js +7 -0
  358. package/docs/js/libs/custom-elements-es5-adapter.js +15 -0
  359. package/docs/js/libs/custom-elements.min.js +38 -0
  360. package/docs/js/libs/d3.v3.min.js +2 -0
  361. package/docs/js/libs/deep-iterator.js +2 -0
  362. package/docs/js/libs/es6-shim.min.js +11 -0
  363. package/docs/js/libs/htmlparser.js +23 -0
  364. package/docs/js/libs/innersvg.js +9 -0
  365. package/docs/js/libs/lit-html.js +1 -0
  366. package/docs/js/libs/prism.js +46 -0
  367. package/docs/js/libs/promise.min.js +6 -0
  368. package/docs/js/libs/svg-pan-zoom.min.js +3 -0
  369. package/docs/js/libs/tablesort.min.js +6 -0
  370. package/docs/js/libs/tablesort.number.min.js +6 -0
  371. package/docs/js/libs/vis.min.js +47 -0
  372. package/docs/js/libs/zepto.min.js +2 -0
  373. package/docs/js/menu-wc.js +3012 -0
  374. package/docs/js/menu-wc_es5.js +42 -0
  375. package/docs/js/menu.js +325 -0
  376. package/docs/js/routes.js +301 -0
  377. package/docs/js/search/lunr.min.js +6 -0
  378. package/docs/js/search/search-lunr.js +67 -0
  379. package/docs/js/search/search.js +268 -0
  380. package/docs/js/search/search_index.js +4 -0
  381. package/docs/js/sourceCode.js +58 -0
  382. package/docs/js/svg-pan-zoom.controls.js +53 -0
  383. package/docs/js/tabs.js +21 -0
  384. package/docs/js/tree.js +147 -0
  385. package/docs/license.html +379 -0
  386. package/docs/miscellaneous/enumerations.html +392 -0
  387. package/docs/miscellaneous/variables.html +1625 -0
  388. package/docs/modules/EclAccordionComponentModule.html +176 -0
  389. package/docs/modules/EclAllModule.html +513 -0
  390. package/docs/modules/EclAppComponentModule.html +170 -0
  391. package/docs/modules/EclBannerComponentModule.html +222 -0
  392. package/docs/modules/EclBlockquoteComponentModule.html +182 -0
  393. package/docs/modules/EclBreadcrumbComponentModule.html +222 -0
  394. package/docs/modules/EclButtonComponentModule.html +176 -0
  395. package/docs/modules/EclCardComponentModule.html +222 -0
  396. package/docs/modules/EclCarouselComponentModule.html +212 -0
  397. package/docs/modules/EclCategoryFilterModule.html +192 -0
  398. package/docs/modules/EclCheckboxModule.html +225 -0
  399. package/docs/modules/EclContentBlockComponentModule.html +212 -0
  400. package/docs/modules/EclContentItemComponentModule.html +212 -0
  401. package/docs/modules/EclDateBlockComponentModule.html +170 -0
  402. package/docs/modules/EclDatePickerDirectiveModule.html +170 -0
  403. package/docs/modules/EclExpandableComponentModule.html +170 -0
  404. package/docs/modules/EclFactFiguresComponentModule.html +200 -0
  405. package/docs/modules/EclFeaturedModule.html +188 -0
  406. package/docs/modules/EclFeedbackMessageDirectiveModule.html +170 -0
  407. package/docs/modules/EclFileComponentModule.html +225 -0
  408. package/docs/modules/EclFileUploadDirectiveModule.html +170 -0
  409. package/docs/modules/EclFormGroupComponentModule.html +170 -0
  410. package/docs/modules/EclFormLabelComponentModule.html +170 -0
  411. package/docs/modules/EclGalleryComponentModule.html +222 -0
  412. package/docs/modules/EclHelpBlockDirectiveModule.html +170 -0
  413. package/docs/modules/EclHiddenModule.html +170 -0
  414. package/docs/modules/EclIconComponentModule.html +170 -0
  415. package/docs/modules/EclInpageNavigationComponentModule.html +186 -0
  416. package/docs/modules/EclLabelDirectiveModule.html +170 -0
  417. package/docs/modules/EclLinkDirectiveModule.html +176 -0
  418. package/docs/modules/EclListDirectiveModule.html +222 -0
  419. package/docs/modules/EclListIllustrationComponentModule.html +212 -0
  420. package/docs/modules/EclMediaContainerComponentModule.html +212 -0
  421. package/docs/modules/EclMenuComponentModule.html +222 -0
  422. package/docs/modules/EclMessageComponentModule.html +176 -0
  423. package/docs/modules/EclModalComponentModule.html +212 -0
  424. package/docs/modules/EclMultiselectComponentModule.html +204 -0
  425. package/docs/modules/EclNavigationListComponentModule.html +212 -0
  426. package/docs/modules/EclNewsTickerComponentModule.html +186 -0
  427. package/docs/modules/EclPageHeaderComponentModule.html +212 -0
  428. package/docs/modules/EclPaginationComponentModule.html +186 -0
  429. package/docs/modules/EclPopoverComponentModule.html +222 -0
  430. package/docs/modules/EclRadioDirectiveModule.html +188 -0
  431. package/docs/modules/EclRangeDirectiveModule.html +212 -0
  432. package/docs/modules/EclRatingFieldComponentModule.html +212 -0
  433. package/docs/modules/EclSearchFormComponentModule.html +180 -0
  434. package/docs/modules/EclSelectDirectiveModule.html +212 -0
  435. package/docs/modules/EclSiteFooterComponentModule.html +222 -0
  436. package/docs/modules/EclSiteHeaderComponentModule.html +222 -0
  437. package/docs/modules/EclSocialMediaFollowComponentModule.html +222 -0
  438. package/docs/modules/EclSocialMediaShareComponentModule.html +222 -0
  439. package/docs/modules/EclSpinnerComponentModule.html +176 -0
  440. package/docs/modules/EclStickyContainerComponentModule.html +170 -0
  441. package/docs/modules/EclTableDirectiveModule.html +212 -0
  442. package/docs/modules/EclTabsComponentModule.html +225 -0
  443. package/docs/modules/EclTagComponentModule.html +170 -0
  444. package/docs/modules/EclTextAreaDirectiveModule.html +170 -0
  445. package/docs/modules/EclTextInputDirectiveModule.html +171 -0
  446. package/docs/modules/EclTimelineComponentModule.html +194 -0
  447. package/docs/modules.html +828 -0
  448. package/docs/pipes/BoldTextPipe.html +371 -0
  449. package/docs/properties.html +124 -0
  450. package/docs/styles/bootstrap-card.css +219 -0
  451. package/docs/styles/bootstrap.min.css +6 -0
  452. package/docs/styles/compodoc.css +1121 -0
  453. package/docs/styles/dark.css +121 -0
  454. package/docs/styles/ionicons.min.css +11 -0
  455. package/docs/styles/laravel.css +113 -0
  456. package/docs/styles/material.css +131 -0
  457. package/docs/styles/original.css +51 -0
  458. package/docs/styles/postmark.css +238 -0
  459. package/docs/styles/prism.css +301 -0
  460. package/docs/styles/readthedocs.css +117 -0
  461. package/docs/styles/reset.css +129 -0
  462. package/docs/styles/stripe.css +106 -0
  463. package/docs/styles/style.css +7 -0
  464. package/docs/styles/tablesort.css +33 -0
  465. package/docs/styles/vagrant.css +130 -0
  466. package/esm2022/lib/components/ecl-accordion/ecl-accordion-item.component.mjs +12 -5
  467. package/esm2022/lib/components/ecl-accordion/ecl-accordion.component.mjs +4 -4
  468. package/esm2022/lib/components/ecl-accordion/ecl-accordion.module.mjs +5 -5
  469. package/esm2022/lib/components/ecl-app/ecl-app.component.mjs +4 -4
  470. package/esm2022/lib/components/ecl-app/ecl-app.module.mjs +7 -7
  471. package/esm2022/lib/components/ecl-app/index.mjs +1 -2
  472. package/esm2022/lib/components/ecl-banner/ecl-banner-credit.directive.mjs +5 -5
  473. package/esm2022/lib/components/ecl-banner/ecl-banner-description.directive.mjs +9 -9
  474. package/esm2022/lib/components/ecl-banner/ecl-banner-picture.directive.mjs +7 -7
  475. package/esm2022/lib/components/ecl-banner/ecl-banner-title.directive.mjs +9 -9
  476. package/esm2022/lib/components/ecl-banner/ecl-banner.component.mjs +8 -6
  477. package/esm2022/lib/components/ecl-banner/ecl-banner.module.mjs +5 -5
  478. package/esm2022/lib/components/ecl-banner/index.mjs +1 -6
  479. package/esm2022/lib/components/ecl-base.directive.mjs +5 -5
  480. package/esm2022/lib/components/ecl-blockquote/ecl-blockquote-picture.directive.mjs +7 -7
  481. package/esm2022/lib/components/ecl-blockquote/ecl-blockquote.component.mjs +7 -7
  482. package/esm2022/lib/components/ecl-blockquote/ecl-blockquote.module.mjs +5 -5
  483. package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.mjs +6 -4
  484. package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb.component.mjs +4 -4
  485. package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb.module.mjs +5 -5
  486. package/esm2022/lib/components/ecl-breadcrumb/index.mjs +1 -2
  487. package/esm2022/lib/components/ecl-button/ecl-button-label.directive.mjs +4 -4
  488. package/esm2022/lib/components/ecl-button/ecl-button.component.mjs +4 -4
  489. package/esm2022/lib/components/ecl-button/ecl-button.module.mjs +5 -5
  490. package/esm2022/lib/components/ecl-card/ecl-card-body.component.mjs +4 -4
  491. package/esm2022/lib/components/ecl-card/ecl-card-image/ecl-card-image.component.mjs +5 -5
  492. package/esm2022/lib/components/ecl-card/ecl-card-picture.directive.mjs +7 -7
  493. package/esm2022/lib/components/ecl-card/ecl-card.component.mjs +4 -4
  494. package/esm2022/lib/components/ecl-card/ecl-card.module.mjs +5 -5
  495. package/esm2022/lib/components/ecl-carousel/ecl-carousel-item.component.mjs +10 -8
  496. package/esm2022/lib/components/ecl-carousel/ecl-carousel.component.mjs +227 -83
  497. package/esm2022/lib/components/ecl-carousel/ecl-carousel.event.mjs +8 -0
  498. package/esm2022/lib/components/ecl-carousel/ecl-carousel.module.mjs +5 -5
  499. package/esm2022/lib/components/ecl-carousel/index.mjs +2 -1
  500. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.mjs +4 -4
  501. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.mjs +4 -4
  502. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.mjs +4 -4
  503. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter.module.mjs +5 -5
  504. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-help.component.mjs +4 -4
  505. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-input.directive.mjs +4 -4
  506. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-label.component.mjs +6 -4
  507. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox.directive.mjs +6 -4
  508. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox.module.mjs +8 -21
  509. package/esm2022/lib/components/ecl-content-block/ecl-content-block-elements.directive.mjs +52 -52
  510. package/esm2022/lib/components/ecl-content-block/ecl-content-block.component.mjs +4 -4
  511. package/esm2022/lib/components/ecl-content-block/ecl-content-block.module.mjs +5 -5
  512. package/esm2022/lib/components/ecl-content-item/ecl-content-item-image.directive.mjs +7 -7
  513. package/esm2022/lib/components/ecl-content-item/ecl-content-item.component.mjs +4 -4
  514. package/esm2022/lib/components/ecl-content-item/ecl-content-item.module.mjs +5 -5
  515. package/esm2022/lib/components/ecl-date-block/ecl-date-block.component.mjs +5 -5
  516. package/esm2022/lib/components/ecl-date-block/ecl-date-block.module.mjs +5 -5
  517. package/esm2022/lib/components/ecl-date-picker/ecl-date-picker.directive.mjs +18 -11
  518. package/esm2022/lib/components/ecl-date-picker/ecl-date-picker.module.mjs +5 -5
  519. package/esm2022/lib/components/ecl-expandable/ecl-expandable.component.mjs +4 -4
  520. package/esm2022/lib/components/ecl-expandable/ecl-expandable.module.mjs +5 -5
  521. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-description.component.mjs +4 -4
  522. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-item.component.mjs +4 -4
  523. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-title.component.mjs +4 -4
  524. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-value.component.mjs +4 -4
  525. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-view-all.component.mjs +4 -4
  526. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures.component.mjs +4 -4
  527. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures.module.mjs +5 -5
  528. package/esm2022/lib/components/ecl-featured/ecl-featured-item-description.component.mjs +4 -4
  529. package/esm2022/lib/components/ecl-featured/ecl-featured-item-link.directive.mjs +5 -5
  530. package/esm2022/lib/components/ecl-featured/ecl-featured-item.component.mjs +4 -4
  531. package/esm2022/lib/components/ecl-featured/ecl-featured.component.mjs +5 -4
  532. package/esm2022/lib/components/ecl-featured/ecl-featured.module.mjs +5 -5
  533. package/esm2022/lib/components/ecl-feedback-message/ecl-feedback-message.directive.mjs +4 -4
  534. package/esm2022/lib/components/ecl-feedback-message/ecl-feedback-message.module.mjs +5 -5
  535. package/esm2022/lib/components/ecl-file/ecl-file-item/ecl-file-item.component.mjs +5 -4
  536. package/esm2022/lib/components/ecl-file/ecl-file-items/ecl-file-items.component.mjs +5 -4
  537. package/esm2022/lib/components/ecl-file/ecl-file-picture.directive.mjs +7 -7
  538. package/esm2022/lib/components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.mjs +4 -4
  539. package/esm2022/lib/components/ecl-file/ecl-file.component.mjs +4 -4
  540. package/esm2022/lib/components/ecl-file/ecl-file.module.mjs +5 -5
  541. package/esm2022/lib/components/ecl-file-upload/ecl-file-upload.directive.mjs +10 -6
  542. package/esm2022/lib/components/ecl-file-upload/ecl-file-upload.module.mjs +5 -5
  543. package/esm2022/lib/components/ecl-form-group/ecl-form-group.component.mjs +4 -4
  544. package/esm2022/lib/components/ecl-form-group/ecl-form-group.module.mjs +5 -5
  545. package/esm2022/lib/components/ecl-form-label/ecl-form-label.component.mjs +8 -4
  546. package/esm2022/lib/components/ecl-form-label/ecl-form-label.module.mjs +5 -5
  547. package/esm2022/lib/components/ecl-gallery/ecl-gallery-footer.component.mjs +4 -4
  548. package/esm2022/lib/components/ecl-gallery/ecl-gallery-item.component.mjs +6 -5
  549. package/esm2022/lib/components/ecl-gallery/ecl-gallery-media.directive.mjs +7 -7
  550. package/esm2022/lib/components/ecl-gallery/ecl-gallery.component.mjs +16 -10
  551. package/esm2022/lib/components/ecl-gallery/ecl-gallery.module.mjs +5 -5
  552. package/esm2022/lib/components/ecl-help-block/ecl-help-block.directive.mjs +5 -4
  553. package/esm2022/lib/components/ecl-help-block/ecl-help-block.module.mjs +5 -5
  554. package/esm2022/lib/components/ecl-icon/ecl-icon.component.mjs +12 -6
  555. package/esm2022/lib/components/ecl-icon/ecl-icon.module.mjs +5 -5
  556. package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.mjs +4 -4
  557. package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.component.mjs +4 -4
  558. package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.module.mjs +5 -5
  559. package/esm2022/lib/components/ecl-label/ecl-label.directive.mjs +4 -4
  560. package/esm2022/lib/components/ecl-label/ecl-label.module.mjs +5 -5
  561. package/esm2022/lib/components/ecl-link/ecl-link-label.directive.mjs +4 -4
  562. package/esm2022/lib/components/ecl-link/ecl-link.directive.mjs +4 -4
  563. package/esm2022/lib/components/ecl-link/ecl-link.module.mjs +5 -5
  564. package/esm2022/lib/components/ecl-list/ecl-description-list-definition/ecl-description-list-definition.component.mjs +4 -4
  565. package/esm2022/lib/components/ecl-list/ecl-description-list-definition-item.directive.mjs +4 -4
  566. package/esm2022/lib/components/ecl-list/ecl-list.directive.mjs +22 -19
  567. package/esm2022/lib/components/ecl-list/ecl-list.module.mjs +5 -5
  568. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-icon.directive.mjs +4 -4
  569. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-image/ecl-list-illustration-image.component.mjs +5 -4
  570. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-item.component.mjs +4 -4
  571. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-picture.directive.mjs +8 -7
  572. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration.component.mjs +6 -4
  573. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration.module.mjs +5 -5
  574. package/esm2022/lib/components/ecl-media-container/ecl-media-container-iframe.directive.mjs +5 -5
  575. package/esm2022/lib/components/ecl-media-container/ecl-media-container-item.directive.mjs +6 -6
  576. package/esm2022/lib/components/ecl-media-container/ecl-media-container-picture.directive.mjs +4 -4
  577. package/esm2022/lib/components/ecl-media-container/ecl-media-container.component.mjs +7 -7
  578. package/esm2022/lib/components/ecl-media-container/ecl-media-container.module.mjs +5 -5
  579. package/esm2022/lib/components/ecl-menu/common/ecl-menu-item.event.mjs +13 -1
  580. package/esm2022/lib/components/ecl-menu/ecl-menu/ecl-menu-item.component.mjs +134 -6
  581. package/esm2022/lib/components/ecl-menu/ecl-menu/ecl-menu.component.mjs +97 -22
  582. package/esm2022/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.mjs +24 -7
  583. package/esm2022/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.mjs +55 -4
  584. package/esm2022/lib/components/ecl-menu/ecl-menu.module.mjs +5 -5
  585. package/esm2022/lib/components/ecl-message/ecl-message-title.directive.mjs +4 -4
  586. package/esm2022/lib/components/ecl-message/ecl-message.component.mjs +7 -4
  587. package/esm2022/lib/components/ecl-message/ecl-message.module.mjs +5 -5
  588. package/esm2022/lib/components/ecl-modal/ecl-modal-body.component.mjs +4 -4
  589. package/esm2022/lib/components/ecl-modal/ecl-modal-close.directive.mjs +4 -4
  590. package/esm2022/lib/components/ecl-modal/ecl-modal-footer.component.mjs +4 -4
  591. package/esm2022/lib/components/ecl-modal/ecl-modal-header.component.mjs +5 -4
  592. package/esm2022/lib/components/ecl-modal/ecl-modal-trigger.directive.mjs +5 -4
  593. package/esm2022/lib/components/ecl-modal/ecl-modal.component.mjs +8 -4
  594. package/esm2022/lib/components/ecl-modal/ecl-modal.module.mjs +5 -5
  595. package/esm2022/lib/components/ecl-multiselect/boldText.pipe.mjs +6 -6
  596. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.mjs +38 -30
  597. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.mjs +8 -9
  598. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.mjs +6 -8
  599. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.mjs +9 -9
  600. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-option.directive.mjs +5 -8
  601. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect.component.mjs +5 -7
  602. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect.module.mjs +6 -6
  603. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-image/ecl-navigation-list-image.component.mjs +4 -4
  604. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-item.component.mjs +5 -5
  605. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-picture.directive.mjs +7 -7
  606. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list.component.mjs +5 -4
  607. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list.module.mjs +5 -5
  608. package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.mjs +4 -4
  609. package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker.component.mjs +9 -9
  610. package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker.module.mjs +5 -5
  611. package/esm2022/lib/components/ecl-page-header/ecl-page-header-background.directive.mjs +9 -9
  612. package/esm2022/lib/components/ecl-page-header/ecl-page-header-description/ecl-page-header-description.component.mjs +4 -4
  613. package/esm2022/lib/components/ecl-page-header/ecl-page-header-description.directive.mjs +13 -13
  614. package/esm2022/lib/components/ecl-page-header/ecl-page-header-meta.directive.mjs +9 -9
  615. package/esm2022/lib/components/ecl-page-header/ecl-page-header-title.directive.mjs +5 -5
  616. package/esm2022/lib/components/ecl-page-header/ecl-page-header.component.mjs +4 -4
  617. package/esm2022/lib/components/ecl-page-header/ecl-page-header.module.mjs +5 -5
  618. package/esm2022/lib/components/ecl-page-header/index.mjs +1 -2
  619. package/esm2022/lib/components/ecl-pagination/ecl-pagination-item.component.mjs +5 -4
  620. package/esm2022/lib/components/ecl-pagination/ecl-pagination.component.mjs +8 -4
  621. package/esm2022/lib/components/ecl-pagination/ecl-pagination.module.mjs +5 -5
  622. package/esm2022/lib/components/ecl-popover/ecl-popover-content.directive.mjs +4 -4
  623. package/esm2022/lib/components/ecl-popover/ecl-popover-list.directive.mjs +10 -10
  624. package/esm2022/lib/components/ecl-popover/ecl-popover-toggle.directive.mjs +5 -4
  625. package/esm2022/lib/components/ecl-popover/ecl-popover.component.mjs +5 -5
  626. package/esm2022/lib/components/ecl-popover/ecl-popover.module.mjs +5 -5
  627. package/esm2022/lib/components/ecl-radio/ecl-radio-help.component.mjs +5 -4
  628. package/esm2022/lib/components/ecl-radio/ecl-radio-input.directive.mjs +4 -4
  629. package/esm2022/lib/components/ecl-radio/ecl-radio-label.component.mjs +6 -4
  630. package/esm2022/lib/components/ecl-radio/ecl-radio.directive.mjs +6 -4
  631. package/esm2022/lib/components/ecl-radio/ecl-radio.module.mjs +5 -5
  632. package/esm2022/lib/components/ecl-range/ecl-range-value.component.mjs +4 -4
  633. package/esm2022/lib/components/ecl-range/ecl-range.directive.mjs +5 -4
  634. package/esm2022/lib/components/ecl-range/ecl-range.module.mjs +5 -5
  635. package/esm2022/lib/components/ecl-rating-field/ecl-rating-field.component.mjs +16 -7
  636. package/esm2022/lib/components/ecl-rating-field/ecl-rating-field.module.mjs +5 -5
  637. package/esm2022/lib/components/ecl-search-form/ecl-search-form.component.mjs +13 -6
  638. package/esm2022/lib/components/ecl-search-form/ecl-search-form.module.mjs +5 -5
  639. package/esm2022/lib/components/ecl-select/ecl-select-container.component.mjs +6 -6
  640. package/esm2022/lib/components/ecl-select/ecl-select.directive.mjs +6 -4
  641. package/esm2022/lib/components/ecl-select/ecl-select.module.mjs +5 -5
  642. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ec/ecl-site-footer-fixed-content.mjs +6 -5
  643. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-column.directive.mjs +13 -13
  644. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-description.directive.mjs +5 -5
  645. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-link.directive.mjs +16 -16
  646. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-list.directive.mjs +21 -21
  647. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-section.directive.mjs +8 -4
  648. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-title.directive.mjs +10 -9
  649. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.mjs +16 -5
  650. package/esm2022/lib/components/ecl-site-footer/ecl-site-footer.component.mjs +5 -4
  651. package/esm2022/lib/components/ecl-site-footer/ecl-site-footer.module.mjs +5 -5
  652. package/esm2022/lib/components/ecl-site-footer/index.mjs +1 -2
  653. package/esm2022/lib/components/ecl-site-header/action/ecl-site-header-action.component.mjs +4 -4
  654. package/esm2022/lib/components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.mjs +4 -4
  655. package/esm2022/lib/components/ecl-site-header/cta/ecl-site-header-cta.directive.mjs +4 -4
  656. package/esm2022/lib/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.mjs +45 -12
  657. package/esm2022/lib/components/ecl-site-header/ecl-site-header.component.mjs +4 -4
  658. package/esm2022/lib/components/ecl-site-header/ecl-site-header.module.mjs +5 -5
  659. package/esm2022/lib/components/ecl-site-header/index.mjs +1 -2
  660. package/esm2022/lib/components/ecl-site-header/language/ecl-site-header-language-popover.component.mjs +4 -4
  661. package/esm2022/lib/components/ecl-site-header/language/ecl-site-header-language.component.mjs +7 -6
  662. package/esm2022/lib/components/ecl-site-header/login/ecl-site-header-login-details.directive.mjs +9 -9
  663. package/esm2022/lib/components/ecl-site-header/login/ecl-site-header-login.component.mjs +5 -4
  664. package/esm2022/lib/components/ecl-site-header/message/ecl-site-header-message.component.mjs +4 -4
  665. package/esm2022/lib/components/ecl-site-header/search/ecl-site-header-search.component.mjs +12 -5
  666. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow-item.component.mjs +4 -4
  667. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow-link.directive.mjs +4 -4
  668. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow.component.mjs +5 -4
  669. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow.module.mjs +5 -5
  670. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share-item.component.mjs +4 -4
  671. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share-link.directive.mjs +4 -4
  672. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share.component.mjs +5 -4
  673. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share.module.mjs +5 -5
  674. package/esm2022/lib/components/ecl-spinner/ecl-spinner-label.directive.mjs +5 -7
  675. package/esm2022/lib/components/ecl-spinner/ecl-spinner.component.mjs +6 -4
  676. package/esm2022/lib/components/ecl-spinner/ecl-spinner.module.mjs +5 -5
  677. package/esm2022/lib/components/ecl-sticky-container/ecl-sticky-container.component.mjs +5 -4
  678. package/esm2022/lib/components/ecl-sticky-container/ecl-sticky-container.module.mjs +5 -5
  679. package/esm2022/lib/components/ecl-table/ecl-table-sort-button.component.mjs +4 -4
  680. package/esm2022/lib/components/ecl-table/ecl-table.directive.mjs +26 -25
  681. package/esm2022/lib/components/ecl-table/ecl-table.module.mjs +5 -5
  682. package/esm2022/lib/components/ecl-tabs/ecl-tab-label.component.mjs +9 -5
  683. package/esm2022/lib/components/ecl-tabs/ecl-tab-more.component.mjs +11 -14
  684. package/esm2022/lib/components/ecl-tabs/ecl-tab.component.mjs +50 -13
  685. package/esm2022/lib/components/ecl-tabs/ecl-tabs.component.mjs +339 -36
  686. package/esm2022/lib/components/ecl-tabs/ecl-tabs.module.mjs +23 -6
  687. package/esm2022/lib/components/ecl-tag/ecl-tag.component.mjs +4 -4
  688. package/esm2022/lib/components/ecl-tag/ecl-tag.module.mjs +5 -5
  689. package/esm2022/lib/components/ecl-text-area/ecl-text-area.directive.mjs +5 -4
  690. package/esm2022/lib/components/ecl-text-area/ecl-text-area.module.mjs +5 -5
  691. package/esm2022/lib/components/ecl-text-input/ecl-text-input.directive.mjs +7 -5
  692. package/esm2022/lib/components/ecl-text-input/ecl-text-input.module.mjs +6 -6
  693. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-label.directive.mjs +4 -4
  694. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-title.directive.mjs +4 -4
  695. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-toggler.component.mjs +4 -4
  696. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item.component.mjs +5 -4
  697. package/esm2022/lib/components/ecl-timeline/ecl-timeline.component.mjs +4 -4
  698. package/esm2022/lib/components/ecl-timeline/ecl-timeline.module.mjs +5 -5
  699. package/esm2022/lib/components/index.mjs +1 -5
  700. package/esm2022/lib/model/ecl-dom.event.mjs +1 -1
  701. package/esm2022/lib/services/ecl-default-language.service.mjs +4 -4
  702. package/esm2022/lib/services/ecl-theme.service.mjs +4 -4
  703. package/esm2022/lib/shared/ecl-all.module.mjs +8 -102
  704. package/esm2022/lib/utils/constants/constants.mjs +5 -3
  705. package/esm2022/lib/utils/directives/ecl-click-outside/ecl-click-outside.directive.mjs +4 -4
  706. package/esm2022/lib/utils/directives/ecl-hidden/ecl-hidden.directive.mjs +4 -4
  707. package/esm2022/lib/utils/directives/ecl-hidden/ecl-hidden.module.mjs +5 -5
  708. package/fesm2022/eui-ecl.mjs +8680 -11639
  709. package/fesm2022/eui-ecl.mjs.map +1 -1
  710. package/lib/components/ecl-accordion/ecl-accordion-item.component.d.ts +5 -2
  711. package/lib/components/ecl-accordion/ecl-accordion-item.component.d.ts.map +1 -1
  712. package/lib/components/ecl-accordion/ecl-accordion.component.d.ts.map +1 -1
  713. package/lib/components/ecl-app/ecl-app.component.d.ts.map +1 -1
  714. package/lib/components/ecl-app/ecl-app.module.d.ts +2 -2
  715. package/lib/components/ecl-app/index.d.ts +0 -1
  716. package/lib/components/ecl-app/index.d.ts.map +1 -1
  717. package/lib/components/ecl-banner/ecl-banner.component.d.ts.map +1 -1
  718. package/lib/components/ecl-banner/index.d.ts +0 -2
  719. package/lib/components/ecl-banner/index.d.ts.map +1 -1
  720. package/lib/components/ecl-blockquote/ecl-blockquote.component.d.ts +4 -4
  721. package/lib/components/ecl-blockquote/ecl-blockquote.component.d.ts.map +1 -1
  722. package/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts +4 -3
  723. package/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts.map +1 -1
  724. package/lib/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts.map +1 -1
  725. package/lib/components/ecl-breadcrumb/index.d.ts +0 -1
  726. package/lib/components/ecl-breadcrumb/index.d.ts.map +1 -1
  727. package/lib/components/ecl-button/ecl-button-label.directive.d.ts.map +1 -1
  728. package/lib/components/ecl-button/ecl-button.component.d.ts.map +1 -1
  729. package/lib/components/ecl-card/ecl-card-body.component.d.ts.map +1 -1
  730. package/lib/components/ecl-card/ecl-card-image/ecl-card-image.component.d.ts +1 -1
  731. package/lib/components/ecl-card/ecl-card.component.d.ts.map +1 -1
  732. package/lib/components/ecl-carousel/ecl-carousel-item.component.d.ts +5 -3
  733. package/lib/components/ecl-carousel/ecl-carousel-item.component.d.ts.map +1 -1
  734. package/lib/components/ecl-carousel/ecl-carousel.component.d.ts +30 -12
  735. package/lib/components/ecl-carousel/ecl-carousel.component.d.ts.map +1 -1
  736. package/lib/components/ecl-carousel/ecl-carousel.event.d.ts +7 -0
  737. package/lib/components/ecl-carousel/ecl-carousel.event.d.ts.map +1 -0
  738. package/lib/components/ecl-carousel/index.d.ts +1 -0
  739. package/lib/components/ecl-carousel/index.d.ts.map +1 -1
  740. package/lib/components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.d.ts.map +1 -1
  741. package/lib/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.d.ts.map +1 -1
  742. package/lib/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.d.ts.map +1 -1
  743. package/lib/components/ecl-checkbox/ecl-checkbox-help.component.d.ts +1 -1
  744. package/lib/components/ecl-checkbox/ecl-checkbox-help.component.d.ts.map +1 -1
  745. package/lib/components/ecl-checkbox/ecl-checkbox-input.directive.d.ts +1 -1
  746. package/lib/components/ecl-checkbox/ecl-checkbox-input.directive.d.ts.map +1 -1
  747. package/lib/components/ecl-checkbox/ecl-checkbox-label.component.d.ts +1 -1
  748. package/lib/components/ecl-checkbox/ecl-checkbox-label.component.d.ts.map +1 -1
  749. package/lib/components/ecl-checkbox/ecl-checkbox.directive.d.ts +1 -1
  750. package/lib/components/ecl-checkbox/ecl-checkbox.directive.d.ts.map +1 -1
  751. package/lib/components/ecl-checkbox/ecl-checkbox.module.d.ts.map +1 -1
  752. package/lib/components/ecl-content-block/ecl-content-block-elements.directive.d.ts.map +1 -1
  753. package/lib/components/ecl-content-block/ecl-content-block.component.d.ts.map +1 -1
  754. package/lib/components/ecl-content-item/ecl-content-item-image.directive.d.ts.map +1 -1
  755. package/lib/components/ecl-content-item/ecl-content-item.component.d.ts.map +1 -1
  756. package/lib/components/ecl-date-block/ecl-date-block.component.d.ts.map +1 -1
  757. package/lib/components/ecl-date-picker/ecl-date-picker.directive.d.ts +2 -2
  758. package/lib/components/ecl-date-picker/ecl-date-picker.directive.d.ts.map +1 -1
  759. package/lib/components/ecl-expandable/ecl-expandable.component.d.ts.map +1 -1
  760. package/lib/components/ecl-fact-figures/ecl-fact-figures-description.component.d.ts.map +1 -1
  761. package/lib/components/ecl-fact-figures/ecl-fact-figures-item.component.d.ts.map +1 -1
  762. package/lib/components/ecl-fact-figures/ecl-fact-figures-title.component.d.ts.map +1 -1
  763. package/lib/components/ecl-fact-figures/ecl-fact-figures-value.component.d.ts.map +1 -1
  764. package/lib/components/ecl-fact-figures/ecl-fact-figures-view-all.component.d.ts.map +1 -1
  765. package/lib/components/ecl-fact-figures/ecl-fact-figures.component.d.ts.map +1 -1
  766. package/lib/components/ecl-featured/ecl-featured-item.component.d.ts.map +1 -1
  767. package/lib/components/ecl-featured/ecl-featured.component.d.ts.map +1 -1
  768. package/lib/components/ecl-feedback-message/ecl-feedback-message.directive.d.ts.map +1 -1
  769. package/lib/components/ecl-file/ecl-file-item/ecl-file-item.component.d.ts.map +1 -1
  770. package/lib/components/ecl-file/ecl-file-items/ecl-file-items.component.d.ts.map +1 -1
  771. package/lib/components/ecl-file/ecl-file.component.d.ts +1 -1
  772. package/lib/components/ecl-file/ecl-file.component.d.ts.map +1 -1
  773. package/lib/components/ecl-file-upload/ecl-file-upload.directive.d.ts.map +1 -1
  774. package/lib/components/ecl-form-group/ecl-form-group.component.d.ts.map +1 -1
  775. package/lib/components/ecl-form-label/ecl-form-label.component.d.ts.map +1 -1
  776. package/lib/components/ecl-gallery/ecl-gallery-item.component.d.ts +1 -1
  777. package/lib/components/ecl-gallery/ecl-gallery-item.component.d.ts.map +1 -1
  778. package/lib/components/ecl-gallery/ecl-gallery.component.d.ts +5 -5
  779. package/lib/components/ecl-gallery/ecl-gallery.component.d.ts.map +1 -1
  780. package/lib/components/ecl-help-block/ecl-help-block.directive.d.ts.map +1 -1
  781. package/lib/components/ecl-icon/ecl-icon.component.d.ts +2 -3
  782. package/lib/components/ecl-icon/ecl-icon.component.d.ts.map +1 -1
  783. package/lib/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.d.ts.map +1 -1
  784. package/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.component.d.ts.map +1 -1
  785. package/lib/components/ecl-label/ecl-label.directive.d.ts.map +1 -1
  786. package/lib/components/ecl-link/ecl-link-label.directive.d.ts.map +1 -1
  787. package/lib/components/ecl-link/ecl-link.directive.d.ts.map +1 -1
  788. package/lib/components/ecl-list/ecl-list.directive.d.ts.map +1 -1
  789. package/lib/components/ecl-list-illustration/ecl-list-illustration-image/ecl-list-illustration-image.component.d.ts.map +1 -1
  790. package/lib/components/ecl-list-illustration/ecl-list-illustration-picture.directive.d.ts.map +1 -1
  791. package/lib/components/ecl-list-illustration/ecl-list-illustration.component.d.ts.map +1 -1
  792. package/lib/components/ecl-media-container/ecl-media-container-item.directive.d.ts +1 -1
  793. package/lib/components/ecl-media-container/ecl-media-container-item.directive.d.ts.map +1 -1
  794. package/lib/components/ecl-media-container/ecl-media-container-picture.directive.d.ts.map +1 -1
  795. package/lib/components/ecl-media-container/ecl-media-container.component.d.ts +4 -4
  796. package/lib/components/ecl-menu/common/ecl-menu-item.event.d.ts +10 -1
  797. package/lib/components/ecl-menu/common/ecl-menu-item.event.d.ts.map +1 -1
  798. package/lib/components/ecl-menu/ecl-menu/ecl-menu-item.component.d.ts +20 -7
  799. package/lib/components/ecl-menu/ecl-menu/ecl-menu-item.component.d.ts.map +1 -1
  800. package/lib/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts +10 -1
  801. package/lib/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts.map +1 -1
  802. package/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts +12 -7
  803. package/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts.map +1 -1
  804. package/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.d.ts +9 -2
  805. package/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.d.ts.map +1 -1
  806. package/lib/components/ecl-message/ecl-message-title.directive.d.ts.map +1 -1
  807. package/lib/components/ecl-message/ecl-message.component.d.ts +1 -1
  808. package/lib/components/ecl-message/ecl-message.component.d.ts.map +1 -1
  809. package/lib/components/ecl-modal/ecl-modal-close.directive.d.ts.map +1 -1
  810. package/lib/components/ecl-modal/ecl-modal-footer.component.d.ts.map +1 -1
  811. package/lib/components/ecl-modal/ecl-modal-header.component.d.ts +1 -1
  812. package/lib/components/ecl-modal/ecl-modal-header.component.d.ts.map +1 -1
  813. package/lib/components/ecl-modal/ecl-modal-trigger.directive.d.ts +4 -4
  814. package/lib/components/ecl-modal/ecl-modal-trigger.directive.d.ts.map +1 -1
  815. package/lib/components/ecl-modal/ecl-modal.component.d.ts +1 -1
  816. package/lib/components/ecl-modal/ecl-modal.component.d.ts.map +1 -1
  817. package/lib/components/ecl-multiselect/boldText.pipe.d.ts +1 -1
  818. package/lib/components/ecl-multiselect/boldText.pipe.d.ts.map +1 -1
  819. package/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts +2 -2
  820. package/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts.map +1 -1
  821. package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts.map +1 -1
  822. package/lib/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.d.ts.map +1 -1
  823. package/lib/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.d.ts.map +1 -1
  824. package/lib/components/ecl-multiselect/ecl-multiselect-option.directive.d.ts +3 -2
  825. package/lib/components/ecl-multiselect/ecl-multiselect-option.directive.d.ts.map +1 -1
  826. package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts +3 -2
  827. package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts.map +1 -1
  828. package/lib/components/ecl-navigation-list/ecl-navigation-list.component.d.ts.map +1 -1
  829. package/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.d.ts +2 -2
  830. package/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.d.ts.map +1 -1
  831. package/lib/components/ecl-news-ticker/ecl-news-ticker.component.d.ts.map +1 -1
  832. package/lib/components/ecl-page-header/ecl-page-header.component.d.ts.map +1 -1
  833. package/lib/components/ecl-page-header/index.d.ts +0 -1
  834. package/lib/components/ecl-page-header/index.d.ts.map +1 -1
  835. package/lib/components/ecl-pagination/ecl-pagination-item.component.d.ts +4 -3
  836. package/lib/components/ecl-pagination/ecl-pagination-item.component.d.ts.map +1 -1
  837. package/lib/components/ecl-pagination/ecl-pagination.component.d.ts.map +1 -1
  838. package/lib/components/ecl-popover/ecl-popover-content.directive.d.ts.map +1 -1
  839. package/lib/components/ecl-popover/ecl-popover-list.directive.d.ts.map +1 -1
  840. package/lib/components/ecl-popover/ecl-popover-toggle.directive.d.ts.map +1 -1
  841. package/lib/components/ecl-popover/ecl-popover.component.d.ts +1 -1
  842. package/lib/components/ecl-popover/ecl-popover.component.d.ts.map +1 -1
  843. package/lib/components/ecl-radio/ecl-radio-help.component.d.ts.map +1 -1
  844. package/lib/components/ecl-radio/ecl-radio-input.directive.d.ts.map +1 -1
  845. package/lib/components/ecl-radio/ecl-radio-label.component.d.ts.map +1 -1
  846. package/lib/components/ecl-radio/ecl-radio.directive.d.ts.map +1 -1
  847. package/lib/components/ecl-range/ecl-range-value.component.d.ts.map +1 -1
  848. package/lib/components/ecl-range/ecl-range.directive.d.ts.map +1 -1
  849. package/lib/components/ecl-rating-field/ecl-rating-field.component.d.ts +2 -2
  850. package/lib/components/ecl-rating-field/ecl-rating-field.component.d.ts.map +1 -1
  851. package/lib/components/ecl-search-form/ecl-search-form.component.d.ts +4 -4
  852. package/lib/components/ecl-search-form/ecl-search-form.component.d.ts.map +1 -1
  853. package/lib/components/ecl-select/ecl-select-container.component.d.ts.map +1 -1
  854. package/lib/components/ecl-select/ecl-select.directive.d.ts +2 -2
  855. package/lib/components/ecl-select/ecl-select.directive.d.ts.map +1 -1
  856. package/lib/components/ecl-site-footer/ecl-footer-elements/ec/ecl-site-footer-fixed-content.d.ts.map +1 -1
  857. package/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-list.directive.d.ts.map +1 -1
  858. package/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-section.directive.d.ts.map +1 -1
  859. package/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-title.directive.d.ts.map +1 -1
  860. package/lib/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.d.ts +3 -0
  861. package/lib/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.d.ts.map +1 -1
  862. package/lib/components/ecl-site-footer/ecl-site-footer.component.d.ts.map +1 -1
  863. package/lib/components/ecl-site-footer/index.d.ts +0 -1
  864. package/lib/components/ecl-site-footer/index.d.ts.map +1 -1
  865. package/lib/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.d.ts +10 -2
  866. package/lib/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.d.ts.map +1 -1
  867. package/lib/components/ecl-site-header/ecl-site-header.component.d.ts.map +1 -1
  868. package/lib/components/ecl-site-header/index.d.ts +0 -1
  869. package/lib/components/ecl-site-header/index.d.ts.map +1 -1
  870. package/lib/components/ecl-site-header/language/ecl-site-header-language.component.d.ts +2 -2
  871. package/lib/components/ecl-site-header/language/ecl-site-header-language.component.d.ts.map +1 -1
  872. package/lib/components/ecl-site-header/login/ecl-site-header-login.component.d.ts.map +1 -1
  873. package/lib/components/ecl-site-header/message/ecl-site-header-message.component.d.ts.map +1 -1
  874. package/lib/components/ecl-site-header/search/ecl-site-header-search.component.d.ts +2 -2
  875. package/lib/components/ecl-site-header/search/ecl-site-header-search.component.d.ts.map +1 -1
  876. package/lib/components/ecl-social-media-follow/ecl-social-media-follow-item.component.d.ts.map +1 -1
  877. package/lib/components/ecl-social-media-follow/ecl-social-media-follow.component.d.ts.map +1 -1
  878. package/lib/components/ecl-social-media-share/ecl-social-media-share-item.component.d.ts.map +1 -1
  879. package/lib/components/ecl-social-media-share/ecl-social-media-share.component.d.ts.map +1 -1
  880. package/lib/components/ecl-spinner/ecl-spinner-label.directive.d.ts +1 -2
  881. package/lib/components/ecl-spinner/ecl-spinner-label.directive.d.ts.map +1 -1
  882. package/lib/components/ecl-spinner/ecl-spinner.component.d.ts.map +1 -1
  883. package/lib/components/ecl-sticky-container/ecl-sticky-container.component.d.ts.map +1 -1
  884. package/lib/components/ecl-table/ecl-table-sort-button.component.d.ts.map +1 -1
  885. package/lib/components/ecl-table/ecl-table.directive.d.ts +1 -1
  886. package/lib/components/ecl-table/ecl-table.directive.d.ts.map +1 -1
  887. package/lib/components/ecl-tabs/ecl-tab-label.component.d.ts +3 -0
  888. package/lib/components/ecl-tabs/ecl-tab-label.component.d.ts.map +1 -1
  889. package/lib/components/ecl-tabs/ecl-tab-more.component.d.ts +0 -4
  890. package/lib/components/ecl-tabs/ecl-tab-more.component.d.ts.map +1 -1
  891. package/lib/components/ecl-tabs/ecl-tab.component.d.ts +21 -7
  892. package/lib/components/ecl-tabs/ecl-tab.component.d.ts.map +1 -1
  893. package/lib/components/ecl-tabs/ecl-tabs.component.d.ts +59 -8
  894. package/lib/components/ecl-tabs/ecl-tabs.component.d.ts.map +1 -1
  895. package/lib/components/ecl-tabs/ecl-tabs.module.d.ts +2 -1
  896. package/lib/components/ecl-tabs/ecl-tabs.module.d.ts.map +1 -1
  897. package/lib/components/ecl-tag/ecl-tag.component.d.ts.map +1 -1
  898. package/lib/components/ecl-text-area/ecl-text-area.directive.d.ts +1 -1
  899. package/lib/components/ecl-text-area/ecl-text-area.directive.d.ts.map +1 -1
  900. package/lib/components/ecl-text-input/ecl-text-input.directive.d.ts +1 -1
  901. package/lib/components/ecl-text-input/ecl-text-input.directive.d.ts.map +1 -1
  902. package/lib/components/ecl-timeline/ecl-timeline-item-label.directive.d.ts.map +1 -1
  903. package/lib/components/ecl-timeline/ecl-timeline-item-title.directive.d.ts.map +1 -1
  904. package/lib/components/ecl-timeline/ecl-timeline-item-toggler.component.d.ts +1 -1
  905. package/lib/components/ecl-timeline/ecl-timeline-item-toggler.component.d.ts.map +1 -1
  906. package/lib/components/ecl-timeline/ecl-timeline-item.component.d.ts +1 -1
  907. package/lib/components/ecl-timeline/ecl-timeline-item.component.d.ts.map +1 -1
  908. package/lib/components/ecl-timeline/ecl-timeline.component.d.ts +1 -1
  909. package/lib/components/ecl-timeline/ecl-timeline.component.d.ts.map +1 -1
  910. package/lib/components/index.d.ts +0 -1
  911. package/lib/components/index.d.ts.map +1 -1
  912. package/lib/model/ecl-dom.event.d.ts.map +1 -1
  913. package/lib/services/ecl-default-language.service.d.ts.map +1 -1
  914. package/lib/services/ecl-theme.service.d.ts.map +1 -1
  915. package/lib/shared/ecl-all.module.d.ts +1 -19
  916. package/lib/shared/ecl-all.module.d.ts.map +1 -1
  917. package/lib/utils/constants/constants.d.ts +4 -2
  918. package/lib/utils/constants/constants.d.ts.map +1 -1
  919. package/lib/utils/directives/ecl-click-outside/ecl-click-outside.directive.d.ts.map +1 -1
  920. package/package.json +2 -2
  921. package/esm2022/lib/components/ecl-app/deprecated/common/ecl-app.component.mjs +0 -98
  922. package/esm2022/lib/components/ecl-app/deprecated/common/index.mjs +0 -2
  923. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-core/ecl-app-core.component.mjs +0 -41
  924. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-core/ecl-app-core.module.mjs +0 -23
  925. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-core/index.mjs +0 -3
  926. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-harmonised/ecl-app-harmonised.component.mjs +0 -41
  927. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-harmonised/ecl-app-harmonised.module.mjs +0 -23
  928. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-harmonised/index.mjs +0 -3
  929. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-standardised/ecl-app-standardised.component.mjs +0 -41
  930. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-standardised/ecl-app-standardised.module.mjs +0 -23
  931. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-standardised/index.mjs +0 -3
  932. package/esm2022/lib/components/ecl-app/deprecated/index.mjs +0 -5
  933. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-credit.directive.mjs +0 -24
  934. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-cta-link.directive.mjs +0 -25
  935. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-description.directive.mjs +0 -24
  936. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-title.directive.mjs +0 -24
  937. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner.component.mjs +0 -67
  938. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner.module.mjs +0 -44
  939. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/index.mjs +0 -7
  940. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-credit.directive.mjs +0 -24
  941. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-cta-link.directive.mjs +0 -25
  942. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-description.directive.mjs +0 -24
  943. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-title.directive.mjs +0 -24
  944. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner.component.mjs +0 -65
  945. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner.module.mjs +0 -44
  946. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/index.mjs +0 -7
  947. package/esm2022/lib/components/ecl-breadcrumb/deprecated/common/ecl-breadcrumb-segment.component.mjs +0 -65
  948. package/esm2022/lib/components/ecl-breadcrumb/deprecated/common/ecl-breadcrumb.component.mjs +0 -101
  949. package/esm2022/lib/components/ecl-breadcrumb/deprecated/common/index.mjs +0 -3
  950. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core-segment.component.mjs +0 -31
  951. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core.component.mjs +0 -26
  952. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core.module.mjs +0 -26
  953. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/index.mjs +0 -4
  954. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised-segment.component.mjs +0 -34
  955. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised.component.mjs +0 -26
  956. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised.module.mjs +0 -26
  957. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/index.mjs +0 -4
  958. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised-segment.component.mjs +0 -34
  959. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised.component.mjs +0 -26
  960. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised.module.mjs +0 -26
  961. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/index.mjs +0 -4
  962. package/esm2022/lib/components/ecl-breadcrumb/deprecated/index.mjs +0 -5
  963. package/esm2022/lib/components/ecl-language-list/ecl-language-list-item.component.mjs +0 -59
  964. package/esm2022/lib/components/ecl-language-list/ecl-language-list.component.mjs +0 -188
  965. package/esm2022/lib/components/ecl-language-list/ecl-language-list.module.mjs +0 -27
  966. package/esm2022/lib/components/ecl-language-list/index.mjs +0 -4
  967. package/esm2022/lib/components/ecl-page-header/deprecated/common/ecl-page-header.component.mjs +0 -35
  968. package/esm2022/lib/components/ecl-page-header/deprecated/common/index.mjs +0 -2
  969. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-description.directive.mjs +0 -64
  970. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-meta.directive.mjs +0 -44
  971. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-title.directive.mjs +0 -24
  972. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core.component.mjs +0 -34
  973. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core.module.mjs +0 -52
  974. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/index.mjs +0 -6
  975. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-description.directive.mjs +0 -64
  976. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-meta.directive.mjs +0 -44
  977. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-title.directive.mjs +0 -24
  978. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised.component.mjs +0 -28
  979. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised.module.mjs +0 -52
  980. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/index.mjs +0 -6
  981. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-description.directive.mjs +0 -64
  982. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-meta.directive.mjs +0 -44
  983. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-title.directive.mjs +0 -24
  984. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised.component.mjs +0 -35
  985. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised.module.mjs +0 -52
  986. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/index.mjs +0 -6
  987. package/esm2022/lib/components/ecl-page-header/deprecated/index.mjs +0 -5
  988. package/esm2022/lib/components/ecl-site-footer/deprecated/common/ecl-footer.component.mjs +0 -46
  989. package/esm2022/lib/components/ecl-site-footer/deprecated/common/index.mjs +0 -2
  990. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-core.component.mjs +0 -34
  991. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-core.module.mjs +0 -68
  992. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-column.directive.mjs +0 -24
  993. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-description.directive.mjs +0 -24
  994. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-link.directive.mjs +0 -24
  995. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-list.directive.mjs +0 -53
  996. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-section.directive.mjs +0 -34
  997. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-title.directive.mjs +0 -44
  998. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/index.mjs +0 -9
  999. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-column.directive.mjs +0 -64
  1000. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-description.directive.mjs +0 -24
  1001. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-link.directive.mjs +0 -64
  1002. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-list.directive.mjs +0 -114
  1003. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-section.directive.mjs +0 -36
  1004. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-title.directive.mjs +0 -52
  1005. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-harmonised.component.mjs +0 -36
  1006. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-harmonised.module.mjs +0 -98
  1007. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/index.mjs +0 -9
  1008. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-column.directive.mjs +0 -64
  1009. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-description.directive.mjs +0 -24
  1010. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-link.directive.mjs +0 -64
  1011. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-list.directive.mjs +0 -51
  1012. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-section.directive.mjs +0 -36
  1013. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-title.directive.mjs +0 -52
  1014. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-standardised.component.mjs +0 -35
  1015. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-standardised.module.mjs +0 -82
  1016. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/index.mjs +0 -9
  1017. package/esm2022/lib/components/ecl-site-footer/deprecated/index.mjs +0 -5
  1018. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-action.component.mjs +0 -16
  1019. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-banner-top.component.mjs +0 -16
  1020. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-language.component.mjs +0 -31
  1021. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-login.component.mjs +0 -51
  1022. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-search.component.mjs +0 -42
  1023. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header.component.mjs +0 -85
  1024. package/esm2022/lib/components/ecl-site-header/deprecated/common/index.mjs +0 -7
  1025. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/action/ecl-site-header-core-action.component.mjs +0 -22
  1026. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/action/index.mjs +0 -2
  1027. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/ecl-site-header-core.component.mjs +0 -39
  1028. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/ecl-site-header-core.module.mjs +0 -81
  1029. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/index.mjs +0 -7
  1030. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/language/ecl-site-header-core-language.component.mjs +0 -17
  1031. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/language/index.mjs +0 -2
  1032. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/ecl-site-header-core-login-details.directive.mjs +0 -44
  1033. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/ecl-site-header-core-login.component.mjs +0 -28
  1034. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/index.mjs +0 -3
  1035. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/search/ecl-site-header-core-search.component.mjs +0 -29
  1036. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/search/index.mjs +0 -2
  1037. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/action/ecl-site-header-harmonised-action.component.mjs +0 -22
  1038. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/action/index.mjs +0 -2
  1039. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/banner-top/ecl-site-header-harmonised-banner-top.component.mjs +0 -15
  1040. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/banner-top/index.mjs +0 -2
  1041. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/ecl-site-header-harmonised.component.mjs +0 -44
  1042. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/ecl-site-header-harmonised.module.mjs +0 -86
  1043. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/index.mjs +0 -8
  1044. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/language/ecl-site-header-harmonised-language.component.mjs +0 -17
  1045. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/language/index.mjs +0 -2
  1046. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/ecl-site-header-harmonised-login-details.directive.mjs +0 -44
  1047. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/ecl-site-header-harmonised-login.component.mjs +0 -28
  1048. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/index.mjs +0 -3
  1049. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/search/ecl-site-header-harmonised-search.component.mjs +0 -28
  1050. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/search/index.mjs +0 -2
  1051. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/action/ecl-site-header-standardised-action.component.mjs +0 -22
  1052. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/action/index.mjs +0 -2
  1053. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/banner-top/ecl-site-header-standardised-banner-top.component.mjs +0 -15
  1054. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/banner-top/index.mjs +0 -2
  1055. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/cta/ecl-site-header-standardised-cta.directive.mjs +0 -24
  1056. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/ecl-site-header-standardised.component.mjs +0 -44
  1057. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/ecl-site-header-standardised.module.mjs +0 -91
  1058. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/index.mjs +0 -9
  1059. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/language/ecl-site-header-standardised-language.component.mjs +0 -17
  1060. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/language/index.mjs +0 -2
  1061. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/ecl-site-header-standardised-login-details.directive.mjs +0 -44
  1062. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/ecl-site-header-standardised-login.component.mjs +0 -28
  1063. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/index.mjs +0 -3
  1064. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/search/ecl-site-header-standardised-search.component.mjs +0 -29
  1065. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/search/index.mjs +0 -2
  1066. package/esm2022/lib/components/ecl-site-header/deprecated/index.mjs +0 -5
  1067. package/lib/components/ecl-app/deprecated/common/ecl-app.component.d.ts +0 -37
  1068. package/lib/components/ecl-app/deprecated/common/ecl-app.component.d.ts.map +0 -1
  1069. package/lib/components/ecl-app/deprecated/common/index.d.ts +0 -2
  1070. package/lib/components/ecl-app/deprecated/common/index.d.ts.map +0 -1
  1071. package/lib/components/ecl-app/deprecated/ecl-app-core/ecl-app-core.component.d.ts +0 -22
  1072. package/lib/components/ecl-app/deprecated/ecl-app-core/ecl-app-core.component.d.ts.map +0 -1
  1073. package/lib/components/ecl-app/deprecated/ecl-app-core/ecl-app-core.module.d.ts +0 -14
  1074. package/lib/components/ecl-app/deprecated/ecl-app-core/ecl-app-core.module.d.ts.map +0 -1
  1075. package/lib/components/ecl-app/deprecated/ecl-app-core/index.d.ts +0 -3
  1076. package/lib/components/ecl-app/deprecated/ecl-app-core/index.d.ts.map +0 -1
  1077. package/lib/components/ecl-app/deprecated/ecl-app-harmonised/ecl-app-harmonised.component.d.ts +0 -22
  1078. package/lib/components/ecl-app/deprecated/ecl-app-harmonised/ecl-app-harmonised.component.d.ts.map +0 -1
  1079. package/lib/components/ecl-app/deprecated/ecl-app-harmonised/ecl-app-harmonised.module.d.ts +0 -14
  1080. package/lib/components/ecl-app/deprecated/ecl-app-harmonised/ecl-app-harmonised.module.d.ts.map +0 -1
  1081. package/lib/components/ecl-app/deprecated/ecl-app-harmonised/index.d.ts +0 -3
  1082. package/lib/components/ecl-app/deprecated/ecl-app-harmonised/index.d.ts.map +0 -1
  1083. package/lib/components/ecl-app/deprecated/ecl-app-standardised/ecl-app-standardised.component.d.ts +0 -22
  1084. package/lib/components/ecl-app/deprecated/ecl-app-standardised/ecl-app-standardised.component.d.ts.map +0 -1
  1085. package/lib/components/ecl-app/deprecated/ecl-app-standardised/ecl-app-standardised.module.d.ts +0 -14
  1086. package/lib/components/ecl-app/deprecated/ecl-app-standardised/ecl-app-standardised.module.d.ts.map +0 -1
  1087. package/lib/components/ecl-app/deprecated/ecl-app-standardised/index.d.ts +0 -3
  1088. package/lib/components/ecl-app/deprecated/ecl-app-standardised/index.d.ts.map +0 -1
  1089. package/lib/components/ecl-app/deprecated/index.d.ts +0 -5
  1090. package/lib/components/ecl-app/deprecated/index.d.ts.map +0 -1
  1091. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-credit.directive.d.ts +0 -11
  1092. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-credit.directive.d.ts.map +0 -1
  1093. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-cta-link.directive.d.ts +0 -12
  1094. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-cta-link.directive.d.ts.map +0 -1
  1095. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-description.directive.d.ts +0 -11
  1096. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-description.directive.d.ts.map +0 -1
  1097. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-title.directive.d.ts +0 -11
  1098. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-title.directive.d.ts.map +0 -1
  1099. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner.component.d.ts +0 -21
  1100. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner.component.d.ts.map +0 -1
  1101. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner.module.d.ts +0 -17
  1102. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner.module.d.ts.map +0 -1
  1103. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/index.d.ts +0 -7
  1104. package/lib/components/ecl-banner/deprecated/ecl-hero-banner/index.d.ts.map +0 -1
  1105. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-credit.directive.d.ts +0 -11
  1106. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-credit.directive.d.ts.map +0 -1
  1107. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-cta-link.directive.d.ts +0 -12
  1108. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-cta-link.directive.d.ts.map +0 -1
  1109. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-description.directive.d.ts +0 -11
  1110. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-description.directive.d.ts.map +0 -1
  1111. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-title.directive.d.ts +0 -11
  1112. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-title.directive.d.ts.map +0 -1
  1113. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner.component.d.ts +0 -20
  1114. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner.component.d.ts.map +0 -1
  1115. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner.module.d.ts +0 -17
  1116. package/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner.module.d.ts.map +0 -1
  1117. package/lib/components/ecl-banner/deprecated/ecl-page-banner/index.d.ts +0 -7
  1118. package/lib/components/ecl-banner/deprecated/ecl-page-banner/index.d.ts.map +0 -1
  1119. package/lib/components/ecl-breadcrumb/deprecated/common/ecl-breadcrumb-segment.component.d.ts +0 -22
  1120. package/lib/components/ecl-breadcrumb/deprecated/common/ecl-breadcrumb-segment.component.d.ts.map +0 -1
  1121. package/lib/components/ecl-breadcrumb/deprecated/common/ecl-breadcrumb.component.d.ts +0 -32
  1122. package/lib/components/ecl-breadcrumb/deprecated/common/ecl-breadcrumb.component.d.ts.map +0 -1
  1123. package/lib/components/ecl-breadcrumb/deprecated/common/index.d.ts +0 -3
  1124. package/lib/components/ecl-breadcrumb/deprecated/common/index.d.ts.map +0 -1
  1125. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core-segment.component.d.ts +0 -14
  1126. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core-segment.component.d.ts.map +0 -1
  1127. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core.component.d.ts +0 -14
  1128. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core.component.d.ts.map +0 -1
  1129. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core.module.d.ts +0 -17
  1130. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core.module.d.ts.map +0 -1
  1131. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/index.d.ts +0 -4
  1132. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/index.d.ts.map +0 -1
  1133. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised-segment.component.d.ts +0 -14
  1134. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised-segment.component.d.ts.map +0 -1
  1135. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised.component.d.ts +0 -14
  1136. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised.component.d.ts.map +0 -1
  1137. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised.module.d.ts +0 -17
  1138. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised.module.d.ts.map +0 -1
  1139. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/index.d.ts +0 -4
  1140. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/index.d.ts.map +0 -1
  1141. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised-segment.component.d.ts +0 -14
  1142. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised-segment.component.d.ts.map +0 -1
  1143. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised.component.d.ts +0 -14
  1144. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised.component.d.ts.map +0 -1
  1145. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised.module.d.ts +0 -17
  1146. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised.module.d.ts.map +0 -1
  1147. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/index.d.ts +0 -4
  1148. package/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/index.d.ts.map +0 -1
  1149. package/lib/components/ecl-breadcrumb/deprecated/index.d.ts +0 -5
  1150. package/lib/components/ecl-breadcrumb/deprecated/index.d.ts.map +0 -1
  1151. package/lib/components/ecl-language-list/ecl-language-list-item.component.d.ts +0 -25
  1152. package/lib/components/ecl-language-list/ecl-language-list-item.component.d.ts.map +0 -1
  1153. package/lib/components/ecl-language-list/ecl-language-list.component.d.ts +0 -52
  1154. package/lib/components/ecl-language-list/ecl-language-list.component.d.ts.map +0 -1
  1155. package/lib/components/ecl-language-list/ecl-language-list.module.d.ts +0 -18
  1156. package/lib/components/ecl-language-list/ecl-language-list.module.d.ts.map +0 -1
  1157. package/lib/components/ecl-language-list/index.d.ts +0 -4
  1158. package/lib/components/ecl-language-list/index.d.ts.map +0 -1
  1159. package/lib/components/ecl-page-header/deprecated/common/ecl-page-header.component.d.ts +0 -16
  1160. package/lib/components/ecl-page-header/deprecated/common/ecl-page-header.component.d.ts.map +0 -1
  1161. package/lib/components/ecl-page-header/deprecated/common/index.d.ts +0 -2
  1162. package/lib/components/ecl-page-header/deprecated/common/index.d.ts.map +0 -1
  1163. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-description.directive.d.ts +0 -27
  1164. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-description.directive.d.ts.map +0 -1
  1165. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-meta.directive.d.ts +0 -19
  1166. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-meta.directive.d.ts.map +0 -1
  1167. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-title.directive.d.ts +0 -11
  1168. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-title.directive.d.ts.map +0 -1
  1169. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core.component.d.ts +0 -14
  1170. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core.component.d.ts.map +0 -1
  1171. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core.module.d.ts +0 -15
  1172. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core.module.d.ts.map +0 -1
  1173. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/index.d.ts +0 -6
  1174. package/lib/components/ecl-page-header/deprecated/ecl-page-header-core/index.d.ts.map +0 -1
  1175. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-description.directive.d.ts +0 -27
  1176. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-description.directive.d.ts.map +0 -1
  1177. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-meta.directive.d.ts +0 -19
  1178. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-meta.directive.d.ts.map +0 -1
  1179. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-title.directive.d.ts +0 -11
  1180. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-title.directive.d.ts.map +0 -1
  1181. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised.component.d.ts +0 -14
  1182. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised.component.d.ts.map +0 -1
  1183. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised.module.d.ts +0 -15
  1184. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised.module.d.ts.map +0 -1
  1185. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/index.d.ts +0 -6
  1186. package/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/index.d.ts.map +0 -1
  1187. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-description.directive.d.ts +0 -27
  1188. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-description.directive.d.ts.map +0 -1
  1189. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-meta.directive.d.ts +0 -19
  1190. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-meta.directive.d.ts.map +0 -1
  1191. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-title.directive.d.ts +0 -11
  1192. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-title.directive.d.ts.map +0 -1
  1193. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised.component.d.ts +0 -14
  1194. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised.component.d.ts.map +0 -1
  1195. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised.module.d.ts +0 -15
  1196. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised.module.d.ts.map +0 -1
  1197. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/index.d.ts +0 -6
  1198. package/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/index.d.ts.map +0 -1
  1199. package/lib/components/ecl-page-header/deprecated/index.d.ts +0 -5
  1200. package/lib/components/ecl-page-header/deprecated/index.d.ts.map +0 -1
  1201. package/lib/components/ecl-site-footer/deprecated/common/ecl-footer.component.d.ts +0 -21
  1202. package/lib/components/ecl-site-footer/deprecated/common/ecl-footer.component.d.ts.map +0 -1
  1203. package/lib/components/ecl-site-footer/deprecated/common/index.d.ts +0 -2
  1204. package/lib/components/ecl-site-footer/deprecated/common/index.d.ts.map +0 -1
  1205. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-core.component.d.ts +0 -12
  1206. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-core.component.d.ts.map +0 -1
  1207. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-core.module.d.ts +0 -21
  1208. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-core.module.d.ts.map +0 -1
  1209. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-column.directive.d.ts +0 -11
  1210. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-column.directive.d.ts.map +0 -1
  1211. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-description.directive.d.ts +0 -11
  1212. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-description.directive.d.ts.map +0 -1
  1213. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-link.directive.d.ts +0 -11
  1214. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-link.directive.d.ts.map +0 -1
  1215. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-list.directive.d.ts +0 -20
  1216. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-list.directive.d.ts.map +0 -1
  1217. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-section.directive.d.ts +0 -12
  1218. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-section.directive.d.ts.map +0 -1
  1219. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-title.directive.d.ts +0 -19
  1220. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-title.directive.d.ts.map +0 -1
  1221. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/index.d.ts +0 -9
  1222. package/lib/components/ecl-site-footer/deprecated/ecl-footer-core/index.d.ts.map +0 -1
  1223. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-column.directive.d.ts +0 -27
  1224. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-column.directive.d.ts.map +0 -1
  1225. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-description.directive.d.ts +0 -11
  1226. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-description.directive.d.ts.map +0 -1
  1227. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-link.directive.d.ts +0 -27
  1228. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-link.directive.d.ts.map +0 -1
  1229. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-list.directive.d.ts +0 -44
  1230. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-list.directive.d.ts.map +0 -1
  1231. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-section.directive.d.ts +0 -13
  1232. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-section.directive.d.ts.map +0 -1
  1233. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-title.directive.d.ts +0 -19
  1234. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-title.directive.d.ts.map +0 -1
  1235. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-harmonised.component.d.ts +0 -12
  1236. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-harmonised.component.d.ts.map +0 -1
  1237. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-harmonised.module.d.ts +0 -21
  1238. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-harmonised.module.d.ts.map +0 -1
  1239. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/index.d.ts +0 -9
  1240. package/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/index.d.ts.map +0 -1
  1241. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-column.directive.d.ts +0 -27
  1242. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-column.directive.d.ts.map +0 -1
  1243. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-description.directive.d.ts +0 -11
  1244. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-description.directive.d.ts.map +0 -1
  1245. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-link.directive.d.ts +0 -27
  1246. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-link.directive.d.ts.map +0 -1
  1247. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-list.directive.d.ts +0 -19
  1248. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-list.directive.d.ts.map +0 -1
  1249. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-section.directive.d.ts +0 -13
  1250. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-section.directive.d.ts.map +0 -1
  1251. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-title.directive.d.ts +0 -19
  1252. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-title.directive.d.ts.map +0 -1
  1253. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-standardised.component.d.ts +0 -12
  1254. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-standardised.component.d.ts.map +0 -1
  1255. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-standardised.module.d.ts +0 -21
  1256. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-standardised.module.d.ts.map +0 -1
  1257. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/index.d.ts +0 -9
  1258. package/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/index.d.ts.map +0 -1
  1259. package/lib/components/ecl-site-footer/deprecated/index.d.ts +0 -5
  1260. package/lib/components/ecl-site-footer/deprecated/index.d.ts.map +0 -1
  1261. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header-action.component.d.ts +0 -7
  1262. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header-action.component.d.ts.map +0 -1
  1263. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header-banner-top.component.d.ts +0 -7
  1264. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header-banner-top.component.d.ts.map +0 -1
  1265. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header-language.component.d.ts +0 -13
  1266. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header-language.component.d.ts.map +0 -1
  1267. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header-login.component.d.ts +0 -17
  1268. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header-login.component.d.ts.map +0 -1
  1269. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header-search.component.d.ts +0 -19
  1270. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header-search.component.d.ts.map +0 -1
  1271. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header.component.d.ts +0 -38
  1272. package/lib/components/ecl-site-header/deprecated/common/ecl-site-header.component.d.ts.map +0 -1
  1273. package/lib/components/ecl-site-header/deprecated/common/index.d.ts +0 -7
  1274. package/lib/components/ecl-site-header/deprecated/common/index.d.ts.map +0 -1
  1275. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/action/ecl-site-header-core-action.component.d.ts +0 -11
  1276. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/action/ecl-site-header-core-action.component.d.ts.map +0 -1
  1277. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/action/index.d.ts +0 -2
  1278. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/action/index.d.ts.map +0 -1
  1279. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/ecl-site-header-core.component.d.ts +0 -23
  1280. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/ecl-site-header-core.component.d.ts.map +0 -1
  1281. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/ecl-site-header-core.module.d.ts +0 -23
  1282. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/ecl-site-header-core.module.d.ts.map +0 -1
  1283. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/index.d.ts +0 -7
  1284. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/index.d.ts.map +0 -1
  1285. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/language/ecl-site-header-core-language.component.d.ts +0 -10
  1286. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/language/ecl-site-header-core-language.component.d.ts.map +0 -1
  1287. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/language/index.d.ts +0 -2
  1288. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/language/index.d.ts.map +0 -1
  1289. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/ecl-site-header-core-login-details.directive.d.ts +0 -19
  1290. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/ecl-site-header-core-login-details.directive.d.ts.map +0 -1
  1291. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/ecl-site-header-core-login.component.d.ts +0 -13
  1292. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/ecl-site-header-core-login.component.d.ts.map +0 -1
  1293. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/index.d.ts +0 -3
  1294. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/index.d.ts.map +0 -1
  1295. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/search/ecl-site-header-core-search.component.d.ts +0 -12
  1296. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/search/ecl-site-header-core-search.component.d.ts.map +0 -1
  1297. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/search/index.d.ts +0 -2
  1298. package/lib/components/ecl-site-header/deprecated/ecl-site-header-core/search/index.d.ts.map +0 -1
  1299. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/action/ecl-site-header-harmonised-action.component.d.ts +0 -11
  1300. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/action/ecl-site-header-harmonised-action.component.d.ts.map +0 -1
  1301. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/action/index.d.ts +0 -2
  1302. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/action/index.d.ts.map +0 -1
  1303. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/banner-top/ecl-site-header-harmonised-banner-top.component.d.ts +0 -10
  1304. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/banner-top/ecl-site-header-harmonised-banner-top.component.d.ts.map +0 -1
  1305. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/banner-top/index.d.ts +0 -2
  1306. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/banner-top/index.d.ts.map +0 -1
  1307. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/ecl-site-header-harmonised.component.d.ts +0 -24
  1308. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/ecl-site-header-harmonised.component.d.ts.map +0 -1
  1309. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/ecl-site-header-harmonised.module.d.ts +0 -24
  1310. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/ecl-site-header-harmonised.module.d.ts.map +0 -1
  1311. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/index.d.ts +0 -8
  1312. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/index.d.ts.map +0 -1
  1313. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/language/ecl-site-header-harmonised-language.component.d.ts +0 -10
  1314. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/language/ecl-site-header-harmonised-language.component.d.ts.map +0 -1
  1315. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/language/index.d.ts +0 -2
  1316. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/language/index.d.ts.map +0 -1
  1317. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/ecl-site-header-harmonised-login-details.directive.d.ts +0 -19
  1318. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/ecl-site-header-harmonised-login-details.directive.d.ts.map +0 -1
  1319. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/ecl-site-header-harmonised-login.component.d.ts +0 -13
  1320. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/ecl-site-header-harmonised-login.component.d.ts.map +0 -1
  1321. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/index.d.ts +0 -3
  1322. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/index.d.ts.map +0 -1
  1323. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/search/ecl-site-header-harmonised-search.component.d.ts +0 -12
  1324. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/search/ecl-site-header-harmonised-search.component.d.ts.map +0 -1
  1325. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/search/index.d.ts +0 -2
  1326. package/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/search/index.d.ts.map +0 -1
  1327. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/action/ecl-site-header-standardised-action.component.d.ts +0 -11
  1328. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/action/ecl-site-header-standardised-action.component.d.ts.map +0 -1
  1329. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/action/index.d.ts +0 -2
  1330. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/action/index.d.ts.map +0 -1
  1331. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/banner-top/ecl-site-header-standardised-banner-top.component.d.ts +0 -10
  1332. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/banner-top/ecl-site-header-standardised-banner-top.component.d.ts.map +0 -1
  1333. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/banner-top/index.d.ts +0 -2
  1334. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/banner-top/index.d.ts.map +0 -1
  1335. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/cta/ecl-site-header-standardised-cta.directive.d.ts +0 -11
  1336. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/cta/ecl-site-header-standardised-cta.directive.d.ts.map +0 -1
  1337. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/ecl-site-header-standardised.component.d.ts +0 -24
  1338. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/ecl-site-header-standardised.component.d.ts.map +0 -1
  1339. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/ecl-site-header-standardised.module.d.ts +0 -25
  1340. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/ecl-site-header-standardised.module.d.ts.map +0 -1
  1341. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/index.d.ts +0 -9
  1342. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/index.d.ts.map +0 -1
  1343. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/language/ecl-site-header-standardised-language.component.d.ts +0 -10
  1344. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/language/ecl-site-header-standardised-language.component.d.ts.map +0 -1
  1345. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/language/index.d.ts +0 -2
  1346. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/language/index.d.ts.map +0 -1
  1347. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/ecl-site-header-standardised-login-details.directive.d.ts +0 -19
  1348. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/ecl-site-header-standardised-login-details.directive.d.ts.map +0 -1
  1349. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/ecl-site-header-standardised-login.component.d.ts +0 -10
  1350. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/ecl-site-header-standardised-login.component.d.ts.map +0 -1
  1351. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/index.d.ts +0 -3
  1352. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/index.d.ts.map +0 -1
  1353. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/search/ecl-site-header-standardised-search.component.d.ts +0 -12
  1354. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/search/ecl-site-header-standardised-search.component.d.ts.map +0 -1
  1355. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/search/index.d.ts +0 -2
  1356. package/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/search/index.d.ts.map +0 -1
  1357. package/lib/components/ecl-site-header/deprecated/index.d.ts +0 -5
  1358. package/lib/components/ecl-site-header/deprecated/index.d.ts.map +0 -1
@@ -2,12 +2,13 @@ import { __decorate } from "tslib";
2
2
  import { Breakpoints } from '@angular/cdk/layout';
3
3
  import { Component, ContentChildren, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, } from '@angular/core';
4
4
  import { coerceNumber } from '@eui/base';
5
- import * as Hammer from 'hammerjs';
5
+ import Hammer from 'hammerjs';
6
6
  import { Subject, of } from 'rxjs';
7
7
  import { mergeWith, takeUntil } from 'rxjs/operators';
8
8
  import { ECLBaseDirective } from '../../ecl-base.directive';
9
9
  import { EclMenuItemSelectEvent } from '../common/ecl-menu-item.event';
10
10
  import { EclMenuItemComponent } from './ecl-menu-item.component';
11
+ import { KeyCode } from '../../../utils';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "@angular/cdk/layout";
13
14
  import * as i2 from "../../ecl-button/ecl-button.component";
@@ -40,7 +41,7 @@ export class EclMenuComponent extends ECLBaseDirective {
40
41
  this.totalItemsWidth = 0;
41
42
  this.offsetLeft = 0;
42
43
  this.direction = 'ltr';
43
- this.hammertime = new Hammer.default(document, { inputClass: Hammer.TouchInput });
44
+ this.hammertime = new Hammer(document, { inputClass: Hammer.TouchInput });
44
45
  this.TIMEOUT_INTERVAL = 150;
45
46
  this.differ = this.differs.find([]).create();
46
47
  }
@@ -174,7 +175,8 @@ export class EclMenuComponent extends ECLBaseDirective {
174
175
  manageOverflowBeginning() {
175
176
  if (this.direction === 'rtl') {
176
177
  this.eclRootMenuItems
177
- .filter((item) => item.el.nativeElement.getBoundingClientRect().right <= this.innerSection.nativeElement.getBoundingClientRect().right)
178
+ .filter((item) => item.el.nativeElement.getBoundingClientRect().right <=
179
+ this.innerSection.nativeElement.getBoundingClientRect().right)
178
180
  .forEach((el) => (el.isVisible = true));
179
181
  }
180
182
  else {
@@ -272,17 +274,71 @@ export class EclMenuComponent extends ECLBaseDirective {
272
274
  this.onMenuMegaItemSelected(item, evt);
273
275
  });
274
276
  item.menuItemFocus.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
275
- this.onRootMenuItemFocused(item, evt);
277
+ this.onRootMenuItemFocused(item);
278
+ });
279
+ item.menuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
280
+ this.onRootMenuItemKeydown(item, evt);
276
281
  });
277
282
  }
278
- onRootMenuItemFocused(item, evt) {
279
- const requestedRootMenuItem = evt.menuItem;
280
- if (requestedRootMenuItem.hasChildren) {
281
- this.closeRootMenuButOneItem(requestedRootMenuItem);
283
+ onRootMenuItemFocused(item) {
284
+ const index = this.findIndexInArray(item);
285
+ if (!this.isMobileBreakpoint) {
286
+ this.closeRootMenu();
287
+ }
288
+ if (this.isMovePrevOverflow(index)) {
289
+ this.onPrevBtnClick();
290
+ }
291
+ else if (this.isMoveNextOverflow(index)) {
292
+ this.onNextBtnClick();
293
+ }
294
+ }
295
+ onRootMenuItemKeydown(item, evt) {
296
+ switch (evt.domEvent.key) {
297
+ case KeyCode.ARROW_DOWN: {
298
+ this.onNextMenuItemFocus(item);
299
+ break;
300
+ }
301
+ case KeyCode.ARROW_RIGHT: {
302
+ this.onNextMenuItemFocus(item);
303
+ break;
304
+ }
305
+ case KeyCode.ARROW_UP: {
306
+ this.onPrevMenuItemFocus(item);
307
+ break;
308
+ }
309
+ case KeyCode.ARROW_LEFT: {
310
+ this.onPrevMenuItemFocus(item);
311
+ break;
312
+ }
313
+ case KeyCode.ENTER: {
314
+ this.onRootMenuItemEnter(item);
315
+ break;
316
+ }
317
+ default: {
318
+ break;
319
+ }
320
+ }
321
+ }
322
+ onPrevMenuItemFocus(item) {
323
+ const index = this.findIndexInArray(item);
324
+ if (index !== 0) {
325
+ this.getRootMenuItemsArray()[index - 1].onFocusFromNext();
282
326
  }
283
- this.removeHoverFromAllItems();
284
- item.isHovered = true;
285
- this.showMenu();
327
+ }
328
+ onNextMenuItemFocus(item) {
329
+ const index = this.findIndexInArray(item);
330
+ if (index !== this.getRootMenuItemsArray().length - 1) {
331
+ this.getRootMenuItemsArray()[index + 1].onFocusFromPrev();
332
+ }
333
+ }
334
+ findIndexInArray(item) {
335
+ return this.getRootMenuItemsArray().findIndex(el => item === el);
336
+ }
337
+ isMoveNextOverflow(index) {
338
+ return !this.getRootMenuItemsArray()[index].isVisible && this.isShowNextBtn;
339
+ }
340
+ isMovePrevOverflow(index) {
341
+ return !this.getRootMenuItemsArray()[index].isVisible && this.isShowPrevBtn;
286
342
  }
287
343
  onRootMenuItemSelected(evt) {
288
344
  const requestedRootMenuItem = evt.menuItem;
@@ -294,16 +350,35 @@ export class EclMenuComponent extends ECLBaseDirective {
294
350
  this.sendMenuItemSelectEvent(evt);
295
351
  }
296
352
  onRootMenuItemHovered(evt) {
297
- const requestedRootMenuItem = evt.menuItem;
298
- if (requestedRootMenuItem.isVisible) {
299
- if (!this.isMobileBreakpoint) {
300
- this.checkMegaMenu(requestedRootMenuItem);
353
+ this.openSubmenu(evt.menuItem);
354
+ }
355
+ onRootMenuItemEnter(item) {
356
+ if (this.isMobileBreakpoint) {
357
+ this.closeRootMenuButOneItem(item);
358
+ this.toggleExpandedForMenuItem(item);
359
+ }
360
+ else {
361
+ if (!item.isHovered) {
362
+ this.openSubmenu(item);
363
+ }
364
+ else {
365
+ this.closeRootMenu();
301
366
  }
302
- requestedRootMenuItem.isHovered = true;
303
- this.closeRootMenuButOneItem(requestedRootMenuItem);
367
+ }
368
+ }
369
+ openSubmenu(item) {
370
+ if (item.isVisible) {
371
+ if (!this.isMobileBreakpoint && item.submenu) {
372
+ this.checkMegaMenu(item);
373
+ }
374
+ item.isHovered = true;
375
+ this.closeRootMenuButOneItem(item);
304
376
  this.showMenu();
305
377
  }
306
378
  }
379
+ getRootMenuItemsArray() {
380
+ return this.eclRootMenuItems.toArray();
381
+ }
307
382
  checkMegaMenu(menuItem) {
308
383
  if (menuItem.isFull) {
309
384
  if (menuItem.submenu.isRtl) {
@@ -421,15 +496,15 @@ export class EclMenuComponent extends ECLBaseDirective {
421
496
  this.isMobileBreakpoint = result.matches;
422
497
  });
423
498
  }
424
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.IterableDiffers }, { token: i1.BreakpointObserver }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
425
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.7", type: EclMenuComponent, selector: "ecl-menu", inputs: { group: "group", maxLines: "maxLines" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "keydown": "keyEvent($event)", "window:resize": "onResize()" }, properties: { "class": "this.cssClasses", "attr.aria-expanded": "this.isHamburgerMenuOpened", "attr.role": "this.role", "class.ecl-menu--forced-mobile": "this.isMobileBreakpoint", "class.ecl-menu--forced-close": "this.isMenuHidden" } }, queries: [{ propertyName: "eclRootMenuItems", predicate: EclMenuItemComponent }], viewQueries: [{ propertyName: "innerSection", first: true, predicate: ["innerSection"], descendants: true }, { propertyName: "itemsList", first: true, predicate: ["itemsList"], descendants: true }, { propertyName: "btnPrevious", first: true, predicate: ["btnPrevious"], descendants: true }, { propertyName: "btnNext", first: true, predicate: ["btnNext"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <a eclLink href=\"#\" variant=\"standalone\" class=\"ecl-menu__open\" (click)=\"onMenuOpenClick($event)\">\n <ecl-icon icon=\"hamburger\" size=\"s\"></ecl-icon> {{ 'ecl.menu.MENU' | translate }}\n </a>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"text\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <ecl-icon icon=\"close-filled\" size=\"s\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"text\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isCurrentItemVisible\"\n [style.display]=\"isShowPrevBtn ? 'block' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isCurrentItemVisible\"\n [style.display]=\"isShowNextBtn ? 'block' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList>\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "directive", type: i3.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i4.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i5.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
499
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EclMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.IterableDiffers }, { token: i1.BreakpointObserver }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
500
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: EclMenuComponent, selector: "ecl-menu", inputs: { group: "group", maxLines: "maxLines" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "keydown": "keyEvent($event)", "window:resize": "onResize()" }, properties: { "class": "this.cssClasses", "attr.aria-expanded": "this.isHamburgerMenuOpened", "attr.role": "this.role", "class.ecl-menu--forced-mobile": "this.isMobileBreakpoint", "class.ecl-menu--forced-close": "this.isMenuHidden" } }, queries: [{ propertyName: "eclRootMenuItems", predicate: EclMenuItemComponent }], viewQueries: [{ propertyName: "innerSection", first: true, predicate: ["innerSection"], descendants: true }, { propertyName: "itemsList", first: true, predicate: ["itemsList"], descendants: true }, { propertyName: "btnPrevious", first: true, predicate: ["btnPrevious"], descendants: true }, { propertyName: "btnNext", first: true, predicate: ["btnNext"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <a eclLink href=\"#\" variant=\"standalone\" class=\"ecl-menu__open\" (click)=\"onMenuOpenClick($event)\">\n <ecl-icon icon=\"hamburger\" size=\"s\"></ecl-icon> {{ 'ecl.menu.MENU' | translate }}\n </a>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"text\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <ecl-icon icon=\"close-filled\" size=\"s\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"text\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n tabindex=\"-1\"\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isCurrentItemVisible\"\n [style.display]=\"isShowPrevBtn ? 'block' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n tabindex=\"-1\"\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isCurrentItemVisible\"\n [style.display]=\"isShowNextBtn ? 'block' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList>\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "directive", type: i3.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i4.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i5.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
426
501
  }
427
502
  __decorate([
428
503
  coerceNumber
429
504
  ], EclMenuComponent.prototype, "maxLines", void 0);
430
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuComponent, decorators: [{
505
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EclMenuComponent, decorators: [{
431
506
  type: Component,
432
- args: [{ selector: 'ecl-menu', template: "<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <a eclLink href=\"#\" variant=\"standalone\" class=\"ecl-menu__open\" (click)=\"onMenuOpenClick($event)\">\n <ecl-icon icon=\"hamburger\" size=\"s\"></ecl-icon> {{ 'ecl.menu.MENU' | translate }}\n </a>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"text\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <ecl-icon icon=\"close-filled\" size=\"s\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"text\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isCurrentItemVisible\"\n [style.display]=\"isShowPrevBtn ? 'block' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isCurrentItemVisible\"\n [style.display]=\"isShowNextBtn ? 'block' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList>\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n", styles: [":host{display:block}\n"] }]
507
+ args: [{ selector: 'ecl-menu', template: "<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <a eclLink href=\"#\" variant=\"standalone\" class=\"ecl-menu__open\" (click)=\"onMenuOpenClick($event)\">\n <ecl-icon icon=\"hamburger\" size=\"s\"></ecl-icon> {{ 'ecl.menu.MENU' | translate }}\n </a>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"text\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <ecl-icon icon=\"close-filled\" size=\"s\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"text\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n tabindex=\"-1\"\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isCurrentItemVisible\"\n [style.display]=\"isShowPrevBtn ? 'block' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n tabindex=\"-1\"\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isCurrentItemVisible\"\n [style.display]=\"isShowNextBtn ? 'block' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList>\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n", styles: [":host{display:block}\n"] }]
433
508
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.IterableDiffers }, { type: i1.BreakpointObserver }, { type: i0.Renderer2 }], propDecorators: { group: [{
434
509
  type: Input
435
510
  }], maxLines: [{
@@ -473,4 +548,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7",
473
548
  type: HostListener,
474
549
  args: ['window:resize']
475
550
  }] } });
476
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1tZW51L2VjbC1tZW51L2VjbC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS9lY2wtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFzQixXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBR0gsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBTUwsTUFBTSxFQUdOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBYyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUF1RSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQWFqRSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBWWxELElBQ0ksVUFBVTtRQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxD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REE7O0FEWjJCO0lBQXRCLFlBQVk7a0RBQXVCO2tHQUYzQixnQkFBZ0I7a0JBWDVCLFNBQVM7K0JBQ0ksVUFBVTtzS0FXWCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2lCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRW1CLGdCQUFnQjtzQkFBdEQsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBQ1YsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNELFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0YsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUVWLGNBQWM7c0JBQXZCLE1BQU07Z0JBR0gsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBS2UscUJBQXFCO3NCQUF2RCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDUCxJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBQ3NCLGtCQUFrQjtzQkFBL0QsV0FBVzt1QkFBQywrQkFBK0I7Z0JBQ0MsWUFBWTtzQkFBeEQsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBOEIzQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVuQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlQ2hhbmdlcyxcbiAgICBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlTnVtYmVyIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCAqIGFzIEhhbW1lciBmcm9tICdoYW1tZXJqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2VjbC1tZW51LWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9lY2wtYnV0dG9uJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtQ2FyZXRFdmVudCwgRWNsTWVudUl0ZW1Gb2N1c0V2ZW50LCBFY2xNZW51SXRlbUhvdmVyRXZlbnQsIEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQgfSBmcm9tICcuLi9jb21tb24vZWNsLW1lbnUtaXRlbS5ldmVudCc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTWVudUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgZ3JvdXA6IHN0cmluZyA9ICcxJztcbiAgICBAY29lcmNlTnVtYmVyIEBJbnB1dCgpIG1heExpbmVzID0gMDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRWNsTWVudUl0ZW1Db21wb25lbnQpIGVjbFJvb3RNZW51SXRlbXM6IFF1ZXJ5TGlzdDxFY2xNZW51SXRlbUNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnaW5uZXJTZWN0aW9uJykgaW5uZXJTZWN0aW9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zTGlzdCcpIGl0ZW1zTGlzdDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdidG5QcmV2aW91cycpIGJ0blByZXZpb3VzOiBFY2xCdXR0b25Db21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnYnRuTmV4dCcpIGJ0bk5leHQ6IEVjbEJ1dHRvbkNvbXBvbmVudDtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1lbnUnKSwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJywgYGVjbC1tZW51LS1ncm91cCR7dGhpcy5ncm91cH1gXS5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKSBpc0hhbWJ1cmdlck1lbnVPcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnbmF2aWdhdGlvbic7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudS0tZm9yY2VkLW1vYmlsZScpIGlzTW9iaWxlQnJlYWtwb2ludDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnUtLWZvcmNlZC1jbG9zZScpIGlzTWVudUhpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgaGFzT3ZlcmZsb3cgPSBmYWxzZTtcbiAgICBpc1Nob3dQcmV2QnRuID0gZmFsc2U7XG4gICAgaXNTaG93TmV4dEJ0biA9IGZhbHNlO1xuICAgIGlzQ3VycmVudEl0ZW1WaXNpYmxlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8RWNsTWVudUl0ZW1Db21wb25lbnQ+O1xuICAgIHByaXZhdGUgZGlmZjogSXRlcmFibGVDaGFuZ2VzPEVjbE1lbnVJdGVtQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIHRvdGFsSXRlbXNXaWR0aCA9IDA7XG4gICAgcHJpdmF0ZSBvZmZzZXRMZWZ0ID0gMDtcbiAgICBwcml2YXRlIGRpcmVjdGlvbiA9ICdsdHInO1xuICAgIHByaXZhdGUgbGFzdFZpc2libGVJdGVtOiBFY2xNZW51SXRlbUNvbXBvbmVudDtcbiAgICBwcml2YXRlIGN1cnJlbnRJdGVtOiBFY2xNZW51SXRlbTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbW1lcnRpbWUgPSBuZXcgSGFtbWVyLmRlZmF1bHQoZG9jdW1lbnQsIHsgaW5wdXRDbGFzczogSGFtbWVyLlRvdWNoSW5wdXQgfSk7XG4gICAgcHJpdmF0ZSByZXNpemVUaW1lcjogbnVtYmVyO1xuICAgIHByaXZhdGUgVElNRU9VVF9JTlRFUlZBTCA9IDE1MDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICAgICAgcHJpdmF0ZSBjZGtCcmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgICBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZXIpO1xuICAgICAgICB0aGlzLnJlc2l6ZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJyk7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXNXaWR0aCA9IDA7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTWVudUl0ZW1zKCk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTWVudU92ZXJmbG93KCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJyk7XG4gICAgICAgIH0sIHRoaXMuVElNRU9VVF9JTlRFUlZBTCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUJyZWFrcG9pbnRDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZVN3aXBlR2VzdHVyZXMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZVJvb3RNZW51SXRlbXNDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7XG4gICAgICAgIHRoaXMucmVzaXplVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51SXRlbXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51T3ZlcmZsb3coKTtcbiAgICAgICAgfSwgdGhpcy5USU1FT1VUX0lOVEVSVkFMKTtcbiAgICB9XG5cbiAgICBvblN3aXBlTGVmdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5IYW1idXJnZXJNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN3aXBlUmlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3ZlcmxheUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgIH1cblxuICAgIG9uTWVudU9wZW5DbGljayhldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbk1lbnVDbG9zZUNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25NZW51QmFja0NsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vZmYoJ3N3aXBlbGVmdCcpO1xuICAgICAgICB0aGlzLmhhbW1lcnRpbWUub2ZmKCdzd2lwZXJpZ2h0Jyk7XG4gICAgfVxuXG4gICAgb25QcmV2QnRuQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9IDA7XG4gICAgICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAnMCc7XG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnYXV0byc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1Nob3dQcmV2QnRuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNTaG93TmV4dEJ0biA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoRGlzcGxheSgpO1xuICAgIH1cblxuICAgIG9uTmV4dEJ0bkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd1ByZXZCdG4gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzU2hvd05leHRCdG4gPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dOZXh0U2xpZGVSdGwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd05leHRTbGlkZUx0cigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoRGlzcGxheSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd05leHRTbGlkZUx0cigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYnRuT2Zmc2V0V2lkdGggPSB0aGlzLmJ0bk5leHQuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgdGhpcy5vZmZzZXRMZWZ0ID1cbiAgICAgICAgICAgIHRoaXMubGFzdFZpc2libGVJdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtXG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgICAgICAgYnRuT2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gYC0ke3RoaXMub2Zmc2V0TGVmdH1weGA7XG4gICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TmV4dFNsaWRlUnRsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBidG5PZmZzZXRXaWR0aCA9IHRoaXMuYnRuTmV4dC5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICB0aGlzLm9mZnNldExlZnQgPVxuICAgICAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCAtXG4gICAgICAgICAgICB0aGlzLmxhc3RWaXNpYmxlSXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IC1cbiAgICAgICAgICAgIGJ0bk9mZnNldFdpZHRoO1xuXG4gICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSBgLSR7dGhpcy5vZmZzZXRMZWZ0fXB4YDtcbiAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVmcmVzaERpc3BsYXkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmNoZWNrTWVudUl0ZW0odGhpcy5tYXhMaW5lcywgdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgaXRlbS5pc1Zpc2libGUgPSAhaXRlbS5pc1Zpc2libGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tNZW51T3ZlcmZsb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzT3ZlcmZsb3cgPSB0aGlzLnRvdGFsSXRlbXNXaWR0aCA+IHRoaXMuaW5uZXJTZWN0aW9uLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGlmICghdGhpcy5oYXNPdmVyZmxvdyB8fCB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5yZXNldE92ZXJmbG93VmFsdWVzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoZWNrQ3VycmVudEl0ZW0oKTtcbiAgICAgICAgdGhpcy5yZXNldFZpc2liaWxpdHlJbmRpY2F0b3IoKTtcblxuICAgICAgICBpZiAodGhpcy5vZmZzZXRMZWZ0ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZU92ZXJmbG93RW5kKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZU92ZXJmbG93QmVnaW5uaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZU92ZXJmbG93QmVnaW5uaW5nKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCA8PSB0aGlzLmlubmVyU2VjdGlvbi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlbCkgPT4gKGVsLmlzVmlzaWJsZSA9IHRydWUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgPj0gdGhpcy5pbm5lclNlY3Rpb24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlbCkgPT4gKGVsLmlzVmlzaWJsZSA9IHRydWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFuYWdlT3ZlcmZsb3dFbmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93TmV4dEJ0biA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmVjbFJvb3RNZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgPCB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaXRlbS5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZWNsUm9vdE1lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgPiB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFZpc2libGVJdGVtID0gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGl0ZW0uaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRWaXNpYmlsaXR5SW5kaWNhdG9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uaXNWaXNpYmxlID0gZmFsc2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0T3ZlcmZsb3dWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93UHJldkJ0biA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzU2hvd05leHRCdG4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oYXNPdmVyZmxvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9IDA7XG4gICAgICAgIHRoaXMudG90YWxJdGVtc1dpZHRoID0gMDtcbiAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0gPSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tDdXJyZW50SXRlbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SXRlbSA9IHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlzQ3VycmVudCk7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbS5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ3VycmVudEl0ZW1WaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnRJdGVtVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja01lbnVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uY2hlY2tNZW51SXRlbSh0aGlzLm1heExpbmVzLCB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCk7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXNXaWR0aCArPSBpdGVtLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNZW51RXhwYW5kZWRJbk1vYmlsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ICYmIHRoaXMuaXNBbnlSb290TWVudUl0ZW1FeHBhbmRlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBbnlSb290TWVudUl0ZW1FeHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5zb21lKChpdGVtKSA9PiBpdGVtLmlzRXhwYW5kZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlUm9vdE1lbnVJdGVtc0NoYW5nZXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8UXVlcnlMaXN0PEVjbE1lbnVJdGVtQ29tcG9uZW50Pj4ge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5lY2xSb290TWVudUl0ZW1zKS5waXBlKG1lcmdlV2l0aCh0aGlzLmVjbFJvb3RNZW51SXRlbXMuY2hhbmdlcyksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lbnVJdGVtQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbFJvb3RNZW51SXRlbXMgYXMgYW55KTtcblxuICAgICAgICBpZiAoIXRoaXMuZGlmZikge1xuICAgICAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKHJvb3RJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0TWVudUl0ZW1FdmVudHMocm9vdEl0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpZmYuZm9yRWFjaEFkZGVkSXRlbSgoY2hhbmdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0TWVudUl0ZW1FdmVudHMoY2hhbmdlLml0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbm5lY3RNZW51SXRlbUV2ZW50cyhpdGVtOiBFY2xNZW51SXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpdGVtLm1lbnVJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbVNlbGVjdGVkKGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtSG92ZXIucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtSG92ZXJlZChldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51SXRlbUhvdmVyT3V0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUhvdmVyZWRPdXQoZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1DYXJldC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1DYXJldChldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51TWVnYUl0ZW1TZWxlY3QucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uTWVudU1lZ2FJdGVtU2VsZWN0ZWQoaXRlbSwgZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1Gb2N1cy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1Gb2N1c2VkKGl0ZW0sIGV2dCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1Gb2N1c2VkKGl0ZW06IEVjbE1lbnVJdGVtLCBldnQ6IEVjbE1lbnVJdGVtRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1ZXN0ZWRSb290TWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG4gICAgICAgIGlmIChyZXF1ZXN0ZWRSb290TWVudUl0ZW0uaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudUJ1dE9uZUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUhvdmVyRnJvbUFsbEl0ZW1zKCk7XG4gICAgICAgIGl0ZW0uaXNIb3ZlcmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93TWVudSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1TZWxlY3RlZChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkUm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcblxuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFJvb3RNZW51SXRlbXMoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFN1Ym1lbnVzSXRlbXMoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuXG4gICAgICAgIHRoaXMuc2VuZE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtSG92ZXJlZChldnQ6IEVjbE1lbnVJdGVtSG92ZXJFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1ZXN0ZWRSb290TWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG4gICAgICAgIGlmIChyZXF1ZXN0ZWRSb290TWVudUl0ZW0uaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja01lZ2FNZW51KHJlcXVlc3RlZFJvb3RNZW51SXRlbSBhcyBFY2xNZW51SXRlbUNvbXBvbmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXF1ZXN0ZWRSb290TWVudUl0ZW0uaXNIb3ZlcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudUJ1dE9uZUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd01lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tNZWdhTWVudShtZW51SXRlbTogRWNsTWVudUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKG1lbnVJdGVtLmlzRnVsbCkge1xuICAgICAgICAgICAgaWYgKG1lbnVJdGVtLnN1Ym1lbnUuaXNSdGwpIHtcbiAgICAgICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51Lm9mZnNldFJpZ2h0ID0gdGhpcy5vZmZzZXRMZWZ0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51Lm9mZnNldExlZnQgPSB0aGlzLm9mZnNldExlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0Vub3VnaFNwYWNlRm9yTWVnYU1lbnUobWVudUl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tFbm91Z2hTcGFjZUZvck1lZ2FNZW51KG1lbnVJdGVtOiBFY2xNZW51SXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtZWdhQm91bmRpbmcgPSBtZW51SXRlbS5zdWJtZW51LmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckJvdW5kaW5nID0gdGhpcy5pbm5lclNlY3Rpb24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1Cb3VuZGluZyA9IG1lbnVJdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgY29uc3QgbWVnYVdpZHRoID0gbWVnYUJvdW5kaW5nLndpZHRoO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lckJvdW5kaW5nLndpZHRoO1xuICAgICAgICBjb25zdCBtZW51SXRlbVBvc2l0aW9uID0gbWVudUl0ZW1Cb3VuZGluZy5sZWZ0IC0gY29udGFpbmVyQm91bmRpbmcubGVmdDtcblxuICAgICAgICBpZiAobWVudUl0ZW1Qb3NpdGlvbiArIG1lZ2FXaWR0aCA+IGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51LmlzUnRsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lbnVJdGVtLnN1Ym1lbnUuaXNSdGwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1Ib3ZlcmVkT3V0KGV2dDogRWNsTWVudUl0ZW1Ib3ZlckV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUNhcmV0KGV2dDogRWNsTWVudUl0ZW1DYXJldEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFJvb3RNZW51SXRlbTogRWNsTWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG5cbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51QnV0T25lSXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkRm9yTWVudUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTWVudU1lZ2FJdGVtU2VsZWN0ZWQocm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSwgZXZ0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFN1Ym1lbnVJdGVtID0gZXZ0Lm1lbnVJdGVtO1xuXG4gICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsUm9vdE1lbnVJdGVtcygpO1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsU3VibWVudXNJdGVtcygpO1xuICAgICAgICB0aGlzLnNlbGVjdE1lbnVJdGVtKHJvb3RNZW51SXRlbSk7XG4gICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0ocmVxdWVzdGVkU3VibWVudUl0ZW0pO1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuXG4gICAgICAgIHRoaXMuc2VuZE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0KTtcblxuICAgICAgICB0aGlzLmhpZGVNZW51KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdEFsbFJvb3RNZW51SXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RNZW51SXRlbXModGhpcy5lY2xSb290TWVudUl0ZW1zLnRvQXJyYXkoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdEFsbFN1Ym1lbnVzSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChyb290SXRlbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdE1lbnVJdGVtcyhyb290SXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZWxlY3RNZW51SXRlbXMoaXRlbXM6IEFycmF5PEVjbE1lbnVJdGVtPik6IHZvaWQge1xuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgICAgICAgaXQuaXNDdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0TWVudUl0ZW0oaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaXRlbS5pc0N1cnJlbnQgPSB0cnVlO1xuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtID0gaXRlbTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTWVudUhpZGRlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc01lbnVIaWRkZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUm9vdE1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgICAgICAgaXQuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgaXQuaXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VSb290TWVudUJ1dE9uZUl0ZW0oaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zXG4gICAgICAgICAgICAuZmlsdGVyKChpdCkgPT4gaXQgIT09IGl0ZW0pXG4gICAgICAgICAgICAuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgICAgICBpdC5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXQuaXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUhvdmVyRnJvbUFsbEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgIGl0LmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvZ2dsZUV4cGFuZGVkRm9yTWVudUl0ZW0oaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaXRlbS5pc0V4cGFuZGVkID0gIWl0ZW0uaXNFeHBhbmRlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5IYW1idXJnZXJNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzSGFtYnVyZ2VyTWVudU9wZW5lZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZUhhbWJ1cmdlck1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNIYW1idXJnZXJNZW51T3BlbmVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbVNlbGVjdC5uZXh0KG5ldyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KGV2dC5tZW51SXRlbSwgZXZ0LmRvbUV2ZW50KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlUm9vdE1lbnVJdGVtc0NoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xSb290TWVudUl0ZW1zIGFzIGFueSk7XG4gICAgICAgIHRoaXMuY3JlYXRlUm9vdE1lbnVJdGVtc0NoYW5nZXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh0aGlzLm9uTWVudUl0ZW1DaGFuZ2VzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZVN3aXBlR2VzdHVyZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vbignc3dpcGVsZWZ0JywgdGhpcy5vblN3aXBlTGVmdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5oYW1tZXJ0aW1lLm9uKCdzd2lwZXJpZ2h0JywgdGhpcy5vblN3aXBlUmlnaHQuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2RrQnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZShbQnJlYWtwb2ludHMuSGFuZHNldCwgQnJlYWtwb2ludHMuVGFibGV0LCBCcmVha3BvaW50cy5TbWFsbF0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCA9IHJlc3VsdC5tYXRjaGVzO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVjbC1tZW51X19vdmVybGF5XCIgKGNsaWNrKT1cIm9uT3ZlcmxheUNsaWNrKClcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJlY2wtY29udGFpbmVyIGVjbC1tZW51X19jb250YWluZXJcIj5cbiAgICA8YSBlY2xMaW5rIGhyZWY9XCIjXCIgdmFyaWFudD1cInN0YW5kYWxvbmVcIiBjbGFzcz1cImVjbC1tZW51X19vcGVuXCIgKGNsaWNrKT1cIm9uTWVudU9wZW5DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiaGFtYnVyZ2VyXCIgc2l6ZT1cInNcIj48L2VjbC1pY29uPiB7eyAnZWNsLm1lbnUuTUVOVScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2E+XG5cbiAgICA8c2VjdGlvblxuICAgICAgICBjbGFzcz1cImVjbC1tZW51X19pbm5lclwiXG4gICAgICAgICNpbm5lclNlY3Rpb25cbiAgICAgICAgW2NsYXNzLmVjbC1tZW51X19pbm5lci0tZXhwYW5kZWRdPVwiaXNNZW51RXhwYW5kZWRJbk1vYmlsZVwiXG4gICAgICAgIFtjbGFzcy5lY2wtbWVudV9faW5uZXItLWhhcy1vdmVyZmxvd109XCJoYXNPdmVyZmxvd1wiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiZWNsLW1lbnVfX2lubmVyLWhlYWRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19jbG9zZVwiXG4gICAgICAgICAgICAgICAgY29udGFpbmVyU3R5bGVDbGFzcz1cImVjbC1tZW51X19jbG9zZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVDbG9zZUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNsb3NlLWZpbGxlZFwiIHNpemU9XCJzXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbD57eyAnZWNsLmNvbW1vbi5DTE9TRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1tZW51X190aXRsZVwiPnt7ICdlY2wubWVudS5NRU5VJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuXG4gICAgICAgICAgICA8YnV0dG9uIGVjbEJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIGNsYXNzPVwiZWNsLW1lbnVfX2JhY2tcIiAoY2xpY2spPVwib25NZW51QmFja0NsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiPjwvZWNsLWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gZWNsQnV0dG9uTGFiZWw+e3sgJ2VjbC5jb21tb24uQkFDSycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgI2J0blByZXZpb3VzXG4gICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJlY2wtbWVudV9faXRlbSBlY2wtbWVudV9faXRlbXMtcHJldmlvdXNcIlxuICAgICAgICAgICAgW2NsYXNzLmVjbC1tZW51X19pdGVtLS1jdXJyZW50XT1cImlzQ3VycmVudEl0ZW1WaXNpYmxlXCJcbiAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzU2hvd1ByZXZCdG4gPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblByZXZCdG5DbGljaygpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiPjwvZWNsLWljb24+XG4gICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbCBjbGFzcz1cImVjbC11LXNyLW9ubHlcIj57eyAnZWNsLmNvbW1vbi5QUkVWSU9VUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBlY2xCdXR0b25cbiAgICAgICAgICAgICNidG5OZXh0XG4gICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJlY2wtbWVudV9faXRlbSBlY2wtbWVudV9faXRlbXMtbmV4dFwiXG4gICAgICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2l0ZW0tLWN1cnJlbnRdPVwiIWlzQ3VycmVudEl0ZW1WaXNpYmxlXCJcbiAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzU2hvd05leHRCdG4gPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk5leHRCdG5DbGljaygpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTkwXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGVjbEJ1dHRvbkxhYmVsIGNsYXNzPVwiZWNsLXUtc3Itb25seVwiPnt7ICdlY2wuY29tbW9uLk5FWFQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPHVsIGNsYXNzPVwiZWNsLW1lbnVfX2xpc3RcIiAjaXRlbXNMaXN0PlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3VsPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
551
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1tZW51L2VjbC1tZW51L2VjbC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS9lY2wtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFzQixXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBR0gsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBTUwsTUFBTSxFQUdOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLEVBQWMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBeUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5SSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBYXpDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBZ0I7SUFZbEQsSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLElBQUksQ0FB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IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgSXRlcmFibGVDaGFuZ2VzLFxuICAgIEl0ZXJhYmxlRGlmZmVyLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VOdW1iZXIgfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IEhhbW1lciBmcm9tICdoYW1tZXJqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2VjbC1tZW51LWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9lY2wtYnV0dG9uJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtQ2FyZXRFdmVudCwgRWNsTWVudUl0ZW1Ib3ZlckV2ZW50LCBFY2xNZW51SXRlbUtleWRvd25FdmVudCwgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9lY2wtbWVudS1pdGVtLmV2ZW50JztcbmltcG9ydCB7IEVjbE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9lY2wtbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLZXlDb2RlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTWVudUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgZ3JvdXAgPSAnMSc7XG4gICAgQGNvZXJjZU51bWJlciBASW5wdXQoKSBtYXhMaW5lcyA9IDA7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEVjbE1lbnVJdGVtQ29tcG9uZW50KSBlY2xSb290TWVudUl0ZW1zOiBRdWVyeUxpc3Q8RWNsTWVudUl0ZW1Db21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2lubmVyU2VjdGlvbicpIGlubmVyU2VjdGlvbjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdpdGVtc0xpc3QnKSBpdGVtc0xpc3Q6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnYnRuUHJldmlvdXMnKSBidG5QcmV2aW91czogRWNsQnV0dG9uQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ2J0bk5leHQnKSBidG5OZXh0OiBFY2xCdXR0b25Db21wb25lbnQ7XG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1tZW51JyksICdlY2wtbWVudS0tdHJhbnNpdGlvbicsIGBlY2wtbWVudS0tZ3JvdXAke3RoaXMuZ3JvdXB9YF0uam9pbignICcpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJykgaXNIYW1idXJnZXJNZW51T3BlbmVkID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ25hdmlnYXRpb24nO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnUtLWZvcmNlZC1tb2JpbGUnKSBpc01vYmlsZUJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1tZW51LS1mb3JjZWQtY2xvc2UnKSBpc01lbnVIaWRkZW4gPSBmYWxzZTtcblxuICAgIGhhc092ZXJmbG93ID0gZmFsc2U7XG4gICAgaXNTaG93UHJldkJ0biA9IGZhbHNlO1xuICAgIGlzU2hvd05leHRCdG4gPSBmYWxzZTtcbiAgICBpc0N1cnJlbnRJdGVtVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPEVjbE1lbnVJdGVtQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIGRpZmY6IEl0ZXJhYmxlQ2hhbmdlczxFY2xNZW51SXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSB0b3RhbEl0ZW1zV2lkdGggPSAwO1xuICAgIHByaXZhdGUgb2Zmc2V0TGVmdCA9IDA7XG4gICAgcHJpdmF0ZSBkaXJlY3Rpb24gPSAnbHRyJztcbiAgICBwcml2YXRlIGxhc3RWaXNpYmxlSXRlbTogRWNsTWVudUl0ZW1Db21wb25lbnQ7XG4gICAgcHJpdmF0ZSBjdXJyZW50SXRlbTogRWNsTWVudUl0ZW07XG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW1tZXJ0aW1lID0gbmV3IEhhbW1lcihkb2N1bWVudCwgeyBpbnB1dENsYXNzOiBIYW1tZXIuVG91Y2hJbnB1dCB9KTtcbiAgICBwcml2YXRlIHJlc2l6ZVRpbWVyOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBUSU1FT1VUX0lOVEVSVkFMID0gMTUwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgICAgICBwcml2YXRlIGNka0JyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgICBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZXIpO1xuICAgICAgICB0aGlzLnJlc2l6ZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJyk7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXNXaWR0aCA9IDA7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTWVudUl0ZW1zKCk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTWVudU92ZXJmbG93KCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJyk7XG4gICAgICAgIH0sIHRoaXMuVElNRU9VVF9JTlRFUlZBTCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUJyZWFrcG9pbnRDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZVN3aXBlR2VzdHVyZXMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZVJvb3RNZW51SXRlbXNDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7XG4gICAgICAgIHRoaXMucmVzaXplVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51SXRlbXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51T3ZlcmZsb3coKTtcbiAgICAgICAgfSwgdGhpcy5USU1FT1VUX0lOVEVSVkFMKTtcbiAgICB9XG5cbiAgICBvblN3aXBlTGVmdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5IYW1idXJnZXJNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN3aXBlUmlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3ZlcmxheUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgIH1cblxuICAgIG9uTWVudU9wZW5DbGljayhldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbk1lbnVDbG9zZUNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25NZW51QmFja0NsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vZmYoJ3N3aXBlbGVmdCcpO1xuICAgICAgICB0aGlzLmhhbW1lcnRpbWUub2ZmKCdzd2lwZXJpZ2h0Jyk7XG4gICAgfVxuXG4gICAgb25QcmV2QnRuQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9IDA7XG4gICAgICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAnMCc7XG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnYXV0byc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1Nob3dQcmV2QnRuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNTaG93TmV4dEJ0biA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoRGlzcGxheSgpO1xuICAgIH1cblxuICAgIG9uTmV4dEJ0bkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd1ByZXZCdG4gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzU2hvd05leHRCdG4gPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dOZXh0U2xpZGVSdGwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd05leHRTbGlkZUx0cigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoRGlzcGxheSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd05leHRTbGlkZUx0cigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYnRuT2Zmc2V0V2lkdGggPSB0aGlzLmJ0bk5leHQuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgdGhpcy5vZmZzZXRMZWZ0ID1cbiAgICAgICAgICAgIHRoaXMubGFzdFZpc2libGVJdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtXG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgICAgICAgYnRuT2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gYC0ke3RoaXMub2Zmc2V0TGVmdH1weGA7XG4gICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TmV4dFNsaWRlUnRsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBidG5PZmZzZXRXaWR0aCA9IHRoaXMuYnRuTmV4dC5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICB0aGlzLm9mZnNldExlZnQgPVxuICAgICAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCAtXG4gICAgICAgICAgICB0aGlzLmxhc3RWaXNpYmxlSXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IC1cbiAgICAgICAgICAgIGJ0bk9mZnNldFdpZHRoO1xuXG4gICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSBgLSR7dGhpcy5vZmZzZXRMZWZ0fXB4YDtcbiAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVmcmVzaERpc3BsYXkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmNoZWNrTWVudUl0ZW0odGhpcy5tYXhMaW5lcywgdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgaXRlbS5pc1Zpc2libGUgPSAhaXRlbS5pc1Zpc2libGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tNZW51T3ZlcmZsb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzT3ZlcmZsb3cgPSB0aGlzLnRvdGFsSXRlbXNXaWR0aCA+IHRoaXMuaW5uZXJTZWN0aW9uLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGlmICghdGhpcy5oYXNPdmVyZmxvdyB8fCB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5yZXNldE92ZXJmbG93VmFsdWVzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoZWNrQ3VycmVudEl0ZW0oKTtcbiAgICAgICAgdGhpcy5yZXNldFZpc2liaWxpdHlJbmRpY2F0b3IoKTtcblxuICAgICAgICBpZiAodGhpcy5vZmZzZXRMZWZ0ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZU92ZXJmbG93RW5kKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZU92ZXJmbG93QmVnaW5uaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZU92ZXJmbG93QmVnaW5uaW5nKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCA8PVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbm5lclNlY3Rpb24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGVsKSA9PiAoZWwuaXNWaXNpYmxlID0gdHJ1ZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zXG4gICAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCA+PSB0aGlzLmlubmVyU2VjdGlvbi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlbCkgPT4gKGVsLmlzVmlzaWJsZSA9IHRydWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFuYWdlT3ZlcmZsb3dFbmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93TmV4dEJ0biA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmVjbFJvb3RNZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgPCB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaXRlbS5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZWNsUm9vdE1lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgPiB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFZpc2libGVJdGVtID0gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGl0ZW0uaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRWaXNpYmlsaXR5SW5kaWNhdG9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uaXNWaXNpYmxlID0gZmFsc2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0T3ZlcmZsb3dWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93UHJldkJ0biA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzU2hvd05leHRCdG4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oYXNPdmVyZmxvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9IDA7XG4gICAgICAgIHRoaXMudG90YWxJdGVtc1dpZHRoID0gMDtcbiAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0gPSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tDdXJyZW50SXRlbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SXRlbSA9IHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlzQ3VycmVudCk7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbS5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ3VycmVudEl0ZW1WaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnRJdGVtVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja01lbnVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uY2hlY2tNZW51SXRlbSh0aGlzLm1heExpbmVzLCB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCk7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXNXaWR0aCArPSBpdGVtLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNZW51RXhwYW5kZWRJbk1vYmlsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ICYmIHRoaXMuaXNBbnlSb290TWVudUl0ZW1FeHBhbmRlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBbnlSb290TWVudUl0ZW1FeHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5zb21lKChpdGVtKSA9PiBpdGVtLmlzRXhwYW5kZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlUm9vdE1lbnVJdGVtc0NoYW5nZXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8UXVlcnlMaXN0PEVjbE1lbnVJdGVtQ29tcG9uZW50Pj4ge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5lY2xSb290TWVudUl0ZW1zKS5waXBlKG1lcmdlV2l0aCh0aGlzLmVjbFJvb3RNZW51SXRlbXMuY2hhbmdlcyksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lbnVJdGVtQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbFJvb3RNZW51SXRlbXMpO1xuXG4gICAgICAgIGlmICghdGhpcy5kaWZmKSB7XG4gICAgICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgocm9vdEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhyb290SXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlmZi5mb3JFYWNoQWRkZWRJdGVtKChjaGFuZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhjaGFuZ2UuaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29ubmVjdE1lbnVJdGVtRXZlbnRzKGl0ZW06IEVjbE1lbnVJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1TZWxlY3QucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtU2VsZWN0ZWQoZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1Ib3Zlci5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1Ib3ZlcmVkKGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtSG92ZXJPdXQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtSG92ZXJlZE91dChldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51SXRlbUNhcmV0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUNhcmV0KGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVNZWdhSXRlbVNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25NZW51TWVnYUl0ZW1TZWxlY3RlZChpdGVtLCBldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51SXRlbUZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUZvY3VzZWQoaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtS2V5ZG93bi5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1LZXlkb3duKGl0ZW0sIGV2dCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1Gb2N1c2VkKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maW5kSW5kZXhJbkFycmF5KGl0ZW0pO1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc01vdmVQcmV2T3ZlcmZsb3coaW5kZXgpKXtcbiAgICAgICAgICAgIHRoaXMub25QcmV2QnRuQ2xpY2soKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzTW92ZU5leHRPdmVyZmxvdyhpbmRleCkpe1xuICAgICAgICAgICAgdGhpcy5vbk5leHRCdG5DbGljaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUtleWRvd24oaXRlbTogRWNsTWVudUl0ZW0sIGV2dDogRWNsTWVudUl0ZW1LZXlkb3duRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChldnQuZG9tRXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfRE9XTjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25OZXh0TWVudUl0ZW1Gb2N1cyhpdGVtKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19SSUdIVDoge1xuICAgICAgICAgICAgICAgIHRoaXMub25OZXh0TWVudUl0ZW1Gb2N1cyhpdGVtKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19VUDoge1xuICAgICAgICAgICAgICAgIHRoaXMub25QcmV2TWVudUl0ZW1Gb2N1cyhpdGVtKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19MRUZUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblByZXZNZW51SXRlbUZvY3VzKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkVOVEVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUVudGVyKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblByZXZNZW51SXRlbUZvY3VzKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maW5kSW5kZXhJbkFycmF5KGl0ZW0pO1xuICAgICAgICBpZiAoaW5kZXggIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Um9vdE1lbnVJdGVtc0FycmF5KClbaW5kZXggLSAxXS5vbkZvY3VzRnJvbU5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25OZXh0TWVudUl0ZW1Gb2N1cyhpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmluZEluZGV4SW5BcnJheShpdGVtKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSB0aGlzLmdldFJvb3RNZW51SXRlbXNBcnJheSgpLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Um9vdE1lbnVJdGVtc0FycmF5KClbaW5kZXggKyAxXS5vbkZvY3VzRnJvbVByZXYoKTtcbiAgICAgICAgfSBcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRJbmRleEluQXJyYXkoaXRlbTogRWNsTWVudUl0ZW0pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSb290TWVudUl0ZW1zQXJyYXkoKS5maW5kSW5kZXgoZWwgPT4gaXRlbSA9PT0gZWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNNb3ZlTmV4dE92ZXJmbG93KGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmdldFJvb3RNZW51SXRlbXNBcnJheSgpW2luZGV4XS5pc1Zpc2libGUgJiYgdGhpcy5pc1Nob3dOZXh0QnRuO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNNb3ZlUHJldk92ZXJmbG93KGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmdldFJvb3RNZW51SXRlbXNBcnJheSgpW2luZGV4XS5pc1Zpc2libGUgJiYgdGhpcy5pc1Nob3dQcmV2QnRuO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1TZWxlY3RlZChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkUm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcblxuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFJvb3RNZW51SXRlbXMoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFN1Ym1lbnVzSXRlbXMoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuXG4gICAgICAgIHRoaXMuc2VuZE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtSG92ZXJlZChldnQ6IEVjbE1lbnVJdGVtSG92ZXJFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5TdWJtZW51KGV2dC5tZW51SXRlbSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUVudGVyKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51QnV0T25lSXRlbShpdGVtKTtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWRGb3JNZW51SXRlbShpdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaXRlbS5pc0hvdmVyZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5TdWJtZW51KGl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb3BlblN1Ym1lbnUoaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKGl0ZW0uaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGVCcmVha3BvaW50ICYmIChpdGVtIGFzIEVjbE1lbnVJdGVtQ29tcG9uZW50KS5zdWJtZW51KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja01lZ2FNZW51KGl0ZW0gYXMgRWNsTWVudUl0ZW1Db21wb25lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXRlbS5pc0hvdmVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51QnV0T25lSXRlbShpdGVtKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd01lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Um9vdE1lbnVJdGVtc0FycmF5KCk6IEVjbE1lbnVJdGVtQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lY2xSb290TWVudUl0ZW1zLnRvQXJyYXkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrTWVnYU1lbnUobWVudUl0ZW06IEVjbE1lbnVJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChtZW51SXRlbS5pc0Z1bGwpIHtcbiAgICAgICAgICAgIGlmIChtZW51SXRlbS5zdWJtZW51LmlzUnRsKSB7XG4gICAgICAgICAgICAgICAgbWVudUl0ZW0uc3VibWVudS5vZmZzZXRSaWdodCA9IHRoaXMub2Zmc2V0TGVmdDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWVudUl0ZW0uc3VibWVudS5vZmZzZXRMZWZ0ID0gdGhpcy5vZmZzZXRMZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hlY2tFbm91Z2hTcGFjZUZvck1lZ2FNZW51KG1lbnVJdGVtKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrRW5vdWdoU3BhY2VGb3JNZWdhTWVudShtZW51SXRlbTogRWNsTWVudUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWVnYUJvdW5kaW5nID0gbWVudUl0ZW0uc3VibWVudS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBjb250YWluZXJCb3VuZGluZyA9IHRoaXMuaW5uZXJTZWN0aW9uLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IG1lbnVJdGVtQm91bmRpbmcgPSBtZW51SXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGNvbnN0IG1lZ2FXaWR0aCA9IG1lZ2FCb3VuZGluZy53aWR0aDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXJCb3VuZGluZy53aWR0aDtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1Qb3NpdGlvbiA9IG1lbnVJdGVtQm91bmRpbmcubGVmdCAtIGNvbnRhaW5lckJvdW5kaW5nLmxlZnQ7XG5cbiAgICAgICAgaWYgKG1lbnVJdGVtUG9zaXRpb24gKyBtZWdhV2lkdGggPiBjb250YWluZXJXaWR0aCkge1xuICAgICAgICAgICAgbWVudUl0ZW0uc3VibWVudS5pc1J0bCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51LmlzUnRsID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtSG92ZXJlZE91dChldnQ6IEVjbE1lbnVJdGVtSG92ZXJFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1DYXJldChldnQ6IEVjbE1lbnVJdGVtQ2FyZXRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1ZXN0ZWRSb290TWVudUl0ZW06IEVjbE1lbnVJdGVtID0gZXZ0Lm1lbnVJdGVtO1xuXG4gICAgICAgIHRoaXMuY2xvc2VSb290TWVudUJ1dE9uZUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZEZvck1lbnVJdGVtKHJlcXVlc3RlZFJvb3RNZW51SXRlbSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lbnVNZWdhSXRlbVNlbGVjdGVkKHJvb3RNZW51SXRlbTogRWNsTWVudUl0ZW0sIGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1ZXN0ZWRTdWJtZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcblxuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFJvb3RNZW51SXRlbXMoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFN1Ym1lbnVzSXRlbXMoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbShyb290TWVudUl0ZW0pO1xuICAgICAgICB0aGlzLnNlbGVjdE1lbnVJdGVtKHJlcXVlc3RlZFN1Ym1lbnVJdGVtKTtcbiAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcblxuICAgICAgICB0aGlzLnNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dCk7XG5cbiAgICAgICAgdGhpcy5oaWRlTWVudSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZWxlY3RBbGxSb290TWVudUl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc2VsZWN0TWVudUl0ZW1zKHRoaXMuZWNsUm9vdE1lbnVJdGVtcy50b0FycmF5KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZWxlY3RBbGxTdWJtZW51c0l0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgocm9vdEl0ZW0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RNZW51SXRlbXMocm9vdEl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0TWVudUl0ZW1zKGl0ZW1zOiBBcnJheTxFY2xNZW51SXRlbT4pOiB2b2lkIHtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgIGl0LmlzQ3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdE1lbnVJdGVtKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGl0ZW0uaXNDdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jdXJyZW50SXRlbSA9IGl0ZW07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlTWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc01lbnVIaWRkZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd01lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNNZW51SGlkZGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZVJvb3RNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgIGl0LmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0LmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtc1xuICAgICAgICAgICAgLmZpbHRlcigoaXQpID0+IGl0ICE9PSBpdGVtKVxuICAgICAgICAgICAgLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICAgICAgaXQuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGl0LmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVIb3ZlckZyb21BbGxJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGVFeHBhbmRlZEZvck1lbnVJdGVtKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGl0ZW0uaXNFeHBhbmRlZCA9ICFpdGVtLmlzRXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuSGFtYnVyZ2VyTWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0hhbWJ1cmdlck1lbnVPcGVuZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VIYW1idXJnZXJNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzSGFtYnVyZ2VyTWVudU9wZW5lZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VuZE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1TZWxlY3QubmV4dChuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudChldnQubWVudUl0ZW0sIGV2dC5kb21FdmVudCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZVJvb3RNZW51SXRlbXNDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsUm9vdE1lbnVJdGVtcyk7XG4gICAgICAgIHRoaXMuY3JlYXRlUm9vdE1lbnVJdGVtc0NoYW5nZXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh0aGlzLm9uTWVudUl0ZW1DaGFuZ2VzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZVN3aXBlR2VzdHVyZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vbignc3dpcGVsZWZ0JywgdGhpcy5vblN3aXBlTGVmdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5oYW1tZXJ0aW1lLm9uKCdzd2lwZXJpZ2h0JywgdGhpcy5vblN3aXBlUmlnaHQuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2RrQnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZShbQnJlYWtwb2ludHMuSGFuZHNldCwgQnJlYWtwb2ludHMuVGFibGV0LCBCcmVha3BvaW50cy5TbWFsbF0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCA9IHJlc3VsdC5tYXRjaGVzO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVjbC1tZW51X19vdmVybGF5XCIgKGNsaWNrKT1cIm9uT3ZlcmxheUNsaWNrKClcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJlY2wtY29udGFpbmVyIGVjbC1tZW51X19jb250YWluZXJcIj5cbiAgICA8YSBlY2xMaW5rIGhyZWY9XCIjXCIgdmFyaWFudD1cInN0YW5kYWxvbmVcIiBjbGFzcz1cImVjbC1tZW51X19vcGVuXCIgKGNsaWNrKT1cIm9uTWVudU9wZW5DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiaGFtYnVyZ2VyXCIgc2l6ZT1cInNcIj48L2VjbC1pY29uPiB7eyAnZWNsLm1lbnUuTUVOVScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2E+XG5cbiAgICA8c2VjdGlvblxuICAgICAgICBjbGFzcz1cImVjbC1tZW51X19pbm5lclwiXG4gICAgICAgICNpbm5lclNlY3Rpb25cbiAgICAgICAgW2NsYXNzLmVjbC1tZW51X19pbm5lci0tZXhwYW5kZWRdPVwiaXNNZW51RXhwYW5kZWRJbk1vYmlsZVwiXG4gICAgICAgIFtjbGFzcy5lY2wtbWVudV9faW5uZXItLWhhcy1vdmVyZmxvd109XCJoYXNPdmVyZmxvd1wiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiZWNsLW1lbnVfX2lubmVyLWhlYWRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19jbG9zZVwiXG4gICAgICAgICAgICAgICAgY29udGFpbmVyU3R5bGVDbGFzcz1cImVjbC1tZW51X19jbG9zZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVDbG9zZUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNsb3NlLWZpbGxlZFwiIHNpemU9XCJzXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbD57eyAnZWNsLmNvbW1vbi5DTE9TRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1tZW51X190aXRsZVwiPnt7ICdlY2wubWVudS5NRU5VJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuXG4gICAgICAgICAgICA8YnV0dG9uIGVjbEJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIGNsYXNzPVwiZWNsLW1lbnVfX2JhY2tcIiAoY2xpY2spPVwib25NZW51QmFja0NsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiPjwvZWNsLWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gZWNsQnV0dG9uTGFiZWw+e3sgJ2VjbC5jb21tb24uQkFDSycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgI2J0blByZXZpb3VzXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19pdGVtIGVjbC1tZW51X19pdGVtcy1wcmV2aW91c1wiXG4gICAgICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2l0ZW0tLWN1cnJlbnRdPVwiaXNDdXJyZW50SXRlbVZpc2libGVcIlxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaXNTaG93UHJldkJ0biA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHJldkJ0bkNsaWNrKClcIj5cbiAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInNcIiB0cmFuc2Zvcm09XCJyb3RhdGUtMjcwXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGVjbEJ1dHRvbkxhYmVsIGNsYXNzPVwiZWNsLXUtc3Itb25seVwiPnt7ICdlY2wuY29tbW9uLlBSRVZJT1VTJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgI2J0bk5leHRcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2l0ZW0gZWNsLW1lbnVfX2l0ZW1zLW5leHRcIlxuICAgICAgICAgICAgW2NsYXNzLmVjbC1tZW51X19pdGVtLS1jdXJyZW50XT1cIiFpc0N1cnJlbnRJdGVtVmlzaWJsZVwiXG4gICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc1Nob3dOZXh0QnRuID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25OZXh0QnRuQ2xpY2soKVwiPlxuICAgICAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwic1wiIHRyYW5zZm9ybT1cInJvdGF0ZS05MFwiPjwvZWNsLWljb24+XG4gICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbCBjbGFzcz1cImVjbC11LXNyLW9ubHlcIj57eyAnZWNsLmNvbW1vbi5ORVhUJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDx1bCBjbGFzcz1cImVjbC1tZW51X19saXN0XCIgI2l0ZW1zTGlzdD5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==
@@ -1,15 +1,17 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component, Input, HostBinding, Output, EventEmitter, HostListener, ContentChildren, forwardRef, } from '@angular/core';
2
+ import { Component, Input, HostBinding, Output, EventEmitter, HostListener, ContentChildren, forwardRef, ViewChild, } from '@angular/core';
3
3
  import { coerceBoolean } from '@eui/base';
4
4
  import { ECLBaseDirective } from '../../ecl-base.directive';
5
- import { EclMenuItemSelectEvent } from '../common/ecl-menu-item.event';
5
+ import { EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../common/ecl-menu-item.event';
6
6
  import { EclIconComponent } from '../../ecl-icon';
7
+ import { ENTER } from '@angular/cdk/keycodes';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/common";
9
10
  import * as i2 from "@angular/router";
10
11
  export class EclMenuMegaItemComponent extends ECLBaseDirective {
11
12
  constructor() {
12
13
  super(...arguments);
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
15
  this.routerLink = null;
14
16
  this.queryParams = null;
15
17
  this.queryParamsHandling = null;
@@ -17,6 +19,7 @@ export class EclMenuMegaItemComponent extends ECLBaseDirective {
17
19
  this.target = '';
18
20
  this.cmpClass = true;
19
21
  this.menuItemSelect = new EventEmitter();
22
+ this.menuItemKeydown = new EventEmitter();
20
23
  this.hasChildren = false;
21
24
  this.isExpanded = true;
22
25
  this.children = [];
@@ -39,15 +42,24 @@ export class EclMenuMegaItemComponent extends ECLBaseDirective {
39
42
  onHostClick(evt) {
40
43
  evt.stopPropagation();
41
44
  }
42
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuMegaItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
43
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.7", type: EclMenuMegaItemComponent, selector: "ecl-menu-mega-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href", target: "target", isCurrent: "isCurrent" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class.ecl-menu__subitem": "this.cmpClass", "class.ecl-menu__subitem--current": "this.isCurrent" } }, queries: [{ propertyName: "iconComponents", predicate: i0.forwardRef(() => EclIconComponent) }], usesInheritance: true, ngImport: i0, template: "<a\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a\n *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
45
+ onFocus() {
46
+ this.megaMenuLink.nativeElement.focus();
47
+ }
48
+ onKeydown(evt) {
49
+ if (evt.keyCode === ENTER) {
50
+ this.onItemClick(evt);
51
+ }
52
+ this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt));
53
+ }
54
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EclMenuMegaItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
55
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: EclMenuMegaItemComponent, selector: "ecl-menu-mega-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href", target: "target", isCurrent: "isCurrent" }, outputs: { menuItemSelect: "menuItemSelect", menuItemKeydown: "menuItemKeydown" }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class.ecl-menu__subitem": "this.cmpClass", "class.ecl-menu__subitem--current": "this.isCurrent" } }, queries: [{ propertyName: "iconComponents", predicate: i0.forwardRef(() => EclIconComponent) }], viewQueries: [{ propertyName: "megaMenuLink", first: true, predicate: ["megaMenuLink"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<a #megaMenuLink\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a #megaMenuLink\n *ngIf=\"!href\"\n tabindex=\"0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
44
56
  }
45
57
  __decorate([
46
58
  coerceBoolean
47
59
  ], EclMenuMegaItemComponent.prototype, "isCurrent", void 0);
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuMegaItemComponent, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EclMenuMegaItemComponent, decorators: [{
49
61
  type: Component,
50
- args: [{ selector: 'ecl-menu-mega-item', template: "<a\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a\n *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:list-item}\n"] }]
62
+ args: [{ selector: 'ecl-menu-mega-item', template: "<a #megaMenuLink\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a #megaMenuLink\n *ngIf=\"!href\"\n tabindex=\"0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:list-item}\n"] }]
51
63
  }], propDecorators: { id: [{
52
64
  type: Input
53
65
  }], label: [{
@@ -73,10 +85,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7",
73
85
  }], iconComponents: [{
74
86
  type: ContentChildren,
75
87
  args: [forwardRef(() => EclIconComponent)]
88
+ }], megaMenuLink: [{
89
+ type: ViewChild,
90
+ args: ['megaMenuLink']
76
91
  }], menuItemSelect: [{
77
92
  type: Output
93
+ }], menuItemKeydown: [{
94
+ type: Output
78
95
  }], onHostClick: [{
79
96
  type: HostListener,
80
97
  args: ['click', ['$event']]
81
98
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFhbEQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQjtJQVg5RDs7UUFjYSxlQUFVLEdBQVEsSUFBSSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBQ3hCLHdCQUFtQixHQUFRLElBQUksQ0FBQztRQUNoQyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDVyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBS3ZELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFFdEUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFZLElBQUksQ0FBQztRQUUzQixhQUFRLEdBQXVCLEVBQUUsQ0FBQztLQXdCckM7SUF0QkcsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2hDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBZTtRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUdELFdBQVcsQ0FBQyxHQUFlO1FBQ3ZCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO3dJQXpDUSx3QkFBd0I7NEhBQXhCLHdCQUF3Qix1Z0JBV0MsZ0JBQWdCLHFEQ3hDdEQsNnNCQTBCQTs7QURZNkU7SUFBeEUsYUFBYTsyREFBb0Y7a0dBVHpGLHdCQUF3QjtrQkFYcEMsU0FBUzsrQkFDSSxvQkFBb0I7OEJBV3JCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNrQyxRQUFRO3NCQUEvQyxXQUFXO3VCQUFDLHlCQUF5QjtnQkFDbUMsU0FBUztzQkFBbEUsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBRWxCLGNBQWM7c0JBQWxFLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUV6QyxjQUFjO3NCQUF2QixNQUFNO2dCQTBCUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIGZvcndhcmRSZWYsXG4gICAgUXVlcnlMaXN0LFxuICAgIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VjbC1pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtbWVudS1tZWdhLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBFY2xNZW51SXRlbSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJvdXRlckxpbms6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXM6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXNIYW5kbGluZzogYW55ID0gbnVsbDtcbiAgICBASW5wdXQoKSBocmVmOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSB0YXJnZXQ6IHN0cmluZyA9ICcnO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX3N1Yml0ZW0nKSBjbXBDbGFzczogYm9vbGVhbiA9IHRydWU7XG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudV9fc3ViaXRlbS0tY3VycmVudCcpIGlzQ3VycmVudDogYm9vbGVhbiB8IGFueTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFY2xJY29uQ29tcG9uZW50KSkgaWNvbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxFY2xJY29uQ29tcG9uZW50PjtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcblxuICAgIGhhc0NoaWxkcmVuOiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNFeHBhbmRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBjaGlsZHJlbjogQXJyYXk8RWNsTWVudUl0ZW0+ID0gW107XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmljb25Db21wb25lbnRzKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmljb25Db21wb25lbnRzLmZvckVhY2goKGljbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpY24uY2xhc3MgPSAnZWNsLW1lbnVfX3N1YmxpbmstaWNvbic7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQodGhpcywgZXZ0KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uSG9zdENsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxufVxuIiwiPGFcbiAgICAqbmdJZj1cImhyZWZcIlxuICAgIFtocmVmXT1cImhyZWZcIlxuICAgIFt0YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBjbGFzcz1cImVjbC1tZW51X19zdWJsaW5rXCJcbiAgICBbY2xhc3MuZWNsLW1lbnVfX3N1YmxpbmstLWN1cnJlbnRdPVwiaXNDdXJyZW50XCJcbiAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPGFcbiAgICAqbmdJZj1cIiFocmVmXCJcbiAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgIGNsYXNzPVwiZWNsLW1lbnVfX3N1YmxpbmtcIlxuICAgIFtjbGFzcy5lY2wtbWVudV9fc3VibGluay0tY3VycmVudF09XCJpc0N1cnJlbnRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCI+XG4gICAge3sgbGFiZWwgfX1cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9hPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUlWLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQWE5QyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBWDlEOztRQWNJLDhEQUE4RDtRQUNyRCxlQUFVLEdBQW1CLElBQUksQ0FBQztRQUNsQyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsd0JBQW1CLEdBQXdCLElBQUksQ0FBQztRQUNoRCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNtQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBTzlDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFDNUQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUV4RSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRWxCLGFBQVEsR0FBdUIsRUFBRSxDQUFDO0tBbUNyQztJQWpDRyxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDaEMsR0FBRyxDQUFDLEtBQUssR0FBRyx3QkFBd0IsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFVO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksc0JBQXNCLENBQUMsSUFBSSxFQUFFLEdBQWlCLENBQUMsQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUdELFdBQVcsQ0FBQyxHQUFlO1FBQ3ZCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVTtRQUNoQixJQUFLLEdBQXFCLENBQUMsT0FBTyxLQUFLLEtBQUssRUFBRTtZQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsR0FBb0IsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztpSUF4RFEsd0JBQXdCO3FIQUF4Qix3QkFBd0IsMmlCQWFDLGdCQUFnQixtS0M5Q3RELHkwQkE2QkE7O0FEZTZFO0lBQXhFLGFBQWE7MkRBQW9GOzJGQVh6Rix3QkFBd0I7a0JBWHBDLFNBQVM7K0JBQ0ksb0JBQW9COzhCQVdyQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBRW1DLFNBQVM7c0JBQWxFLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsa0NBQWtDO2dCQUVsQixjQUFjO3NCQUFsRSxlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDeEIsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUVmLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkEwQlAsV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBmb3J3YXJkUmVmLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW1LZXlkb3duRXZlbnQsIEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQgfSBmcm9tICcuLi9jb21tb24vZWNsLW1lbnUtaXRlbS5ldmVudCc7XG5pbXBvcnQgeyBFY2xJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWNsLWljb24nO1xuaW1wb3J0IHsgUGFyYW1zLCBRdWVyeVBhcmFtc0hhbmRsaW5nIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtbWVudS1tZWdhLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBFY2xNZW51SXRlbSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQElucHV0KCkgcm91dGVyTGluazogc3RyaW5nIHwgYW55W10gPSBudWxsO1xuICAgIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiBQYXJhbXMgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBxdWVyeVBhcmFtc0hhbmRsaW5nOiBRdWVyeVBhcmFtc0hhbmRsaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSBocmVmID0gJyc7XG4gICAgQElucHV0KCkgdGFyZ2V0ID0gJyc7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudV9fc3ViaXRlbScpIGNtcENsYXNzID0gdHJ1ZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX3N1Yml0ZW0tLWN1cnJlbnQnKSBpc0N1cnJlbnQ6IGJvb2xlYW4gfCBhbnk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRWNsSWNvbkNvbXBvbmVudCkpIGljb25Db21wb25lbnRzOiBRdWVyeUxpc3Q8RWNsSWNvbkNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnbWVnYU1lbnVMaW5rJykgbWVnYU1lbnVMaW5rOiBFbGVtZW50UmVmXG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVJdGVtS2V5ZG93biA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1LZXlkb3duRXZlbnQ+KCk7XG5cbiAgICBoYXNDaGlsZHJlbiA9IGZhbHNlO1xuICAgIGlzRXhwYW5kZWQgPSB0cnVlO1xuXG4gICAgY2hpbGRyZW46IEFycmF5PEVjbE1lbnVJdGVtPiA9IFtdO1xuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pY29uQ29tcG9uZW50cykge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pY29uQ29tcG9uZW50cy5mb3JFYWNoKChpY24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWNuLmNsYXNzID0gJ2VjbC1tZW51X19zdWJsaW5rLWljb24nO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1TZWxlY3QubmV4dChuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCh0aGlzLCBldnQgYXMgTW91c2VFdmVudCkpO1xuXG4gICAgICAgIGlmICghdGhpcy5ocmVmKSB7XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkhvc3RDbGljayhldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVnYU1lbnVMaW5rLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5vbkl0ZW1DbGljayhldnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWVudUl0ZW1LZXlkb3duLm5leHQobmV3IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KHRoaXMsIGV2dCBhcyBLZXlib2FyZEV2ZW50KSk7XG4gICAgfVxufVxuIiwiPGEgICNtZWdhTWVudUxpbmtcbiAgICAqbmdJZj1cImhyZWZcIlxuICAgIFtocmVmXT1cImhyZWZcIlxuICAgIFt0YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBjbGFzcz1cImVjbC1tZW51X19zdWJsaW5rXCJcbiAgICBbY2xhc3MuZWNsLW1lbnVfX3N1YmxpbmstLWN1cnJlbnRdPVwiaXNDdXJyZW50XCJcbiAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIj5cbiAgICB7eyBsYWJlbCB9fVxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG48L2E+XG5cbjxhICAjbWVnYU1lbnVMaW5rXG4gICAgKm5nSWY9XCIhaHJlZlwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgIGNsYXNzPVwiZWNsLW1lbnVfX3N1YmxpbmtcIlxuICAgIFtjbGFzcy5lY2wtbWVudV9fc3VibGluay0tY3VycmVudF09XCJpc0N1cnJlbnRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=