@eui/components 17.0.0-rc.6 → 17.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 (339) hide show
  1. package/docs/components/ChartComponent.html +2 -2
  2. package/docs/components/CollapsedBreadcrumbComponent.html +2 -2
  3. package/docs/components/EuiAlertComponent.html +143 -17
  4. package/docs/components/EuiAppBreadcrumbComponent.html +2 -2
  5. package/docs/components/EuiAppComponent.html +2 -2
  6. package/docs/components/EuiAppFooterComponent.html +2 -2
  7. package/docs/components/EuiAppHeaderComponent.html +2 -2
  8. package/docs/components/EuiAppSidebarBodyComponent.html +2 -2
  9. package/docs/components/EuiAppSidebarComponent.html +2 -2
  10. package/docs/components/EuiAppSidebarDrawerComponent.html +2 -2
  11. package/docs/components/EuiAppSidebarFooterComponent.html +2 -2
  12. package/docs/components/EuiAppSidebarHeaderComponent.html +2 -2
  13. package/docs/components/EuiAppSidebarHeaderUserProfileComponent.html +2 -2
  14. package/docs/components/EuiAppSidebarMenuComponent.html +4 -4
  15. package/docs/components/EuiAppToolbarComponent.html +2 -2
  16. package/docs/components/EuiAppTopMessageComponent.html +2 -2
  17. package/docs/components/EuiAutocompleteAsyncTestComponent.html +2 -2
  18. package/docs/components/EuiAutocompleteChipsAsyncTestComponent.html +2 -2
  19. package/docs/components/EuiAutocompleteChipsTestComponent.html +2 -2
  20. package/docs/components/EuiAutocompleteComponent.html +31 -19
  21. package/docs/components/EuiAutocompleteOptionComponent.html +2 -2
  22. package/docs/components/EuiAutocompleteOptionGroupComponent.html +2 -2
  23. package/docs/components/EuiAutocompleteTestComponent.html +2 -2
  24. package/docs/components/EuiAvatarBadgeComponent.html +2 -2
  25. package/docs/components/EuiAvatarComponent.html +17 -74
  26. package/docs/components/EuiAvatarIconComponent.html +2 -2
  27. package/docs/components/EuiAvatarImageComponent.html +2 -2
  28. package/docs/components/EuiAvatarListComponent.html +2 -2
  29. package/docs/components/EuiAvatarTextComponent.html +2 -2
  30. package/docs/components/EuiBadgeComponent.html +63 -639
  31. package/docs/components/EuiBlockContentComponent.html +4 -4
  32. package/docs/components/EuiBlockDocumentComponent.html +21 -728
  33. package/docs/components/EuiBreadcrumbComponent.html +2 -2
  34. package/docs/components/EuiBreadcrumbItemComponent.html +2 -2
  35. package/docs/components/EuiButtonComponent.html +2 -2
  36. package/docs/components/EuiButtonGroupComponent.html +2 -2
  37. package/docs/components/EuiButtonsComponent.html +2 -2
  38. package/docs/components/EuiCardComponent.html +2 -2
  39. package/docs/components/EuiCardContentComponent.html +71 -2
  40. package/docs/components/EuiCardFooterActionButtonsComponent.html +2 -2
  41. package/docs/components/EuiCardFooterActionIconsComponent.html +2 -2
  42. package/docs/components/EuiCardFooterComponent.html +2 -2
  43. package/docs/components/EuiCardFooterMenuContentComponent.html +2 -2
  44. package/docs/components/EuiCardHeaderBodyComponent.html +2 -2
  45. package/docs/components/EuiCardHeaderComponent.html +2 -2
  46. package/docs/components/EuiCardHeaderLeftContentComponent.html +2 -2
  47. package/docs/components/EuiCardHeaderRightContentComponent.html +2 -2
  48. package/docs/components/EuiCardHeaderSubtitleComponent.html +2 -2
  49. package/docs/components/EuiCardHeaderTitleComponent.html +2 -2
  50. package/docs/components/EuiCardMediaComponent.html +2 -2
  51. package/docs/components/EuiChipComponent.html +2 -2
  52. package/docs/components/EuiChipListComponent.html +2 -2
  53. package/docs/components/EuiCommonHeaderComponent.html +2 -2
  54. package/docs/components/EuiDashboardButtonComponent.html +3 -3
  55. package/docs/components/EuiDashboardCardComponent.html +7 -7
  56. package/docs/components/EuiDateRangeSelectorComponent.html +2 -2
  57. package/docs/components/EuiDatepickerComponent.html +2 -2
  58. package/docs/components/EuiDialogComponent.html +2 -2
  59. package/docs/components/EuiDialogContainerComponent.html +3 -3
  60. package/docs/components/EuiDimmerComponent.html +2 -2
  61. package/docs/components/EuiDisableContentComponent.html +2 -2
  62. package/docs/components/EuiDiscussionThreadComponent.html +2 -2
  63. package/docs/components/EuiDiscussionThreadItemComponent.html +2 -2
  64. package/docs/components/EuiDropdownComponent.html +2 -2
  65. package/docs/components/EuiDropdownItemComponent.html +2 -2
  66. package/docs/components/EuiEditorComponent.html +2 -2
  67. package/docs/components/EuiEditorCountersComponent.html +2 -2
  68. package/docs/components/EuiEditorHtmlViewComponent.html +2 -2
  69. package/docs/components/EuiEditorImageDialogComponent.html +2 -2
  70. package/docs/components/EuiEditorJsonViewComponent.html +2 -2
  71. package/docs/components/EuiExpandContentComponent.html +2 -2
  72. package/docs/components/EuiFeedbackMessageComponent.html +2 -2
  73. package/docs/components/EuiFieldsetComponent.html +8 -8
  74. package/docs/components/EuiFilePreviewComponent.html +2 -2
  75. package/docs/components/EuiFileUploadComponent.html +2 -2
  76. package/docs/components/EuiFileUploadProgressComponent.html +2 -2
  77. package/docs/components/EuiFooterComponent.html +2 -2
  78. package/docs/components/EuiGrowlComponent.html +2 -2
  79. package/docs/components/EuiHeaderAppComponent.html +2 -2
  80. package/docs/components/EuiHeaderAppNameComponent.html +2 -2
  81. package/docs/components/EuiHeaderAppNameLogoComponent.html +2 -2
  82. package/docs/components/EuiHeaderAppSubtitleComponent.html +2 -2
  83. package/docs/components/EuiHeaderComponent.html +2 -2
  84. package/docs/components/EuiHeaderEnvironmentComponent.html +2 -2
  85. package/docs/components/EuiHeaderLogoComponent.html +2 -2
  86. package/docs/components/EuiHeaderRightContentComponent.html +2 -2
  87. package/docs/components/EuiHeaderUserProfileComponent.html +2 -2
  88. package/docs/components/EuiIconColorComponent.html +2 -2
  89. package/docs/components/EuiIconComponent.html +2 -2
  90. package/docs/components/EuiIconSvgButtonComponent.html +2 -2
  91. package/docs/components/EuiIconSvgComponent.html +2 -2
  92. package/docs/components/EuiIconToggleComponent.html +2 -2
  93. package/docs/components/EuiInputCheckboxComponent.html +2 -2
  94. package/docs/components/EuiInputGroupComponent.html +2 -2
  95. package/docs/components/EuiInputNumberComponent.html +2 -2
  96. package/docs/components/EuiInputRadioComponent.html +2 -2
  97. package/docs/components/EuiInputTextComponent.html +2 -2
  98. package/docs/components/EuiLabelComponent.html +2 -2
  99. package/docs/components/EuiLanguageSelectorComponent.html +2 -2
  100. package/docs/components/EuiListComponent.html +2 -2
  101. package/docs/components/EuiListItemComponent.html +2 -2
  102. package/docs/components/EuiMenuComponent.html +103 -968
  103. package/docs/components/EuiMenuItemComponent.html +76 -7
  104. package/docs/components/EuiMessageBoxComponent.html +2 -2
  105. package/docs/components/EuiModalSelectorComponent.html +2 -2
  106. package/docs/components/EuiNotificationItemComponent.html +2 -2
  107. package/docs/components/EuiNotificationItemV2Component.html +2 -2
  108. package/docs/components/EuiNotificationsComponent.html +2 -2
  109. package/docs/components/EuiNotificationsV2Component.html +2 -2
  110. package/docs/components/EuiOverlayBodyComponent.html +2 -2
  111. package/docs/components/EuiOverlayComponent.html +71 -2
  112. package/docs/components/EuiOverlayFooterComponent.html +2 -2
  113. package/docs/components/EuiOverlayHeaderComponent.html +2 -2
  114. package/docs/components/EuiOverlayHeaderTitleComponent.html +2 -2
  115. package/docs/components/EuiPageBreadcrumbComponent.html +2 -2
  116. package/docs/components/EuiPageColumnComponent.html +2 -2
  117. package/docs/components/EuiPageColumnsComponent.html +2 -2
  118. package/docs/components/EuiPageComponent.html +2 -2
  119. package/docs/components/EuiPageContentComponent.html +2 -2
  120. package/docs/components/EuiPageFooterComponent.html +2 -2
  121. package/docs/components/EuiPageHeaderComponent.html +2 -2
  122. package/docs/components/EuiPageHeroHeaderComponent.html +2 -2
  123. package/docs/components/EuiPageTopContentComponent.html +2 -2
  124. package/docs/components/EuiPaginatorComponent.html +2 -2
  125. package/docs/components/EuiPopoverComponent.html +2 -2
  126. package/docs/components/EuiProgressBarComponent.html +2 -2
  127. package/docs/components/EuiProgressCircleComponent.html +2 -2
  128. package/docs/components/EuiResizableComponent.html +2 -2
  129. package/docs/components/EuiSearchComponent.html +2 -2
  130. package/docs/components/EuiSelectComponent.html +2 -2
  131. package/docs/components/EuiSidebarMenuComponent.html +5 -5
  132. package/docs/components/EuiSidebarToggleComponent.html +2 -2
  133. package/docs/components/EuiSkeletonComponent.html +2 -2
  134. package/docs/components/EuiSlideToggleComponent.html +2 -2
  135. package/docs/components/EuiSlideToggleTestComponent.html +2 -2
  136. package/docs/components/EuiTabComponent.html +2 -2
  137. package/docs/components/EuiTabContentComponent.html +2 -2
  138. package/docs/components/EuiTabLabelComponent.html +2 -2
  139. package/docs/components/EuiTableComponent.html +2 -2
  140. package/docs/components/EuiTableExpandableRowComponent.html +2 -2
  141. package/docs/components/EuiTableFilterComponent.html +2 -2
  142. package/docs/components/EuiTableSelectableHeaderComponent.html +2 -2
  143. package/docs/components/EuiTableSelectableRowComponent.html +2 -2
  144. package/docs/components/EuiTableSortableColComponent.html +2 -2
  145. package/docs/components/EuiTabsComponent.html +2 -2
  146. package/docs/components/EuiTextareaComponent.html +2 -2
  147. package/docs/components/EuiTimebarComponent.html +4 -4
  148. package/docs/components/EuiTimelineComponent.html +2 -2
  149. package/docs/components/EuiTimelineItemComponent.html +2 -2
  150. package/docs/components/EuiTimepickerComponent.html +2 -2
  151. package/docs/components/EuiToolbarAppComponent.html +2 -2
  152. package/docs/components/EuiToolbarCenterComponent.html +2 -2
  153. package/docs/components/EuiToolbarComponent.html +2 -2
  154. package/docs/components/EuiToolbarEnvironmentComponent.html +2 -2
  155. package/docs/components/EuiToolbarItemComponent.html +2 -2
  156. package/docs/components/EuiToolbarItemsComponent.html +2 -2
  157. package/docs/components/EuiToolbarLogoComponent.html +2 -2
  158. package/docs/components/EuiToolbarMenuComponent.html +6 -6
  159. package/docs/components/EuiTooltipContainerComponent.html +2 -2
  160. package/docs/components/EuiTreeComponent.html +2 -2
  161. package/docs/components/EuiTreeListComponent.html +2 -2
  162. package/docs/components/EuiTreeListItemComponent.html +2 -2
  163. package/docs/components/EuiTreeListItemContentComponent.html +2 -2
  164. package/docs/components/EuiTreeListToolbarComponent.html +2 -2
  165. package/docs/components/EuiUserProfileCardComponent.html +2 -2
  166. package/docs/components/EuiUserProfileComponent.html +2 -2
  167. package/docs/components/EuiUserProfileMenuComponent.html +2 -2
  168. package/docs/components/EuiUserProfileMenuItemComponent.html +2 -2
  169. package/docs/components/EuiWizardComponent.html +2 -2
  170. package/docs/components/EuiWizardStepComponent.html +2 -2
  171. package/docs/components/QuillEditorComponent.html +2 -2
  172. package/docs/dependencies.html +2 -2
  173. package/docs/index.html +4 -4
  174. package/docs/js/menu-wc.js +220 -229
  175. package/docs/js/menu-wc_es5.js +1 -1
  176. package/docs/js/search/search_index.js +2 -2
  177. package/docs/miscellaneous/variables.html +35 -1
  178. package/docs/modules/EuiAlertModule.html +4 -1
  179. package/docs/modules/EuiAllModule.html +0 -6
  180. package/docs/modules/EuiAppModule.html +0 -6
  181. package/docs/modules/EuiAppSidebarModule.html +4 -28
  182. package/docs/modules/EuiAppToolbarModule.html +4 -28
  183. package/docs/modules/EuiAvatarModule.html +7 -28
  184. package/docs/modules/EuiBadgeModule.html +11 -1
  185. package/docs/modules/EuiChartsModule.html +4 -28
  186. package/docs/modules/EuiFieldsetModule.html +3 -0
  187. package/docs/modules/EuiHeaderModule.html +4 -28
  188. package/docs/modules/EuiLayoutModule.html +0 -6
  189. package/docs/modules/EuiPageModule.html +4 -28
  190. package/docs/modules/EuiSidebarMenuModule.html +4 -28
  191. package/docs/modules/EuiSkeletonModule.html +4 -28
  192. package/docs/modules/EuiTimebarModule.html +10 -0
  193. package/docs/modules/EuiToolbarModule.html +4 -28
  194. package/docs/modules/EuiUserProfileModule.html +4 -28
  195. package/docs/modules.html +0 -12
  196. package/esm2022/eui-alert/eui-alert.component.mjs +75 -80
  197. package/esm2022/eui-alert/eui-alert.module.mjs +49 -0
  198. package/esm2022/eui-alert/index.mjs +2 -1
  199. package/esm2022/eui-all/eui-all.module.mjs +1 -6
  200. package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +49 -77
  201. package/esm2022/eui-avatar/avatar-badge/avatar-badge.component.mjs +1 -4
  202. package/esm2022/eui-avatar/eui-avatar-list.component.mjs +1 -4
  203. package/esm2022/eui-avatar/eui-avatar.component.mjs +20 -39
  204. package/esm2022/eui-avatar/eui-avatar.module.mjs +5 -2
  205. package/esm2022/eui-badge/eui-badge.component.mjs +40 -35
  206. package/esm2022/eui-badge/eui-badge.module.mjs +19 -0
  207. package/esm2022/eui-badge/index.mjs +2 -1
  208. package/esm2022/eui-block-content/eui-block-content.component.mjs +10 -17
  209. package/esm2022/eui-block-document/eui-block-document.component.mjs +15 -20
  210. package/esm2022/eui-card/components/eui-card-content/eui-card-content.component.mjs +6 -2
  211. package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +6 -9
  212. package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +23 -33
  213. package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +3 -3
  214. package/esm2022/eui-fieldset/eui-fieldset.component.mjs +22 -39
  215. package/esm2022/eui-fieldset/eui-fieldset.module.mjs +4 -3
  216. package/esm2022/eui-menu/eui-menu-item.component.mjs +28 -4
  217. package/esm2022/eui-menu/eui-menu.component.mjs +51 -56
  218. package/esm2022/eui-menu/models/eui-menu-item.model.mjs +2 -12
  219. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +1 -1
  220. package/esm2022/eui-overlay/eui-overlay.component.mjs +6 -2
  221. package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +2 -2
  222. package/esm2022/eui-tabs/eui-tabs.component.mjs +2 -2
  223. package/esm2022/eui-timebar/eui-timebar.component.mjs +9 -7
  224. package/esm2022/eui-tree/eui-tree.component.mjs +1 -1
  225. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +2 -2
  226. package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +1 -1
  227. package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +1 -1
  228. package/esm2022/layout/eui-user-profile/user-profile.component.mjs +1 -1
  229. package/eui-alert/eui-alert.component.d.ts +13 -23
  230. package/eui-alert/eui-alert.component.d.ts.map +1 -1
  231. package/eui-alert/eui-alert.module.d.ts +14 -0
  232. package/eui-alert/eui-alert.module.d.ts.map +1 -0
  233. package/eui-alert/index.d.ts +1 -0
  234. package/eui-alert/index.d.ts.map +1 -1
  235. package/eui-all/eui-all.module.d.ts +4 -5
  236. package/eui-all/eui-all.module.d.ts.map +1 -1
  237. package/eui-autocomplete/eui-autocomplete.component.d.ts +35 -19
  238. package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
  239. package/eui-avatar/avatar-badge/avatar-badge.component.d.ts +0 -1
  240. package/eui-avatar/avatar-badge/avatar-badge.component.d.ts.map +1 -1
  241. package/eui-avatar/eui-avatar-list.component.d.ts +0 -1
  242. package/eui-avatar/eui-avatar-list.component.d.ts.map +1 -1
  243. package/eui-avatar/eui-avatar.component.d.ts +10 -10
  244. package/eui-avatar/eui-avatar.component.d.ts.map +1 -1
  245. package/eui-avatar/eui-avatar.module.d.ts +2 -1
  246. package/eui-avatar/eui-avatar.module.d.ts.map +1 -1
  247. package/eui-badge/eui-badge.component.d.ts +8 -14
  248. package/eui-badge/eui-badge.component.d.ts.map +1 -1
  249. package/eui-badge/eui-badge.module.d.ts +10 -0
  250. package/eui-badge/eui-badge.module.d.ts.map +1 -0
  251. package/eui-badge/index.d.ts +1 -0
  252. package/eui-badge/index.d.ts.map +1 -1
  253. package/eui-block-content/eui-block-content.component.d.ts +2 -3
  254. package/eui-block-content/eui-block-content.component.d.ts.map +1 -1
  255. package/eui-block-document/eui-block-document.component.d.ts +3 -7
  256. package/eui-block-document/eui-block-document.component.d.ts.map +1 -1
  257. package/eui-card/components/eui-card-content/eui-card-content.component.d.ts +1 -0
  258. package/eui-card/components/eui-card-content/eui-card-content.component.d.ts.map +1 -1
  259. package/eui-dashboard-button/eui-dashboard-button.component.d.ts +1 -2
  260. package/eui-dashboard-button/eui-dashboard-button.component.d.ts.map +1 -1
  261. package/eui-dashboard-card/eui-dashboard-card.component.d.ts +9 -7
  262. package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
  263. package/eui-fieldset/eui-fieldset.component.d.ts +12 -8
  264. package/eui-fieldset/eui-fieldset.component.d.ts.map +1 -1
  265. package/eui-fieldset/eui-fieldset.module.d.ts +2 -1
  266. package/eui-fieldset/eui-fieldset.module.d.ts.map +1 -1
  267. package/eui-menu/eui-menu-item.component.d.ts +7 -1
  268. package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
  269. package/eui-menu/eui-menu.component.d.ts +16 -19
  270. package/eui-menu/eui-menu.component.d.ts.map +1 -1
  271. package/eui-menu/models/eui-menu-item.model.d.ts +1 -35
  272. package/eui-menu/models/eui-menu-item.model.d.ts.map +1 -1
  273. package/eui-overlay/eui-overlay.component.d.ts +1 -0
  274. package/eui-overlay/eui-overlay.component.d.ts.map +1 -1
  275. package/eui-timebar/eui-timebar.component.d.ts +2 -1
  276. package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
  277. package/fesm2022/eui-components-eui-alert.mjs +103 -68
  278. package/fesm2022/eui-components-eui-alert.mjs.map +1 -1
  279. package/fesm2022/eui-components-eui-all.mjs +0 -5
  280. package/fesm2022/eui-components-eui-all.mjs.map +1 -1
  281. package/fesm2022/eui-components-eui-autocomplete.mjs +49 -75
  282. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  283. package/fesm2022/eui-components-eui-avatar.mjs +22 -45
  284. package/fesm2022/eui-components-eui-avatar.mjs.map +1 -1
  285. package/fesm2022/eui-components-eui-badge.mjs +42 -22
  286. package/fesm2022/eui-components-eui-badge.mjs.map +1 -1
  287. package/fesm2022/eui-components-eui-block-content.mjs +9 -16
  288. package/fesm2022/eui-components-eui-block-content.mjs.map +1 -1
  289. package/fesm2022/eui-components-eui-block-document.mjs +14 -19
  290. package/fesm2022/eui-components-eui-block-document.mjs.map +1 -1
  291. package/fesm2022/eui-components-eui-card.mjs +5 -1
  292. package/fesm2022/eui-components-eui-card.mjs.map +1 -1
  293. package/fesm2022/eui-components-eui-dashboard-button.mjs +5 -8
  294. package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
  295. package/fesm2022/eui-components-eui-dashboard-card.mjs +22 -32
  296. package/fesm2022/eui-components-eui-dashboard-card.mjs.map +1 -1
  297. package/fesm2022/eui-components-eui-dialog.mjs +2 -2
  298. package/fesm2022/eui-components-eui-dialog.mjs.map +1 -1
  299. package/fesm2022/eui-components-eui-fieldset.mjs +23 -40
  300. package/fesm2022/eui-components-eui-fieldset.mjs.map +1 -1
  301. package/fesm2022/eui-components-eui-menu.mjs +74 -69
  302. package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
  303. package/fesm2022/eui-components-eui-overlay.mjs +6 -2
  304. package/fesm2022/eui-components-eui-overlay.mjs.map +1 -1
  305. package/fesm2022/eui-components-eui-tabs.mjs +4 -4
  306. package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
  307. package/fesm2022/eui-components-eui-timebar.mjs +8 -6
  308. package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
  309. package/fesm2022/eui-components-eui-tree.mjs +1 -1
  310. package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
  311. package/fesm2022/eui-components-layout.mjs +5 -5
  312. package/fesm2022/eui-components-layout.mjs.map +1 -1
  313. package/package.json +7 -13
  314. package/docs/classes/EuiMenuItem.html +0 -933
  315. package/docs/components/EuiUxTreeComponent.html +0 -3171
  316. package/docs/components/EuiUxTreeNodeComponent.html +0 -2433
  317. package/docs/components/EuiUxTreeToolbarComponent.html +0 -1040
  318. package/docs/directives/EuiUxTreeToolbarFilterButtonsTagDirective.html +0 -172
  319. package/docs/modules/EuiUxTreeModule.html +0 -210
  320. package/esm2022/eui-ux-tree/eui-components-eui-ux-tree.mjs +0 -5
  321. package/esm2022/eui-ux-tree/eui-ux-tree-node.component.mjs +0 -347
  322. package/esm2022/eui-ux-tree/eui-ux-tree-toolbar/eui-ux-tree-toolbar.component.mjs +0 -126
  323. package/esm2022/eui-ux-tree/eui-ux-tree.component.mjs +0 -490
  324. package/esm2022/eui-ux-tree/eui-ux-tree.module.mjs +0 -54
  325. package/esm2022/eui-ux-tree/index.mjs +0 -5
  326. package/eui-ux-tree/eui-components-eui-ux-tree.d.ts.map +0 -1
  327. package/eui-ux-tree/eui-ux-tree-node.component.d.ts +0 -80
  328. package/eui-ux-tree/eui-ux-tree-node.component.d.ts.map +0 -1
  329. package/eui-ux-tree/eui-ux-tree-toolbar/eui-ux-tree-toolbar.component.d.ts +0 -44
  330. package/eui-ux-tree/eui-ux-tree-toolbar/eui-ux-tree-toolbar.component.d.ts.map +0 -1
  331. package/eui-ux-tree/eui-ux-tree.component.d.ts +0 -114
  332. package/eui-ux-tree/eui-ux-tree.component.d.ts.map +0 -1
  333. package/eui-ux-tree/eui-ux-tree.module.d.ts +0 -19
  334. package/eui-ux-tree/eui-ux-tree.module.d.ts.map +0 -1
  335. package/eui-ux-tree/index.d.ts +0 -5
  336. package/eui-ux-tree/index.d.ts.map +0 -1
  337. package/eui-ux-tree/package.json +0 -3
  338. package/fesm2022/eui-components-eui-ux-tree.mjs +0 -1004
  339. package/fesm2022/eui-components-eui-ux-tree.mjs.map +0 -1
@@ -1,490 +0,0 @@
1
- /* eslint-disable */
2
- import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewChildren, ViewEncapsulation, } from '@angular/core';
3
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
- import { EuiUxTreeNodeComponent } from './eui-ux-tree-node.component';
5
- import { EuiTemplateDirective } from '@eui/components/directives';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@angular/cdk/scrolling";
9
- import * as i3 from "./eui-ux-tree-node.component";
10
- import * as i4 from "./eui-ux-tree-toolbar/eui-ux-tree-toolbar.component";
11
- import * as i5 from "@ngx-translate/core";
12
- export class EuiUxTreeComponent {
13
- constructor(cd) {
14
- this.cd = cd;
15
- this.collapsedIconClass = 'eui-icon eui-icon-plus-circle';
16
- this.expandedIconClass = 'eui-icon eui-icon-minus-circle';
17
- this.e2eAttr = 'ux-tree';
18
- this.nodeClick = new EventEmitter();
19
- this.nodeToggle = new EventEmitter();
20
- // TODO: for eUI 14 remove the [] type
21
- this.selectionChange = new EventEmitter();
22
- this.filter = new EventEmitter();
23
- this.allSelected = false;
24
- this.nbNodes = 0;
25
- this.visibleNodes = [];
26
- this.filterValue = '';
27
- this._isShowToolbar = false;
28
- this._isExpanded = false;
29
- this._isMultiselect = false;
30
- this._isRecursiveSelection = false;
31
- this._isClickTogglingNode = false;
32
- this._isShowActiveNode = false;
33
- this._isHideToggles = false;
34
- this._isHideLines = false;
35
- this._isClickSelectingNode = false;
36
- this._showFilteredChildren = false;
37
- this._expandFilteredChildren = false;
38
- this._highlightPath = false;
39
- this._autoTranslate = true;
40
- this._hasLabels = true;
41
- this._hasSelectAll = false;
42
- this._hasSelectAllFiltered = false;
43
- this._isRecursiveParentSelection = true;
44
- }
45
- get isShowToolbar() {
46
- return this._isShowToolbar;
47
- }
48
- set isShowToolbar(value) {
49
- this._isShowToolbar = coerceBooleanProperty(value);
50
- }
51
- get isExpanded() {
52
- return this._isExpanded;
53
- }
54
- set isExpanded(value) {
55
- this._isExpanded = coerceBooleanProperty(value);
56
- }
57
- get isMultiselect() {
58
- return this._isMultiselect;
59
- }
60
- set isMultiselect(value) {
61
- this._isMultiselect = coerceBooleanProperty(value);
62
- }
63
- get isRecursiveSelection() {
64
- return this._isRecursiveSelection;
65
- }
66
- set isRecursiveSelection(value) {
67
- this._isRecursiveSelection = coerceBooleanProperty(value);
68
- }
69
- get isClickTogglingNode() {
70
- return this._isClickTogglingNode;
71
- }
72
- set isClickTogglingNode(value) {
73
- this._isClickTogglingNode = coerceBooleanProperty(value);
74
- }
75
- get isShowActiveNode() {
76
- return this._isShowActiveNode;
77
- }
78
- set isShowActiveNode(value) {
79
- this._isShowActiveNode = coerceBooleanProperty(value);
80
- }
81
- get isHideToggles() {
82
- return this._isHideToggles;
83
- }
84
- set isHideToggles(value) {
85
- this._isHideToggles = coerceBooleanProperty(value);
86
- }
87
- get isHideLines() {
88
- return this._isHideLines;
89
- }
90
- set isHideLines(value) {
91
- this._isHideLines = coerceBooleanProperty(value);
92
- }
93
- get isClickSelectingNode() {
94
- return this._isClickSelectingNode;
95
- }
96
- set isClickSelectingNode(value) {
97
- this._isClickSelectingNode = coerceBooleanProperty(value);
98
- }
99
- get showFilteredChildren() {
100
- return this._showFilteredChildren;
101
- }
102
- set showFilteredChildren(value) {
103
- this._showFilteredChildren = coerceBooleanProperty(value);
104
- }
105
- get expandFilteredChildren() {
106
- return this._expandFilteredChildren;
107
- }
108
- set expandFilteredChildren(value) {
109
- this._expandFilteredChildren = coerceBooleanProperty(value);
110
- }
111
- get highlightPath() {
112
- return this._highlightPath;
113
- }
114
- set highlightPath(value) {
115
- this._highlightPath = coerceBooleanProperty(value);
116
- }
117
- get autoTranslate() {
118
- return this._autoTranslate;
119
- }
120
- set autoTranslate(value) {
121
- this._autoTranslate = coerceBooleanProperty(value);
122
- }
123
- get hasLabels() {
124
- return this._hasLabels;
125
- }
126
- set hasLabels(value) {
127
- this._hasLabels = coerceBooleanProperty(value);
128
- }
129
- get hasSelectAll() {
130
- return this._hasSelectAll;
131
- }
132
- set hasSelectAll(value) {
133
- this._hasSelectAll = coerceBooleanProperty(value);
134
- }
135
- get hasSelectAllFiltered() {
136
- return this._hasSelectAllFiltered;
137
- }
138
- set hasSelectAllFiltered(value) {
139
- this._hasSelectAllFiltered = coerceBooleanProperty(value);
140
- }
141
- get isRecursiveParentSelection() {
142
- return this._isRecursiveParentSelection;
143
- }
144
- set isRecursiveParentSelection(value) {
145
- this._isRecursiveParentSelection = coerceBooleanProperty(value);
146
- }
147
- get isMinimumOneSelected() {
148
- return this.getSelectedNodes().length > 0 && !this.allSelected;
149
- }
150
- get isAllSelected() {
151
- return this.getSelectedNodes().length === this.nbNodes;
152
- }
153
- ngOnChanges(changes) {
154
- if (changes && changes['nodes']) {
155
- this.visibleNodes = this.visible(this.nodes);
156
- }
157
- }
158
- ngOnInit() {
159
- this.getNbNodes(this.nodes);
160
- }
161
- ngAfterContentInit() {
162
- if (this.isExpanded) {
163
- this.setNodesExpandedState(this.nodes, true);
164
- }
165
- this.setParentNode(this.nodes, null);
166
- this.templates.forEach((item) => {
167
- if (item.getType() === 'nodeContent') {
168
- this.nodeContentTemplate = item.template;
169
- }
170
- });
171
- }
172
- visible(nodes) {
173
- if (this.hasSelectAllFiltered) {
174
- return this.getVisibleNodesRecursive(nodes);
175
- }
176
- else {
177
- return nodes.filter((n) => n.visible);
178
- }
179
- }
180
- getNbNodes(nodes) {
181
- nodes.forEach((node) => {
182
- this.nbNodes++;
183
- if (node.hasChildren) {
184
- node.children.forEach((link) => {
185
- this.getNbNodes([link]);
186
- });
187
- }
188
- });
189
- }
190
- onSelectAllChange(e) {
191
- this.allSelected = e.target.checked;
192
- if (!e.target.check) {
193
- this.resetSelection();
194
- }
195
- if (this.hasSelectAllFiltered) {
196
- this.setNodesSelectedFilteredState(this.visibleNodes, e.target.checked);
197
- }
198
- else {
199
- this.setNodesSelectedState(this.nodes, e.target.checked);
200
- }
201
- }
202
- getSelectedNodes() {
203
- if (this.filterValue !== '' && this.allSelected && this.hasSelectAllFiltered) {
204
- return this.visibleNodes;
205
- }
206
- else {
207
- return this.getSelectedNodesRecursive(this.nodes);
208
- }
209
- }
210
- onNodeToggle(UxLinkLegacy) {
211
- this.nodeToggle.emit(UxLinkLegacy);
212
- }
213
- onNodeClick(UxLinkLegacy) {
214
- if (!UxLinkLegacy.disabled) {
215
- this.nodeClick.emit(UxLinkLegacy);
216
- if (this.isClickTogglingNode && UxLinkLegacy.hasChildren) {
217
- this.onNodeToggle(UxLinkLegacy);
218
- }
219
- if (!this.isMultiselect && this.isShowActiveNode) {
220
- this.setNodesSelectedState(this.nodes, false);
221
- UxLinkLegacy.selected = true;
222
- }
223
- }
224
- }
225
- onExpandAll(event) {
226
- this.setNodesExpandedState(this.nodes, true);
227
- }
228
- onCollapseAll(event) {
229
- this.setNodesExpandedState(this.nodes, false);
230
- }
231
- onSelectionChange(UxLinkLegacy) {
232
- if (!UxLinkLegacy.selected) {
233
- this.allSelected = false;
234
- }
235
- this.selectionChange.next(UxLinkLegacy);
236
- }
237
- onFilter(filterValue) {
238
- if (filterValue !== '') {
239
- this.setNodesVisibleState(this.nodes, false);
240
- if (!this.expandFilteredChildren) {
241
- this.nodes.forEach((node) => {
242
- this.isFilterMatched(node, filterValue);
243
- });
244
- }
245
- if (this.expandFilteredChildren) {
246
- this.nodes.forEach((node) => {
247
- this.isFilterMatchedExpand(node, filterValue);
248
- });
249
- this.setNodesVisibleState(this.nodes, true);
250
- }
251
- if (this.showFilteredChildren) {
252
- this.nodes.forEach((node) => {
253
- this.isVisibleChildren(node, filterValue);
254
- });
255
- }
256
- if (!this.expandFilteredChildren) {
257
- this.setNodesExpandedState(this.nodes, true);
258
- }
259
- this.visibleNodes = this.visible(this.nodes);
260
- }
261
- else {
262
- this.setNodesVisibleState(this.nodes, true);
263
- this.visibleNodes = this.visible(this.nodes);
264
- this.virtualScrolling?.scrollToIndex(0);
265
- }
266
- if (this.hasSelectAllFiltered) {
267
- this.setNodesSelectedFilteredState(this.visibleNodes, this.allSelected);
268
- this.filterValue = filterValue;
269
- this.cd.detectChanges();
270
- }
271
- this.filter.emit(filterValue);
272
- }
273
- isFilterMatchedExpand(node, filterValue) {
274
- node['highlighted'] = false;
275
- if (node.label.toUpperCase().indexOf(filterValue.toUpperCase()) !== -1) {
276
- node.expanded = true;
277
- node['highlighted'] = true;
278
- }
279
- else {
280
- node.expanded = false;
281
- node['highlighted'] = false;
282
- }
283
- if (node.children) {
284
- node.children.forEach((childrenNode) => {
285
- this.isFilterMatchedExpand(childrenNode, filterValue);
286
- if (childrenNode.expanded) {
287
- node.expanded = true;
288
- node['highlighted'] = true;
289
- }
290
- });
291
- }
292
- }
293
- trackByFn(index, item) {
294
- return item.id;
295
- }
296
- checkForChildren() {
297
- return !this.nodes.some((node) => node.hasChildren);
298
- }
299
- resetSelection() {
300
- this.resetNode(this.nodes);
301
- // TODO: investigate if we can emit null instead of []
302
- this.selectionChange.emit([]);
303
- }
304
- resetNode(nodes) {
305
- nodes.forEach((node) => {
306
- node.selected = false;
307
- if (node.children && node.children.length > 0) {
308
- this.resetNode(node.children);
309
- }
310
- });
311
- }
312
- isVisibleChildren(node, filterValue) {
313
- if (node.parent && node.parent.visible === true && node.parent.label.toUpperCase().indexOf(filterValue.toUpperCase()) !== -1) {
314
- node.visible = true;
315
- }
316
- if (node.children) {
317
- node.children.forEach((childrenNode) => {
318
- this.isVisibleChildren(childrenNode, filterValue);
319
- });
320
- }
321
- }
322
- getSelectedNodesRecursive(nodes) {
323
- return (nodes || []).reduce((acc, node) => {
324
- if (node.hasChildren) {
325
- return node.selected && !node.indeterminate
326
- ? [...acc, node, ...this.getSelectedNodesRecursive(node.children)]
327
- : [...acc, ...this.getSelectedNodesRecursive(node.children)];
328
- }
329
- else {
330
- return node.selected ? [...acc, node] : [...acc];
331
- }
332
- }, []);
333
- }
334
- getVisibleNodesRecursive(nodes) {
335
- return (nodes || []).reduce((acc, node) => {
336
- if (node.hasChildren) {
337
- return node.visible
338
- ? [...acc, node, ...this.getVisibleNodesRecursive(node.children)]
339
- : [...acc, ...this.getVisibleNodesRecursive(node.children)];
340
- }
341
- else {
342
- return node.visible ? [...acc, node] : [...acc];
343
- }
344
- }, []);
345
- }
346
- isFilterMatched(node, filterValue) {
347
- if (node.label?.toUpperCase().indexOf(filterValue?.toUpperCase()) !== -1) {
348
- this.virtualScrolling?.scrollToIndex(0);
349
- node.visible = true;
350
- }
351
- else {
352
- node.visible = false;
353
- }
354
- if (node.children) {
355
- node.children.forEach((childrenNode) => {
356
- this.isFilterMatched(childrenNode, filterValue);
357
- if (childrenNode.visible) {
358
- node.visible = true;
359
- }
360
- });
361
- }
362
- }
363
- setNodesExpandedState(nodes, expanded) {
364
- nodes.forEach((node) => {
365
- node.expanded = expanded;
366
- if (node.children) {
367
- this.setNodesExpandedState(node.children, expanded);
368
- }
369
- });
370
- }
371
- setNodesVisibleState(nodes, visible) {
372
- nodes.forEach((node) => {
373
- node.visible = visible;
374
- if (node.children) {
375
- this.setNodesVisibleState(node.children, visible);
376
- }
377
- });
378
- }
379
- setNodesSelectedState(nodes, selected) {
380
- nodes.forEach((node) => {
381
- node.selected = selected;
382
- if (node.children) {
383
- this.setNodesSelectedState(node.children, selected);
384
- }
385
- if (this.hasSelectAll) {
386
- this.selectionChange.emit(node);
387
- }
388
- });
389
- }
390
- setNodesSelectedFilteredState(nodes, selected) {
391
- nodes.forEach((node) => {
392
- if (node.visible) {
393
- node.selected = selected;
394
- if (node.children) {
395
- this.setNodesSelectedFilteredState(node.children, selected);
396
- }
397
- if (this.hasSelectAllFiltered) {
398
- this.selectionChange.emit(node);
399
- }
400
- }
401
- });
402
- }
403
- setParentNode(nodes, parentNode) {
404
- nodes.forEach((node) => {
405
- if (parentNode) {
406
- node.parent = parentNode;
407
- }
408
- if (node.children) {
409
- this.setParentNode(node.children, node);
410
- }
411
- });
412
- }
413
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiUxTreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
414
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EuiUxTreeComponent, selector: "eui-ux-tree", inputs: { nodes: "nodes", collapseAllLabel: "collapseAllLabel", expandAllLabel: "expandAllLabel", filterLabel: "filterLabel", collapsedIconClass: "collapsedIconClass", expandedIconClass: "expandedIconClass", setFilterValue: "setFilterValue", e2eAttr: "e2eAttr", isShowToolbar: "isShowToolbar", isExpanded: "isExpanded", isMultiselect: "isMultiselect", isRecursiveSelection: "isRecursiveSelection", isClickTogglingNode: "isClickTogglingNode", isShowActiveNode: "isShowActiveNode", isHideToggles: "isHideToggles", isHideLines: "isHideLines", isClickSelectingNode: "isClickSelectingNode", showFilteredChildren: "showFilteredChildren", expandFilteredChildren: "expandFilteredChildren", highlightPath: "highlightPath", autoTranslate: "autoTranslate", hasLabels: "hasLabels", hasSelectAll: "hasSelectAll", hasSelectAllFiltered: "hasSelectAllFiltered", isRecursiveParentSelection: "isRecursiveParentSelection" }, outputs: { nodeClick: "nodeClick", nodeToggle: "nodeToggle", selectionChange: "selectionChange", filter: "filter" }, queries: [{ propertyName: "templateVariable", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "templates", predicate: EuiTemplateDirective }], viewQueries: [{ propertyName: "virtualScrolling", first: true, predicate: ["virtualScrolling"], descendants: true }, { propertyName: "treeNodes", predicate: EuiUxTreeNodeComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<eui-ux-tree-toolbar\n *ngIf=\"isShowToolbar\"\n [isVisible]=\"isShowToolbar\"\n [isToggleVisible]=\"!isHideToggles\"\n (filter)=\"onFilter($event)\"\n [filterValue]=\"setFilterValue\"\n (expandAll)=\"onExpandAll($event)\"\n (collapseAll)=\"onCollapseAll($event)\"\n filterLabel=\"{{ filterLabel }}\"\n [expandAllLabel]=\"expandAllLabel ? expandAllLabel : null\"\n collapseAllLabel=\"{{ collapseAllLabel }}\"\n [isToggleExpanded]=\"isExpanded\"\n [hasLabels]=\"hasLabels\"\n attr.data-e2e=\"{{ e2eAttr }}-a-toolbar-filter\">\n</eui-ux-tree-toolbar>\n\n<div class=\"eui-u-flex\" *ngIf=\"hasSelectAll || hasSelectAllFiltered\">\n <input\n type=\"checkbox\"\n class=\"ux-input__checkbox\"\n id=\"selectAll\"\n [checked]=\"isMinimumOneSelected ? 'checked' : null\"\n (change)=\"onSelectAllChange($event)\" />\n <label\n class=\"ux-tree__node-checkbox-label\"\n [class.checkbox-label-indeterminate]=\"isMinimumOneSelected && !isAllSelected\"\n for=\"selectAll\"\n [class.ux-tree__node-checkbox-label--onelevel]=\"checkForChildren()\">\n <ng-container *ngIf=\"!allSelected && !isMinimumOneSelected && !isAllSelected\">\n {{ 'eui.uxtree.SELECT-ALL' | translate }}\n </ng-container>\n <ng-container *ngIf=\"allSelected || isMinimumOneSelected || isAllSelected\">\n {{ 'eui.uxtree.UNSELECT-ALL' | translate }}\n </ng-container>\n </label>\n</div>\n<ng-container *ngIf=\"nodes.length > 500 && !hasSelectAll && !hasSelectAllFiltered; else noVirtualScroll\">\n <cdk-virtual-scroll-viewport\n #virtualScrolling\n itemSize=\"30\"\n class=\"ux-tree__virtual-scrolling__container\"\n minBufferPx=\"2000\"\n maxBufferPx=\"2400\">\n <div *cdkVirtualFor=\"let node of visibleNodes; trackBy: trackByFn\" class=\"ux-tree__virtual-scrolling__item\">\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <eui-ux-tree-node\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </eui-ux-tree-node>\n </ul>\n </div>\n </cdk-virtual-scroll-viewport>\n</ng-container>\n\n<ng-template #noVirtualScroll>\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <eui-ux-tree-node\n *ngFor=\"let node of nodes; trackBy: trackByFn\"\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </eui-ux-tree-node>\n </ul>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.ux-tree,.ux-tree ul{list-style:none;margin:0 0 0 var(--eui-base-spacing-xs);padding:0;position:relative}.ux-tree ul{margin-left:var(--eui-base-spacing-m)}ul.ux-tree:before{content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute}.ux-tree:before,.ux-tree ul:before{border-left:1px solid var(--eui-base-color-grey-20);bottom:0;content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute;top:0;width:0}.ux-tree li{cursor:pointer;line-height:calc(1.75 * var(--eui-base-spacing-m));margin:0;padding:0 0 0 var(--eui-base-spacing-s);position:relative}.ux-tree li:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-xl)}.ux-tree li.ux-tree__node--expandable:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-s)}.ux-tree li.ux-tree__node--disabled{pointer-events:none;cursor:none}.ux-tree li.last-child:before{bottom:0;height:auto;top:var(--eui-base-spacing-m)}.ux-tree--onelevel .ux-tree__node{padding:0}.ux-tree__node-wrapper{align-items:center;display:flex;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-wrapper .ux-tree__parent{margin-left:var(--eui-base-spacing-2xs)}.ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree--onelevel .ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-xs)!important;margin-right:var(--eui-base-spacing-xs)}.ux-tree__node-wrapper .ux-tree__custom-content{align-items:center;display:inline-flex}.ux-tree__node-wrapper .ux-tree__custom-content.ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox{clip:auto}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox--selected:after{background:transparent;color:var(--eui-color-white);height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\");position:absolute!important}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox.checkbox-label-indeterminate:after{background:transparent;color:var(--eui-base-color-white);content:\"\\2013\"!important;position:relative;left:4px;bottom:2px}.ux-tree__node-label{margin-left:var(--eui-base-spacing-xl);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label.ux-tree__node-label-parent{margin-left:0}.ux-tree__node-label:focus,.ux-tree__node-label:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node--selected .ux-tree__node-label{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-label-wrapped{margin-left:var(--eui-base-spacing-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label-wrapped:focus,.ux-tree__node-label-wrapped:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node-label-wrapped .ux-tree__node-label--highlighted{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.ux-tree__node--selected .ux-tree__node-label-wrapped{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-toggle-icon{color:var(--eui-base-color-primary-100)}.ux-tree__node-toggle-icon .ux-button__icon{font-size:var(--eui-base-font-size-xl)!important}.ux-tree__node-type{align-items:center;background-color:var(--eui-base-color-grey-80);color:var(--eui-base-color-white);display:inline-flex;font-size:var(--eui-base-font-size-s);height:var(--eui-base-spacing-m);margin:var(--eui-base-spacing-2xs) 0 0 var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-2xs);text-decoration:none}.ux-tree__node-type.ux-tree__node-type-parent{margin-left:var(--eui-base-spacing-xs)}.ux-tree__node-icon{color:var(--eui-base-color-grey-90);display:inline-flex}.ux-tree__node-type--primary{background-color:var(--eui-base-color-primary-100)}.ux-tree__node-type--info{background-color:var(--eui-base-color-info-100)}.ux-tree__node-type--success{background-color:var(--eui-base-color-success-100)}.ux-tree__node-type--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-grey-100)}.ux-tree__node-type--danger{background-color:var(--eui-base-color-danger-100)}.ux-tree__node-badge{margin-left:var(--eui-base-spacing-xs);min-width:var(--eui-base-spacing-xl)}.ux-tree__node-metacontent-toggle{display:flex;font-size:var(--eui-base-font-size);margin-left:var(--eui-base-spacing-s);padding:0 var(--eui-base-spacing-3xs);box-shadow:var(--eui-base-shadow-1)}.ux-tree__node-metacontent{background-color:var(--eui-base-color-grey-5);margin-left:var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-m)}.ux-tree__node-checkbox-label{margin:0!important;padding:0!important}.ux-tree__node-checkbox-label:after{left:12px!important}.ux-tree__node-checkbox-label--onelevel{margin:0 auto!important}.ux-tree--multiselect .ux-tree__node-wrapper{margin:3px 0}.ux-tree--multiselect .ux-tree__node-wrapper.ux-tree__node--selected .ux-tree__node-label{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.ux-tree--multiselect .ux-tree__node-label{margin-left:0;padding-left:var(--eui-base-spacing-s);padding-right:var(--eui-base-spacing-s)}.ux-tree--multiselect .ux-tree__node .ux-tree__parent{line-height:normal;margin-left:0}.ux-tree--multiselect .ux-tree__node .ux-tree__leaf{line-height:normal;margin-left:var(--eui-base-spacing-xl)}.ux-tree--onelevel{margin:0}.ux-tree--onelevel:before{border-left:none}.ux-tree--onelevel .ux-tree__node:before{border-top:none}.ux-tree--hidelines{margin:0}.ux-tree--hidelines .ux-tree__nodes:before{border-left:none}.ux-tree--hidelines .ux-tree__node:before{display:none}.ux-tree--hidelines:before{border-left:none}.ux-tree__virtual-scrolling__container{height:200px}.ux-tree__virtual-scrolling__item{height:30px}.ux-tree__toolbar{margin-bottom:var(--eui-base-spacing-m)}.ux-tree__toolbar-trigger{float:left;margin-right:var(--eui-base-spacing-xs)}.ux-tree__toolbar-filter{float:left;position:relative}.ux-tree__toolbar-filter-input{min-width:100px}.ux-tree__toolbar-filter-input-search-icon{position:absolute;right:var(--eui-base-spacing-s);top:var(--eui-base-spacing-s)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox{clip:auto;margin-right:var(--eui-base-spacing-2xs)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox+label:after{content:none!important}.ux-a-toolbar-filter{display:flex;padding-bottom:var(--eui-base-spacing-m);position:relative;width:100%}.ux-a-toolbar-filter-content{align-items:center;display:flex;flex-grow:1}.ux-a-toolbar-filter-sub-content{margin-left:auto}.ux-a-toolbar-filter-trigger-wrapper{display:flex;flex-shrink:0}.ux-a-toolbar-filter-trigger{margin-right:var(--eui-base-spacing-xs)}.ux-a-toolbar-filter-trigger.ux-button{border-color:var(--eui-base-color-grey-20)!important;box-shadow:none}.eui-t-compact .ux-a-toolbar-filter-trigger.ux-button.ux-button--outline{padding:8px var(--eui-base-spacing-m)}.ux-a-toolbar-filter-trigger .eui-icon{font-size:var(--eui-base-font-size-xl)}.ux-a-toolbar-filter-filter{margin-right:var(--eui-base-spacing-xs);position:relative;width:100%}.ux-a-toolbar-filter-filter .eui-icon{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-xl)}.ux-a-toolbar-filter-filter-input{width:100%;width:calc(100% - 36px)!important}.ux-a-toolbar-filter-filter-input-search-icon{position:absolute;right:var(--eui-base-spacing-s);top:var(--eui-base-spacing-s)}.ux-a-toolbar-filter uxtoolbarfilterbuttons .ux-dropdown-button{border:1px solid var(--eui-base-color-grey-20);box-shadow:none}.eui-t-compact .ux-a-toolbar-filter uxtoolbarfilterbuttons .ux-dropdown-button{padding:8px var(--eui-base-spacing-s)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i3.EuiUxTreeNodeComponent, selector: "eui-ux-tree-node", inputs: ["expandedIconClass", "collapsedIconClass", "templateVariable", "node", "nodeContentTemplate", "e2eAttr", "isFirst", "isLast", "isRootNode", "isClickTogglingNode", "isMultiselect", "isRecursiveSelection", "isRecursiveParentSelection", "isShowActiveNode", "isHideToggles", "isClickSelectingNode", "highlightPath", "autoTranslate", "hasSelectAll"], outputs: ["nodeClick", "nodeToggle", "selectionChange"] }, { kind: "component", type: i4.EuiUxTreeToolbarComponent, selector: "eui-ux-tree-toolbar", inputs: ["isVisible", "filterLabel", "expandAllLabel", "collapseAllLabel", "isFilterVisible", "isToggleVisible", "isToggleExpanded", "filterValue", "hasLabels", "e2eAttr"], outputs: ["filter", "expandAll", "collapseAll"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
415
- }
416
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiUxTreeComponent, decorators: [{
417
- type: Component,
418
- args: [{ selector: 'eui-ux-tree', encapsulation: ViewEncapsulation.None, template: "<eui-ux-tree-toolbar\n *ngIf=\"isShowToolbar\"\n [isVisible]=\"isShowToolbar\"\n [isToggleVisible]=\"!isHideToggles\"\n (filter)=\"onFilter($event)\"\n [filterValue]=\"setFilterValue\"\n (expandAll)=\"onExpandAll($event)\"\n (collapseAll)=\"onCollapseAll($event)\"\n filterLabel=\"{{ filterLabel }}\"\n [expandAllLabel]=\"expandAllLabel ? expandAllLabel : null\"\n collapseAllLabel=\"{{ collapseAllLabel }}\"\n [isToggleExpanded]=\"isExpanded\"\n [hasLabels]=\"hasLabels\"\n attr.data-e2e=\"{{ e2eAttr }}-a-toolbar-filter\">\n</eui-ux-tree-toolbar>\n\n<div class=\"eui-u-flex\" *ngIf=\"hasSelectAll || hasSelectAllFiltered\">\n <input\n type=\"checkbox\"\n class=\"ux-input__checkbox\"\n id=\"selectAll\"\n [checked]=\"isMinimumOneSelected ? 'checked' : null\"\n (change)=\"onSelectAllChange($event)\" />\n <label\n class=\"ux-tree__node-checkbox-label\"\n [class.checkbox-label-indeterminate]=\"isMinimumOneSelected && !isAllSelected\"\n for=\"selectAll\"\n [class.ux-tree__node-checkbox-label--onelevel]=\"checkForChildren()\">\n <ng-container *ngIf=\"!allSelected && !isMinimumOneSelected && !isAllSelected\">\n {{ 'eui.uxtree.SELECT-ALL' | translate }}\n </ng-container>\n <ng-container *ngIf=\"allSelected || isMinimumOneSelected || isAllSelected\">\n {{ 'eui.uxtree.UNSELECT-ALL' | translate }}\n </ng-container>\n </label>\n</div>\n<ng-container *ngIf=\"nodes.length > 500 && !hasSelectAll && !hasSelectAllFiltered; else noVirtualScroll\">\n <cdk-virtual-scroll-viewport\n #virtualScrolling\n itemSize=\"30\"\n class=\"ux-tree__virtual-scrolling__container\"\n minBufferPx=\"2000\"\n maxBufferPx=\"2400\">\n <div *cdkVirtualFor=\"let node of visibleNodes; trackBy: trackByFn\" class=\"ux-tree__virtual-scrolling__item\">\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <eui-ux-tree-node\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </eui-ux-tree-node>\n </ul>\n </div>\n </cdk-virtual-scroll-viewport>\n</ng-container>\n\n<ng-template #noVirtualScroll>\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <eui-ux-tree-node\n *ngFor=\"let node of nodes; trackBy: trackByFn\"\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </eui-ux-tree-node>\n </ul>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.ux-tree,.ux-tree ul{list-style:none;margin:0 0 0 var(--eui-base-spacing-xs);padding:0;position:relative}.ux-tree ul{margin-left:var(--eui-base-spacing-m)}ul.ux-tree:before{content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute}.ux-tree:before,.ux-tree ul:before{border-left:1px solid var(--eui-base-color-grey-20);bottom:0;content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute;top:0;width:0}.ux-tree li{cursor:pointer;line-height:calc(1.75 * var(--eui-base-spacing-m));margin:0;padding:0 0 0 var(--eui-base-spacing-s);position:relative}.ux-tree li:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-xl)}.ux-tree li.ux-tree__node--expandable:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-s)}.ux-tree li.ux-tree__node--disabled{pointer-events:none;cursor:none}.ux-tree li.last-child:before{bottom:0;height:auto;top:var(--eui-base-spacing-m)}.ux-tree--onelevel .ux-tree__node{padding:0}.ux-tree__node-wrapper{align-items:center;display:flex;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-wrapper .ux-tree__parent{margin-left:var(--eui-base-spacing-2xs)}.ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree--onelevel .ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-xs)!important;margin-right:var(--eui-base-spacing-xs)}.ux-tree__node-wrapper .ux-tree__custom-content{align-items:center;display:inline-flex}.ux-tree__node-wrapper .ux-tree__custom-content.ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox{clip:auto}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox--selected:after{background:transparent;color:var(--eui-color-white);height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\");position:absolute!important}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox.checkbox-label-indeterminate:after{background:transparent;color:var(--eui-base-color-white);content:\"\\2013\"!important;position:relative;left:4px;bottom:2px}.ux-tree__node-label{margin-left:var(--eui-base-spacing-xl);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label.ux-tree__node-label-parent{margin-left:0}.ux-tree__node-label:focus,.ux-tree__node-label:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node--selected .ux-tree__node-label{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-label-wrapped{margin-left:var(--eui-base-spacing-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label-wrapped:focus,.ux-tree__node-label-wrapped:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node-label-wrapped .ux-tree__node-label--highlighted{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.ux-tree__node--selected .ux-tree__node-label-wrapped{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-toggle-icon{color:var(--eui-base-color-primary-100)}.ux-tree__node-toggle-icon .ux-button__icon{font-size:var(--eui-base-font-size-xl)!important}.ux-tree__node-type{align-items:center;background-color:var(--eui-base-color-grey-80);color:var(--eui-base-color-white);display:inline-flex;font-size:var(--eui-base-font-size-s);height:var(--eui-base-spacing-m);margin:var(--eui-base-spacing-2xs) 0 0 var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-2xs);text-decoration:none}.ux-tree__node-type.ux-tree__node-type-parent{margin-left:var(--eui-base-spacing-xs)}.ux-tree__node-icon{color:var(--eui-base-color-grey-90);display:inline-flex}.ux-tree__node-type--primary{background-color:var(--eui-base-color-primary-100)}.ux-tree__node-type--info{background-color:var(--eui-base-color-info-100)}.ux-tree__node-type--success{background-color:var(--eui-base-color-success-100)}.ux-tree__node-type--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-grey-100)}.ux-tree__node-type--danger{background-color:var(--eui-base-color-danger-100)}.ux-tree__node-badge{margin-left:var(--eui-base-spacing-xs);min-width:var(--eui-base-spacing-xl)}.ux-tree__node-metacontent-toggle{display:flex;font-size:var(--eui-base-font-size);margin-left:var(--eui-base-spacing-s);padding:0 var(--eui-base-spacing-3xs);box-shadow:var(--eui-base-shadow-1)}.ux-tree__node-metacontent{background-color:var(--eui-base-color-grey-5);margin-left:var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-m)}.ux-tree__node-checkbox-label{margin:0!important;padding:0!important}.ux-tree__node-checkbox-label:after{left:12px!important}.ux-tree__node-checkbox-label--onelevel{margin:0 auto!important}.ux-tree--multiselect .ux-tree__node-wrapper{margin:3px 0}.ux-tree--multiselect .ux-tree__node-wrapper.ux-tree__node--selected .ux-tree__node-label{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.ux-tree--multiselect .ux-tree__node-label{margin-left:0;padding-left:var(--eui-base-spacing-s);padding-right:var(--eui-base-spacing-s)}.ux-tree--multiselect .ux-tree__node .ux-tree__parent{line-height:normal;margin-left:0}.ux-tree--multiselect .ux-tree__node .ux-tree__leaf{line-height:normal;margin-left:var(--eui-base-spacing-xl)}.ux-tree--onelevel{margin:0}.ux-tree--onelevel:before{border-left:none}.ux-tree--onelevel .ux-tree__node:before{border-top:none}.ux-tree--hidelines{margin:0}.ux-tree--hidelines .ux-tree__nodes:before{border-left:none}.ux-tree--hidelines .ux-tree__node:before{display:none}.ux-tree--hidelines:before{border-left:none}.ux-tree__virtual-scrolling__container{height:200px}.ux-tree__virtual-scrolling__item{height:30px}.ux-tree__toolbar{margin-bottom:var(--eui-base-spacing-m)}.ux-tree__toolbar-trigger{float:left;margin-right:var(--eui-base-spacing-xs)}.ux-tree__toolbar-filter{float:left;position:relative}.ux-tree__toolbar-filter-input{min-width:100px}.ux-tree__toolbar-filter-input-search-icon{position:absolute;right:var(--eui-base-spacing-s);top:var(--eui-base-spacing-s)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox{clip:auto;margin-right:var(--eui-base-spacing-2xs)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox+label:after{content:none!important}.ux-a-toolbar-filter{display:flex;padding-bottom:var(--eui-base-spacing-m);position:relative;width:100%}.ux-a-toolbar-filter-content{align-items:center;display:flex;flex-grow:1}.ux-a-toolbar-filter-sub-content{margin-left:auto}.ux-a-toolbar-filter-trigger-wrapper{display:flex;flex-shrink:0}.ux-a-toolbar-filter-trigger{margin-right:var(--eui-base-spacing-xs)}.ux-a-toolbar-filter-trigger.ux-button{border-color:var(--eui-base-color-grey-20)!important;box-shadow:none}.eui-t-compact .ux-a-toolbar-filter-trigger.ux-button.ux-button--outline{padding:8px var(--eui-base-spacing-m)}.ux-a-toolbar-filter-trigger .eui-icon{font-size:var(--eui-base-font-size-xl)}.ux-a-toolbar-filter-filter{margin-right:var(--eui-base-spacing-xs);position:relative;width:100%}.ux-a-toolbar-filter-filter .eui-icon{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-xl)}.ux-a-toolbar-filter-filter-input{width:100%;width:calc(100% - 36px)!important}.ux-a-toolbar-filter-filter-input-search-icon{position:absolute;right:var(--eui-base-spacing-s);top:var(--eui-base-spacing-s)}.ux-a-toolbar-filter uxtoolbarfilterbuttons .ux-dropdown-button{border:1px solid var(--eui-base-color-grey-20);box-shadow:none}.eui-t-compact .ux-a-toolbar-filter uxtoolbarfilterbuttons .ux-dropdown-button{padding:8px var(--eui-base-spacing-s)}\n"] }]
419
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { nodes: [{
420
- type: Input
421
- }], collapseAllLabel: [{
422
- type: Input
423
- }], expandAllLabel: [{
424
- type: Input
425
- }], filterLabel: [{
426
- type: Input
427
- }], collapsedIconClass: [{
428
- type: Input
429
- }], expandedIconClass: [{
430
- type: Input
431
- }], setFilterValue: [{
432
- type: Input
433
- }], e2eAttr: [{
434
- type: Input
435
- }], nodeClick: [{
436
- type: Output
437
- }], nodeToggle: [{
438
- type: Output
439
- }], selectionChange: [{
440
- type: Output
441
- }], filter: [{
442
- type: Output
443
- }], templateVariable: [{
444
- type: ContentChild,
445
- args: [TemplateRef]
446
- }], templates: [{
447
- type: ContentChildren,
448
- args: [EuiTemplateDirective]
449
- }], treeNodes: [{
450
- type: ViewChildren,
451
- args: [EuiUxTreeNodeComponent]
452
- }], virtualScrolling: [{
453
- type: ViewChild,
454
- args: ['virtualScrolling']
455
- }], isShowToolbar: [{
456
- type: Input
457
- }], isExpanded: [{
458
- type: Input
459
- }], isMultiselect: [{
460
- type: Input
461
- }], isRecursiveSelection: [{
462
- type: Input
463
- }], isClickTogglingNode: [{
464
- type: Input
465
- }], isShowActiveNode: [{
466
- type: Input
467
- }], isHideToggles: [{
468
- type: Input
469
- }], isHideLines: [{
470
- type: Input
471
- }], isClickSelectingNode: [{
472
- type: Input
473
- }], showFilteredChildren: [{
474
- type: Input
475
- }], expandFilteredChildren: [{
476
- type: Input
477
- }], highlightPath: [{
478
- type: Input
479
- }], autoTranslate: [{
480
- type: Input
481
- }], hasLabels: [{
482
- type: Input
483
- }], hasSelectAll: [{
484
- type: Input
485
- }], hasSelectAllFiltered: [{
486
- type: Input
487
- }], isRecursiveParentSelection: [{
488
- type: Input
489
- }] } });
490
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXV4LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXV4LXRyZWUvZXVpLXV4LXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXV4LXRyZWUvZXVpLXV4LXRyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FFcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBUWxFLE1BQU0sT0FBTyxrQkFBa0I7SUFxQjNCLFlBQW9CLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBaEJoQyx1QkFBa0IsR0FBRywrQkFBK0IsQ0FBQztRQUNyRCxzQkFBaUIsR0FBRyxnQ0FBZ0MsQ0FBQztRQUVyRCxZQUFPLEdBQUcsU0FBUyxDQUFDO1FBRW5CLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUM3QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDeEQsc0NBQXNDO1FBQzVCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDeEQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFTdkMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRWxCLGdCQUFXLEdBQUcsRUFB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QkFBc0I7c0JBRHpCLEtBQUs7Z0JBU0YsYUFBYTtzQkFEaEIsS0FBSztnQkFTRixhQUFhO3NCQURoQixLQUFLO2dCQVNGLFNBQVM7c0JBRFosS0FBSztnQkFTRixZQUFZO3NCQURmLEtBQUs7Z0JBU0Ysb0JBQW9CO3NCQUR2QixLQUFLO2dCQVNGLDBCQUEwQjtzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXhMaW5rTGVnYWN5IH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuXG5pbXBvcnQgeyBFdWlVeFRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9ldWktdXgtdHJlZS1ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdXgtdHJlZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS11eC10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlVeFRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgbm9kZXM6IFV4TGlua0xlZ2FjeVtdO1xuICAgIEBJbnB1dCgpIGNvbGxhcHNlQWxsTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBleHBhbmRBbGxMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZpbHRlckxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgY29sbGFwc2VkSWNvbkNsYXNzID0gJ2V1aS1pY29uIGV1aS1pY29uLXBsdXMtY2lyY2xlJztcbiAgICBASW5wdXQoKSBleHBhbmRlZEljb25DbGFzcyA9ICdldWktaWNvbiBldWktaWNvbi1taW51cy1jaXJjbGUnO1xuICAgIEBJbnB1dCgpIHNldEZpbHRlclZhbHVlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICd1eC10cmVlJztcblxuICAgIEBPdXRwdXQoKSBub2RlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFV4TGlua0xlZ2FjeT4oKTtcbiAgICBAT3V0cHV0KCkgbm9kZVRvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8VXhMaW5rTGVnYWN5PigpO1xuICAgIC8vIFRPRE86IGZvciBlVUkgMTQgcmVtb3ZlIHRoZSBbXSB0eXBlXG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VXhMaW5rTGVnYWN5IHwgW10+KCk7XG4gICAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGVWYXJpYWJsZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkcmVuKEV1aVRlbXBsYXRlRGlyZWN0aXZlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxhbnk+O1xuICAgIEBWaWV3Q2hpbGRyZW4oRXVpVXhUcmVlTm9kZUNvbXBvbmVudCkgdHJlZU5vZGVzOiBRdWVyeUxpc3Q8RXVpVXhUcmVlTm9kZUNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgndmlydHVhbFNjcm9sbGluZycpIHB1YmxpYyB2aXJ0dWFsU2Nyb2xsaW5nOiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIHB1YmxpYyBhbGxTZWxlY3RlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBuYk5vZGVzID0gMDtcbiAgICBwdWJsaWMgdmlzaWJsZU5vZGVzID0gW107XG4gICAgcHVibGljIG5vZGVDb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHVibGljIGZpbHRlclZhbHVlID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dUb29sYmFyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93VG9vbGJhcjtcbiAgICB9XG4gICAgc2V0IGlzU2hvd1Rvb2xiYXIodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dUb29sYmFyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93VG9vbGJhciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0V4cGFuZGVkO1xuICAgIH1cbiAgICBzZXQgaXNFeHBhbmRlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzRXhwYW5kZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNNdWx0aXNlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTXVsdGlzZWxlY3Q7XG4gICAgfVxuICAgIHNldCBpc011bHRpc2VsZWN0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNNdWx0aXNlbGVjdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzTXVsdGlzZWxlY3QgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1JlY3Vyc2l2ZVNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVjdXJzaXZlU2VsZWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNSZWN1cnNpdmVTZWxlY3Rpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1JlY3Vyc2l2ZVNlbGVjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzUmVjdXJzaXZlU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNDbGlja1RvZ2dsaW5nTm9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQ2xpY2tUb2dnbGluZ05vZGU7XG4gICAgfVxuICAgIHNldCBpc0NsaWNrVG9nZ2xpbmdOb2RlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNDbGlja1RvZ2dsaW5nTm9kZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzQ2xpY2tUb2dnbGluZ05vZGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dBY3RpdmVOb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93QWN0aXZlTm9kZTtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0FjdGl2ZU5vZGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dBY3RpdmVOb2RlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93QWN0aXZlTm9kZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGlkZVRvZ2dsZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hpZGVUb2dnbGVzO1xuICAgIH1cbiAgICBzZXQgaXNIaWRlVG9nZ2xlcyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGlkZVRvZ2dsZXMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0hpZGVUb2dnbGVzID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNIaWRlTGluZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hpZGVMaW5lcztcbiAgICB9XG4gICAgc2V0IGlzSGlkZUxpbmVzKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNIaWRlTGluZXMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0hpZGVMaW5lcyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzQ2xpY2tTZWxlY3RpbmdOb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDbGlja1NlbGVjdGluZ05vZGU7XG4gICAgfVxuICAgIHNldCBpc0NsaWNrU2VsZWN0aW5nTm9kZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzQ2xpY2tTZWxlY3RpbmdOb2RlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNDbGlja1NlbGVjdGluZ05vZGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBzaG93RmlsdGVyZWRDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dGaWx0ZXJlZENoaWxkcmVuO1xuICAgIH1cbiAgICBzZXQgc2hvd0ZpbHRlcmVkQ2hpbGRyZW4odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9zaG93RmlsdGVyZWRDaGlsZHJlbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3Nob3dGaWx0ZXJlZENoaWxkcmVuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXhwYW5kRmlsdGVyZWRDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZEZpbHRlcmVkQ2hpbGRyZW47XG4gICAgfVxuICAgIHNldCBleHBhbmRGaWx0ZXJlZENoaWxkcmVuKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kRmlsdGVyZWRDaGlsZHJlbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2V4cGFuZEZpbHRlcmVkQ2hpbGRyZW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBoaWdobGlnaHRQYXRoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlnaGxpZ2h0UGF0aDtcbiAgICB9XG4gICAgc2V0IGhpZ2hsaWdodFBhdGgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9oaWdobGlnaHRQYXRoID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGlnaGxpZ2h0UGF0aCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGF1dG9UcmFuc2xhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvVHJhbnNsYXRlO1xuICAgIH1cbiAgICBzZXQgYXV0b1RyYW5zbGF0ZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2F1dG9UcmFuc2xhdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9hdXRvVHJhbnNsYXRlID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNMYWJlbHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNMYWJlbHM7XG4gICAgfVxuICAgIHNldCBoYXNMYWJlbHModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9oYXNMYWJlbHMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNMYWJlbHMgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1NlbGVjdEFsbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1NlbGVjdEFsbDtcbiAgICB9XG4gICAgc2V0IGhhc1NlbGVjdEFsbCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1NlbGVjdEFsbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc1NlbGVjdEFsbCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1NlbGVjdEFsbEZpbHRlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzU2VsZWN0QWxsRmlsdGVyZWQ7XG4gICAgfVxuICAgIHNldCBoYXNTZWxlY3RBbGxGaWx0ZXJlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1NlbGVjdEFsbEZpbHRlcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGFzU2VsZWN0QWxsRmlsdGVyZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1JlY3Vyc2l2ZVBhcmVudFNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVjdXJzaXZlUGFyZW50U2VsZWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNSZWN1cnNpdmVQYXJlbnRTZWxlY3Rpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1JlY3Vyc2l2ZVBhcmVudFNlbGVjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzUmVjdXJzaXZlUGFyZW50U2VsZWN0aW9uID0gdHJ1ZTtcblxuICAgIGdldCBpc01pbmltdW1PbmVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWROb2RlcygpLmxlbmd0aCA+IDAgJiYgIXRoaXMuYWxsU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGVkTm9kZXMoKS5sZW5ndGggPT09IHRoaXMubmJOb2RlcztcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXNbJ25vZGVzJ10pIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZU5vZGVzID0gdGhpcy52aXNpYmxlKHRoaXMubm9kZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0TmJOb2Rlcyh0aGlzLm5vZGVzKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNFeHBhbmRlZFN0YXRlKHRoaXMubm9kZXMsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRQYXJlbnROb2RlKHRoaXMubm9kZXMsIG51bGwpO1xuXG4gICAgICAgIHRoaXMudGVtcGxhdGVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmdldFR5cGUoKSA9PT0gJ25vZGVDb250ZW50Jykge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZUNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZpc2libGUobm9kZXM6IFV4TGlua0xlZ2FjeVtdKTogVXhMaW5rTGVnYWN5W10ge1xuXG4gICAgICAgIGlmKHRoaXMuaGFzU2VsZWN0QWxsRmlsdGVyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFZpc2libGVOb2Rlc1JlY3Vyc2l2ZShub2Rlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZXMuZmlsdGVyKChuKSA9PiBuLnZpc2libGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TmJOb2Rlcyhub2RlczogVXhMaW5rTGVnYWN5W10pOiB2b2lkIHtcbiAgICAgICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uYk5vZGVzKys7XG4gICAgICAgICAgICBpZiAobm9kZS5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgobGluazogVXhMaW5rTGVnYWN5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0TmJOb2RlcyhbbGlua10pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3RBbGxDaGFuZ2UoZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxsU2VsZWN0ZWQgPSBlLnRhcmdldC5jaGVja2VkO1xuICAgICAgICBpZiAoIWUudGFyZ2V0LmNoZWNrKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZih0aGlzLmhhc1NlbGVjdEFsbEZpbHRlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldE5vZGVzU2VsZWN0ZWRGaWx0ZXJlZFN0YXRlKHRoaXMudmlzaWJsZU5vZGVzLCBlLnRhcmdldC5jaGVja2VkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNTZWxlY3RlZFN0YXRlKHRoaXMubm9kZXMsIGUudGFyZ2V0LmNoZWNrZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlbGVjdGVkTm9kZXMoKTogVXhMaW5rTGVnYWN5W10ge1xuXG4gICAgICAgICAgaWYodGhpcy5maWx0ZXJWYWx1ZSAhPT0gJycgJiYgdGhpcy5hbGxTZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdEFsbEZpbHRlcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXNpYmxlTm9kZXM7XG4gICAgICAgICAgfSAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3RlZE5vZGVzUmVjdXJzaXZlKHRoaXMubm9kZXMpO1xuICAgICAgICAgIH1cblxuICAgIH1cblxuICAgIHB1YmxpYyBvbk5vZGVUb2dnbGUoVXhMaW5rTGVnYWN5OiBVeExpbmtMZWdhY3kpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub2RlVG9nZ2xlLmVtaXQoVXhMaW5rTGVnYWN5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ob2RlQ2xpY2soVXhMaW5rTGVnYWN5OiBVeExpbmtMZWdhY3kpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFVeExpbmtMZWdhY3kuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoVXhMaW5rTGVnYWN5KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzQ2xpY2tUb2dnbGluZ05vZGUgJiYgVXhMaW5rTGVnYWN5Lmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk5vZGVUb2dnbGUoVXhMaW5rTGVnYWN5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5pc011bHRpc2VsZWN0ICYmIHRoaXMuaXNTaG93QWN0aXZlTm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNTZWxlY3RlZFN0YXRlKHRoaXMubm9kZXMsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBVeExpbmtMZWdhY3kuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRXhwYW5kQWxsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE5vZGVzRXhwYW5kZWRTdGF0ZSh0aGlzLm5vZGVzLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db2xsYXBzZUFsbChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXROb2Rlc0V4cGFuZGVkU3RhdGUodGhpcy5ub2RlcywgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShVeExpbmtMZWdhY3k6IFV4TGlua0xlZ2FjeSk6IHZvaWQge1xuICAgICAgICBpZiAoIVV4TGlua0xlZ2FjeS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5hbGxTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLm5leHQoVXhMaW5rTGVnYWN5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25GaWx0ZXIoZmlsdGVyVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXG4gICAgICAgIGlmIChmaWx0ZXJWYWx1ZSAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNWaXNpYmxlU3RhdGUodGhpcy5ub2RlcywgZmFsc2UpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZXhwYW5kRmlsdGVyZWRDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyTWF0Y2hlZChub2RlLCBmaWx0ZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmV4cGFuZEZpbHRlcmVkQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpbHRlck1hdGNoZWRFeHBhbmQobm9kZSwgZmlsdGVyVmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNWaXNpYmxlU3RhdGUodGhpcy5ub2RlcywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dGaWx0ZXJlZENoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlQ2hpbGRyZW4obm9kZSwgZmlsdGVyVmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZXhwYW5kRmlsdGVyZWRDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNFeHBhbmRlZFN0YXRlKHRoaXMubm9kZXMsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy52aXNpYmxlTm9kZXMgPSB0aGlzLnZpc2libGUodGhpcy5ub2Rlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldE5vZGVzVmlzaWJsZVN0YXRlKHRoaXMubm9kZXMsIHRydWUpO1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlTm9kZXMgPSB0aGlzLnZpc2libGUodGhpcy5ub2Rlcyk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxpbmc/LnNjcm9sbFRvSW5kZXgoMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZih0aGlzLmhhc1NlbGVjdEFsbEZpbHRlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldE5vZGVzU2VsZWN0ZWRGaWx0ZXJlZFN0YXRlKHRoaXMudmlzaWJsZU5vZGVzLCB0aGlzLmFsbFNlbGVjdGVkKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmFsdWUgID0gZmlsdGVyVmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlsdGVyLmVtaXQoZmlsdGVyVmFsdWUpO1xuICAgIH1cblxuICAgIGlzRmlsdGVyTWF0Y2hlZEV4cGFuZChub2RlOiBVeExpbmtMZWdhY3ksIGZpbHRlclZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgbm9kZVsnaGlnaGxpZ2h0ZWQnXSA9IGZhbHNlO1xuICAgICAgICBpZiAobm9kZS5sYWJlbC50b1VwcGVyQ2FzZSgpLmluZGV4T2YoZmlsdGVyVmFsdWUudG9VcHBlckNhc2UoKSkgIT09IC0xKSB7XG4gICAgICAgICAgICBub2RlLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIG5vZGVbJ2hpZ2hsaWdodGVkJ10gPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZS5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgbm9kZVsnaGlnaGxpZ2h0ZWQnXSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRyZW5Ob2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0ZpbHRlck1hdGNoZWRFeHBhbmQoY2hpbGRyZW5Ob2RlLCBmaWx0ZXJWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRyZW5Ob2RlLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBub2RlWydoaWdobGlnaHRlZCddID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogVXhMaW5rTGVnYWN5KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrRm9yQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5ub2Rlcy5zb21lKChub2RlKSA9PiBub2RlLmhhc0NoaWxkcmVuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzZXROb2RlKHRoaXMubm9kZXMpO1xuICAgICAgICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBpZiB3ZSBjYW4gZW1pdCBudWxsIGluc3RlYWQgb2YgW11cbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldE5vZGUobm9kZXM6IFV4TGlua0xlZ2FjeVtdKTogdm9pZCB7XG4gICAgICAgIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIG5vZGUuc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldE5vZGUobm9kZS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWaXNpYmxlQ2hpbGRyZW4obm9kZTogVXhMaW5rTGVnYWN5LCBmaWx0ZXJWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChub2RlLnBhcmVudCAmJiBub2RlLnBhcmVudC52aXNpYmxlID09PSB0cnVlICYmIG5vZGUucGFyZW50LmxhYmVsLnRvVXBwZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJWYWx1ZS50b1VwcGVyQ2FzZSgpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIG5vZGUudmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZHJlbk5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzVmlzaWJsZUNoaWxkcmVuKGNoaWxkcmVuTm9kZSwgZmlsdGVyVmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkTm9kZXNSZWN1cnNpdmUobm9kZXM6IFV4TGlua0xlZ2FjeVtdKTogVXhMaW5rTGVnYWN5W10ge1xuICAgICAgICByZXR1cm4gKG5vZGVzIHx8IFtdKS5yZWR1Y2UoKGFjYywgbm9kZSkgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5zZWxlY3RlZCAmJiAhbm9kZS5pbmRldGVybWluYXRlXG4gICAgICAgICAgICAgICAgICAgID8gWy4uLmFjYywgbm9kZSwgLi4udGhpcy5nZXRTZWxlY3RlZE5vZGVzUmVjdXJzaXZlKG5vZGUuY2hpbGRyZW4pXVxuICAgICAgICAgICAgICAgICAgICA6IFsuLi5hY2MsIC4uLnRoaXMuZ2V0U2VsZWN0ZWROb2Rlc1JlY3Vyc2l2ZShub2RlLmNoaWxkcmVuKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlLnNlbGVjdGVkID8gWy4uLmFjYywgbm9kZV0gOiBbLi4uYWNjXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgW10pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmlzaWJsZU5vZGVzUmVjdXJzaXZlKG5vZGVzOiBVeExpbmtMZWdhY3lbXSk6IFV4TGlua0xlZ2FjeVtdIHtcbiAgICAgICAgcmV0dXJuIChub2RlcyB8fCBbXSkucmVkdWNlKChhY2MsIG5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUudmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICA/IFsuLi5hY2MsIG5vZGUsIC4uLnRoaXMuZ2V0VmlzaWJsZU5vZGVzUmVjdXJzaXZlKG5vZGUuY2hpbGRyZW4pXVxuICAgICAgICAgICAgICAgICAgICA6IFsuLi5hY2MsIC4uLnRoaXMuZ2V0VmlzaWJsZU5vZGVzUmVjdXJzaXZlKG5vZGUuY2hpbGRyZW4pXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUudmlzaWJsZSA/IFsuLi5hY2MsIG5vZGVdIDogWy4uLmFjY107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmlsdGVyTWF0Y2hlZChub2RlOiBVeExpbmtMZWdhY3ksIGZpbHRlclZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKG5vZGUubGFiZWw/LnRvVXBwZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJWYWx1ZT8udG9VcHBlckNhc2UoKSkgIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxpbmc/LnNjcm9sbFRvSW5kZXgoMCk7XG4gICAgICAgICAgICBub2RlLnZpc2libGUgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZS52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZHJlbk5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyTWF0Y2hlZChjaGlsZHJlbk5vZGUsIGZpbHRlclZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbk5vZGUudmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLnZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROb2Rlc0V4cGFuZGVkU3RhdGUobm9kZXM6IFV4TGlua0xlZ2FjeVtdLCBleHBhbmRlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBub2RlLmV4cGFuZGVkID0gZXhwYW5kZWQ7XG4gICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNFeHBhbmRlZFN0YXRlKG5vZGUuY2hpbGRyZW4sIGV4cGFuZGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROb2Rlc1Zpc2libGVTdGF0ZShub2RlczogVXhMaW5rTGVnYWN5W10sIHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgbm9kZS52aXNpYmxlID0gdmlzaWJsZTtcbiAgICAgICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXROb2Rlc1Zpc2libGVTdGF0ZShub2RlLmNoaWxkcmVuLCB2aXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROb2Rlc1NlbGVjdGVkU3RhdGUobm9kZXM6IFV4TGlua0xlZ2FjeVtdLCBzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBub2RlLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNTZWxlY3RlZFN0YXRlKG5vZGUuY2hpbGRyZW4sIHNlbGVjdGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdEFsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgfVxuICAgIHByaXZhdGUgc2V0Tm9kZXNTZWxlY3RlZEZpbHRlcmVkU3RhdGUobm9kZXM6IFV4TGlua0xlZ2FjeVtdLCBzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBpZihub2RlLnZpc2libGUpe1xuICAgICAgICAgICAgICAgIG5vZGUuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXROb2Rlc1NlbGVjdGVkRmlsdGVyZWRTdGF0ZShub2RlLmNoaWxkcmVuLCBzZWxlY3RlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RBbGxGaWx0ZXJlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFyZW50Tm9kZShub2RlczogVXhMaW5rTGVnYWN5W10sIHBhcmVudE5vZGU6IFV4TGlua0xlZ2FjeSk6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBpZiAocGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgIG5vZGUucGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYXJlbnROb2RlKG5vZGUuY2hpbGRyZW4sIG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4vKiBlc2xpbnQtZW5hYmxlICovXG4iLCI8ZXVpLXV4LXRyZWUtdG9vbGJhclxuICAgICpuZ0lmPVwiaXNTaG93VG9vbGJhclwiXG4gICAgW2lzVmlzaWJsZV09XCJpc1Nob3dUb29sYmFyXCJcbiAgICBbaXNUb2dnbGVWaXNpYmxlXT1cIiFpc0hpZGVUb2dnbGVzXCJcbiAgICAoZmlsdGVyKT1cIm9uRmlsdGVyKCRldmVudClcIlxuICAgIFtmaWx0ZXJWYWx1ZV09XCJzZXRGaWx0ZXJWYWx1ZVwiXG4gICAgKGV4cGFuZEFsbCk9XCJvbkV4cGFuZEFsbCgkZXZlbnQpXCJcbiAgICAoY29sbGFwc2VBbGwpPVwib25Db2xsYXBzZUFsbCgkZXZlbnQpXCJcbiAgICBmaWx0ZXJMYWJlbD1cInt7IGZpbHRlckxhYmVsIH19XCJcbiAgICBbZXhwYW5kQWxsTGFiZWxdPVwiZXhwYW5kQWxsTGFiZWwgPyBleHBhbmRBbGxMYWJlbCA6IG51bGxcIlxuICAgIGNvbGxhcHNlQWxsTGFiZWw9XCJ7eyBjb2xsYXBzZUFsbExhYmVsIH19XCJcbiAgICBbaXNUb2dnbGVFeHBhbmRlZF09XCJpc0V4cGFuZGVkXCJcbiAgICBbaGFzTGFiZWxzXT1cImhhc0xhYmVsc1wiXG4gICAgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX0tYS10b29sYmFyLWZpbHRlclwiPlxuPC9ldWktdXgtdHJlZS10b29sYmFyPlxuXG48ZGl2IGNsYXNzPVwiZXVpLXUtZmxleFwiICpuZ0lmPVwiaGFzU2VsZWN0QWxsIHx8IGhhc1NlbGVjdEFsbEZpbHRlcmVkXCI+XG4gICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIGNsYXNzPVwidXgtaW5wdXRfX2NoZWNrYm94XCJcbiAgICAgICAgaWQ9XCJzZWxlY3RBbGxcIlxuICAgICAgICBbY2hlY2tlZF09XCJpc01pbmltdW1PbmVTZWxlY3RlZCA/ICdjaGVja2VkJyA6IG51bGxcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIiAvPlxuICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cInV4LXRyZWVfX25vZGUtY2hlY2tib3gtbGFiZWxcIlxuICAgICAgICBbY2xhc3MuY2hlY2tib3gtbGFiZWwtaW5kZXRlcm1pbmF0ZV09XCJpc01pbmltdW1PbmVTZWxlY3RlZCAmJiAhaXNBbGxTZWxlY3RlZFwiXG4gICAgICAgIGZvcj1cInNlbGVjdEFsbFwiXG4gICAgICAgIFtjbGFzcy51eC10cmVlX19ub2RlLWNoZWNrYm94LWxhYmVsLS1vbmVsZXZlbF09XCJjaGVja0ZvckNoaWxkcmVuKClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhbGxTZWxlY3RlZCAmJiAhaXNNaW5pbXVtT25lU2VsZWN0ZWQgJiYgIWlzQWxsU2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIHt7ICdldWkudXh0cmVlLlNFTEVDVC1BTEwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWxsU2VsZWN0ZWQgfHwgaXNNaW5pbXVtT25lU2VsZWN0ZWQgfHwgaXNBbGxTZWxlY3RlZFwiPlxuICAgICAgICAgICAge3sgJ2V1aS51eHRyZWUuVU5TRUxFQ1QtQUxMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2xhYmVsPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwibm9kZXMubGVuZ3RoID4gNTAwICYmICFoYXNTZWxlY3RBbGwgJiYgIWhhc1NlbGVjdEFsbEZpbHRlcmVkOyBlbHNlIG5vVmlydHVhbFNjcm9sbFwiPlxuICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcbiAgICAgICAgI3ZpcnR1YWxTY3JvbGxpbmdcbiAgICAgICAgaXRlbVNpemU9XCIzMFwiXG4gICAgICAgIGNsYXNzPVwidXgtdHJlZV9fdmlydHVhbC1zY3JvbGxpbmdfX2NvbnRhaW5lclwiXG4gICAgICAgIG1pbkJ1ZmZlclB4PVwiMjAwMFwiXG4gICAgICAgIG1heEJ1ZmZlclB4PVwiMjQwMFwiPlxuICAgICAgICA8ZGl2ICpjZGtWaXJ0dWFsRm9yPVwibGV0IG5vZGUgb2YgdmlzaWJsZU5vZGVzOyB0cmFja0J5OiB0cmFja0J5Rm5cIiBjbGFzcz1cInV4LXRyZWVfX3ZpcnR1YWwtc2Nyb2xsaW5nX19pdGVtXCI+XG4gICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICBjbGFzcz1cInV4LXRyZWVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy51eC10cmVlLS1oaWRlbGluZXNdPVwiaXNIaWRlTGluZXNcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy51eC10cmVlLS1tdWx0aXNlbGVjdF09XCJpc011bHRpc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudXgtdHJlZS0tb25lbGV2ZWxdPVwiY2hlY2tGb3JDaGlsZHJlbigpXCJcbiAgICAgICAgICAgICAgICBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgICAgICAgICAgICAgIDxldWktdXgtdHJlZS1ub2RlXG4gICAgICAgICAgICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgICAgICAgICAobm9kZUNsaWNrKT1cIm9uTm9kZUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAobm9kZVRvZ2dsZSk9XCJvbk5vZGVUb2dnbGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc1Jvb3ROb2RlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbaXNNdWx0aXNlbGVjdF09XCJpc011bHRpc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgW2lzUmVjdXJzaXZlU2VsZWN0aW9uXT1cImlzUmVjdXJzaXZlU2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzQ2xpY2tUb2dnbGluZ05vZGVdPVwiaXNDbGlja1RvZ2dsaW5nTm9kZVwiXG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkSWNvbkNsYXNzPVwie3sgZXhwYW5kZWRJY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZWRJY29uQ2xhc3M9XCJ7eyBjb2xsYXBzZWRJY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVWYXJpYWJsZV09XCJ0ZW1wbGF0ZVZhcmlhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW25vZGVDb250ZW50VGVtcGxhdGVdPVwibm9kZUNvbnRlbnRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc1Nob3dBY3RpdmVOb2RlXT1cImlzU2hvd0FjdGl2ZU5vZGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXV0b1RyYW5zbGF0ZV09XCJhdXRvVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzSGlkZVRvZ2dsZXNdPVwiaXNIaWRlVG9nZ2xlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtpc0NsaWNrU2VsZWN0aW5nTm9kZV09XCJpc0NsaWNrU2VsZWN0aW5nTm9kZVwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWdobGlnaHRQYXRoXT1cImhpZ2hsaWdodFBhdGhcIlxuICAgICAgICAgICAgICAgICAgICBbaXNSZWN1cnNpdmVQYXJlbnRTZWxlY3Rpb25dPVwiaXNSZWN1cnNpdmVQYXJlbnRTZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8L2V1aS11eC10cmVlLW5vZGU+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI25vVmlydHVhbFNjcm9sbD5cbiAgICA8dWxcbiAgICAgICAgY2xhc3M9XCJ1eC10cmVlXCJcbiAgICAgICAgW2NsYXNzLnV4LXRyZWUtLWhpZGVsaW5lc109XCJpc0hpZGVMaW5lc1wiXG4gICAgICAgIFtjbGFzcy51eC10cmVlLS1tdWx0aXNlbGVjdF09XCJpc011bHRpc2VsZWN0XCJcbiAgICAgICAgW2NsYXNzLnV4LXRyZWUtLW9uZWxldmVsXT1cImNoZWNrRm9yQ2hpbGRyZW4oKVwiXG4gICAgICAgIGF0dHIuZGF0YS1lMmU9XCJ7eyBlMmVBdHRyIH19XCI+XG4gICAgICAgIDxldWktdXgtdHJlZS1ub2RlXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbm9kZSBvZiBub2RlczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgKG5vZGVDbGljayk9XCJvbk5vZGVDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIChub2RlVG9nZ2xlKT1cIm9uTm9kZVRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbaXNSb290Tm9kZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpc011bHRpc2VsZWN0XT1cImlzTXVsdGlzZWxlY3RcIlxuICAgICAgICAgICAgW2lzUmVjdXJzaXZlU2VsZWN0aW9uXT1cImlzUmVjdXJzaXZlU2VsZWN0aW9uXCJcbiAgICAgICAgICAgIFtpc0NsaWNrVG9nZ2xpbmdOb2RlXT1cImlzQ2xpY2tUb2dnbGluZ05vZGVcIlxuICAgICAgICAgICAgZXhwYW5kZWRJY29uQ2xhc3M9XCJ7eyBleHBhbmRlZEljb25DbGFzcyB9fVwiXG4gICAgICAgICAgICBjb2xsYXBzZWRJY29uQ2xhc3M9XCJ7eyBjb2xsYXBzZWRJY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW3RlbXBsYXRlVmFyaWFibGVdPVwidGVtcGxhdGVWYXJpYWJsZVwiXG4gICAgICAgICAgICBbbm9kZUNvbnRlbnRUZW1wbGF0ZV09XCJub2RlQ29udGVudFRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtpc1Nob3dBY3RpdmVOb2RlXT1cImlzU2hvd0FjdGl2ZU5vZGVcIlxuICAgICAgICAgICAgW2F1dG9UcmFuc2xhdGVdPVwiYXV0b1RyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbaXNIaWRlVG9nZ2xlc109XCJpc0hpZGVUb2dnbGVzXCJcbiAgICAgICAgICAgIFtpc0NsaWNrU2VsZWN0aW5nTm9kZV09XCJpc0NsaWNrU2VsZWN0aW5nTm9kZVwiXG4gICAgICAgICAgICBbaGlnaGxpZ2h0UGF0aF09XCJoaWdobGlnaHRQYXRoXCJcbiAgICAgICAgICAgIFtpc1JlY3Vyc2l2ZVBhcmVudFNlbGVjdGlvbl09XCJpc1JlY3Vyc2l2ZVBhcmVudFNlbGVjdGlvblwiPlxuICAgICAgICA8L2V1aS11eC10cmVlLW5vZGU+XG4gICAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=