@eui/components 17.0.0-next.4 → 17.0.0-next.5

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 (510) hide show
  1. package/directives/eui-clearable.directive.d.ts.map +1 -1
  2. package/directives/eui-tooltip/eui-tooltip.directive.d.ts.map +1 -1
  3. package/esm2022/directives/eui-clearable.directive.mjs +8 -9
  4. package/esm2022/directives/eui-has-permission.directive.mjs +7 -7
  5. package/esm2022/directives/eui-loading.directive.mjs +3 -3
  6. package/esm2022/directives/eui-maxlength.directive.mjs +7 -7
  7. package/esm2022/directives/eui-resizable/eui-resizable.component.mjs +3 -3
  8. package/esm2022/directives/eui-resizable/eui-resizable.directive.mjs +4 -5
  9. package/esm2022/directives/eui-resizable/eui-resizable.module.mjs +4 -4
  10. package/esm2022/directives/eui-scroll-handler.directive.mjs +10 -10
  11. package/esm2022/directives/eui-smooth-scroll.directive.mjs +10 -10
  12. package/esm2022/directives/eui-template.directive.mjs +7 -7
  13. package/esm2022/directives/eui-tooltip/container/eui-tooltip-container.component.mjs +3 -3
  14. package/esm2022/directives/eui-tooltip/eui-tooltip.directive.mjs +58 -26
  15. package/esm2022/directives/eui-tooltip/eui-tooltip.module.mjs +4 -4
  16. package/esm2022/eui-alert/eui-alert.component.mjs +9 -8
  17. package/esm2022/eui-all/eui-all.module.mjs +9 -10
  18. package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +31 -15
  19. package/esm2022/eui-autocomplete/eui-autocomplete.module.mjs +4 -4
  20. package/esm2022/eui-autocomplete/models/eui-autocomplete-item.model.mjs +2 -1
  21. package/esm2022/eui-badge/eui-badge.component.mjs +8 -8
  22. package/esm2022/eui-block-content/eui-block-content.component.mjs +5 -5
  23. package/esm2022/eui-block-content/eui-block-content.module.mjs +4 -4
  24. package/esm2022/eui-block-document/eui-block-document.component.mjs +3 -3
  25. package/esm2022/eui-block-document/eui-block-document.module.mjs +4 -4
  26. package/esm2022/eui-button/eui-button.component.mjs +10 -10
  27. package/esm2022/eui-button-group/eui-button-group.component.mjs +7 -7
  28. package/esm2022/eui-buttons/eui-buttons.component.mjs +17 -17
  29. package/esm2022/eui-card/components/eui-card-content/eui-card-content.component.mjs +3 -3
  30. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-buttons.component.mjs +3 -3
  31. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-icons.component.mjs +3 -3
  32. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-menu-content.component.mjs +3 -3
  33. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer.component.mjs +3 -3
  34. package/esm2022/eui-card/components/eui-card-header/eui-card-header-left-content.component.mjs +3 -3
  35. package/esm2022/eui-card/components/eui-card-header/eui-card-header-right-content.component.mjs +3 -3
  36. package/esm2022/eui-card/components/eui-card-header/eui-card-header-subtitle.component.mjs +3 -3
  37. package/esm2022/eui-card/components/eui-card-header/eui-card-header-title.component.mjs +3 -3
  38. package/esm2022/eui-card/components/eui-card-header/eui-card-header.component.mjs +3 -3
  39. package/esm2022/eui-card/components/eui-card-header-body/eui-card-header-body.component.mjs +3 -3
  40. package/esm2022/eui-card/components/eui-card-media/eui-card-media.component.mjs +3 -3
  41. package/esm2022/eui-card/eui-card.component.mjs +3 -3
  42. package/esm2022/eui-card/eui-card.module.mjs +4 -4
  43. package/esm2022/eui-card/services/ui-state.service.mjs +3 -3
  44. package/esm2022/eui-chip/eui-chip.component.mjs +3 -3
  45. package/esm2022/eui-chip/eui-chip.module.mjs +4 -4
  46. package/esm2022/eui-chip-list/eui-chip-list.component.mjs +9 -9
  47. package/esm2022/eui-chip-list/eui-chip-list.module.mjs +4 -4
  48. package/esm2022/eui-chip-list/services/eui-chip-list-drag.service.mjs +3 -3
  49. package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +15 -15
  50. package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +9 -8
  51. package/esm2022/eui-date-range-selector/eui-date-range-selector.component.mjs +19 -6
  52. package/esm2022/eui-date-range-selector/eui-date-range-selector.module.mjs +4 -4
  53. package/esm2022/eui-datepicker/eui-datepicker.component.mjs +21 -21
  54. package/esm2022/eui-datepicker/eui-datepicker.module.mjs +4 -4
  55. package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +3 -3
  56. package/esm2022/eui-dialog/eui-dialog.component.mjs +10 -10
  57. package/esm2022/eui-dialog/eui-dialog.module.mjs +4 -4
  58. package/esm2022/eui-dialog/services/eui-dialog.service.mjs +5 -5
  59. package/esm2022/eui-dimmer/dimmer.component.mjs +4 -4
  60. package/esm2022/eui-dimmer/dimmer.module.mjs +4 -4
  61. package/esm2022/eui-disable-content/eui-disable-content.component.mjs +10 -10
  62. package/esm2022/eui-discussion-thread/eui-discussion-thread-item.component.mjs +5 -5
  63. package/esm2022/eui-discussion-thread/eui-discussion-thread.component.mjs +3 -3
  64. package/esm2022/eui-discussion-thread/eui-discussion-thread.module.mjs +4 -4
  65. package/esm2022/eui-dropdown/directives/eui-dropdown-content.directive.mjs +3 -3
  66. package/esm2022/eui-dropdown/dropdown-item/eui-dropdown-item.component.mjs +10 -8
  67. package/esm2022/eui-dropdown/eui-dropdown.component.mjs +3 -3
  68. package/esm2022/eui-dropdown/eui-dropdown.module.mjs +8 -8
  69. package/esm2022/eui-dropdown/eui-dropdown.service.mjs +3 -3
  70. package/esm2022/eui-feedback-message/eui-feedback-message.component.mjs +3 -3
  71. package/esm2022/eui-feedback-message/eui-feedback-message.module.mjs +4 -4
  72. package/esm2022/eui-fieldset/eui-fieldset.component.mjs +9 -9
  73. package/esm2022/eui-fieldset/eui-fieldset.module.mjs +4 -4
  74. package/esm2022/eui-file-upload/eui-file-upload.component.mjs +32 -18
  75. package/esm2022/eui-file-upload/eui-file-upload.module.mjs +6 -17
  76. package/esm2022/eui-file-upload/file-preview/file-preview.component.mjs +6 -4
  77. package/esm2022/eui-file-upload/pipes/filesize.pipe.mjs +3 -3
  78. package/esm2022/eui-file-upload/progress/eui-file-upload-progress.component.mjs +3 -3
  79. package/esm2022/eui-file-upload/utils/eui-file-upload.utils.mjs +4 -4
  80. package/esm2022/eui-file-upload/utils/eui-file-upload.validators.mjs +1 -1
  81. package/esm2022/eui-file-upload/utils/mime-types.mjs +3 -1
  82. package/esm2022/eui-growl/eui-growl.component.mjs +4 -4
  83. package/esm2022/eui-growl/eui-growl.module.mjs +4 -4
  84. package/esm2022/eui-growl/services/eui-growl.service.mjs +3 -3
  85. package/esm2022/eui-icon/eui-icon-color.component.mjs +3 -3
  86. package/esm2022/eui-icon/eui-icon-svg.component.mjs +3 -3
  87. package/esm2022/eui-icon/eui-icon.component.mjs +3 -3
  88. package/esm2022/eui-icon/eui-icon.module.mjs +4 -4
  89. package/esm2022/eui-icon-toggle/eui-icon-toggle.component.mjs +3 -3
  90. package/esm2022/eui-icon-toggle/eui-icon-toggle.module.mjs +4 -4
  91. package/esm2022/eui-input-checkbox/eui-input-checkbox.component.mjs +4 -4
  92. package/esm2022/eui-input-checkbox/eui-input-checkbox.module.mjs +4 -4
  93. package/esm2022/eui-input-group/eui-input-group.component.mjs +4 -4
  94. package/esm2022/eui-input-group/eui-input-group.module.mjs +4 -4
  95. package/esm2022/eui-input-number/eui-input-number.component.mjs +4 -4
  96. package/esm2022/eui-input-number/eui-input-number.module.mjs +4 -4
  97. package/esm2022/eui-input-number/eui-number-control.directive.mjs +4 -4
  98. package/esm2022/eui-input-radio/eui-input-radio.component.mjs +9 -11
  99. package/esm2022/eui-input-radio/eui-input-radio.module.mjs +4 -4
  100. package/esm2022/eui-input-text/eui-input-text.component.mjs +5 -5
  101. package/esm2022/eui-input-text/eui-input-text.module.mjs +4 -4
  102. package/esm2022/eui-label/eui-label.component.mjs +4 -4
  103. package/esm2022/eui-label/eui-label.module.mjs +4 -4
  104. package/esm2022/eui-list/eui-list-item/eui-list-item.component.mjs +4 -4
  105. package/esm2022/eui-list/eui-list.component.mjs +3 -3
  106. package/esm2022/eui-list/eui-list.module.mjs +4 -4
  107. package/esm2022/eui-list/services/eui-list.service.mjs +3 -3
  108. package/esm2022/eui-menu/eui-menu-item.component.mjs +4 -4
  109. package/esm2022/eui-menu/eui-menu.component.mjs +5 -5
  110. package/esm2022/eui-menu/eui-menu.module.mjs +4 -4
  111. package/esm2022/eui-message-box/eui-message-box.component.mjs +9 -7
  112. package/esm2022/eui-message-box/eui-message-box.module.mjs +4 -4
  113. package/esm2022/eui-message-box/services/eui-message-box.service.mjs +3 -3
  114. package/esm2022/eui-overlay/components/eui-overlay-body/eui-overlay-body.component.mjs +5 -5
  115. package/esm2022/eui-overlay/components/eui-overlay-footer/eui-overlay-footer.component.mjs +5 -5
  116. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +38 -0
  117. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.mjs +5 -5
  118. package/esm2022/eui-overlay/eui-overlay.component.mjs +30 -12
  119. package/esm2022/eui-overlay/index.mjs +2 -1
  120. package/esm2022/eui-page/components/eui-page-breadcrumb/eui-page-breadcrumb.component.mjs +3 -3
  121. package/esm2022/eui-page/components/eui-page-column/eui-page-column.component.mjs +21 -21
  122. package/esm2022/eui-page/components/eui-page-columns/eui-page-columns.component.mjs +3 -3
  123. package/esm2022/eui-page/components/eui-page-content/eui-page-content.component.mjs +3 -3
  124. package/esm2022/eui-page/components/eui-page-footer/eui-page-footer.component.mjs +3 -3
  125. package/esm2022/eui-page/components/eui-page-header/eui-page-header.component.mjs +9 -9
  126. package/esm2022/eui-page/components/eui-page-hero-header/eui-page-hero-header.component.mjs +3 -3
  127. package/esm2022/eui-page/components/eui-page-top-content/eui-page-top-content.component.mjs +3 -3
  128. package/esm2022/eui-page/eui-page.component.mjs +3 -3
  129. package/esm2022/eui-page/eui-page.module.mjs +4 -4
  130. package/esm2022/eui-paginator/eui-paginator.component.mjs +10 -8
  131. package/esm2022/eui-paginator/eui-paginator.module.mjs +4 -4
  132. package/esm2022/eui-picker/eui-picker.component.mjs +8 -6
  133. package/esm2022/eui-picker/eui-picker.module.mjs +4 -4
  134. package/esm2022/eui-picker/modal-picker/eui-modal-picker.component.mjs +5 -5
  135. package/esm2022/eui-popover/directives/eui-popover-arrow-position.directive.mjs +58 -0
  136. package/esm2022/eui-popover/eui-popover.component.mjs +25 -19
  137. package/esm2022/eui-popover/eui-popover.module.mjs +7 -6
  138. package/esm2022/eui-popover/models/eui-popover-position.model.mjs +18 -0
  139. package/esm2022/eui-progress-bar/eui-progress-bar.component.mjs +3 -3
  140. package/esm2022/eui-progress-bar/eui-progress-bar.module.mjs +4 -4
  141. package/esm2022/eui-progress-circle/eui-progress-circle.component.mjs +7 -7
  142. package/esm2022/eui-select/eui-select-control.directive.mjs +4 -4
  143. package/esm2022/eui-select/eui-select-multiple.directive.mjs +10 -5
  144. package/esm2022/eui-select/eui-select-mutli-option.directive.mjs +4 -4
  145. package/esm2022/eui-select/eui-select-option.directive.mjs +5 -4
  146. package/esm2022/eui-select/eui-select.component.mjs +5 -5
  147. package/esm2022/eui-select/eui-select.module.mjs +4 -4
  148. package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +6 -4
  149. package/esm2022/eui-sidebar-menu/eui-sidebar-menu.module.mjs +4 -4
  150. package/esm2022/eui-slide-toggle/eui-slide-toggle.component.mjs +4 -4
  151. package/esm2022/eui-slide-toggle/eui-slide-toggle.module.mjs +4 -4
  152. package/esm2022/eui-table/directives/eui-table-sticky-columns.directive.mjs +3 -3
  153. package/esm2022/eui-table/eui-table.component.mjs +76 -29
  154. package/esm2022/eui-table/eui-table.module.mjs +4 -4
  155. package/esm2022/eui-table/expandable-row/eui-table-expandable-row.component.mjs +3 -3
  156. package/esm2022/eui-table/filter/eui-table-filter.component.mjs +3 -3
  157. package/esm2022/eui-table/pipes/eui-table-highlight-filter.pipe.mjs +3 -3
  158. package/esm2022/eui-table/selectable-header/eui-table-selectable-header.component.mjs +3 -3
  159. package/esm2022/eui-table/selectable-row/eui-table-selectable-row.component.mjs +3 -3
  160. package/esm2022/eui-table/services/eui-table-selectable-row.service.mjs +3 -3
  161. package/esm2022/eui-table/services/eui-table-sort.service.mjs +3 -3
  162. package/esm2022/eui-table/sortable-col/eui-table-sortable-col.component.mjs +4 -4
  163. package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +3 -3
  164. package/esm2022/eui-tabs/eui-tab-content/eui-tab-content.component.mjs +3 -3
  165. package/esm2022/eui-tabs/eui-tab-label/eui-tab-label.component.mjs +6 -6
  166. package/esm2022/eui-tabs/eui-tabs.component.mjs +7 -7
  167. package/esm2022/eui-tabs/eui-tabs.module.mjs +4 -4
  168. package/esm2022/eui-textarea/auto-resize.directive.mjs +4 -4
  169. package/esm2022/eui-textarea/eui-textarea.component.mjs +5 -5
  170. package/esm2022/eui-textarea/eui-textarea.module.mjs +4 -4
  171. package/esm2022/eui-timebar/eui-timebar-item.model.mjs +3 -1
  172. package/esm2022/eui-timebar/eui-timebar.component.mjs +9 -9
  173. package/esm2022/eui-timeline/eui-timeline-item.component.mjs +3 -3
  174. package/esm2022/eui-timeline/eui-timeline.component.mjs +3 -3
  175. package/esm2022/eui-timeline/eui-timeline.module.mjs +4 -4
  176. package/esm2022/eui-timepicker/eui-timepicker.component.mjs +3 -3
  177. package/esm2022/eui-timepicker/eui-timepicker.module.mjs +11 -11
  178. package/esm2022/eui-timepicker/models/eui-date-time-picker.config.model.mjs +1 -1
  179. package/esm2022/eui-tree/eui-dropdown-tree.directive.mjs +8 -8
  180. package/esm2022/eui-tree/eui-tree-form-control.directive.mjs +8 -8
  181. package/esm2022/eui-tree/eui-tree-helper.mjs +1 -1
  182. package/esm2022/eui-tree/eui-tree.component.mjs +29 -11
  183. package/esm2022/eui-wizard/eui-wizard-step.component.mjs +3 -3
  184. package/esm2022/eui-wizard/eui-wizard.component.mjs +16 -14
  185. package/esm2022/eui-wizard/eui-wizard.module.mjs +4 -4
  186. package/esm2022/eui-wizard/services/eui-wizard.service.mjs +3 -3
  187. package/esm2022/externals/charts/chart/chart.component.mjs +3 -3
  188. package/esm2022/externals/charts/eui-charts.module.mjs +4 -4
  189. package/esm2022/externals/eui-editor/counters/eui-editor-counters.component.mjs +3 -3
  190. package/esm2022/externals/eui-editor/directives/eui-editor-maxlength.directive.mjs +3 -3
  191. package/esm2022/externals/eui-editor/eui-editor.component.mjs +8 -8
  192. package/esm2022/externals/eui-editor/eui-editor.module.mjs +4 -4
  193. package/esm2022/externals/eui-editor/html-view/eui-editor-html-view.component.mjs +3 -3
  194. package/esm2022/externals/eui-editor/image-url-dialog/image-url-dialog.component.mjs +3 -3
  195. package/esm2022/externals/eui-editor/json-view/eui-editor-json-view.component.mjs +3 -3
  196. package/esm2022/externals/quill/quill-editor.component.mjs +3 -3
  197. package/esm2022/externals/quill/quill.module.mjs +4 -4
  198. package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.mjs +3 -3
  199. package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.module.mjs +4 -4
  200. package/esm2022/layout/eui-app/eui-app-footer/footer.component.mjs +3 -3
  201. package/esm2022/layout/eui-app/eui-app-footer/footer.module.mjs +4 -4
  202. package/esm2022/layout/eui-app/eui-app-header/header.component.mjs +3 -3
  203. package/esm2022/layout/eui-app/eui-app-header/header.module.mjs +4 -4
  204. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-body/sidebar-body.component.mjs +3 -3
  205. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-drawer/sidebar-drawer.component.mjs +3 -3
  206. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
  207. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
  208. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.mjs +3 -3
  209. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +5 -4
  210. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +4 -4
  211. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.module.mjs +4 -4
  212. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +3 -3
  213. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.module.mjs +4 -4
  214. package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +5 -4
  215. package/esm2022/layout/eui-app/eui-app-top-message/top-message.module.mjs +4 -4
  216. package/esm2022/layout/eui-app/eui-app.component.mjs +6 -6
  217. package/esm2022/layout/eui-app/eui-app.module.mjs +4 -4
  218. package/esm2022/layout/eui-breadcrumb/breadcrumb.component.mjs +10 -4
  219. package/esm2022/layout/eui-breadcrumb/breadcrumb.module.mjs +4 -4
  220. package/esm2022/layout/eui-breadcrumb/breadcrumb.service.mjs +3 -3
  221. package/esm2022/layout/eui-breadcrumb/collapsed-breadcrumb/collapsed-breadcrumb.component.mjs +8 -8
  222. package/esm2022/layout/eui-breadcrumb/item/breadcrumb-item.component.mjs +6 -6
  223. package/esm2022/layout/eui-footer/footer.component.mjs +3 -3
  224. package/esm2022/layout/eui-footer/footer.module.mjs +4 -4
  225. package/esm2022/layout/eui-header/header-app/header-app.component.mjs +12 -12
  226. package/esm2022/layout/eui-header/header-app-name/header-app-name.component.mjs +4 -4
  227. package/esm2022/layout/eui-header/header-app-name-logo/header-app-name-logo.component.mjs +7 -11
  228. package/esm2022/layout/eui-header/header-app-subtitle/header-app-subtitle.component.mjs +4 -4
  229. package/esm2022/layout/eui-header/header-environment/header-environment.component.mjs +4 -4
  230. package/esm2022/layout/eui-header/header-logo/header-logo.component.mjs +4 -4
  231. package/esm2022/layout/eui-header/header-user-profile/header-user-profile.component.mjs +3 -3
  232. package/esm2022/layout/eui-header/header.component.mjs +3 -3
  233. package/esm2022/layout/eui-header/header.module.mjs +4 -4
  234. package/esm2022/layout/eui-language-selector/language-selector.component.mjs +4 -4
  235. package/esm2022/layout/eui-language-selector/language-selector.module.mjs +4 -4
  236. package/esm2022/layout/eui-language-selector/modal-selector/modal-selector.component.mjs +3 -3
  237. package/esm2022/layout/eui-layout.module.mjs +10 -5
  238. package/esm2022/layout/eui-notifications/eui-notification-item.component.mjs +5 -5
  239. package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +3 -3
  240. package/esm2022/layout/eui-notifications/eui-notifications.module.mjs +4 -4
  241. package/esm2022/layout/eui-notifications-v2/eui-notification-item.component.mjs +57 -0
  242. package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +244 -0
  243. package/esm2022/layout/eui-notifications-v2/eui-notifications.module.mjs +25 -0
  244. package/esm2022/layout/eui-notifications-v2/index.mjs +4 -0
  245. package/esm2022/layout/eui-search/search.component.mjs +3 -3
  246. package/esm2022/layout/eui-search/search.module.mjs +4 -4
  247. package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.component.mjs +3 -3
  248. package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.module.mjs +4 -4
  249. package/esm2022/layout/eui-toolbar/toolbar-app/toolbar-app.component.mjs +3 -3
  250. package/esm2022/layout/eui-toolbar/toolbar-center/toolbar-center.component.mjs +3 -3
  251. package/esm2022/layout/eui-toolbar/toolbar-environment/toolbar-environment.component.mjs +3 -3
  252. package/esm2022/layout/eui-toolbar/toolbar-item/toolbar-item.component.mjs +3 -3
  253. package/esm2022/layout/eui-toolbar/toolbar-item-notifications/toolbar-item-notifications.component.mjs +3 -3
  254. package/esm2022/layout/eui-toolbar/toolbar-item-search/toolbar-item-search.component.mjs +3 -3
  255. package/esm2022/layout/eui-toolbar/toolbar-item-user-profile/toolbar-item-user-profile.component.mjs +3 -3
  256. package/esm2022/layout/eui-toolbar/toolbar-items/toolbar-items.component.mjs +3 -3
  257. package/esm2022/layout/eui-toolbar/toolbar-logo/toolbar-logo.component.mjs +3 -3
  258. package/esm2022/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.mjs +4 -4
  259. package/esm2022/layout/eui-toolbar/toolbar.component.mjs +4 -4
  260. package/esm2022/layout/eui-toolbar/toolbar.module.mjs +4 -4
  261. package/esm2022/layout/eui-user-profile/user-profile-card/user-profile-card.component.mjs +6 -5
  262. package/esm2022/layout/eui-user-profile/user-profile-menu/user-profile-menu.component.mjs +3 -3
  263. package/esm2022/layout/eui-user-profile/user-profile-menu-item/user-profile-menu-item.component.mjs +3 -3
  264. package/esm2022/layout/eui-user-profile/user-profile.component.mjs +14 -5
  265. package/esm2022/layout/eui-user-profile/user-profile.module.mjs +4 -4
  266. package/esm2022/layout/index.mjs +2 -1
  267. package/esm2022/pipes/eui-is-empty.pipe.mjs +7 -7
  268. package/esm2022/pipes/eui-truncate.pipe.mjs +7 -7
  269. package/esm2022/shared/base/base-states.directive.mjs +3 -3
  270. package/esm2022/shared/base/base.directive.mjs +3 -3
  271. package/esm2022/shared/base/mixins/index.mjs +1 -1
  272. package/esm2022/shared/eui-common-header/common-header.component.mjs +7 -7
  273. package/esm2022/shared/eui-expand-content/eui-expand-content.component.mjs +7 -7
  274. package/esm2022/shared/input.directive.mjs +4 -4
  275. package/eui-alert/eui-alert.component.d.ts.map +1 -1
  276. package/eui-all/eui-all.module.d.ts +19 -20
  277. package/eui-all/eui-all.module.d.ts.map +1 -1
  278. package/eui-autocomplete/eui-autocomplete.component.d.ts +12 -3
  279. package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
  280. package/eui-autocomplete/models/eui-autocomplete-item.model.d.ts +1 -0
  281. package/eui-autocomplete/models/eui-autocomplete-item.model.d.ts.map +1 -1
  282. package/eui-badge/eui-badge.component.d.ts.map +1 -1
  283. package/eui-block-content/eui-block-content.component.d.ts.map +1 -1
  284. package/eui-button/eui-button.component.d.ts +1 -1
  285. package/eui-button/eui-button.component.d.ts.map +1 -1
  286. package/eui-buttons/eui-buttons.component.d.ts +2 -2
  287. package/eui-buttons/eui-buttons.component.d.ts.map +1 -1
  288. package/eui-chip-list/eui-chip-list.component.d.ts.map +1 -1
  289. package/eui-dashboard-button/eui-dashboard-button.component.d.ts.map +1 -1
  290. package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
  291. package/eui-date-range-selector/eui-date-range-selector.component.d.ts +5 -1
  292. package/eui-date-range-selector/eui-date-range-selector.component.d.ts.map +1 -1
  293. package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
  294. package/eui-dialog/eui-dialog.component.d.ts.map +1 -1
  295. package/eui-dialog/services/eui-dialog.service.d.ts.map +1 -1
  296. package/eui-dimmer/dimmer.component.d.ts.map +1 -1
  297. package/eui-disable-content/eui-disable-content.component.d.ts +1 -1
  298. package/eui-disable-content/eui-disable-content.component.d.ts.map +1 -1
  299. package/eui-dropdown/dropdown-item/eui-dropdown-item.component.d.ts.map +1 -1
  300. package/eui-file-upload/eui-file-upload.component.d.ts +8 -5
  301. package/eui-file-upload/eui-file-upload.component.d.ts.map +1 -1
  302. package/eui-file-upload/eui-file-upload.module.d.ts +5 -6
  303. package/eui-file-upload/eui-file-upload.module.d.ts.map +1 -1
  304. package/eui-file-upload/file-preview/file-preview.component.d.ts.map +1 -1
  305. package/eui-file-upload/utils/eui-file-upload.validators.d.ts.map +1 -1
  306. package/eui-file-upload/utils/mime-types.d.ts.map +1 -1
  307. package/eui-growl/eui-growl.component.d.ts.map +1 -1
  308. package/eui-input-checkbox/eui-input-checkbox.component.d.ts +1 -1
  309. package/eui-input-checkbox/eui-input-checkbox.component.d.ts.map +1 -1
  310. package/eui-input-number/eui-number-control.directive.d.ts.map +1 -1
  311. package/eui-input-radio/eui-input-radio.component.d.ts +2 -1
  312. package/eui-input-radio/eui-input-radio.component.d.ts.map +1 -1
  313. package/eui-input-text/eui-input-text.component.d.ts +1 -1
  314. package/eui-input-text/eui-input-text.component.d.ts.map +1 -1
  315. package/eui-label/eui-label.component.d.ts.map +1 -1
  316. package/eui-list/eui-list-item/eui-list-item.component.d.ts.map +1 -1
  317. package/eui-menu/eui-menu.component.d.ts.map +1 -1
  318. package/eui-message-box/eui-message-box.component.d.ts.map +1 -1
  319. package/eui-overlay/components/eui-overlay-body/eui-overlay-body.component.d.ts.map +1 -1
  320. package/eui-overlay/components/eui-overlay-footer/eui-overlay-footer.component.d.ts.map +1 -1
  321. package/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.d.ts +15 -0
  322. package/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.d.ts.map +1 -0
  323. package/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.d.ts +1 -1
  324. package/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.d.ts.map +1 -1
  325. package/eui-overlay/eui-overlay.component.d.ts +4 -2
  326. package/eui-overlay/eui-overlay.component.d.ts.map +1 -1
  327. package/eui-overlay/index.d.ts +1 -0
  328. package/eui-overlay/index.d.ts.map +1 -1
  329. package/eui-paginator/eui-paginator.component.d.ts +3 -1
  330. package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
  331. package/eui-picker/eui-picker.component.d.ts.map +1 -1
  332. package/eui-picker/modal-picker/eui-modal-picker.component.d.ts.map +1 -1
  333. package/eui-popover/directives/eui-popover-arrow-position.directive.d.ts +18 -0
  334. package/eui-popover/directives/eui-popover-arrow-position.directive.d.ts.map +1 -0
  335. package/eui-popover/eui-popover.component.d.ts +7 -5
  336. package/eui-popover/eui-popover.component.d.ts.map +1 -1
  337. package/eui-popover/eui-popover.module.d.ts +8 -7
  338. package/eui-popover/eui-popover.module.d.ts.map +1 -1
  339. package/eui-popover/models/eui-popover-position.model.d.ts +8 -0
  340. package/eui-popover/models/eui-popover-position.model.d.ts.map +1 -0
  341. package/eui-select/eui-select-multiple.directive.d.ts +1 -1
  342. package/eui-select/eui-select-multiple.directive.d.ts.map +1 -1
  343. package/eui-select/eui-select-mutli-option.directive.d.ts.map +1 -1
  344. package/eui-select/eui-select-option.directive.d.ts.map +1 -1
  345. package/eui-select/eui-select.component.d.ts +1 -1
  346. package/eui-select/eui-select.component.d.ts.map +1 -1
  347. package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
  348. package/eui-slide-toggle/eui-slide-toggle.component.d.ts.map +1 -1
  349. package/eui-table/eui-table.component.d.ts.map +1 -1
  350. package/eui-table/sortable-col/eui-table-sortable-col.component.d.ts.map +1 -1
  351. package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
  352. package/eui-textarea/auto-resize.directive.d.ts.map +1 -1
  353. package/eui-textarea/eui-textarea.component.d.ts +3 -3
  354. package/eui-textarea/eui-textarea.component.d.ts.map +1 -1
  355. package/eui-timebar/eui-timebar-item.model.d.ts +2 -2
  356. package/eui-timebar/eui-timebar-item.model.d.ts.map +1 -1
  357. package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
  358. package/eui-timepicker/eui-timepicker.module.d.ts +1 -1
  359. package/eui-timepicker/eui-timepicker.module.d.ts.map +1 -1
  360. package/eui-timepicker/models/eui-date-time-picker.config.model.d.ts +1 -10
  361. package/eui-timepicker/models/eui-date-time-picker.config.model.d.ts.map +1 -1
  362. package/eui-tree/eui-dropdown-tree.directive.d.ts.map +1 -1
  363. package/eui-tree/eui-tree-form-control.directive.d.ts.map +1 -1
  364. package/eui-tree/eui-tree.component.d.ts +4 -1
  365. package/eui-tree/eui-tree.component.d.ts.map +1 -1
  366. package/eui-wizard/eui-wizard.component.d.ts.map +1 -1
  367. package/fesm2022/eui-components-directives.mjs +125 -95
  368. package/fesm2022/eui-components-directives.mjs.map +1 -1
  369. package/fesm2022/eui-components-eui-alert.mjs +8 -7
  370. package/fesm2022/eui-components-eui-alert.mjs.map +1 -1
  371. package/fesm2022/eui-components-eui-all.mjs +8 -9
  372. package/fesm2022/eui-components-eui-all.mjs.map +1 -1
  373. package/fesm2022/eui-components-eui-autocomplete.mjs +35 -18
  374. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  375. package/fesm2022/eui-components-eui-badge.mjs +7 -7
  376. package/fesm2022/eui-components-eui-badge.mjs.map +1 -1
  377. package/fesm2022/eui-components-eui-block-content.mjs +8 -8
  378. package/fesm2022/eui-components-eui-block-content.mjs.map +1 -1
  379. package/fesm2022/eui-components-eui-block-document.mjs +7 -7
  380. package/fesm2022/eui-components-eui-button-group.mjs +7 -7
  381. package/fesm2022/eui-components-eui-button.mjs +9 -9
  382. package/fesm2022/eui-components-eui-button.mjs.map +1 -1
  383. package/fesm2022/eui-components-eui-buttons.mjs +16 -16
  384. package/fesm2022/eui-components-eui-buttons.mjs.map +1 -1
  385. package/fesm2022/eui-components-eui-card.mjs +46 -46
  386. package/fesm2022/eui-components-eui-chip-list.mjs +15 -15
  387. package/fesm2022/eui-components-eui-chip-list.mjs.map +1 -1
  388. package/fesm2022/eui-components-eui-chip.mjs +7 -7
  389. package/fesm2022/eui-components-eui-dashboard-button.mjs +13 -13
  390. package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
  391. package/fesm2022/eui-components-eui-dashboard-card.mjs +8 -7
  392. package/fesm2022/eui-components-eui-dashboard-card.mjs.map +1 -1
  393. package/fesm2022/eui-components-eui-date-range-selector.mjs +22 -9
  394. package/fesm2022/eui-components-eui-date-range-selector.mjs.map +1 -1
  395. package/fesm2022/eui-components-eui-datepicker.mjs +24 -24
  396. package/fesm2022/eui-components-eui-datepicker.mjs.map +1 -1
  397. package/fesm2022/eui-components-eui-dialog.mjs +20 -20
  398. package/fesm2022/eui-components-eui-dialog.mjs.map +1 -1
  399. package/fesm2022/eui-components-eui-dimmer.mjs +7 -7
  400. package/fesm2022/eui-components-eui-dimmer.mjs.map +1 -1
  401. package/fesm2022/eui-components-eui-disable-content.mjs +9 -9
  402. package/fesm2022/eui-components-eui-disable-content.mjs.map +1 -1
  403. package/fesm2022/eui-components-eui-discussion-thread.mjs +11 -11
  404. package/fesm2022/eui-components-eui-discussion-thread.mjs.map +1 -1
  405. package/fesm2022/eui-components-eui-dropdown.mjs +26 -24
  406. package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
  407. package/fesm2022/eui-components-eui-feedback-message.mjs +7 -7
  408. package/fesm2022/eui-components-eui-fieldset.mjs +13 -13
  409. package/fesm2022/eui-components-eui-file-upload.mjs +52 -153
  410. package/fesm2022/eui-components-eui-file-upload.mjs.map +1 -1
  411. package/fesm2022/eui-components-eui-growl.mjs +10 -10
  412. package/fesm2022/eui-components-eui-growl.mjs.map +1 -1
  413. package/fesm2022/eui-components-eui-icon-toggle.mjs +7 -7
  414. package/fesm2022/eui-components-eui-icon.mjs +13 -13
  415. package/fesm2022/eui-components-eui-input-checkbox.mjs +7 -7
  416. package/fesm2022/eui-components-eui-input-checkbox.mjs.map +1 -1
  417. package/fesm2022/eui-components-eui-input-group.mjs +8 -8
  418. package/fesm2022/eui-components-eui-input-group.mjs.map +1 -1
  419. package/fesm2022/eui-components-eui-input-number.mjs +11 -11
  420. package/fesm2022/eui-components-eui-input-number.mjs.map +1 -1
  421. package/fesm2022/eui-components-eui-input-radio.mjs +12 -14
  422. package/fesm2022/eui-components-eui-input-radio.mjs.map +1 -1
  423. package/fesm2022/eui-components-eui-input-text.mjs +8 -8
  424. package/fesm2022/eui-components-eui-input-text.mjs.map +1 -1
  425. package/fesm2022/eui-components-eui-label.mjs +7 -7
  426. package/fesm2022/eui-components-eui-label.mjs.map +1 -1
  427. package/fesm2022/eui-components-eui-list.mjs +13 -13
  428. package/fesm2022/eui-components-eui-list.mjs.map +1 -1
  429. package/fesm2022/eui-components-eui-menu.mjs +12 -12
  430. package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
  431. package/fesm2022/eui-components-eui-message-box.mjs +15 -13
  432. package/fesm2022/eui-components-eui-message-box.mjs.map +1 -1
  433. package/fesm2022/eui-components-eui-overlay.mjs +76 -25
  434. package/fesm2022/eui-components-eui-overlay.mjs.map +1 -1
  435. package/fesm2022/eui-components-eui-page.mjs +55 -55
  436. package/fesm2022/eui-components-eui-paginator.mjs +14 -13
  437. package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
  438. package/fesm2022/eui-components-eui-picker.mjs +15 -13
  439. package/fesm2022/eui-components-eui-picker.mjs.map +1 -1
  440. package/fesm2022/eui-components-eui-popover.mjs +104 -28
  441. package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
  442. package/fesm2022/eui-components-eui-progress-bar.mjs +7 -7
  443. package/fesm2022/eui-components-eui-progress-circle.mjs +7 -7
  444. package/fesm2022/eui-components-eui-select.mjs +27 -21
  445. package/fesm2022/eui-components-eui-select.mjs.map +1 -1
  446. package/fesm2022/eui-components-eui-sidebar-menu.mjs +9 -7
  447. package/fesm2022/eui-components-eui-sidebar-menu.mjs.map +1 -1
  448. package/fesm2022/eui-components-eui-slide-toggle.mjs +7 -7
  449. package/fesm2022/eui-components-eui-slide-toggle.mjs.map +1 -1
  450. package/fesm2022/eui-components-eui-table.mjs +106 -59
  451. package/fesm2022/eui-components-eui-table.mjs.map +1 -1
  452. package/fesm2022/eui-components-eui-tabs.mjs +22 -22
  453. package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
  454. package/fesm2022/eui-components-eui-textarea.mjs +11 -11
  455. package/fesm2022/eui-components-eui-textarea.mjs.map +1 -1
  456. package/fesm2022/eui-components-eui-timebar.mjs +10 -8
  457. package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
  458. package/fesm2022/eui-components-eui-timeline.mjs +10 -10
  459. package/fesm2022/eui-components-eui-timepicker.mjs +13 -12
  460. package/fesm2022/eui-components-eui-timepicker.mjs.map +1 -1
  461. package/fesm2022/eui-components-eui-tree.mjs +42 -24
  462. package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
  463. package/fesm2022/eui-components-eui-wizard.mjs +25 -23
  464. package/fesm2022/eui-components-eui-wizard.mjs.map +1 -1
  465. package/fesm2022/eui-components-externals-charts.mjs +7 -7
  466. package/fesm2022/eui-components-externals-eui-editor.mjs +27 -27
  467. package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
  468. package/fesm2022/eui-components-externals-quill.mjs +7 -7
  469. package/fesm2022/eui-components-layout.mjs +553 -237
  470. package/fesm2022/eui-components-layout.mjs.map +1 -1
  471. package/fesm2022/eui-components-pipes.mjs +14 -14
  472. package/fesm2022/eui-components-shared-base.mjs +6 -6
  473. package/fesm2022/eui-components-shared-base.mjs.map +1 -1
  474. package/fesm2022/eui-components-shared.mjs +17 -17
  475. package/fesm2022/eui-components-shared.mjs.map +1 -1
  476. package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts.map +1 -1
  477. package/layout/eui-app/eui-app-sidebar/sidebar.component.d.ts.map +1 -1
  478. package/layout/eui-app/eui-app-top-message/top-message.component.d.ts.map +1 -1
  479. package/layout/eui-breadcrumb/breadcrumb.component.d.ts.map +1 -1
  480. package/layout/eui-breadcrumb/collapsed-breadcrumb/collapsed-breadcrumb.component.d.ts.map +1 -1
  481. package/layout/eui-breadcrumb/item/breadcrumb-item.component.d.ts +1 -1
  482. package/layout/eui-breadcrumb/item/breadcrumb-item.component.d.ts.map +1 -1
  483. package/layout/eui-header/header-app-name/header-app-name.component.d.ts.map +1 -1
  484. package/layout/eui-header/header-app-name-logo/header-app-name-logo.component.d.ts +2 -4
  485. package/layout/eui-header/header-app-name-logo/header-app-name-logo.component.d.ts.map +1 -1
  486. package/layout/eui-header/header-app-subtitle/header-app-subtitle.component.d.ts.map +1 -1
  487. package/layout/eui-header/header-environment/header-environment.component.d.ts.map +1 -1
  488. package/layout/eui-header/header-logo/header-logo.component.d.ts.map +1 -1
  489. package/layout/eui-layout.module.d.ts +10 -9
  490. package/layout/eui-layout.module.d.ts.map +1 -1
  491. package/layout/eui-notifications-v2/eui-notification-item.component.d.ts +21 -0
  492. package/layout/eui-notifications-v2/eui-notification-item.component.d.ts.map +1 -0
  493. package/layout/eui-notifications-v2/eui-notifications.component.d.ts +78 -0
  494. package/layout/eui-notifications-v2/eui-notifications.component.d.ts.map +1 -0
  495. package/layout/eui-notifications-v2/eui-notifications.module.d.ts +16 -0
  496. package/layout/eui-notifications-v2/eui-notifications.module.d.ts.map +1 -0
  497. package/layout/eui-notifications-v2/index.d.ts +4 -0
  498. package/layout/eui-notifications-v2/index.d.ts.map +1 -0
  499. package/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.d.ts.map +1 -1
  500. package/layout/eui-user-profile/user-profile-card/user-profile-card.component.d.ts.map +1 -1
  501. package/layout/eui-user-profile/user-profile.component.d.ts +5 -2
  502. package/layout/eui-user-profile/user-profile.component.d.ts.map +1 -1
  503. package/layout/index.d.ts +1 -0
  504. package/layout/index.d.ts.map +1 -1
  505. package/package.json +2 -2
  506. package/shared/base/mixins/index.d.ts.map +1 -1
  507. package/shared/input.directive.d.ts.map +1 -1
  508. package/esm2022/eui-file-upload/uploaded-file/uploaded-file.component.mjs +0 -116
  509. package/eui-file-upload/uploaded-file/uploaded-file.component.d.ts +0 -51
  510. package/eui-file-upload/uploaded-file/uploaded-file.component.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-tree.mjs","sources":["../../eui-tree/eui-tree.component.ts","../../eui-tree/eui-tree.component.html","../../eui-tree/eui-tree.model.ts","../../eui-tree/eui-dropdown-tree.directive.ts","../../eui-tree/eui-tree-helper.ts","../../eui-tree/eui-tree-form-control.directive.ts","../../eui-tree/eui-components-eui-tree.ts"],"sourcesContent":["import {\n Component,\n Input,\n NgModule,\n ChangeDetectionStrategy,\n EventEmitter,\n Output,\n ViewEncapsulation,\n TemplateRef,\n ChangeDetectorRef,\n SimpleChanges,\n OnInit,\n OnChanges,\n HostBinding,\n OnDestroy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport {\n SelectionRecursiveState,\n TreeDataModel,\n TreeItemModel,\n TreeDataRunTimeModel,\n TreeItemRunTimeModel,\n TreeItemSelectionRecursiveModel,\n EuiTreeSelectionChanges,\n} from './eui-tree.model';\nimport { FormsModule } from '@angular/forms';\nimport { EuiInputCheckboxModule } from '@eui/components/eui-input-checkbox';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiLabelModule } from '@eui/components/eui-label';\nimport { EuiBadgeModule } from '@eui/components/eui-badge';\nimport { EuiChipModule } from '@eui/components/eui-chip';\nimport { EuiDropdownModule } from '@eui/components/eui-dropdown';\nimport { NestedTreeControl, CdkTreeModule } from '@angular/cdk/tree';\nimport { ArrayDataSource, SelectionModel } from '@angular/cdk/collections';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'eui-tree',\n templateUrl: './eui-tree.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTreeComponent implements OnInit, OnChanges, OnDestroy {\n @HostBinding('class') string = 'eui-tree';\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-tree';\n @Input() nodes: TreeDataModel;\n @Input() nodeTemplateRef: TemplateRef<any>;\n @Input() nodeContentMetadataTemplateRef: TemplateRef<any>;\n @Input() rightContextMenuTemplateRef: TemplateRef<any>;\n @Input() expandedIconClass: string;\n @Input() collapsedIconClass: string;\n @Input() expandedSvgIconClass = 'eui-chevron-forward:eui';\n @Input() collapsedSvgIconClass = 'eui-chevron-down:eui';\n\n // @ViewChild('treeComponentInstance') public treeComponentInstance: any;\n // @ViewChild('treeComponentInstance') public treeComponentInstance: any;\n\n @Input()\n get isClickTogglingNode(): boolean {\n return this._isClickTogglingNode;\n }\n\n set isClickTogglingNode(value: BooleanInput) {\n this._isClickTogglingNode = coerceBooleanProperty(value);\n }\n\n @Input()\n get isMultiselect(): boolean {\n return this._isMultiselect;\n }\n\n set isMultiselect(value: BooleanInput) {\n this._isMultiselect = coerceBooleanProperty(value);\n }\n\n @Input()\n get isRecursiveSelection(): boolean {\n return this._isRecursiveSelection;\n }\n\n set isRecursiveSelection(value: BooleanInput) {\n this._isRecursiveSelection = coerceBooleanProperty(value);\n }\n\n @Input()\n get isRecursiveParentSelection(): boolean {\n return this._isRecursiveParentSelection;\n }\n\n set isRecursiveParentSelection(value: BooleanInput) {\n this._isRecursiveParentSelection = coerceBooleanProperty(value);\n }\n\n @Input()\n get autoTranslate(): boolean {\n return this._autoTranslate;\n }\n\n set autoTranslate(value: BooleanInput) {\n this._autoTranslate = coerceBooleanProperty(value);\n }\n\n @Output() selectionChange = new EventEmitter<EuiTreeSelectionChanges>();\n @Output() nodeClick = new EventEmitter<TreeItemModel>();\n @Output() nodeToggle = new EventEmitter<TreeItemModel>();\n cdkArrayDataSource: ArrayDataSource<TreeItemModel>;\n cdkTreeControl: NestedTreeControl<TreeItemModel>;\n renderTree: boolean;\n public uid: string = Math.floor(Math.random() * 1000000000).toString();\n private processedNodes: TreeDataModel;\n private treeDataRunTime: TreeDataRunTimeModel;\n private treeDataRunTimeBackup: TreeDataRunTimeModel;\n private runTimeSelectionRecursiveState: Array<TreeItemSelectionRecursiveModel>;\n private selectionModel: SelectionModel<TreeItemRunTimeModel>;\n private _isClickTogglingNode = false;\n private _isMultiselect = false;\n private _isRecursiveSelection = false;\n private _isRecursiveParentSelection = true;\n private _autoTranslate = true;\n private selectionModelSubs;\n private _selection;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.initTree();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['nodes'].currentValue !== changes['nodes'].previousValue) {\n this.renderTree = false;\n this.initTree();\n }\n }\n\n ngOnDestroy(): void {\n if (this.selectionModelSubs) {\n this.selectionModelSubs.unsubscribe();\n }\n }\n\n getSelection(): TreeDataModel {\n return this._selection;\n }\n\n trackBy(index: number, el: any): any {\n return el.parent;\n }\n\n getTreeItem(path: string): TreeItemModel {\n const indexArr: Array<number> = this.resolvePath(path);\n let nodeArr = this.processedNodes;\n let node;\n if (nodeArr && Array.isArray(nodeArr)) {\n indexArr?.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n nodeArr = nodeArr && nodeArr[pathIndex]?.children;\n } else {\n node = nodeArr[pathIndex];\n }\n });\n }\n return node;\n }\n\n expandAll(): void {\n this.cdkTreeControl.expandAll();\n this.changeDetectorRef.markForCheck();\n }\n\n expandAt(path: string): void {\n this.cdkTreeControl.expandDescendants(this.getRunTimeTreeItem(path[0]));\n this.cdkTreeControl.toggleDescendants(this.getRunTimeTreeItem(path));\n this.cdkTreeControl.expand(this.getRunTimeTreeItem(path));\n this.changeDetectorRef.markForCheck();\n }\n\n collapseAll(): void {\n this.cdkTreeControl.collapseAll();\n this.changeDetectorRef.markForCheck();\n }\n\n filterTerm(filterInput: string) {\n if (filterInput && filterInput !== '') {\n this.renderTree = false;\n this.changeDetectorRef.detectChanges();\n setTimeout(() => {\n this.treeDataRunTime = this.filterTreeData(structuredClone(this.treeDataRunTimeBackup), 'label', filterInput);\n this.cdkArrayDataSource = new ArrayDataSource(this.treeDataRunTime);\n this.cdkTreeControl = new NestedTreeControl<TreeItemRunTimeModel>((node) => node?.children);\n this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.renderTree = true;\n this.changeDetectorRef.detectChanges();\n this.expandAll();\n });\n } else {\n this.renderTree = false;\n this.changeDetectorRef.detectChanges();\n setTimeout(() => {\n this.treeDataRunTime = structuredClone(this.treeDataRunTimeBackup);\n this.cdkArrayDataSource = new ArrayDataSource(this.treeDataRunTime);\n this.cdkTreeControl = new NestedTreeControl<TreeItemRunTimeModel>((node) => node?.children);\n this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.renderTree = true;\n this.changeDetectorRef.detectChanges();\n this.expandAll();\n });\n }\n }\n\n setAllSelection(isChecked: boolean): void {\n this.setIsCheckedForAll(this.processedNodes, isChecked, this.treeDataRunTime);\n this.changeDetectorRef.markForCheck();\n }\n\n onNodeClick(treeItem: TreeItemRunTimeModel): void {\n this.nodeClick.emit(this.getTreeItem(treeItem?.path));\n if (this.isClickTogglingNode) {\n this.cdkTreeControl.toggle(treeItem);\n this.onNodeToggle(treeItem);\n }\n }\n\n onNodeToggle(treeItem: TreeItemRunTimeModel): void {\n this.nodeToggle.emit(this.getTreeItem(treeItem?.path));\n }\n\n nodeSelected(evt: any, path: string): void {\n const item = this.getTreeItem(path);\n const treeItemModel = this.getRunTimeTreeItem(path);\n const node = item.node;\n const children = item.children;\n const pathArr = path.split('.');\n const hasParent = pathArr.length > 1;\n // Sets the hasParent If there is a parent, and removes the last element form pathArr.\n if (hasParent) {\n pathArr.pop();\n }\n // Silently sets the isSelected.\n node.isSelected = evt.target.checked;\n // Sets isSelected change on the control.\n if (node.isSelected) {\n this.selectTreeItem(treeItemModel);\n } else {\n this.deselectTreeItem(treeItemModel);\n }\n node.isIndeterminate = false;\n // If the node is recursive it sets every children with the change.\n if (children && children.length > 0) {\n if (node?.selectConfig?.recursive) {\n this.setIsCheckedForAll(children, evt.target.checked, treeItemModel?.children);\n }\n }\n // Calculates to the node and its children node state\n this.setRunTimeSelectionRecursiveStateTree(\n path,\n this.calculateItemSelectionRecursiveState(structuredClone(this.getTreeItem(path)))\n );\n // It is here for the filter edge case.\n this.syncStateChangesAtPath(path);\n\n if (hasParent) {\n // Calculates parent path\n const parentPath = pathArr.join('.');\n // Creating node index sequence f.e If path is '1.2' it will be [1,2]\n const nodeIndexSeq = parentPath.split('.').map((indexStr) => parseInt(indexStr, 10));\n // Calculating the node paths array to be re-calculated from bottom to top\n const nodePathsSeq = [];\n nodeIndexSeq.forEach((nodeIndex, index) => {\n nodePathsSeq[index] = nodeIndexSeq.slice(0, index + 1).join('.');\n });\n nodePathsSeq.reverse();\n nodePathsSeq.forEach((nodePath: string) => {\n this.updateRunTimeSelectionRecursiveState(\n nodePath,\n this.decideSelectionRecursiveState(this.getRunTimeSelectionRecursiveState(nodePath))\n );\n this.syncStateChangesAtPath(nodePath);\n });\n this.changeDetectorRef.detectChanges();\n }\n }\n\n hasChild = (_: number, item: TreeItemRunTimeModel) => !!item?.children && item?.children?.length > 0;\n\n onSelectFn(path: string, treeItemModel: TreeItemRunTimeModel): (evt: any) => void {\n if (treeItemModel?.node?.selectable) {\n const nodeSelected = this.nodeSelected.bind(this);\n return (evt: any) => nodeSelected(evt, path);\n }\n return (evt: any) => {\n console.warn('treeItemModel.node.selectable is false, you can not implement onSelect');\n };\n }\n\n private initTree() {\n if (this.nodes) {\n this.processedNodes = this.processInputs(structuredClone(this.nodes));\n this.createTreeDataRuntime(this.processedNodes);\n this.cdkArrayDataSource = new ArrayDataSource(this.treeDataRunTime);\n this.treeDataRunTimeBackup = structuredClone(this.treeDataRunTime);\n this.cdkTreeControl = new NestedTreeControl<TreeItemRunTimeModel>((node) => node?.children);\n this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.renderInitialExpand(this.treeDataRunTime);\n this.selectionModel = new SelectionModel<TreeItemRunTimeModel>(\n true,\n this.getInitialSelection(this.treeDataRunTime),\n true,\n (a, b) => a?.path === b?.path\n );\n this._selection = [...this.selectionModel.selected]?.map((item) => this.getTreeItem(item.path));\n this.renderTree = true;\n if (this.selectionModelSubs) {\n this.selectionModelSubs.unsubscribe();\n }\n this.selectionModelSubs = this.selectionModel.changed.subscribe((sc) => {\n const selectionChange = {\n added: sc.added.map((_) => this.getTreeItem(_.path)),\n removed: sc.removed.map((_) => this.getTreeItem(_.path)),\n selection: [...this.selectionModel.selected].map((item) => this.getTreeItem(item.path)),\n };\n this._selection = selectionChange.selection;\n this.selectionChange.emit(selectionChange);\n });\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private processInputs(treeData: TreeDataModel): TreeDataModel {\n if (this.isMultiselect) {\n treeData = this.overrideTreeDataModelForSelection(treeData, this.isRecursiveSelection, !this.isRecursiveParentSelection);\n }\n return treeData;\n }\n\n private overrideTreeDataModelForSelection(nodeArr: TreeDataModel, isRecursive: boolean, noAutoSelectParent: boolean): TreeDataModel {\n return nodeArr?.map((item: TreeItemModel, index: number) => {\n if (item?.children && item.children.length > 0) {\n return {\n ...item,\n node: {\n ...item.node,\n selectable: typeof item?.node?.selectable === 'undefined' ? true : item?.node?.selectable,\n // isSelected: false,\n // isIndeterminate: false,\n selectConfig: {\n ...item.node.selectConfig,\n recursive:\n typeof item?.node?.selectConfig?.recursive === 'undefined'\n ? !!isRecursive\n : item?.node?.selectConfig?.recursive,\n noAutoSelectParent:\n typeof item?.node?.selectConfig?.noAutoSelectParent === 'undefined'\n ? noAutoSelectParent\n : item?.node?.selectConfig?.noAutoSelectParent,\n },\n },\n children: this.overrideTreeDataModelForSelection(item.children, isRecursive, noAutoSelectParent),\n };\n } else {\n return {\n ...item,\n node: {\n ...item.node,\n selectable: typeof item?.node?.selectable === 'undefined' ? true : item?.node?.selectable,\n },\n };\n }\n });\n }\n\n private getSelectionIndexOfItem(runTimeTreeItem: TreeItemRunTimeModel): number {\n return this.selectionModel.selected.findIndex((i) => i?.path === runTimeTreeItem?.path);\n }\n\n private selectTreeItem(runTimeTreeItem: TreeItemRunTimeModel): void {\n const indexOfItem = this.getSelectionIndexOfItem(runTimeTreeItem);\n if (indexOfItem === -1) {\n this.selectionModel.select(runTimeTreeItem);\n }\n }\n\n private deselectTreeItem(runTimeTreeItem: TreeItemRunTimeModel): void {\n const indexOfItem = this.getSelectionIndexOfItem(runTimeTreeItem);\n if (indexOfItem > -1) {\n const newSelection = [...this.selectionModel.selected];\n newSelection.splice(indexOfItem, 1);\n this.selectionModel.setSelection(...newSelection);\n }\n }\n\n // Creates treeDataRunTime & runTimeSelectionRecursiveState for separate the logic.\n private createTreeDataRuntime(nodes: TreeDataModel): void {\n this.treeDataRunTime = structuredClone(nodes)?.map((item, index) => {\n return this.calculateRunTimeState({ ...item }, index);\n });\n this.runTimeSelectionRecursiveState = structuredClone(nodes)?.map((item) => this.calculateItemSelectionRecursiveState({ ...item }));\n }\n\n // Creating run time state which includes children selection state for selection tree.\n private calculateItemSelectionRecursiveState(treeItem: TreeItemModel): TreeItemSelectionRecursiveModel {\n if (treeItem.children && treeItem.children.length > 0) {\n treeItem.children.forEach((child, index) => {\n treeItem.children[index] = this.calculateItemSelectionRecursiveState(child);\n });\n }\n\n const itemState: SelectionRecursiveState = this.decideSelectionRecursiveState(treeItem);\n\n return {\n ...treeItem,\n selectionRecursiveState: itemState,\n };\n }\n\n private decideSelectionRecursiveState(treeItem: TreeItemSelectionRecursiveModel): SelectionRecursiveState {\n const runTimeItems = treeItem.children || ([] as any);\n const childStates = runTimeItems?.map((item) => item.selectionRecursiveState);\n let itemState: SelectionRecursiveState = 'indeterminate';\n if (treeItem.node.isSelected && childStates.every((state) => state === 'allSelected')) {\n itemState = 'allSelected';\n } else if (!treeItem.node.isSelected && childStates.every((state) => state === 'allNotSelected')) {\n itemState = 'allNotSelected';\n } else if (\n treeItem.node?.selectConfig?.recursive &&\n childStates.every((state) => state === 'allSelected') &&\n !treeItem.node.isSelected &&\n !treeItem?.node?.selectConfig?.noAutoSelectParent\n ) {\n itemState = 'allSelected';\n } else if (\n treeItem.node?.selectConfig?.recursive &&\n childStates.every((state) => state === 'allNotSelected') &&\n treeItem.node.isSelected\n ) {\n itemState = 'allNotSelected';\n }\n return itemState;\n }\n\n private syncStateChangesAtPath(nodePath) {\n const treeItem = this.getTreeItem(nodePath);\n const runTimeTreeItem = this.getRunTimeTreeItem(nodePath);\n const runTimeSelectionRecursiveItem = this.getRunTimeSelectionRecursiveState(nodePath);\n if (treeItem?.node?.selectable && treeItem.node?.selectConfig?.recursive) {\n if (!treeItem.node?.selectConfig?.noAutoSelectParent) {\n treeItem.node = {\n ...treeItem.node,\n isSelected: runTimeSelectionRecursiveItem.selectionRecursiveState === 'allSelected',\n isIndeterminate: runTimeSelectionRecursiveItem.selectionRecursiveState === 'indeterminate',\n };\n } else {\n treeItem.node = {\n ...treeItem.node,\n isSelected: treeItem.node.isSelected && runTimeSelectionRecursiveItem.selectionRecursiveState === 'allSelected',\n isIndeterminate:\n runTimeSelectionRecursiveItem.selectionRecursiveState === 'indeterminate' ||\n (!treeItem.node.isSelected && runTimeSelectionRecursiveItem.selectionRecursiveState === 'allSelected'),\n };\n }\n // console.log(treeItem, treeItem.node.treeContentBlock.label, 'isSelected:' + treeItem.node.isSelected, 'isIndeterminate:' + treeItem.node.isIndeterminate);\n if (treeItem.node.isSelected === true) {\n this.selectTreeItem(runTimeTreeItem);\n } else {\n this.deselectTreeItem(runTimeTreeItem);\n }\n }\n }\n\n private getRunTimeSelectionRecursiveState(path: string): TreeItemSelectionRecursiveModel {\n const indexArr: Array<number> = this.resolvePath(path);\n let nodeArr = this.runTimeSelectionRecursiveState;\n let node;\n indexArr.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n nodeArr = nodeArr[pathIndex]?.children;\n } else {\n node = nodeArr[pathIndex];\n }\n });\n return node;\n }\n\n private setRunTimeSelectionRecursiveStateTree(path: string, item: TreeItemSelectionRecursiveModel) {\n const indexArr: Array<number> = this.resolvePath(path);\n let itemArr = this.runTimeSelectionRecursiveState;\n indexArr.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n itemArr = itemArr[pathIndex]?.children;\n } else {\n itemArr[pathIndex] = item;\n }\n });\n }\n\n private updateRunTimeSelectionRecursiveState(path: string, selectionRecursiveState: SelectionRecursiveState) {\n const indexArr: Array<number> = this.resolvePath(path);\n let itemArr = this.runTimeSelectionRecursiveState;\n indexArr.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n itemArr = itemArr[pathIndex]?.children;\n } else {\n itemArr[pathIndex] = {\n ...itemArr[pathIndex],\n selectionRecursiveState,\n };\n }\n });\n }\n\n private setIsCheckedForAll(nodeArr: TreeDataModel, isChecked: boolean, runTimeTreeData: TreeDataRunTimeModel): void {\n nodeArr.forEach((item: TreeItemModel, index: number) => {\n if (runTimeTreeData[index] && nodeArr[index]?.node?.selectable) {\n nodeArr[index] = {\n ...item,\n node: {\n ...item.node,\n isSelected: isChecked,\n isIndeterminate: false,\n },\n };\n if (isChecked) {\n this.selectTreeItem(runTimeTreeData[index]);\n } else {\n this.deselectTreeItem(runTimeTreeData[index]);\n }\n }\n if (runTimeTreeData[index]?.children?.length > 0 && nodeArr[index].children && nodeArr[index].children.length > 0) {\n this.setIsCheckedForAll(nodeArr[index].children, isChecked, runTimeTreeData[index].children);\n }\n });\n }\n\n private resolvePath(path: string): Array<number> {\n return path?.split('.').map((index: string) => parseInt(index, 10));\n }\n\n private calculateRunTimeState(treeItem: TreeItemRunTimeModel, index: number, parentPath?: string): TreeItemRunTimeModel {\n treeItem.path = parentPath ? parentPath + '.' + index : index.toString();\n treeItem.index = index;\n if (treeItem.children && treeItem.children.length > 0) {\n treeItem.children.forEach((child, treeItemIndex) => {\n treeItem.children[treeItemIndex] = this.calculateRunTimeState(child, treeItemIndex, treeItem.path);\n });\n }\n return treeItem;\n }\n\n private filterTreeData(treeData: TreeDataModel, key: string = 'label', filterStr: string) {\n return treeData.filter((treeItem) => {\n if (treeItem?.children?.length > 0) {\n treeItem.children = this.filterTreeData([...treeItem.children], key, filterStr);\n treeItem.children = treeItem.children.length > 0 ? treeItem.children : undefined;\n }\n if (this.normalizedStr(treeItem.node.treeContentBlock.label).includes(this.normalizedStr(filterStr))) {\n return true;\n } else if (treeItem?.children?.length > 0) {\n return treeItem?.children?.length > 0;\n } else {\n return false;\n }\n });\n }\n\n private normalizedStr(str: string) {\n return str\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n }\n\n private getInitialSelection(nodes: TreeDataRunTimeModel): Array<TreeItemRunTimeModel> {\n const selection: Array<TreeItemRunTimeModel> = [];\n this.scanSelection(nodes, selection);\n return selection;\n }\n\n private scanSelection(nodes: TreeDataRunTimeModel, selection: Array<TreeItemRunTimeModel>) {\n nodes.forEach((item: TreeItemRunTimeModel) => {\n if (item.node?.selectable && item.node.isSelected) {\n selection.push(item);\n }\n if (item?.children?.length > 0) {\n this.scanSelection(item.children, selection);\n }\n });\n }\n\n private renderInitialExpand(nodes: TreeDataRunTimeModel) {\n nodes.forEach((item: TreeItemRunTimeModel) => {\n if (item?.node?.isExpanded) {\n this.expandAt(item.path);\n }\n if (item?.children?.length > 0) {\n this.renderInitialExpand(item.children);\n }\n });\n }\n\n private getRunTimeTreeItem(path: string): TreeItemRunTimeModel {\n const indexArr: Array<number> = this.resolvePath(path);\n let nodeArr = this.treeDataRunTime;\n let node;\n if (nodeArr && Array.isArray(nodeArr)) {\n indexArr?.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n nodeArr = nodeArr && nodeArr[pathIndex]?.children;\n } else {\n node = nodeArr[pathIndex];\n }\n });\n }\n return node;\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n TranslateModule,\n EuiInputCheckboxModule,\n CdkTreeModule,\n EuiButtonModule,\n EuiIconModule,\n EuiLabelModule,\n EuiBadgeModule,\n EuiChipModule,\n EuiDropdownModule,\n ],\n declarations: [EuiTreeComponent],\n exports: [EuiTreeComponent],\n})\nexport class EuiTreeModule {}\n","<ul class=\"eui-tree__wrapper\">\n <cdk-tree [dataSource]=\"cdkArrayDataSource\" [treeControl]=\"cdkTreeControl\" [trackBy]=\"trackBy\" *ngIf=\"renderTree\" class=\"eui-cdk-tree\">\n <!-- There are two states of generic cdk-nested-tree-node declarations.\n First one is without child. No sub rendering.\n -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel\" class=\"eui-cdk-nested-tree-node\">\n <li\n class=\"eui-tree-node\"\n *ngIf=\"treeItemModel\"\n title=\"{{\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel ||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label\n }}\">\n <div class=\"eui-tree-node-wrapper\" (click)=\"onNodeClick(treeItemModel)\">\n <div class=\"eui-tree-node-wrapper__container\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef || nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect: onSelectFn(treeItemModel.path, treeItemModel),\n id: uid + treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n </li>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n *cdkTreeNodeDef=\"let treeItemModel; when: hasChild\"\n class=\"eui-cdk-nested-tree-node eui-cdk-nested-tree-node--with-child\">\n <li\n class=\"eui-tree-node\"\n *ngIf=\"treeItemModel\"\n title=\"{{\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel ||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label\n }}\">\n <div class=\"eui-tree-node-wrapper\">\n <!--Here wraps the node, and listen for node clicks.-->\n <div (click)=\"onNodeClick(treeItemModel)\" class=\"eui-tree-node-wrapper__container\">\n <!-- Expand/collapse action button -->\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeS\n type=\"button\"\n [attr.aria-label]=\"'Toggle ' + treeItemModel?.node?.treeContentBlock?.label\"\n (click)=\"onNodeToggle(treeItemModel)\"\n cdkTreeNodeToggle\n class=\"eui-u-mr-xs\">\n <span\n euiIcon\n *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel) && collapsedIconClass\"\n [iconClass]=\"collapsedIconClass\"></span>\n <span\n euiIcon\n *ngIf=\"cdkTreeControl.isExpanded(treeItemModel) && expandedIconClass\"\n [iconClass]=\"expandedIconClass\"></span>\n <eui-icon-svg\n *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel) && !collapsedIconClass\"\n [icon]=\"expandedSvgIconClass\"></eui-icon-svg>\n <eui-icon-svg\n *ngIf=\"cdkTreeControl.isExpanded(treeItemModel) && !expandedIconClass\"\n [icon]=\"collapsedSvgIconClass\"></eui-icon-svg>\n </button>\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef || nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect: onSelectFn(treeItemModel?.path, treeItemModel),\n id: uid + treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n <!--uses cdkTreeNodeOutlet to render children nodes, CdkTreeControl is used to control isExpanded state.-->\n <ul class=\"eui-tree-node\" *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </ul>\n </li>\n </cdk-nested-tree-node>\n </cdk-tree>\n</ul>\n\n<ng-template #nodeTemplateDefault let-node let-onSelect=\"onSelect\" let-id=\"id\">\n <ng-container *ngIf=\"node\">\n <div class=\"eui-tree-node-wrapper__container-left\" [class.eui-tree-node-wrapper__container-left--selected]=\"node?.isSelected\">\n <!--input checkbox area-->\n <input\n euiInputCheckBox\n *ngIf=\"node && node.selectable\"\n type=\"checkbox\"\n id=\"{{ id }}\"\n [checked]=\"!!node?.isSelected\"\n [indeterminate]=\"!!node?.isIndeterminate\"\n (change)=\"onSelect($event)\"\n class=\"eui-u-mr-m\" />\n\n <!--icon area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.iconClass\">\n <eui-icon\n [euiVariant]=\"node?.treeContentBlock?.iconTypeClass || 'primary'\"\n iconClass=\"{{ node?.treeContentBlock?.iconClass }}\"\n euiSizeS\n class=\"eui-u-mr-xs\">\n </eui-icon>\n </ng-container>\n <ng-container *ngIf=\"node?.treeContentBlock?.iconSvgName\">\n <eui-icon-svg\n icon=\"{{ node?.treeContentBlock?.iconSvgName }}\"\n fillColor=\"{{ node?.treeContentBlock?.iconTypeClass || 'grey-100' }}\"\n size=\"s\"\n class=\"eui-u-mr-xs\">\n </eui-icon-svg>\n </ng-container>\n\n <!--chips area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.chips\">\n <eui-chip\n *ngFor=\"let chip of node.treeContentBlock.chips\"\n euiSizeXS\n [euiVariant]=\"chip.typeClass || 'secondary'\"\n [euiOutline]=\"chip.isOutline\"\n class=\"eui-chip--rounded eui-u-mb-none eui-u-mr-xs\">\n <span euiLabel>{{ chip.label }}</span>\n </eui-chip>\n </ng-container>\n\n <!--badge (typeLabel & typeClass) area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.typeLabel\" [ngSwitch]=\"node?.treeContentBlock?.typeClass\">\n <eui-badge euiSizeM [euiVariant]=\"node?.treeContentBlock?.typeClass || 'primary'\" class=\"eui-u-flex-no-shrink eui-u-mr-xs\">\n {{ node?.treeContentBlock?.typeLabel }}\n </eui-badge>\n </ng-container>\n </div>\n\n <!--label area-->\n <div class=\"eui-tree-node-wrapper__container-middle\">\n <label\n *ngIf=\"!node?.treeContentBlock?.url && !node?.treeContentBlock?.urlExternal\"\n euiLabel\n for=\"{{ id }}\"\n class=\"eui-u-text-truncate eui-u-mr-s\"\n [class.eui-label--selected]=\"node?.isSelected\"\n [class.eui-u-cursor-pointer]=\"node?.selectable\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </label>\n <label *ngIf=\"node?.treeContentBlock?.url\" euiLabel for=\"{{ id }}\" class=\"eui-u-text-truncate eui-u-mr-m\">\n <a class=\"eui-u-text-link\" [routerLink]=\"node?.treeContentBlock?.url\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </a>\n </label>\n <label *ngIf=\"node?.treeContentBlock?.urlExternal\" euiLabel for=\"{{ id }}\" class=\"eui-u-text-truncate eui-u-mr-m\">\n <a\n class=\"eui-u-text-link-external\"\n href=\"{{ node?.treeContentBlock?.urlExternal }}\"\n target=\"{{ node?.treeContentBlock?.urlExternalTarget || 'blank' }}\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </a>\n </label>\n </div>\n\n <div *ngIf=\"node?.treeContentBlock?.rightContent\" class=\"eui-tree-node-wrapper__container-right\">\n <!--badges area-->\n <ng-container *ngFor=\"let badge of node.treeContentBlock.rightContent?.badges\">\n <eui-badge euiSizeM euiOutline [euiVariant]=\"badge.typeClass || 'secondary'\" class=\"eui-u-ml-xs\">\n <span euiLabel>{{ badge.label }}</span>\n </eui-badge>\n </ng-container>\n\n <!--chips area-->\n <ng-container *ngFor=\"let chip of node.treeContentBlock.rightContent?.chips\">\n <eui-chip\n euiSizeXS\n [euiVariant]=\"chip.typeClass || 'secondary'\"\n [euiOutline]=\"chip.isOutline\"\n class=\"eui-chip--rounded eui-u-mb-none eui-u-ml-xs\">\n <span euiLabel>{{ chip.label }}</span>\n </eui-chip>\n </ng-container>\n\n <!--Context menu-->\n <ng-container *ngIf=\"node.treeContentBlock.rightContent?.contextMenuMetaData && rightContextMenuTemplateRef\">\n <eui-dropdown class=\"eui-u-ml-xs\">\n <button euiButton euiSizeS euiRounded euiIconButton euiBasicButton euiSecondary [attr.aria-label]=\"'Options menu'\">\n <eui-icon-svg icon=\"eui-ellipsis-vertical\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <ng-template\n [ngTemplateOutlet]=\"rightContextMenuTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: node?.treeContentBlock?.rightContent?.contextMenuMetaData,\n metadata: node?.treeContentBlock?.rightContent?.contextMenuMetaData\n }\">\n </ng-template>\n </eui-dropdown-content>\n </eui-dropdown>\n </ng-container>\n </div>\n\n <!--metadata, uses the help of ng template to generate dynamic expand variable without handling state -->\n <ng-container\n *ngIf=\"node.treeContentBlock?.metadata && nodeContentMetadataTemplateRef\"\n [ngTemplateOutlet]=\"nodeContentMetadataContainer\"\n [ngTemplateOutletContext]=\"{\n $implicit: { expanded: false }\n }\">\n </ng-container>\n <ng-template #nodeContentMetadataContainer let-metaDataContainer>\n <button\n euiButton\n euiBasicButton\n euiIconButton\n euiRounded\n euiSizeS\n type=\"button\"\n (click)=\"metaDataContainer.expanded = !metaDataContainer.expanded\">\n <eui-icon-svg [icon]=\"metaDataContainer.expanded ? 'eui-chevron-down' : 'eui-chevron-forward'\"></eui-icon-svg>\n </button>\n <div *ngIf=\"metaDataContainer.expanded\" class=\"eui-tree-node__metacontent\">\n <!--passing metadata of the node content to provided template-ref:nodeContentMetadataTemplateRef-->\n <ng-template\n [ngTemplateOutlet]=\"nodeContentMetadataTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: node?.treeContentBlock?.metadata,\n metadata: node?.treeContentBlock?.metadata\n }\">\n </ng-template>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n","import { UxLinkLegacy } from '@eui/base';\n\nexport type TreeDataModel = Array<TreeItemModel>;\n\nexport type TreeItemModel = {\n node: TreeNode;\n children?: TreeDataModel;\n};\n\nexport type TreeNode = {\n // metadata can be block content, or any\n treeContentBlock: EuiTreeContentBlockModel | any;\n} & SelectionModel &\n ExpandModel;\n\nexport interface EuiTreeContentBlockModel {\n id?: string | number;\n label: string;\n tooltipLabel: string;\n url: string;\n urlExternal: string;\n urlExternalTarget: string;\n typeLabel: string;\n typeClass: string;\n chips?: Array<{ label: string; typeClass?: string; isOutline?: boolean }>;\n iconClass: string;\n iconTypeClass: string;\n iconSvgName?: string;\n rightContent?: {\n iconClass: string;\n iconTypeClass: string;\n iconSvgName?: string;\n badges?: Array<{ label: string; typeClass: string }>;\n chips?: Array<{ label: string; typeClass?: string; isOutline?: boolean }>;\n contextMenuMetaData?: any;\n };\n metaData: string;\n\n [key: string]: any;\n}\n\nexport type SelectionModel = {\n // if one of sub is selected, it becomes intermediate\n selectable?: boolean;\n isSelected?: boolean;\n isExpanded?: boolean;\n isIndeterminate?: boolean;\n selectConfig?: SelectConfigModel;\n};\n\nexport interface SelectConfigModel {\n /*\n If It is true;\n When user select parent, all the children will be selected\n When selection state is changed, If all children is selected parent will be selected as long as noAutoSelectParent is not true\n */\n recursive?: boolean;\n /* when It is true, If all children is selected, parent will not be selected, while recursive is true*/\n noAutoSelectParent?: boolean;\n}\n\nexport type ExpandModel = {\n isExpanded?: boolean;\n};\n\nexport type EuiTreeSelectionChanges = { added: TreeDataModel; removed: TreeDataModel; selection: TreeDataModel };\n\nexport type TreeDataRunTimeModel = Array<TreeItemRunTimeModel>;\n\nexport type TreeItemRunTimeModel = { index?: number; path?: string } & TreeItemModel;\n\nexport type TreeItemSelectionRecursiveModel = { selectionRecursiveState?: SelectionRecursiveState } & TreeItemModel;\n\nexport type SelectionRecursiveState = 'indeterminate' | 'allSelected' | 'allNotSelected';\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\nexport function uxTreeNodesMetaDataMapper(oldTree: Array<UxLinkLegacy>): TreeDataModel {\n return oldTree.map((item) => {\n if (item?.typeClass === 'default') {\n // default typeClass will be\n item.typeClass = 'secondary';\n }\n if (item?.badgeLabel) {\n // default typeClass will be\n if (item?.badges?.length > 0) {\n item.badges.push({ label: item?.badgeLabel, typeClass: 'secondary' });\n } else {\n item.badges = [{ label: item?.badgeLabel, typeClass: 'secondary' }];\n }\n }\n return {\n node: {\n treeContentBlock: {\n label: item.label,\n typeLabel: item.typeLabel,\n typeClass: item.typeLabel && !item.typeClass ? 'secondary' : item.typeClass,\n tooltipLabel: item.tooltipLabel,\n url: item.url,\n urlExternal: item.urlExternal,\n urlExternalTarget: item.urlExternal && item.urlExternalTarget ? item.urlExternalTarget : undefined,\n badges: item.badges,\n metadata: item.metadata,\n },\n },\n children: item.children ? uxTreeNodesMetaDataMapper(item.children) : undefined,\n };\n });\n}\n","import {\n Directive,\n Host,\n AfterContentInit,\n ContentChild,\n Input,\n TemplateRef,\n AfterViewInit,\n ChangeDetectorRef,\n ElementRef,\n Renderer2,\n NgModule,\n} from '@angular/core';\nimport { EuiTreeComponent } from './eui-tree.component';\nimport { TreeDataModel } from './eui-tree.model';\nimport { EuiDropdownComponent } from '@eui/components/eui-dropdown';\nimport { CommonModule } from '@angular/common';\n\n@Directive({\n selector: 'eui-dropdown[euiDropdownTree]',\n})\nexport class EuiDropdownTreeDirective implements AfterContentInit, AfterViewInit {\n @Input() buttonTemplateRef: TemplateRef<any>;\n @ContentChild(EuiTreeComponent, { static: false }) euiTree: EuiTreeComponent;\n\n private buttonLabel: string;\n private buttonViewRef;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private hostElement: ElementRef,\n private renderer: Renderer2,\n @Host() private euiDropdown: EuiDropdownComponent\n ) {}\n\n ngAfterContentInit() {\n this.buttonLabel = this.createButtonLabel(this.euiTree.getSelection());\n this.euiTree.selectionChange.subscribe((selectionChanges) => {\n this.buttonLabel = this.createButtonLabel(selectionChanges.selection);\n this.buttonViewRef.context.$implicit = this.buttonLabel;\n this.buttonViewRef.detectChanges();\n });\n }\n\n ngAfterViewInit() {\n if (this.buttonTemplateRef) {\n const triggerContainer = this.hostElement.nativeElement.querySelector('.eui-dropdown__trigger-container');\n if (!triggerContainer) {\n console.error('Could not find the triggerContainer');\n return;\n }\n while (triggerContainer.firstChild) {\n triggerContainer.removeChild(triggerContainer.firstChild);\n }\n this.buttonViewRef = this.buttonTemplateRef.createEmbeddedView({ $implicit: this.buttonLabel });\n this.buttonViewRef.detectChanges();\n\n this.buttonViewRef.rootNodes.forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n this.renderer.appendChild(triggerContainer, node);\n }\n });\n }\n }\n\n private createButtonLabel(selection: TreeDataModel) {\n if (selection?.length > 0) {\n return this.euiTree\n .getSelection()\n ?.map((item) => item.node.treeContentBlock.label)\n .join(',') as string;\n }\n return 'No node selected.';\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [EuiDropdownTreeDirective],\n declarations: [EuiDropdownTreeDirective],\n})\nexport class EuiDropdownTreeDirectiveModule {}\n","import { TreeDataModel, TreeItemModel } from './eui-tree.model';\n\nexport class EuiTreeHelper {\n private readonly treeData: TreeDataModel;\n\n constructor(treeData: TreeDataModel) {\n this.treeData = treeData;\n }\n\n public getPaths(values: Array<any>, identifierKey?: string): Array<string> {\n const paths: Array<string> = [];\n this.traverse(this.treeData, '', values, paths, undefined, identifierKey);\n return paths;\n }\n\n public getItems(values: Array<any>, identifierKey?: string): Array<TreeItemModel> {\n const matchedItems: Array<TreeItemModel> = [];\n this.traverse(this.treeData, '', values, undefined, matchedItems, identifierKey);\n return matchedItems;\n }\n\n private traverse(\n tree: TreeDataModel,\n currentPath: string,\n values: Array<any>,\n paths?: Array<string>,\n items?: Array<TreeItemModel>,\n identifierKey?: string\n ) {\n for (const [i, item] of tree.entries()) {\n const valueToCheck = identifierKey ? this.getValueAtKey(item, identifierKey) : item;\n\n if (values.some((v) => this.deepEqual(v, valueToCheck))) {\n if (paths) paths.push(`${currentPath}${i}`);\n if (items) items.push(item);\n }\n\n if (item.children && item.children.length) {\n this.traverse(item.children, `${currentPath}${i}.`, values, paths, items, identifierKey);\n }\n }\n }\n\n private getValueAtKey(object: any, key: string): any {\n const keys = key.split('.');\n let current = object;\n for (const k of keys) {\n if (current[k] !== undefined) {\n current = current[k];\n } else {\n return undefined;\n }\n }\n return current;\n }\n\n private deepEqual(obj1: any, obj2: any): boolean {\n if (obj1 === obj2) {\n return true;\n }\n if (typeof obj1 !== 'object' || obj1 === null || typeof obj2 !== 'object' || obj2 === null) {\n return false;\n }\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n if (!keys2.includes(key) || !this.deepEqual(obj1[key], obj2[key])) {\n return false;\n }\n }\n return true;\n }\n}\n","import { Directive, Host, forwardRef, AfterContentInit, Input, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { EuiTreeComponent } from './eui-tree.component';\nimport { EuiTreeSelectionChanges, TreeDataModel, TreeItemModel } from './eui-tree.model';\nimport { EuiTreeHelper } from './eui-tree-helper';\n\n@Directive({\n selector: 'eui-tree[euiTreeFormControl]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EuiTreeFormControlDirective),\n multi: true,\n },\n ],\n})\nexport class EuiTreeFormControlDirective implements ControlValueAccessor, AfterContentInit {\n private onChange: (value: any) => void;\n private onTouched: () => void;\n\n constructor(@Host() private tree: EuiTreeComponent) {}\n\n @Input() euiTreeControlValueSetter: (selection: TreeDataModel) => any = (selection: TreeDataModel) => {\n return selection;\n };\n @Input() euiTreeControlModelMapper: (model: any, tree?: TreeDataModel) => Array<TreeItemModel> = (model: Array<TreeItemModel>) => {\n return model;\n };\n\n writeValue(value: any): void {\n this.tree.setAllSelection(false);\n if (typeof value !== 'undefined' && value !== null && value?.length > 0) {\n const initialItems = this.euiTreeControlModelMapper(value, this.tree.nodes);\n const paths = new EuiTreeHelper(this.tree.nodes).getPaths(initialItems);\n paths.forEach((path: string) => {\n this.tree.nodeSelected({ target: { checked: true } }, path);\n });\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n ngAfterContentInit() {\n this.tree.selectionChange.subscribe((selectionChanges: EuiTreeSelectionChanges) => {\n this.onChange(this.euiTreeControlValueSetter(selectionChanges.selection));\n });\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [EuiTreeFormControlDirective],\n declarations: [EuiTreeFormControlDirective],\n})\nexport class EuiTreeFormControlDirectiveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.EuiTreeComponent"],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-tree.mjs","sources":["../../eui-tree/eui-tree.component.ts","../../eui-tree/eui-tree.component.html","../../eui-tree/eui-tree.model.ts","../../eui-tree/eui-dropdown-tree.directive.ts","../../eui-tree/eui-tree-helper.ts","../../eui-tree/eui-tree-form-control.directive.ts","../../eui-tree/eui-components-eui-tree.ts"],"sourcesContent":["import {\n Component,\n Input,\n NgModule,\n ChangeDetectionStrategy,\n EventEmitter,\n Output,\n ViewEncapsulation,\n TemplateRef,\n ChangeDetectorRef,\n SimpleChanges,\n OnInit,\n OnChanges,\n HostBinding,\n OnDestroy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport {\n SelectionRecursiveState,\n TreeDataModel,\n TreeItemModel,\n TreeDataRunTimeModel,\n TreeItemRunTimeModel,\n TreeItemSelectionRecursiveModel,\n EuiTreeSelectionChanges,\n} from './eui-tree.model';\nimport { FormsModule } from '@angular/forms';\nimport { EuiInputCheckboxModule } from '@eui/components/eui-input-checkbox';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiLabelModule } from '@eui/components/eui-label';\nimport { EuiBadgeModule } from '@eui/components/eui-badge';\nimport { EuiChipModule } from '@eui/components/eui-chip';\nimport { EuiDropdownModule } from '@eui/components/eui-dropdown';\nimport { NestedTreeControl, CdkTreeModule } from '@angular/cdk/tree';\nimport { ArrayDataSource, SelectionModel } from '@angular/cdk/collections';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'eui-tree',\n templateUrl: './eui-tree.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTreeComponent implements OnInit, OnChanges, OnDestroy {\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-tree';\n @Input() nodes: TreeDataModel;\n @Input() nodeTemplateRef: TemplateRef<any>;\n @Input() nodeContentMetadataTemplateRef: TemplateRef<any>;\n @Input() rightContextMenuTemplateRef: TemplateRef<any>;\n @Input() expandedIconClass: string;\n @Input() collapsedIconClass: string;\n @Input() expandedSvgIconClass = 'eui-chevron-forward:eui';\n @Input() collapsedSvgIconClass = 'eui-chevron-down:eui';\n\n // @ViewChild('treeComponentInstance') public treeComponentInstance: any;\n // @ViewChild('treeComponentInstance') public treeComponentInstance: any;\n\n @Input()\n get isClickTogglingNode(): boolean {\n return this._isClickTogglingNode;\n }\n\n set isClickTogglingNode(value: BooleanInput) {\n this._isClickTogglingNode = coerceBooleanProperty(value);\n }\n\n @Input()\n get isMultiselect(): boolean {\n return this._isMultiselect;\n }\n\n set isMultiselect(value: BooleanInput) {\n this._isMultiselect = coerceBooleanProperty(value);\n }\n\n @Input()\n get isRecursiveSelection(): boolean {\n return this._isRecursiveSelection;\n }\n\n set isRecursiveSelection(value: BooleanInput) {\n this._isRecursiveSelection = coerceBooleanProperty(value);\n }\n\n @Input()\n get isRecursiveParentSelection(): boolean {\n return this._isRecursiveParentSelection;\n }\n\n set isRecursiveParentSelection(value: BooleanInput) {\n this._isRecursiveParentSelection = coerceBooleanProperty(value);\n }\n\n @Input()\n get autoTranslate(): boolean {\n return this._autoTranslate;\n }\n\n set autoTranslate(value: BooleanInput) {\n this._autoTranslate = coerceBooleanProperty(value);\n }\n\n @Output() selectionChange = new EventEmitter<EuiTreeSelectionChanges>();\n @Output() nodeClick = new EventEmitter<TreeItemModel>();\n @Output() nodeToggle = new EventEmitter<TreeItemModel>();\n cdkArrayDataSource: ArrayDataSource<TreeItemModel>;\n cdkTreeControl: NestedTreeControl<TreeItemModel>;\n renderTree: boolean;\n public uid: string = Math.floor(Math.random() * 1000000000).toString();\n private processedNodes: TreeDataModel;\n private treeDataRunTime: TreeDataRunTimeModel;\n private treeDataRunTimeBackup: TreeDataRunTimeModel;\n private runTimeSelectionRecursiveState: Array<TreeItemSelectionRecursiveModel>;\n private selectionModel: SelectionModel<TreeItemRunTimeModel>;\n private _isClickTogglingNode = false;\n private _isMultiselect = false;\n private _isRecursiveSelection = false;\n private _isRecursiveParentSelection = true;\n private _autoTranslate = true;\n private selectionModelSubs;\n private _selection;\n private _isMultiLevel;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.initTree();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['nodes'].currentValue !== changes['nodes'].previousValue) {\n this.renderTree = false;\n this.initTree();\n }\n }\n\n ngOnDestroy(): void {\n if (this.selectionModelSubs) {\n this.selectionModelSubs.unsubscribe();\n }\n }\n\n getSelection(): TreeDataModel {\n return this._selection;\n }\n\n trackBy(index: number, el: any): any {\n return el.parent;\n }\n\n getTreeItem(path: string): TreeItemModel {\n const indexArr: Array<number> = this.resolvePath(path);\n let nodeArr = this.processedNodes;\n let node;\n if (nodeArr && Array.isArray(nodeArr)) {\n indexArr?.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n nodeArr = nodeArr && nodeArr[pathIndex]?.children;\n } else {\n node = nodeArr[pathIndex];\n }\n });\n }\n return node;\n }\n\n expandAll(): void {\n this.cdkTreeControl.expandAll();\n this.changeDetectorRef.markForCheck();\n }\n\n expandAt(path: string): void {\n this.cdkTreeControl.expandDescendants(this.getRunTimeTreeItem(path[0]));\n this.cdkTreeControl.toggleDescendants(this.getRunTimeTreeItem(path));\n this.cdkTreeControl.expand(this.getRunTimeTreeItem(path));\n this.changeDetectorRef.markForCheck();\n }\n\n collapseAll(): void {\n this.cdkTreeControl.collapseAll();\n this.changeDetectorRef.markForCheck();\n }\n\n filterTerm(filterInput: string): void {\n if (filterInput && filterInput !== '') {\n this.renderTree = false;\n this.changeDetectorRef.detectChanges();\n setTimeout(() => {\n this.treeDataRunTime = this.filterTreeData(structuredClone(this.treeDataRunTimeBackup), 'label', filterInput);\n this.cdkArrayDataSource = new ArrayDataSource(this.treeDataRunTime);\n this.cdkTreeControl = new NestedTreeControl<TreeItemRunTimeModel>((node) => node?.children);\n this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.renderTree = true;\n this.changeDetectorRef.detectChanges();\n this.expandAll();\n });\n } else {\n this.renderTree = false;\n this.changeDetectorRef.detectChanges();\n setTimeout(() => {\n this.treeDataRunTime = structuredClone(this.treeDataRunTimeBackup);\n this.cdkArrayDataSource = new ArrayDataSource(this.treeDataRunTime);\n this.cdkTreeControl = new NestedTreeControl<TreeItemRunTimeModel>((node) => node?.children);\n this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.renderTree = true;\n this.changeDetectorRef.detectChanges();\n this.expandAll();\n });\n }\n }\n\n setAllSelection(isChecked: boolean): void {\n this.setIsCheckedForAll(this.processedNodes, isChecked, this.treeDataRunTime);\n this.changeDetectorRef.markForCheck();\n }\n\n onNodeClick(treeItem: TreeItemRunTimeModel): void {\n this.nodeClick.emit(this.getTreeItem(treeItem?.path));\n if (this.isClickTogglingNode) {\n this.cdkTreeControl.toggle(treeItem);\n this.onNodeToggle(treeItem);\n }\n }\n\n onNodeToggle(treeItem: TreeItemRunTimeModel): void {\n this.nodeToggle.emit(this.getTreeItem(treeItem?.path));\n }\n\n nodeSelected(evt: any, path: string): void {\n const item = this.getTreeItem(path);\n const treeItemModel = this.getRunTimeTreeItem(path);\n const node = item.node;\n const children = item.children;\n const pathArr = path.split('.');\n const hasParent = pathArr.length > 1;\n // Sets the hasParent If there is a parent, and removes the last element form pathArr.\n if (hasParent) {\n pathArr.pop();\n }\n // Silently sets the isSelected.\n node.isSelected = evt.target.checked;\n // Sets isSelected change on the control.\n if (node.isSelected) {\n this.selectTreeItem(treeItemModel);\n } else {\n this.deselectTreeItem(treeItemModel);\n }\n node.isIndeterminate = false;\n // If the node is recursive it sets every children with the change.\n if (children && children.length > 0) {\n if (node?.selectConfig?.recursive) {\n this.setIsCheckedForAll(children, evt.target.checked, treeItemModel?.children);\n }\n }\n // Calculates to the node and its children node state\n this.setRunTimeSelectionRecursiveStateTree(\n path,\n this.calculateItemSelectionRecursiveState(structuredClone(this.getTreeItem(path)))\n );\n // It is here for the filter edge case.\n this.syncStateChangesAtPath(path);\n\n if (hasParent) {\n // Calculates parent path\n const parentPath = pathArr.join('.');\n // Creating node index sequence f.e If path is '1.2' it will be [1,2]\n const nodeIndexSeq = parentPath.split('.').map((indexStr) => parseInt(indexStr, 10));\n // Calculating the node paths array to be re-calculated from bottom to top\n const nodePathsSeq = [];\n nodeIndexSeq.forEach((nodeIndex, index) => {\n nodePathsSeq[index] = nodeIndexSeq.slice(0, index + 1).join('.');\n });\n nodePathsSeq.reverse();\n nodePathsSeq.forEach((nodePath: string) => {\n this.updateRunTimeSelectionRecursiveState(\n nodePath,\n this.decideSelectionRecursiveState(this.getRunTimeSelectionRecursiveState(nodePath))\n );\n this.syncStateChangesAtPath(nodePath);\n });\n this.changeDetectorRef.detectChanges();\n }\n }\n\n hasChild = (_: number, item: TreeItemRunTimeModel) => !!item?.children && item?.children?.length > 0;\n\n onSelectFn(path: string, treeItemModel: TreeItemRunTimeModel): (evt: any) => void {\n if (treeItemModel?.node?.selectable) {\n const nodeSelected = this.nodeSelected.bind(this);\n return (evt: any) => nodeSelected(evt, path);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return (evt: any) => {\n console.warn('treeItemModel.node.selectable is false, you can not implement onSelect');\n };\n }\n\n private initTree(): void {\n if (this.nodes) {\n this._isMultiLevel = this.checkIfMultiLevel(this.nodes);\n this.processedNodes = this.processInputs(structuredClone(this.nodes));\n this.createTreeDataRuntime(this.processedNodes);\n this.cdkArrayDataSource = new ArrayDataSource(this.treeDataRunTime);\n this.treeDataRunTimeBackup = structuredClone(this.treeDataRunTime);\n this.cdkTreeControl = new NestedTreeControl<TreeItemRunTimeModel>((node) => node?.children);\n this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.renderInitialExpand(this.treeDataRunTime);\n this.selectionModel = new SelectionModel<TreeItemRunTimeModel>(\n true,\n this.getInitialSelection(this.treeDataRunTime),\n true,\n (a, b) => a?.path === b?.path\n );\n this._selection = [...this.selectionModel.selected]?.map((item) => this.getTreeItem(item.path));\n this.renderTree = true;\n if (this.selectionModelSubs) {\n this.selectionModelSubs.unsubscribe();\n }\n this.selectionModelSubs = this.selectionModel.changed.subscribe((sc) => {\n const selectionChange = {\n added: sc.added.map((_) => this.getTreeItem(_.path)),\n removed: sc.removed.map((_) => this.getTreeItem(_.path)),\n selection: [...this.selectionModel.selected].map((item) => this.getTreeItem(item.path)),\n };\n this._selection = selectionChange.selection;\n this.selectionChange.emit(selectionChange);\n });\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private processInputs(treeData: TreeDataModel): TreeDataModel {\n if (this.isMultiselect) {\n treeData = this.overrideTreeDataModelForSelection(treeData, this.isRecursiveSelection, !this.isRecursiveParentSelection);\n }\n return treeData;\n }\n\n private overrideTreeDataModelForSelection(nodeArr: TreeDataModel, isRecursive: boolean, noAutoSelectParent: boolean): TreeDataModel {\n return nodeArr?.map((item: TreeItemModel) => {\n if (item?.children && item.children.length > 0) {\n return {\n ...item,\n node: {\n ...item.node,\n selectable: typeof item?.node?.selectable === 'undefined' ? true : item?.node?.selectable,\n // isSelected: false,\n // isIndeterminate: false,\n selectConfig: {\n ...item.node.selectConfig,\n recursive:\n typeof item?.node?.selectConfig?.recursive === 'undefined'\n ? !!isRecursive\n : item?.node?.selectConfig?.recursive,\n noAutoSelectParent:\n typeof item?.node?.selectConfig?.noAutoSelectParent === 'undefined'\n ? noAutoSelectParent\n : item?.node?.selectConfig?.noAutoSelectParent,\n },\n },\n children: this.overrideTreeDataModelForSelection(item.children, isRecursive, noAutoSelectParent),\n };\n } else {\n return {\n ...item,\n node: {\n ...item.node,\n selectable: typeof item?.node?.selectable === 'undefined' ? true : item?.node?.selectable,\n },\n };\n }\n });\n }\n\n private getSelectionIndexOfItem(runTimeTreeItem: TreeItemRunTimeModel): number {\n return this.selectionModel.selected.findIndex((i) => i?.path === runTimeTreeItem?.path);\n }\n\n private selectTreeItem(runTimeTreeItem: TreeItemRunTimeModel): void {\n const indexOfItem = this.getSelectionIndexOfItem(runTimeTreeItem);\n if (indexOfItem === -1) {\n this.selectionModel.select(runTimeTreeItem);\n }\n }\n\n private deselectTreeItem(runTimeTreeItem: TreeItemRunTimeModel): void {\n const indexOfItem = this.getSelectionIndexOfItem(runTimeTreeItem);\n if (indexOfItem > -1) {\n const newSelection = [...this.selectionModel.selected];\n newSelection.splice(indexOfItem, 1);\n this.selectionModel.setSelection(...newSelection);\n }\n }\n\n // Creates treeDataRunTime & runTimeSelectionRecursiveState for separate the logic.\n private createTreeDataRuntime(nodes: TreeDataModel): void {\n this.treeDataRunTime = structuredClone(nodes)?.map((item, index) => {\n return this.calculateRunTimeState({ ...item }, index);\n });\n this.runTimeSelectionRecursiveState = structuredClone(nodes)?.map((item) => this.calculateItemSelectionRecursiveState({ ...item }));\n }\n\n // Creating run time state which includes children selection state for selection tree.\n private calculateItemSelectionRecursiveState(treeItem: TreeItemModel): TreeItemSelectionRecursiveModel {\n if (treeItem.children && treeItem.children.length > 0) {\n treeItem.children.forEach((child, index) => {\n treeItem.children[index] = this.calculateItemSelectionRecursiveState(child);\n });\n }\n\n const itemState: SelectionRecursiveState = this.decideSelectionRecursiveState(treeItem);\n\n return {\n ...treeItem,\n selectionRecursiveState: itemState,\n };\n }\n\n private decideSelectionRecursiveState(treeItem: TreeItemSelectionRecursiveModel): SelectionRecursiveState {\n const runTimeItems = treeItem.children || ([] as any);\n const childStates = runTimeItems?.map((item) => item.selectionRecursiveState);\n let itemState: SelectionRecursiveState = 'indeterminate';\n if (treeItem.node.isSelected && childStates.every((state) => state === 'allSelected')) {\n itemState = 'allSelected';\n } else if (!treeItem.node.isSelected && childStates.every((state) => state === 'allNotSelected')) {\n itemState = 'allNotSelected';\n } else if (\n treeItem.node?.selectConfig?.recursive &&\n childStates.every((state) => state === 'allSelected') &&\n !treeItem.node.isSelected &&\n !treeItem?.node?.selectConfig?.noAutoSelectParent\n ) {\n itemState = 'allSelected';\n } else if (\n treeItem.node?.selectConfig?.recursive &&\n childStates.every((state) => state === 'allNotSelected') &&\n treeItem.node.isSelected\n ) {\n itemState = 'allNotSelected';\n }\n return itemState;\n }\n\n private syncStateChangesAtPath(nodePath): void {\n const treeItem = this.getTreeItem(nodePath);\n const runTimeTreeItem = this.getRunTimeTreeItem(nodePath);\n const runTimeSelectionRecursiveItem = this.getRunTimeSelectionRecursiveState(nodePath);\n if (treeItem?.node?.selectable && treeItem.node?.selectConfig?.recursive) {\n if (!treeItem.node?.selectConfig?.noAutoSelectParent) {\n treeItem.node = {\n ...treeItem.node,\n isSelected: runTimeSelectionRecursiveItem.selectionRecursiveState === 'allSelected',\n isIndeterminate: runTimeSelectionRecursiveItem.selectionRecursiveState === 'indeterminate',\n };\n } else {\n treeItem.node = {\n ...treeItem.node,\n isSelected: treeItem.node.isSelected && runTimeSelectionRecursiveItem.selectionRecursiveState === 'allSelected',\n isIndeterminate:\n runTimeSelectionRecursiveItem.selectionRecursiveState === 'indeterminate' ||\n (!treeItem.node.isSelected && runTimeSelectionRecursiveItem.selectionRecursiveState === 'allSelected'),\n };\n }\n // console.log(treeItem, treeItem.node.treeContentBlock.label, 'isSelected:' + treeItem.node.isSelected, 'isIndeterminate:' + treeItem.node.isIndeterminate);\n if (treeItem.node.isSelected === true) {\n this.selectTreeItem(runTimeTreeItem);\n } else {\n this.deselectTreeItem(runTimeTreeItem);\n }\n }\n }\n\n private getRunTimeSelectionRecursiveState(path: string): TreeItemSelectionRecursiveModel {\n const indexArr: Array<number> = this.resolvePath(path);\n let nodeArr = this.runTimeSelectionRecursiveState;\n let node;\n indexArr.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n nodeArr = nodeArr[pathIndex]?.children;\n } else {\n node = nodeArr[pathIndex];\n }\n });\n return node;\n }\n\n private setRunTimeSelectionRecursiveStateTree(path: string, item: TreeItemSelectionRecursiveModel): void {\n const indexArr: Array<number> = this.resolvePath(path);\n let itemArr = this.runTimeSelectionRecursiveState;\n indexArr.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n itemArr = itemArr[pathIndex]?.children;\n } else {\n itemArr[pathIndex] = item;\n }\n });\n }\n\n private updateRunTimeSelectionRecursiveState(path: string, selectionRecursiveState: SelectionRecursiveState): void {\n const indexArr: Array<number> = this.resolvePath(path);\n let itemArr = this.runTimeSelectionRecursiveState;\n indexArr.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n itemArr = itemArr[pathIndex]?.children;\n } else {\n itemArr[pathIndex] = {\n ...itemArr[pathIndex],\n selectionRecursiveState,\n };\n }\n });\n }\n\n private setIsCheckedForAll(nodeArr: TreeDataModel, isChecked: boolean, runTimeTreeData: TreeDataRunTimeModel): void {\n nodeArr.forEach((item: TreeItemModel, index: number) => {\n if (runTimeTreeData[index] && nodeArr[index]?.node?.selectable) {\n nodeArr[index] = {\n ...item,\n node: {\n ...item.node,\n isSelected: isChecked,\n isIndeterminate: false,\n },\n };\n if (isChecked) {\n this.selectTreeItem(runTimeTreeData[index]);\n } else {\n this.deselectTreeItem(runTimeTreeData[index]);\n }\n }\n if (runTimeTreeData[index]?.children?.length > 0 && nodeArr[index].children && nodeArr[index].children.length > 0) {\n this.setIsCheckedForAll(nodeArr[index].children, isChecked, runTimeTreeData[index].children);\n }\n });\n }\n\n private resolvePath(path: string): Array<number> {\n return path?.split('.').map((index: string) => parseInt(index, 10));\n }\n\n private calculateRunTimeState(treeItem: TreeItemRunTimeModel, index: number, parentPath?: string): TreeItemRunTimeModel {\n treeItem.path = parentPath ? parentPath + '.' + index : index.toString();\n treeItem.index = index;\n if (treeItem.children && treeItem.children.length > 0) {\n treeItem.children.forEach((child, treeItemIndex) => {\n treeItem.children[treeItemIndex] = this.calculateRunTimeState(child, treeItemIndex, treeItem.path);\n });\n }\n return treeItem;\n }\n\n private filterTreeData(treeData: TreeDataModel, key: string = 'label', filterStr: string): TreeItemModel[] {\n return treeData.filter((treeItem: TreeItemModel): boolean => {\n if (treeItem?.children?.length > 0) {\n treeItem.children = this.filterTreeData([...treeItem.children], key, filterStr);\n treeItem.children = treeItem.children.length > 0 ? treeItem.children : undefined;\n }\n if (this.normalizedStr(treeItem.node.treeContentBlock.label).includes(this.normalizedStr(filterStr))) {\n return true;\n } else if (treeItem?.children?.length > 0) {\n return treeItem?.children?.length > 0;\n } else {\n return false;\n }\n });\n }\n\n private normalizedStr(str: string): string {\n return str\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n }\n\n private getInitialSelection(nodes: TreeDataRunTimeModel): Array<TreeItemRunTimeModel> {\n const selection: Array<TreeItemRunTimeModel> = [];\n this.scanSelection(nodes, selection);\n return selection;\n }\n\n private scanSelection(nodes: TreeDataRunTimeModel, selection: Array<TreeItemRunTimeModel>): void {\n nodes.forEach((item: TreeItemRunTimeModel) => {\n if (item.node?.selectable && item.node.isSelected) {\n selection.push(item);\n }\n if (item?.children?.length > 0) {\n this.scanSelection(item.children, selection);\n }\n });\n }\n\n private renderInitialExpand(nodes: TreeDataRunTimeModel): void {\n nodes.forEach((item: TreeItemRunTimeModel) => {\n if (item?.node?.isExpanded) {\n this.expandAt(item.path);\n }\n if (item?.children?.length > 0) {\n this.renderInitialExpand(item.children);\n }\n });\n }\n\n private getRunTimeTreeItem(path: string): TreeItemRunTimeModel {\n const indexArr: Array<number> = this.resolvePath(path);\n let nodeArr = this.treeDataRunTime;\n let node;\n if (nodeArr && Array.isArray(nodeArr)) {\n indexArr?.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n nodeArr = nodeArr && nodeArr[pathIndex]?.children;\n } else {\n node = nodeArr[pathIndex];\n }\n });\n }\n return node;\n }\n\n private getCssClasses(): string {\n return ['eui-tree', this.isMultiselect ? 'eui-tree--multiselect' : '', this._isMultiLevel ? 'eui-tree--with-children' : '']\n .join(' ')\n .trim();\n }\n\n private checkIfMultiLevel(tree: TreeDataModel): boolean {\n let isMultiLevel = false;\n tree.forEach((item: TreeItemModel) => {\n if (item?.children?.length > 0) {\n isMultiLevel = true;\n }\n });\n return isMultiLevel;\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n TranslateModule,\n EuiInputCheckboxModule,\n CdkTreeModule,\n EuiButtonModule,\n EuiIconModule,\n EuiLabelModule,\n EuiBadgeModule,\n EuiChipModule,\n EuiDropdownModule,\n ],\n declarations: [EuiTreeComponent],\n exports: [EuiTreeComponent],\n})\nexport class EuiTreeModule {}\n","<ul class=\"eui-tree__wrapper\">\n <cdk-tree [dataSource]=\"cdkArrayDataSource\" [treeControl]=\"cdkTreeControl\" [trackBy]=\"trackBy\" *ngIf=\"renderTree\" class=\"eui-cdk-tree\">\n <!-- There are two states of generic cdk-nested-tree-node declarations.\n First one is without child. No sub rendering.\n -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel\" class=\"eui-cdk-nested-tree-node\">\n <li\n class=\"eui-tree-node\"\n *ngIf=\"treeItemModel\"\n title=\"{{\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel ||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label\n }}\">\n <div class=\"eui-tree-node-wrapper\" (click)=\"onNodeClick(treeItemModel)\">\n <div class=\"eui-tree-node-wrapper__container\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef || nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect: onSelectFn(treeItemModel.path, treeItemModel),\n id: uid + treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n </li>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n *cdkTreeNodeDef=\"let treeItemModel; when: hasChild\"\n class=\"eui-cdk-nested-tree-node eui-cdk-nested-tree-node--with-child\">\n <li\n class=\"eui-tree-node\"\n *ngIf=\"treeItemModel\"\n title=\"{{\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel ||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label\n }}\">\n <div class=\"eui-tree-node-wrapper\">\n <!--Here wraps the node, and listen for node clicks.-->\n <div (click)=\"onNodeClick(treeItemModel)\" class=\"eui-tree-node-wrapper__container\">\n <!-- Expand/collapse action button -->\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeS\n type=\"button\"\n [attr.aria-label]=\"'Toggle ' + treeItemModel?.node?.treeContentBlock?.label\"\n (click)=\"onNodeToggle(treeItemModel)\"\n cdkTreeNodeToggle\n class=\"eui-u-mr-xs\">\n <span\n euiIcon\n *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel) && collapsedIconClass\"\n [iconClass]=\"collapsedIconClass\"></span>\n <span\n euiIcon\n *ngIf=\"cdkTreeControl.isExpanded(treeItemModel) && expandedIconClass\"\n [iconClass]=\"expandedIconClass\"></span>\n <eui-icon-svg\n *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel) && !collapsedIconClass\"\n [icon]=\"expandedSvgIconClass\"></eui-icon-svg>\n <eui-icon-svg\n *ngIf=\"cdkTreeControl.isExpanded(treeItemModel) && !expandedIconClass\"\n [icon]=\"collapsedSvgIconClass\"></eui-icon-svg>\n </button>\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef || nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect: onSelectFn(treeItemModel?.path, treeItemModel),\n id: uid + treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n <!--uses cdkTreeNodeOutlet to render children nodes, CdkTreeControl is used to control isExpanded state.-->\n <ul class=\"eui-tree-node\" *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </ul>\n </li>\n </cdk-nested-tree-node>\n </cdk-tree>\n</ul>\n\n<ng-template #nodeTemplateDefault let-node let-onSelect=\"onSelect\" let-id=\"id\">\n <ng-container *ngIf=\"node\">\n <div class=\"eui-tree-node-wrapper__container-left\" [class.eui-tree-node-wrapper__container-left--selected]=\"node?.isSelected\">\n <!--input checkbox area-->\n <input\n euiInputCheckBox\n *ngIf=\"node && node.selectable\"\n type=\"checkbox\"\n id=\"{{ id }}\"\n [checked]=\"!!node?.isSelected\"\n [indeterminate]=\"!!node?.isIndeterminate\"\n (change)=\"onSelect($event)\"\n class=\"eui-u-mr-m\" />\n\n <!--icon area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.iconClass\">\n <eui-icon\n [euiVariant]=\"node?.treeContentBlock?.iconTypeClass || 'primary'\"\n iconClass=\"{{ node?.treeContentBlock?.iconClass }}\"\n euiSizeS\n class=\"eui-u-mr-xs\">\n </eui-icon>\n </ng-container>\n <ng-container *ngIf=\"node?.treeContentBlock?.iconSvgName\">\n <eui-icon-svg\n icon=\"{{ node?.treeContentBlock?.iconSvgName }}\"\n fillColor=\"{{ node?.treeContentBlock?.iconTypeClass || 'grey-100' }}\"\n size=\"s\"\n class=\"eui-u-mr-xs\">\n </eui-icon-svg>\n </ng-container>\n\n <!--chips area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.chips\">\n <eui-chip\n *ngFor=\"let chip of node.treeContentBlock.chips\"\n euiSizeXS\n [euiVariant]=\"chip.typeClass || 'secondary'\"\n [euiOutline]=\"chip.isOutline\"\n class=\"eui-chip--rounded eui-u-mb-none eui-u-mr-xs\">\n <span euiLabel>{{ chip.label }}</span>\n </eui-chip>\n </ng-container>\n\n <!--badge (typeLabel & typeClass) area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.typeLabel\" [ngSwitch]=\"node?.treeContentBlock?.typeClass\">\n <eui-badge euiSizeM [euiVariant]=\"node?.treeContentBlock?.typeClass || 'primary'\" class=\"eui-u-flex-no-shrink eui-u-mr-xs\">\n {{ node?.treeContentBlock?.typeLabel }}\n </eui-badge>\n </ng-container>\n </div>\n\n <!--label area-->\n <div class=\"eui-tree-node-wrapper__container-middle\">\n <label\n *ngIf=\"!node?.treeContentBlock?.url && !node?.treeContentBlock?.urlExternal\"\n euiLabel\n for=\"{{ id }}\"\n class=\"eui-u-text-truncate eui-u-mr-s\"\n [class.eui-label--selected]=\"node?.isSelected\"\n [class.eui-u-cursor-pointer]=\"node?.selectable\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </label>\n <label *ngIf=\"node?.treeContentBlock?.url\" euiLabel for=\"{{ id }}\" class=\"eui-u-text-truncate eui-u-mr-m\">\n <a class=\"eui-u-text-link\" [routerLink]=\"node?.treeContentBlock?.url\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </a>\n </label>\n <label *ngIf=\"node?.treeContentBlock?.urlExternal\" euiLabel for=\"{{ id }}\" class=\"eui-u-text-truncate eui-u-mr-m\">\n <a\n class=\"eui-u-text-link-external\"\n href=\"{{ node?.treeContentBlock?.urlExternal }}\"\n target=\"{{ node?.treeContentBlock?.urlExternalTarget || 'blank' }}\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </a>\n </label>\n </div>\n\n <div *ngIf=\"node?.treeContentBlock?.rightContent\" class=\"eui-tree-node-wrapper__container-right\">\n <!--badges area-->\n <ng-container *ngFor=\"let badge of node.treeContentBlock.rightContent?.badges\">\n <eui-badge euiSizeM euiOutline [euiVariant]=\"badge.typeClass || 'secondary'\" class=\"eui-u-ml-xs\">\n <span euiLabel>{{ badge.label }}</span>\n </eui-badge>\n </ng-container>\n\n <!--chips area-->\n <ng-container *ngFor=\"let chip of node.treeContentBlock.rightContent?.chips\">\n <eui-chip\n euiSizeXS\n [euiVariant]=\"chip.typeClass || 'secondary'\"\n [euiOutline]=\"chip.isOutline\"\n class=\"eui-chip--rounded eui-u-mb-none eui-u-ml-xs\">\n <span euiLabel>{{ chip.label }}</span>\n </eui-chip>\n </ng-container>\n\n <!--Context menu-->\n <ng-container *ngIf=\"node.treeContentBlock.rightContent?.contextMenuMetaData && rightContextMenuTemplateRef\">\n <eui-dropdown class=\"eui-u-ml-xs\">\n <button euiButton euiSizeS euiRounded euiIconButton euiBasicButton euiSecondary [attr.aria-label]=\"'Options menu'\">\n <eui-icon-svg icon=\"eui-ellipsis-vertical\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <ng-template\n [ngTemplateOutlet]=\"rightContextMenuTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: node?.treeContentBlock?.rightContent?.contextMenuMetaData,\n metadata: node?.treeContentBlock?.rightContent?.contextMenuMetaData\n }\">\n </ng-template>\n </eui-dropdown-content>\n </eui-dropdown>\n </ng-container>\n </div>\n\n <!--metadata, uses the help of ng template to generate dynamic expand variable without handling state -->\n <ng-container\n *ngIf=\"node.treeContentBlock?.metadata && nodeContentMetadataTemplateRef\"\n [ngTemplateOutlet]=\"nodeContentMetadataContainer\"\n [ngTemplateOutletContext]=\"{\n $implicit: { expanded: false }\n }\">\n </ng-container>\n <ng-template #nodeContentMetadataContainer let-metaDataContainer>\n <button\n euiButton\n euiBasicButton\n euiIconButton\n euiRounded\n euiSizeS\n type=\"button\"\n (click)=\"metaDataContainer.expanded = !metaDataContainer.expanded\">\n <eui-icon-svg [icon]=\"metaDataContainer.expanded ? 'eui-chevron-down' : 'eui-chevron-forward'\"></eui-icon-svg>\n </button>\n <div *ngIf=\"metaDataContainer.expanded\" class=\"eui-tree-node__metacontent\">\n <!--passing metadata of the node content to provided template-ref:nodeContentMetadataTemplateRef-->\n <ng-template\n [ngTemplateOutlet]=\"nodeContentMetadataTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: node?.treeContentBlock?.metadata,\n metadata: node?.treeContentBlock?.metadata\n }\">\n </ng-template>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n","import { UxLinkLegacy } from '@eui/base';\n\nexport type TreeDataModel = Array<TreeItemModel>;\n\nexport type TreeItemModel = {\n node: TreeNode;\n children?: TreeDataModel;\n};\n\nexport type TreeNode = {\n // metadata can be block content, or any\n treeContentBlock: EuiTreeContentBlockModel | any;\n} & SelectionModel &\n ExpandModel;\n\nexport interface EuiTreeContentBlockModel {\n id?: string | number;\n label: string;\n tooltipLabel: string;\n url: string;\n urlExternal: string;\n urlExternalTarget: string;\n typeLabel: string;\n typeClass: string;\n chips?: Array<{ label: string; typeClass?: string; isOutline?: boolean }>;\n iconClass: string;\n iconTypeClass: string;\n iconSvgName?: string;\n rightContent?: {\n iconClass: string;\n iconTypeClass: string;\n iconSvgName?: string;\n badges?: Array<{ label: string; typeClass: string }>;\n chips?: Array<{ label: string; typeClass?: string; isOutline?: boolean }>;\n contextMenuMetaData?: any;\n };\n metaData: string;\n\n [key: string]: any;\n}\n\nexport type SelectionModel = {\n // if one of sub is selected, it becomes intermediate\n selectable?: boolean;\n isSelected?: boolean;\n isExpanded?: boolean;\n isIndeterminate?: boolean;\n selectConfig?: SelectConfigModel;\n};\n\nexport interface SelectConfigModel {\n /*\n If It is true;\n When user select parent, all the children will be selected\n When selection state is changed, If all children is selected parent will be selected as long as noAutoSelectParent is not true\n */\n recursive?: boolean;\n /* when It is true, If all children is selected, parent will not be selected, while recursive is true*/\n noAutoSelectParent?: boolean;\n}\n\nexport type ExpandModel = {\n isExpanded?: boolean;\n};\n\nexport type EuiTreeSelectionChanges = { added: TreeDataModel; removed: TreeDataModel; selection: TreeDataModel };\n\nexport type TreeDataRunTimeModel = Array<TreeItemRunTimeModel>;\n\nexport type TreeItemRunTimeModel = { index?: number; path?: string } & TreeItemModel;\n\nexport type TreeItemSelectionRecursiveModel = { selectionRecursiveState?: SelectionRecursiveState } & TreeItemModel;\n\nexport type SelectionRecursiveState = 'indeterminate' | 'allSelected' | 'allNotSelected';\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\nexport function uxTreeNodesMetaDataMapper(oldTree: Array<UxLinkLegacy>): TreeDataModel {\n return oldTree.map((item) => {\n if (item?.typeClass === 'default') {\n // default typeClass will be\n item.typeClass = 'secondary';\n }\n if (item?.badgeLabel) {\n // default typeClass will be\n if (item?.badges?.length > 0) {\n item.badges.push({ label: item?.badgeLabel, typeClass: 'secondary' });\n } else {\n item.badges = [{ label: item?.badgeLabel, typeClass: 'secondary' }];\n }\n }\n return {\n node: {\n treeContentBlock: {\n label: item.label,\n typeLabel: item.typeLabel,\n typeClass: item.typeLabel && !item.typeClass ? 'secondary' : item.typeClass,\n tooltipLabel: item.tooltipLabel,\n url: item.url,\n urlExternal: item.urlExternal,\n urlExternalTarget: item.urlExternal && item.urlExternalTarget ? item.urlExternalTarget : undefined,\n badges: item.badges,\n metadata: item.metadata,\n },\n },\n children: item.children ? uxTreeNodesMetaDataMapper(item.children) : undefined,\n };\n });\n}\n","import {\n Directive,\n Host,\n AfterContentInit,\n ContentChild,\n Input,\n TemplateRef,\n AfterViewInit,\n ChangeDetectorRef,\n ElementRef,\n Renderer2,\n NgModule,\n} from '@angular/core';\nimport { EuiTreeComponent } from './eui-tree.component';\nimport { TreeDataModel } from './eui-tree.model';\nimport { EuiDropdownComponent } from '@eui/components/eui-dropdown';\nimport { CommonModule } from '@angular/common';\n\n@Directive({\n selector: 'eui-dropdown[euiDropdownTree]',\n})\nexport class EuiDropdownTreeDirective implements AfterContentInit, AfterViewInit {\n @Input() buttonTemplateRef: TemplateRef<any>;\n @ContentChild(EuiTreeComponent, { static: false }) euiTree: EuiTreeComponent;\n\n private buttonLabel: string;\n private buttonViewRef;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private hostElement: ElementRef,\n private renderer: Renderer2,\n @Host() private euiDropdown: EuiDropdownComponent\n ) {}\n\n ngAfterContentInit(): void {\n this.buttonLabel = this.createButtonLabel(this.euiTree.getSelection());\n this.euiTree.selectionChange.subscribe((selectionChanges) => {\n this.buttonLabel = this.createButtonLabel(selectionChanges.selection);\n this.buttonViewRef.context.$implicit = this.buttonLabel;\n this.buttonViewRef.detectChanges();\n });\n }\n\n ngAfterViewInit(): void {\n if (this.buttonTemplateRef) {\n const triggerContainer = this.hostElement.nativeElement.querySelector('.eui-dropdown__trigger-container');\n if (!triggerContainer) {\n console.error('Could not find the triggerContainer');\n return;\n }\n while (triggerContainer.firstChild) {\n triggerContainer.removeChild(triggerContainer.firstChild);\n }\n this.buttonViewRef = this.buttonTemplateRef.createEmbeddedView({ $implicit: this.buttonLabel });\n this.buttonViewRef.detectChanges();\n\n this.buttonViewRef.rootNodes.forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n this.renderer.appendChild(triggerContainer, node);\n }\n });\n }\n }\n\n private createButtonLabel(selection: TreeDataModel): string {\n if (selection?.length > 0) {\n return this.euiTree\n .getSelection()\n ?.map((item) => item.node.treeContentBlock.label)\n .join(',') as string;\n }\n return 'No node selected.';\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [EuiDropdownTreeDirective],\n declarations: [EuiDropdownTreeDirective],\n})\nexport class EuiDropdownTreeDirectiveModule {}\n","import { TreeDataModel, TreeItemModel } from './eui-tree.model';\n\nexport class EuiTreeHelper {\n private readonly treeData: TreeDataModel;\n\n constructor(treeData: TreeDataModel) {\n this.treeData = treeData;\n }\n\n public getPaths(values: Array<any>, identifierKey?: string): Array<string> {\n const paths: Array<string> = [];\n this.traverse(this.treeData, '', values, paths, undefined, identifierKey);\n return paths;\n }\n\n public getItems(values: Array<any>, identifierKey?: string): Array<TreeItemModel> {\n const matchedItems: Array<TreeItemModel> = [];\n this.traverse(this.treeData, '', values, undefined, matchedItems, identifierKey);\n return matchedItems;\n }\n\n private traverse(\n tree: TreeDataModel,\n currentPath: string,\n values: Array<any>,\n paths?: Array<string>,\n items?: Array<TreeItemModel>,\n identifierKey?: string\n ): void {\n for (const [i, item] of tree.entries()) {\n const valueToCheck = identifierKey ? this.getValueAtKey(item, identifierKey) : item;\n\n if (values.some((v) => this.deepEqual(v, valueToCheck))) {\n if (paths) paths.push(`${currentPath}${i}`);\n if (items) items.push(item);\n }\n\n if (item.children && item.children.length) {\n this.traverse(item.children, `${currentPath}${i}.`, values, paths, items, identifierKey);\n }\n }\n }\n\n private getValueAtKey(object: any, key: string): any {\n const keys = key.split('.');\n let current = object;\n for (const k of keys) {\n if (current[k] !== undefined) {\n current = current[k];\n } else {\n return undefined;\n }\n }\n return current;\n }\n\n private deepEqual(obj1: any, obj2: any): boolean {\n if (obj1 === obj2) {\n return true;\n }\n if (typeof obj1 !== 'object' || obj1 === null || typeof obj2 !== 'object' || obj2 === null) {\n return false;\n }\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n if (!keys2.includes(key) || !this.deepEqual(obj1[key], obj2[key])) {\n return false;\n }\n }\n return true;\n }\n}\n","import { Directive, Host, forwardRef, AfterContentInit, Input, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { EuiTreeComponent } from './eui-tree.component';\nimport { EuiTreeSelectionChanges, TreeDataModel, TreeItemModel } from './eui-tree.model';\nimport { EuiTreeHelper } from './eui-tree-helper';\n\n@Directive({\n selector: 'eui-tree[euiTreeFormControl]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EuiTreeFormControlDirective),\n multi: true,\n },\n ],\n})\nexport class EuiTreeFormControlDirective implements ControlValueAccessor, AfterContentInit {\n private onChange: (value: any) => void;\n private onTouched: () => void;\n\n constructor(@Host() private tree: EuiTreeComponent) {}\n\n @Input() euiTreeControlValueSetter: (selection: TreeDataModel) => any = (selection: TreeDataModel) => {\n return selection;\n };\n @Input() euiTreeControlModelMapper: (model: any, tree?: TreeDataModel) => Array<TreeItemModel> = (model: Array<TreeItemModel>) => {\n return model;\n };\n\n writeValue(value: any): void {\n this.tree.setAllSelection(false);\n if (typeof value !== 'undefined' && value !== null && value?.length > 0) {\n const initialItems = this.euiTreeControlModelMapper(value, this.tree.nodes);\n const paths = new EuiTreeHelper(this.tree.nodes).getPaths(initialItems);\n paths.forEach((path: string) => {\n this.tree.nodeSelected({ target: { checked: true } }, path);\n });\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n ngAfterContentInit(): void {\n this.tree.selectionChange.subscribe((selectionChanges: EuiTreeSelectionChanges) => {\n this.onChange(this.euiTreeControlValueSetter(selectionChanges.selection));\n });\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [EuiTreeFormControlDirective],\n declarations: [EuiTreeFormControlDirective],\n})\nexport class EuiTreeFormControlDirectiveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.EuiTreeComponent"],"mappings":"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"}