@eui/ecl 15.0.0-rc.6 → 15.0.0-rc.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 (181) hide show
  1. package/docs/classes/EclMenuItemCaretEvent.html +352 -0
  2. package/docs/components/EclAccordionComponent.html +1 -1
  3. package/docs/components/EclAccordionItemComponent.html +1 -1
  4. package/docs/components/EclAppComponent.html +1 -1
  5. package/docs/components/EclAppComponentBase.html +1 -1
  6. package/docs/components/EclAppCoreComponent.html +1 -1
  7. package/docs/components/EclAppHarmonisedComponent.html +1 -1
  8. package/docs/components/EclAppStandardisedComponent.html +1 -1
  9. package/docs/components/EclBlockquoteComponent.html +1 -1
  10. package/docs/components/EclBreadcrumbComponent.html +1 -1
  11. package/docs/components/EclBreadcrumbComponentBase.html +1 -1
  12. package/docs/components/EclBreadcrumbCoreComponent.html +1 -1
  13. package/docs/components/EclBreadcrumbCoreSegmentComponent.html +1 -1
  14. package/docs/components/EclBreadcrumbHarmonisedComponent.html +1 -1
  15. package/docs/components/EclBreadcrumbHarmonisedSegmentComponent.html +1 -1
  16. package/docs/components/EclBreadcrumbSegmentComponent.html +1 -1
  17. package/docs/components/EclBreadcrumbSegmentComponentBase.html +1 -1
  18. package/docs/components/EclBreadcrumbStandardisedComponent.html +1 -1
  19. package/docs/components/EclBreadcrumbStandardisedSegmentComponent.html +1 -1
  20. package/docs/components/EclButtonComponent.html +1 -1
  21. package/docs/components/EclCardBodyComponent.html +1 -1
  22. package/docs/components/EclCardComponent.html +1 -1
  23. package/docs/components/EclCarouselComponent.html +1 -1
  24. package/docs/components/EclCarouselItemComponent.html +1 -1
  25. package/docs/components/EclCategoryFilterComponent.html +1 -1
  26. package/docs/components/EclCategoryFilterItemComponent.html +1 -1
  27. package/docs/components/EclCategoryFilterListComponent.html +1 -1
  28. package/docs/components/EclCheckboxHelpComponent.html +1 -1
  29. package/docs/components/EclCheckboxLabelComponent.html +1 -1
  30. package/docs/components/EclContentBlockComponent.html +1 -1
  31. package/docs/components/EclContentItemComponent.html +1 -1
  32. package/docs/components/EclDateBlockComponent.html +1 -1
  33. package/docs/components/EclExpandableComponent.html +1 -1
  34. package/docs/components/EclFactFiguresComponent.html +1 -1
  35. package/docs/components/EclFactFiguresDescriptionComponent.html +1 -1
  36. package/docs/components/EclFactFiguresItemComponent.html +1 -1
  37. package/docs/components/EclFactFiguresTitleComponent.html +1 -1
  38. package/docs/components/EclFactFiguresValueComponent.html +1 -1
  39. package/docs/components/EclFactFiguresViewAllComponent.html +1 -1
  40. package/docs/components/EclFeaturedComponent.html +1 -1
  41. package/docs/components/EclFeaturedItemComponent.html +1 -1
  42. package/docs/components/EclFeaturedItemDescriptionComponent.html +1 -1
  43. package/docs/components/EclFileComponent.html +1 -1
  44. package/docs/components/EclFileItemComponent.html +1 -1
  45. package/docs/components/EclFileItemsComponent.html +1 -1
  46. package/docs/components/EclFileTaxonomyComponent.html +1 -1
  47. package/docs/components/EclFooterComponentBase.html +1 -1
  48. package/docs/components/EclFooterCoreComponent.html +1 -1
  49. package/docs/components/EclFooterHarmonisedComponent.html +1 -1
  50. package/docs/components/EclFooterStandardisedComponent.html +1 -1
  51. package/docs/components/EclFormGroupComponent.html +1 -1
  52. package/docs/components/EclFormLabelComponent.html +1 -1
  53. package/docs/components/EclGalleryComponent.html +1 -1
  54. package/docs/components/EclGalleryFooterComponent.html +1 -1
  55. package/docs/components/EclGalleryItemComponent.html +1 -1
  56. package/docs/components/EclHeroBannerComponent.html +1 -1
  57. package/docs/components/EclIconComponent.html +1 -1
  58. package/docs/components/EclInpageNavigationComponent.html +1 -1
  59. package/docs/components/EclInpageNavigationItemComponent.html +1 -1
  60. package/docs/components/EclLanguageListComponent.html +1 -1
  61. package/docs/components/EclLanguageListItemComponent.html +1 -1
  62. package/docs/components/EclListIllustrationComponent.html +1 -1
  63. package/docs/components/EclListIllustrationItemComponent.html +1 -1
  64. package/docs/components/EclMediaContainerComponent.html +1 -1
  65. package/docs/components/EclMenuComponent.html +1 -1
  66. package/docs/components/EclMenuItemComponent.html +174 -6
  67. package/docs/components/EclMenuMegaComponent.html +1 -91
  68. package/docs/components/EclMenuMegaItemComponent.html +36 -2
  69. package/docs/components/EclMessageComponent.html +1 -1
  70. package/docs/components/EclMultiselectComponent.html +1 -1
  71. package/docs/components/EclNavigationListComponent.html +1 -1
  72. package/docs/components/EclNavigationListItemComponent.html +1 -1
  73. package/docs/components/EclNewsTickerComponent.html +1 -1
  74. package/docs/components/EclNewsTickerItemComponent.html +1 -1
  75. package/docs/components/EclPageBannerComponent.html +1 -1
  76. package/docs/components/EclPageHeaderComponent.html +1 -1
  77. package/docs/components/EclPageHeaderComponentBase.html +1 -1
  78. package/docs/components/EclPageHeaderCoreComponent.html +1 -1
  79. package/docs/components/EclPageHeaderHarmonisedComponent.html +1 -1
  80. package/docs/components/EclPageHeaderStandardisedComponent.html +1 -1
  81. package/docs/components/EclPaginationComponent.html +1 -1
  82. package/docs/components/EclPaginationItemComponent.html +1 -1
  83. package/docs/components/EclRadioHelpComponent.html +1 -1
  84. package/docs/components/EclRadioLabelComponent.html +1 -1
  85. package/docs/components/EclRatingFieldComponent.html +1 -1
  86. package/docs/components/EclSearchFormComponent.html +1 -1
  87. package/docs/components/EclSiteFooterComponent.html +1 -1
  88. package/docs/components/EclSiteHeaderActionComponent.html +1 -1
  89. package/docs/components/EclSiteHeaderActionComponentBase.html +1 -1
  90. package/docs/components/EclSiteHeaderBannerTopComponent.html +1 -1
  91. package/docs/components/EclSiteHeaderBannerTopComponentBase.html +1 -1
  92. package/docs/components/EclSiteHeaderComponent.html +1 -1
  93. package/docs/components/EclSiteHeaderComponentBase.html +1 -1
  94. package/docs/components/EclSiteHeaderCoreActionComponent.html +1 -1
  95. package/docs/components/EclSiteHeaderCoreComponent.html +1 -1
  96. package/docs/components/EclSiteHeaderCoreLanguageComponent.html +1 -1
  97. package/docs/components/EclSiteHeaderCoreLoginComponent.html +1 -1
  98. package/docs/components/EclSiteHeaderCoreSearchComponent.html +1 -1
  99. package/docs/components/EclSiteHeaderEnvironmentComponent.html +1 -1
  100. package/docs/components/EclSiteHeaderHarmonisedActionComponent.html +1 -1
  101. package/docs/components/EclSiteHeaderHarmonisedBannerTopComponent.html +1 -1
  102. package/docs/components/EclSiteHeaderHarmonisedComponent.html +1 -1
  103. package/docs/components/EclSiteHeaderHarmonisedLanguageComponent.html +1 -1
  104. package/docs/components/EclSiteHeaderHarmonisedLoginComponent.html +1 -1
  105. package/docs/components/EclSiteHeaderHarmonisedSearchComponent.html +1 -1
  106. package/docs/components/EclSiteHeaderLanguageComponent.html +1 -1
  107. package/docs/components/EclSiteHeaderLanguageComponentBase.html +1 -1
  108. package/docs/components/EclSiteHeaderLoginComponent.html +1 -1
  109. package/docs/components/EclSiteHeaderLoginComponentBase.html +1 -1
  110. package/docs/components/EclSiteHeaderSearchComponent.html +1 -1
  111. package/docs/components/EclSiteHeaderSearchComponentBase.html +1 -1
  112. package/docs/components/EclSiteHeaderStandardisedActionComponent.html +1 -1
  113. package/docs/components/EclSiteHeaderStandardisedBannerTopComponent.html +1 -1
  114. package/docs/components/EclSiteHeaderStandardisedComponent.html +1 -1
  115. package/docs/components/EclSiteHeaderStandardisedLanguageComponent.html +1 -1
  116. package/docs/components/EclSiteHeaderStandardisedLoginComponent.html +1 -1
  117. package/docs/components/EclSiteHeaderStandardisedSearchComponent.html +1 -1
  118. package/docs/components/EclSocialMediaFollowComponent.html +1 -1
  119. package/docs/components/EclSocialMediaFollowItemComponent.html +1 -1
  120. package/docs/components/EclSocialMediaShareComponent.html +1 -1
  121. package/docs/components/EclSocialMediaShareItemComponent.html +1 -1
  122. package/docs/components/EclSpinnerComponent.html +1 -1
  123. package/docs/components/EclStickyContainerComponent.html +1 -1
  124. package/docs/components/EclTabComponent.html +128 -2
  125. package/docs/components/EclTabLabelComponent.html +1 -1
  126. package/docs/components/EclTabMoreComponent.html +610 -0
  127. package/docs/components/EclTabsComponent.html +465 -3
  128. package/docs/components/EclTagComponent.html +1 -1
  129. package/docs/components/EclTimelineComponent.html +1 -1
  130. package/docs/components/EclTimelineItemComponent.html +1 -1
  131. package/docs/components/EclTimelineItemTogglerComponent.html +1 -1
  132. package/docs/dependencies.html +2 -2
  133. package/docs/index.html +2 -2
  134. package/docs/js/menu-wc.js +26 -14
  135. package/docs/js/menu-wc_es5.js +1 -1
  136. package/docs/js/search/search_index.js +2 -2
  137. package/docs/miscellaneous/variables.html +38 -0
  138. package/docs/modules/EclMenuComponentModule.html +4 -16
  139. package/docs/properties.html +1 -1
  140. package/esm2020/lib/components/ecl-menu/common/ecl-menu-item.event.mjs +9 -2
  141. package/esm2020/lib/components/ecl-menu/ecl-menu/ecl-menu-item.component.mjs +21 -8
  142. package/esm2020/lib/components/ecl-menu/ecl-menu/ecl-menu.component.mjs +20 -32
  143. package/esm2020/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.mjs +17 -4
  144. package/esm2020/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.mjs +3 -13
  145. package/esm2020/lib/components/ecl-menu/ecl-menu.module.mjs +9 -9
  146. package/esm2020/lib/components/ecl-tabs/ecl-tab-more.component.mjs +42 -0
  147. package/esm2020/lib/components/ecl-tabs/ecl-tab.component.mjs +14 -7
  148. package/esm2020/lib/components/ecl-tabs/ecl-tabs.component.mjs +75 -14
  149. package/esm2020/lib/components/ecl-tabs/ecl-tabs.module.mjs +7 -3
  150. package/esm2020/lib/components/ecl-tabs/index.mjs +2 -1
  151. package/esm2020/lib/components/ecl-timeline/ecl-timeline-item.component.mjs +1 -1
  152. package/esm2020/lib/model/ecl-menu-item.model.mjs +1 -1
  153. package/fesm2015/eui-ecl.mjs +216 -100
  154. package/fesm2015/eui-ecl.mjs.map +1 -1
  155. package/fesm2020/eui-ecl.mjs +216 -100
  156. package/fesm2020/eui-ecl.mjs.map +1 -1
  157. package/lib/components/ecl-menu/common/ecl-menu-item.event.d.ts +6 -1
  158. package/lib/components/ecl-menu/common/ecl-menu-item.event.d.ts.map +1 -1
  159. package/lib/components/ecl-menu/ecl-menu/ecl-menu-item.component.d.ts +4 -2
  160. package/lib/components/ecl-menu/ecl-menu/ecl-menu-item.component.d.ts.map +1 -1
  161. package/lib/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts +1 -8
  162. package/lib/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts.map +1 -1
  163. package/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts +6 -3
  164. package/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts.map +1 -1
  165. package/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.d.ts +1 -3
  166. package/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.d.ts.map +1 -1
  167. package/lib/components/ecl-menu/ecl-menu.module.d.ts.map +1 -1
  168. package/lib/components/ecl-tabs/ecl-tab-more.component.d.ts +14 -0
  169. package/lib/components/ecl-tabs/ecl-tab-more.component.d.ts.map +1 -0
  170. package/lib/components/ecl-tabs/ecl-tab.component.d.ts +5 -1
  171. package/lib/components/ecl-tabs/ecl-tab.component.d.ts.map +1 -1
  172. package/lib/components/ecl-tabs/ecl-tabs.component.d.ts +18 -2
  173. package/lib/components/ecl-tabs/ecl-tabs.component.d.ts.map +1 -1
  174. package/lib/components/ecl-tabs/ecl-tabs.module.d.ts +7 -6
  175. package/lib/components/ecl-tabs/ecl-tabs.module.d.ts.map +1 -1
  176. package/lib/components/ecl-tabs/index.d.ts +1 -0
  177. package/lib/components/ecl-tabs/index.d.ts.map +1 -1
  178. package/lib/components/ecl-timeline/ecl-timeline-item.component.d.ts.map +1 -1
  179. package/lib/model/ecl-menu-item.model.d.ts +2 -2
  180. package/lib/model/ecl-menu-item.model.d.ts.map +1 -1
  181. package/package.json +1 -1
@@ -82,6 +82,9 @@
82
82
  <li>
83
83
  <a href="#COMPONENTS" title="packages/eui/packages/ecl/src/lib/components/ecl-list/ecl-list.module.ts" ><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(packages/.../ecl-list.module.ts)</a>
84
84
  </li>
85
+ <li>
86
+ <a href="#COMPONENTS" title="packages/eui/packages/ecl/src/lib/components/ecl-menu/ecl-menu.module.ts" ><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(packages/.../ecl-menu.module.ts)</a>
87
+ </li>
85
88
  <li>
86
89
  <a href="#COMPONENTS" title="packages/eui/packages/ecl/src/lib/components/ecl-navigation-list/ecl-navigation-list.module.ts" ><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(packages/.../ecl-navigation-list.module.ts)</a>
87
90
  </li>
@@ -395,6 +398,40 @@
395
398
  </tr>
396
399
 
397
400
 
401
+ </tbody>
402
+ </table>
403
+ </section>
404
+ <h3>packages/eui/packages/ecl/src/lib/components/ecl-menu/ecl-menu.module.ts</h3>
405
+ <section>
406
+ <h3></h3> <table class="table table-sm table-bordered">
407
+ <tbody>
408
+ <tr>
409
+ <td class="col-md-4">
410
+ <a name="COMPONENTS"></a>
411
+ <span class="name">
412
+ <span ><b>COMPONENTS</b></span>
413
+ <a href="#COMPONENTS"><span class="icon ion-ios-link"></span></a>
414
+ </span>
415
+ </td>
416
+ </tr>
417
+ <tr>
418
+ <td class="col-md-4">
419
+ <i>Type : </i> <code>[]</code>
420
+
421
+ </td>
422
+ </tr>
423
+ <tr>
424
+ <td class="col-md-4">
425
+ <i>Default value : </i><code>[
426
+ EclMenuComponent,
427
+ EclMenuItemComponent,
428
+ EclMenuMegaComponent,
429
+ EclMenuMegaItemComponent,
430
+ ]</code>
431
+ </td>
432
+ </tr>
433
+
434
+
398
435
  </tbody>
399
436
  </table>
400
437
  </section>
@@ -646,6 +683,7 @@
646
683
  EclTabsComponent,
647
684
  EclTabComponent,
648
685
  EclTabLabelComponent,
686
+ EclTabMoreComponent,
649
687
  ]</code>
650
688
  </td>
651
689
  </tr>
@@ -67,16 +67,10 @@
67
67
  title="Official documentation about module declarations"><span class="icon ion-ios-information-circle-outline"></span></a></h3>
68
68
  <ul class="list-group">
69
69
  <li class="list-group-item">
70
- <a href="../components/EclMenuComponent.html">EclMenuComponent</a>
70
+ <a href="../components/EclBreadcrumbComponent.html">EclBreadcrumbComponent</a>
71
71
  </li>
72
72
  <li class="list-group-item">
73
- <a href="../components/EclMenuItemComponent.html">EclMenuItemComponent</a>
74
- </li>
75
- <li class="list-group-item">
76
- <a href="../components/EclMenuMegaComponent.html">EclMenuMegaComponent</a>
77
- </li>
78
- <li class="list-group-item">
79
- <a href="../components/EclMenuMegaItemComponent.html">EclMenuMegaItemComponent</a>
73
+ <a href="../components/EclBreadcrumbSegmentComponent.html">EclBreadcrumbSegmentComponent</a>
80
74
  </li>
81
75
  </ul>
82
76
  </div>
@@ -97,16 +91,10 @@
97
91
  class="icon ion-ios-information-circle-outline"></a></h3>
98
92
  <ul class="list-group">
99
93
  <li class="list-group-item">
100
- <a href="../components/EclMenuComponent.html">EclMenuComponent</a>
101
- </li>
102
- <li class="list-group-item">
103
- <a href="../components/EclMenuItemComponent.html">EclMenuItemComponent</a>
104
- </li>
105
- <li class="list-group-item">
106
- <a href="../components/EclMenuMegaComponent.html">EclMenuMegaComponent</a>
94
+ <a href="../components/EclBreadcrumbComponent.html">EclBreadcrumbComponent</a>
107
95
  </li>
108
96
  <li class="list-group-item">
109
- <a href="../components/EclMenuMegaItemComponent.html">EclMenuMegaItemComponent</a>
97
+ <a href="../components/EclBreadcrumbSegmentComponent.html">EclBreadcrumbSegmentComponent</a>
110
98
  </li>
111
99
  </ul>
112
100
  </div>
@@ -52,7 +52,7 @@
52
52
  </ol>
53
53
  <ul class="properties-list">
54
54
  <li>
55
- <b>Version</b> : 13.0.0</li>
55
+ <b>Version</b> : 14.0.0</li>
56
56
  <li>
57
57
  <b>License</b> : EUPL-1.1</li>
58
58
  <li>
@@ -13,6 +13,13 @@ export class EclMenuItemHoverEvent extends EclDomEvent {
13
13
  this.domEvent = domEvent;
14
14
  }
15
15
  }
16
+ export class EclMenuItemHoverOutEvent extends EclDomEvent {
17
+ constructor(menuItem, domEvent = null) {
18
+ super(domEvent);
19
+ this.menuItem = menuItem;
20
+ this.domEvent = domEvent;
21
+ }
22
+ }
16
23
  export class EclMenuItemFocusEvent extends EclDomEvent {
17
24
  constructor(menuItem, domEvent = null) {
18
25
  super(domEvent);
@@ -20,11 +27,11 @@ export class EclMenuItemFocusEvent extends EclDomEvent {
20
27
  this.domEvent = domEvent;
21
28
  }
22
29
  }
23
- export class EclMenuItemHoverOutEvent extends EclDomEvent {
30
+ export class EclMenuItemCaretEvent extends EclDomEvent {
24
31
  constructor(menuItem, domEvent = null) {
25
32
  super(domEvent);
26
33
  this.menuItem = menuItem;
27
34
  this.domEvent = domEvent;
28
35
  }
29
36
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtaXRlbS5ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9jb21tb24vZWNsLW1lbnUtaXRlbS5ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHM0QsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFdBQXVCO0lBQy9ELFlBQW1CLFFBQXFCLEVBQVMsV0FBdUIsSUFBSTtRQUN4RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFFNUUsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQXVCO0lBQzlELFlBQW1CLFFBQXFCLEVBQVMsV0FBdUIsSUFBSTtRQUN4RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFFNUUsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQXVCO0lBQzlELFlBQW1CLFFBQXFCLEVBQVMsV0FBdUIsSUFBSTtRQUN4RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFFNUUsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFdBQXVCO0lBQ2pFLFlBQW1CLFFBQXFCLEVBQVMsV0FBdUIsSUFBSTtRQUN4RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFFNUUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWNsRG9tRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtZG9tLmV2ZW50JztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IGV4dGVuZHMgRWNsRG9tRXZlbnQ8TW91c2VFdmVudD4ge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZW51SXRlbTogRWNsTWVudUl0ZW0sIHB1YmxpYyBkb21FdmVudDogTW91c2VFdmVudCA9IG51bGwpIHtcbiAgICAgICAgc3VwZXIoZG9tRXZlbnQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVjbE1lbnVJdGVtSG92ZXJFdmVudCBleHRlbmRzIEVjbERvbUV2ZW50PE1vdXNlRXZlbnQ+IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbWVudUl0ZW06IEVjbE1lbnVJdGVtLCBwdWJsaWMgZG9tRXZlbnQ6IE1vdXNlRXZlbnQgPSBudWxsKSB7XG4gICAgICAgIHN1cGVyKGRvbUV2ZW50KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFY2xNZW51SXRlbUZvY3VzRXZlbnQgZXh0ZW5kcyBFY2xEb21FdmVudDxGb2N1c0V2ZW50PiB7XG4gICAgY29uc3RydWN0b3IocHVibGljIG1lbnVJdGVtOiBFY2xNZW51SXRlbSwgcHVibGljIGRvbUV2ZW50OiBGb2N1c0V2ZW50ID0gbnVsbCkge1xuICAgICAgICBzdXBlcihkb21FdmVudCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRWNsTWVudUl0ZW1Ib3Zlck91dEV2ZW50IGV4dGVuZHMgRWNsRG9tRXZlbnQ8TW91c2VFdmVudD4ge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZW51SXRlbTogRWNsTWVudUl0ZW0sIHB1YmxpYyBkb21FdmVudDogTW91c2VFdmVudCA9IG51bGwpIHtcbiAgICAgICAgc3VwZXIoZG9tRXZlbnQpO1xuICAgIH1cbn1cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtaXRlbS5ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9jb21tb24vZWNsLW1lbnUtaXRlbS5ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHM0QsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFdBQXVCO0lBQy9ELFlBQW1CLFFBQXFCLEVBQVMsV0FBdUIsSUFBSTtRQUN4RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFFNUUsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQXVCO0lBQzlELFlBQW1CLFFBQXFCLEVBQVMsV0FBdUIsSUFBSTtRQUN4RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFFNUUsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFdBQXVCO0lBQ2pFLFlBQW1CLFFBQXFCLEVBQVMsV0FBdUIsSUFBSTtRQUN4RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFFNUUsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQXVCO0lBQzlELFlBQW1CLFFBQXFCLEVBQVMsV0FBdUIsSUFBSTtRQUN4RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFFNUUsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQXVCO0lBQzlELFlBQW1CLFFBQXFCLEVBQVMsV0FBdUIsSUFBSTtRQUN4RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFFNUUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWNsRG9tRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtZG9tLmV2ZW50JztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IGV4dGVuZHMgRWNsRG9tRXZlbnQ8TW91c2VFdmVudD4ge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZW51SXRlbTogRWNsTWVudUl0ZW0sIHB1YmxpYyBkb21FdmVudDogTW91c2VFdmVudCA9IG51bGwpIHtcbiAgICAgICAgc3VwZXIoZG9tRXZlbnQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVjbE1lbnVJdGVtSG92ZXJFdmVudCBleHRlbmRzIEVjbERvbUV2ZW50PE1vdXNlRXZlbnQ+IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbWVudUl0ZW06IEVjbE1lbnVJdGVtLCBwdWJsaWMgZG9tRXZlbnQ6IE1vdXNlRXZlbnQgPSBudWxsKSB7XG4gICAgICAgIHN1cGVyKGRvbUV2ZW50KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFY2xNZW51SXRlbUhvdmVyT3V0RXZlbnQgZXh0ZW5kcyBFY2xEb21FdmVudDxNb3VzZUV2ZW50PiB7XG4gICAgY29uc3RydWN0b3IocHVibGljIG1lbnVJdGVtOiBFY2xNZW51SXRlbSwgcHVibGljIGRvbUV2ZW50OiBNb3VzZUV2ZW50ID0gbnVsbCkge1xuICAgICAgICBzdXBlcihkb21FdmVudCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRWNsTWVudUl0ZW1Gb2N1c0V2ZW50IGV4dGVuZHMgRWNsRG9tRXZlbnQ8Rm9jdXNFdmVudD4ge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZW51SXRlbTogRWNsTWVudUl0ZW0sIHB1YmxpYyBkb21FdmVudDogRm9jdXNFdmVudCA9IG51bGwpIHtcbiAgICAgICAgc3VwZXIoZG9tRXZlbnQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVjbE1lbnVJdGVtQ2FyZXRFdmVudCBleHRlbmRzIEVjbERvbUV2ZW50PE1vdXNlRXZlbnQ+IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbWVudUl0ZW06IEVjbE1lbnVJdGVtLCBwdWJsaWMgZG9tRXZlbnQ6IE1vdXNlRXZlbnQgPSBudWxsKSB7XG4gICAgICAgIHN1cGVyKGRvbUV2ZW50KTtcbiAgICB9XG59Il19
@@ -1,13 +1,14 @@
1
- import { Component, ContentChild, EventEmitter, forwardRef, HostBinding, Input, Output } from '@angular/core';
1
+ import { Component, ContentChild, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { takeUntil } from 'rxjs/operators';
4
4
  import { ECLBaseDirective } from '../../ecl-base.directive';
5
- import { EclMenuItemFocusEvent, EclMenuItemHoverEvent, EclMenuItemHoverOutEvent, EclMenuItemSelectEvent } from '../common/ecl-menu-item.event';
5
+ import { EclMenuItemCaretEvent, EclMenuItemFocusEvent, EclMenuItemHoverEvent, EclMenuItemHoverOutEvent, EclMenuItemSelectEvent } from '../common/ecl-menu-item.event';
6
6
  import { EclMenuMegaComponent } from '../ecl-menu-mega/ecl-menu-mega.component';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "../../ecl-icon/ecl-icon.component";
9
- import * as i2 from "@angular/common";
10
- import * as i3 from "@angular/router";
8
+ import * as i1 from "../../ecl-button/ecl-button.component";
9
+ import * as i2 from "../../ecl-icon/ecl-icon.component";
10
+ import * as i3 from "@angular/common";
11
+ import * as i4 from "@angular/router";
11
12
  export class EclMenuItemComponent extends ECLBaseDirective {
12
13
  constructor() {
13
14
  super(...arguments);
@@ -17,6 +18,7 @@ export class EclMenuItemComponent extends ECLBaseDirective {
17
18
  this.isCurrent = false;
18
19
  this.isHovered = false;
19
20
  this.menuItemSelect = new EventEmitter();
21
+ this.menuItemCaret = new EventEmitter();
20
22
  this.menuItemHover = new EventEmitter();
21
23
  this.menuItemHoverOut = new EventEmitter();
22
24
  this.menuMegaItemSelect = new EventEmitter();
@@ -52,6 +54,9 @@ export class EclMenuItemComponent extends ECLBaseDirective {
52
54
  evt.preventDefault();
53
55
  }
54
56
  }
57
+ onItemCaretClick(evt) {
58
+ this.menuItemCaret.next(new EclMenuItemCaretEvent(this, evt));
59
+ }
55
60
  onItemMouseEnter(evt) {
56
61
  this.menuItemHover.next(new EclMenuItemHoverEvent(this, evt));
57
62
  }
@@ -96,10 +101,10 @@ export class EclMenuItemComponent extends ECLBaseDirective {
96
101
  }
97
102
  }
98
103
  /** @nocollapse */ EclMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclMenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
99
- /** @nocollapse */ EclMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclMenuItemComponent, selector: "ecl-menu-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", href: "href", isCurrent: "isCurrent" }, outputs: { menuItemSelect: "menuItemSelect", menuItemHover: "menuItemHover", menuItemHoverOut: "menuItemHoverOut", menuMegaItemSelect: "menuMegaItemSelect", menuItemFocus: "menuItemFocus" }, host: { 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 }], usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"href\" \n [href]=\"href\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (mouseenter)=\"onItemMouseEnter($event)\"\n (mouseleave)=\"onItemMouseLeave($event)\"\n (focus)=\"onItemFocus($event)\">\n {{ label }}\n <ng-container *ngIf=\"hasChildren\">\n <ecl-icon\n icon=\"corner-arrow\"\n size=\"xs\"\n transform=\"rotate-90\"\n class=\"ecl-menu__link-icon\">\n </ecl-icon>\n </ng-container>\n</a>\n<a *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (mouseenter)=\"onItemMouseEnter($event)\"\n (mouseleave)=\"onItemMouseLeave($event)\"\n (focus)=\"onItemFocus($event)\">\n {{ label }}\n <ng-container *ngIf=\"hasChildren\">\n <ecl-icon\n icon=\"corner-arrow\"\n size=\"xs\"\n transform=\"rotate-90\"\n class=\"ecl-menu__link-icon\">\n </ecl-icon>\n </ng-container>\n</a>\n<ng-content></ng-content>\n", styles: [":host{display:list-item}.ecl-menu__link{box-sizing:unset}\n"], dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
104
+ /** @nocollapse */ EclMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclMenuItemComponent, selector: "ecl-menu-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", href: "href", 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 }], usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"href\" \n [href]=\"href\"\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 *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\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 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>", styles: [".ecl-menu__link{box-sizing:unset}\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.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
100
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclMenuItemComponent, decorators: [{
101
106
  type: Component,
102
- args: [{ selector: 'ecl-menu-item', template: "<a *ngIf=\"href\" \n [href]=\"href\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (mouseenter)=\"onItemMouseEnter($event)\"\n (mouseleave)=\"onItemMouseLeave($event)\"\n (focus)=\"onItemFocus($event)\">\n {{ label }}\n <ng-container *ngIf=\"hasChildren\">\n <ecl-icon\n icon=\"corner-arrow\"\n size=\"xs\"\n transform=\"rotate-90\"\n class=\"ecl-menu__link-icon\">\n </ecl-icon>\n </ng-container>\n</a>\n<a *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (mouseenter)=\"onItemMouseEnter($event)\"\n (mouseleave)=\"onItemMouseLeave($event)\"\n (focus)=\"onItemFocus($event)\">\n {{ label }}\n <ng-container *ngIf=\"hasChildren\">\n <ecl-icon\n icon=\"corner-arrow\"\n size=\"xs\"\n transform=\"rotate-90\"\n class=\"ecl-menu__link-icon\">\n </ecl-icon>\n </ng-container>\n</a>\n<ng-content></ng-content>\n", styles: [":host{display:list-item}.ecl-menu__link{box-sizing:unset}\n"] }]
107
+ args: [{ selector: 'ecl-menu-item', template: "<a *ngIf=\"href\" \n [href]=\"href\"\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 *ngIf=\"!href\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\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 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>", styles: [".ecl-menu__link{box-sizing:unset}\n"] }]
103
108
  }], propDecorators: { id: [{
104
109
  type: Input
105
110
  }], label: [{
@@ -120,6 +125,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
120
125
  args: [forwardRef(() => EclMenuMegaComponent)]
121
126
  }], menuItemSelect: [{
122
127
  type: Output
128
+ }], menuItemCaret: [{
129
+ type: Output
123
130
  }], menuItemHover: [{
124
131
  type: Output
125
132
  }], menuItemHoverOut: [{
@@ -137,5 +144,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
137
144
  }], isAriaExpanded: [{
138
145
  type: HostBinding,
139
146
  args: ['attr.aria-expanded']
147
+ }], onItemMouseEnter: [{
148
+ type: HostListener,
149
+ args: ['mouseenter', ['$event']]
150
+ }], onItemMouseLeave: [{
151
+ type: HostListener,
152
+ args: ['mouseleave', ['$event']]
140
153
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7QUFzQmhGLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFkMUQ7O1FBa0JhLGVBQVUsR0FBUSxJQUFJLENBQUM7UUFDdkIsZ0JBQVcsR0FBUSxJQUFJLENBQUM7UUFDeEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRXBDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFjakIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUM1RCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBQzFELHFCQUFnQixHQUFHLElB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LGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBSUgsMkJBQTJCO3NCQUY5QixXQUFXO3VCQUFDLG9DQUFvQzs7c0JBQ2hELFdBQVc7dUJBQUMsb0JBQW9CO2dCQU03QixjQUFjO3NCQURqQixXQUFXO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtRm9jdXNFdmVudCwgRWNsTWVudUl0ZW1Ib3ZlckV2ZW50LCBFY2xNZW51SXRlbUhvdmVyT3V0RXZlbnQsIEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQgfSBmcm9tICcuLi9jb21tb24vZWNsLW1lbnUtaXRlbS5ldmVudCc7XG5pbXBvcnQgeyBFY2xNZW51TWVnYUNvbXBvbmVudCB9IGZyb20gJy4uL2VjbC1tZW51LW1lZ2EvZWNsLW1lbnUtbWVnYS5jb21wb25lbnQnO1xuXG5jb25zdCBlbnVtIENvbFRyaWdnZXIge1xuICAgIENPTDFfVFJJR0dFUiA9IDUsXG4gICAgQ09MMl9UUklHR0VSID0gOSxcbiAgICBDT0wzX1RSSUdHRVIgPSAxMyxcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtbWVudS1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgICAgIH1cblxuICAgICAgICAvKiBkdWUgdG8gZXVpIGNzcyBsZWFrIHRhcmdldGluZyBhbGwgZWxlbWVudHMgd2l0aCBib3gtc2l6aW5nIG9mIGJvcmRlci1ib3ggKi9cbiAgICAgICAgLmVjbC1tZW51X19saW5rIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IHVuc2V0O1xuICAgICAgICB9XG4gICAgYF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEVjbE1lbnVJdGVtLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIFxuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSByb3V0ZXJMaW5rOiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpIGhyZWY6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIGlzQ3VycmVudDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgaXNIb3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtbWVudV9faXRlbScpLFxuICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnQgPyAnZWNsLW1lbnVfX2l0ZW0tLWN1cnJlbnQnIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPyAnZWNsLW1lbnVfX2l0ZW0tLWV4cGFuZGVkJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5nZXRDbGFzc0RlcGVuZGluZ0NoaWxkcmVuQ250KClcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFY2xNZW51TWVnYUNvbXBvbmVudCkpIHN1Ym1lbnU6IEVjbE1lbnVNZWdhQ29tcG9uZW50O1xuXG4gICAgQE91dHB1dCgpIG1lbnVJdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbVNlbGVjdEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUhvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbUhvdmVyRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVJdGVtSG92ZXJPdXQgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtSG92ZXJPdXRFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudU1lZ2FJdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbVNlbGVjdEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbUZvY3VzRXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1tZW51X19pdGVtLS1oYXMtY2hpbGRyZW4nKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhhc3BvcHVwJylcbiAgICBnZXQgaGFzRWNsQ2hpbGRyZW5EYXRhQXR0cmlidXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDaGlsZHJlbiB8fCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKVxuICAgIGdldCBpc0FyaWFFeHBhbmRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQ2hpbGRyZW4gPyB0aGlzLmlzSG92ZXJlZCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnN1Ym1lbnU7XG4gICAgfVxuXG4gICAgZ2V0IGNoaWxkcmVuKCk6IEFycmF5PEVjbE1lbnVJdGVtPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0NoaWxkcmVuID8gdGhpcy5zdWJtZW51LmVjbE1lbnVNZWdhSXRlbXMudG9BcnJheSgpIDogW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBvbkl0ZW1Gb2N1cyhldnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbUZvY3VzLm5leHQoXG4gICAgICAgICAgICBuZXcgRWNsTWVudUl0ZW1Gb2N1c0V2ZW50KHRoaXMsIGV2dClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbVNlbGVjdC5uZXh0KFxuICAgICAgICAgICAgbmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQodGhpcywgZXZ0KVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghdGhpcy5ocmVmKSB7XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbU1vdXNlRW50ZXIoZXZ0OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1Ib3Zlci5uZXh0KFxuICAgICAgICAgICAgbmV3IEVjbE1lbnVJdGVtSG92ZXJFdmVudCh0aGlzLCBldnQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25JdGVtTW91c2VMZWF2ZShldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbUhvdmVyT3V0Lm5leHQoXG4gICAgICAgICAgICBuZXcgRWNsTWVudUl0ZW1Ib3Zlck91dEV2ZW50KHRoaXMsIGV2dClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnN1Ym1lbnUpIHtcbiAgICAgICAgICAgIHRoaXMuc3VibWVudS5tZW51SXRlbVNlbGVjdFxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChpdDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbnVNZWdhSXRlbVNlbGVjdC5uZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQoaXQubWVudUl0ZW0sIGl0LmRvbUV2ZW50KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5oYXNTdWJtZW51QW55U2VsZWN0aW9ucygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9ICAgICAgICBcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDbGFzc0RlcGVuZGluZ0NoaWxkcmVuQ250KCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdWJtZW51LmVjbE1lbnVNZWdhSXRlbXMubGVuZ3RoIDwgQ29sVHJpZ2dlci5DT0wxX1RSSUdHRVIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VjbC1tZW51X19pdGVtLS1jb2wxJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdWJtZW51LmVjbE1lbnVNZWdhSXRlbXMubGVuZ3RoIDwgQ29sVHJpZ2dlci5DT0wyX1RSSUdHRVIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VjbC1tZW51X19pdGVtLS1jb2wyJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdWJtZW51LmVjbE1lbnVNZWdhSXRlbXMubGVuZ3RoIDwgQ29sVHJpZ2dlci5DT0wzX1RSSUdHRVIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VjbC1tZW51X19pdGVtLS1jb2wzJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tZnVsbCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzU3VibWVudUFueVNlbGVjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1Ym1lbnUgJiYgISF0aGlzLnN1Ym1lbnUuZWNsTWVudU1lZ2FJdGVtcy5maW5kKGl0ID0+IGl0LmlzQ3VycmVudCk7XG4gICAgfVxufVxuIiwiPGEgKm5nSWY9XCJocmVmXCIgXG4gICAgW2hyZWZdPVwiaHJlZlwiXG4gICAgY2xhc3M9XCJlY2wtbWVudV9fbGlua1wiXG4gICAgW2NsYXNzLmVjbC1tZW51X19saW5rLS1jdXJyZW50XT1cImlzQ3VycmVudFwiXG4gICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgIChtb3VzZWVudGVyKT1cIm9uSXRlbU1vdXNlRW50ZXIoJGV2ZW50KVwiXG4gICAgKG1vdXNlbGVhdmUpPVwib25JdGVtTW91c2VMZWF2ZSgkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwib25JdGVtRm9jdXMoJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0NoaWxkcmVuXCI+XG4gICAgICAgIDxlY2wtaWNvblxuICAgICAgICAgICAgaWNvbj1cImNvcm5lci1hcnJvd1wiXG4gICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlLTkwXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2xpbmstaWNvblwiPlxuICAgICAgICA8L2VjbC1pY29uPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9hPlxuPGEgKm5nSWY9XCIhaHJlZlwiXG4gICAgW3JvdXRlckxpbmtdPVwicm91dGVyTGlua1wiXG4gICAgW3F1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCJcbiAgICBjbGFzcz1cImVjbC1tZW51X19saW5rXCJcbiAgICBbY2xhc3MuZWNsLW1lbnVfX2xpbmstLWN1cnJlbnRdPVwiaXNDdXJyZW50XCJcbiAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgKG1vdXNlZW50ZXIpPVwib25JdGVtTW91c2VFbnRlcigkZXZlbnQpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJvbkl0ZW1Nb3VzZUxlYXZlKCRldmVudClcIlxuICAgIChmb2N1cyk9XCJvbkl0ZW1Gb2N1cygkZXZlbnQpXCI+XG4gICAge3sgbGFiZWwgfX1cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQ2hpbGRyZW5cIj5cbiAgICAgICAgPGVjbC1pY29uXG4gICAgICAgICAgICBpY29uPVwiY29ybmVyLWFycm93XCJcbiAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUtOTBcIlxuICAgICAgICAgICAgY2xhc3M9XCJlY2wtbWVudV9fbGluay1pY29uXCI+XG4gICAgICAgIDwvZWNsLWljb24+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2E+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEssT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQW1CaEYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQVgxRDs7UUFjYSxlQUFVLEdBQVEsSUFBSSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBQ3hCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUdwQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBY2pCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFDNUQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FB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QUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFNRixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFVa0MsT0FBTztzQkFBNUQsWUFBWTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBRTFDLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFJSCwyQkFBMkI7c0JBRjlCLFdBQVc7dUJBQUMsb0NBQW9DOztzQkFDaEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBTTdCLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQXNDakMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVF0QyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtQ2FyZXRFdmVudCwgRWNsTWVudUl0ZW1Gb2N1c0V2ZW50LCBFY2xNZW51SXRlbUhvdmVyRXZlbnQsIEVjbE1lbnVJdGVtSG92ZXJPdXRFdmVudCwgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9lY2wtbWVudS1pdGVtLmV2ZW50JztcbmltcG9ydCB7IEVjbE1lbnVNZWdhQ29tcG9uZW50IH0gZnJvbSAnLi4vZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLmNvbXBvbmVudCc7XG5cbmNvbnN0IGVudW0gQ29sVHJpZ2dlciB7XG4gICAgQ09MMV9UUklHR0VSID0gNSxcbiAgICBDT0wyX1RSSUdHRVIgPSA5LFxuICAgIENPTDNfVFJJR0dFUiA9IDEzLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1tZW51LWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIC8qIGR1ZSB0byBldWkgY3NzIGxlYWsgdGFyZ2V0aW5nIGFsbCBlbGVtZW50cyB3aXRoIGJveC1zaXppbmcgb2YgYm9yZGVyLWJveCAqL1xuICAgICAgICAuZWNsLW1lbnVfX2xpbmsge1xuICAgICAgICAgICAgYm94LXNpemluZzogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgIGBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNZW51SXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBFY2xNZW51SXRlbSwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcm91dGVyTGluazogYW55ID0gbnVsbDtcbiAgICBASW5wdXQoKSBxdWVyeVBhcmFtczogYW55ID0gbnVsbDtcbiAgICBASW5wdXQoKSBocmVmOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBpc0N1cnJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgaXNIb3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtbWVudV9faXRlbScpLFxuICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnQgPyAnZWNsLW1lbnVfX2l0ZW0tLWN1cnJlbnQnIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPyAnZWNsLW1lbnVfX2l0ZW0tLWV4cGFuZGVkJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5nZXRDbGFzc0RlcGVuZGluZ0NoaWxkcmVuQ250KClcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFY2xNZW51TWVnYUNvbXBvbmVudCkpIHN1Ym1lbnU6IEVjbE1lbnVNZWdhQ29tcG9uZW50O1xuXG4gICAgQE91dHB1dCgpIG1lbnVJdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbVNlbGVjdEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUNhcmV0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbUNhcmV0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVJdGVtSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtSG92ZXJFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1Ib3Zlck91dCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1Ib3Zlck91dEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51TWVnYUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVJdGVtRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtRm9jdXNFdmVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX2l0ZW0tLWhhcy1jaGlsZHJlbicpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaGFzcG9wdXAnKVxuICAgIGdldCBoYXNFY2xDaGlsZHJlbkRhdGFBdHRyaWJ1dGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0NoaWxkcmVuIHx8IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1leHBhbmRlZCcpXG4gICAgZ2V0IGlzQXJpYUV4cGFuZGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDaGlsZHJlbiA/IHRoaXMuaXNIb3ZlcmVkIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc3VibWVudTtcbiAgICB9XG5cbiAgICBnZXQgY2hpbGRyZW4oKTogQXJyYXk8RWNsTWVudUl0ZW0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQ2hpbGRyZW4gPyB0aGlzLnN1Ym1lbnUuZWNsTWVudU1lZ2FJdGVtcy50b0FycmF5KCkgOiBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIG9uSXRlbUZvY3VzKGV2dDogRm9jdXNFdmVudCkge1xuICAgICAgICB0aGlzLm1lbnVJdGVtRm9jdXMubmV4dChcbiAgICAgICAgICAgIG5ldyBFY2xNZW51SXRlbUZvY3VzRXZlbnQodGhpcywgZXZ0KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQoXG4gICAgICAgICAgICBuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCh0aGlzLCBldnQpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtQ2FyZXRDbGljayhldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbUNhcmV0Lm5leHQoXG4gICAgICAgICAgICBuZXcgRWNsTWVudUl0ZW1DYXJldEV2ZW50KHRoaXMsIGV2dClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJywgWyckZXZlbnQnXSlcbiAgICBvbkl0ZW1Nb3VzZUVudGVyKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLm1lbnVJdGVtSG92ZXIubmV4dChcbiAgICAgICAgICAgIG5ldyBFY2xNZW51SXRlbUhvdmVyRXZlbnQodGhpcywgZXZ0KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBbJyRldmVudCddKVxuICAgIG9uSXRlbU1vdXNlTGVhdmUoZXZ0OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1Ib3Zlck91dC5uZXh0KFxuICAgICAgICAgICAgbmV3IEVjbE1lbnVJdGVtSG92ZXJPdXRFdmVudCh0aGlzLCBldnQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5zdWJtZW51KSB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1lbnUubWVudUl0ZW1TZWxlY3RcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoaXQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW51TWVnYUl0ZW1TZWxlY3QubmV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KGl0Lm1lbnVJdGVtLCBpdC5kb21FdmVudClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzU3VibWVudUFueVNlbGVjdGlvbnMoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSAgICAgICAgXG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2xhc3NEZXBlbmRpbmdDaGlsZHJlbkNudCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmxlbmd0aCA8IENvbFRyaWdnZXIuQ09MMV9UUklHR0VSKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tY29sMSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmxlbmd0aCA8IENvbFRyaWdnZXIuQ09MMl9UUklHR0VSKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tY29sMic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLmxlbmd0aCA8IENvbFRyaWdnZXIuQ09MM19UUklHR0VSKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tY29sMyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZWNsLW1lbnVfX2l0ZW0tLWZ1bGwnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc1N1Ym1lbnVBbnlTZWxlY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJtZW51ICYmICEhdGhpcy5zdWJtZW51LmVjbE1lbnVNZWdhSXRlbXMuZmluZChpdCA9PiBpdC5pc0N1cnJlbnQpO1xuICAgIH1cbn1cbiIsIjxhICpuZ0lmPVwiaHJlZlwiIFxuICAgIFtocmVmXT1cImhyZWZcIlxuICAgIGNsYXNzPVwiZWNsLW1lbnVfX2xpbmtcIlxuICAgIFtjbGFzcy5lY2wtbWVudV9fbGluay0tY3VycmVudF09XCJpc0N1cnJlbnRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwib25JdGVtRm9jdXMoJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cbjxhICpuZ0lmPVwiIWhyZWZcIlxuICAgIFtyb3V0ZXJMaW5rXT1cInJvdXRlckxpbmtcIlxuICAgIFtxdWVyeVBhcmFtc109XCJxdWVyeVBhcmFtc1wiXG4gICAgY2xhc3M9XCJlY2wtbWVudV9fbGlua1wiXG4gICAgW2NsYXNzLmVjbC1tZW51X19saW5rLS1jdXJyZW50XT1cImlzQ3VycmVudFwiXG4gICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgIChmb2N1cyk9XCJvbkl0ZW1Gb2N1cygkZXZlbnQpXCI+XG4gICAge3sgbGFiZWwgfX1cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9hPlxuPGJ1dHRvbiBlY2xCdXR0b24gXG4gICAgKm5nSWY9XCJoYXNDaGlsZHJlblwiXG4gICAgdmFyaWFudD1cInByaW1hcnlcIiBcbiAgICBjbGFzcz1cImVjbC1tZW51X19idXR0b24tY2FyZXRcIiBcbiAgICB0eXBlPVwiYnV0dG9uXCIgXG4gICAgYXJpYS1sYWJlbD1cIkFjY2VzcyBpdGVtJ3MgY2hpbGRyZW5cIlxuICAgIChjbGljayk9XCJvbkl0ZW1DYXJldENsaWNrKCRldmVudClcIj5cbiAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJ4c1wiIHRyYW5zZm9ybT1cInJvdGF0ZS0xODBcIiBjbGFzcz1cImVjbC1idXR0b25fX2ljb25cIj48L2VjbC1pY29uPlxuPC9idXR0b24+XG48bmctY29udGVudCBzZWxlY3Q9XCJlY2wtbWVudS1tZWdhXCI+PC9uZy1jb250ZW50PlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -115,6 +115,9 @@ export class EclMenuComponent extends ECLBaseDirective {
115
115
  item.menuItemHoverOut
116
116
  .pipe(takeUntil(this.destroy$))
117
117
  .subscribe((evt) => { this.onRootMenuItemHoveredOut(evt); });
118
+ item.menuItemCaret
119
+ .pipe(takeUntil(this.destroy$))
120
+ .subscribe((evt) => { this.onRootMenuItemCaret(evt); });
118
121
  item.menuMegaItemSelect
119
122
  .pipe(takeUntil(this.destroy$))
120
123
  .subscribe((evt) => { this.onMenuMegaItemSelected(item, evt); });
@@ -133,31 +136,31 @@ export class EclMenuComponent extends ECLBaseDirective {
133
136
  }
134
137
  onRootMenuItemSelected(evt) {
135
138
  const requestedRootMenuItem = evt.menuItem;
136
- this.preventFollowingHrefInMobileMode(evt);
137
- if (requestedRootMenuItem.hasChildren) {
138
- this.closeRootMenuButOneItem(requestedRootMenuItem);
139
- this.toggleExpandedForMenuItem(requestedRootMenuItem);
140
- }
141
- else {
142
- this.closeRootMenu();
143
- this.deselectAllRootMenuItems();
144
- this.deselectAllSubmenusItems();
145
- this.selectMenuItem(requestedRootMenuItem);
146
- this.closeHamburgerMenu();
147
- }
139
+ this.closeRootMenu();
140
+ this.deselectAllRootMenuItems();
141
+ this.deselectAllSubmenusItems();
142
+ this.selectMenuItem(requestedRootMenuItem);
143
+ this.closeHamburgerMenu();
148
144
  this.sendMenuItemSelectEvent(evt);
149
145
  }
150
146
  onRootMenuItemHovered(evt) {
151
147
  const requestedRootMenuItem = evt.menuItem;
152
148
  requestedRootMenuItem.isHovered = true;
153
- if (requestedRootMenuItem.hasChildren) {
154
- this.closeRootMenuButOneItem(requestedRootMenuItem);
155
- }
149
+ this.closeRootMenuButOneItem(requestedRootMenuItem);
156
150
  this.showMenu();
157
151
  }
152
+ /*
153
+ * Note:
154
+ * ECL keeps root menu expanded when hovered out and still hovering child mega menu
155
+ * so no change of this item hover state to false to make similar behaviour
156
+ */
158
157
  onRootMenuItemHoveredOut(evt) {
158
+ this.closeRootMenu();
159
+ }
160
+ onRootMenuItemCaret(evt) {
159
161
  const requestedRootMenuItem = evt.menuItem;
160
- requestedRootMenuItem.isHovered = false;
162
+ this.closeRootMenuButOneItem(requestedRootMenuItem);
163
+ this.toggleExpandedForMenuItem(requestedRootMenuItem);
161
164
  }
162
165
  onMenuMegaItemSelected(rootMenuItem, evt) {
163
166
  const requestedSubmenuItem = evt.menuItem;
@@ -224,21 +227,6 @@ export class EclMenuComponent extends ECLBaseDirective {
224
227
  sendMenuItemSelectEvent(evt) {
225
228
  this.menuItemSelect.next(new EclMenuItemSelectEvent(evt.menuItem, evt.domEvent));
226
229
  }
227
- /**
228
- * When in mobile mode, tapping on parent item should not follow href,
229
- * but rather open submenu only. When submenu is opened, then parent can
230
- * be tapped and href is followed
231
- *
232
- * EUI-4694
233
- */
234
- preventFollowingHrefInMobileMode(evt) {
235
- if (evt.menuItem.hasChildren) {
236
- if (this.isMobileBreakpoint && !this.isMenuExpandedInMobile) {
237
- evt.domEvent.stopPropagation();
238
- evt.preventDefault();
239
- }
240
- }
241
- }
242
230
  observeRootMenuItemsChanges() {
243
231
  this.diff = this.differ.diff(this.eclRootMenuItems);
244
232
  this.createRootMenuItemsChangesObservable()
@@ -285,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
285
273
  type: HostListener,
286
274
  args: ['keydown', ['$event']]
287
275
  }] } });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1tZW51L2VjbC1tZW51L2VjbC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS9lY2wtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxlQUFlLEVBSWYsTUFBTSxFQUNOLFlBQVksRUFJWixXQUFXLEVBRVgsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFnRCxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXJILE9BQU8sRUFBc0IsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7OztBQVc1RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBMEJsRCxZQUNZLE9BQXdCLEVBQ3hCLHFCQUF5QztRQUVqRCxLQUFLLEVBQUUsQ0FBQztRQUhBLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBb0I7UUEzQjVDLFVBQUssR0FBVyxHQUFHLENBQUM7UUFJbkIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQVduQyww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K0JBQ0ksVUFBVTt1SUFTWCxLQUFLO3NCQUFiLEtBQUs7Z0JBRWlDLGdCQUFnQjtzQkFBdEQsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBRTNCLGNBQWM7c0JBQXZCLE1BQU07Z0JBR0gsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBU2UscUJBQXFCO3NCQUF2RCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDYSxrQkFBa0I7c0JBQS9ELFdBQVc7dUJBQUMsK0JBQStCO2dCQUNDLFlBQVk7c0JBQXhELFdBQVc7dUJBQUMsOEJBQThCO2dCQWlCM0MsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgSXRlcmFibGVEaWZmZXIsXG4gICAgSXRlcmFibGVDaGFuZ2VzLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uSW5pdCxcbiAgICBIb3N0TGlzdGVuZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgSGFtbWVyIGZyb20gJ2hhbW1lcmpzJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9lY2wtbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBvZiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBtZXJnZVdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbUZvY3VzRXZlbnQsIEVjbE1lbnVJdGVtSG92ZXJFdmVudCwgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9lY2wtbWVudS1pdGVtLmV2ZW50JztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtbWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgYF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVDb21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGdyb3VwOiBzdHJpbmcgPSAnMSc7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEVjbE1lbnVJdGVtQ29tcG9uZW50KSBlY2xSb290TWVudUl0ZW1zOiBRdWVyeUxpc3Q8RWNsTWVudUl0ZW1Db21wb25lbnQ+O1xuXG4gICAgQE91dHB1dCgpIG1lbnVJdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbVNlbGVjdEV2ZW50PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1tZW51JyksXG4gICAgICAgICAgICAnZWNsLW1lbnUtLXRyYW5zaXRpb24nLFxuICAgICAgICAgICAgYGVjbC1tZW51LS1ncm91cCR7dGhpcy5ncm91cH1gLFxuICAgICAgICBdLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1leHBhbmRlZCcpIGlzSGFtYnVyZ2VyTWVudU9wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnUtLWZvcmNlZC1tb2JpbGUnKSBpc01vYmlsZUJyZWFrcG9pbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1tZW51LS1mb3JjZWQtY2xvc2UnKSBpc01lbnVIaWRkZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xNZW51SXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBkaWZmOiBJdGVyYWJsZUNoYW5nZXM8RWNsTWVudUl0ZW1Db21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW1tZXJ0aW1lID0gbmV3IEhhbW1lci5kZWZhdWx0KGRvY3VtZW50KTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICAgICAgcHJpdmF0ZSBjZGtCcmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlclxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBrZXlFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgICAgICB0aGlzLmhpZGVNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlU3dpcGVHZXN0dXJlcygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlUm9vdE1lbnVJdGVtc0NoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvblN3aXBlTGVmdChldnQpIHtcbiAgICAgICAgaWYodGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU3dpcGVSaWdodChldnQpIHtcbiAgICAgICAgaWYodGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk92ZXJsYXlDbGljayhldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICB9XG5cbiAgICBvbk1lbnVPcGVuQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMub3BlbkhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25NZW51Q2xvc2VDbGljayhldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uTWVudUJhY2tDbGljayhldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uQ2xpY2tPdXRzaWRlTWVudShldnQ6IGFueSkge1xuICAgICAgICB0aGlzLnJlbW92ZUhvdmVyRnJvbUFsbEl0ZW1zKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vZmYoJ3N3aXBlbGVmdCcpO1xuICAgICAgICB0aGlzLmhhbW1lcnRpbWUub2ZmKCdzd2lwZXJpZ2h0Jyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc01lbnVFeHBhbmRlZEluTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQgJiYgdGhpcy5pc0FueVJvb3RNZW51SXRlbUV4cGFuZGVkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FueVJvb3RNZW51SXRlbUV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lY2xSb290TWVudUl0ZW1zLnNvbWUoaXRlbSA9PiBpdGVtLmlzRXhwYW5kZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlUm9vdE1lbnVJdGVtc0NoYW5nZXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8UXVlcnlMaXN0PEVjbE1lbnVJdGVtQ29tcG9uZW50Pj4ge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5lY2xSb290TWVudUl0ZW1zKS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VXaXRoKHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5jaGFuZ2VzKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lbnVJdGVtQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5kaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbFJvb3RNZW51SXRlbXMgYXMgYW55KTtcblxuICAgICAgICBpZiAoIXRoaXMuZGlmZikge1xuICAgICAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2gocm9vdEl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdE1lbnVJdGVtRXZlbnRzKHJvb3RJdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaWZmLmZvckVhY2hBZGRlZEl0ZW0oY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhjaGFuZ2UuaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29ubmVjdE1lbnVJdGVtRXZlbnRzKGl0ZW06IEVjbE1lbnVJdGVtQ29tcG9uZW50KSB7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1TZWxlY3RcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2dCkgPT4geyB0aGlzLm9uUm9vdE1lbnVJdGVtU2VsZWN0ZWQoZXZ0KTsgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1Ib3ZlclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7IHRoaXMub25Sb290TWVudUl0ZW1Ib3ZlcmVkKGV2dCk7IH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtSG92ZXJPdXRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2dCkgPT4geyB0aGlzLm9uUm9vdE1lbnVJdGVtSG92ZXJlZE91dChldnQpOyB9KTtcbiAgICAgICAgaXRlbS5tZW51TWVnYUl0ZW1TZWxlY3RcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2dCkgPT4geyB0aGlzLm9uTWVudU1lZ2FJdGVtU2VsZWN0ZWQoaXRlbSwgZXZ0KTsgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1Gb2N1c1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7IHRoaXMub25Sb290TWVudUl0ZW1Gb2N1c2VkKGl0ZW0sIGV2dCk7IH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1Gb2N1c2VkKGl0ZW06IEVjbE1lbnVJdGVtLCBldnQ6IEVjbE1lbnVJdGVtRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1ZXN0ZWRSb290TWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG4gICAgICAgIGlmIChyZXF1ZXN0ZWRSb290TWVudUl0ZW0uaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudUJ1dE9uZUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUhvdmVyRnJvbUFsbEl0ZW1zKCk7XG4gICAgICAgIGl0ZW0uaXNIb3ZlcmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93TWVudSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1TZWxlY3RlZChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkUm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcblxuICAgICAgICB0aGlzLnByZXZlbnRGb2xsb3dpbmdIcmVmSW5Nb2JpbGVNb2RlKGV2dCk7XG5cbiAgICAgICAgaWYgKHJlcXVlc3RlZFJvb3RNZW51SXRlbS5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51QnV0T25lSXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZEZvck1lbnVJdGVtKHJlcXVlc3RlZFJvb3RNZW51SXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RBbGxSb290TWVudUl0ZW1zKCk7XG4gICAgICAgICAgICB0aGlzLmRlc2VsZWN0QWxsU3VibWVudXNJdGVtcygpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VuZE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtSG92ZXJlZChldnQ6IEVjbE1lbnVJdGVtSG92ZXJFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1ZXN0ZWRSb290TWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG4gICAgICAgIHJlcXVlc3RlZFJvb3RNZW51SXRlbS5pc0hvdmVyZWQgPSB0cnVlO1xuICAgICAgICBpZiAocmVxdWVzdGVkUm9vdE1lbnVJdGVtLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKHJlcXVlc3RlZFJvb3RNZW51SXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93TWVudSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1Ib3ZlcmVkT3V0KGV2dDogRWNsTWVudUl0ZW1Ib3ZlckV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFJvb3RNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcbiAgICAgICAgcmVxdWVzdGVkUm9vdE1lbnVJdGVtLmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25NZW51TWVnYUl0ZW1TZWxlY3RlZChyb290TWVudUl0ZW06IEVjbE1lbnVJdGVtLCBldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkU3VibWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG5cbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxSb290TWVudUl0ZW1zKCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxTdWJtZW51c0l0ZW1zKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0ocm9vdE1lbnVJdGVtKTtcbiAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbShyZXF1ZXN0ZWRTdWJtZW51SXRlbSk7XG4gICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG5cbiAgICAgICAgdGhpcy5zZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQpO1xuXG4gICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0QWxsUm9vdE1lbnVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXNlbGVjdE1lbnVJdGVtcyh0aGlzLmVjbFJvb3RNZW51SXRlbXMudG9BcnJheSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0QWxsU3VibWVudXNJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2gocm9vdEl0ZW0gPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdE1lbnVJdGVtcyhyb290SXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZWxlY3RNZW51SXRlbXMoaXRlbXM6IEFycmF5PEVjbE1lbnVJdGVtPik6IHZvaWQge1xuICAgICAgICBpdGVtcy5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgIGl0LmlzQ3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdE1lbnVJdGVtKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGl0ZW0uaXNDdXJyZW50ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVNZW51KCkge1xuICAgICAgICB0aGlzLmlzTWVudUhpZGRlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TWVudSgpIHtcbiAgICAgICAgdGhpcy5pc01lbnVIaWRkZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUm9vdE1lbnUoKSB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgIGl0LmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0LmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKGl0ZW06IEVjbE1lbnVJdGVtKSB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtc1xuICAgICAgICAgICAgLmZpbHRlcihpdCA9PiBpdCAhPT0gaXRlbSlcbiAgICAgICAgICAgIC5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgICAgICBpdC5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXQuaXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUhvdmVyRnJvbUFsbEl0ZW1zKCkge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXNcbiAgICAgICAgICAgIC5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgICAgICBpdC5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRXhwYW5kZWRGb3JNZW51SXRlbShpdGVtOiBFY2xNZW51SXRlbSkge1xuICAgICAgICBpdGVtLmlzRXhwYW5kZWQgPSAhaXRlbS5pc0V4cGFuZGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkhhbWJ1cmdlck1lbnUoKSB7XG4gICAgICAgIHRoaXMuaXNIYW1idXJnZXJNZW51T3BlbmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlSGFtYnVyZ2VyTWVudSgpIHtcbiAgICAgICAgdGhpcy5pc0hhbWJ1cmdlck1lbnVPcGVuZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQoXG4gICAgICAgICAgICBuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudChldnQubWVudUl0ZW0sIGV2dC5kb21FdmVudClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIGluIG1vYmlsZSBtb2RlLCB0YXBwaW5nIG9uIHBhcmVudCBpdGVtIHNob3VsZCBub3QgZm9sbG93IGhyZWYsXG4gICAgICogYnV0IHJhdGhlciBvcGVuIHN1Ym1lbnUgb25seS4gV2hlbiBzdWJtZW51IGlzIG9wZW5lZCwgdGhlbiBwYXJlbnQgY2FuXG4gICAgICogYmUgdGFwcGVkIGFuZCBocmVmIGlzIGZvbGxvd2VkXG4gICAgICpcbiAgICAgKiBFVUktNDY5NFxuICAgICAqL1xuICAgIHByaXZhdGUgcHJldmVudEZvbGxvd2luZ0hyZWZJbk1vYmlsZU1vZGUoZXZ0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KSB7XG4gICAgICAgIGlmIChldnQubWVudUl0ZW0uaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCAmJiAhdGhpcy5pc01lbnVFeHBhbmRlZEluTW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgZXZ0LmRvbUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlUm9vdE1lbnVJdGVtc0NoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMuZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xSb290TWVudUl0ZW1zIGFzIGFueSk7XG4gICAgICAgIHRoaXMuY3JlYXRlUm9vdE1lbnVJdGVtc0NoYW5nZXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5vbk1lbnVJdGVtQ2hhbmdlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVTd2lwZUdlc3R1cmVzKCkge1xuICAgICAgICB0aGlzLmhhbW1lcnRpbWUub24oJ3N3aXBlbGVmdCcsIHRoaXMub25Td2lwZUxlZnQuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vbignc3dpcGVyaWdodCcsIHRoaXMub25Td2lwZVJpZ2h0LmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZUJyZWFrcG9pbnRDaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLmNka0JyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0LCBCcmVha3BvaW50cy5UYWJsZXQsIEJyZWFrcG9pbnRzLlNtYWxsXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCA9IHJlc3VsdC5tYXRjaGVzO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVjbC1tZW51X19vdmVybGF5XCIgKGNsaWNrKT1cIm9uT3ZlcmxheUNsaWNrKCRldmVudClcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJlY2wtY29udGFpbmVyIGVjbC1tZW51X19jb250YWluZXJcIj5cbiAgICA8YSBlY2xMaW5rXG4gICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgdmFyaWFudD1cInN0YW5kYWxvbmVcIlxuICAgICAgICBjbGFzcz1cImVjbC1tZW51X19vcGVuXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTWVudU9wZW5DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiaGFtYnVyZ2VyXCIgc2l6ZT1cInNcIj48L2VjbC1pY29uPiB7eyAnZWNsLm1lbnUuTUVOVScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2E+XG5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImVjbC1tZW51X19pbm5lclwiIFtjbGFzcy5lY2wtbWVudV9faW5uZXItLWV4cGFuZGVkXT1cImlzTWVudUV4cGFuZGVkSW5Nb2JpbGVcIj5cbiAgICAgICAgPGhlYWRlciBjbGFzcz1cImVjbC1tZW51X19pbm5lci1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBlY2xCdXR0b25cbiAgICAgICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlY2wtbWVudV9fY2xvc2VcIlxuICAgICAgICAgICAgICAgIGNvbnRhaW5lclN0eWxlQ2xhc3M9XCJlY2wtbWVudV9fY2xvc2UtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25NZW51Q2xvc2VDbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGVjbC1pY29uIGljb249XCJjbG9zZS1maWxsZWRcIiBzaXplPVwic1wiPjwvZWNsLWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gZWNsQnV0dG9uTGFiZWw+e3sgJ2VjbC5jb21tb24uQ0xPU0UnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlY2wtbWVudV9fdGl0bGVcIj57eyAnZWNsLm1lbnUuTUVOVScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cblxuICAgICAgICAgICAgPGJ1dHRvbiBlY2xCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19iYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUJhY2tDbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwic1wiIHRyYW5zZm9ybT1cInJvdGF0ZS0yNzBcIj48L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGVjbEJ1dHRvbkxhYmVsPnt7ICdlY2wuY29tbW9uLkJBQ0snIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgIDx1bCBjbGFzcz1cImVjbC1tZW51X19saXN0XCIgKGVjbENsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZU1lbnUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3VsPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1tZW51L2VjbC1tZW51L2VjbC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS9lY2wtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxlQUFlLEVBSWYsTUFBTSxFQUNOLFlBQVksRUFJWixXQUFXLEVBRVgsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUF1RSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVJLE9BQU8sRUFBc0IsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7OztBQVc1RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBMEJsRCxZQUNZLE9BQXdCLEVBQ3hCLHFCQUF5QztRQUVqRCxLQUFLLEVBQUUsQ0FBQztRQUhBLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBb0I7UUEzQjVDLFVBQUssR0FBVyxHQUFHLENBQUM7UUFJbkIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQVduQyww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O3VCQUFDLG9CQUFvQjtnQkFDYSxrQkFBa0I7c0JBQS9ELFdBQVc7dUJBQUMsK0JBQStCO2dCQUNDLFlBQVk7c0JBQXhELFdBQVc7dUJBQUMsOEJBQThCO2dCQWlCM0MsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgSXRlcmFibGVEaWZmZXIsXG4gICAgSXRlcmFibGVDaGFuZ2VzLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uSW5pdCxcbiAgICBIb3N0TGlzdGVuZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgSGFtbWVyIGZyb20gJ2hhbW1lcmpzJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9lY2wtbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBvZiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBtZXJnZVdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbUNhcmV0RXZlbnQsIEVjbE1lbnVJdGVtRm9jdXNFdmVudCwgRWNsTWVudUl0ZW1Ib3ZlckV2ZW50LCBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICBgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTWVudUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgZ3JvdXA6IHN0cmluZyA9ICcxJztcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRWNsTWVudUl0ZW1Db21wb25lbnQpIGVjbFJvb3RNZW51SXRlbXM6IFF1ZXJ5TGlzdDxFY2xNZW51SXRlbUNvbXBvbmVudD47XG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBhbnkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1lbnUnKSxcbiAgICAgICAgICAgICdlY2wtbWVudS0tdHJhbnNpdGlvbicsXG4gICAgICAgICAgICBgZWNsLW1lbnUtLWdyb3VwJHt0aGlzLmdyb3VwfWAsXG4gICAgICAgIF0uam9pbignICcpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJykgaXNIYW1idXJnZXJNZW51T3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudS0tZm9yY2VkLW1vYmlsZScpIGlzTW9iaWxlQnJlYWtwb2ludDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnUtLWZvcmNlZC1jbG9zZScpIGlzTWVudUhpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPEVjbE1lbnVJdGVtQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIGRpZmY6IEl0ZXJhYmxlQ2hhbmdlczxFY2xNZW51SXRlbUNvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbW1lcnRpbWUgPSBuZXcgSGFtbWVyLmRlZmF1bHQoZG9jdW1lbnQpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgICAgICBwcml2YXRlIGNka0JyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLm9ic2VydmVTd2lwZUdlc3R1cmVzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLm9ic2VydmVSb290TWVudUl0ZW1zQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uU3dpcGVMZWZ0KGV2dCkge1xuICAgICAgICBpZih0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5vcGVuSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Td2lwZVJpZ2h0KGV2dCkge1xuICAgICAgICBpZih0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3ZlcmxheUNsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgIH1cblxuICAgIG9uTWVudU9wZW5DbGljayhldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5vcGVuSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbk1lbnVDbG9zZUNsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25NZW51QmFja0NsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25DbGlja091dHNpZGVNZW51KGV2dDogYW55KSB7XG4gICAgICAgIHRoaXMucmVtb3ZlSG92ZXJGcm9tQWxsSXRlbXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5oYW1tZXJ0aW1lLm9mZignc3dpcGVsZWZ0Jyk7XG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vZmYoJ3N3aXBlcmlnaHQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTWVudUV4cGFuZGVkSW5Nb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCAmJiB0aGlzLmlzQW55Um9vdE1lbnVJdGVtRXhwYW5kZWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQW55Um9vdE1lbnVJdGVtRXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVjbFJvb3RNZW51SXRlbXMuc29tZShpdGVtID0+IGl0ZW0uaXNFeHBhbmRlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVSb290TWVudUl0ZW1zQ2hhbmdlc09ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxRdWVyeUxpc3Q8RWNsTWVudUl0ZW1Db21wb25lbnQ+PiB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLmVjbFJvb3RNZW51SXRlbXMpLnBpcGUoXG4gICAgICAgICAgICBtZXJnZVdpdGgodGhpcy5lY2xSb290TWVudUl0ZW1zLmNoYW5nZXMpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTWVudUl0ZW1DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLmRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsUm9vdE1lbnVJdGVtcyBhcyBhbnkpO1xuXG4gICAgICAgIGlmICghdGhpcy5kaWZmKSB7XG4gICAgICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaChyb290SXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0TWVudUl0ZW1FdmVudHMocm9vdEl0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpZmYuZm9yRWFjaEFkZGVkSXRlbShjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdE1lbnVJdGVtRXZlbnRzKGNoYW5nZS5pdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25uZWN0TWVudUl0ZW1FdmVudHMoaXRlbTogRWNsTWVudUl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgaXRlbS5tZW51SXRlbVNlbGVjdFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7IHRoaXMub25Sb290TWVudUl0ZW1TZWxlY3RlZChldnQpOyB9KTtcbiAgICAgICAgaXRlbS5tZW51SXRlbUhvdmVyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldnQpID0+IHsgdGhpcy5vblJvb3RNZW51SXRlbUhvdmVyZWQoZXZ0KTsgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1Ib3Zlck91dFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7IHRoaXMub25Sb290TWVudUl0ZW1Ib3ZlcmVkT3V0KGV2dCk7IH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtQ2FyZXRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2dCkgPT4geyB0aGlzLm9uUm9vdE1lbnVJdGVtQ2FyZXQoZXZ0KTsgfSk7XG4gICAgICAgIGl0ZW0ubWVudU1lZ2FJdGVtU2VsZWN0XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldnQpID0+IHsgdGhpcy5vbk1lbnVNZWdhSXRlbVNlbGVjdGVkKGl0ZW0sIGV2dCk7IH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtRm9jdXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2dCkgPT4geyB0aGlzLm9uUm9vdE1lbnVJdGVtRm9jdXNlZChpdGVtLCBldnQpOyB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtRm9jdXNlZChpdGVtOiBFY2xNZW51SXRlbSwgZXZ0OiBFY2xNZW51SXRlbUZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkUm9vdE1lbnVJdGVtID0gZXZ0Lm1lbnVJdGVtO1xuICAgICAgICBpZiAocmVxdWVzdGVkUm9vdE1lbnVJdGVtLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKHJlcXVlc3RlZFJvb3RNZW51SXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVIb3ZlckZyb21BbGxJdGVtcygpO1xuICAgICAgICBpdGVtLmlzSG92ZXJlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2hvd01lbnUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtU2VsZWN0ZWQoZXZ0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFJvb3RNZW51SXRlbTogRWNsTWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG5cbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxSb290TWVudUl0ZW1zKCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxTdWJtZW51c0l0ZW1zKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcblxuICAgICAgICB0aGlzLnNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUhvdmVyZWQoZXZ0OiBFY2xNZW51SXRlbUhvdmVyRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkUm9vdE1lbnVJdGVtID0gZXZ0Lm1lbnVJdGVtO1xuICAgICAgICBcbiAgICAgICAgcmVxdWVzdGVkUm9vdE1lbnVJdGVtLmlzSG92ZXJlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2xvc2VSb290TWVudUJ1dE9uZUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICAgICAgdGhpcy5zaG93TWVudSgpO1xuICAgIH1cblxuICAgIC8qIFxuICAgICogTm90ZTpcbiAgICAqIEVDTCBrZWVwcyByb290IG1lbnUgZXhwYW5kZWQgd2hlbiBob3ZlcmVkIG91dCBhbmQgc3RpbGwgaG92ZXJpbmcgY2hpbGQgbWVnYSBtZW51XG4gICAgKiBzbyBubyBjaGFuZ2Ugb2YgdGhpcyBpdGVtIGhvdmVyIHN0YXRlIHRvIGZhbHNlIHRvIG1ha2Ugc2ltaWxhciBiZWhhdmlvdXJcbiAgICAqLyBcbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtSG92ZXJlZE91dChldnQ6IEVjbE1lbnVJdGVtSG92ZXJFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtQ2FyZXQoZXZ0OiBFY2xNZW51SXRlbUNhcmV0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkUm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcblxuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKHJlcXVlc3RlZFJvb3RNZW51SXRlbSk7XG4gICAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWRGb3JNZW51SXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25NZW51TWVnYUl0ZW1TZWxlY3RlZChyb290TWVudUl0ZW06IEVjbE1lbnVJdGVtLCBldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkU3VibWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG5cbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxSb290TWVudUl0ZW1zKCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxTdWJtZW51c0l0ZW1zKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0ocm9vdE1lbnVJdGVtKTtcbiAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbShyZXF1ZXN0ZWRTdWJtZW51SXRlbSk7XG4gICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG5cbiAgICAgICAgdGhpcy5zZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQpO1xuXG4gICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0QWxsUm9vdE1lbnVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXNlbGVjdE1lbnVJdGVtcyh0aGlzLmVjbFJvb3RNZW51SXRlbXMudG9BcnJheSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0QWxsU3VibWVudXNJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2gocm9vdEl0ZW0gPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdE1lbnVJdGVtcyhyb290SXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZWxlY3RNZW51SXRlbXMoaXRlbXM6IEFycmF5PEVjbE1lbnVJdGVtPik6IHZvaWQge1xuICAgICAgICBpdGVtcy5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgIGl0LmlzQ3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdE1lbnVJdGVtKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGl0ZW0uaXNDdXJyZW50ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVNZW51KCkge1xuICAgICAgICB0aGlzLmlzTWVudUhpZGRlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TWVudSgpIHtcbiAgICAgICAgdGhpcy5pc01lbnVIaWRkZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUm9vdE1lbnUoKSB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgIGl0LmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0LmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKGl0ZW06IEVjbE1lbnVJdGVtKSB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtc1xuICAgICAgICAgICAgLmZpbHRlcihpdCA9PiBpdCAhPT0gaXRlbSlcbiAgICAgICAgICAgIC5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgICAgICBpdC5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXQuaXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUhvdmVyRnJvbUFsbEl0ZW1zKCkge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXNcbiAgICAgICAgICAgIC5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgICAgICBpdC5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRXhwYW5kZWRGb3JNZW51SXRlbShpdGVtOiBFY2xNZW51SXRlbSkge1xuICAgICAgICBpdGVtLmlzRXhwYW5kZWQgPSAhaXRlbS5pc0V4cGFuZGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkhhbWJ1cmdlck1lbnUoKSB7XG4gICAgICAgIHRoaXMuaXNIYW1idXJnZXJNZW51T3BlbmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlSGFtYnVyZ2VyTWVudSgpIHtcbiAgICAgICAgdGhpcy5pc0hhbWJ1cmdlck1lbnVPcGVuZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQoXG4gICAgICAgICAgICBuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudChldnQubWVudUl0ZW0sIGV2dC5kb21FdmVudClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVSb290TWVudUl0ZW1zQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5kaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbFJvb3RNZW51SXRlbXMgYXMgYW55KTtcbiAgICAgICAgdGhpcy5jcmVhdGVSb290TWVudUl0ZW1zQ2hhbmdlc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLm9uTWVudUl0ZW1DaGFuZ2VzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZVN3aXBlR2VzdHVyZXMoKSB7XG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vbignc3dpcGVsZWZ0JywgdGhpcy5vblN3aXBlTGVmdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5oYW1tZXJ0aW1lLm9uKCdzd2lwZXJpZ2h0JywgdGhpcy5vblN3aXBlUmlnaHQuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMuY2RrQnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW0JyZWFrcG9pbnRzLkhhbmRzZXQsIEJyZWFrcG9pbnRzLlRhYmxldCwgQnJlYWtwb2ludHMuU21hbGxdKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ID0gcmVzdWx0Lm1hdGNoZXM7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZWNsLW1lbnVfX292ZXJsYXlcIiAoY2xpY2spPVwib25PdmVybGF5Q2xpY2soJGV2ZW50KVwiPjwvZGl2PlxuPGRpdiBjbGFzcz1cImVjbC1jb250YWluZXIgZWNsLW1lbnVfX2NvbnRhaW5lclwiPlxuICAgIDxhIGVjbExpbmtcbiAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICB2YXJpYW50PVwic3RhbmRhbG9uZVwiXG4gICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX29wZW5cIlxuICAgICAgICAoY2xpY2spPVwib25NZW51T3BlbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJoYW1idXJnZXJcIiBzaXplPVwic1wiPjwvZWNsLWljb24+IHt7ICdlY2wubWVudS5NRU5VJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYT5cblxuICAgIDxzZWN0aW9uIGNsYXNzPVwiZWNsLW1lbnVfX2lubmVyXCIgW2NsYXNzLmVjbC1tZW51X19pbm5lci0tZXhwYW5kZWRdPVwiaXNNZW51RXhwYW5kZWRJbk1vYmlsZVwiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiZWNsLW1lbnVfX2lubmVyLWhlYWRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19jbG9zZVwiXG4gICAgICAgICAgICAgICAgY29udGFpbmVyU3R5bGVDbGFzcz1cImVjbC1tZW51X19jbG9zZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVDbG9zZUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNsb3NlLWZpbGxlZFwiIHNpemU9XCJzXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbD57eyAnZWNsLmNvbW1vbi5DTE9TRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1tZW51X190aXRsZVwiPnt7ICdlY2wubWVudS5NRU5VJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuXG4gICAgICAgICAgICA8YnV0dG9uIGVjbEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2JhY2tcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25NZW51QmFja0NsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiPjwvZWNsLWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gZWNsQnV0dG9uTGFiZWw+e3sgJ2VjbC5jb21tb24uQkFDSycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgPHVsIGNsYXNzPVwiZWNsLW1lbnVfX2xpc3RcIiAoZWNsQ2xpY2tPdXRzaWRlKT1cIm9uQ2xpY2tPdXRzaWRlTWVudSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvdWw+XG4gICAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
@@ -1,8 +1,9 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component, Input, HostBinding, Output, EventEmitter, HostListener } from '@angular/core';
2
+ import { Component, Input, HostBinding, Output, EventEmitter, HostListener, ContentChildren, forwardRef } from '@angular/core';
3
3
  import { coerceBoolean } from '@eui/base';
4
4
  import { ECLBaseDirective } from '../../ecl-base.directive';
5
5
  import { EclMenuItemSelectEvent } from '../common/ecl-menu-item.event';
6
+ import { EclIconComponent } from '../../ecl-icon';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/common";
8
9
  import * as i2 from "@angular/router";
@@ -18,6 +19,15 @@ export class EclMenuMegaItemComponent extends ECLBaseDirective {
18
19
  this.isExpanded = true;
19
20
  this.children = [];
20
21
  }
22
+ ngAfterViewInit() {
23
+ if (this.iconComponents) {
24
+ setTimeout(() => {
25
+ this.iconComponents.forEach(icn => {
26
+ icn.class = 'ecl-menu__sublink-icon';
27
+ });
28
+ });
29
+ }
30
+ }
21
31
  onItemClick(evt) {
22
32
  this.menuItemSelect.next(new EclMenuItemSelectEvent(this, evt));
23
33
  if (!this.href) {
@@ -29,13 +39,13 @@ export class EclMenuMegaItemComponent extends ECLBaseDirective {
29
39
  }
30
40
  }
31
41
  /** @nocollapse */ EclMenuMegaItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclMenuMegaItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
32
- /** @nocollapse */ EclMenuMegaItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclMenuMegaItemComponent, selector: "ecl-menu-mega-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", href: "href", isCurrent: "isCurrent" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class.ecl-menu__subitem": "this.cmpClass", "class.ecl-menu__subitem--current": "this.isCurrent" } }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"href\" [href]=\"href\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n</a>\n\n<a *ngIf=\"!href\" \n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n</a>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
42
+ /** @nocollapse */ EclMenuMegaItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclMenuMegaItemComponent, selector: "ecl-menu-mega-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", href: "href", 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 *ngIf=\"href\" \n [href]=\"href\"\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 *ngIf=\"!href\" \n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\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>", 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.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
33
43
  __decorate([
34
44
  coerceBoolean
35
45
  ], EclMenuMegaItemComponent.prototype, "isCurrent", void 0);
36
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclMenuMegaItemComponent, decorators: [{
37
47
  type: Component,
38
- args: [{ selector: 'ecl-menu-mega-item', template: "<a *ngIf=\"href\" [href]=\"href\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n</a>\n\n<a *ngIf=\"!href\" \n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\">\n {{ label }}\n</a>\n", styles: [":host{display:list-item}\n"] }]
48
+ args: [{ selector: 'ecl-menu-mega-item', template: "<a *ngIf=\"href\" \n [href]=\"href\"\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 *ngIf=\"!href\" \n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\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>", styles: [":host{display:list-item}\n"] }]
39
49
  }], propDecorators: { id: [{
40
50
  type: Input
41
51
  }], label: [{
@@ -54,10 +64,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
54
64
  }, {
55
65
  type: HostBinding,
56
66
  args: ['class.ecl-menu__subitem--current']
67
+ }], iconComponents: [{
68
+ type: ContentChildren,
69
+ args: [forwardRef(() => EclIconComponent)]
57
70
  }], menuItemSelect: [{
58
71
  type: Output
59
72
  }], onHostClick: [{
60
73
  type: HostListener,
61
74
  args: ['click', ['$event']]
62
75
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBV3ZFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7SUFUOUQ7O1FBWWEsZUFBVSxHQUFRLElBQUksQ0FBQztRQUN2QixnQkFBVyxHQUFRLElBQUksQ0FBQztRQUN4QixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2EsYUFBUSxHQUFZLElBQUksQ0FBQztRQUd2RCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBRXRFLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFM0IsYUFBUSxHQUF1QixFQUFFLENBQUM7S0FrQnJDO0lBaEJHLFdBQVcsQ0FBQyxHQUFlO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwQixJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FDeEMsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUdELFdBQVcsQ0FBQyxHQUFlO1FBQ3ZCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDOzsrSUE3QlEsd0JBQXdCO21JQUF4Qix3QkFBd0IsNmFDZnJDLHdhQWVBO0FET21CO0lBQWQsYUFBYTsyREFBcUY7a0dBUDFGLHdCQUF3QjtrQkFUcEMsU0FBUzsrQkFDSSxvQkFBb0I7OEJBU3JCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBQ21DLFNBQVM7c0JBQWxFLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsa0NBQWtDO2dCQUU3RCxjQUFjO3NCQUF2QixNQUFNO2dCQWtCUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9lY2wtbWVudS1pdGVtLmV2ZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtbWVudS1tZWdhLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICB9XG4gICAgYF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBFY2xNZW51SXRlbSB7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJvdXRlckxpbms6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXM6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgaHJlZjogc3RyaW5nID0gJyc7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudV9fc3ViaXRlbScpIGNtcENsYXNzOiBib29sZWFuID0gdHJ1ZTtcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1tZW51X19zdWJpdGVtLS1jdXJyZW50JykgaXNDdXJyZW50OiBib29sZWFuIHwgYW55IDtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcblxuICAgIGhhc0NoaWxkcmVuOiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNFeHBhbmRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBjaGlsZHJlbjogQXJyYXk8RWNsTWVudUl0ZW0+ID0gW107XG5cbiAgICBvbkl0ZW1DbGljayhldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbVNlbGVjdC5uZXh0KFxuICAgICAgICAgICAgbmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQodGhpcywgZXZ0KVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghdGhpcy5ocmVmKSB7XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgXG4gICAgb25Ib3N0Q2xpY2soZXZ0OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBcbn1cbiIsIjxhICpuZ0lmPVwiaHJlZlwiIFtocmVmXT1cImhyZWZcIlxuICAgIGNsYXNzPVwiZWNsLW1lbnVfX3N1YmxpbmtcIlxuICAgIFtjbGFzcy5lY2wtbWVudV9fc3VibGluay0tY3VycmVudF09XCJpc0N1cnJlbnRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCI+XG4gICAge3sgbGFiZWwgfX1cbjwvYT5cblxuPGEgKm5nSWY9XCIhaHJlZlwiIFxuICAgIFtyb3V0ZXJMaW5rXT1cInJvdXRlckxpbmtcIlxuICAgIFtxdWVyeVBhcmFtc109XCJxdWVyeVBhcmFtc1wiXG4gICAgY2xhc3M9XCJlY2wtbWVudV9fc3VibGlua1wiXG4gICAgW2NsYXNzLmVjbC1tZW51X19zdWJsaW5rLS1jdXJyZW50XT1cImlzQ3VycmVudFwiXG4gICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIj5cbiAgICB7eyBsYWJlbCB9fVxuPC9hPlxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUV6SixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBV2xELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7SUFUOUQ7O1FBWWEsZUFBVSxHQUFRLElBQUksQ0FBQztRQUN2QixnQkFBVyxHQUFRLElBQUksQ0FBQztRQUN4QixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2EsYUFBUSxHQUFZLElBQUksQ0FBQztRQUt2RCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBRXRFLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFM0IsYUFBUSxHQUF1QixFQUFFLENBQUM7S0E0QnJDO0lBMUJHLGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDMUIsR0FBRyxDQUFDLEtBQUssR0FBRyx3QkFBd0IsQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFlO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwQixJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FDeEMsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUdELFdBQVcsQ0FBQyxHQUFlO1FBQ3ZCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDOzsrSUF6Q1Esd0JBQXdCO21JQUF4Qix3QkFBd0Isd2RBU0MsZ0JBQWdCLHdEQ3pCdEQsdW5CQXFCYztBREVLO0lBQWQsYUFBYTsyREFBcUY7a0dBUDFGLHdCQUF3QjtrQkFUcEMsU0FBUzsrQkFDSSxvQkFBb0I7OEJBU3JCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBQ21DLFNBQVM7c0JBQWxFLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsa0NBQWtDO2dCQUVsQixjQUFjO3NCQUFsRSxlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFFekMsY0FBYztzQkFBdkIsTUFBTTtnQkE0QlAsV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBDb250ZW50Q2hpbGRyZW4sIGZvcndhcmRSZWYsIFF1ZXJ5TGlzdCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VjbC1pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtbWVudS1tZWdhLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICB9XG4gICAgYF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBFY2xNZW51SXRlbSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJvdXRlckxpbms6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXM6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgaHJlZjogc3RyaW5nID0gJyc7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudV9fc3ViaXRlbScpIGNtcENsYXNzOiBib29sZWFuID0gdHJ1ZTtcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1tZW51X19zdWJpdGVtLS1jdXJyZW50JykgaXNDdXJyZW50OiBib29sZWFuIHwgYW55IDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFY2xJY29uQ29tcG9uZW50KSkgaWNvbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxFY2xJY29uQ29tcG9uZW50PjtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcblxuICAgIGhhc0NoaWxkcmVuOiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNFeHBhbmRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBjaGlsZHJlbjogQXJyYXk8RWNsTWVudUl0ZW0+ID0gW107XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmljb25Db21wb25lbnRzKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmljb25Db21wb25lbnRzLmZvckVhY2goaWNuID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGljbi5jbGFzcyA9ICdlY2wtbWVudV9fc3VibGluay1pY29uJztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1TZWxlY3QubmV4dChcbiAgICAgICAgICAgIG5ldyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KHRoaXMsIGV2dClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXRoaXMuaHJlZikge1xuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIFxuICAgIG9uSG9zdENsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgXG59XG4iLCI8YSAqbmdJZj1cImhyZWZcIiBcbiAgICBbaHJlZl09XCJocmVmXCJcbiAgICBjbGFzcz1cImVjbC1tZW51X19zdWJsaW5rXCJcbiAgICBbY2xhc3MuZWNsLW1lbnVfX3N1YmxpbmstLWN1cnJlbnRdPVwiaXNDdXJyZW50XCJcbiAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPGEgKm5nSWY9XCIhaHJlZlwiIFxuICAgIFtyb3V0ZXJMaW5rXT1cInJvdXRlckxpbmtcIlxuICAgIFtxdWVyeVBhcmFtc109XCJxdWVyeVBhcmFtc1wiXG4gICAgY2xhc3M9XCJlY2wtbWVudV9fc3VibGlua1wiXG4gICAgW2NsYXNzLmVjbC1tZW51X19zdWJsaW5rLS1jdXJyZW50XT1cImlzQ3VycmVudFwiXG4gICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIj5cbiAgICB7eyBsYWJlbCB9fVxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG48L2E+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPiJdfQ==