@eui/ecl 17.0.0-next.7 → 17.0.0-next.8

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 (417) hide show
  1. package/assets/i18n-ecl/bg.json +1 -0
  2. package/assets/i18n-ecl/cs.json +1 -0
  3. package/assets/i18n-ecl/da.json +1 -0
  4. package/assets/i18n-ecl/de.json +1 -0
  5. package/assets/i18n-ecl/el.json +1 -0
  6. package/assets/i18n-ecl/en.json +1 -0
  7. package/assets/i18n-ecl/es.json +1 -0
  8. package/assets/i18n-ecl/et.json +1 -0
  9. package/assets/i18n-ecl/fi.json +1 -0
  10. package/assets/i18n-ecl/fr.json +1 -0
  11. package/assets/i18n-ecl/ga.json +1 -0
  12. package/assets/i18n-ecl/hr.json +1 -0
  13. package/assets/i18n-ecl/hu.json +1 -0
  14. package/assets/i18n-ecl/it.json +1 -0
  15. package/assets/i18n-ecl/lt.json +1 -0
  16. package/assets/i18n-ecl/lv.json +1 -0
  17. package/assets/i18n-ecl/mt.json +1 -0
  18. package/assets/i18n-ecl/nl.json +1 -0
  19. package/assets/i18n-ecl/pl.json +1 -0
  20. package/assets/i18n-ecl/pt.json +1 -0
  21. package/assets/i18n-ecl/ro.json +1 -0
  22. package/assets/i18n-ecl/sk.json +1 -0
  23. package/assets/i18n-ecl/sl.json +1 -0
  24. package/assets/i18n-ecl/sv.json +1 -0
  25. package/esm2022/lib/components/ecl-accordion/ecl-accordion-item.component.mjs +3 -3
  26. package/esm2022/lib/components/ecl-accordion/ecl-accordion.component.mjs +3 -3
  27. package/esm2022/lib/components/ecl-accordion/ecl-accordion.module.mjs +4 -4
  28. package/esm2022/lib/components/ecl-app/deprecated/common/ecl-app.component.mjs +6 -6
  29. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-core/ecl-app-core.component.mjs +6 -6
  30. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-core/ecl-app-core.module.mjs +4 -4
  31. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-harmonised/ecl-app-harmonised.component.mjs +6 -6
  32. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-harmonised/ecl-app-harmonised.module.mjs +4 -4
  33. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-standardised/ecl-app-standardised.component.mjs +6 -6
  34. package/esm2022/lib/components/ecl-app/deprecated/ecl-app-standardised/ecl-app-standardised.module.mjs +4 -4
  35. package/esm2022/lib/components/ecl-app/ecl-app.component.mjs +5 -5
  36. package/esm2022/lib/components/ecl-app/ecl-app.module.mjs +4 -4
  37. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-credit.directive.mjs +3 -3
  38. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-cta-link.directive.mjs +5 -5
  39. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-description.directive.mjs +3 -3
  40. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-title.directive.mjs +3 -3
  41. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner.component.mjs +4 -4
  42. package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner.module.mjs +4 -4
  43. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-credit.directive.mjs +3 -3
  44. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-cta-link.directive.mjs +5 -5
  45. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-description.directive.mjs +3 -3
  46. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-title.directive.mjs +3 -3
  47. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner.component.mjs +4 -4
  48. package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner.module.mjs +4 -4
  49. package/esm2022/lib/components/ecl-banner/ecl-banner-credit.directive.mjs +3 -3
  50. package/esm2022/lib/components/ecl-banner/ecl-banner-description.directive.mjs +6 -6
  51. package/esm2022/lib/components/ecl-banner/ecl-banner-picture.directive.mjs +6 -6
  52. package/esm2022/lib/components/ecl-banner/ecl-banner-title.directive.mjs +6 -6
  53. package/esm2022/lib/components/ecl-banner/ecl-banner.component.mjs +4 -4
  54. package/esm2022/lib/components/ecl-banner/ecl-banner.module.mjs +4 -4
  55. package/esm2022/lib/components/ecl-base.directive.mjs +3 -3
  56. package/esm2022/lib/components/ecl-blockquote/ecl-blockquote-picture.directive.mjs +6 -6
  57. package/esm2022/lib/components/ecl-blockquote/ecl-blockquote.component.mjs +16 -6
  58. package/esm2022/lib/components/ecl-blockquote/ecl-blockquote.module.mjs +4 -4
  59. package/esm2022/lib/components/ecl-breadcrumb/deprecated/common/ecl-breadcrumb-segment.component.mjs +5 -5
  60. package/esm2022/lib/components/ecl-breadcrumb/deprecated/common/ecl-breadcrumb.component.mjs +5 -5
  61. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core-segment.component.mjs +5 -5
  62. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core.component.mjs +4 -4
  63. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core.module.mjs +4 -4
  64. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised-segment.component.mjs +5 -5
  65. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised.component.mjs +4 -4
  66. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised.module.mjs +4 -4
  67. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised-segment.component.mjs +5 -5
  68. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised.component.mjs +4 -4
  69. package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised.module.mjs +4 -4
  70. package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.mjs +5 -5
  71. package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb.component.mjs +5 -5
  72. package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb.module.mjs +4 -4
  73. package/esm2022/lib/components/ecl-button/ecl-button-label.directive.mjs +3 -3
  74. package/esm2022/lib/components/ecl-button/ecl-button.component.mjs +5 -5
  75. package/esm2022/lib/components/ecl-button/ecl-button.module.mjs +4 -4
  76. package/esm2022/lib/components/ecl-card/ecl-card-body.component.mjs +3 -3
  77. package/esm2022/lib/components/ecl-card/ecl-card-image/ecl-card-image.component.mjs +3 -3
  78. package/esm2022/lib/components/ecl-card/ecl-card-picture.directive.mjs +6 -6
  79. package/esm2022/lib/components/ecl-card/ecl-card.component.mjs +3 -3
  80. package/esm2022/lib/components/ecl-card/ecl-card.module.mjs +4 -4
  81. package/esm2022/lib/components/ecl-carousel/ecl-carousel-item.component.mjs +3 -3
  82. package/esm2022/lib/components/ecl-carousel/ecl-carousel.component.mjs +7 -14
  83. package/esm2022/lib/components/ecl-carousel/ecl-carousel.module.mjs +4 -4
  84. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.mjs +5 -5
  85. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.mjs +4 -4
  86. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.mjs +4 -4
  87. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter.module.mjs +4 -4
  88. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-help.component.mjs +3 -3
  89. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-input.directive.mjs +6 -6
  90. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-label.component.mjs +3 -3
  91. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox.directive.mjs +5 -4
  92. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox.module.mjs +22 -8
  93. package/esm2022/lib/components/ecl-content-block/ecl-content-block-elements.directive.mjs +51 -51
  94. package/esm2022/lib/components/ecl-content-block/ecl-content-block.component.mjs +3 -3
  95. package/esm2022/lib/components/ecl-content-block/ecl-content-block.module.mjs +4 -4
  96. package/esm2022/lib/components/ecl-content-item/ecl-content-item-image.directive.mjs +6 -6
  97. package/esm2022/lib/components/ecl-content-item/ecl-content-item.component.mjs +4 -4
  98. package/esm2022/lib/components/ecl-content-item/ecl-content-item.module.mjs +4 -4
  99. package/esm2022/lib/components/ecl-date-block/ecl-date-block.component.mjs +5 -5
  100. package/esm2022/lib/components/ecl-date-block/ecl-date-block.module.mjs +4 -4
  101. package/esm2022/lib/components/ecl-date-picker/ecl-date-picker.directive.mjs +5 -5
  102. package/esm2022/lib/components/ecl-date-picker/ecl-date-picker.module.mjs +4 -4
  103. package/esm2022/lib/components/ecl-expandable/ecl-expandable.component.mjs +3 -3
  104. package/esm2022/lib/components/ecl-expandable/ecl-expandable.module.mjs +4 -4
  105. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-description.component.mjs +3 -3
  106. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-item.component.mjs +3 -3
  107. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-title.component.mjs +3 -3
  108. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-value.component.mjs +3 -3
  109. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-view-all.component.mjs +3 -3
  110. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures.component.mjs +3 -3
  111. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures.module.mjs +4 -4
  112. package/esm2022/lib/components/ecl-featured/ecl-featured-item-description.component.mjs +3 -3
  113. package/esm2022/lib/components/ecl-featured/ecl-featured-item-link.directive.mjs +3 -3
  114. package/esm2022/lib/components/ecl-featured/ecl-featured-item.component.mjs +3 -3
  115. package/esm2022/lib/components/ecl-featured/ecl-featured.component.mjs +3 -3
  116. package/esm2022/lib/components/ecl-featured/ecl-featured.module.mjs +4 -4
  117. package/esm2022/lib/components/ecl-feedback-message/ecl-feedback-message.directive.mjs +4 -4
  118. package/esm2022/lib/components/ecl-feedback-message/ecl-feedback-message.module.mjs +4 -4
  119. package/esm2022/lib/components/ecl-file/ecl-file-item/ecl-file-item.component.mjs +5 -5
  120. package/esm2022/lib/components/ecl-file/ecl-file-items/ecl-file-items.component.mjs +3 -3
  121. package/esm2022/lib/components/ecl-file/ecl-file-picture.directive.mjs +6 -6
  122. package/esm2022/lib/components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.mjs +3 -3
  123. package/esm2022/lib/components/ecl-file/ecl-file.component.mjs +3 -3
  124. package/esm2022/lib/components/ecl-file/ecl-file.module.mjs +4 -4
  125. package/esm2022/lib/components/ecl-file-upload/ecl-file-upload.directive.mjs +6 -6
  126. package/esm2022/lib/components/ecl-file-upload/ecl-file-upload.module.mjs +4 -4
  127. package/esm2022/lib/components/ecl-form-group/ecl-form-group.component.mjs +3 -3
  128. package/esm2022/lib/components/ecl-form-group/ecl-form-group.module.mjs +4 -4
  129. package/esm2022/lib/components/ecl-form-label/ecl-form-label.component.mjs +3 -3
  130. package/esm2022/lib/components/ecl-form-label/ecl-form-label.module.mjs +4 -4
  131. package/esm2022/lib/components/ecl-gallery/ecl-gallery-footer.component.mjs +5 -5
  132. package/esm2022/lib/components/ecl-gallery/ecl-gallery-item.component.mjs +22 -7
  133. package/esm2022/lib/components/ecl-gallery/ecl-gallery-media.directive.mjs +8 -8
  134. package/esm2022/lib/components/ecl-gallery/ecl-gallery.component.mjs +91 -29
  135. package/esm2022/lib/components/ecl-gallery/ecl-gallery.module.mjs +4 -4
  136. package/esm2022/lib/components/ecl-help-block/ecl-help-block.directive.mjs +3 -3
  137. package/esm2022/lib/components/ecl-help-block/ecl-help-block.module.mjs +4 -4
  138. package/esm2022/lib/components/ecl-icon/ecl-icon.component.mjs +5 -5
  139. package/esm2022/lib/components/ecl-icon/ecl-icon.module.mjs +4 -4
  140. package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.mjs +3 -3
  141. package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.component.mjs +3 -3
  142. package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.module.mjs +4 -4
  143. package/esm2022/lib/components/ecl-label/ecl-label.directive.mjs +3 -3
  144. package/esm2022/lib/components/ecl-label/ecl-label.module.mjs +4 -4
  145. package/esm2022/lib/components/ecl-language-list/ecl-language-list-item.component.mjs +5 -5
  146. package/esm2022/lib/components/ecl-language-list/ecl-language-list.component.mjs +5 -5
  147. package/esm2022/lib/components/ecl-language-list/ecl-language-list.module.mjs +4 -4
  148. package/esm2022/lib/components/ecl-link/ecl-link-label.directive.mjs +3 -3
  149. package/esm2022/lib/components/ecl-link/ecl-link.directive.mjs +5 -5
  150. package/esm2022/lib/components/ecl-link/ecl-link.module.mjs +4 -4
  151. package/esm2022/lib/components/ecl-list/ecl-description-list-definition/ecl-description-list-definition.component.mjs +3 -3
  152. package/esm2022/lib/components/ecl-list/ecl-description-list-definition-item.directive.mjs +3 -3
  153. package/esm2022/lib/components/ecl-list/ecl-list.directive.mjs +20 -20
  154. package/esm2022/lib/components/ecl-list/ecl-list.module.mjs +4 -4
  155. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-icon.directive.mjs +3 -3
  156. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-image/ecl-list-illustration-image.component.mjs +3 -3
  157. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-item.component.mjs +4 -4
  158. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-picture.directive.mjs +6 -6
  159. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration.component.mjs +3 -3
  160. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration.module.mjs +4 -4
  161. package/esm2022/lib/components/ecl-media-container/ecl-media-container-iframe.directive.mjs +5 -5
  162. package/esm2022/lib/components/ecl-media-container/ecl-media-container-item.directive.mjs +5 -5
  163. package/esm2022/lib/components/ecl-media-container/ecl-media-container-picture.directive.mjs +3 -3
  164. package/esm2022/lib/components/ecl-media-container/ecl-media-container.component.mjs +16 -7
  165. package/esm2022/lib/components/ecl-media-container/ecl-media-container.module.mjs +4 -4
  166. package/esm2022/lib/components/ecl-menu/ecl-menu/ecl-menu-item.component.mjs +5 -5
  167. package/esm2022/lib/components/ecl-menu/ecl-menu/ecl-menu.component.mjs +9 -5
  168. package/esm2022/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.mjs +4 -4
  169. package/esm2022/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.mjs +5 -5
  170. package/esm2022/lib/components/ecl-menu/ecl-menu.module.mjs +4 -4
  171. package/esm2022/lib/components/ecl-message/ecl-message-title.directive.mjs +3 -3
  172. package/esm2022/lib/components/ecl-message/ecl-message.component.mjs +3 -3
  173. package/esm2022/lib/components/ecl-message/ecl-message.module.mjs +4 -4
  174. package/esm2022/lib/components/ecl-modal/ecl-modal-body.component.mjs +3 -3
  175. package/esm2022/lib/components/ecl-modal/ecl-modal-close.directive.mjs +3 -3
  176. package/esm2022/lib/components/ecl-modal/ecl-modal-footer.component.mjs +4 -4
  177. package/esm2022/lib/components/ecl-modal/ecl-modal-header.component.mjs +3 -3
  178. package/esm2022/lib/components/ecl-modal/ecl-modal-trigger.directive.mjs +3 -3
  179. package/esm2022/lib/components/ecl-modal/ecl-modal.component.mjs +4 -4
  180. package/esm2022/lib/components/ecl-modal/ecl-modal.module.mjs +4 -4
  181. package/esm2022/lib/components/ecl-multiselect/boldText.pipe.mjs +36 -0
  182. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.mjs +449 -0
  183. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.mjs +92 -0
  184. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.mjs +33 -0
  185. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.mjs +130 -0
  186. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-option.directive.mjs +6 -15
  187. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect.component.mjs +88 -824
  188. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect.module.mjs +49 -7
  189. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-image/ecl-navigation-list-image.component.mjs +3 -3
  190. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-item.component.mjs +4 -4
  191. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-picture.directive.mjs +6 -6
  192. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list.component.mjs +3 -3
  193. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list.module.mjs +4 -4
  194. package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.mjs +5 -5
  195. package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker.component.mjs +5 -5
  196. package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker.module.mjs +4 -4
  197. package/esm2022/lib/components/ecl-page-header/deprecated/common/ecl-page-header.component.mjs +3 -3
  198. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-description.directive.mjs +9 -9
  199. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-meta.directive.mjs +6 -6
  200. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-title.directive.mjs +3 -3
  201. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core.component.mjs +3 -3
  202. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core.module.mjs +4 -4
  203. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-description.directive.mjs +9 -9
  204. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-meta.directive.mjs +6 -6
  205. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-title.directive.mjs +3 -3
  206. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised.component.mjs +3 -3
  207. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised.module.mjs +4 -4
  208. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-description.directive.mjs +9 -9
  209. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-meta.directive.mjs +6 -6
  210. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-title.directive.mjs +3 -3
  211. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised.component.mjs +3 -3
  212. package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised.module.mjs +4 -4
  213. package/esm2022/lib/components/ecl-page-header/ecl-page-header-background.directive.mjs +6 -6
  214. package/esm2022/lib/components/ecl-page-header/ecl-page-header-description/ecl-page-header-description.component.mjs +3 -3
  215. package/esm2022/lib/components/ecl-page-header/ecl-page-header-description.directive.mjs +9 -9
  216. package/esm2022/lib/components/ecl-page-header/ecl-page-header-meta.directive.mjs +6 -6
  217. package/esm2022/lib/components/ecl-page-header/ecl-page-header-title.directive.mjs +3 -3
  218. package/esm2022/lib/components/ecl-page-header/ecl-page-header.component.mjs +3 -3
  219. package/esm2022/lib/components/ecl-page-header/ecl-page-header.module.mjs +4 -4
  220. package/esm2022/lib/components/ecl-pagination/ecl-pagination-item.component.mjs +3 -3
  221. package/esm2022/lib/components/ecl-pagination/ecl-pagination.component.mjs +3 -3
  222. package/esm2022/lib/components/ecl-pagination/ecl-pagination.module.mjs +4 -4
  223. package/esm2022/lib/components/ecl-popover/ecl-popover-content.directive.mjs +3 -3
  224. package/esm2022/lib/components/ecl-popover/ecl-popover-list.directive.mjs +9 -9
  225. package/esm2022/lib/components/ecl-popover/ecl-popover-toggle.directive.mjs +5 -5
  226. package/esm2022/lib/components/ecl-popover/ecl-popover.component.mjs +3 -3
  227. package/esm2022/lib/components/ecl-popover/ecl-popover.module.mjs +4 -4
  228. package/esm2022/lib/components/ecl-radio/ecl-radio-help.component.mjs +3 -3
  229. package/esm2022/lib/components/ecl-radio/ecl-radio-input.directive.mjs +6 -6
  230. package/esm2022/lib/components/ecl-radio/ecl-radio-label.component.mjs +3 -3
  231. package/esm2022/lib/components/ecl-radio/ecl-radio.directive.mjs +4 -4
  232. package/esm2022/lib/components/ecl-radio/ecl-radio.module.mjs +4 -4
  233. package/esm2022/lib/components/ecl-range/ecl-range-value.component.mjs +3 -3
  234. package/esm2022/lib/components/ecl-range/ecl-range.directive.mjs +6 -6
  235. package/esm2022/lib/components/ecl-range/ecl-range.module.mjs +4 -4
  236. package/esm2022/lib/components/ecl-rating-field/ecl-rating-field.component.mjs +5 -5
  237. package/esm2022/lib/components/ecl-rating-field/ecl-rating-field.module.mjs +4 -4
  238. package/esm2022/lib/components/ecl-search-form/ecl-search-form.component.mjs +3 -3
  239. package/esm2022/lib/components/ecl-search-form/ecl-search-form.module.mjs +4 -4
  240. package/esm2022/lib/components/ecl-select/ecl-select-container.component.mjs +3 -3
  241. package/esm2022/lib/components/ecl-select/ecl-select.directive.mjs +6 -6
  242. package/esm2022/lib/components/ecl-select/ecl-select.module.mjs +4 -4
  243. package/esm2022/lib/components/ecl-site-footer/deprecated/common/ecl-footer.component.mjs +5 -5
  244. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-core.component.mjs +3 -3
  245. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-core.module.mjs +4 -4
  246. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-column.directive.mjs +3 -3
  247. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-description.directive.mjs +3 -3
  248. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-link.directive.mjs +3 -3
  249. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-list.directive.mjs +6 -6
  250. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-section.directive.mjs +3 -3
  251. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-title.directive.mjs +6 -6
  252. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-column.directive.mjs +9 -9
  253. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-description.directive.mjs +3 -3
  254. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-link.directive.mjs +9 -9
  255. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-list.directive.mjs +15 -15
  256. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-section.directive.mjs +3 -3
  257. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-title.directive.mjs +6 -6
  258. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-harmonised.component.mjs +3 -3
  259. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-harmonised.module.mjs +4 -4
  260. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-column.directive.mjs +9 -9
  261. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-description.directive.mjs +3 -3
  262. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-link.directive.mjs +9 -9
  263. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-list.directive.mjs +6 -6
  264. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-section.directive.mjs +3 -3
  265. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-title.directive.mjs +6 -6
  266. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-standardised.component.mjs +3 -3
  267. package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-standardised.module.mjs +4 -4
  268. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ec/ecl-site-footer-fixed-content.mjs +5 -5
  269. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-column.directive.mjs +9 -9
  270. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-description.directive.mjs +3 -3
  271. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-link.directive.mjs +15 -15
  272. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-list.directive.mjs +15 -15
  273. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-section.directive.mjs +3 -3
  274. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-title.directive.mjs +6 -6
  275. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.mjs +5 -5
  276. package/esm2022/lib/components/ecl-site-footer/ecl-site-footer.component.mjs +5 -5
  277. package/esm2022/lib/components/ecl-site-footer/ecl-site-footer.module.mjs +4 -4
  278. package/esm2022/lib/components/ecl-site-header/action/ecl-site-header-action.component.mjs +3 -3
  279. package/esm2022/lib/components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.mjs +3 -3
  280. package/esm2022/lib/components/ecl-site-header/cta/ecl-site-header-cta.directive.mjs +3 -3
  281. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-action.component.mjs +3 -3
  282. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-banner-top.component.mjs +3 -3
  283. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-language.component.mjs +3 -3
  284. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-login.component.mjs +3 -3
  285. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-search.component.mjs +3 -3
  286. package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header.component.mjs +5 -5
  287. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/action/ecl-site-header-core-action.component.mjs +3 -3
  288. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/ecl-site-header-core.component.mjs +5 -5
  289. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/ecl-site-header-core.module.mjs +4 -4
  290. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/language/ecl-site-header-core-language.component.mjs +3 -3
  291. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/ecl-site-header-core-login-details.directive.mjs +6 -6
  292. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/ecl-site-header-core-login.component.mjs +3 -3
  293. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/search/ecl-site-header-core-search.component.mjs +3 -3
  294. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/action/ecl-site-header-harmonised-action.component.mjs +3 -3
  295. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/banner-top/ecl-site-header-harmonised-banner-top.component.mjs +3 -3
  296. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/ecl-site-header-harmonised.component.mjs +5 -5
  297. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/ecl-site-header-harmonised.module.mjs +4 -4
  298. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/language/ecl-site-header-harmonised-language.component.mjs +3 -3
  299. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/ecl-site-header-harmonised-login-details.directive.mjs +6 -6
  300. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/ecl-site-header-harmonised-login.component.mjs +3 -3
  301. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/search/ecl-site-header-harmonised-search.component.mjs +3 -3
  302. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/action/ecl-site-header-standardised-action.component.mjs +3 -3
  303. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/banner-top/ecl-site-header-standardised-banner-top.component.mjs +3 -3
  304. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/cta/ecl-site-header-standardised-cta.directive.mjs +3 -3
  305. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/ecl-site-header-standardised.component.mjs +5 -5
  306. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/ecl-site-header-standardised.module.mjs +4 -4
  307. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/language/ecl-site-header-standardised-language.component.mjs +3 -3
  308. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/ecl-site-header-standardised-login-details.directive.mjs +6 -6
  309. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/ecl-site-header-standardised-login.component.mjs +3 -3
  310. package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/search/ecl-site-header-standardised-search.component.mjs +3 -3
  311. package/esm2022/lib/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.mjs +5 -5
  312. package/esm2022/lib/components/ecl-site-header/ecl-site-header.component.mjs +5 -5
  313. package/esm2022/lib/components/ecl-site-header/ecl-site-header.module.mjs +4 -4
  314. package/esm2022/lib/components/ecl-site-header/language/ecl-site-header-language-popover.component.mjs +5 -5
  315. package/esm2022/lib/components/ecl-site-header/language/ecl-site-header-language.component.mjs +21 -5
  316. package/esm2022/lib/components/ecl-site-header/login/ecl-site-header-login-details.directive.mjs +6 -6
  317. package/esm2022/lib/components/ecl-site-header/login/ecl-site-header-login.component.mjs +3 -3
  318. package/esm2022/lib/components/ecl-site-header/message/ecl-site-header-message.component.mjs +3 -3
  319. package/esm2022/lib/components/ecl-site-header/search/ecl-site-header-search.component.mjs +8 -4
  320. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow-item.component.mjs +3 -3
  321. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow-link.directive.mjs +3 -3
  322. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow.component.mjs +3 -3
  323. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow.module.mjs +4 -4
  324. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share-item.component.mjs +3 -3
  325. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share-link.directive.mjs +3 -3
  326. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share.component.mjs +3 -3
  327. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share.module.mjs +4 -4
  328. package/esm2022/lib/components/ecl-spinner/ecl-spinner-label.directive.mjs +3 -3
  329. package/esm2022/lib/components/ecl-spinner/ecl-spinner.component.mjs +3 -3
  330. package/esm2022/lib/components/ecl-spinner/ecl-spinner.module.mjs +4 -4
  331. package/esm2022/lib/components/ecl-sticky-container/ecl-sticky-container.component.mjs +3 -3
  332. package/esm2022/lib/components/ecl-sticky-container/ecl-sticky-container.module.mjs +4 -4
  333. package/esm2022/lib/components/ecl-table/ecl-table-sort-button.component.mjs +5 -5
  334. package/esm2022/lib/components/ecl-table/ecl-table.directive.mjs +41 -25
  335. package/esm2022/lib/components/ecl-table/ecl-table.module.mjs +11 -8
  336. package/esm2022/lib/components/ecl-tabs/ecl-tab-label.component.mjs +3 -3
  337. package/esm2022/lib/components/ecl-tabs/ecl-tab-more.component.mjs +5 -5
  338. package/esm2022/lib/components/ecl-tabs/ecl-tab.component.mjs +5 -5
  339. package/esm2022/lib/components/ecl-tabs/ecl-tabs.component.mjs +5 -5
  340. package/esm2022/lib/components/ecl-tabs/ecl-tabs.module.mjs +4 -4
  341. package/esm2022/lib/components/ecl-tag/ecl-tag.component.mjs +3 -3
  342. package/esm2022/lib/components/ecl-tag/ecl-tag.module.mjs +4 -4
  343. package/esm2022/lib/components/ecl-text-area/ecl-text-area.directive.mjs +6 -6
  344. package/esm2022/lib/components/ecl-text-area/ecl-text-area.module.mjs +4 -4
  345. package/esm2022/lib/components/ecl-text-input/ecl-text-input.directive.mjs +7 -6
  346. package/esm2022/lib/components/ecl-text-input/ecl-text-input.module.mjs +7 -8
  347. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-label.directive.mjs +3 -3
  348. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-title.directive.mjs +3 -3
  349. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-toggler.component.mjs +3 -3
  350. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item.component.mjs +4 -4
  351. package/esm2022/lib/components/ecl-timeline/ecl-timeline.component.mjs +4 -4
  352. package/esm2022/lib/components/ecl-timeline/ecl-timeline.module.mjs +4 -4
  353. package/esm2022/lib/model/ecl-multiselect-option.model.mjs +2 -0
  354. package/esm2022/lib/services/ecl-default-language.service.mjs +5 -5
  355. package/esm2022/lib/services/ecl-theme.service.mjs +5 -5
  356. package/esm2022/lib/shared/ecl-all.module.mjs +4 -4
  357. package/esm2022/lib/utils/constants/constants.mjs +11 -0
  358. package/esm2022/lib/utils/constants/index.mjs +2 -0
  359. package/esm2022/lib/utils/directives/ecl-click-outside/ecl-click-outside.directive.mjs +5 -5
  360. package/esm2022/lib/utils/directives/ecl-hidden/ecl-hidden.directive.mjs +3 -3
  361. package/esm2022/lib/utils/directives/ecl-hidden/ecl-hidden.module.mjs +4 -4
  362. package/esm2022/lib/utils/index.mjs +2 -1
  363. package/fesm2022/eui-ecl.mjs +2408 -2268
  364. package/fesm2022/eui-ecl.mjs.map +1 -1
  365. package/lib/components/ecl-blockquote/ecl-blockquote.component.d.ts +12 -2
  366. package/lib/components/ecl-blockquote/ecl-blockquote.component.d.ts.map +1 -1
  367. package/lib/components/ecl-carousel/ecl-carousel.component.d.ts +2 -3
  368. package/lib/components/ecl-carousel/ecl-carousel.component.d.ts.map +1 -1
  369. package/lib/components/ecl-checkbox/ecl-checkbox.directive.d.ts +1 -1
  370. package/lib/components/ecl-checkbox/ecl-checkbox.directive.d.ts.map +1 -1
  371. package/lib/components/ecl-checkbox/ecl-checkbox.module.d.ts +7 -7
  372. package/lib/components/ecl-checkbox/ecl-checkbox.module.d.ts.map +1 -1
  373. package/lib/components/ecl-gallery/ecl-gallery-item.component.d.ts +11 -4
  374. package/lib/components/ecl-gallery/ecl-gallery-item.component.d.ts.map +1 -1
  375. package/lib/components/ecl-gallery/ecl-gallery.component.d.ts +39 -5
  376. package/lib/components/ecl-gallery/ecl-gallery.component.d.ts.map +1 -1
  377. package/lib/components/ecl-media-container/ecl-media-container.component.d.ts +7 -3
  378. package/lib/components/ecl-media-container/ecl-media-container.component.d.ts.map +1 -1
  379. package/lib/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts +1 -0
  380. package/lib/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts.map +1 -1
  381. package/lib/components/ecl-multiselect/boldText.pipe.d.ts +11 -0
  382. package/lib/components/ecl-multiselect/boldText.pipe.d.ts.map +1 -0
  383. package/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts +94 -0
  384. package/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts.map +1 -0
  385. package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts +26 -0
  386. package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts.map +1 -0
  387. package/lib/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.d.ts +19 -0
  388. package/lib/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.d.ts.map +1 -0
  389. package/lib/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.d.ts +49 -0
  390. package/lib/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.d.ts.map +1 -0
  391. package/lib/components/ecl-multiselect/ecl-multiselect-option.directive.d.ts +3 -6
  392. package/lib/components/ecl-multiselect/ecl-multiselect-option.directive.d.ts.map +1 -1
  393. package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts +19 -113
  394. package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts.map +1 -1
  395. package/lib/components/ecl-multiselect/ecl-multiselect.module.d.ts +12 -3
  396. package/lib/components/ecl-multiselect/ecl-multiselect.module.d.ts.map +1 -1
  397. package/lib/components/ecl-site-header/language/ecl-site-header-language.component.d.ts +4 -0
  398. package/lib/components/ecl-site-header/language/ecl-site-header-language.component.d.ts.map +1 -1
  399. package/lib/components/ecl-site-header/search/ecl-site-header-search.component.d.ts +1 -0
  400. package/lib/components/ecl-site-header/search/ecl-site-header-search.component.d.ts.map +1 -1
  401. package/lib/components/ecl-table/ecl-table.directive.d.ts +5 -0
  402. package/lib/components/ecl-table/ecl-table.directive.d.ts.map +1 -1
  403. package/lib/components/ecl-table/ecl-table.module.d.ts +1 -1
  404. package/lib/components/ecl-table/ecl-table.module.d.ts.map +1 -1
  405. package/lib/components/ecl-text-input/ecl-text-input.directive.d.ts +1 -1
  406. package/lib/components/ecl-text-input/ecl-text-input.directive.d.ts.map +1 -1
  407. package/lib/components/ecl-text-input/ecl-text-input.module.d.ts +3 -3
  408. package/lib/components/ecl-text-input/ecl-text-input.module.d.ts.map +1 -1
  409. package/lib/model/ecl-multiselect-option.model.d.ts +8 -0
  410. package/lib/model/ecl-multiselect-option.model.d.ts.map +1 -0
  411. package/lib/utils/constants/constants.d.ts +10 -0
  412. package/lib/utils/constants/constants.d.ts.map +1 -0
  413. package/lib/utils/constants/index.d.ts +2 -0
  414. package/lib/utils/constants/index.d.ts.map +1 -0
  415. package/lib/utils/index.d.ts +1 -0
  416. package/lib/utils/index.d.ts.map +1 -1
  417. package/package.json +1 -1
@@ -149,13 +149,13 @@ export class EclMenuItemComponent extends ECLBaseDirective {
149
149
  hasSubmenuAnySelections() {
150
150
  return this.submenu && !!this.submenu.eclMenuMegaItems.find((it) => it.isCurrent);
151
151
  }
152
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EclMenuItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component }); }
153
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EclMenuItemComponent, selector: "ecl-menu-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href", target: "target", isCurrent: "isCurrent" }, outputs: { menuItemSelect: "menuItemSelect", menuItemCaret: "menuItemCaret", menuItemHover: "menuItemHover", menuItemHoverOut: "menuItemHoverOut", menuMegaItemSelect: "menuMegaItemSelect", menuItemFocus: "menuItemFocus" }, host: { listeners: { "mouseenter": "onItemMouseEnter($event)", "mouseleave": "onItemMouseLeave($event)" }, properties: { "class": "this.cssClasses", "class.ecl-menu__item--has-children": "this.hasEclChildrenDataAttribute", "attr.aria-haspopup": "this.hasEclChildrenDataAttribute", "attr.aria-expanded": "this.isAriaExpanded" } }, queries: [{ propertyName: "submenu", first: true, predicate: i0.forwardRef(function () { return EclMenuMegaComponent; }), descendants: true }], viewQueries: [{ propertyName: "menuLink", first: true, predicate: ["menuLink"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<a\n #menuLink\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (focus)=\"onItemFocus($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n<a\n #menuLink\n *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (focus)=\"onItemFocus($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n<button\n eclButton\n *ngIf=\"hasChildren\"\n variant=\"primary\"\n class=\"ecl-menu__button-caret\"\n type=\"button\"\n aria-label=\"Access item's children\"\n (click)=\"onItemCaretClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n</button>\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
152
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component }); }
153
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.7", type: EclMenuItemComponent, selector: "ecl-menu-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href", target: "target", isCurrent: "isCurrent" }, outputs: { menuItemSelect: "menuItemSelect", menuItemCaret: "menuItemCaret", menuItemHover: "menuItemHover", menuItemHoverOut: "menuItemHoverOut", menuMegaItemSelect: "menuMegaItemSelect", menuItemFocus: "menuItemFocus" }, host: { listeners: { "mouseenter": "onItemMouseEnter($event)", "mouseleave": "onItemMouseLeave($event)" }, properties: { "class": "this.cssClasses", "class.ecl-menu__item--has-children": "this.hasEclChildrenDataAttribute", "attr.aria-haspopup": "this.hasEclChildrenDataAttribute", "attr.aria-expanded": "this.isAriaExpanded" } }, queries: [{ propertyName: "submenu", first: true, predicate: i0.forwardRef(() => EclMenuMegaComponent), descendants: true }], viewQueries: [{ propertyName: "menuLink", first: true, predicate: ["menuLink"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<a\n #menuLink\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (focus)=\"onItemFocus($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n<a\n #menuLink\n *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (focus)=\"onItemFocus($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n<button\n eclButton\n *ngIf=\"hasChildren\"\n variant=\"primary\"\n class=\"ecl-menu__button-caret\"\n type=\"button\"\n aria-label=\"Access item's children\"\n (click)=\"onItemCaretClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n</button>\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
154
154
  }
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EclMenuItemComponent, decorators: [{
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuItemComponent, decorators: [{
156
156
  type: Component,
157
157
  args: [{ selector: 'ecl-menu-item', encapsulation: ViewEncapsulation.None, template: "<a\n #menuLink\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (focus)=\"onItemFocus($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n<a\n #menuLink\n *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (focus)=\"onItemFocus($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n<button\n eclButton\n *ngIf=\"hasChildren\"\n variant=\"primary\"\n class=\"ecl-menu__button-caret\"\n type=\"button\"\n aria-label=\"Access item's children\"\n (click)=\"onItemCaretClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n</button>\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n" }]
158
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ApplicationRef }]; }, propDecorators: { id: [{
158
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ApplicationRef }], propDecorators: { id: [{
159
159
  type: Input
160
160
  }], label: [{
161
161
  type: Input
@@ -208,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4",
208
208
  type: HostListener,
209
209
  args: ['mouseleave', ['$event']]
210
210
  }] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFDSCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsc0JBQXNCLEdBQ3pCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQWFoRixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBZXRELElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxF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QUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFJSCwyQkFBMkI7c0JBRjlCLFdBQVc7dUJBQUMsb0NBQW9DOztzQkFDaEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBTTdCLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQXdDakMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU10QyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQXBwbGljYXRpb25SZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBFY2xNZW51SXRlbUNhcmV0RXZlbnQsXG4gICAgRWNsTWVudUl0ZW1Gb2N1c0V2ZW50LFxuICAgIEVjbE1lbnVJdGVtSG92ZXJFdmVudCxcbiAgICBFY2xNZW51SXRlbUhvdmVyT3V0RXZlbnQsXG4gICAgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCxcbn0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsTWVudU1lZ2FDb21wb25lbnQgfSBmcm9tICcuLi9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EuY29tcG9uZW50JztcblxuY29uc3QgZW51bSBDb2xUcmlnZ2VyIHtcbiAgICBDT0wxX1RSSUdHRVIgPSA1LFxuICAgIENPTDJfVFJJR0dFUiA9IDksXG4gICAgQ09MM19UUklHR0VSID0gMTMsXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW1lbnUtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEVjbE1lbnVJdGVtLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSByb3V0ZXJMaW5rOiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgaHJlZjogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgdGFyZ2V0OiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBpc0N1cnJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgaXNIb3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICBpc0Z1bGwgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtbWVudV9faXRlbScpLFxuICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnQgPyAnZWNsLW1lbnVfX2l0ZW0tLWN1cnJlbnQnIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPyAnZWNsLW1lbnVfX2l0ZW0tLWV4cGFuZGVkJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5nZXRDbGFzc0RlcGVuZGluZ0NoaWxkcmVuQ250KCksXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEVjbE1lbnVNZWdhQ29tcG9uZW50KSkgc3VibWVudTogRWNsTWVudU1lZ2FDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnbWVudUxpbmsnKSBtZW51TGluazogRWxlbWVudFJlZjtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1DYXJldCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1DYXJldEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUhvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbUhvdmVyRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVJdGVtSG92ZXJPdXQgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtSG92ZXJPdXRFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudU1lZ2FJdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbVNlbGVjdEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbUZvY3VzRXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1tZW51X19pdGVtLS1oYXMtY2hpbGRyZW4nKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhhc3BvcHVwJylcbiAgICBnZXQgaGFzRWNsQ2hpbGRyZW5EYXRhQXR0cmlidXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDaGlsZHJlbiB8fCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKVxuICAgIGdldCBpc0FyaWFFeHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQ2hpbGRyZW4gPyB0aGlzLmlzSG92ZXJlZCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnN1Ym1lbnU7XG4gICAgfVxuXG4gICAgZ2V0IGNoaWxkcmVuKCk6IEFycmF5PEVjbE1lbnVJdGVtPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0NoaWxkcmVuID8gdGhpcy5zdWJtZW51LmVjbE1lbnVNZWdhSXRlbXMudG9BcnJheSgpIDogW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgYXJmOiBBcHBsaWNhdGlvblJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG9uSXRlbUZvY3VzKGV2dDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtRm9jdXMubmV4dChuZXcgRWNsTWVudUl0ZW1Gb2N1c0V2ZW50KHRoaXMsIGV2dCkpO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQodGhpcywgZXZ0KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbUNhcmV0Q2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1DYXJldC5uZXh0KG5ldyBFY2xNZW51SXRlbUNhcmV0RXZlbnQodGhpcywgZXZ0KSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicsIFsnJGV2ZW50J10pXG4gICAgb25JdGVtTW91c2VFbnRlcihldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbUhvdmVyLm5leHQobmV3IEVjbE1lbnVJdGVtSG92ZXJFdmVudCh0aGlzLCBldnQpKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcbiAgICBvbkl0ZW1Nb3VzZUxlYXZlKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtSG92ZXJPdXQubmV4dChuZXcgRWNsTWVudUl0ZW1Ib3Zlck91dEV2ZW50KHRoaXMsIGV2dCkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3VibWVudSkge1xuICAgICAgICAgICAgdGhpcy5zdWJtZW51Lm1lbnVJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGl0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51TWVnYUl0ZW1TZWxlY3QubmV4dChuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudChpdC5tZW51SXRlbSwgaXQuZG9tRXZlbnQpKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5oYXNTdWJtZW51QW55U2VsZWN0aW9ucygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGNoZWNrTWVudUl0ZW0obWF4TGluZXM6IG51bWJlciwgaXNNb2JpbGVCcmVha3BvaW50OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChtYXhMaW5lcyA8IDEpIHJldHVybjtcblxuICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgY3VycmVudExpbmsgPSB0aGlzLm1lbnVMaW5rLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChpc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIGN1cnJlbnRMaW5rLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudEl0ZW0sICdhbGlnbkl0ZW1zJywgJ2ZsZXgtc3RhcnQnKTtcbiAgICAgICAgY29uc3QgbGlua1N0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoY3VycmVudExpbmspO1xuXG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMuZ2V0TWVudUl0ZW1MaW5rTWF4SGVpZ2h0KGxpbmtTdHlsZSwgbWF4TGluZXMpO1xuXG4gICAgICAgIGlmIChjdXJyZW50TGluay5vZmZzZXRIZWlnaHQgPiBtYXhIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlTWVudUl0ZW1MaW5rV2lkdGgoY3VycmVudExpbmssIG1heExpbmVzLCBsaW5rU3R5bGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoY3VycmVudEl0ZW0sICdhbGlnbkl0ZW1zJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNZW51SXRlbUxpbmtNYXhIZWlnaHQobGlua1N0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLCBtYXhMaW5lczogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGxpbmtTdHlsZS5saW5lSGVpZ2h0LCAxMCkgKiBtYXhMaW5lcyArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nVG9wLCAxMCkgKyBwYXJzZUludChsaW5rU3R5bGUucGFkZGluZ0JvdHRvbSwgMTApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlTWVudUl0ZW1MaW5rV2lkdGgoY3VycmVudExpbms6IGFueSwgbWF4TGluZXM6IG51bWJlciwgbGlua1N0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudExpbmssICd3aGl0ZS1zcGFjZScsICdub3dyYXAnKTtcbiAgICAgICAgY29uc3QgbGlua1dpZHRoID0gY3VycmVudExpbmsub2Zmc2V0V2lkdGg7XG4gICAgICAgIGlmIChtYXhMaW5lcyA9PT0gMSkge1xuICAgICAgICAgICAgY3VycmVudExpbmsuc3R5bGUud2lkdGggPSBgJHtsaW5rV2lkdGggKyBwYXJzZUludChsaW5rU3R5bGUucGFkZGluZ0xlZnQsIDEwKSArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nUmlnaHQsIDEwKX1weGA7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGN1cnJlbnRMaW5rLCAnd2hpdGUtc3BhY2UnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0U2l6ZSA9IGN1cnJlbnRMaW5rLnRleHQubGVuZ3RoO1xuICAgICAgICBjb25zdCBsZXR0ZXJXaWR0aCA9IE1hdGguY2VpbChsaW5rV2lkdGggLyB0ZXh0U2l6ZSk7XG4gICAgICAgIGNvbnN0IHdvcmRzQXJyYXk6IFtzdHJpbmddID0gY3VycmVudExpbmsudGV4dC50cmltKCkuc3BsaXQoJyAnKTtcbiAgICAgICAgY29uc3QgZ29hbFdpZHRoID0gTWF0aC5jZWlsKGxpbmtXaWR0aCAvIG1heExpbmVzKTtcbiAgICAgICAgY29uc3QgZmlyc3RXb3JkID0gd29yZHNBcnJheVswXTtcbiAgICAgICAgbGV0IGNudCA9IDE7XG4gICAgICAgIGxldCB3b3JkV2lkdGggPSBNYXRoLmNlaWwoKGZpcnN0V29yZC5sZW5ndGggKyAxKSAqIGxldHRlcldpZHRoKTtcbiAgICAgICAgd2hpbGUgKHdvcmRXaWR0aCA8IGdvYWxXaWR0aCkge1xuICAgICAgICAgICAgd29yZFdpZHRoICs9IE1hdGguY2VpbCgod29yZHNBcnJheVtjbnRdLmxlbmd0aCArIDEpICogbGV0dGVyV2lkdGgpO1xuICAgICAgICAgICAgY250Kys7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudExpbmsuc3R5bGUud2lkdGggPSBgJHt3b3JkV2lkdGggKyBwYXJzZUludChsaW5rU3R5bGUucGFkZGluZ0xlZnQsIDEwKSArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nUmlnaHQsIDEwKX1weGA7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoY3VycmVudExpbmssICd3aGl0ZS1zcGFjZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2xhc3NEZXBlbmRpbmdDaGlsZHJlbkNudCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmxlbmd0aCA8IENvbFRyaWdnZXIuQ09MMV9UUklHR0VSKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tY29sMSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmxlbmd0aCA8IENvbFRyaWdnZXIuQ09MMl9UUklHR0VSKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tY29sMic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmxlbmd0aCA8IENvbFRyaWdnZXIuQ09MM19UUklHR0VSKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tY29sMyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGdWxsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VjbC1tZW51X19pdGVtLS1mdWxsJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNTdWJtZW51QW55U2VsZWN0aW9ucygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VibWVudSAmJiAhIXRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmZpbmQoKGl0KSA9PiBpdC5pc0N1cnJlbnQpO1xuICAgIH1cbn1cbiIsIjxhXG4gICAgI21lbnVMaW5rXG4gICAgKm5nSWY9XCJocmVmXCJcbiAgICBbaHJlZl09XCJocmVmXCJcbiAgICBbdGFyZ2V0XT1cInRhcmdldFwiXG4gICAgY2xhc3M9XCJlY2wtbWVudV9fbGlua1wiXG4gICAgW2NsYXNzLmVjbC1tZW51X19saW5rLS1jdXJyZW50XT1cImlzQ3VycmVudFwiXG4gICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgIChmb2N1cyk9XCJvbkl0ZW1Gb2N1cygkZXZlbnQpXCI+XG4gICAge3sgbGFiZWwgfX1cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9hPlxuPGFcbiAgICAjbWVudUxpbmtcbiAgICAqbmdJZj1cIiFocmVmXCJcbiAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgIGNsYXNzPVwiZWNsLW1lbnVfX2xpbmtcIlxuICAgIFtjbGFzcy5lY2wtbWVudV9fbGluay0tY3VycmVudF09XCJpc0N1cnJlbnRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwib25JdGVtRm9jdXMoJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cbjxidXR0b25cbiAgICBlY2xCdXR0b25cbiAgICAqbmdJZj1cImhhc0NoaWxkcmVuXCJcbiAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgY2xhc3M9XCJlY2wtbWVudV9fYnV0dG9uLWNhcmV0XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBhcmlhLWxhYmVsPVwiQWNjZXNzIGl0ZW0ncyBjaGlsZHJlblwiXG4gICAgKGNsaWNrKT1cIm9uSXRlbUNhcmV0Q2xpY2soJGV2ZW50KVwiPlxuICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInhzXCIgdHJhbnNmb3JtPVwicm90YXRlLTE4MFwiIGNsYXNzPVwiZWNsLWJ1dHRvbl9faWNvblwiPjwvZWNsLWljb24+XG48L2J1dHRvbj5cbjxuZy1jb250ZW50IHNlbGVjdD1cImVjbC1tZW51LW1lZ2FcIj48L25nLWNvbnRlbnQ+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFDSCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsc0JBQXNCLEdBQ3pCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQWFoRixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBZXRELElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxF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QUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFJSCwyQkFBMkI7c0JBRjlCLFdBQVc7dUJBQUMsb0NBQW9DOztzQkFDaEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBTTdCLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQXdDakMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU10QyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQXBwbGljYXRpb25SZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBFY2xNZW51SXRlbUNhcmV0RXZlbnQsXG4gICAgRWNsTWVudUl0ZW1Gb2N1c0V2ZW50LFxuICAgIEVjbE1lbnVJdGVtSG92ZXJFdmVudCxcbiAgICBFY2xNZW51SXRlbUhvdmVyT3V0RXZlbnQsXG4gICAgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCxcbn0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsTWVudU1lZ2FDb21wb25lbnQgfSBmcm9tICcuLi9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EuY29tcG9uZW50JztcblxuY29uc3QgZW51bSBDb2xUcmlnZ2VyIHtcbiAgICBDT0wxX1RSSUdHRVIgPSA1LFxuICAgIENPTDJfVFJJR0dFUiA9IDksXG4gICAgQ09MM19UUklHR0VSID0gMTMsXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW1lbnUtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEVjbE1lbnVJdGVtLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSByb3V0ZXJMaW5rOiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgaHJlZjogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgdGFyZ2V0OiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBpc0N1cnJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgaXNIb3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICBpc0Z1bGwgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtbWVudV9faXRlbScpLFxuICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnQgPyAnZWNsLW1lbnVfX2l0ZW0tLWN1cnJlbnQnIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPyAnZWNsLW1lbnVfX2l0ZW0tLWV4cGFuZGVkJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5nZXRDbGFzc0RlcGVuZGluZ0NoaWxkcmVuQ250KCksXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEVjbE1lbnVNZWdhQ29tcG9uZW50KSkgc3VibWVudTogRWNsTWVudU1lZ2FDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnbWVudUxpbmsnKSBtZW51TGluazogRWxlbWVudFJlZjtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1DYXJldCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1DYXJldEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUhvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbUhvdmVyRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVJdGVtSG92ZXJPdXQgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtSG92ZXJPdXRFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudU1lZ2FJdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbVNlbGVjdEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbUZvY3VzRXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1tZW51X19pdGVtLS1oYXMtY2hpbGRyZW4nKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhhc3BvcHVwJylcbiAgICBnZXQgaGFzRWNsQ2hpbGRyZW5EYXRhQXR0cmlidXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDaGlsZHJlbiB8fCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKVxuICAgIGdldCBpc0FyaWFFeHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQ2hpbGRyZW4gPyB0aGlzLmlzSG92ZXJlZCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnN1Ym1lbnU7XG4gICAgfVxuXG4gICAgZ2V0IGNoaWxkcmVuKCk6IEFycmF5PEVjbE1lbnVJdGVtPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0NoaWxkcmVuID8gdGhpcy5zdWJtZW51LmVjbE1lbnVNZWdhSXRlbXMudG9BcnJheSgpIDogW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgYXJmOiBBcHBsaWNhdGlvblJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG9uSXRlbUZvY3VzKGV2dDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtRm9jdXMubmV4dChuZXcgRWNsTWVudUl0ZW1Gb2N1c0V2ZW50KHRoaXMsIGV2dCkpO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQodGhpcywgZXZ0KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbUNhcmV0Q2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1DYXJldC5uZXh0KG5ldyBFY2xNZW51SXRlbUNhcmV0RXZlbnQodGhpcywgZXZ0KSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicsIFsnJGV2ZW50J10pXG4gICAgb25JdGVtTW91c2VFbnRlcihldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbUhvdmVyLm5leHQobmV3IEVjbE1lbnVJdGVtSG92ZXJFdmVudCh0aGlzLCBldnQpKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcbiAgICBvbkl0ZW1Nb3VzZUxlYXZlKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtSG92ZXJPdXQubmV4dChuZXcgRWNsTWVudUl0ZW1Ib3Zlck91dEV2ZW50KHRoaXMsIGV2dCkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3VibWVudSkge1xuICAgICAgICAgICAgdGhpcy5zdWJtZW51Lm1lbnVJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGl0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51TWVnYUl0ZW1TZWxlY3QubmV4dChuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudChpdC5tZW51SXRlbSwgaXQuZG9tRXZlbnQpKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5oYXNTdWJtZW51QW55U2VsZWN0aW9ucygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGNoZWNrTWVudUl0ZW0obWF4TGluZXM6IG51bWJlciwgaXNNb2JpbGVCcmVha3BvaW50OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChtYXhMaW5lcyA8IDEpIHJldHVybjtcblxuICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgY3VycmVudExpbmsgPSB0aGlzLm1lbnVMaW5rLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChpc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIGN1cnJlbnRMaW5rLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudEl0ZW0sICdhbGlnbkl0ZW1zJywgJ2ZsZXgtc3RhcnQnKTtcbiAgICAgICAgY29uc3QgbGlua1N0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoY3VycmVudExpbmspO1xuXG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMuZ2V0TWVudUl0ZW1MaW5rTWF4SGVpZ2h0KGxpbmtTdHlsZSwgbWF4TGluZXMpO1xuXG4gICAgICAgIGlmIChjdXJyZW50TGluay5vZmZzZXRIZWlnaHQgPiBtYXhIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlTWVudUl0ZW1MaW5rV2lkdGgoY3VycmVudExpbmssIG1heExpbmVzLCBsaW5rU3R5bGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoY3VycmVudEl0ZW0sICdhbGlnbkl0ZW1zJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNZW51SXRlbUxpbmtNYXhIZWlnaHQobGlua1N0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLCBtYXhMaW5lczogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGxpbmtTdHlsZS5saW5lSGVpZ2h0LCAxMCkgKiBtYXhMaW5lcyArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nVG9wLCAxMCkgKyBwYXJzZUludChsaW5rU3R5bGUucGFkZGluZ0JvdHRvbSwgMTApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlTWVudUl0ZW1MaW5rV2lkdGgoY3VycmVudExpbms6IGFueSwgbWF4TGluZXM6IG51bWJlciwgbGlua1N0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudExpbmssICd3aGl0ZS1zcGFjZScsICdub3dyYXAnKTtcbiAgICAgICAgY29uc3QgbGlua1dpZHRoID0gY3VycmVudExpbmsub2Zmc2V0V2lkdGg7XG4gICAgICAgIGlmIChtYXhMaW5lcyA9PT0gMSkge1xuICAgICAgICAgICAgY3VycmVudExpbmsuc3R5bGUud2lkdGggPSBgJHtsaW5rV2lkdGggKyBwYXJzZUludChsaW5rU3R5bGUucGFkZGluZ0xlZnQsIDEwKSArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nUmlnaHQsIDEwKX1weGA7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGN1cnJlbnRMaW5rLCAnd2hpdGUtc3BhY2UnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0U2l6ZSA9IGN1cnJlbnRMaW5rLnRleHQubGVuZ3RoO1xuICAgICAgICBjb25zdCBsZXR0ZXJXaWR0aCA9IE1hdGguY2VpbChsaW5rV2lkdGggLyB0ZXh0U2l6ZSk7XG4gICAgICAgIGNvbnN0IHdvcmRzQXJyYXk6IFtzdHJpbmddID0gY3VycmVudExpbmsudGV4dC50cmltKCkuc3BsaXQoJyAnKTtcbiAgICAgICAgY29uc3QgZ29hbFdpZHRoID0gTWF0aC5jZWlsKGxpbmtXaWR0aCAvIG1heExpbmVzKTtcbiAgICAgICAgY29uc3QgZmlyc3RXb3JkID0gd29yZHNBcnJheVswXTtcbiAgICAgICAgbGV0IGNudCA9IDE7XG4gICAgICAgIGxldCB3b3JkV2lkdGggPSBNYXRoLmNlaWwoKGZpcnN0V29yZC5sZW5ndGggKyAxKSAqIGxldHRlcldpZHRoKTtcbiAgICAgICAgd2hpbGUgKHdvcmRXaWR0aCA8IGdvYWxXaWR0aCkge1xuICAgICAgICAgICAgd29yZFdpZHRoICs9IE1hdGguY2VpbCgod29yZHNBcnJheVtjbnRdLmxlbmd0aCArIDEpICogbGV0dGVyV2lkdGgpO1xuICAgICAgICAgICAgY250Kys7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudExpbmsuc3R5bGUud2lkdGggPSBgJHt3b3JkV2lkdGggKyBwYXJzZUludChsaW5rU3R5bGUucGFkZGluZ0xlZnQsIDEwKSArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nUmlnaHQsIDEwKX1weGA7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoY3VycmVudExpbmssICd3aGl0ZS1zcGFjZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2xhc3NEZXBlbmRpbmdDaGlsZHJlbkNudCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmxlbmd0aCA8IENvbFRyaWdnZXIuQ09MMV9UUklHR0VSKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tY29sMSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmxlbmd0aCA8IENvbFRyaWdnZXIuQ09MMl9UUklHR0VSKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tY29sMic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmxlbmd0aCA8IENvbFRyaWdnZXIuQ09MM19UUklHR0VSKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tY29sMyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGdWxsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VjbC1tZW51X19pdGVtLS1mdWxsJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNTdWJtZW51QW55U2VsZWN0aW9ucygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VibWVudSAmJiAhIXRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmZpbmQoKGl0KSA9PiBpdC5pc0N1cnJlbnQpO1xuICAgIH1cbn1cbiIsIjxhXG4gICAgI21lbnVMaW5rXG4gICAgKm5nSWY9XCJocmVmXCJcbiAgICBbaHJlZl09XCJocmVmXCJcbiAgICBbdGFyZ2V0XT1cInRhcmdldFwiXG4gICAgY2xhc3M9XCJlY2wtbWVudV9fbGlua1wiXG4gICAgW2NsYXNzLmVjbC1tZW51X19saW5rLS1jdXJyZW50XT1cImlzQ3VycmVudFwiXG4gICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgIChmb2N1cyk9XCJvbkl0ZW1Gb2N1cygkZXZlbnQpXCI+XG4gICAge3sgbGFiZWwgfX1cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9hPlxuPGFcbiAgICAjbWVudUxpbmtcbiAgICAqbmdJZj1cIiFocmVmXCJcbiAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgIGNsYXNzPVwiZWNsLW1lbnVfX2xpbmtcIlxuICAgIFtjbGFzcy5lY2wtbWVudV9fbGluay0tY3VycmVudF09XCJpc0N1cnJlbnRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwib25JdGVtRm9jdXMoJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cbjxidXR0b25cbiAgICBlY2xCdXR0b25cbiAgICAqbmdJZj1cImhhc0NoaWxkcmVuXCJcbiAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgY2xhc3M9XCJlY2wtbWVudV9fYnV0dG9uLWNhcmV0XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBhcmlhLWxhYmVsPVwiQWNjZXNzIGl0ZW0ncyBjaGlsZHJlblwiXG4gICAgKGNsaWNrKT1cIm9uSXRlbUNhcmV0Q2xpY2soJGV2ZW50KVwiPlxuICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInhzXCIgdHJhbnNmb3JtPVwicm90YXRlLTE4MFwiIGNsYXNzPVwiZWNsLWJ1dHRvbl9faWNvblwiPjwvZWNsLWljb24+XG48L2J1dHRvbj5cbjxuZy1jb250ZW50IHNlbGVjdD1cImVjbC1tZW51LW1lZ2FcIj48L25nLWNvbnRlbnQ+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -29,6 +29,7 @@ export class EclMenuComponent extends ECLBaseDirective {
29
29
  this.maxLines = 0;
30
30
  this.menuItemSelect = new EventEmitter();
31
31
  this.isHamburgerMenuOpened = false;
32
+ this.role = 'navigation';
32
33
  this.isMobileBreakpoint = false;
33
34
  this.isMenuHidden = false;
34
35
  this.hasOverflow = false;
@@ -420,16 +421,16 @@ export class EclMenuComponent extends ECLBaseDirective {
420
421
  this.isMobileBreakpoint = result.matches;
421
422
  });
422
423
  }
423
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EclMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.IterableDiffers }, { token: i1.BreakpointObserver }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
424
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EclMenuComponent, selector: "ecl-menu", inputs: { group: "group", maxLines: "maxLines" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "keydown": "keyEvent($event)", "window:resize": "onResize()" }, properties: { "class": "this.cssClasses", "attr.aria-expanded": "this.isHamburgerMenuOpened", "class.ecl-menu--forced-mobile": "this.isMobileBreakpoint", "class.ecl-menu--forced-close": "this.isMenuHidden" } }, queries: [{ propertyName: "eclRootMenuItems", predicate: EclMenuItemComponent }], viewQueries: [{ propertyName: "innerSection", first: true, predicate: ["innerSection"], descendants: true }, { propertyName: "itemsList", first: true, predicate: ["itemsList"], descendants: true }, { propertyName: "btnPrevious", first: true, predicate: ["btnPrevious"], descendants: true }, { propertyName: "btnNext", first: true, predicate: ["btnNext"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <a eclLink href=\"#\" variant=\"standalone\" class=\"ecl-menu__open\" (click)=\"onMenuOpenClick($event)\">\n <ecl-icon icon=\"hamburger\" size=\"s\"></ecl-icon> {{ 'ecl.menu.MENU' | translate }}\n </a>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"text\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <ecl-icon icon=\"close-filled\" size=\"s\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"text\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isCurrentItemVisible\"\n [style.display]=\"isShowPrevBtn ? 'block' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isCurrentItemVisible\"\n [style.display]=\"isShowNextBtn ? 'block' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList>\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "directive", type: i3.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i4.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i5.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
424
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.IterableDiffers }, { token: i1.BreakpointObserver }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
425
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.7", type: EclMenuComponent, selector: "ecl-menu", inputs: { group: "group", maxLines: "maxLines" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "keydown": "keyEvent($event)", "window:resize": "onResize()" }, properties: { "class": "this.cssClasses", "attr.aria-expanded": "this.isHamburgerMenuOpened", "attr.role": "this.role", "class.ecl-menu--forced-mobile": "this.isMobileBreakpoint", "class.ecl-menu--forced-close": "this.isMenuHidden" } }, queries: [{ propertyName: "eclRootMenuItems", predicate: EclMenuItemComponent }], viewQueries: [{ propertyName: "innerSection", first: true, predicate: ["innerSection"], descendants: true }, { propertyName: "itemsList", first: true, predicate: ["itemsList"], descendants: true }, { propertyName: "btnPrevious", first: true, predicate: ["btnPrevious"], descendants: true }, { propertyName: "btnNext", first: true, predicate: ["btnNext"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <a eclLink href=\"#\" variant=\"standalone\" class=\"ecl-menu__open\" (click)=\"onMenuOpenClick($event)\">\n <ecl-icon icon=\"hamburger\" size=\"s\"></ecl-icon> {{ 'ecl.menu.MENU' | translate }}\n </a>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"text\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <ecl-icon icon=\"close-filled\" size=\"s\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"text\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isCurrentItemVisible\"\n [style.display]=\"isShowPrevBtn ? 'block' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isCurrentItemVisible\"\n [style.display]=\"isShowNextBtn ? 'block' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList>\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "directive", type: i3.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i4.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i5.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
425
426
  }
426
427
  __decorate([
427
428
  coerceNumber
428
429
  ], EclMenuComponent.prototype, "maxLines", void 0);
429
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EclMenuComponent, decorators: [{
430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuComponent, decorators: [{
430
431
  type: Component,
431
432
  args: [{ selector: 'ecl-menu', template: "<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <a eclLink href=\"#\" variant=\"standalone\" class=\"ecl-menu__open\" (click)=\"onMenuOpenClick($event)\">\n <ecl-icon icon=\"hamburger\" size=\"s\"></ecl-icon> {{ 'ecl.menu.MENU' | translate }}\n </a>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"text\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <ecl-icon icon=\"close-filled\" size=\"s\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"text\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isCurrentItemVisible\"\n [style.display]=\"isShowPrevBtn ? 'block' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isCurrentItemVisible\"\n [style.display]=\"isShowNextBtn ? 'block' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList>\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n", styles: [":host{display:block}\n"] }]
432
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.IterableDiffers }, { type: i1.BreakpointObserver }, { type: i0.Renderer2 }]; }, propDecorators: { group: [{
433
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.IterableDiffers }, { type: i1.BreakpointObserver }, { type: i0.Renderer2 }], propDecorators: { group: [{
433
434
  type: Input
434
435
  }], maxLines: [{
435
436
  type: Input
@@ -456,6 +457,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4",
456
457
  }], isHamburgerMenuOpened: [{
457
458
  type: HostBinding,
458
459
  args: ['attr.aria-expanded']
460
+ }], role: [{
461
+ type: HostBinding,
462
+ args: ['attr.role']
459
463
  }], isMobileBreakpoint: [{
460
464
  type: HostBinding,
461
465
  args: ['class.ecl-menu--forced-mobile']
@@ -469,4 +473,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4",
469
473
  type: HostListener,
470
474
  args: ['window:resize']
471
475
  }] } });
472
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1tZW51L2VjbC1tZW51L2VjbC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS9lY2wtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFzQixXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBR0gsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBTUwsTUFBTSxFQUdOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBYyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUF1RSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQWFqRSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBWWxELElBQ0ksVUFBVTtRQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxD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dUI7a0dBRjNCLGdCQUFnQjtrQkFYNUIsU0FBUzsrQkFDSSxVQUFVO3dMQVdYLEtBQUs7c0JBQWIsS0FBSztnQkFDaUIsUUFBUTtzQkFBaEIsS0FBSztnQkFFbUIsZ0JBQWdCO3NCQUF0RCxlQUFlO3VCQUFDLG9CQUFvQjtnQkFDVixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0QsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNJLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDRixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBRVYsY0FBYztzQkFBdkIsTUFBTTtnQkFHSCxVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFLZSxxQkFBcUI7c0JBQXZELFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNhLGtCQUFrQjtzQkFBL0QsV0FBVzt1QkFBQywrQkFBK0I7Z0JBQ0MsWUFBWTtzQkFBeEQsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBOEIzQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVuQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlQ2hhbmdlcyxcbiAgICBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlTnVtYmVyIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCAqIGFzIEhhbW1lciBmcm9tICdoYW1tZXJqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2VjbC1tZW51LWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9lY2wtYnV0dG9uJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtQ2FyZXRFdmVudCwgRWNsTWVudUl0ZW1Gb2N1c0V2ZW50LCBFY2xNZW51SXRlbUhvdmVyRXZlbnQsIEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQgfSBmcm9tICcuLi9jb21tb24vZWNsLW1lbnUtaXRlbS5ldmVudCc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTWVudUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgZ3JvdXA6IHN0cmluZyA9ICcxJztcbiAgICBAY29lcmNlTnVtYmVyIEBJbnB1dCgpIG1heExpbmVzID0gMDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRWNsTWVudUl0ZW1Db21wb25lbnQpIGVjbFJvb3RNZW51SXRlbXM6IFF1ZXJ5TGlzdDxFY2xNZW51SXRlbUNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnaW5uZXJTZWN0aW9uJykgaW5uZXJTZWN0aW9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zTGlzdCcpIGl0ZW1zTGlzdDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdidG5QcmV2aW91cycpIGJ0blByZXZpb3VzOiBFY2xCdXR0b25Db21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnYnRuTmV4dCcpIGJ0bk5leHQ6IEVjbEJ1dHRvbkNvbXBvbmVudDtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1lbnUnKSwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJywgYGVjbC1tZW51LS1ncm91cCR7dGhpcy5ncm91cH1gXS5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKSBpc0hhbWJ1cmdlck1lbnVPcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1tZW51LS1mb3JjZWQtbW9iaWxlJykgaXNNb2JpbGVCcmVha3BvaW50OiBib29sZWFuID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudS0tZm9yY2VkLWNsb3NlJykgaXNNZW51SGlkZGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBoYXNPdmVyZmxvdyA9IGZhbHNlO1xuICAgIGlzU2hvd1ByZXZCdG4gPSBmYWxzZTtcbiAgICBpc1Nob3dOZXh0QnRuID0gZmFsc2U7XG4gICAgaXNDdXJyZW50SXRlbVZpc2libGUgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xNZW51SXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBkaWZmOiBJdGVyYWJsZUNoYW5nZXM8RWNsTWVudUl0ZW1Db21wb25lbnQ+O1xuICAgIHByaXZhdGUgdG90YWxJdGVtc1dpZHRoID0gMDtcbiAgICBwcml2YXRlIG9mZnNldExlZnQgPSAwO1xuICAgIHByaXZhdGUgZGlyZWN0aW9uID0gJ2x0cic7XG4gICAgcHJpdmF0ZSBsYXN0VmlzaWJsZUl0ZW06IEVjbE1lbnVJdGVtQ29tcG9uZW50O1xuICAgIHByaXZhdGUgY3VycmVudEl0ZW06IEVjbE1lbnVJdGVtO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFtbWVydGltZSA9IG5ldyBIYW1tZXIuZGVmYXVsdChkb2N1bWVudCwgeyBpbnB1dENsYXNzOiBIYW1tZXIuVG91Y2hJbnB1dCB9KTtcbiAgICBwcml2YXRlIHJlc2l6ZVRpbWVyOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBUSU1FT1VUX0lOVEVSVkFMID0gMTUwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgICAgICBwcml2YXRlIGNka0JyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZChbXSkuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAga2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICAgICAgdGhpcy5oaWRlTWVudSgpO1xuICAgICAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICAgIG9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7XG4gICAgICAgIHRoaXMucmVzaXplVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZWNsLW1lbnUtLXRyYW5zaXRpb24nKTtcbiAgICAgICAgICAgIHRoaXMudG90YWxJdGVtc1dpZHRoID0gMDtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51SXRlbXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51T3ZlcmZsb3coKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZWNsLW1lbnUtLXRyYW5zaXRpb24nKTtcbiAgICAgICAgfSwgdGhpcy5USU1FT1VUX0lOVEVSVkFMKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlU3dpcGVHZXN0dXJlcygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlUm9vdE1lbnVJdGVtc0NoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVyKTtcbiAgICAgICAgdGhpcy5yZXNpemVUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja01lbnVJdGVtcygpO1xuICAgICAgICAgICAgdGhpcy5jaGVja01lbnVPdmVyZmxvdygpO1xuICAgICAgICB9LCB0aGlzLlRJTUVPVVRfSU5URVJWQUwpO1xuICAgIH1cblxuICAgIG9uU3dpcGVMZWZ0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU3dpcGVSaWdodCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25PdmVybGF5Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG4gICAgfVxuXG4gICAgb25NZW51T3BlbkNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5IYW1idXJnZXJNZW51KCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uTWVudUNsb3NlQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG4gICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbk1lbnVCYWNrQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5oYW1tZXJ0aW1lLm9mZignc3dpcGVsZWZ0Jyk7XG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vZmYoJ3N3aXBlcmlnaHQnKTtcbiAgICB9XG5cbiAgICBvblByZXZCdG5DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vZmZzZXRMZWZ0ID0gMDtcbiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgICAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5zdHlsZS5yaWdodCA9ICcwJztcbiAgICAgICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9ICdhdXRvJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9ICcwJztcbiAgICAgICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzU2hvd1ByZXZCdG4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1Nob3dOZXh0QnRuID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnJlZnJlc2hEaXNwbGF5KCk7XG4gICAgfVxuXG4gICAgb25OZXh0QnRuQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93UHJldkJ0biA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNTaG93TmV4dEJ0biA9IGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd05leHRTbGlkZVJ0bCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaG93TmV4dFNsaWRlTHRyKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlZnJlc2hEaXNwbGF5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TmV4dFNsaWRlTHRyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBidG5PZmZzZXRXaWR0aCA9IHRoaXMuYnRuTmV4dC5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICB0aGlzLm9mZnNldExlZnQgPVxuICAgICAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0uZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC1cbiAgICAgICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtXG4gICAgICAgICAgICBidG5PZmZzZXRXaWR0aDtcblxuICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgLSR7dGhpcy5vZmZzZXRMZWZ0fXB4YDtcbiAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5zdHlsZS5yaWdodCA9ICdhdXRvJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dOZXh0U2xpZGVSdGwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJ0bk9mZnNldFdpZHRoID0gdGhpcy5idG5OZXh0LmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9XG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IC1cbiAgICAgICAgICAgIHRoaXMubGFzdFZpc2libGVJdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgLVxuICAgICAgICAgICAgYnRuT2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5zdHlsZS5yaWdodCA9IGAtJHt0aGlzLm9mZnNldExlZnR9cHhgO1xuICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnYXV0byc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoRGlzcGxheSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uY2hlY2tNZW51SXRlbSh0aGlzLm1heExpbmVzLCB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCk7XG4gICAgICAgICAgICBpdGVtLmlzVmlzaWJsZSA9ICFpdGVtLmlzVmlzaWJsZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja01lbnVPdmVyZmxvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYXNPdmVyZmxvdyA9IHRoaXMudG90YWxJdGVtc1dpZHRoID4gdGhpcy5pbm5lclNlY3Rpb24ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgaWYgKCF0aGlzLmhhc092ZXJmbG93IHx8IHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0T3ZlcmZsb3dWYWx1ZXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hlY2tDdXJyZW50SXRlbSgpO1xuICAgICAgICB0aGlzLnJlc2V0VmlzaWJpbGl0eUluZGljYXRvcigpO1xuXG4gICAgICAgIGlmICh0aGlzLm9mZnNldExlZnQgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMubWFuYWdlT3ZlcmZsb3dFbmQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWFuYWdlT3ZlcmZsb3dCZWdpbm5pbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFuYWdlT3ZlcmZsb3dCZWdpbm5pbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IDw9IHRoaXMuaW5uZXJTZWN0aW9uLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGVsKSA9PiAoZWwuaXNWaXNpYmxlID0gdHJ1ZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zXG4gICAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCA+PSB0aGlzLmlubmVyU2VjdGlvbi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGVsKSA9PiAoZWwuaXNWaXNpYmxlID0gdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYW5hZ2VPdmVyZmxvd0VuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Nob3dOZXh0QnRuID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZWNsUm9vdE1lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCA8IHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RWaXNpYmxlSXRlbSA9IGl0ZW07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpdGVtLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5lY2xSb290TWVudUl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCA+IHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaXRlbS5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldFZpc2liaWxpdHlJbmRpY2F0b3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5pc1Zpc2libGUgPSBmYWxzZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRPdmVyZmxvd1ZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Nob3dQcmV2QnRuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNTaG93TmV4dEJ0biA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhhc092ZXJmbG93ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9ICcwJztcbiAgICAgICAgdGhpcy5vZmZzZXRMZWZ0ID0gMDtcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zV2lkdGggPSAwO1xuICAgICAgICB0aGlzLmxhc3RWaXNpYmxlSXRlbSA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0N1cnJlbnRJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtID0gdGhpcy5lY2xSb290TWVudUl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaXNDdXJyZW50KTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50SXRlbVZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ3VycmVudEl0ZW1WaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrTWVudUl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5jaGVja01lbnVJdGVtKHRoaXMubWF4TGluZXMsIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KTtcbiAgICAgICAgICAgIHRoaXMudG90YWxJdGVtc1dpZHRoICs9IGl0ZW0uZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc01lbnVFeHBhbmRlZEluTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQgJiYgdGhpcy5pc0FueVJvb3RNZW51SXRlbUV4cGFuZGVkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FueVJvb3RNZW51SXRlbUV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lY2xSb290TWVudUl0ZW1zLnNvbWUoKGl0ZW0pID0+IGl0ZW0uaXNFeHBhbmRlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVSb290TWVudUl0ZW1zQ2hhbmdlc09ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxRdWVyeUxpc3Q8RWNsTWVudUl0ZW1Db21wb25lbnQ+PiB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLmVjbFJvb3RNZW51SXRlbXMpLnBpcGUobWVyZ2VXaXRoKHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5jaGFuZ2VzKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTWVudUl0ZW1DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsUm9vdE1lbnVJdGVtcyBhcyBhbnkpO1xuXG4gICAgICAgIGlmICghdGhpcy5kaWZmKSB7XG4gICAgICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgocm9vdEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhyb290SXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlmZi5mb3JFYWNoQWRkZWRJdGVtKChjaGFuZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhjaGFuZ2UuaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29ubmVjdE1lbnVJdGVtRXZlbnRzKGl0ZW06IEVjbE1lbnVJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1TZWxlY3QucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtU2VsZWN0ZWQoZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1Ib3Zlci5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1Ib3ZlcmVkKGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtSG92ZXJPdXQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtSG92ZXJlZE91dChldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51SXRlbUNhcmV0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUNhcmV0KGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVNZWdhSXRlbVNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25NZW51TWVnYUl0ZW1TZWxlY3RlZChpdGVtLCBldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51SXRlbUZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUZvY3VzZWQoaXRlbSwgZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUZvY3VzZWQoaXRlbTogRWNsTWVudUl0ZW0sIGV2dDogRWNsTWVudUl0ZW1Gb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFJvb3RNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcbiAgICAgICAgaWYgKHJlcXVlc3RlZFJvb3RNZW51SXRlbS5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51QnV0T25lSXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlSG92ZXJGcm9tQWxsSXRlbXMoKTtcbiAgICAgICAgaXRlbS5pc0hvdmVyZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnNob3dNZW51KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbVNlbGVjdGVkKGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1ZXN0ZWRSb290TWVudUl0ZW06IEVjbE1lbnVJdGVtID0gZXZ0Lm1lbnVJdGVtO1xuXG4gICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsUm9vdE1lbnVJdGVtcygpO1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsU3VibWVudXNJdGVtcygpO1xuICAgICAgICB0aGlzLnNlbGVjdE1lbnVJdGVtKHJlcXVlc3RlZFJvb3RNZW51SXRlbSk7XG4gICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG5cbiAgICAgICAgdGhpcy5zZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1Ib3ZlcmVkKGV2dDogRWNsTWVudUl0ZW1Ib3ZlckV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFJvb3RNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcbiAgICAgICAgaWYgKHJlcXVlc3RlZFJvb3RNZW51SXRlbS5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrTWVnYU1lbnUocmVxdWVzdGVkUm9vdE1lbnVJdGVtIGFzIEVjbE1lbnVJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcXVlc3RlZFJvb3RNZW51SXRlbS5pc0hvdmVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51QnV0T25lSXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICAgICAgdGhpcy5zaG93TWVudSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja01lZ2FNZW51KG1lbnVJdGVtOiBFY2xNZW51SXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAobWVudUl0ZW0uaXNGdWxsKSB7XG4gICAgICAgICAgICBpZiAobWVudUl0ZW0uc3VibWVudS5pc1J0bCkge1xuICAgICAgICAgICAgICAgIG1lbnVJdGVtLnN1Ym1lbnUub2Zmc2V0UmlnaHQgPSB0aGlzLm9mZnNldExlZnQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1lbnVJdGVtLnN1Ym1lbnUub2Zmc2V0TGVmdCA9IHRoaXMub2Zmc2V0TGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoZWNrRW5vdWdoU3BhY2VGb3JNZWdhTWVudShtZW51SXRlbSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0Vub3VnaFNwYWNlRm9yTWVnYU1lbnUobWVudUl0ZW06IEVjbE1lbnVJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1lZ2FCb3VuZGluZyA9IG1lbnVJdGVtLnN1Ym1lbnUuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyQm91bmRpbmcgPSB0aGlzLmlubmVyU2VjdGlvbi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBtZW51SXRlbUJvdW5kaW5nID0gbWVudUl0ZW0uZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCBtZWdhV2lkdGggPSBtZWdhQm91bmRpbmcud2lkdGg7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyQm91bmRpbmcud2lkdGg7XG4gICAgICAgIGNvbnN0IG1lbnVJdGVtUG9zaXRpb24gPSBtZW51SXRlbUJvdW5kaW5nLmxlZnQgLSBjb250YWluZXJCb3VuZGluZy5sZWZ0O1xuXG4gICAgICAgIGlmIChtZW51SXRlbVBvc2l0aW9uICsgbWVnYVdpZHRoID4gY29udGFpbmVyV2lkdGgpIHtcbiAgICAgICAgICAgIG1lbnVJdGVtLnN1Ym1lbnUuaXNSdGwgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWVudUl0ZW0uc3VibWVudS5pc1J0bCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUhvdmVyZWRPdXQoZXZ0OiBFY2xNZW51SXRlbUhvdmVyRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtQ2FyZXQoZXZ0OiBFY2xNZW51SXRlbUNhcmV0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkUm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcblxuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKHJlcXVlc3RlZFJvb3RNZW51SXRlbSk7XG4gICAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWRGb3JNZW51SXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25NZW51TWVnYUl0ZW1TZWxlY3RlZChyb290TWVudUl0ZW06IEVjbE1lbnVJdGVtLCBldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkU3VibWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG5cbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxSb290TWVudUl0ZW1zKCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxTdWJtZW51c0l0ZW1zKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0ocm9vdE1lbnVJdGVtKTtcbiAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbShyZXF1ZXN0ZWRTdWJtZW51SXRlbSk7XG4gICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG5cbiAgICAgICAgdGhpcy5zZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQpO1xuXG4gICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0QWxsUm9vdE1lbnVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXNlbGVjdE1lbnVJdGVtcyh0aGlzLmVjbFJvb3RNZW51SXRlbXMudG9BcnJheSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0QWxsU3VibWVudXNJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKHJvb3RJdGVtKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRlc2VsZWN0TWVudUl0ZW1zKHJvb3RJdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdE1lbnVJdGVtcyhpdGVtczogQXJyYXk8RWNsTWVudUl0ZW0+KTogdm9pZCB7XG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5pc0N1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RNZW51SXRlbShpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpdGVtLmlzQ3VycmVudCA9IHRydWU7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW0gPSBpdGVtO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZU1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNNZW51SGlkZGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTWVudUhpZGRlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VSb290TWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICBpdC5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZVJvb3RNZW51QnV0T25lSXRlbShpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXNcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0KSA9PiBpdCAhPT0gaXRlbSlcbiAgICAgICAgICAgIC5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgICAgICAgICAgIGl0LmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpdC5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlSG92ZXJGcm9tQWxsSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgICAgICAgaXQuaXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRXhwYW5kZWRGb3JNZW51SXRlbShpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpdGVtLmlzRXhwYW5kZWQgPSAhaXRlbS5pc0V4cGFuZGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkhhbWJ1cmdlck1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNIYW1idXJnZXJNZW51T3BlbmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlSGFtYnVyZ2VyTWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0hhbWJ1cmdlck1lbnVPcGVuZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0Lm1lbnVJdGVtLCBldnQuZG9tRXZlbnQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVSb290TWVudUl0ZW1zQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbFJvb3RNZW51SXRlbXMgYXMgYW55KTtcbiAgICAgICAgdGhpcy5jcmVhdGVSb290TWVudUl0ZW1zQ2hhbmdlc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHRoaXMub25NZW51SXRlbUNoYW5nZXMuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlU3dpcGVHZXN0dXJlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYW1tZXJ0aW1lLm9uKCdzd2lwZWxlZnQnLCB0aGlzLm9uU3dpcGVMZWZ0LmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmhhbW1lcnRpbWUub24oJ3N3aXBlcmlnaHQnLCB0aGlzLm9uU3dpcGVSaWdodC5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZGtCcmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgICAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0LCBCcmVha3BvaW50cy5UYWJsZXQsIEJyZWFrcG9pbnRzLlNtYWxsXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ID0gcmVzdWx0Lm1hdGNoZXM7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZWNsLW1lbnVfX292ZXJsYXlcIiAoY2xpY2spPVwib25PdmVybGF5Q2xpY2soKVwiPjwvZGl2PlxuPGRpdiBjbGFzcz1cImVjbC1jb250YWluZXIgZWNsLW1lbnVfX2NvbnRhaW5lclwiPlxuICAgIDxhIGVjbExpbmsgaHJlZj1cIiNcIiB2YXJpYW50PVwic3RhbmRhbG9uZVwiIGNsYXNzPVwiZWNsLW1lbnVfX29wZW5cIiAoY2xpY2spPVwib25NZW51T3BlbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJoYW1idXJnZXJcIiBzaXplPVwic1wiPjwvZWNsLWljb24+IHt7ICdlY2wubWVudS5NRU5VJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYT5cblxuICAgIDxzZWN0aW9uXG4gICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2lubmVyXCJcbiAgICAgICAgI2lubmVyU2VjdGlvblxuICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2lubmVyLS1leHBhbmRlZF09XCJpc01lbnVFeHBhbmRlZEluTW9iaWxlXCJcbiAgICAgICAgW2NsYXNzLmVjbC1tZW51X19pbm5lci0taGFzLW92ZXJmbG93XT1cImhhc092ZXJmbG93XCI+XG4gICAgICAgIDxoZWFkZXIgY2xhc3M9XCJlY2wtbWVudV9faW5uZXItaGVhZGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZWNsQnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2Nsb3NlXCJcbiAgICAgICAgICAgICAgICBjb250YWluZXJTdHlsZUNsYXNzPVwiZWNsLW1lbnVfX2Nsb3NlLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUNsb3NlQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY2xvc2UtZmlsbGVkXCIgc2l6ZT1cInNcIj48L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGVjbEJ1dHRvbkxhYmVsPnt7ICdlY2wuY29tbW9uLkNMT1NFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWNsLW1lbnVfX3RpdGxlXCI+e3sgJ2VjbC5tZW51Lk1FTlUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG5cbiAgICAgICAgICAgIDxidXR0b24gZWNsQnV0dG9uIHZhcmlhbnQ9XCJ0ZXh0XCIgY2xhc3M9XCJlY2wtbWVudV9fYmFja1wiIChjbGljayk9XCJvbk1lbnVCYWNrQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInNcIiB0cmFuc2Zvcm09XCJyb3RhdGUtMjcwXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbD57eyAnZWNsLmNvbW1vbi5CQUNLJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZWNsQnV0dG9uXG4gICAgICAgICAgICAjYnRuUHJldmlvdXNcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19pdGVtIGVjbC1tZW51X19pdGVtcy1wcmV2aW91c1wiXG4gICAgICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2l0ZW0tLWN1cnJlbnRdPVwiaXNDdXJyZW50SXRlbVZpc2libGVcIlxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaXNTaG93UHJldkJ0biA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHJldkJ0bkNsaWNrKClcIj5cbiAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInNcIiB0cmFuc2Zvcm09XCJyb3RhdGUtMjcwXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGVjbEJ1dHRvbkxhYmVsIGNsYXNzPVwiZWNsLXUtc3Itb25seVwiPnt7ICdlY2wuY29tbW9uLlBSRVZJT1VTJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgI2J0bk5leHRcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19pdGVtIGVjbC1tZW51X19pdGVtcy1uZXh0XCJcbiAgICAgICAgICAgIFtjbGFzcy5lY2wtbWVudV9faXRlbS0tY3VycmVudF09XCIhaXNDdXJyZW50SXRlbVZpc2libGVcIlxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaXNTaG93TmV4dEJ0biA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmV4dEJ0bkNsaWNrKClcIj5cbiAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInNcIiB0cmFuc2Zvcm09XCJyb3RhdGUtOTBcIj48L2VjbC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gZWNsQnV0dG9uTGFiZWwgY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+e3sgJ2VjbC5jb21tb24uTkVYVCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8dWwgY2xhc3M9XCJlY2wtbWVudV9fbGlzdFwiICNpdGVtc0xpc3Q+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvdWw+XG4gICAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
476
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1tZW51L2VjbC1tZW51L2VjbC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS9lY2wtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFzQixXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBR0gsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBTUwsTUFBTSxFQUdOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBYyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUF1RSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQWFqRSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBWWxELElBQ0ksVUFBVTtRQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxD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REE7O0FEWjJCO0lBQXRCLFlBQVk7a0RBQXVCO2tHQUYzQixnQkFBZ0I7a0JBWDVCLFNBQVM7K0JBQ0ksVUFBVTtzS0FXWCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2lCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRW1CLGdCQUFnQjtzQkFBdEQsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBQ1YsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNELFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0YsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUVWLGNBQWM7c0JBQXZCLE1BQU07Z0JBR0gsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBS2UscUJBQXFCO3NCQUF2RCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDUCxJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBQ3NCLGtCQUFrQjtzQkFBL0QsV0FBVzt1QkFBQywrQkFBK0I7Z0JBQ0MsWUFBWTtzQkFBeEQsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBOEIzQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVuQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlQ2hhbmdlcyxcbiAgICBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlTnVtYmVyIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCAqIGFzIEhhbW1lciBmcm9tICdoYW1tZXJqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2VjbC1tZW51LWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9lY2wtYnV0dG9uJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtQ2FyZXRFdmVudCwgRWNsTWVudUl0ZW1Gb2N1c0V2ZW50LCBFY2xNZW51SXRlbUhvdmVyRXZlbnQsIEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQgfSBmcm9tICcuLi9jb21tb24vZWNsLW1lbnUtaXRlbS5ldmVudCc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTWVudUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgZ3JvdXA6IHN0cmluZyA9ICcxJztcbiAgICBAY29lcmNlTnVtYmVyIEBJbnB1dCgpIG1heExpbmVzID0gMDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRWNsTWVudUl0ZW1Db21wb25lbnQpIGVjbFJvb3RNZW51SXRlbXM6IFF1ZXJ5TGlzdDxFY2xNZW51SXRlbUNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnaW5uZXJTZWN0aW9uJykgaW5uZXJTZWN0aW9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zTGlzdCcpIGl0ZW1zTGlzdDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdidG5QcmV2aW91cycpIGJ0blByZXZpb3VzOiBFY2xCdXR0b25Db21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnYnRuTmV4dCcpIGJ0bk5leHQ6IEVjbEJ1dHRvbkNvbXBvbmVudDtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1lbnUnKSwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJywgYGVjbC1tZW51LS1ncm91cCR7dGhpcy5ncm91cH1gXS5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKSBpc0hhbWJ1cmdlck1lbnVPcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnbmF2aWdhdGlvbic7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudS0tZm9yY2VkLW1vYmlsZScpIGlzTW9iaWxlQnJlYWtwb2ludDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnUtLWZvcmNlZC1jbG9zZScpIGlzTWVudUhpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgaGFzT3ZlcmZsb3cgPSBmYWxzZTtcbiAgICBpc1Nob3dQcmV2QnRuID0gZmFsc2U7XG4gICAgaXNTaG93TmV4dEJ0biA9IGZhbHNlO1xuICAgIGlzQ3VycmVudEl0ZW1WaXNpYmxlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8RWNsTWVudUl0ZW1Db21wb25lbnQ+O1xuICAgIHByaXZhdGUgZGlmZjogSXRlcmFibGVDaGFuZ2VzPEVjbE1lbnVJdGVtQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIHRvdGFsSXRlbXNXaWR0aCA9IDA7XG4gICAgcHJpdmF0ZSBvZmZzZXRMZWZ0ID0gMDtcbiAgICBwcml2YXRlIGRpcmVjdGlvbiA9ICdsdHInO1xuICAgIHByaXZhdGUgbGFzdFZpc2libGVJdGVtOiBFY2xNZW51SXRlbUNvbXBvbmVudDtcbiAgICBwcml2YXRlIGN1cnJlbnRJdGVtOiBFY2xNZW51SXRlbTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbW1lcnRpbWUgPSBuZXcgSGFtbWVyLmRlZmF1bHQoZG9jdW1lbnQsIHsgaW5wdXRDbGFzczogSGFtbWVyLlRvdWNoSW5wdXQgfSk7XG4gICAgcHJpdmF0ZSByZXNpemVUaW1lcjogbnVtYmVyO1xuICAgIHByaXZhdGUgVElNRU9VVF9JTlRFUlZBTCA9IDE1MDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICAgICAgcHJpdmF0ZSBjZGtCcmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgICBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZXIpO1xuICAgICAgICB0aGlzLnJlc2l6ZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJyk7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXNXaWR0aCA9IDA7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTWVudUl0ZW1zKCk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTWVudU92ZXJmbG93KCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJyk7XG4gICAgICAgIH0sIHRoaXMuVElNRU9VVF9JTlRFUlZBTCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUJyZWFrcG9pbnRDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZVN3aXBlR2VzdHVyZXMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZVJvb3RNZW51SXRlbXNDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7XG4gICAgICAgIHRoaXMucmVzaXplVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51SXRlbXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51T3ZlcmZsb3coKTtcbiAgICAgICAgfSwgdGhpcy5USU1FT1VUX0lOVEVSVkFMKTtcbiAgICB9XG5cbiAgICBvblN3aXBlTGVmdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5IYW1idXJnZXJNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN3aXBlUmlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3ZlcmxheUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgIH1cblxuICAgIG9uTWVudU9wZW5DbGljayhldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbk1lbnVDbG9zZUNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25NZW51QmFja0NsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vZmYoJ3N3aXBlbGVmdCcpO1xuICAgICAgICB0aGlzLmhhbW1lcnRpbWUub2ZmKCdzd2lwZXJpZ2h0Jyk7XG4gICAgfVxuXG4gICAgb25QcmV2QnRuQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9IDA7XG4gICAgICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAnMCc7XG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnYXV0byc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1Nob3dQcmV2QnRuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNTaG93TmV4dEJ0biA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoRGlzcGxheSgpO1xuICAgIH1cblxuICAgIG9uTmV4dEJ0bkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd1ByZXZCdG4gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzU2hvd05leHRCdG4gPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dOZXh0U2xpZGVSdGwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd05leHRTbGlkZUx0cigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoRGlzcGxheSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd05leHRTbGlkZUx0cigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYnRuT2Zmc2V0V2lkdGggPSB0aGlzLmJ0bk5leHQuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgdGhpcy5vZmZzZXRMZWZ0ID1cbiAgICAgICAgICAgIHRoaXMubGFzdFZpc2libGVJdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtXG4gICAgICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgICAgICAgYnRuT2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gYC0ke3RoaXMub2Zmc2V0TGVmdH1weGA7XG4gICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TmV4dFNsaWRlUnRsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBidG5PZmZzZXRXaWR0aCA9IHRoaXMuYnRuTmV4dC5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICB0aGlzLm9mZnNldExlZnQgPVxuICAgICAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCAtXG4gICAgICAgICAgICB0aGlzLmxhc3RWaXNpYmxlSXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IC1cbiAgICAgICAgICAgIGJ0bk9mZnNldFdpZHRoO1xuXG4gICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSBgLSR7dGhpcy5vZmZzZXRMZWZ0fXB4YDtcbiAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVmcmVzaERpc3BsYXkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmNoZWNrTWVudUl0ZW0odGhpcy5tYXhMaW5lcywgdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgaXRlbS5pc1Zpc2libGUgPSAhaXRlbS5pc1Zpc2libGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tNZW51T3ZlcmZsb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzT3ZlcmZsb3cgPSB0aGlzLnRvdGFsSXRlbXNXaWR0aCA+IHRoaXMuaW5uZXJTZWN0aW9uLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGlmICghdGhpcy5oYXNPdmVyZmxvdyB8fCB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5yZXNldE92ZXJmbG93VmFsdWVzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoZWNrQ3VycmVudEl0ZW0oKTtcbiAgICAgICAgdGhpcy5yZXNldFZpc2liaWxpdHlJbmRpY2F0b3IoKTtcblxuICAgICAgICBpZiAodGhpcy5vZmZzZXRMZWZ0ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZU92ZXJmbG93RW5kKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZU92ZXJmbG93QmVnaW5uaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZU92ZXJmbG93QmVnaW5uaW5nKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCA8PSB0aGlzLmlubmVyU2VjdGlvbi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlbCkgPT4gKGVsLmlzVmlzaWJsZSA9IHRydWUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgPj0gdGhpcy5pbm5lclNlY3Rpb24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlbCkgPT4gKGVsLmlzVmlzaWJsZSA9IHRydWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFuYWdlT3ZlcmZsb3dFbmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93TmV4dEJ0biA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmVjbFJvb3RNZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgPCB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaXRlbS5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZWNsUm9vdE1lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgPiB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFZpc2libGVJdGVtID0gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGl0ZW0uaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRWaXNpYmlsaXR5SW5kaWNhdG9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uaXNWaXNpYmxlID0gZmFsc2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0T3ZlcmZsb3dWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93UHJldkJ0biA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzU2hvd05leHRCdG4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oYXNPdmVyZmxvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9IDA7XG4gICAgICAgIHRoaXMudG90YWxJdGVtc1dpZHRoID0gMDtcbiAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0gPSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tDdXJyZW50SXRlbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SXRlbSA9IHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlzQ3VycmVudCk7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbS5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ3VycmVudEl0ZW1WaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnRJdGVtVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja01lbnVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uY2hlY2tNZW51SXRlbSh0aGlzLm1heExpbmVzLCB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCk7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXNXaWR0aCArPSBpdGVtLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNZW51RXhwYW5kZWRJbk1vYmlsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ICYmIHRoaXMuaXNBbnlSb290TWVudUl0ZW1FeHBhbmRlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBbnlSb290TWVudUl0ZW1FeHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5zb21lKChpdGVtKSA9PiBpdGVtLmlzRXhwYW5kZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlUm9vdE1lbnVJdGVtc0NoYW5nZXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8UXVlcnlMaXN0PEVjbE1lbnVJdGVtQ29tcG9uZW50Pj4ge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5lY2xSb290TWVudUl0ZW1zKS5waXBlKG1lcmdlV2l0aCh0aGlzLmVjbFJvb3RNZW51SXRlbXMuY2hhbmdlcyksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lbnVJdGVtQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbFJvb3RNZW51SXRlbXMgYXMgYW55KTtcblxuICAgICAgICBpZiAoIXRoaXMuZGlmZikge1xuICAgICAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKHJvb3RJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0TWVudUl0ZW1FdmVudHMocm9vdEl0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpZmYuZm9yRWFjaEFkZGVkSXRlbSgoY2hhbmdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0TWVudUl0ZW1FdmVudHMoY2hhbmdlLml0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbm5lY3RNZW51SXRlbUV2ZW50cyhpdGVtOiBFY2xNZW51SXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpdGVtLm1lbnVJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbVNlbGVjdGVkKGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtSG92ZXIucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtSG92ZXJlZChldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51SXRlbUhvdmVyT3V0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUhvdmVyZWRPdXQoZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1DYXJldC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1DYXJldChldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51TWVnYUl0ZW1TZWxlY3QucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uTWVudU1lZ2FJdGVtU2VsZWN0ZWQoaXRlbSwgZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1Gb2N1cy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1Gb2N1c2VkKGl0ZW0sIGV2dCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1Gb2N1c2VkKGl0ZW06IEVjbE1lbnVJdGVtLCBldnQ6IEVjbE1lbnVJdGVtRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1ZXN0ZWRSb290TWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG4gICAgICAgIGlmIChyZXF1ZXN0ZWRSb290TWVudUl0ZW0uaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudUJ1dE9uZUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUhvdmVyRnJvbUFsbEl0ZW1zKCk7XG4gICAgICAgIGl0ZW0uaXNIb3ZlcmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93TWVudSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1TZWxlY3RlZChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkUm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcblxuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFJvb3RNZW51SXRlbXMoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFN1Ym1lbnVzSXRlbXMoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuXG4gICAgICAgIHRoaXMuc2VuZE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtSG92ZXJlZChldnQ6IEVjbE1lbnVJdGVtSG92ZXJFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1ZXN0ZWRSb290TWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG4gICAgICAgIGlmIChyZXF1ZXN0ZWRSb290TWVudUl0ZW0uaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja01lZ2FNZW51KHJlcXVlc3RlZFJvb3RNZW51SXRlbSBhcyBFY2xNZW51SXRlbUNvbXBvbmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXF1ZXN0ZWRSb290TWVudUl0ZW0uaXNIb3ZlcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudUJ1dE9uZUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd01lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tNZWdhTWVudShtZW51SXRlbTogRWNsTWVudUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKG1lbnVJdGVtLmlzRnVsbCkge1xuICAgICAgICAgICAgaWYgKG1lbnVJdGVtLnN1Ym1lbnUuaXNSdGwpIHtcbiAgICAgICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51Lm9mZnNldFJpZ2h0ID0gdGhpcy5vZmZzZXRMZWZ0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51Lm9mZnNldExlZnQgPSB0aGlzLm9mZnNldExlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0Vub3VnaFNwYWNlRm9yTWVnYU1lbnUobWVudUl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tFbm91Z2hTcGFjZUZvck1lZ2FNZW51KG1lbnVJdGVtOiBFY2xNZW51SXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtZWdhQm91bmRpbmcgPSBtZW51SXRlbS5zdWJtZW51LmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckJvdW5kaW5nID0gdGhpcy5pbm5lclNlY3Rpb24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1Cb3VuZGluZyA9IG1lbnVJdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgY29uc3QgbWVnYVdpZHRoID0gbWVnYUJvdW5kaW5nLndpZHRoO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lckJvdW5kaW5nLndpZHRoO1xuICAgICAgICBjb25zdCBtZW51SXRlbVBvc2l0aW9uID0gbWVudUl0ZW1Cb3VuZGluZy5sZWZ0IC0gY29udGFpbmVyQm91bmRpbmcubGVmdDtcblxuICAgICAgICBpZiAobWVudUl0ZW1Qb3NpdGlvbiArIG1lZ2FXaWR0aCA+IGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51LmlzUnRsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lbnVJdGVtLnN1Ym1lbnUuaXNSdGwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1Ib3ZlcmVkT3V0KGV2dDogRWNsTWVudUl0ZW1Ib3ZlckV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUNhcmV0KGV2dDogRWNsTWVudUl0ZW1DYXJldEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFJvb3RNZW51SXRlbTogRWNsTWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG5cbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51QnV0T25lSXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkRm9yTWVudUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTWVudU1lZ2FJdGVtU2VsZWN0ZWQocm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSwgZXZ0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFN1Ym1lbnVJdGVtID0gZXZ0Lm1lbnVJdGVtO1xuXG4gICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsUm9vdE1lbnVJdGVtcygpO1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsU3VibWVudXNJdGVtcygpO1xuICAgICAgICB0aGlzLnNlbGVjdE1lbnVJdGVtKHJvb3RNZW51SXRlbSk7XG4gICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0ocmVxdWVzdGVkU3VibWVudUl0ZW0pO1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuXG4gICAgICAgIHRoaXMuc2VuZE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0KTtcblxuICAgICAgICB0aGlzLmhpZGVNZW51KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdEFsbFJvb3RNZW51SXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RNZW51SXRlbXModGhpcy5lY2xSb290TWVudUl0ZW1zLnRvQXJyYXkoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdEFsbFN1Ym1lbnVzSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChyb290SXRlbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdE1lbnVJdGVtcyhyb290SXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZWxlY3RNZW51SXRlbXMoaXRlbXM6IEFycmF5PEVjbE1lbnVJdGVtPik6IHZvaWQge1xuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgICAgICAgaXQuaXNDdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0TWVudUl0ZW0oaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaXRlbS5pc0N1cnJlbnQgPSB0cnVlO1xuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtID0gaXRlbTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTWVudUhpZGRlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc01lbnVIaWRkZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUm9vdE1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgICAgICAgaXQuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgaXQuaXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VSb290TWVudUJ1dE9uZUl0ZW0oaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zXG4gICAgICAgICAgICAuZmlsdGVyKChpdCkgPT4gaXQgIT09IGl0ZW0pXG4gICAgICAgICAgICAuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgICAgICBpdC5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXQuaXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUhvdmVyRnJvbUFsbEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgIGl0LmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvZ2dsZUV4cGFuZGVkRm9yTWVudUl0ZW0oaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaXRlbS5pc0V4cGFuZGVkID0gIWl0ZW0uaXNFeHBhbmRlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5IYW1idXJnZXJNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzSGFtYnVyZ2VyTWVudU9wZW5lZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZUhhbWJ1cmdlck1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNIYW1idXJnZXJNZW51T3BlbmVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbVNlbGVjdC5uZXh0KG5ldyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KGV2dC5tZW51SXRlbSwgZXZ0LmRvbUV2ZW50KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlUm9vdE1lbnVJdGVtc0NoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xSb290TWVudUl0ZW1zIGFzIGFueSk7XG4gICAgICAgIHRoaXMuY3JlYXRlUm9vdE1lbnVJdGVtc0NoYW5nZXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh0aGlzLm9uTWVudUl0ZW1DaGFuZ2VzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZVN3aXBlR2VzdHVyZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vbignc3dpcGVsZWZ0JywgdGhpcy5vblN3aXBlTGVmdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5oYW1tZXJ0aW1lLm9uKCdzd2lwZXJpZ2h0JywgdGhpcy5vblN3aXBlUmlnaHQuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2RrQnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZShbQnJlYWtwb2ludHMuSGFuZHNldCwgQnJlYWtwb2ludHMuVGFibGV0LCBCcmVha3BvaW50cy5TbWFsbF0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCA9IHJlc3VsdC5tYXRjaGVzO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVjbC1tZW51X19vdmVybGF5XCIgKGNsaWNrKT1cIm9uT3ZlcmxheUNsaWNrKClcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJlY2wtY29udGFpbmVyIGVjbC1tZW51X19jb250YWluZXJcIj5cbiAgICA8YSBlY2xMaW5rIGhyZWY9XCIjXCIgdmFyaWFudD1cInN0YW5kYWxvbmVcIiBjbGFzcz1cImVjbC1tZW51X19vcGVuXCIgKGNsaWNrKT1cIm9uTWVudU9wZW5DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiaGFtYnVyZ2VyXCIgc2l6ZT1cInNcIj48L2VjbC1pY29uPiB7eyAnZWNsLm1lbnUuTUVOVScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2E+XG5cbiAgICA8c2VjdGlvblxuICAgICAgICBjbGFzcz1cImVjbC1tZW51X19pbm5lclwiXG4gICAgICAgICNpbm5lclNlY3Rpb25cbiAgICAgICAgW2NsYXNzLmVjbC1tZW51X19pbm5lci0tZXhwYW5kZWRdPVwiaXNNZW51RXhwYW5kZWRJbk1vYmlsZVwiXG4gICAgICAgIFtjbGFzcy5lY2wtbWVudV9faW5uZXItLWhhcy1vdmVyZmxvd109XCJoYXNPdmVyZmxvd1wiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiZWNsLW1lbnVfX2lubmVyLWhlYWRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19jbG9zZVwiXG4gICAgICAgICAgICAgICAgY29udGFpbmVyU3R5bGVDbGFzcz1cImVjbC1tZW51X19jbG9zZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVDbG9zZUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNsb3NlLWZpbGxlZFwiIHNpemU9XCJzXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbD57eyAnZWNsLmNvbW1vbi5DTE9TRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1tZW51X190aXRsZVwiPnt7ICdlY2wubWVudS5NRU5VJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuXG4gICAgICAgICAgICA8YnV0dG9uIGVjbEJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIGNsYXNzPVwiZWNsLW1lbnVfX2JhY2tcIiAoY2xpY2spPVwib25NZW51QmFja0NsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiPjwvZWNsLWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gZWNsQnV0dG9uTGFiZWw+e3sgJ2VjbC5jb21tb24uQkFDSycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgI2J0blByZXZpb3VzXG4gICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJlY2wtbWVudV9faXRlbSBlY2wtbWVudV9faXRlbXMtcHJldmlvdXNcIlxuICAgICAgICAgICAgW2NsYXNzLmVjbC1tZW51X19pdGVtLS1jdXJyZW50XT1cImlzQ3VycmVudEl0ZW1WaXNpYmxlXCJcbiAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzU2hvd1ByZXZCdG4gPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblByZXZCdG5DbGljaygpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiPjwvZWNsLWljb24+XG4gICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbCBjbGFzcz1cImVjbC11LXNyLW9ubHlcIj57eyAnZWNsLmNvbW1vbi5QUkVWSU9VUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBlY2xCdXR0b25cbiAgICAgICAgICAgICNidG5OZXh0XG4gICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJlY2wtbWVudV9faXRlbSBlY2wtbWVudV9faXRlbXMtbmV4dFwiXG4gICAgICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2l0ZW0tLWN1cnJlbnRdPVwiIWlzQ3VycmVudEl0ZW1WaXNpYmxlXCJcbiAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzU2hvd05leHRCdG4gPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk5leHRCdG5DbGljaygpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTkwXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGVjbEJ1dHRvbkxhYmVsIGNsYXNzPVwiZWNsLXUtc3Itb25seVwiPnt7ICdlY2wuY29tbW9uLk5FWFQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPHVsIGNsYXNzPVwiZWNsLW1lbnVfX2xpc3RcIiAjaXRlbXNMaXN0PlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3VsPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
@@ -39,13 +39,13 @@ export class EclMenuMegaItemComponent extends ECLBaseDirective {
39
39
  onHostClick(evt) {
40
40
  evt.stopPropagation();
41
41
  }
42
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EclMenuMegaItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
43
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EclMenuMegaItemComponent, selector: "ecl-menu-mega-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href", target: "target", isCurrent: "isCurrent" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class.ecl-menu__subitem": "this.cmpClass", "class.ecl-menu__subitem--current": "this.isCurrent" } }, queries: [{ propertyName: "iconComponents", predicate: i0.forwardRef(function () { return EclIconComponent; }) }], usesInheritance: true, ngImport: i0, template: "<a\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a\n *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
42
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuMegaItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
43
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.7", type: EclMenuMegaItemComponent, selector: "ecl-menu-mega-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href", target: "target", isCurrent: "isCurrent" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class.ecl-menu__subitem": "this.cmpClass", "class.ecl-menu__subitem--current": "this.isCurrent" } }, queries: [{ propertyName: "iconComponents", predicate: i0.forwardRef(() => EclIconComponent) }], usesInheritance: true, ngImport: i0, template: "<a\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a\n *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
44
44
  }
45
45
  __decorate([
46
46
  coerceBoolean
47
47
  ], EclMenuMegaItemComponent.prototype, "isCurrent", void 0);
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EclMenuMegaItemComponent, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuMegaItemComponent, decorators: [{
49
49
  type: Component,
50
50
  args: [{ selector: 'ecl-menu-mega-item', template: "<a\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a\n *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:list-item}\n"] }]
51
51
  }], propDecorators: { id: [{
@@ -79,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4",
79
79
  type: HostListener,
80
80
  args: ['click', ['$event']]
81
81
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFhbEQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQjtJQVg5RDs7UUFjYSxlQUFVLEdBQVEsSUFBSSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBQ3hCLHdCQUFtQixHQUFRLElBQUksQ0FBQztRQUNoQyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDVyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBS3ZELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFFdEUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFZLElBQUksQ0FBQztRQUUzQixhQUFRLEdBQXVCLEVBQUUsQ0FBQztLQXdCckM7SUF0QkcsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2hDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBZTtRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUdELFdBQVcsQ0FBQyxHQUFlO1FBQ3ZCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO3dJQXpDUSx3QkFBd0I7NEhBQXhCLHdCQUF3QixzaEJBV0MsZ0JBQWdCLHdEQ3hDdEQsNnNCQTBCQTs7QURZNkU7SUFBeEUsYUFBYTsyREFBb0Y7a0dBVHpGLHdCQUF3QjtrQkFYcEMsU0FBUzsrQkFDSSxvQkFBb0I7OEJBV3JCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNrQyxRQUFRO3NCQUEvQyxXQUFXO3VCQUFDLHlCQUF5QjtnQkFDbUMsU0FBUztzQkFBbEUsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBRWxCLGNBQWM7c0JBQWxFLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUV6QyxjQUFjO3NCQUF2QixNQUFNO2dCQTBCUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIGZvcndhcmRSZWYsXG4gICAgUXVlcnlMaXN0LFxuICAgIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VjbC1pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtbWVudS1tZWdhLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBFY2xNZW51SXRlbSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJvdXRlckxpbms6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXM6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXNIYW5kbGluZzogYW55ID0gbnVsbDtcbiAgICBASW5wdXQoKSBocmVmOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSB0YXJnZXQ6IHN0cmluZyA9ICcnO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX3N1Yml0ZW0nKSBjbXBDbGFzczogYm9vbGVhbiA9IHRydWU7XG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudV9fc3ViaXRlbS0tY3VycmVudCcpIGlzQ3VycmVudDogYm9vbGVhbiB8IGFueTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFY2xJY29uQ29tcG9uZW50KSkgaWNvbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxFY2xJY29uQ29tcG9uZW50PjtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcblxuICAgIGhhc0NoaWxkcmVuOiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNFeHBhbmRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBjaGlsZHJlbjogQXJyYXk8RWNsTWVudUl0ZW0+ID0gW107XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmljb25Db21wb25lbnRzKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmljb25Db21wb25lbnRzLmZvckVhY2goKGljbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpY24uY2xhc3MgPSAnZWNsLW1lbnVfX3N1YmxpbmstaWNvbic7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQodGhpcywgZXZ0KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uSG9zdENsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxufVxuIiwiPGFcbiAgICAqbmdJZj1cImhyZWZcIlxuICAgIFtocmVmXT1cImhyZWZcIlxuICAgIFt0YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBjbGFzcz1cImVjbC1tZW51X19zdWJsaW5rXCJcbiAgICBbY2xhc3MuZWNsLW1lbnVfX3N1YmxpbmstLWN1cnJlbnRdPVwiaXNDdXJyZW50XCJcbiAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPGFcbiAgICAqbmdJZj1cIiFocmVmXCJcbiAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgIGNsYXNzPVwiZWNsLW1lbnVfX3N1YmxpbmtcIlxuICAgIFtjbGFzcy5lY2wtbWVudV9fc3VibGluay0tY3VycmVudF09XCJpc0N1cnJlbnRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCI+XG4gICAge3sgbGFiZWwgfX1cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9hPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFhbEQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQjtJQVg5RDs7UUFjYSxlQUFVLEdBQVEsSUFBSSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBQ3hCLHdCQUFtQixHQUFRLElBQUksQ0FBQztRQUNoQyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDVyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBS3ZELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFFdEUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFZLElBQUksQ0FBQztRQUUzQixhQUFRLEdBQXVCLEVBQUUsQ0FBQztLQXdCckM7SUF0QkcsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2hDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBZTtRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUdELFdBQVcsQ0FBQyxHQUFlO1FBQ3ZCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO3dJQXpDUSx3QkFBd0I7NEhBQXhCLHdCQUF3Qix1Z0JBV0MsZ0JBQWdCLHFEQ3hDdEQsNnNCQTBCQTs7QURZNkU7SUFBeEUsYUFBYTsyREFBb0Y7a0dBVHpGLHdCQUF3QjtrQkFYcEMsU0FBUzsrQkFDSSxvQkFBb0I7OEJBV3JCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNrQyxRQUFRO3NCQUEvQyxXQUFXO3VCQUFDLHlCQUF5QjtnQkFDbUMsU0FBUztzQkFBbEUsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBRWxCLGNBQWM7c0JBQWxFLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUV6QyxjQUFjO3NCQUF2QixNQUFNO2dCQTBCUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIGZvcndhcmRSZWYsXG4gICAgUXVlcnlMaXN0LFxuICAgIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VjbC1pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtbWVudS1tZWdhLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBFY2xNZW51SXRlbSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJvdXRlckxpbms6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXM6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXNIYW5kbGluZzogYW55ID0gbnVsbDtcbiAgICBASW5wdXQoKSBocmVmOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSB0YXJnZXQ6IHN0cmluZyA9ICcnO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX3N1Yml0ZW0nKSBjbXBDbGFzczogYm9vbGVhbiA9IHRydWU7XG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudV9fc3ViaXRlbS0tY3VycmVudCcpIGlzQ3VycmVudDogYm9vbGVhbiB8IGFueTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFY2xJY29uQ29tcG9uZW50KSkgaWNvbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxFY2xJY29uQ29tcG9uZW50PjtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcblxuICAgIGhhc0NoaWxkcmVuOiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNFeHBhbmRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBjaGlsZHJlbjogQXJyYXk8RWNsTWVudUl0ZW0+ID0gW107XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmljb25Db21wb25lbnRzKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmljb25Db21wb25lbnRzLmZvckVhY2goKGljbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpY24uY2xhc3MgPSAnZWNsLW1lbnVfX3N1YmxpbmstaWNvbic7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQodGhpcywgZXZ0KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uSG9zdENsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxufVxuIiwiPGFcbiAgICAqbmdJZj1cImhyZWZcIlxuICAgIFtocmVmXT1cImhyZWZcIlxuICAgIFt0YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBjbGFzcz1cImVjbC1tZW51X19zdWJsaW5rXCJcbiAgICBbY2xhc3MuZWNsLW1lbnVfX3N1YmxpbmstLWN1cnJlbnRdPVwiaXNDdXJyZW50XCJcbiAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPGFcbiAgICAqbmdJZj1cIiFocmVmXCJcbiAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgIGNsYXNzPVwiZWNsLW1lbnVfX3N1YmxpbmtcIlxuICAgIFtjbGFzcy5lY2wtbWVudV9fc3VibGluay0tY3VycmVudF09XCJpc0N1cnJlbnRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCI+XG4gICAge3sgbGFiZWwgfX1cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9hPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -65,16 +65,16 @@ export class EclMenuMegaComponent extends ECLBaseDirective {
65
65
  sendMenuItemSelectEvent(evt) {
66
66
  this.menuItemSelect.next(new EclMenuItemSelectEvent(evt.menuItem, evt.domEvent));
67
67
  }
68
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EclMenuMegaComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
69
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EclMenuMegaComponent, selector: "ecl-menu-mega", inputs: { isRtl: "isRtl" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { properties: { "class.ecl-menu__mega--rtl": "this.isRtl", "style.left.px": "this.offsetLeft", "style.right.px": "this.offsetRight", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclMenuMegaItems", predicate: EclMenuMegaItemComponent }], usesInheritance: true, ngImport: i0, template: "<ul class=\"ecl-menu__sublist\">\n <ng-content></ng-content>\n</ul>\n" }); }
68
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuMegaComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
69
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.7", type: EclMenuMegaComponent, selector: "ecl-menu-mega", inputs: { isRtl: "isRtl" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { properties: { "class.ecl-menu__mega--rtl": "this.isRtl", "style.left.px": "this.offsetLeft", "style.right.px": "this.offsetRight", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclMenuMegaItems", predicate: EclMenuMegaItemComponent }], usesInheritance: true, ngImport: i0, template: "<ul class=\"ecl-menu__sublist\">\n <ng-content></ng-content>\n</ul>\n" }); }
70
70
  }
71
71
  __decorate([
72
72
  coerceBoolean
73
73
  ], EclMenuMegaComponent.prototype, "isRtl", void 0);
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EclMenuMegaComponent, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMenuMegaComponent, decorators: [{
75
75
  type: Component,
76
76
  args: [{ selector: 'ecl-menu-mega', template: "<ul class=\"ecl-menu__sublist\">\n <ng-content></ng-content>\n</ul>\n" }]
77
- }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.ElementRef }]; }, propDecorators: { isRtl: [{
77
+ }], ctorParameters: () => [{ type: i0.IterableDiffers }, { type: i0.ElementRef }], propDecorators: { isRtl: [{
78
78
  type: Input
79
79
  }, {
80
80
  type: HostBinding,
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4",
94
94
  type: HostBinding,
95
95
  args: ['class']
96
96
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBQ04sWUFBWSxFQUlaLFdBQVcsR0FFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBTTFDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFVdEQsSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBTUQsWUFDWSxPQUF3QixFQUN6QixFQUFjO1FBRXJCLEtBQUssRUFBRSxDQUFDO1FBSEEsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDekIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQXBC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QUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO3dJQS9FUSxvQkFBb0I7NEhBQXBCLG9CQUFvQiw0VUFHWix3QkFBd0Isb0RDOUI3QywwRUFHQTs7QUR5QnNFO0lBQWpFLGFBQWE7bURBQWlGO2tHQUR0RixvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0ksZUFBZTsrSEFJeUMsS0FBSztzQkFBdkQsS0FBSzs7c0JBQUksV0FBVzt1QkFBQywyQkFBMkI7Z0JBRXJCLGdCQUFnQjtzQkFBMUQsZUFBZTt1QkFBQyx3QkFBd0I7Z0JBRS9CLGNBQWM7c0JBQXZCLE1BQU07Z0JBRXVCLFVBQVU7c0JBQXZDLFdBQVc7dUJBQUMsZUFBZTtnQkFDRyxXQUFXO3NCQUF6QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFHekIsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSXRlcmFibGVEaWZmZXIsXG4gICAgSXRlcmFibGVDaGFuZ2VzLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBIb3N0QmluZGluZyxcbiAgICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBvZiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBtZXJnZVdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW1lbnUtbWVnYScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1tZW51LW1lZ2EuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNZW51TWVnYUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX21lZ2EtLXJ0bCcpIGlzUnRsOiBib29sZWFuIHwgYW55ID0gZmFsc2U7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCkgZWNsTWVudU1lZ2FJdGVtczogUXVlcnlMaXN0PEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudD47XG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmxlZnQucHgnKSBvZmZzZXRMZWZ0OiBudW1iZXIgfCBudWxsO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUucmlnaHQucHgnKSBvZmZzZXRSaWdodDogbnVtYmVyIHwgbnVsbDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1lbnVfX21lZ2EnKV0uam9pbignICcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQ+O1xuICAgIHByaXZhdGUgZGlmZjogSXRlcmFibGVDaGFuZ2VzPEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xNZW51TWVnYUl0ZW1zIGFzIGFueSk7XG4gICAgICAgIHRoaXMuY3JlYXRlQ29udGVudENoaWxkcmVuTWVudU9ic2VydmFibGUoKS5zdWJzY3JpYmUodGhpcy5vbk1lbnVJdGVtQ2hhbmdlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb250ZW50Q2hpbGRyZW5NZW51T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFF1ZXJ5TGlzdDxFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQ+PiB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLmVjbE1lbnVNZWdhSXRlbXMpLnBpcGUobWVyZ2VXaXRoKHRoaXMuZWNsTWVudU1lZ2FJdGVtcy5jaGFuZ2VzKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTWVudUl0ZW1DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsTWVudU1lZ2FJdGVtcyBhcyBhbnkpO1xuXG4gICAgICAgIGlmICghdGhpcy5kaWZmKSB7XG4gICAgICAgICAgICB0aGlzLmVjbE1lbnVNZWdhSXRlbXMuZm9yRWFjaCgocm9vdEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhyb290SXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlmZi5mb3JFYWNoQWRkZWRJdGVtKChjaGFuZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhjaGFuZ2UuaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29ubmVjdE1lbnVJdGVtRXZlbnRzKGl0ZW06IEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpdGVtLm1lbnVJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk1lbnVJdGVtU2VsZWN0ZWQoaXRlbSwgZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lbnVJdGVtU2VsZWN0ZWQoaXRlbTogRWNsTWVudUl0ZW0sIGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsTWVudUl0ZW1zKHRoaXMuZWNsTWVudU1lZ2FJdGVtcy50b0FycmF5KCkpO1xuICAgICAgICB0aGlzLnNlbGVjdE1lbnVJdGVtKGl0ZW0pO1xuICAgICAgICB0aGlzLnNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RNZW51SXRlbShpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpdGVtLmlzQ3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdEFsbE1lbnVJdGVtcyhpdGVtczogQXJyYXk8RWNsTWVudUl0ZW0+KTogdm9pZCB7XG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5pc0N1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbVNlbGVjdC5uZXh0KG5ldyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KGV2dC5tZW51SXRlbSwgZXZ0LmRvbUV2ZW50KSk7XG4gICAgfVxufVxuIiwiPHVsIGNsYXNzPVwiZWNsLW1lbnVfX3N1Ymxpc3RcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3VsPlxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBQ04sWUFBWSxFQUlaLFdBQVcsR0FFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBTTFDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFVdEQsSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBTUQsWUFDWSxPQUF3QixFQUN6QixFQUFjO1FBRXJCLEtBQUssRUFBRSxDQUFDO1FBSEEsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDekIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQXBC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QUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO3dJQS9FUSxvQkFBb0I7NEhBQXBCLG9CQUFvQiw0VUFHWix3QkFBd0Isb0RDOUI3QywwRUFHQTs7QUR5QnNFO0lBQWpFLGFBQWE7bURBQWlGO2tHQUR0RixvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0ksZUFBZTs2R0FJeUMsS0FBSztzQkFBdkQsS0FBSzs7c0JBQUksV0FBVzt1QkFBQywyQkFBMkI7Z0JBRXJCLGdCQUFnQjtzQkFBMUQsZUFBZTt1QkFBQyx3QkFBd0I7Z0JBRS9CLGNBQWM7c0JBQXZCLE1BQU07Z0JBRXVCLFVBQVU7c0JBQXZDLFdBQVc7dUJBQUMsZUFBZTtnQkFDRyxXQUFXO3NCQUF6QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFHekIsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSXRlcmFibGVEaWZmZXIsXG4gICAgSXRlcmFibGVDaGFuZ2VzLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBIb3N0QmluZGluZyxcbiAgICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBvZiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBtZXJnZVdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW1lbnUtbWVnYScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1tZW51LW1lZ2EuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNZW51TWVnYUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX21lZ2EtLXJ0bCcpIGlzUnRsOiBib29sZWFuIHwgYW55ID0gZmFsc2U7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCkgZWNsTWVudU1lZ2FJdGVtczogUXVlcnlMaXN0PEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudD47XG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmxlZnQucHgnKSBvZmZzZXRMZWZ0OiBudW1iZXIgfCBudWxsO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUucmlnaHQucHgnKSBvZmZzZXRSaWdodDogbnVtYmVyIHwgbnVsbDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1lbnVfX21lZ2EnKV0uam9pbignICcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQ+O1xuICAgIHByaXZhdGUgZGlmZjogSXRlcmFibGVDaGFuZ2VzPEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xNZW51TWVnYUl0ZW1zIGFzIGFueSk7XG4gICAgICAgIHRoaXMuY3JlYXRlQ29udGVudENoaWxkcmVuTWVudU9ic2VydmFibGUoKS5zdWJzY3JpYmUodGhpcy5vbk1lbnVJdGVtQ2hhbmdlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb250ZW50Q2hpbGRyZW5NZW51T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFF1ZXJ5TGlzdDxFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQ+PiB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLmVjbE1lbnVNZWdhSXRlbXMpLnBpcGUobWVyZ2VXaXRoKHRoaXMuZWNsTWVudU1lZ2FJdGVtcy5jaGFuZ2VzKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTWVudUl0ZW1DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsTWVudU1lZ2FJdGVtcyBhcyBhbnkpO1xuXG4gICAgICAgIGlmICghdGhpcy5kaWZmKSB7XG4gICAgICAgICAgICB0aGlzLmVjbE1lbnVNZWdhSXRlbXMuZm9yRWFjaCgocm9vdEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhyb290SXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlmZi5mb3JFYWNoQWRkZWRJdGVtKChjaGFuZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhjaGFuZ2UuaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29ubmVjdE1lbnVJdGVtRXZlbnRzKGl0ZW06IEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpdGVtLm1lbnVJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk1lbnVJdGVtU2VsZWN0ZWQoaXRlbSwgZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lbnVJdGVtU2VsZWN0ZWQoaXRlbTogRWNsTWVudUl0ZW0sIGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsTWVudUl0ZW1zKHRoaXMuZWNsTWVudU1lZ2FJdGVtcy50b0FycmF5KCkpO1xuICAgICAgICB0aGlzLnNlbGVjdE1lbnVJdGVtKGl0ZW0pO1xuICAgICAgICB0aGlzLnNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RNZW51SXRlbShpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpdGVtLmlzQ3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdEFsbE1lbnVJdGVtcyhpdGVtczogQXJyYXk8RWNsTWVudUl0ZW0+KTogdm9pZCB7XG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5pc0N1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbVNlbGVjdC5uZXh0KG5ldyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KGV2dC5tZW51SXRlbSwgZXZ0LmRvbUV2ZW50KSk7XG4gICAgfVxufVxuIiwiPHVsIGNsYXNzPVwiZWNsLW1lbnVfX3N1Ymxpc3RcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3VsPlxuIl19