@eui/ecl 17.0.0-next.8 → 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
@@ -1,36 +1,39 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component, ContentChildren, EventEmitter, forwardRef, HostBinding, Input, Output, ViewChild, ViewChildren, } from '@angular/core';
2
+ import { Component, ContentChildren, EventEmitter, HostBinding, Input, Output, ViewChild, ViewChildren, forwardRef, } from '@angular/core';
3
3
  import { coerceBoolean, coerceElement, coerceNumber } from '@eui/base';
4
- import { interval, Subject, switchMap, takeUntil } from 'rxjs';
5
- import { EclBaseEvent } from '../../model';
4
+ import { Subject, interval, switchMap, takeUntil } from 'rxjs';
5
+ import { KeyCode } from '../../utils';
6
6
  import { ECLBaseDirective } from '../ecl-base.directive';
7
7
  import { EclCarouselItemComponent } from './ecl-carousel-item.component';
8
- import { KeyCode } from '../../utils';
8
+ import { EclSlideEvent } from './ecl-carousel.event';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/cdk/layout";
11
11
  import * as i2 from "@angular/common";
12
12
  import * as i3 from "../ecl-icon/ecl-icon.component";
13
- import * as i4 from "@ngx-translate/core";
14
- export class EclSlideEvent extends EclBaseEvent {
15
- constructor(item) {
16
- super();
17
- this.item = item;
18
- }
19
- }
13
+ import * as i4 from "./ecl-carousel-item.component";
14
+ import * as i5 from "@ngx-translate/core";
20
15
  export class EclCarouselComponent extends ECLBaseDirective {
21
- constructor(cdkBreakpointObserver, cd) {
16
+ constructor(cdkBreakpointObserver, cd, renderer2) {
22
17
  super();
23
18
  this.cdkBreakpointObserver = cdkBreakpointObserver;
24
19
  this.cd = cd;
20
+ this.renderer2 = renderer2;
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
22
  this.isAutoplay = true;
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
24
  this.playInterval = 5000;
27
25
  this.slide = new EventEmitter();
28
26
  this.isPlaying = false;
29
27
  this.isPausedForced = false;
28
+ this.isTabletBreakpoint = false;
29
+ this.isDesktopBreakpoint = false;
30
+ this.isLargeDesktopBreakpoint = false;
30
31
  this.isMobileBreakpoint = false;
32
+ this.transitionDuration = 0.4;
31
33
  this.playSubject = new Subject();
32
34
  this.stopSubject = new Subject();
33
35
  this.destroy$ = new Subject();
36
+ this.TIMEOUT_INTERVAL = 400;
34
37
  }
35
38
  get cssClasses() {
36
39
  return [super.getCssClasses('ecl-carousel')].join(' ').trim();
@@ -40,7 +43,7 @@ export class EclCarouselComponent extends ECLBaseDirective {
40
43
  }
41
44
  ngAfterContentInit() {
42
45
  this.observeBreakpointChanges();
43
- this.initializeSlider();
46
+ setTimeout(() => this.initializeSlider());
44
47
  }
45
48
  ngAfterViewInit() {
46
49
  this.observeElementSizeChanges();
@@ -49,6 +52,9 @@ export class EclCarouselComponent extends ECLBaseDirective {
49
52
  ngOnDestroy() {
50
53
  this.destroy$.next(true);
51
54
  this.destroy$.unsubscribe();
55
+ if (this.unsubscribeListener) {
56
+ this.unsubscribeListener();
57
+ }
52
58
  }
53
59
  onPlayClick() {
54
60
  this.startPlaying();
@@ -60,10 +66,20 @@ export class EclCarouselComponent extends ECLBaseDirective {
60
66
  this.showButton(this.playButton);
61
67
  this.focusOnButton(this.playButton);
62
68
  }
69
+ onFirstCarouselElementPress(e) {
70
+ if (e.key === KeyCode.TAB) {
71
+ if (this.isPlaying) {
72
+ this.stopPlaying();
73
+ }
74
+ }
75
+ }
63
76
  onPlayKeyboardPress(e) {
77
+ if (e.key === KeyCode.TAB && e.shiftKey) {
78
+ return;
79
+ }
64
80
  if ([KeyCode.TAB].includes(e.key)) {
65
81
  if (this.isPlaying) {
66
- this.activateSlide(this.slides.get(0));
82
+ this.activateSlide(this.slides.get(0), true);
67
83
  this.focusOnButton(this.navigationButtons.get(0));
68
84
  this.stopPlaying();
69
85
  }
@@ -77,40 +93,17 @@ export class EclCarouselComponent extends ECLBaseDirective {
77
93
  }
78
94
  }
79
95
  onNavBtnKeyboardPress(e, index) {
80
- if ([KeyCode.TAB, KeyCode.ARROW_RIGHT].includes(e.key)) {
81
- if (this.isLastButton(index)) {
82
- if (this.isButtonVisible(this.prevButton)) {
83
- this.focusOnButton(this.prevButton);
84
- e.preventDefault();
85
- }
86
- if (this.isButtonVisible(this.mobilePrevButton)) {
87
- this.focusOnButton(this.mobilePrevButton);
88
- e.preventDefault();
89
- }
90
- }
91
- else {
92
- this.goToNextSlide();
93
- this.focusOnButton(this.mobilePrevButton);
94
- const button = this.navigationButtons.get(this.getCurrentSlideIndex());
95
- this.focusOnButton(button);
96
- e.preventDefault();
97
- }
96
+ if (e.key === KeyCode.TAB && e.shiftKey) {
97
+ this.onNavigationButtonTabAndShift(e, index);
98
98
  }
99
- if (e.key === KeyCode.ARROW_LEFT) {
100
- if (this.isFirstButton(index)) {
101
- if (this.playButton) {
102
- this.focusOnButton(this.playButton);
103
- }
104
- if (this.pauseButton) {
105
- this.focusOnButton(this.pauseButton);
106
- }
107
- }
108
- else {
109
- this.goToPreviousSlide();
110
- const button = this.navigationButtons.get(this.getCurrentSlideIndex());
111
- this.focusOnButton(button);
112
- e.preventDefault();
113
- }
99
+ else if (e.key === KeyCode.ARROW_RIGHT) {
100
+ this.onNavigationButtonArrowRight(e);
101
+ }
102
+ else if (e.key === KeyCode.TAB) {
103
+ this.onNavigationButtonTab(e, index);
104
+ }
105
+ else if (e.key === KeyCode.ARROW_LEFT) {
106
+ this.onNavigationButtonArrowLeft(e, index);
114
107
  }
115
108
  return;
116
109
  }
@@ -125,21 +118,21 @@ export class EclCarouselComponent extends ECLBaseDirective {
125
118
  }
126
119
  focusOnButton(button) {
127
120
  if (!button) {
128
- return false;
121
+ return;
129
122
  }
130
123
  button.nativeElement.focus();
131
124
  }
132
125
  onSlideControlClick(slide) {
133
126
  this.stopPlaying();
134
- this.activateSlide(slide);
127
+ this.activateSlide(slide, true);
135
128
  }
136
129
  onNextSlideClick() {
137
130
  this.stopPlaying();
138
- this.goToNextSlide();
131
+ this.goToNextSlide(true);
139
132
  }
140
133
  onPreviousSlideClick() {
141
134
  this.stopPlaying();
142
- this.goToPreviousSlide();
135
+ this.goToPreviousSlide(true);
143
136
  }
144
137
  onSlideHover() {
145
138
  this.pausePlaying();
@@ -153,25 +146,31 @@ export class EclCarouselComponent extends ECLBaseDirective {
153
146
  return this.isPausedForced;
154
147
  }
155
148
  isPadded() {
156
- return !this.isMobileBreakpoint;
149
+ return this.isDesktopBreakpoint;
157
150
  }
158
151
  hasControls() {
159
152
  return this.getSlidesCount() > 1;
160
153
  }
161
154
  getCurrentSlideIndex() {
162
155
  let currentIndex;
163
- this.slides.forEach((item, idx) => {
164
- if (item.isCurrent) {
156
+ this.getAllSlidesArray().forEach((item, idx) => {
157
+ if (item && item.isCurrent) {
165
158
  currentIndex = idx;
166
159
  }
167
160
  });
168
- return currentIndex;
161
+ if (currentIndex === this.getAllSlidesCount() - 1) {
162
+ return 0;
163
+ }
164
+ else if (currentIndex === 0) {
165
+ return this.getSlidesCount() - 1;
166
+ }
167
+ return currentIndex - 1;
169
168
  }
170
169
  getCarouselSlidesWidth() {
171
- return this.carouselContainerElement?.offsetWidth * this.getSlidesCount();
170
+ return this.carouselContainerElement?.offsetWidth * this.getAllSlidesCount();
172
171
  }
173
172
  getCarouselSlidesOffset() {
174
- return -1 * this.carouselContainerElement?.offsetWidth * this.getCurrentSlideIndex();
173
+ return -1 * this.carouselContainerElement?.offsetWidth * this.getCurrentItemIndex();
175
174
  }
176
175
  initAutoplay() {
177
176
  const start$ = this.playSubject.asObservable();
@@ -179,40 +178,83 @@ export class EclCarouselComponent extends ECLBaseDirective {
179
178
  start$
180
179
  .pipe(switchMap(() => interval(this.playInterval).pipe(takeUntil(stop$))), takeUntil(this.destroy$))
181
180
  .subscribe(() => {
182
- this.goToNextSlide();
181
+ this.goToNextSlide(true);
182
+ });
183
+ }
184
+ getCurrentItemIndex() {
185
+ let result = 0;
186
+ this.getAllSlidesArray().forEach((item, index) => {
187
+ if (item && item.isCurrent) {
188
+ result = index;
189
+ }
183
190
  });
191
+ return result;
184
192
  }
185
193
  initializeSlider() {
186
194
  this.slides.forEach((item, idx) => {
187
195
  this.initSlide(item, idx);
188
196
  });
189
- if (this.hasControls) {
197
+ if (this.hasControls()) {
198
+ this.initHiddenItems();
190
199
  if (this.isNoSlideSelected()) {
191
- this.activateSlide(this.slides.first);
200
+ this.activateSlide(this.slides.first, false);
192
201
  }
193
- if (this.isAutoplay && !this.isMobileBreakpoint) {
202
+ if (this.isAutoplay && this.isTabletBreakpoint) {
194
203
  this.startPlaying();
195
204
  }
196
205
  }
197
206
  }
207
+ initHiddenItems() {
208
+ this.firstHiddenItem.el.nativeElement.innerHTML = this.getLastContentChild();
209
+ this.firstHiddenItem.isCurrent = false;
210
+ this.lastHiddenItem.el.nativeElement.innerHTML = this.getFirstContentChild();
211
+ this.lastHiddenItem.isCurrent = false;
212
+ this.slideWidth = this.slides.first.width;
213
+ this.unsubscribeListener = this.renderer2.listen(this.slidesContainer, 'transitionend', () => this.checkIndex());
214
+ }
215
+ checkIndex() {
216
+ if (this.getCurrentItemIndex() === this.getAllSlidesCount() - 1) {
217
+ const item = this.slides.first;
218
+ this.activateSlide(item, false);
219
+ }
220
+ else if (this.getCurrentItemIndex() === 0) {
221
+ const item = this.slides.last;
222
+ this.activateSlide(item, false);
223
+ }
224
+ }
225
+ getLastContentChild() {
226
+ return this.getSlidesCount() > 0 ? this.slides.get(this.getSlidesCount() - 1).el.nativeElement.innerHTML : '';
227
+ }
228
+ getFirstContentChild() {
229
+ return this.getSlidesCount() > 0 ? this.slides.get(0).el.nativeElement.innerHTML : '';
230
+ }
198
231
  initSlide(item, idx) {
199
232
  item.index = idx;
200
233
  item.ariaLabel = `slide ${idx + 1} of ${this.getSlidesCount()}`;
201
- item.width = 100 / this.getSlidesCount();
234
+ item.width = 100 / this.getAllSlidesCount();
202
235
  }
203
- goToNextSlide() {
204
- this.activateSlide(this.getNextSlide());
236
+ goToNextSlide(isLoop) {
237
+ this.activateSlide(this.getNextSlide(isLoop), true);
205
238
  }
206
- goToPreviousSlide() {
207
- this.activateSlide(this.getPreviousSlide());
239
+ goToPreviousSlide(isLoop) {
240
+ this.activateSlide(this.getPreviousSlide(isLoop), true);
208
241
  }
209
- activateSlide(slide) {
242
+ activateSlide(slide, withTransition) {
243
+ if (withTransition) {
244
+ this.transitionDuration = 0.4;
245
+ }
246
+ else {
247
+ this.transitionDuration = 0;
248
+ }
210
249
  if (slide) {
211
- this.slides.forEach((item) => {
250
+ this.getAllSlidesArray().forEach((item) => {
212
251
  item.isCurrent = false;
213
252
  });
214
253
  slide.isCurrent = true;
215
254
  }
255
+ if (withTransition) {
256
+ this.slide.next(new EclSlideEvent(this.slides.get(this.getCurrentSlideIndex())));
257
+ }
216
258
  }
217
259
  isLastButton(index) {
218
260
  const buttonsList = this.navigationButtons;
@@ -239,20 +281,33 @@ export class EclCarouselComponent extends ECLBaseDirective {
239
281
  this.isPlaying = true;
240
282
  this.playSubject.next();
241
283
  }
242
- getNextSlide() {
284
+ getNextSlide(isLoop) {
243
285
  const slidesCount = this.getSlidesCount();
244
286
  const currentIndex = this.getCurrentSlideIndex();
245
287
  if (currentIndex >= slidesCount - 1) {
246
- return this.slides.first;
288
+ if (isLoop) {
289
+ return this.slides.first;
290
+ }
291
+ else {
292
+ return this.slides.last;
293
+ }
247
294
  }
248
295
  else {
249
296
  return this.slides.get(currentIndex + 1);
250
297
  }
251
298
  }
252
- getPreviousSlide() {
299
+ getAllSlidesArray() {
300
+ return [...[this.firstHiddenItem], ...this.slides.toArray(), ...[this.lastHiddenItem]];
301
+ }
302
+ getPreviousSlide(isLoop) {
253
303
  const currentIndex = this.getCurrentSlideIndex();
254
304
  if (currentIndex <= 0) {
255
- return this.slides.last;
305
+ if (isLoop) {
306
+ return this.slides.last;
307
+ }
308
+ else {
309
+ return this.slides.first;
310
+ }
256
311
  }
257
312
  else {
258
313
  return this.slides.get(currentIndex - 1);
@@ -261,16 +316,96 @@ export class EclCarouselComponent extends ECLBaseDirective {
261
316
  getSlidesCount() {
262
317
  return this.slides.length;
263
318
  }
319
+ getAllSlidesCount() {
320
+ if (this.hasControls()) {
321
+ return this.slides.length + 2;
322
+ }
323
+ else {
324
+ return this.slides.length;
325
+ }
326
+ }
264
327
  isNoSlideSelected() {
265
328
  return !this.slides.some((item) => item.isCurrent);
266
329
  }
330
+ onNavigationButtonTabAndShift(e, index) {
331
+ const button = this.navigationButtons.get(this.getCurrentSlideIndex());
332
+ if (button) {
333
+ if (this.isPlaying) {
334
+ this.stopPlaying();
335
+ }
336
+ }
337
+ if (this.isFirstButton(index)) {
338
+ if (this.playButton) {
339
+ this.focusOnButton(this.playButton);
340
+ }
341
+ if (this.pauseButton) {
342
+ this.focusOnButton(this.pauseButton);
343
+ }
344
+ }
345
+ else {
346
+ setTimeout(() => {
347
+ this.goToPreviousSlide(false);
348
+ const button = this.navigationButtons.get(this.getCurrentSlideIndex());
349
+ this.focusOnButton(button);
350
+ }, this.TIMEOUT_INTERVAL);
351
+ }
352
+ e.preventDefault();
353
+ }
354
+ onNavigationButtonTab(e, index) {
355
+ if (this.isLastButton(index)) {
356
+ if (this.isButtonVisible(this.prevButton)) {
357
+ this.focusOnButton(this.prevButton);
358
+ e.preventDefault();
359
+ }
360
+ }
361
+ else {
362
+ setTimeout(() => {
363
+ this.goToNextSlide(false);
364
+ const button = this.navigationButtons.get(this.getCurrentSlideIndex());
365
+ this.focusOnButton(button);
366
+ }, this.TIMEOUT_INTERVAL);
367
+ e.preventDefault();
368
+ }
369
+ }
370
+ onNavigationButtonArrowRight(e) {
371
+ setTimeout(() => {
372
+ this.goToNextSlide(false);
373
+ const button = this.navigationButtons.get(this.getCurrentSlideIndex());
374
+ this.focusOnButton(button);
375
+ }, this.TIMEOUT_INTERVAL);
376
+ e.preventDefault();
377
+ }
378
+ onNavigationButtonArrowLeft(e, index) {
379
+ if (this.isFirstButton(index)) {
380
+ if (this.playButton) {
381
+ this.focusOnButton(this.playButton);
382
+ }
383
+ if (this.pauseButton) {
384
+ this.focusOnButton(this.pauseButton);
385
+ }
386
+ }
387
+ else {
388
+ setTimeout(() => {
389
+ this.goToPreviousSlide(false);
390
+ const button = this.navigationButtons.get(this.getCurrentSlideIndex());
391
+ this.focusOnButton(button);
392
+ }, this.TIMEOUT_INTERVAL);
393
+ e.preventDefault();
394
+ }
395
+ }
267
396
  observeBreakpointChanges() {
268
397
  this.cdkBreakpointObserver
269
- .observe(['(max-width: 996px)'])
398
+ .observe([
399
+ '(min-width: 768px)',
400
+ '(min-width: 1140px) and (max-width: 1260px)',
401
+ '(min-width: 1140px)',
402
+ ])
270
403
  .pipe(takeUntil(this.destroy$))
271
404
  .subscribe((result) => {
272
- this.isMobileBreakpoint = result.matches;
273
- if (this.isMobileBreakpoint) {
405
+ this.isTabletBreakpoint = result.breakpoints['(min-width: 768px)'];
406
+ this.isDesktopBreakpoint = result.breakpoints['(min-width: 1140px) and (max-width: 1260px)'];
407
+ this.isLargeDesktopBreakpoint = result.breakpoints['(min-width: 1140px)'];
408
+ if (!this.isTabletBreakpoint) {
274
409
  this.stopPlaying();
275
410
  }
276
411
  });
@@ -280,8 +415,8 @@ export class EclCarouselComponent extends ECLBaseDirective {
280
415
  this.cd.detectChanges();
281
416
  }).observe(this.carouselContainerElement);
282
417
  }
283
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclCarouselComponent, deps: [{ token: i1.BreakpointObserver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
284
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.7", type: EclCarouselComponent, selector: "ecl-carousel", inputs: { isAutoplay: "isAutoplay", playInterval: "playInterval" }, outputs: { slide: "slide" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "slides", predicate: i0.forwardRef(() => EclCarouselItemComponent) }], viewQueries: [{ propertyName: "carouselContainerElement", first: true, predicate: ["carouselContainer"], descendants: true }, { propertyName: "playButton", first: true, predicate: ["playButton"], descendants: true }, { propertyName: "pauseButton", first: true, predicate: ["pauseButton"], descendants: true }, { propertyName: "prevButton", first: true, predicate: ["prevButton"], descendants: true }, { propertyName: "mobilePrevButton", first: true, predicate: ["mobilePrevButton"], descendants: true }, { propertyName: "navigationButtons", predicate: ["currButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #carouselContainer class=\"ecl-carousel__container\" [class.ecl-carousel-container--padded]=\"isPadded()\">\n <div\n class=\"ecl-carousel__slides\"\n [style.width.px]=\"getCarouselSlidesWidth()\"\n [style.left.px]=\"getCarouselSlidesOffset()\"\n (mouseover)=\"onSlideHover()\"\n (mouseout)=\"onSlideHoverout()\">\n <ng-content></ng-content>\n </div>\n\n <button\n #mobilePrevButton\n class=\"ecl-carousel__prev\"\n [class.ecl-u-d-none]=\"!hasControls() || isMobileBreakpoint\"\n (click)=\"onPreviousSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PREV-SLIDES' | translate }}</span>\n </button>\n\n <button class=\"ecl-carousel__next\" [class.ecl-u-d-none]=\"!hasControls() || isMobileBreakpoint\" (click)=\"onNextSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.NEXT-SLIDES' | translate }}</div>\n </button>\n</div>\n\n<div *ngIf=\"hasControls()\" class=\"ecl-carousel__controls\">\n <div class=\"ecl-container\">\n <div class=\"ecl-carousel__autoplay\">\n <button\n #playButton\n class=\"ecl-carousel__play\"\n [style.display]=\"isPlaying ? 'none' : ''\"\n (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPlayClick()\">\n <ecl-icon icon=\"play\" size=\"l\" class=\"ecl-carousel__icon-default\" isInverted> </ecl-icon>\n <ecl-icon icon=\"play-filled\" size=\"l\" class=\"ecl-carousel__icon-active\" isInverted> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.AUTOPLAY' | translate }}</div>\n </button>\n <button\n #pauseButton\n class=\"ecl-carousel__pause\"\n [style.display]=\"isPlaying ? '' : 'none'\"\n (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPauseClick()\">\n <ecl-icon icon=\"pause\" size=\"l\" class=\"ecl-carousel__icon-default\" isInverted> </ecl-icon>\n <ecl-icon icon=\"pause-filled\" size=\"l\" class=\"ecl-carousel__icon-active\" isInverted> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PAUSE' | translate }}</div>\n </button>\n </div>\n\n <div class=\"ecl-carousel__navigation\">\n <button\n *ngFor=\"let slide of slides; let i = index\"\n #currButton\n [attr.aria-current]=\"slide.isCurrent\"\n class=\"ecl-carousel__navigation-item\"\n (click)=\"onSlideControlClick(slide)\"\n (keydown)=\"onNavBtnKeyboardPress($event, i)\">\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.GO-TO-SLIDE' | translate }} {{ i + 1 }}</span>\n </button>\n </div>\n\n <button #prevButton class=\"ecl-carousel__prev\" [class.ecl-u-d-none]=\"!isMobileBreakpoint\" (click)=\"onPreviousSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PREV-SLIDES' | translate }}</span>\n </button>\n\n <div class=\"ecl-carousel__pagination\">\n <span class=\"ecl-carousel__current\">{{ getCurrentSlideIndex() + 1 }}</span>\n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-carousel__max\">{{ slides.length }}</span>\n </div>\n\n <button class=\"ecl-carousel__next\" [class.ecl-u-d-none]=\"!isMobileBreakpoint\" (click)=\"onNextSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.NEXT-SLIDES' | translate }}</div>\n </button>\n </div>\n</div>\n", styles: [":host{display:block}.ecl-carousel__container{width:100%}.ecl-carousel__slides{transition-duration:.4s}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
418
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EclCarouselComponent, deps: [{ token: i1.BreakpointObserver }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
419
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: EclCarouselComponent, selector: "ecl-carousel", inputs: { isAutoplay: "isAutoplay", playInterval: "playInterval" }, outputs: { slide: "slide" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "slides", predicate: i0.forwardRef(() => EclCarouselItemComponent) }], viewQueries: [{ propertyName: "carouselContainerElement", first: true, predicate: ["carouselContainer"], descendants: true }, { propertyName: "playButton", first: true, predicate: ["playButton"], descendants: true }, { propertyName: "pauseButton", first: true, predicate: ["pauseButton"], descendants: true }, { propertyName: "prevButton", first: true, predicate: ["prevButton"], descendants: true }, { propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true }, { propertyName: "navigationButtons", predicate: ["currButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #carouselContainer class=\"ecl-carousel__container\" [class.ecl-carousel-container--padded]=\"isPadded()\">\n <div #slidesContainer\n (keyup)=\"onFirstCarouselElementPress($event)\"\n class=\"ecl-carousel__slides\"\n [style.width.px]=\"getCarouselSlidesWidth()\"\n [style.left.px]=\"getCarouselSlidesOffset()\"\n [style.transition-duration.s]=\"transitionDuration\"\n (mouseover)=\"onSlideHover()\"\n (mouseout)=\"onSlideHoverout()\">\n <ecl-carousel-item #firstHiddenItem *ngIf=\"hasControls()\" [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n <ng-content></ng-content>\n <ecl-carousel-item #lastHiddenItem *ngIf=\"hasControls()\" [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n </div>\n\n <button *ngIf=\"hasControls() && !isMobileBreakpoint\" class=\"ecl-carousel__prev\" (click)=\"onPreviousSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PREV-SLIDES' | translate }}</span>\n </button>\n\n <button *ngIf=\"hasControls() && !isMobileBreakpoint\" class=\"ecl-carousel__next\" (click)=\"onNextSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.NEXT-SLIDES' | translate }}</div>\n </button>\n</div>\n\n<div *ngIf=\"hasControls()\" class=\"ecl-carousel__controls\">\n <div class=\"ecl-container\">\n <div class=\"ecl-carousel__autoplay\">\n <button\n #playButton\n class=\"ecl-carousel__play\"\n [style.display]=\"isPlaying ? 'none' : ''\"\n (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPlayClick()\">\n <ecl-icon icon=\"play\" size=\"l\" class=\"ecl-carousel__icon-default\" isInverted> </ecl-icon>\n <ecl-icon icon=\"play-filled\" size=\"l\" class=\"ecl-carousel__icon-active\" isInverted> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.AUTOPLAY' | translate }}</div>\n </button>\n <button\n #pauseButton\n class=\"ecl-carousel__pause\"\n [style.display]=\"isPlaying ? '' : 'none'\"\n (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPauseClick()\">\n <ecl-icon icon=\"pause\" size=\"l\" class=\"ecl-carousel__icon-default\" isInverted> </ecl-icon>\n <ecl-icon icon=\"pause-filled\" size=\"l\" class=\"ecl-carousel__icon-active\" isInverted> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PAUSE' | translate }}</div>\n </button>\n </div>\n\n <div class=\"ecl-carousel__navigation\">\n <button\n *ngFor=\"let slide of slides; let i = index\"\n #currButton\n [attr.aria-current]=\"i === getCurrentSlideIndex()\"\n class=\"ecl-carousel__navigation-item\"\n (click)=\"onSlideControlClick(slide)\"\n (keydown)=\"onNavBtnKeyboardPress($event, i)\">\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.GO-TO-SLIDE' | translate }} {{ i + 1 }}</span>\n </button>\n </div>\n\n <button *ngIf=\"isMobileBreakpoint\" #prevButton class=\"ecl-carousel__prev\" (click)=\"onPreviousSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PREV-SLIDES' | translate }}</span>\n </button>\n\n <div class=\"ecl-carousel__pagination\">\n <span class=\"ecl-carousel__current\">{{ getCurrentSlideIndex() + 1 }}</span>\n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-carousel__max\">{{ slides.length }}</span>\n </div>\n\n <button *ngIf=\"isMobileBreakpoint\" class=\"ecl-carousel__next\" (click)=\"onNextSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.NEXT-SLIDES' | translate }}</div>\n </button>\n </div>\n</div>\n", styles: [":host{display:block}.ecl-carousel__container{width:100%}.ecl-carousel__slides{transition-duration:.4s}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "component", type: i4.EclCarouselItemComponent, selector: "ecl-carousel-item", inputs: ["id", "isCurrent"], outputs: ["slideClick"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
285
420
  }
286
421
  __decorate([
287
422
  coerceBoolean
@@ -292,10 +427,13 @@ __decorate([
292
427
  __decorate([
293
428
  coerceElement
294
429
  ], EclCarouselComponent.prototype, "carouselContainerElement", void 0);
295
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclCarouselComponent, decorators: [{
430
+ __decorate([
431
+ coerceElement
432
+ ], EclCarouselComponent.prototype, "slidesContainer", void 0);
433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EclCarouselComponent, decorators: [{
296
434
  type: Component,
297
- args: [{ selector: 'ecl-carousel', template: "<div #carouselContainer class=\"ecl-carousel__container\" [class.ecl-carousel-container--padded]=\"isPadded()\">\n <div\n class=\"ecl-carousel__slides\"\n [style.width.px]=\"getCarouselSlidesWidth()\"\n [style.left.px]=\"getCarouselSlidesOffset()\"\n (mouseover)=\"onSlideHover()\"\n (mouseout)=\"onSlideHoverout()\">\n <ng-content></ng-content>\n </div>\n\n <button\n #mobilePrevButton\n class=\"ecl-carousel__prev\"\n [class.ecl-u-d-none]=\"!hasControls() || isMobileBreakpoint\"\n (click)=\"onPreviousSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PREV-SLIDES' | translate }}</span>\n </button>\n\n <button class=\"ecl-carousel__next\" [class.ecl-u-d-none]=\"!hasControls() || isMobileBreakpoint\" (click)=\"onNextSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.NEXT-SLIDES' | translate }}</div>\n </button>\n</div>\n\n<div *ngIf=\"hasControls()\" class=\"ecl-carousel__controls\">\n <div class=\"ecl-container\">\n <div class=\"ecl-carousel__autoplay\">\n <button\n #playButton\n class=\"ecl-carousel__play\"\n [style.display]=\"isPlaying ? 'none' : ''\"\n (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPlayClick()\">\n <ecl-icon icon=\"play\" size=\"l\" class=\"ecl-carousel__icon-default\" isInverted> </ecl-icon>\n <ecl-icon icon=\"play-filled\" size=\"l\" class=\"ecl-carousel__icon-active\" isInverted> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.AUTOPLAY' | translate }}</div>\n </button>\n <button\n #pauseButton\n class=\"ecl-carousel__pause\"\n [style.display]=\"isPlaying ? '' : 'none'\"\n (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPauseClick()\">\n <ecl-icon icon=\"pause\" size=\"l\" class=\"ecl-carousel__icon-default\" isInverted> </ecl-icon>\n <ecl-icon icon=\"pause-filled\" size=\"l\" class=\"ecl-carousel__icon-active\" isInverted> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PAUSE' | translate }}</div>\n </button>\n </div>\n\n <div class=\"ecl-carousel__navigation\">\n <button\n *ngFor=\"let slide of slides; let i = index\"\n #currButton\n [attr.aria-current]=\"slide.isCurrent\"\n class=\"ecl-carousel__navigation-item\"\n (click)=\"onSlideControlClick(slide)\"\n (keydown)=\"onNavBtnKeyboardPress($event, i)\">\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.GO-TO-SLIDE' | translate }} {{ i + 1 }}</span>\n </button>\n </div>\n\n <button #prevButton class=\"ecl-carousel__prev\" [class.ecl-u-d-none]=\"!isMobileBreakpoint\" (click)=\"onPreviousSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PREV-SLIDES' | translate }}</span>\n </button>\n\n <div class=\"ecl-carousel__pagination\">\n <span class=\"ecl-carousel__current\">{{ getCurrentSlideIndex() + 1 }}</span>\n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-carousel__max\">{{ slides.length }}</span>\n </div>\n\n <button class=\"ecl-carousel__next\" [class.ecl-u-d-none]=\"!isMobileBreakpoint\" (click)=\"onNextSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.NEXT-SLIDES' | translate }}</div>\n </button>\n </div>\n</div>\n", styles: [":host{display:block}.ecl-carousel__container{width:100%}.ecl-carousel__slides{transition-duration:.4s}\n"] }]
298
- }], ctorParameters: () => [{ type: i1.BreakpointObserver }, { type: i0.ChangeDetectorRef }], propDecorators: { isAutoplay: [{
435
+ args: [{ selector: 'ecl-carousel', template: "<div #carouselContainer class=\"ecl-carousel__container\" [class.ecl-carousel-container--padded]=\"isPadded()\">\n <div #slidesContainer\n (keyup)=\"onFirstCarouselElementPress($event)\"\n class=\"ecl-carousel__slides\"\n [style.width.px]=\"getCarouselSlidesWidth()\"\n [style.left.px]=\"getCarouselSlidesOffset()\"\n [style.transition-duration.s]=\"transitionDuration\"\n (mouseover)=\"onSlideHover()\"\n (mouseout)=\"onSlideHoverout()\">\n <ecl-carousel-item #firstHiddenItem *ngIf=\"hasControls()\" [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n <ng-content></ng-content>\n <ecl-carousel-item #lastHiddenItem *ngIf=\"hasControls()\" [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n </div>\n\n <button *ngIf=\"hasControls() && !isMobileBreakpoint\" class=\"ecl-carousel__prev\" (click)=\"onPreviousSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PREV-SLIDES' | translate }}</span>\n </button>\n\n <button *ngIf=\"hasControls() && !isMobileBreakpoint\" class=\"ecl-carousel__next\" (click)=\"onNextSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.NEXT-SLIDES' | translate }}</div>\n </button>\n</div>\n\n<div *ngIf=\"hasControls()\" class=\"ecl-carousel__controls\">\n <div class=\"ecl-container\">\n <div class=\"ecl-carousel__autoplay\">\n <button\n #playButton\n class=\"ecl-carousel__play\"\n [style.display]=\"isPlaying ? 'none' : ''\"\n (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPlayClick()\">\n <ecl-icon icon=\"play\" size=\"l\" class=\"ecl-carousel__icon-default\" isInverted> </ecl-icon>\n <ecl-icon icon=\"play-filled\" size=\"l\" class=\"ecl-carousel__icon-active\" isInverted> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.AUTOPLAY' | translate }}</div>\n </button>\n <button\n #pauseButton\n class=\"ecl-carousel__pause\"\n [style.display]=\"isPlaying ? '' : 'none'\"\n (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPauseClick()\">\n <ecl-icon icon=\"pause\" size=\"l\" class=\"ecl-carousel__icon-default\" isInverted> </ecl-icon>\n <ecl-icon icon=\"pause-filled\" size=\"l\" class=\"ecl-carousel__icon-active\" isInverted> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PAUSE' | translate }}</div>\n </button>\n </div>\n\n <div class=\"ecl-carousel__navigation\">\n <button\n *ngFor=\"let slide of slides; let i = index\"\n #currButton\n [attr.aria-current]=\"i === getCurrentSlideIndex()\"\n class=\"ecl-carousel__navigation-item\"\n (click)=\"onSlideControlClick(slide)\"\n (keydown)=\"onNavBtnKeyboardPress($event, i)\">\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.GO-TO-SLIDE' | translate }} {{ i + 1 }}</span>\n </button>\n </div>\n\n <button *ngIf=\"isMobileBreakpoint\" #prevButton class=\"ecl-carousel__prev\" (click)=\"onPreviousSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <span class=\"ecl-u-sr-only\">{{ 'ecl.carousel.PREV-SLIDES' | translate }}</span>\n </button>\n\n <div class=\"ecl-carousel__pagination\">\n <span class=\"ecl-carousel__current\">{{ getCurrentSlideIndex() + 1 }}</span>\n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-carousel__max\">{{ slides.length }}</span>\n </div>\n\n <button *ngIf=\"isMobileBreakpoint\" class=\"ecl-carousel__next\" (click)=\"onNextSlideClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\" isInverted class=\"ecl-carousel__icon-default\"> </ecl-icon>\n <div class=\"ecl-u-sr-only\">{{ 'ecl.carousel.NEXT-SLIDES' | translate }}</div>\n </button>\n </div>\n</div>\n", styles: [":host{display:block}.ecl-carousel__container{width:100%}.ecl-carousel__slides{transition-duration:.4s}\n"] }]
436
+ }], ctorParameters: () => [{ type: i1.BreakpointObserver }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }], propDecorators: { isAutoplay: [{
299
437
  type: Input
300
438
  }], playInterval: [{
301
439
  type: Input
@@ -319,11 +457,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7",
319
457
  }], prevButton: [{
320
458
  type: ViewChild,
321
459
  args: ['prevButton']
322
- }], mobilePrevButton: [{
460
+ }], firstHiddenItem: [{
461
+ type: ViewChild,
462
+ args: ['firstHiddenItem']
463
+ }], lastHiddenItem: [{
464
+ type: ViewChild,
465
+ args: ['lastHiddenItem']
466
+ }], slidesContainer: [{
323
467
  type: ViewChild,
324
- args: ['mobilePrevButton']
468
+ args: ['slidesContainer']
325
469
  }], cssClasses: [{
326
470
  type: HostBinding,
327
471
  args: ['class']
328
472
  }] } });
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWNhcm91c2VsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtY2Fyb3VzZWwvZWNsLWNhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtY2Fyb3VzZWwvZWNsLWNhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBSUgsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFFVCxZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQW1CLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBRXRDLE1BQU0sT0FBTyxhQUFjLFNBQVEsWUFBWTtJQUMzQyxZQUFtQixJQUFxQjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQURPLFNBQUksR0FBSixJQUFJLENBQWlCO0lBRXhDLENBQUM7Q0FDSjtBQXNCRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBc0J0RCxZQUNZLHFCQUF5QyxFQUN6QyxFQUFxQjtRQUU3QixLQUFLLEVBQUUsQ0FBQztRQUhBLDBCQUFxQixHQUFyQixx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YixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuLCBjb2VyY2VFbGVtZW50LCBjb2VyY2VOdW1iZXIgfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgaW50ZXJ2YWwsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFY2xCYXNlRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbENhcm91c2VsSXRlbSwgRWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9lY2wtY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEVjbFNsaWRlRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBpdGVtOiBFY2xDYXJvdXNlbEl0ZW0pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLWNhcm91c2VsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLWNhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBUT0RPOiByZW1vdmUgYnkgaW1wbGVtZW50aW5nIGZ1bGwgRUNMIHNwZWNzICovXG4gICAgICAgICAgICAuZWNsLWNhcm91c2VsX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZWNsLWNhcm91c2VsX19zbGlkZXMge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsQ2Fyb3VzZWxDb21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIGlzQXV0b3BsYXk6IGJvb2xlYW4gfCBhbnkgPSB0cnVlO1xuICAgIEBjb2VyY2VOdW1iZXIgQElucHV0KCkgcGxheUludGVydmFsOiBudW1iZXIgfCBhbnkgPSA1MDAwO1xuXG4gICAgQGNvZXJjZUVsZW1lbnQgQFZpZXdDaGlsZCgnY2Fyb3VzZWxDb250YWluZXInKSBjYXJvdXNlbENvbnRhaW5lckVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQpKSBzbGlkZXM6IFF1ZXJ5TGlzdDxFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQ+O1xuICAgIEBPdXRwdXQoKSBzbGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsU2xpZGVFdmVudD4oKTtcbiAgICBAVmlld0NoaWxkcmVuKCdjdXJyQnV0dG9uJykgbmF2aWdhdGlvbkJ1dHRvbnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgICBAVmlld0NoaWxkKCdwbGF5QnV0dG9uJykgcGxheUJ1dHRvbjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdwYXVzZUJ1dHRvbicpIHBhdXNlQnV0dG9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ3ByZXZCdXR0b24nKSBwcmV2QnV0dG9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ21vYmlsZVByZXZCdXR0b24nKSBtb2JpbGVQcmV2QnV0dG9uOiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIGlzUGxheWluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1BhdXNlZEZvcmNlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc01vYmlsZUJyZWFrcG9pbnQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcGxheVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgc3RvcFN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZGtCcmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtY2Fyb3VzZWwnKV0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0QXV0b3BsYXkoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUJyZWFrcG9pbnRDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVNsaWRlcigpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlRWxlbWVudFNpemVDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBvblBsYXlDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGFydFBsYXlpbmcoKTtcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uKHRoaXMucGF1c2VCdXR0b24pO1xuICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5wYXVzZUJ1dHRvbik7XG4gICAgfVxuXG4gICAgb25QYXVzZUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbih0aGlzLnBsYXlCdXR0b24pO1xuICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5wbGF5QnV0dG9uKTtcbiAgICB9XG5cbiAgICBvblBsYXlLZXlib2FyZFByZXNzKGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKFtLZXlDb2RlLlRBQl0uaW5jbHVkZXMoZS5rZXkpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1BsYXlpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlU2xpZGUodGhpcy5zbGlkZXMuZ2V0KDApKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQoMCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFBsYXlpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmlzUGxheWluZyAmJiBbS2V5Q29kZS5BUlJPV19SSUdIVF0uaW5jbHVkZXMoZS5rZXkpKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQodGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk5hdkJ0bktleWJvYXJkUHJlc3MoZSwgaW5kZXgpOiB2b2lkIHtcbiAgICAgICAgaWYgKFtLZXlDb2RlLlRBQiwgS2V5Q29kZS5BUlJPV19SSUdIVF0uaW5jbHVkZXMoZS5rZXkpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0xhc3RCdXR0b24oaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNCdXR0b25WaXNpYmxlKHRoaXMucHJldkJ1dHRvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucHJldkJ1dHRvbik7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNCdXR0b25WaXNpYmxlKHRoaXMubW9iaWxlUHJldkJ1dHRvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMubW9iaWxlUHJldkJ1dHRvbik7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub05leHRTbGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLm1vYmlsZVByZXZCdXR0b24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1dHRvbjogRWxlbWVudFJlZiA9IHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKGJ1dHRvbik7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGUua2V5ID09PSBLZXlDb2RlLkFSUk9XX0xFRlQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRmlyc3RCdXR0b24oaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGxheUJ1dHRvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5wbGF5QnV0dG9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGF1c2VCdXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucGF1c2VCdXR0b24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nb1RvUHJldmlvdXNTbGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1dHRvbjogRWxlbWVudFJlZiA9IHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKGJ1dHRvbik7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpc0J1dHRvblZpc2libGUoYnV0dG9uOiBFbGVtZW50UmVmKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghYnV0dG9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1dHRvbi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPT09ICcnO1xuICAgIH1cblxuICAgIHNob3dCdXR0b24oYnV0dG9uOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgICAgIGJ1dHRvbi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICB9XG5cbiAgICBmb2N1c09uQnV0dG9uKGJ1dHRvbjogRWxlbWVudFJlZikge1xuICAgICAgICBpZiAoIWJ1dHRvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJ1dHRvbi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25TbGlkZUNvbnRyb2xDbGljayhzbGlkZTogRWNsQ2Fyb3VzZWxJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcFBsYXlpbmcoKTtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZVNsaWRlKHNsaWRlKTtcbiAgICB9XG5cbiAgICBvbk5leHRTbGlkZUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgIHRoaXMuZ29Ub05leHRTbGlkZSgpO1xuICAgIH1cblxuICAgIG9uUHJldmlvdXNTbGlkZUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgIHRoaXMuZ29Ub1ByZXZpb3VzU2xpZGUoKTtcbiAgICB9XG5cbiAgICBvblNsaWRlSG92ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGF1c2VQbGF5aW5nKCk7XG4gICAgfVxuXG4gICAgb25TbGlkZUhvdmVyb3V0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNTdG9wQnV0dG9uUHJlc3NlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3VtZVBsYXlpbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc1N0b3BCdXR0b25QcmVzc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1BhdXNlZEZvcmNlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNQYWRkZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0NvbnRyb2xzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTbGlkZXNDb3VudCgpID4gMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFNsaWRlSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGN1cnJlbnRJbmRleDogbnVtYmVyO1xuXG4gICAgICAgIHRoaXMuc2xpZGVzLmZvckVhY2goKGl0ZW0sIGlkeCkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uaXNDdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4ID0gaWR4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY3VycmVudEluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDYXJvdXNlbFNsaWRlc1dpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsQ29udGFpbmVyRWxlbWVudD8ub2Zmc2V0V2lkdGggKiB0aGlzLmdldFNsaWRlc0NvdW50KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENhcm91c2VsU2xpZGVzT2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAtMSAqIHRoaXMuY2Fyb3VzZWxDb250YWluZXJFbGVtZW50Py5vZmZzZXRXaWR0aCAqIHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRBdXRvcGxheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhcnQkID0gdGhpcy5wbGF5U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgY29uc3Qgc3RvcCQgPSB0aGlzLnN0b3BTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgICAgIHN0YXJ0JFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IGludGVydmFsKHRoaXMucGxheUludGVydmFsKS5waXBlKHRha2VVbnRpbChzdG9wJCkpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdvVG9OZXh0U2xpZGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZVNsaWRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zbGlkZXMuZm9yRWFjaCgoaXRlbSwgaWR4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRTbGlkZShpdGVtLCBpZHgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5oYXNDb250cm9scykge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNOb1NsaWRlU2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVTbGlkZSh0aGlzLnNsaWRlcy5maXJzdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzQXV0b3BsYXkgJiYgIXRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFBsYXlpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNsaWRlKGl0ZW06IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudCwgaWR4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaXRlbS5pbmRleCA9IGlkeDtcbiAgICAgICAgaXRlbS5hcmlhTGFiZWwgPSBgc2xpZGUgJHtpZHggKyAxfSBvZiAke3RoaXMuZ2V0U2xpZGVzQ291bnQoKX1gO1xuICAgICAgICBpdGVtLndpZHRoID0gMTAwIC8gdGhpcy5nZXRTbGlkZXNDb3VudCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ29Ub05leHRTbGlkZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZVNsaWRlKHRoaXMuZ2V0TmV4dFNsaWRlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ29Ub1ByZXZpb3VzU2xpZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVTbGlkZSh0aGlzLmdldFByZXZpb3VzU2xpZGUoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZVNsaWRlKHNsaWRlOiBFY2xDYXJvdXNlbEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHNsaWRlKSB7XG4gICAgICAgICAgICB0aGlzLnNsaWRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5pc0N1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2xpZGUuaXNDdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNMYXN0QnV0dG9uKGluZGV4KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbnNMaXN0ID0gdGhpcy5uYXZpZ2F0aW9uQnV0dG9ucztcbiAgICAgICAgcmV0dXJuIGluZGV4ICsgMSA+PSBidXR0b25zTGlzdC5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ZpcnN0QnV0dG9uKGluZGV4KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpbmRleCA8PSAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhcnRQbGF5aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUGxheWluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNQYXVzZWRGb3JjZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wbGF5U3ViamVjdC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wUGxheWluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1BhdXNlZEZvcmNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc3RvcFN1YmplY3QubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGF1c2VQbGF5aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUGxheWluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0b3BTdWJqZWN0Lm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc3VtZVBsYXlpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNQbGF5aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wbGF5U3ViamVjdC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXh0U2xpZGUoKTogRWNsQ2Fyb3VzZWxJdGVtIHtcbiAgICAgICAgY29uc3Qgc2xpZGVzQ291bnQgPSB0aGlzLmdldFNsaWRlc0NvdW50KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKTtcblxuICAgICAgICBpZiAoY3VycmVudEluZGV4ID49IHNsaWRlc0NvdW50IC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2xpZGVzLmZpcnN0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2xpZGVzLmdldChjdXJyZW50SW5kZXggKyAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJldmlvdXNTbGlkZSgpOiBFY2xDYXJvdXNlbEl0ZW0ge1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmdldEN1cnJlbnRTbGlkZUluZGV4KCk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMubGFzdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNsaWRlcy5nZXQoY3VycmVudEluZGV4IC0gMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNsaWRlc0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNsaWRlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc05vU2xpZGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnNsaWRlcy5zb21lKChpdGVtKSA9PiBpdGVtLmlzQ3VycmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2RrQnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZShbJyhtYXgtd2lkdGg6IDk5NnB4KSddKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQgPSByZXN1bHQubWF0Y2hlcztcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlRWxlbWVudFNpemVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pLm9ic2VydmUodGhpcy5jYXJvdXNlbENvbnRhaW5lckVsZW1lbnQpO1xuICAgIH1cbn1cbiIsIjxkaXYgI2Nhcm91c2VsQ29udGFpbmVyIGNsYXNzPVwiZWNsLWNhcm91c2VsX19jb250YWluZXJcIiBbY2xhc3MuZWNsLWNhcm91c2VsLWNvbnRhaW5lci0tcGFkZGVkXT1cImlzUGFkZGVkKClcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZWNsLWNhcm91c2VsX19zbGlkZXNcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiZ2V0Q2Fyb3VzZWxTbGlkZXNXaWR0aCgpXCJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0Q2Fyb3VzZWxTbGlkZXNPZmZzZXQoKVwiXG4gICAgICAgIChtb3VzZW92ZXIpPVwib25TbGlkZUhvdmVyKClcIlxuICAgICAgICAobW91c2VvdXQpPVwib25TbGlkZUhvdmVyb3V0KClcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvblxuICAgICAgICAjbW9iaWxlUHJldkJ1dHRvblxuICAgICAgICBjbGFzcz1cImVjbC1jYXJvdXNlbF9fcHJldlwiXG4gICAgICAgIFtjbGFzcy5lY2wtdS1kLW5vbmVdPVwiIWhhc0NvbnRyb2xzKCkgfHwgaXNNb2JpbGVCcmVha3BvaW50XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUHJldmlvdXNTbGlkZUNsaWNrKClcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwibVwiIHRyYW5zZm9ybT1cInJvdGF0ZS0yNzBcIiBpc0ludmVydGVkIGNsYXNzPVwiZWNsLWNhcm91c2VsX19pY29uLWRlZmF1bHRcIj4gPC9lY2wtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+e3sgJ2VjbC5jYXJvdXNlbC5QUkVWLVNMSURFUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIGNsYXNzPVwiZWNsLWNhcm91c2VsX19uZXh0XCIgW2NsYXNzLmVjbC11LWQtbm9uZV09XCIhaGFzQ29udHJvbHMoKSB8fCBpc01vYmlsZUJyZWFrcG9pbnRcIiAoY2xpY2spPVwib25OZXh0U2xpZGVDbGljaygpXCI+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cIm1cIiB0cmFuc2Zvcm09XCJyb3RhdGUtOTBcIiBpc0ludmVydGVkIGNsYXNzPVwiZWNsLWNhcm91c2VsX19pY29uLWRlZmF1bHRcIj4gPC9lY2wtaWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVjbC11LXNyLW9ubHlcIj57eyAnZWNsLmNhcm91c2VsLk5FWFQtU0xJREVTJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJoYXNDb250cm9scygpXCIgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2NvbnRyb2xzXCI+XG4gICAgPGRpdiBjbGFzcz1cImVjbC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1jYXJvdXNlbF9fYXV0b3BsYXlcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAjcGxheUJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLWNhcm91c2VsX19wbGF5XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc1BsYXlpbmcgPyAnbm9uZScgOiAnJ1wiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25QbGF5S2V5Ym9hcmRQcmVzcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QbGF5Q2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwicGxheVwiIHNpemU9XCJsXCIgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2ljb24tZGVmYXVsdFwiIGlzSW52ZXJ0ZWQ+IDwvZWNsLWljb24+XG4gICAgICAgICAgICAgICAgPGVjbC1pY29uIGljb249XCJwbGF5LWZpbGxlZFwiIHNpemU9XCJsXCIgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2ljb24tYWN0aXZlXCIgaXNJbnZlcnRlZD4gPC9lY2wtaWNvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWNsLXUtc3Itb25seVwiPnt7ICdlY2wuY2Fyb3VzZWwuQVVUT1BMQVknIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAjcGF1c2VCdXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1jYXJvdXNlbF9fcGF1c2VcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUGxheWluZyA/ICcnIDogJ25vbmUnXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvblBsYXlLZXlib2FyZFByZXNzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblBhdXNlQ2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwicGF1c2VcIiBzaXplPVwibFwiIGNsYXNzPVwiZWNsLWNhcm91c2VsX19pY29uLWRlZmF1bHRcIiBpc0ludmVydGVkPiA8L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwicGF1c2UtZmlsbGVkXCIgc2l6ZT1cImxcIiBjbGFzcz1cImVjbC1jYXJvdXNlbF9faWNvbi1hY3RpdmVcIiBpc0ludmVydGVkPiA8L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+e3sgJ2VjbC5jYXJvdXNlbC5QQVVTRScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWNsLWNhcm91c2VsX19uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHNsaWRlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgI2N1cnJCdXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwic2xpZGUuaXNDdXJyZW50XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1jYXJvdXNlbF9fbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TbGlkZUNvbnRyb2xDbGljayhzbGlkZSlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uTmF2QnRuS2V5Ym9hcmRQcmVzcygkZXZlbnQsIGkpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+e3sgJ2VjbC5jYXJvdXNlbC5HTy1UTy1TTElERScgfCB0cmFuc2xhdGUgfX0ge3sgaSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiAjcHJldkJ1dHRvbiBjbGFzcz1cImVjbC1jYXJvdXNlbF9fcHJldlwiIFtjbGFzcy5lY2wtdS1kLW5vbmVdPVwiIWlzTW9iaWxlQnJlYWtwb2ludFwiIChjbGljayk9XCJvblByZXZpb3VzU2xpZGVDbGljaygpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJtXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiIGlzSW52ZXJ0ZWQgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2ljb24tZGVmYXVsdFwiPiA8L2VjbC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+e3sgJ2VjbC5jYXJvdXNlbC5QUkVWLVNMSURFUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX3BhZ2luYXRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLWNhcm91c2VsX19jdXJyZW50XCI+e3sgZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICB7eyAnZWNsLmNvbW1vbi5PRicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLWNhcm91c2VsX19tYXhcIj57eyBzbGlkZXMubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWNsLWNhcm91c2VsX19uZXh0XCIgW2NsYXNzLmVjbC11LWQtbm9uZV09XCIhaXNNb2JpbGVCcmVha3BvaW50XCIgKGNsaWNrKT1cIm9uTmV4dFNsaWRlQ2xpY2soKVwiPlxuICAgICAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwibVwiIHRyYW5zZm9ybT1cInJvdGF0ZS05MFwiIGlzSW52ZXJ0ZWQgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2ljb24tZGVmYXVsdFwiPiA8L2VjbC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVjbC11LXNyLW9ubHlcIj57eyAnZWNsLmNhcm91c2VsLk5FWFQtU0xJREVTJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
473
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWNhcm91c2VsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtY2Fyb3VzZWwvZWNsLWNhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtY2Fyb3VzZWwvZWNsLWNhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBSUgsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFzQnJELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFrQ3RELFlBQ1kscUJBQXlDLEVBQ3pDLEVBQXFCLEVBQ3JCLFNBQW9CO1FBRTVCLEtBQUssRUFBRSxDQUFDO1FBSkEsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFvQjtRQUN6QyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBcENoQyw4REFBOEQ7UUFDdEMsZUFBVSxHQUFrQixJ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QWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNDLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUVrQixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkEyQnZDLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4sIGNvZXJjZUVsZW1lbnQsIGNvZXJjZU51bWJlciB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBpbnRlcnZhbCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEtleUNvZGUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLWNhcm91c2VsLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEVjbFNsaWRlRXZlbnQgfSBmcm9tICcuL2VjbC1jYXJvdXNlbC5ldmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLWNhcm91c2VsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLWNhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBUT0RPOiByZW1vdmUgYnkgaW1wbGVtZW50aW5nIGZ1bGwgRUNMIHNwZWNzICovXG4gICAgICAgICAgICAuZWNsLWNhcm91c2VsX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZWNsLWNhcm91c2VsX19zbGlkZXMge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsQ2Fyb3VzZWxDb21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KCkgaXNBdXRvcGxheTogYm9vbGVhbiB8IGFueSA9IHRydWU7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAY29lcmNlTnVtYmVyIEBJbnB1dCgpIHBsYXlJbnRlcnZhbDogbnVtYmVyIHwgYW55ID0gNTAwMDtcblxuICAgIEBjb2VyY2VFbGVtZW50IEBWaWV3Q2hpbGQoJ2Nhcm91c2VsQ29udGFpbmVyJykgY2Fyb3VzZWxDb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50KSkgc2xpZGVzOiBRdWVyeUxpc3Q8RWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50PjtcbiAgICBAT3V0cHV0KCkgc2xpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbFNsaWRlRXZlbnQ+KCk7XG4gICAgQFZpZXdDaGlsZHJlbignY3VyckJ1dHRvbicpIG5hdmlnYXRpb25CdXR0b25zOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gICAgQFZpZXdDaGlsZCgncGxheUJ1dHRvbicpIHBsYXlCdXR0b246IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgncGF1c2VCdXR0b24nKSBwYXVzZUJ1dHRvbjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdwcmV2QnV0dG9uJykgcHJldkJ1dHRvbjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdmaXJzdEhpZGRlbkl0ZW0nKSBmaXJzdEhpZGRlbkl0ZW06IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdsYXN0SGlkZGVuSXRlbScpIGxhc3RIaWRkZW5JdGVtOiBFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQ7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAY29lcmNlRWxlbWVudCBAVmlld0NoaWxkKCdzbGlkZXNDb250YWluZXInKSBzbGlkZXNDb250YWluZXI6IEVsZW1lbnQgfCBhbnk7XG5cbiAgICBwdWJsaWMgaXNQbGF5aW5nID0gZmFsc2U7XG4gICAgcHVibGljIGlzUGF1c2VkRm9yY2VkID0gZmFsc2U7XG4gICAgcHVibGljIGlzVGFibGV0QnJlYWtwb2ludCA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0Rlc2t0b3BCcmVha3BvaW50ID0gZmFsc2U7XG4gICAgcHVibGljIGlzTGFyZ2VEZXNrdG9wQnJlYWtwb2ludCA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc01vYmlsZUJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgICBzbGlkZVdpZHRoOiBudW1iZXI7XG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uID0gMC40O1xuXG4gICAgcHJpdmF0ZSBwbGF5U3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBzdG9wU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBUSU1FT1VUX0lOVEVSVkFMID0gNDAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2RrQnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLWNhcm91c2VsJyldLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdEF1dG9wbGF5KCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5pdGlhbGl6ZVNsaWRlcigpKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUVsZW1lbnRTaXplQ2hhbmdlcygpO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGlmICh0aGlzLnVuc3Vic2NyaWJlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmVMaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25QbGF5Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RhcnRQbGF5aW5nKCk7XG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbih0aGlzLnBhdXNlQnV0dG9uKTtcbiAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucGF1c2VCdXR0b24pO1xuICAgIH1cblxuICAgIG9uUGF1c2VDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9wUGxheWluZygpO1xuICAgICAgICB0aGlzLnNob3dCdXR0b24odGhpcy5wbGF5QnV0dG9uKTtcbiAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucGxheUJ1dHRvbik7XG4gICAgfVxuXG4gICAgb25GaXJzdENhcm91c2VsRWxlbWVudFByZXNzKGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUua2V5ID09PSBLZXlDb2RlLlRBQikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNQbGF5aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wUGxheWluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25QbGF5S2V5Ym9hcmRQcmVzcyhlKTogdm9pZCB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gS2V5Q29kZS5UQUIgJiYgZS5zaGlmdEtleSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChbS2V5Q29kZS5UQUJdLmluY2x1ZGVzKGUua2V5KSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNQbGF5aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZVNsaWRlKHRoaXMuc2xpZGVzLmdldCgwKSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KDApKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLm5hdmlnYXRpb25CdXR0b25zLmdldCh0aGlzLmdldEN1cnJlbnRTbGlkZUluZGV4KCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5pc1BsYXlpbmcgJiYgW0tleUNvZGUuQVJST1dfUklHSFRdLmluY2x1ZGVzKGUua2V5KSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25OYXZCdG5LZXlib2FyZFByZXNzKGU6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUua2V5ID09PSBLZXlDb2RlLlRBQiAmJiBlLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICB0aGlzLm9uTmF2aWdhdGlvbkJ1dHRvblRhYkFuZFNoaWZ0KGUsIGluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gS2V5Q29kZS5BUlJPV19SSUdIVCkge1xuICAgICAgICAgICAgdGhpcy5vbk5hdmlnYXRpb25CdXR0b25BcnJvd1JpZ2h0KGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSBLZXlDb2RlLlRBQikge1xuICAgICAgICAgICAgdGhpcy5vbk5hdmlnYXRpb25CdXR0b25UYWIoZSwgaW5kZXgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSBLZXlDb2RlLkFSUk9XX0xFRlQpIHtcbiAgICAgICAgICAgIHRoaXMub25OYXZpZ2F0aW9uQnV0dG9uQXJyb3dMZWZ0KGUsIGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaXNCdXR0b25WaXNpYmxlKGJ1dHRvbjogRWxlbWVudFJlZik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWJ1dHRvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidXR0b24ubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID09PSAnJztcbiAgICB9XG5cbiAgICBzaG93QnV0dG9uKGJ1dHRvbjogRWxlbWVudFJlZik6IHZvaWQge1xuICAgICAgICBidXR0b24ubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJyc7XG4gICAgfVxuXG4gICAgZm9jdXNPbkJ1dHRvbihidXR0b246IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFidXR0b24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBidXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uU2xpZGVDb250cm9sQ2xpY2soc2xpZGU6IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVTbGlkZShzbGlkZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgb25OZXh0U2xpZGVDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9wUGxheWluZygpO1xuICAgICAgICB0aGlzLmdvVG9OZXh0U2xpZGUodHJ1ZSk7XG4gICAgfVxuXG4gICAgb25QcmV2aW91c1NsaWRlQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcFBsYXlpbmcoKTtcbiAgICAgICAgdGhpcy5nb1RvUHJldmlvdXNTbGlkZSh0cnVlKTtcbiAgICB9XG5cbiAgICBvblNsaWRlSG92ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGF1c2VQbGF5aW5nKCk7XG4gICAgfVxuXG4gICAgb25TbGlkZUhvdmVyb3V0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNTdG9wQnV0dG9uUHJlc3NlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3VtZVBsYXlpbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc1N0b3BCdXR0b25QcmVzc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1BhdXNlZEZvcmNlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNQYWRkZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRGVza3RvcEJyZWFrcG9pbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0NvbnRyb2xzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTbGlkZXNDb3VudCgpID4gMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFNsaWRlSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGN1cnJlbnRJbmRleDogbnVtYmVyO1xuXG4gICAgICAgIHRoaXMuZ2V0QWxsU2xpZGVzQXJyYXkoKS5mb3JFYWNoKChpdGVtLCBpZHgpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtICYmIGl0ZW0uaXNDdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4ID0gaWR4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gdGhpcy5nZXRBbGxTbGlkZXNDb3VudCgpIC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50SW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNsaWRlc0NvdW50KCkgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXJyZW50SW5kZXggLSAxO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDYXJvdXNlbFNsaWRlc1dpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsQ29udGFpbmVyRWxlbWVudD8ub2Zmc2V0V2lkdGggKiB0aGlzLmdldEFsbFNsaWRlc0NvdW50KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENhcm91c2VsU2xpZGVzT2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAtMSAqIHRoaXMuY2Fyb3VzZWxDb250YWluZXJFbGVtZW50Py5vZmZzZXRXaWR0aCAqIHRoaXMuZ2V0Q3VycmVudEl0ZW1JbmRleCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEF1dG9wbGF5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdGFydCQgPSB0aGlzLnBsYXlTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICBjb25zdCBzdG9wJCA9IHRoaXMuc3RvcFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAgICAgc3RhcnQkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gaW50ZXJ2YWwodGhpcy5wbGF5SW50ZXJ2YWwpLnBpcGUodGFrZVVudGlsKHN0b3AkKSkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub05leHRTbGlkZSh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3VycmVudEl0ZW1JbmRleCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICAgICAgdGhpcy5nZXRBbGxTbGlkZXNBcnJheSgpLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbSAmJiBpdGVtLmlzQ3VycmVudCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGluZGV4O1xuICAgICAgICAgICAgfSBcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplU2xpZGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNsaWRlcy5mb3JFYWNoKChpdGVtLCBpZHgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNsaWRlKGl0ZW0sIGlkeCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmhhc0NvbnRyb2xzKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdEhpZGRlbkl0ZW1zKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pc05vU2xpZGVTZWxlY3RlZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZVNsaWRlKHRoaXMuc2xpZGVzLmZpcnN0LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzQXV0b3BsYXkgJiYgdGhpcy5pc1RhYmxldEJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0UGxheWluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0SGlkZGVuSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlyc3RIaWRkZW5JdGVtLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5nZXRMYXN0Q29udGVudENoaWxkKCk7XG4gICAgICAgIHRoaXMuZmlyc3RIaWRkZW5JdGVtLmlzQ3VycmVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxhc3RIaWRkZW5JdGVtLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5nZXRGaXJzdENvbnRlbnRDaGlsZCgpO1xuICAgICAgICB0aGlzLmxhc3RIaWRkZW5JdGVtLmlzQ3VycmVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNsaWRlV2lkdGggPSB0aGlzLnNsaWRlcy5maXJzdC53aWR0aDtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlcjIubGlzdGVuKHRoaXMuc2xpZGVzQ29udGFpbmVyLCAndHJhbnNpdGlvbmVuZCcsICgpID0+IHRoaXMuY2hlY2tJbmRleCgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrSW5kZXgoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdldEN1cnJlbnRJdGVtSW5kZXgoKSA9PT0gdGhpcy5nZXRBbGxTbGlkZXNDb3VudCgpIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuc2xpZGVzLmZpcnN0O1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZVNsaWRlKGl0ZW0sIGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmdldEN1cnJlbnRJdGVtSW5kZXgoKSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuc2xpZGVzLmxhc3Q7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlU2xpZGUoaXRlbSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMYXN0Q29udGVudENoaWxkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNsaWRlc0NvdW50KCkgPiAwID8gdGhpcy5zbGlkZXMuZ2V0KHRoaXMuZ2V0U2xpZGVzQ291bnQoKSAtIDEpLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MIDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaXJzdENvbnRlbnRDaGlsZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTbGlkZXNDb3VudCgpID4gMCA/IHRoaXMuc2xpZGVzLmdldCgwKS5lbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNsaWRlKGl0ZW06IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudCwgaWR4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaXRlbS5pbmRleCA9IGlkeDtcbiAgICAgICAgaXRlbS5hcmlhTGFiZWwgPSBgc2xpZGUgJHtpZHggKyAxfSBvZiAke3RoaXMuZ2V0U2xpZGVzQ291bnQoKX1gO1xuICAgICAgICBpdGVtLndpZHRoID0gMTAwIC8gdGhpcy5nZXRBbGxTbGlkZXNDb3VudCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ29Ub05leHRTbGlkZShpc0xvb3A6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZVNsaWRlKHRoaXMuZ2V0TmV4dFNsaWRlKGlzTG9vcCksIHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ29Ub1ByZXZpb3VzU2xpZGUoaXNMb29wOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVTbGlkZSh0aGlzLmdldFByZXZpb3VzU2xpZGUoaXNMb29wKSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZVNsaWRlKHNsaWRlOiBFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQsIHdpdGhUcmFuc2l0aW9uOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh3aXRoVHJhbnNpdGlvbikge1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uRHVyYXRpb24gPSAwLjQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb25EdXJhdGlvbiA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNsaWRlKSB7XG4gICAgICAgICAgICB0aGlzLmdldEFsbFNsaWRlc0FycmF5KCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uaXNDdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNsaWRlLmlzQ3VycmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpdGhUcmFuc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNsaWRlLm5leHQobmV3IEVjbFNsaWRlRXZlbnQodGhpcy5zbGlkZXMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSkpKTtcbiAgICAgICAgfSBcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTGFzdEJ1dHRvbihpbmRleCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBidXR0b25zTGlzdCA9IHRoaXMubmF2aWdhdGlvbkJ1dHRvbnM7XG4gICAgICAgIHJldHVybiBpbmRleCArIDEgPj0gYnV0dG9uc0xpc3QubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaXJzdEJ1dHRvbihpbmRleCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaW5kZXggPD0gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0UGxheWluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzUGF1c2VkRm9yY2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMucGxheVN1YmplY3QubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcFBsYXlpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNQbGF5aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNQYXVzZWRGb3JjZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0b3BTdWJqZWN0Lm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhdXNlUGxheWluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdG9wU3ViamVjdC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXN1bWVQbGF5aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUGxheWluZyA9IHRydWU7XG4gICAgICAgIHRoaXMucGxheVN1YmplY3QubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmV4dFNsaWRlKGlzTG9vcDogYm9vbGVhbik6IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudCB7XG4gICAgICAgIGNvbnN0IHNsaWRlc0NvdW50ID0gdGhpcy5nZXRTbGlkZXNDb3VudCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmdldEN1cnJlbnRTbGlkZUluZGV4KCk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+PSBzbGlkZXNDb3VudCAtIDEpIHtcbiAgICAgICAgICAgIGlmIChpc0xvb3ApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMuZmlyc3Q7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNsaWRlcy5sYXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2xpZGVzLmdldChjdXJyZW50SW5kZXggKyAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsU2xpZGVzQXJyYXkoKTogRWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gWy4uLlt0aGlzLmZpcnN0SGlkZGVuSXRlbV0sIC4uLnRoaXMuc2xpZGVzLnRvQXJyYXkoKSwgLi4uW3RoaXMubGFzdEhpZGRlbkl0ZW1dXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByZXZpb3VzU2xpZGUoaXNMb29wOiBib29sZWFuKTogRWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50IHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpO1xuXG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPD0gMCkge1xuICAgICAgICAgICAgaWYgKGlzTG9vcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNsaWRlcy5sYXN0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMuZmlyc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMuZ2V0KGN1cnJlbnRJbmRleCAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTbGlkZXNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsU2xpZGVzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzQ29udHJvbHMoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2xpZGVzLmxlbmd0aCArIDI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMubGVuZ3RoXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTm9TbGlkZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuc2xpZGVzLnNvbWUoKGl0ZW0pID0+IGl0ZW0uaXNDdXJyZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTmF2aWdhdGlvbkJ1dHRvblRhYkFuZFNoaWZ0KGU6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYnV0dG9uOiBFbGVtZW50UmVmID0gdGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQodGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpKTtcbiAgICAgICAgaWYgKGJ1dHRvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNQbGF5aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wUGxheWluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzRmlyc3RCdXR0b24oaW5kZXgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wbGF5QnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucGxheUJ1dHRvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wYXVzZUJ1dHRvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLnBhdXNlQnV0dG9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub1ByZXZpb3VzU2xpZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1dHRvbjogRWxlbWVudFJlZiA9IHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKGJ1dHRvbik7XG4gICAgICAgICAgICB9LCB0aGlzLlRJTUVPVVRfSU5URVJWQUwpO1xuICAgICAgICB9XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTmF2aWdhdGlvbkJ1dHRvblRhYihlLCBpbmRleCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0xhc3RCdXR0b24oaW5kZXgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0J1dHRvblZpc2libGUodGhpcy5wcmV2QnV0dG9uKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLnByZXZCdXR0b24pO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub05leHRTbGlkZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYnV0dG9uOiBFbGVtZW50UmVmID0gdGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQodGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24oYnV0dG9uKTtcbiAgICAgICAgICAgIH0sIHRoaXMuVElNRU9VVF9JTlRFUlZBTCk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTmF2aWdhdGlvbkJ1dHRvbkFycm93UmlnaHQoZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ29Ub05leHRTbGlkZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCBidXR0b246IEVsZW1lbnRSZWYgPSB0aGlzLm5hdmlnYXRpb25CdXR0b25zLmdldCh0aGlzLmdldEN1cnJlbnRTbGlkZUluZGV4KCkpO1xuICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKGJ1dHRvbik7XG4gICAgICAgIH0sIHRoaXMuVElNRU9VVF9JTlRFUlZBTCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTmF2aWdhdGlvbkJ1dHRvbkFycm93TGVmdChlOiBLZXlib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRmlyc3RCdXR0b24oaW5kZXgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wbGF5QnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucGxheUJ1dHRvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wYXVzZUJ1dHRvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLnBhdXNlQnV0dG9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub1ByZXZpb3VzU2xpZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1dHRvbjogRWxlbWVudFJlZiA9IHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKGJ1dHRvbik7XG4gICAgICAgICAgICB9LCB0aGlzLlRJTUVPVVRfSU5URVJWQUwpO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2RrQnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZShbXG4gICAgICAgICAgICAgICAgJyhtaW4td2lkdGg6IDc2OHB4KScsXG4gICAgICAgICAgICAgICAgJyhtaW4td2lkdGg6IDExNDBweCkgYW5kIChtYXgtd2lkdGg6IDEyNjBweCknLFxuICAgICAgICAgICAgICAgICcobWluLXdpZHRoOiAxMTQwcHgpJyxcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzVGFibGV0QnJlYWtwb2ludCA9IHJlc3VsdC5icmVha3BvaW50c1snKG1pbi13aWR0aDogNzY4cHgpJ107XG4gICAgICAgICAgICAgICAgdGhpcy5pc0Rlc2t0b3BCcmVha3BvaW50ID0gcmVzdWx0LmJyZWFrcG9pbnRzWycobWluLXdpZHRoOiAxMTQwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjYwcHgpJ107XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xhcmdlRGVza3RvcEJyZWFrcG9pbnQgPSByZXN1bHQuYnJlYWtwb2ludHNbJyhtaW4td2lkdGg6IDExNDBweCknXTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1RhYmxldEJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9wUGxheWluZygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZUVsZW1lbnRTaXplQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KS5vYnNlcnZlKHRoaXMuY2Fyb3VzZWxDb250YWluZXJFbGVtZW50KTtcbiAgICB9XG59XG4iLCI8ZGl2ICNjYXJvdXNlbENvbnRhaW5lciBjbGFzcz1cImVjbC1jYXJvdXNlbF9fY29udGFpbmVyXCIgW2NsYXNzLmVjbC1jYXJvdXNlbC1jb250YWluZXItLXBhZGRlZF09XCJpc1BhZGRlZCgpXCI+XG4gICAgPGRpdiAjc2xpZGVzQ29udGFpbmVyXG4gICAgICAgIChrZXl1cCk9XCJvbkZpcnN0Q2Fyb3VzZWxFbGVtZW50UHJlc3MoJGV2ZW50KVwiXG4gICAgICAgIGNsYXNzPVwiZWNsLWNhcm91c2VsX19zbGlkZXNcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiZ2V0Q2Fyb3VzZWxTbGlkZXNXaWR0aCgpXCJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0Q2Fyb3VzZWxTbGlkZXNPZmZzZXQoKVwiXG4gICAgICAgIFtzdHlsZS50cmFuc2l0aW9uLWR1cmF0aW9uLnNdPVwidHJhbnNpdGlvbkR1cmF0aW9uXCJcbiAgICAgICAgKG1vdXNlb3Zlcik9XCJvblNsaWRlSG92ZXIoKVwiXG4gICAgICAgIChtb3VzZW91dCk9XCJvblNsaWRlSG92ZXJvdXQoKVwiPlxuICAgICAgICA8ZWNsLWNhcm91c2VsLWl0ZW0gI2ZpcnN0SGlkZGVuSXRlbSAqbmdJZj1cImhhc0NvbnRyb2xzKClcIiBbc3R5bGUud2lkdGguJV09XCJzbGlkZVdpZHRoXCI+PC9lY2wtY2Fyb3VzZWwtaXRlbT5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZWNsLWNhcm91c2VsLWl0ZW0gI2xhc3RIaWRkZW5JdGVtICpuZ0lmPVwiaGFzQ29udHJvbHMoKVwiIFtzdHlsZS53aWR0aC4lXT1cInNsaWRlV2lkdGhcIj48L2VjbC1jYXJvdXNlbC1pdGVtPlxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiAqbmdJZj1cImhhc0NvbnRyb2xzKCkgJiYgIWlzTW9iaWxlQnJlYWtwb2ludFwiIGNsYXNzPVwiZWNsLWNhcm91c2VsX19wcmV2XCIgKGNsaWNrKT1cIm9uUHJldmlvdXNTbGlkZUNsaWNrKClcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwibVwiIHRyYW5zZm9ybT1cInJvdGF0ZS0yNzBcIiBpc0ludmVydGVkIGNsYXNzPVwiZWNsLWNhcm91c2VsX19pY29uLWRlZmF1bHRcIj4gPC9lY2wtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+e3sgJ2VjbC5jYXJvdXNlbC5QUkVWLVNMSURFUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uICpuZ0lmPVwiaGFzQ29udHJvbHMoKSAmJiAhaXNNb2JpbGVCcmVha3BvaW50XCIgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX25leHRcIiAoY2xpY2spPVwib25OZXh0U2xpZGVDbGljaygpXCI+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cIm1cIiB0cmFuc2Zvcm09XCJyb3RhdGUtOTBcIiBpc0ludmVydGVkIGNsYXNzPVwiZWNsLWNhcm91c2VsX19pY29uLWRlZmF1bHRcIj4gPC9lY2wtaWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVjbC11LXNyLW9ubHlcIj57eyAnZWNsLmNhcm91c2VsLk5FWFQtU0xJREVTJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJoYXNDb250cm9scygpXCIgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2NvbnRyb2xzXCI+XG4gICAgPGRpdiBjbGFzcz1cImVjbC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1jYXJvdXNlbF9fYXV0b3BsYXlcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAjcGxheUJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLWNhcm91c2VsX19wbGF5XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc1BsYXlpbmcgPyAnbm9uZScgOiAnJ1wiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25QbGF5S2V5Ym9hcmRQcmVzcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QbGF5Q2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwicGxheVwiIHNpemU9XCJsXCIgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2ljb24tZGVmYXVsdFwiIGlzSW52ZXJ0ZWQ+IDwvZWNsLWljb24+XG4gICAgICAgICAgICAgICAgPGVjbC1pY29uIGljb249XCJwbGF5LWZpbGxlZFwiIHNpemU9XCJsXCIgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2ljb24tYWN0aXZlXCIgaXNJbnZlcnRlZD4gPC9lY2wtaWNvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWNsLXUtc3Itb25seVwiPnt7ICdlY2wuY2Fyb3VzZWwuQVVUT1BMQVknIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAjcGF1c2VCdXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1jYXJvdXNlbF9fcGF1c2VcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUGxheWluZyA/ICcnIDogJ25vbmUnXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvblBsYXlLZXlib2FyZFByZXNzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblBhdXNlQ2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwicGF1c2VcIiBzaXplPVwibFwiIGNsYXNzPVwiZWNsLWNhcm91c2VsX19pY29uLWRlZmF1bHRcIiBpc0ludmVydGVkPiA8L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwicGF1c2UtZmlsbGVkXCIgc2l6ZT1cImxcIiBjbGFzcz1cImVjbC1jYXJvdXNlbF9faWNvbi1hY3RpdmVcIiBpc0ludmVydGVkPiA8L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+e3sgJ2VjbC5jYXJvdXNlbC5QQVVTRScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWNsLWNhcm91c2VsX19uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHNsaWRlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgI2N1cnJCdXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaSA9PT0gZ2V0Q3VycmVudFNsaWRlSW5kZXgoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX25hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2xpZGVDb250cm9sQ2xpY2soc2xpZGUpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbk5hdkJ0bktleWJvYXJkUHJlc3MoJGV2ZW50LCBpKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLXUtc3Itb25seVwiPnt7ICdlY2wuY2Fyb3VzZWwuR08tVE8tU0xJREUnIHwgdHJhbnNsYXRlIH19IHt7IGkgKyAxIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJpc01vYmlsZUJyZWFrcG9pbnRcIiAjcHJldkJ1dHRvbiBjbGFzcz1cImVjbC1jYXJvdXNlbF9fcHJldlwiIChjbGljayk9XCJvblByZXZpb3VzU2xpZGVDbGljaygpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJtXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiIGlzSW52ZXJ0ZWQgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2ljb24tZGVmYXVsdFwiPiA8L2VjbC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+e3sgJ2VjbC5jYXJvdXNlbC5QUkVWLVNMSURFUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX3BhZ2luYXRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLWNhcm91c2VsX19jdXJyZW50XCI+e3sgZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICB7eyAnZWNsLmNvbW1vbi5PRicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLWNhcm91c2VsX19tYXhcIj57eyBzbGlkZXMubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNNb2JpbGVCcmVha3BvaW50XCIgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX25leHRcIiAoY2xpY2spPVwib25OZXh0U2xpZGVDbGljaygpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJtXCIgdHJhbnNmb3JtPVwicm90YXRlLTkwXCIgaXNJbnZlcnRlZCBjbGFzcz1cImVjbC1jYXJvdXNlbF9faWNvbi1kZWZhdWx0XCI+IDwvZWNsLWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWNsLXUtc3Itb25seVwiPnt7ICdlY2wuY2Fyb3VzZWwuTkVYVC1TTElERVMnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=