desy-angular 14.1.0 → 15.0.0

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 (342) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/desy-angular.mjs +1842 -1402
  3. package/fesm2022/desy-angular.mjs.map +1 -1
  4. package/index.d.ts +3 -0
  5. package/lib/desy-forms/components/character-count/character-count.component.d.ts +1 -8
  6. package/lib/desy-forms/components/checkboxes/checkboxes-parent.component.d.ts +8 -0
  7. package/lib/desy-forms/components/checkboxes/checkboxes.component.d.ts +26 -0
  8. package/lib/desy-forms/components/date-input/date-input.component.d.ts +13 -7
  9. package/lib/desy-forms/components/datepicker/datepicker.component.d.ts +1 -5
  10. package/lib/desy-forms/components/fieldset/fieldset.component.d.ts +7 -0
  11. package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +5 -0
  12. package/lib/desy-forms/components/input/input.component.d.ts +1 -4
  13. package/lib/desy-forms/components/input-group/input-group.component.d.ts +7 -0
  14. package/lib/desy-forms/components/label/label.component.d.ts +1 -2
  15. package/lib/desy-forms/components/radios/radios-parent.component.d.ts +8 -0
  16. package/lib/desy-forms/components/radios/radios.component.d.ts +26 -0
  17. package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +1 -2
  18. package/lib/desy-forms/components/select/option/option.component.d.ts +1 -2
  19. package/lib/desy-forms/components/textarea/textarea.component.d.ts +1 -3
  20. package/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.d.ts +1 -1
  21. package/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.d.ts +3 -3
  22. package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +11 -7
  23. package/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.d.ts +1 -1
  24. package/lib/desy-forms/components/tree/tree-sub/tree-sub.component.d.ts +2 -2
  25. package/lib/desy-forms/components/tree/tree.component.d.ts +67 -7
  26. package/lib/desy-forms/directives/condition.directive.d.ts +5 -0
  27. package/lib/desy-forms/interfaces/select-item-data.d.ts +1 -1
  28. package/lib/desy-modals/components/dialog/dialog.component.d.ts +1 -1
  29. package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +2 -2
  30. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.d.ts +7 -0
  31. package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +1 -1
  32. package/lib/desy-nav/components/header-advanced/header-advanced-dropdown/header-advanced-dropdown.component.d.ts +2 -2
  33. package/lib/desy-nav/components/menubar/menubar.component.d.ts +7 -0
  34. package/lib/desy-nav/interfaces/header-dropdown-data.d.ts +1 -1
  35. package/lib/desy-nav/interfaces/header-mobile-text-data.d.ts +1 -1
  36. package/lib/desy-nav/interfaces/header-subnav-data.d.ts +1 -1
  37. package/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.d.ts +2 -2
  38. package/lib/desy-nav/interfaces/nav-item-event.data.d.ts +1 -1
  39. package/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.d.ts +1 -1
  40. package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +56 -1
  41. package/lib/desy-tables/directives/cell.directive.d.ts +3 -0
  42. package/lib/desy-tables/directives/row.directive.d.ts +7 -0
  43. package/lib/desy-tables/interfaces/head-cell-data.d.ts +1 -1
  44. package/lib/desy-views/components/alert/alert.component.d.ts +1 -1
  45. package/lib/shared/components/accessibility/accessibility.component.d.ts +3 -0
  46. package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +8 -0
  47. package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +6 -0
  48. package/lib/shared/components/content-base/content-base.component.d.ts +3 -0
  49. package/lib/shared/components/text-or-html-required/text-or-html-required.component.d.ts +4 -0
  50. package/lib/shared/decorators/desy-content-child.decorator.d.ts +11 -0
  51. package/lib/shared/decorators/desy-on-input-change.decorator.d.ts +4 -0
  52. package/lib/shared/directives/content-change.directive.d.ts +4 -0
  53. package/lib/shared/directives/custom-inner-content.directive.d.ts +6 -0
  54. package/lib/shared/pipes/external-href.pipe.d.ts +4 -0
  55. package/lib/shared/utils/search-utils.d.ts +10 -0
  56. package/lib/shared/utils/string-utils.d.ts +7 -0
  57. package/package.json +9 -11
  58. package/esm2022/desy-angular.mjs +0 -2
  59. package/esm2022/lib/desy-angular.module.mjs +0 -76
  60. package/esm2022/lib/desy-buttons/components/button/button.component.mjs +0 -118
  61. package/esm2022/lib/desy-buttons/components/button-loader/button-loader.component.mjs +0 -66
  62. package/esm2022/lib/desy-buttons/components/dropdown/dropdown.component.mjs +0 -158
  63. package/esm2022/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +0 -39
  64. package/esm2022/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.mjs +0 -14
  65. package/esm2022/lib/desy-buttons/components/listbox/listbox.component.mjs +0 -335
  66. package/esm2022/lib/desy-buttons/components/pill/pill.component.mjs +0 -83
  67. package/esm2022/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.mjs +0 -17
  68. package/esm2022/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.mjs +0 -17
  69. package/esm2022/lib/desy-buttons/components/toggle/toggle.component.mjs +0 -62
  70. package/esm2022/lib/desy-buttons/desy-buttons.module.mjs +0 -81
  71. package/esm2022/lib/desy-buttons/interfaces/listbox-item-data.mjs +0 -2
  72. package/esm2022/lib/desy-buttons/interfaces/listbox-label-data.mjs +0 -2
  73. package/esm2022/lib/desy-commons/components/content/content.component.mjs +0 -14
  74. package/esm2022/lib/desy-commons/components/description/description.component.mjs +0 -19
  75. package/esm2022/lib/desy-commons/components/divider/divider.component.mjs +0 -16
  76. package/esm2022/lib/desy-commons/components/icon/icon.component.mjs +0 -16
  77. package/esm2022/lib/desy-commons/components/title/title.component.mjs +0 -17
  78. package/esm2022/lib/desy-commons/desy-commons.module.mjs +0 -52
  79. package/esm2022/lib/desy-commons/interfaces/content-data.mjs +0 -2
  80. package/esm2022/lib/desy-commons/interfaces/description-data.mjs +0 -2
  81. package/esm2022/lib/desy-commons/interfaces/divider-data.mjs +0 -2
  82. package/esm2022/lib/desy-commons/interfaces/icon-data.mjs +0 -2
  83. package/esm2022/lib/desy-commons/interfaces/index.mjs +0 -6
  84. package/esm2022/lib/desy-commons/interfaces/title-data.mjs +0 -2
  85. package/esm2022/lib/desy-forms/components/character-count/character-count.component.mjs +0 -156
  86. package/esm2022/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +0 -189
  87. package/esm2022/lib/desy-forms/components/checkboxes/checkboxes-parent.component.mjs +0 -15
  88. package/esm2022/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +0 -269
  89. package/esm2022/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +0 -55
  90. package/esm2022/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.mjs +0 -19
  91. package/esm2022/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +0 -42
  92. package/esm2022/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.mjs +0 -55
  93. package/esm2022/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.mjs +0 -51
  94. package/esm2022/lib/desy-forms/components/date-input/date-input.component.mjs +0 -294
  95. package/esm2022/lib/desy-forms/components/datepicker/datepicker.component.mjs +0 -190
  96. package/esm2022/lib/desy-forms/components/datepicker/datepicker.pipe.mjs +0 -34
  97. package/esm2022/lib/desy-forms/components/error-message/error-message.component.mjs +0 -32
  98. package/esm2022/lib/desy-forms/components/fieldset/fieldset.component.mjs +0 -59
  99. package/esm2022/lib/desy-forms/components/fieldset/legend/legend.component.mjs +0 -34
  100. package/esm2022/lib/desy-forms/components/file-upload/file-upload.component.mjs +0 -78
  101. package/esm2022/lib/desy-forms/components/form-field/form-field.component.mjs +0 -120
  102. package/esm2022/lib/desy-forms/components/hint/hint.component.mjs +0 -30
  103. package/esm2022/lib/desy-forms/components/input/input.component.mjs +0 -110
  104. package/esm2022/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.mjs +0 -20
  105. package/esm2022/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.mjs +0 -59
  106. package/esm2022/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +0 -42
  107. package/esm2022/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.mjs +0 -51
  108. package/esm2022/lib/desy-forms/components/input-group/input-group.component.mjs +0 -229
  109. package/esm2022/lib/desy-forms/components/label/label.component.mjs +0 -39
  110. package/esm2022/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +0 -136
  111. package/esm2022/lib/desy-forms/components/radios/radios-parent.component.mjs +0 -15
  112. package/esm2022/lib/desy-forms/components/radios/radios.component.mjs +0 -282
  113. package/esm2022/lib/desy-forms/components/search-bar/search-bar.component.mjs +0 -65
  114. package/esm2022/lib/desy-forms/components/select/option/option.component.mjs +0 -22
  115. package/esm2022/lib/desy-forms/components/select/option-group/option-group.component.mjs +0 -18
  116. package/esm2022/lib/desy-forms/components/select/select-item/select-item.component.mjs +0 -14
  117. package/esm2022/lib/desy-forms/components/select/select.component.mjs +0 -94
  118. package/esm2022/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.mjs +0 -12
  119. package/esm2022/lib/desy-forms/components/textarea/textarea.component.mjs +0 -86
  120. package/esm2022/lib/desy-forms/components/tree/interfaces/itree-item.mjs +0 -3
  121. package/esm2022/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.mjs +0 -2
  122. package/esm2022/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +0 -174
  123. package/esm2022/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +0 -378
  124. package/esm2022/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.mjs +0 -25
  125. package/esm2022/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +0 -16
  126. package/esm2022/lib/desy-forms/components/tree/tree.component.mjs +0 -359
  127. package/esm2022/lib/desy-forms/desy-forms.module.mjs +0 -223
  128. package/esm2022/lib/desy-forms/directives/condition.directive.mjs +0 -34
  129. package/esm2022/lib/desy-forms/interfaces/error-message-data.mjs +0 -2
  130. package/esm2022/lib/desy-forms/interfaces/fieldset-data.mjs +0 -2
  131. package/esm2022/lib/desy-forms/interfaces/hint-data.mjs +0 -2
  132. package/esm2022/lib/desy-forms/interfaces/index.mjs +0 -13
  133. package/esm2022/lib/desy-forms/interfaces/item-checkbox-data.mjs +0 -2
  134. package/esm2022/lib/desy-forms/interfaces/item-date-input-data.mjs +0 -2
  135. package/esm2022/lib/desy-forms/interfaces/item-divider-date-input-data.mjs +0 -2
  136. package/esm2022/lib/desy-forms/interfaces/item-divider-input-group-data.mjs +0 -2
  137. package/esm2022/lib/desy-forms/interfaces/item-input-group-data.mjs +0 -2
  138. package/esm2022/lib/desy-forms/interfaces/item-radio-data.mjs +0 -2
  139. package/esm2022/lib/desy-forms/interfaces/item-radio-with-template-data.mjs +0 -2
  140. package/esm2022/lib/desy-forms/interfaces/label-data.mjs +0 -2
  141. package/esm2022/lib/desy-forms/interfaces/legend-data.mjs +0 -2
  142. package/esm2022/lib/desy-forms/interfaces/select-item-data.mjs +0 -2
  143. package/esm2022/lib/desy-modals/components/dialog/dialog.component.mjs +0 -151
  144. package/esm2022/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.mjs +0 -25
  145. package/esm2022/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.mjs +0 -23
  146. package/esm2022/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.mjs +0 -23
  147. package/esm2022/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.mjs +0 -23
  148. package/esm2022/lib/desy-modals/components/modal/modal.component.mjs +0 -183
  149. package/esm2022/lib/desy-modals/desy-modals.module.mjs +0 -61
  150. package/esm2022/lib/desy-modals/interfaces/dialog-options.mjs +0 -2
  151. package/esm2022/lib/desy-modals/interfaces/index.mjs +0 -7
  152. package/esm2022/lib/desy-modals/interfaces/modal-button-data.mjs +0 -2
  153. package/esm2022/lib/desy-modals/interfaces/modal-data.mjs +0 -2
  154. package/esm2022/lib/desy-modals/interfaces/modal-icon-data.mjs +0 -2
  155. package/esm2022/lib/desy-modals/interfaces/modal-options.mjs +0 -2
  156. package/esm2022/lib/desy-modals/interfaces/open-dialog-result.mjs +0 -2
  157. package/esm2022/lib/desy-modals/services/dialog.service.mjs +0 -114
  158. package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.mjs +0 -16
  159. package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +0 -53
  160. package/esm2022/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.mjs +0 -19
  161. package/esm2022/lib/desy-nav/components/error-summary/error-summary.component.mjs +0 -67
  162. package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +0 -25
  163. package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta.component.mjs +0 -31
  164. package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +0 -25
  165. package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +0 -21
  166. package/esm2022/lib/desy-nav/components/footer/footer.component.mjs +0 -89
  167. package/esm2022/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.mjs +0 -15
  168. package/esm2022/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.mjs +0 -46
  169. package/esm2022/lib/desy-nav/components/header/header-mobileText/header-mobile-text.component.mjs +0 -336
  170. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +0 -31
  171. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +0 -36
  172. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +0 -20
  173. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +0 -15
  174. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +0 -93
  175. package/esm2022/lib/desy-nav/components/header/header-subnav/header-subnav.component.mjs +0 -41
  176. package/esm2022/lib/desy-nav/components/header/header.component.mjs +0 -119
  177. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-custom-navigation/header-custom-navigation.component.mjs +0 -14
  178. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-dropdown/header-advanced-dropdown.component.mjs +0 -38
  179. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-logo/header-advanced-logo.component.mjs +0 -37
  180. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.mjs +0 -42
  181. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-subtitle/header-advanced-subtitle.component.mjs +0 -14
  182. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.mjs +0 -42
  183. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-title/header-advanced-title.component.mjs +0 -19
  184. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-title-container/header-advanced-title-container.component.mjs +0 -38
  185. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced.component.mjs +0 -54
  186. package/esm2022/lib/desy-nav/components/header-mini/header-mini.component.mjs +0 -32
  187. package/esm2022/lib/desy-nav/components/links-list/links-list-icon-right/links-list-icon-right.component.mjs +0 -16
  188. package/esm2022/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +0 -46
  189. package/esm2022/lib/desy-nav/components/links-list/links-list-item-sub/links-list-item-sub.component.mjs +0 -14
  190. package/esm2022/lib/desy-nav/components/links-list/links-list.component.mjs +0 -44
  191. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +0 -42
  192. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +0 -76
  193. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +0 -55
  194. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +0 -49
  195. package/esm2022/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +0 -854
  196. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +0 -44
  197. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.mjs +0 -18
  198. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +0 -34
  199. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +0 -102
  200. package/esm2022/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +0 -51
  201. package/esm2022/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.mjs +0 -14
  202. package/esm2022/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.mjs +0 -36
  203. package/esm2022/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.mjs +0 -27
  204. package/esm2022/lib/desy-nav/components/menubar/directives/menubaritem.directive.mjs +0 -45
  205. package/esm2022/lib/desy-nav/components/menubar/menubar.component.mjs +0 -962
  206. package/esm2022/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +0 -43
  207. package/esm2022/lib/desy-nav/components/nav/nav.component.mjs +0 -115
  208. package/esm2022/lib/desy-nav/components/notification/notification-item/notification-item.component.mjs +0 -25
  209. package/esm2022/lib/desy-nav/components/notification/notification.component.mjs +0 -135
  210. package/esm2022/lib/desy-nav/components/skip-link/skip-link.component.mjs +0 -62
  211. package/esm2022/lib/desy-nav/desy-nav.module.mjs +0 -301
  212. package/esm2022/lib/desy-nav/directives/dynamic-heading.directive.mjs +0 -40
  213. package/esm2022/lib/desy-nav/interfaces/breadcrumbs.data.mjs +0 -2
  214. package/esm2022/lib/desy-nav/interfaces/error-summary-data.mjs +0 -2
  215. package/esm2022/lib/desy-nav/interfaces/footer-data.mjs +0 -2
  216. package/esm2022/lib/desy-nav/interfaces/footer-logo.mjs +0 -10
  217. package/esm2022/lib/desy-nav/interfaces/header-advanced-logo.mjs +0 -7
  218. package/esm2022/lib/desy-nav/interfaces/header-dropdown-data.mjs +0 -2
  219. package/esm2022/lib/desy-nav/interfaces/header-mobile-text-data.mjs +0 -2
  220. package/esm2022/lib/desy-nav/interfaces/header-navigation-data.mjs +0 -2
  221. package/esm2022/lib/desy-nav/interfaces/header-navigation-item-data.mjs +0 -2
  222. package/esm2022/lib/desy-nav/interfaces/header-offcanvas-data.mjs +0 -2
  223. package/esm2022/lib/desy-nav/interfaces/header-skiplink-data.mjs +0 -2
  224. package/esm2022/lib/desy-nav/interfaces/header-subnav-data.mjs +0 -2
  225. package/esm2022/lib/desy-nav/interfaces/index.mjs +0 -21
  226. package/esm2022/lib/desy-nav/interfaces/menu-horizontal-item-data.mjs +0 -2
  227. package/esm2022/lib/desy-nav/interfaces/menu-horizontal-item-event-data.mjs +0 -2
  228. package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.mjs +0 -2
  229. package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item.mjs +0 -2
  230. package/esm2022/lib/desy-nav/interfaces/menu-navigation.mjs +0 -2
  231. package/esm2022/lib/desy-nav/interfaces/menu-vertical-items-data.mjs +0 -2
  232. package/esm2022/lib/desy-nav/interfaces/menu-vertical-sub-data.mjs +0 -2
  233. package/esm2022/lib/desy-nav/interfaces/menu-vertical-sub-items-data.mjs +0 -2
  234. package/esm2022/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.mjs +0 -2
  235. package/esm2022/lib/desy-nav/interfaces/menubar-item-sub-item.mjs +0 -2
  236. package/esm2022/lib/desy-nav/interfaces/menubar-item-sub.mjs +0 -2
  237. package/esm2022/lib/desy-nav/interfaces/menubar-item.mjs +0 -2
  238. package/esm2022/lib/desy-nav/interfaces/nav-item-event.data.mjs +0 -2
  239. package/esm2022/lib/desy-nav/interfaces/nav-item.data.mjs +0 -2
  240. package/esm2022/lib/desy-nav/interfaces/notification-items-data.mjs +0 -2
  241. package/esm2022/lib/desy-nav/interfaces/notification-options.mjs +0 -2
  242. package/esm2022/lib/desy-pagination/components/pagination/pagination.component.mjs +0 -237
  243. package/esm2022/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +0 -19
  244. package/esm2022/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.mjs +0 -17
  245. package/esm2022/lib/desy-pagination/desy-pagination.module.mjs +0 -54
  246. package/esm2022/lib/desy-pagination/interfaces/pagination-item.data.mjs +0 -2
  247. package/esm2022/lib/desy-tables/components/table/components/table-caption.component.mjs +0 -17
  248. package/esm2022/lib/desy-tables/components/table/components/table-cell.component.mjs +0 -23
  249. package/esm2022/lib/desy-tables/components/table/components/table-footer.component.mjs +0 -18
  250. package/esm2022/lib/desy-tables/components/table/components/table-header.component.mjs +0 -18
  251. package/esm2022/lib/desy-tables/components/table/components/table-row.component.mjs +0 -18
  252. package/esm2022/lib/desy-tables/components/table/table.component.mjs +0 -120
  253. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-footer-cell.component.mjs +0 -23
  254. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-footer.component.mjs +0 -27
  255. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.mjs +0 -56
  256. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.mjs +0 -18
  257. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.mjs +0 -23
  258. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.mjs +0 -27
  259. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.mjs +0 -28
  260. package/esm2022/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +0 -494
  261. package/esm2022/lib/desy-tables/desy-tables.module.mjs +0 -117
  262. package/esm2022/lib/desy-tables/directives/cell.directive.mjs +0 -25
  263. package/esm2022/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +0 -86
  264. package/esm2022/lib/desy-tables/directives/row.directive.mjs +0 -22
  265. package/esm2022/lib/desy-tables/interfaces/cell-data.mjs +0 -2
  266. package/esm2022/lib/desy-tables/interfaces/head-cell-data.mjs +0 -7
  267. package/esm2022/lib/desy-tables/interfaces/index.mjs +0 -5
  268. package/esm2022/lib/desy-tables/interfaces/recalculate-table-params.mjs +0 -2
  269. package/esm2022/lib/desy-tables/interfaces/row-data.mjs +0 -2
  270. package/esm2022/lib/desy-tables/interfaces/wrapper-data.mjs +0 -2
  271. package/esm2022/lib/desy-views/components/accordion/accordion-header/accordion-header.component.mjs +0 -17
  272. package/esm2022/lib/desy-views/components/accordion/accordion-item/accordion-item.component.mjs +0 -61
  273. package/esm2022/lib/desy-views/components/accordion/accordion.component.mjs +0 -447
  274. package/esm2022/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.mjs +0 -41
  275. package/esm2022/lib/desy-views/components/accordion-history/accordion-history.component.mjs +0 -20
  276. package/esm2022/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.mjs +0 -17
  277. package/esm2022/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.mjs +0 -17
  278. package/esm2022/lib/desy-views/components/alert/alert.component.mjs +0 -82
  279. package/esm2022/lib/desy-views/components/card/card-sectors/card-left.component.mjs +0 -21
  280. package/esm2022/lib/desy-views/components/card/card-sectors/card-right.component.mjs +0 -21
  281. package/esm2022/lib/desy-views/components/card/card-sectors/card-sub.component.mjs +0 -21
  282. package/esm2022/lib/desy-views/components/card/card-sectors/card-super.component.mjs +0 -21
  283. package/esm2022/lib/desy-views/components/card/card.component.mjs +0 -48
  284. package/esm2022/lib/desy-views/components/collapsible/collapsible.component.mjs +0 -66
  285. package/esm2022/lib/desy-views/components/description-list/definition/definition.component.mjs +0 -19
  286. package/esm2022/lib/desy-views/components/description-list/description-item/description-item.component.mjs +0 -36
  287. package/esm2022/lib/desy-views/components/description-list/description-list.component.mjs +0 -29
  288. package/esm2022/lib/desy-views/components/description-list/term/term.component.mjs +0 -19
  289. package/esm2022/lib/desy-views/components/details/details.component.mjs +0 -43
  290. package/esm2022/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.mjs +0 -17
  291. package/esm2022/lib/desy-views/components/item/item-content-right/item-content-right.component.mjs +0 -15
  292. package/esm2022/lib/desy-views/components/item/item-item/item-item.component.mjs +0 -15
  293. package/esm2022/lib/desy-views/components/item/item.component.mjs +0 -122
  294. package/esm2022/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.mjs +0 -12
  295. package/esm2022/lib/desy-views/components/media-object/media-object.component.mjs +0 -369
  296. package/esm2022/lib/desy-views/components/status/status.component.mjs +0 -366
  297. package/esm2022/lib/desy-views/components/status-item/status-item.component.mjs +0 -401
  298. package/esm2022/lib/desy-views/components/tabs/panel/panel.component.mjs +0 -19
  299. package/esm2022/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +0 -41
  300. package/esm2022/lib/desy-views/components/tabs/tabs.component.mjs +0 -445
  301. package/esm2022/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.mjs +0 -12
  302. package/esm2022/lib/desy-views/components/tooltip/tooltip.component.mjs +0 -444
  303. package/esm2022/lib/desy-views/desy-views.module.mjs +0 -195
  304. package/esm2022/lib/desy-views/interfaces/accordion-header.data.mjs +0 -2
  305. package/esm2022/lib/desy-views/interfaces/accordion-item.data.mjs +0 -2
  306. package/esm2022/lib/desy-views/interfaces/alert-options.mjs +0 -2
  307. package/esm2022/lib/desy-views/interfaces/description-item.data.mjs +0 -2
  308. package/esm2022/lib/desy-views/interfaces/index.mjs +0 -11
  309. package/esm2022/lib/desy-views/interfaces/open-alert-result.mjs +0 -2
  310. package/esm2022/lib/desy-views/interfaces/status-data.mjs +0 -2
  311. package/esm2022/lib/desy-views/interfaces/status-icon-data.mjs +0 -2
  312. package/esm2022/lib/desy-views/interfaces/status-item-title-data.mjs +0 -2
  313. package/esm2022/lib/desy-views/interfaces/tabs-items-data.mjs +0 -2
  314. package/esm2022/lib/desy-views/interfaces/tabs-panel-data.mjs +0 -2
  315. package/esm2022/lib/desy-views/interfaces/term-definition.data.mjs +0 -2
  316. package/esm2022/lib/desy-views/services/alert.service.mjs +0 -88
  317. package/esm2022/lib/shared/components/accessibility/accessibility-attributes.mjs +0 -78
  318. package/esm2022/lib/shared/components/accessibility/accessibility.component.mjs +0 -164
  319. package/esm2022/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +0 -168
  320. package/esm2022/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +0 -165
  321. package/esm2022/lib/shared/components/content-base/content-base.component.mjs +0 -21
  322. package/esm2022/lib/shared/components/index.mjs +0 -7
  323. package/esm2022/lib/shared/components/spinner/spinner.component.mjs +0 -329
  324. package/esm2022/lib/shared/components/text-or-html-required/text-or-html-required.component.mjs +0 -18
  325. package/esm2022/lib/shared/decorators/desy-content-child.decorator.mjs +0 -30
  326. package/esm2022/lib/shared/decorators/desy-on-input-change.decorator.mjs +0 -15
  327. package/esm2022/lib/shared/directives/accessibility-directive.mjs +0 -52
  328. package/esm2022/lib/shared/directives/attribute-change.directive.mjs +0 -50
  329. package/esm2022/lib/shared/directives/click-outside.directive.mjs +0 -40
  330. package/esm2022/lib/shared/directives/content-change.directive.mjs +0 -41
  331. package/esm2022/lib/shared/directives/custom-inner-content.directive.mjs +0 -61
  332. package/esm2022/lib/shared/directives/inner-content.directive.mjs +0 -37
  333. package/esm2022/lib/shared/interfaces/accessibility-data.mjs +0 -2
  334. package/esm2022/lib/shared/pipes/external-href.pipe.mjs +0 -28
  335. package/esm2022/lib/shared/pipes/inner-html.pipe.mjs +0 -21
  336. package/esm2022/lib/shared/pipes/make-html-list.pipe.mjs +0 -20
  337. package/esm2022/lib/shared/shared.module.mjs +0 -88
  338. package/esm2022/lib/shared/sharedExternal.module.mjs +0 -24
  339. package/esm2022/lib/shared/utils/focus-utils.mjs +0 -51
  340. package/esm2022/lib/shared/utils/search-utils.mjs +0 -70
  341. package/esm2022/lib/shared/utils/string-utils.mjs +0 -11
  342. package/esm2022/public-api.mjs +0 -225
@@ -1,359 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ChangeDetectorRef, Component, ContentChildren, EventEmitter, forwardRef, Input, Output, QueryList, TemplateRef, ViewChild } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR } from "@angular/forms";
4
- import { DesyContentChild } from "../../../shared/decorators/desy-content-child.decorator";
5
- import { DesyOnInputChange } from "../../../shared/decorators/desy-on-input-change.decorator";
6
- import { FieldsetComponent } from "../fieldset/fieldset.component";
7
- import { FormFieldComponent } from "../form-field/form-field.component";
8
- import { SearchBarComponent } from "../search-bar/search-bar.component";
9
- import { TreeItemComponent } from "./tree-item/tree-item.component";
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/common";
12
- import * as i2 from "../../../shared/directives/accessibility-directive";
13
- import * as i3 from "../../../shared/pipes/make-html-list.pipe";
14
- export class TreeComponent extends FormFieldComponent {
15
- constructor(changeDetector) {
16
- super();
17
- this.changeDetector = changeDetector;
18
- this.expandedFirstLevel = true;
19
- this.decoupleChildFromParent = false;
20
- this.disableDefaultSearch = false;
21
- this.searchMatchValuesChange = new EventEmitter();
22
- this.rootItems = [];
23
- this._itemListCheckedSubscriptions = [];
24
- this._itemListQuitFocusSubscriptions = [];
25
- this._alreadyConfiguringItems = false;
26
- }
27
- ngOnDestroy() {
28
- this.clearSubscriptions(this._itemListCheckedSubscriptions);
29
- this.clearSubscriptions(this._itemListQuitFocusSubscriptions);
30
- this._itemListSubscription?.unsubscribe();
31
- this._allItemListSubscription?.unsubscribe();
32
- }
33
- ngOnChanges(changes) {
34
- this.configureAllItems();
35
- }
36
- writeValue(value) {
37
- this.value = value;
38
- this.configureAllItems(true);
39
- this.onChange(this.value);
40
- }
41
- setDisabledState(isDisabled) {
42
- super.setDisabledState(isDisabled);
43
- this.configureAllItems();
44
- }
45
- updateValueFromItems(originItem) {
46
- if (this.type !== 'checkbox') {
47
- const items = this.getAllItemsInOrder();
48
- items.forEach(item => {
49
- if (item !== originItem && item.checked) {
50
- item.setChecked(false, true);
51
- }
52
- });
53
- }
54
- else if (!this.decoupleChildFromParent) {
55
- this.rootItems.forEach(item => item.setCheckedAutomaticallyDependingOnChildren());
56
- }
57
- this.value = [];
58
- const items = this.getAllItemsInOrder();
59
- items.forEach(item => {
60
- if (item.checked) {
61
- this.value.push(item.value);
62
- }
63
- });
64
- this.onChange(this.value);
65
- }
66
- handleItemQuitFocus(options) {
67
- if (options && options.nextElement) {
68
- const items = this.getAllItemsInOrder();
69
- const focusableItems = items.filter(item => !item.isHidden() && !item.disabled && item.allParentsExpanded);
70
- switch (options.nextElement) {
71
- case "first":
72
- focusableItems[0].focus();
73
- break;
74
- case "last":
75
- focusableItems[focusableItems.length - 1].focus();
76
- break;
77
- case "parent":
78
- const currentSubLevel = options.currentItem.subLevel;
79
- if (currentSubLevel > 0) {
80
- const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);
81
- const parent = focusableItems.slice(0, currentItemIndex).reverse().find(item => item.subLevel < currentSubLevel);
82
- if (parent) {
83
- parent.focus();
84
- }
85
- }
86
- break;
87
- case "firstChild":
88
- case "next":
89
- if (options.currentItem) {
90
- let currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);
91
- if (currentItemIndex < focusableItems.length - 1) {
92
- focusableItems[currentItemIndex + 1].focus();
93
- }
94
- }
95
- break;
96
- case "previous":
97
- if (options.currentItem) {
98
- const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);
99
- if (currentItemIndex > 0) {
100
- focusableItems[currentItemIndex - 1].focus();
101
- }
102
- }
103
- break;
104
- }
105
- }
106
- }
107
- onSearch(value) {
108
- if (!this.disableDefaultSearch) {
109
- if (value && value.length > 0) {
110
- this.searchMatchValues = this.allItems.filter(item => item.matchesText(value)).map(item => item.value);
111
- }
112
- else {
113
- this.searchMatchValues = null;
114
- }
115
- this.searchMatchValuesChange.emit(this.searchMatchValues);
116
- }
117
- }
118
- configureAllItems(isValueChange = false) {
119
- if (!this._alreadyConfiguringItems) {
120
- this._alreadyConfiguringItems = true;
121
- setTimeout(() => {
122
- if (this.allItems?.length > 0) {
123
- this.clearSubscriptions(this._itemListCheckedSubscriptions);
124
- this.clearSubscriptions(this._itemListQuitFocusSubscriptions);
125
- this.allItems.forEach(item => {
126
- item.parentName = this.name;
127
- item.type = this.type;
128
- item.inheritedDescribedBy = this.getDescribedByForItems();
129
- item.inheritedExpandedFirstLevel = this.expandedFirstLevel;
130
- item.inheritedDecoupleChildFromParent = this.decoupleChildFromParent;
131
- item.treeDisabled = this.disabled;
132
- if ((this.value && this.value.length > 0) || isValueChange) {
133
- const valueList = this.value ? this.value : [];
134
- item.setChecked(!!valueList.find(v => v === item.value), true);
135
- }
136
- item.detectChanges();
137
- const checkedSubscription = item.checkedChangeForTree.subscribe(() => this.updateValueFromItems(item));
138
- this._itemListCheckedSubscriptions.push(checkedSubscription);
139
- const quitFocusSubscription = item.quitFocus.subscribe(options => this.handleItemQuitFocus(options));
140
- this._itemListQuitFocusSubscriptions.push(quitFocusSubscription);
141
- });
142
- this.setErrorInItems(this.hasErrorMessageComponent());
143
- this.buildTree();
144
- if (!this.value) {
145
- this.updateValueFromItems();
146
- }
147
- if (this.searchMatchValues) {
148
- this.onSearchMatchValuesChange();
149
- }
150
- }
151
- if (this.allItems && !this._allItemListSubscription) {
152
- this._allItemListSubscription = this.allItems.changes.subscribe(() => this.configureAllItems());
153
- }
154
- this.changeDetector.detectChanges();
155
- this._alreadyConfiguringItems = false;
156
- });
157
- }
158
- }
159
- onSearchMatchValuesChange() {
160
- if (this.allItems) {
161
- this.allItems.forEach(item => {
162
- item.inheritedMatchesSearch = true;
163
- });
164
- if (this.searchMatchValues !== null && this.searchMatchValues !== undefined) {
165
- this.allItems.forEach(item => {
166
- if (this.searchMatchValues.findIndex(value => item.value === value) < 0) {
167
- item.inheritedMatchesSearch = false;
168
- }
169
- });
170
- }
171
- }
172
- }
173
- getIdPrefix() {
174
- return this.idPrefix ? this.idPrefix : this.name;
175
- }
176
- getDescribedBy() {
177
- let describedBy = '';
178
- if (this.describedBy) {
179
- describedBy = this.describedBy;
180
- }
181
- if (this.hasHintComponent() && this.hintComponent.id) {
182
- describedBy = describedBy + ' ' + this.hintComponent.id;
183
- }
184
- if (this.hasErrorMessageComponent() && this.errorMessageComponent.id) {
185
- describedBy = describedBy + ' ' + this.errorMessageComponent.id;
186
- }
187
- return describedBy;
188
- }
189
- getDescribedByForItems() {
190
- let describedBy;
191
- if (this.hasFieldsetComponent()) {
192
- describedBy = this.fieldsetComponent.describedBy;
193
- }
194
- else {
195
- describedBy = this.getDescribedBy();
196
- }
197
- return describedBy;
198
- }
199
- hasFieldsetComponent() {
200
- return !!this.fieldsetComponent;
201
- }
202
- getHintId() {
203
- return this.idPrefix ? this.idPrefix + '-hint' : this.hintComponent?.id;
204
- }
205
- getErrorId() {
206
- return this.idPrefix ? this.idPrefix + '-error' : this.errorMessageComponent?.id;
207
- }
208
- overrideFieldsetParams(fieldset) {
209
- fieldset.caller = this.innerHtml;
210
- fieldset.errorId = this.getErrorId();
211
- fieldset.describedBy = this.getDescribedBy();
212
- fieldset.detectChanges();
213
- }
214
- overrideSearchBarParams(searchbar) {
215
- const defaultOnChange = searchbar.onChange;
216
- const newOnChange = value => {
217
- this.onSearch(value);
218
- defaultOnChange(value);
219
- };
220
- searchbar.registerOnChange(newOnChange);
221
- }
222
- overrideHintParams(hint) {
223
- hint.id = this.getHintId();
224
- hint.detectChanges();
225
- }
226
- overrideErrorMessageParams(errorMessage) {
227
- errorMessage.id = this.getErrorId();
228
- this.setErrorInItems(this.hasErrorMessageComponent());
229
- errorMessage.detectChanges();
230
- }
231
- onDeleteErrorMessage(errorMessage) {
232
- this.setErrorInItems(this.hasErrorMessageComponent());
233
- }
234
- buildTree() {
235
- const itemMap = {};
236
- this.rootItems = [];
237
- this.allItems.forEach(item => {
238
- const key = item.getKey();
239
- itemMap[key] = item;
240
- if (item.sub) {
241
- item.sub.itemList = [];
242
- }
243
- });
244
- this.allItems.forEach(item => {
245
- const parentKey = item.getParentKey();
246
- if (parentKey === 'root') {
247
- this.rootItems.push(item);
248
- }
249
- else if (parentKey) {
250
- const sub = itemMap[parentKey].sub;
251
- if (sub) {
252
- sub.itemList.push(item);
253
- }
254
- }
255
- });
256
- let order = 0;
257
- this.rootItems.forEach((item, index) => {
258
- item.setSubLevel(0);
259
- item.setDefaultId(`${this.idPrefix}-${index}`);
260
- item.refreshAllParentsExpandedRecursive(true);
261
- if (!this.decoupleChildFromParent) {
262
- item.setCheckedAutomaticallyDependingOnChildren();
263
- }
264
- order = item.setOrderRecursively(order);
265
- });
266
- }
267
- setErrorInItems(hasError) {
268
- if (this.allItems?.length > 0) {
269
- this.allItems.forEach(item => {
270
- item.inheritedHasError = hasError;
271
- item.detectChanges();
272
- });
273
- }
274
- }
275
- clearSubscriptions(subscriptionList) {
276
- if (subscriptionList.length > 0) {
277
- subscriptionList.forEach(s => s.unsubscribe());
278
- subscriptionList.splice(0, subscriptionList.length);
279
- }
280
- }
281
- getAllItemsInOrder() {
282
- let list = [];
283
- if (this.allItems) {
284
- list = this.allItems.toArray().sort((a, b) => a.orderInTree > b.orderInTree ? 1 : -1);
285
- }
286
- return list;
287
- }
288
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
289
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TreeComponent, selector: "desy-tree", inputs: { id: "id", idPrefix: "idPrefix", classes: "classes", name: "name", type: "type", describedBy: "describedBy", formGroupClasses: "formGroupClasses", expandedFirstLevel: "expandedFirstLevel", decoupleChildFromParent: "decoupleChildFromParent", disableDefaultSearch: "disableDefaultSearch", searchMatchValues: "searchMatchValues" }, outputs: { searchMatchValuesChange: "searchMatchValuesChange" }, providers: [
290
- {
291
- provide: NG_VALUE_ACCESSOR,
292
- useExisting: forwardRef(() => TreeComponent),
293
- multi: true
294
- }
295
- ], queries: [{ propertyName: "allItems", predicate: TreeItemComponent, descendants: true }, { propertyName: "fieldsetComponent", predicate: FieldsetComponent }, { propertyName: "searchBarComponent", predicate: SearchBarComponent }], viewQueries: [{ propertyName: "innerHtml", first: true, predicate: ["innerHtml"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #innerHtml>\n <ng-content select=\"desy-hint\"></ng-content>\n <ng-content select=\"desy-error-message\"></ng-content>\n <ng-content select=\"desy-search-bar\"></ng-content>\n <ul [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : 'tree'\"\n [desyAppAccessibility]=\"this\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<!-- tree -->\n<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n <ng-container *ngIf=\"hasFieldsetComponent(); else innerHtml\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.AccessibilityDirective, selector: "[desyAppAccessibility]", inputs: ["desyAppAccessibility"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
296
- }
297
- __decorate([
298
- DesyOnInputChange('onSearchMatchValuesChange'),
299
- __metadata("design:type", Array)
300
- ], TreeComponent.prototype, "searchMatchValues", void 0);
301
- __decorate([
302
- DesyOnInputChange('configureAllItems'),
303
- __metadata("design:type", QueryList)
304
- ], TreeComponent.prototype, "allItems", void 0);
305
- __decorate([
306
- DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams' }),
307
- __metadata("design:type", FieldsetComponent)
308
- ], TreeComponent.prototype, "fieldsetComponent", void 0);
309
- __decorate([
310
- DesyContentChild({ onSetCallbackName: 'overrideSearchBarParams' }),
311
- __metadata("design:type", SearchBarComponent)
312
- ], TreeComponent.prototype, "searchBarComponent", void 0);
313
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeComponent, decorators: [{
314
- type: Component,
315
- args: [{ selector: 'desy-tree', providers: [
316
- {
317
- provide: NG_VALUE_ACCESSOR,
318
- useExisting: forwardRef(() => TreeComponent),
319
- multi: true
320
- }
321
- ], template: "<ng-template #innerHtml>\n <ng-content select=\"desy-hint\"></ng-content>\n <ng-content select=\"desy-error-message\"></ng-content>\n <ng-content select=\"desy-search-bar\"></ng-content>\n <ul [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : 'tree'\"\n [desyAppAccessibility]=\"this\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<!-- tree -->\n<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n <ng-container *ngIf=\"hasFieldsetComponent(); else innerHtml\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n</div>" }]
322
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { id: [{
323
- type: Input
324
- }], idPrefix: [{
325
- type: Input
326
- }], classes: [{
327
- type: Input
328
- }], name: [{
329
- type: Input
330
- }], type: [{
331
- type: Input
332
- }], describedBy: [{
333
- type: Input
334
- }], formGroupClasses: [{
335
- type: Input
336
- }], expandedFirstLevel: [{
337
- type: Input
338
- }], decoupleChildFromParent: [{
339
- type: Input
340
- }], disableDefaultSearch: [{
341
- type: Input
342
- }], searchMatchValues: [{
343
- type: Input
344
- }], searchMatchValuesChange: [{
345
- type: Output
346
- }], allItems: [{
347
- type: ContentChildren,
348
- args: [TreeItemComponent, { descendants: true }]
349
- }], fieldsetComponent: [{
350
- type: ContentChildren,
351
- args: [FieldsetComponent]
352
- }], searchBarComponent: [{
353
- type: ContentChildren,
354
- args: [SearchBarComponent]
355
- }], innerHtml: [{
356
- type: ViewChild,
357
- args: ['innerHtml', { static: true }]
358
- }] } });
359
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvdHJlZS90cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy90cmVlL3RyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFBRSxZQUFZLEVBQzdCLFVBQVUsRUFDVixLQUFLLEVBR0wsTUFBTSxFQUFFLFNBQVMsRUFDRixXQUFXLEVBQUUsU0FBUyxFQUN0QyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFhcEUsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBeUI7SUFzQzFELFlBQW9CLGNBQWlDO1FBQ25ELEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBM0I1Qyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsNEJBQXVCLEdBQUcsS0FBSyxDQUFD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QUUsSUFBSSxFQUFFO2dCQUdyQixpQkFBaUI7c0JBQXBELGVBQWU7dUJBQUMsaUJBQWlCO2dCQUdHLGtCQUFrQjtzQkFBdEQsZUFBZTt1QkFBQyxrQkFBa0I7Z0JBRU8sU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LCBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IERlc3lDb250ZW50Q2hpbGQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvclwiO1xuaW1wb3J0IHsgRGVzeU9uSW5wdXRDaGFuZ2UgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1vbi1pbnB1dC1jaGFuZ2UuZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBGaWVsZHNldENvbXBvbmVudCB9IGZyb20gXCIuLi9maWVsZHNldC9maWVsZHNldC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gXCIuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTZWFyY2hCYXJDb21wb25lbnQgfSBmcm9tIFwiLi4vc2VhcmNoLWJhci9zZWFyY2gtYmFyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUXVpdFRyZWVJdGVtRm9jdXNPcHRpb25zIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9xdWl0LXRyZWUtaXRlbS1mb2N1cy1vcHRpb25zXCI7XG5pbXBvcnQgeyBUcmVlSXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL3RyZWUtaXRlbS90cmVlLWl0ZW0uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktdHJlZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUcmVlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVDb21wb25lbnQgZXh0ZW5kcyBGb3JtRmllbGRDb21wb25lbnQ8YW55W10+IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSB0eXBlOiAncmFkaW8nfCdjaGVja2JveCd8bnVsbHx1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRlc2NyaWJlZEJ5OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZm9ybUdyb3VwQ2xhc3NlczogYW55O1xuXG4gIEBJbnB1dCgpIGV4cGFuZGVkRmlyc3RMZXZlbCA9IHRydWU7XG4gIEBJbnB1dCgpIGRlY291cGxlQ2hpbGRGcm9tUGFyZW50ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZGlzYWJsZURlZmF1bHRTZWFyY2ggPSBmYWxzZTtcblxuICBARGVzeU9uSW5wdXRDaGFuZ2UoJ29uU2VhcmNoTWF0Y2hWYWx1ZXNDaGFuZ2UnKVxuICBASW5wdXQoKSBzZWFyY2hNYXRjaFZhbHVlczogc3RyaW5nW107XG4gIEBPdXRwdXQoKSBzZWFyY2hNYXRjaFZhbHVlc0NoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgQERlc3lPbklucHV0Q2hhbmdlKCdjb25maWd1cmVBbGxJdGVtcycpXG4gIEBDb250ZW50Q2hpbGRyZW4oVHJlZUl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgYWxsSXRlbXM6IFF1ZXJ5TGlzdDxUcmVlSXRlbUNvbXBvbmVudD47XG5cbiAgQERlc3lDb250ZW50Q2hpbGQoeyBvblNldENhbGxiYWNrTmFtZTogJ292ZXJyaWRlRmllbGRzZXRQYXJhbXMnfSlcbiAgQENvbnRlbnRDaGlsZHJlbihGaWVsZHNldENvbXBvbmVudCkgZmllbGRzZXRDb21wb25lbnQ6IEZpZWxkc2V0Q29tcG9uZW50O1xuXG4gIEBEZXN5Q29udGVudENoaWxkKHsgb25TZXRDYWxsYmFja05hbWU6ICdvdmVycmlkZVNlYXJjaEJhclBhcmFtcyd9KVxuICBAQ29udGVudENoaWxkcmVuKFNlYXJjaEJhckNvbXBvbmVudCkgc2VhcmNoQmFyQ29tcG9uZW50OiBTZWFyY2hCYXJDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnaW5uZXJIdG1sJywgeyBzdGF0aWM6IHRydWUgfSkgaW5uZXJIdG1sOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgcm9vdEl0ZW1zOiBUcmVlSXRlbUNvbXBvbmVudFtdID0gW107XG4gIHByaXZhdGUgX2l0ZW1MaXN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgX2FsbEl0ZW1MaXN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgX2l0ZW1MaXN0Q2hlY2tlZFN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgX2l0ZW1MaXN0UXVpdEZvY3VzU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfYWxyZWFkeUNvbmZpZ3VyaW5nSXRlbXMgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9ucyh0aGlzLl9pdGVtTGlzdENoZWNrZWRTdWJzY3JpcHRpb25zKTtcbiAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9ucyh0aGlzLl9pdGVtTGlzdFF1aXRGb2N1c1N1YnNjcmlwdGlvbnMpO1xuICAgIHRoaXMuX2l0ZW1MaXN0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX2FsbEl0ZW1MaXN0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlndXJlQWxsSXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZSBzb2JyZXNjcmliZSBlbCB2YWxvciBwYXJhIGFjdHVhbGl6YXIgbG9zIGl0ZW1zXG4gICAqIEBPdmVycmlkZVxuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY29uZmlndXJlQWxsSXRlbXModHJ1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZSBzb2JyZXNjcmliZSBlbCB2YWxvciBwYXJhIGFjdHVhbGl6YXIgbG9zIGl0ZW1zXG4gICAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQpO1xuICAgIHRoaXMuY29uZmlndXJlQWxsSXRlbXMoKTtcbiAgfVxuXG4gIC8qXG4gICAqIEV2ZW50b3NcbiAgICovXG5cbiAgLyoqXG4gICAqIEFjdHVhbGl6YSBlbCB2YWxvciBkZWwgY29tcG9uZW50ZSBhbCBjaGVja3F1ZWFyc2UgdW4gw610ZW1cbiAgICogQHBhcmFtIG9yaWdpbkl0ZW0gw610ZW0gbW9kaWZpY2Fkb1xuICAgKi9cbiAgdXBkYXRlVmFsdWVGcm9tSXRlbXMob3JpZ2luSXRlbT86IFRyZWVJdGVtQ29tcG9uZW50KTogdm9pZCB7XG5cbiAgICAvLyBTaSBlcyByYWRpbywgc2UgZGVzYWN0aXZhbiBlbCByZXN0byBkZSBpdGVtcyBjdWFuZG8gc2UgYWN0aXZhIG90cm8gaXRlbVxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdjaGVja2JveCcpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRBbGxJdGVtc0luT3JkZXIoKTtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChpdGVtICE9PSBvcmlnaW5JdGVtICYmIGl0ZW0uY2hlY2tlZCkge1xuICAgICAgICAgIGl0ZW0uc2V0Q2hlY2tlZChmYWxzZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuZGVjb3VwbGVDaGlsZEZyb21QYXJlbnQpIHtcbiAgICAgIHRoaXMucm9vdEl0ZW1zLmZvckVhY2goaXRlbSA9PiBpdGVtLnNldENoZWNrZWRBdXRvbWF0aWNhbGx5RGVwZW5kaW5nT25DaGlsZHJlbigpKTtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gW107XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEFsbEl0ZW1zSW5PcmRlcigpO1xuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbS5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMudmFsdWUucHVzaChpdGVtLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlc3Rpb25hIGN1YW5kbyBlbCBmb2NvIGFiYW5kb25hIHVuIMOtdGVtIGRlc2RlIHVuIGV2ZW50byBkZSB0ZWNsYWRvIGNvbnRyb2xhZG9cbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIGhhbmRsZUl0ZW1RdWl0Rm9jdXMob3B0aW9uczogUXVpdFRyZWVJdGVtRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5uZXh0RWxlbWVudCkge1xuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEFsbEl0ZW1zSW5PcmRlcigpO1xuICAgICAgY29uc3QgZm9jdXNhYmxlSXRlbXMgPSBpdGVtcy5maWx0ZXIoaXRlbSA9PiAhaXRlbS5pc0hpZGRlbigpICYmICFpdGVtLmRpc2FibGVkICYmIGl0ZW0uYWxsUGFyZW50c0V4cGFuZGVkKTtcbiAgICAgIHN3aXRjaCAob3B0aW9ucy5uZXh0RWxlbWVudCkge1xuICAgICAgICBjYXNlIFwiZmlyc3RcIjpcbiAgICAgICAgICBmb2N1c2FibGVJdGVtc1swXS5mb2N1cygpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibGFzdFwiOlxuICAgICAgICAgIGZvY3VzYWJsZUl0ZW1zW2ZvY3VzYWJsZUl0ZW1zLmxlbmd0aCAtIDFdLmZvY3VzKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJwYXJlbnRcIjpcbiAgICAgICAgICBjb25zdCBjdXJyZW50U3ViTGV2ZWwgPSBvcHRpb25zLmN1cnJlbnRJdGVtLnN1YkxldmVsO1xuICAgICAgICAgIGlmIChjdXJyZW50U3ViTGV2ZWwgPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbUluZGV4ID0gZm9jdXNhYmxlSXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gb3B0aW9ucy5jdXJyZW50SXRlbSk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBmb2N1c2FibGVJdGVtcy5zbGljZSgwLCBjdXJyZW50SXRlbUluZGV4KS5yZXZlcnNlKCkuZmluZChpdGVtID0+IGl0ZW0uc3ViTGV2ZWwgPCBjdXJyZW50U3ViTGV2ZWwpO1xuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICBwYXJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJmaXJzdENoaWxkXCI6XG4gICAgICAgIGNhc2UgXCJuZXh0XCI6XG4gICAgICAgICAgaWYgKG9wdGlvbnMuY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50SXRlbUluZGV4ID0gZm9jdXNhYmxlSXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gb3B0aW9ucy5jdXJyZW50SXRlbSk7XG4gICAgICAgICAgICBpZiAoY3VycmVudEl0ZW1JbmRleCA8IGZvY3VzYWJsZUl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgZm9jdXNhYmxlSXRlbXNbY3VycmVudEl0ZW1JbmRleCArIDFdLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicHJldmlvdXNcIjpcbiAgICAgICAgICBpZiAob3B0aW9ucy5jdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW1JbmRleCA9IGZvY3VzYWJsZUl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IG9wdGlvbnMuY3VycmVudEl0ZW0pO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgIGZvY3VzYWJsZUl0ZW1zW2N1cnJlbnRJdGVtSW5kZXggLSAxXS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVhbGl6YSBsYSBiw7pzcXVlZGEgaW50ZXJuYSBkZSBsb3MgaXRlbXMgZW4gZWwgY29tcG9uZW50ZVxuICAgKiBAcGFyYW0gdmFsdWUgdGV4dG8gZGUgYsO6c3F1ZWRhXG4gICAqL1xuICBvblNlYXJjaCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVEZWZhdWx0U2VhcmNoKSB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnNlYXJjaE1hdGNoVmFsdWVzID0gdGhpcy5hbGxJdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLm1hdGNoZXNUZXh0KHZhbHVlKSkubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlYXJjaE1hdGNoVmFsdWVzID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXNDaGFuZ2UuZW1pdCh0aGlzLnNlYXJjaE1hdGNoVmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgKiBFdmVudG9zIGFsIGNhbWJpYXIgcHJvcGllZGFkZXNcbiAgICovXG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYSBsb3MgaXRlbXMgZGVsIMOhcmJvbFxuICAgKi9cbiAgY29uZmlndXJlQWxsSXRlbXMoaXNWYWx1ZUNoYW5nZSA9IGZhbHNlKTogdm9pZCB7XG5cbiAgICBpZiAoIXRoaXMuX2FscmVhZHlDb25maWd1cmluZ0l0ZW1zKSB7XG4gICAgICB0aGlzLl9hbHJlYWR5Q29uZmlndXJpbmdJdGVtcyA9IHRydWU7XG5cbiAgICAgIC8vIExvIHJlYWxpemFtb3MgZGVzZGUgdW4gc2V0VGltZW91dCBwYXJhIHF1ZSB0b2RvcyBsb3MgaW5wdXRzLCB2YWx1ZXMgeSBkZW3DoXMgdml2YW4gZW4gcGF6IHkgYXJtb27DrWFcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5hbGxJdGVtcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb25zKHRoaXMuX2l0ZW1MaXN0Q2hlY2tlZFN1YnNjcmlwdGlvbnMpO1xuICAgICAgICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb25zKHRoaXMuX2l0ZW1MaXN0UXVpdEZvY3VzU3Vic2NyaXB0aW9ucyk7XG4gICAgICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaXRlbS5wYXJlbnROYW1lID0gdGhpcy5uYW1lO1xuICAgICAgICAgICAgaXRlbS50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICAgICAgaXRlbS5pbmhlcml0ZWREZXNjcmliZWRCeSA9IHRoaXMuZ2V0RGVzY3JpYmVkQnlGb3JJdGVtcygpO1xuICAgICAgICAgICAgaXRlbS5pbmhlcml0ZWRFeHBhbmRlZEZpcnN0TGV2ZWwgPSB0aGlzLmV4cGFuZGVkRmlyc3RMZXZlbDtcbiAgICAgICAgICAgIGl0ZW0uaW5oZXJpdGVkRGVjb3VwbGVDaGlsZEZyb21QYXJlbnQgPSB0aGlzLmRlY291cGxlQ2hpbGRGcm9tUGFyZW50O1xuICAgICAgICAgICAgaXRlbS50cmVlRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xuICAgICAgICAgICAgaWYgKCh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gMCkgfHwgaXNWYWx1ZUNoYW5nZSkge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZUxpc3QgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6IFtdO1xuICAgICAgICAgICAgICBpdGVtLnNldENoZWNrZWQoISF2YWx1ZUxpc3QuZmluZCh2ID0+IHYgPT09IGl0ZW0udmFsdWUpLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGl0ZW0uZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgICAgICBjb25zdCBjaGVja2VkU3Vic2NyaXB0aW9uID0gaXRlbS5jaGVja2VkQ2hhbmdlRm9yVHJlZS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVWYWx1ZUZyb21JdGVtcyhpdGVtKSk7XG4gICAgICAgICAgICB0aGlzLl9pdGVtTGlzdENoZWNrZWRTdWJzY3JpcHRpb25zLnB1c2goY2hlY2tlZFN1YnNjcmlwdGlvbik7XG5cbiAgICAgICAgICAgIGNvbnN0IHF1aXRGb2N1c1N1YnNjcmlwdGlvbiA9IGl0ZW0ucXVpdEZvY3VzLnN1YnNjcmliZShvcHRpb25zID0+IHRoaXMuaGFuZGxlSXRlbVF1aXRGb2N1cyhvcHRpb25zKSk7XG4gICAgICAgICAgICB0aGlzLl9pdGVtTGlzdFF1aXRGb2N1c1N1YnNjcmlwdGlvbnMucHVzaChxdWl0Rm9jdXNTdWJzY3JpcHRpb24pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5zZXRFcnJvckluSXRlbXModGhpcy5oYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKSk7XG5cbiAgICAgICAgICB0aGlzLmJ1aWxkVHJlZSgpO1xuICAgICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUZyb21JdGVtcygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnNlYXJjaE1hdGNoVmFsdWVzKSB7XG4gICAgICAgICAgICB0aGlzLm9uU2VhcmNoTWF0Y2hWYWx1ZXNDaGFuZ2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hbGxJdGVtcyAmJiAhdGhpcy5fYWxsSXRlbUxpc3RTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLl9hbGxJdGVtTGlzdFN1YnNjcmlwdGlvbiA9IHRoaXMuYWxsSXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jb25maWd1cmVBbGxJdGVtcygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9hbHJlYWR5Q29uZmlndXJpbmdJdGVtcyA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vZGlmaWNhIGxvcyBpdGVtcyB2aXNpYmxlcyBzZWfDum4gZWwgZmlsdHJvIGRlIGLDunNxdWVkYVxuICAgKi9cbiAgb25TZWFyY2hNYXRjaFZhbHVlc0NoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxJdGVtcykge1xuICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpdGVtLmluaGVyaXRlZE1hdGNoZXNTZWFyY2ggPSB0cnVlO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICh0aGlzLnNlYXJjaE1hdGNoVmFsdWVzICE9PSBudWxsICYmIHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMuZmluZEluZGV4KHZhbHVlID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlKSA8IDApIHtcbiAgICAgICAgICAgIGl0ZW0uaW5oZXJpdGVkTWF0Y2hlc1NlYXJjaCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKlxuICAgKiBHZXR0ZXJzIGFuZCBzZXR0ZXJzXG4gICAqL1xuXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0RGVzY3JpYmVkQnkoKTogc3RyaW5nIHtcbiAgICBsZXQgZGVzY3JpYmVkQnkgPSAnJztcbiAgICBpZiAodGhpcy5kZXNjcmliZWRCeSkge1xuICAgICAgZGVzY3JpYmVkQnkgPSB0aGlzLmRlc2NyaWJlZEJ5O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc0hpbnRDb21wb25lbnQoKSAmJiB0aGlzLmhpbnRDb21wb25lbnQuaWQpIHtcbiAgICAgIGRlc2NyaWJlZEJ5ID0gZGVzY3JpYmVkQnkgKyAnICcgKyB0aGlzLmhpbnRDb21wb25lbnQuaWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzRXJyb3JNZXNzYWdlQ29tcG9uZW50KCkgJiYgdGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQuaWQpIHtcbiAgICAgIGRlc2NyaWJlZEJ5ID0gZGVzY3JpYmVkQnkgKyAnICcgKyB0aGlzLmVycm9yTWVzc2FnZUNvbXBvbmVudC5pZDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVzY3JpYmVkQnk7XG4gIH1cblxuICAvKipcbiAgICogRGV2dWVsdmUgZWwgdmFsb3IgZGUgZGVzY3JpYmVkQnkgcXVlIHNlIHRyYW5zbWl0aXLDoSBhIGxvcyBpdGVtc1xuICAgKi9cbiAgZ2V0RGVzY3JpYmVkQnlGb3JJdGVtcygpOiBzdHJpbmcge1xuICAgIGxldCBkZXNjcmliZWRCeTtcbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XG4gICAgICBkZXNjcmliZWRCeSA9IHRoaXMuZmllbGRzZXRDb21wb25lbnQuZGVzY3JpYmVkQnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlc2NyaWJlZEJ5ID0gdGhpcy5nZXREZXNjcmliZWRCeSgpO1xuICAgIH1cblxuICAgIHJldHVybiBkZXNjcmliZWRCeTtcbiAgfVxuXG4gIGhhc0ZpZWxkc2V0Q29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZmllbGRzZXRDb21wb25lbnQ7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHN1cGVyLmdldEhpbnRJZCgpO1xuICAgKi9cbiAgZ2V0SGludElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4ICsgJy1oaW50JyA6IHRoaXMuaGludENvbXBvbmVudD8uaWQ7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHN1cGVyLmdldEhpbnRJZCgpO1xuICAgKi9cbiAgZ2V0RXJyb3JJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCArICctZXJyb3InIDogdGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQ/LmlkO1xuICB9XG5cbiAgLypcbiAgICogRnVuY2lvbmVzIHBhcmEgcmVlbXBsYXphciBlbCBjb250ZW5pZG8gZGVsIGZpZWxkc2V0LCBsYWJlbCwgaGludCBvIGVycm9ybWVzc2FnZVxuICAgKi9cblxuICBvdmVycmlkZUZpZWxkc2V0UGFyYW1zKGZpZWxkc2V0OiBGaWVsZHNldENvbXBvbmVudCk6IHZvaWQge1xuICAgIGZpZWxkc2V0LmNhbGxlciA9IHRoaXMuaW5uZXJIdG1sO1xuICAgIGZpZWxkc2V0LmVycm9ySWQgPSB0aGlzLmdldEVycm9ySWQoKTtcbiAgICBmaWVsZHNldC5kZXNjcmliZWRCeSA9IHRoaXMuZ2V0RGVzY3JpYmVkQnkoKTtcbiAgICBmaWVsZHNldC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvdmVycmlkZVNlYXJjaEJhclBhcmFtcyhzZWFyY2hiYXI6IFNlYXJjaEJhckNvbXBvbmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRPbkNoYW5nZSA9IHNlYXJjaGJhci5vbkNoYW5nZTtcbiAgICBjb25zdCBuZXdPbkNoYW5nZSA9IHZhbHVlID0+IHtcbiAgICAgIHRoaXMub25TZWFyY2godmFsdWUpO1xuICAgICAgZGVmYXVsdE9uQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG4gICAgc2VhcmNoYmFyLnJlZ2lzdGVyT25DaGFuZ2UobmV3T25DaGFuZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlIGxsYW1hIGRlc2RlIEZvcm1GaWVsZFxuICAgKi9cbiAgb3ZlcnJpZGVIaW50UGFyYW1zKGhpbnQpOiB2b2lkIHtcbiAgICBoaW50LmlkID0gdGhpcy5nZXRIaW50SWQoKTtcbiAgICBoaW50LmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZSBsbGFtYSBkZXNkZSBGb3JtRmllbGRcbiAgICovXG4gIG92ZXJyaWRlRXJyb3JNZXNzYWdlUGFyYW1zKGVycm9yTWVzc2FnZSk6IHZvaWQge1xuICAgIGVycm9yTWVzc2FnZS5pZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xuICAgIHRoaXMuc2V0RXJyb3JJbkl0ZW1zKHRoaXMuaGFzRXJyb3JNZXNzYWdlQ29tcG9uZW50KCkpO1xuICAgIGVycm9yTWVzc2FnZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogU2UgbGxhbWEgZGVzZGUgRm9ybUZpZWxkXG4gICAqL1xuICBvbkRlbGV0ZUVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOiB2b2lkIHtcbiAgICB0aGlzLnNldEVycm9ySW5JdGVtcyh0aGlzLmhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpKTtcbiAgfVxuXG4gIC8qXG4gICAqIE3DqXRvZG9zIHByaXZhZG9zXG4gICAqL1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmEgbGEgZXN0cnVjdHVyYSBkZWwgw6FyYm9sXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkVHJlZSgpOiB2b2lkIHtcblxuICAgIC8vIFNlIGNyZWEgdW4gbWFwYSBwYXJhIHRlbmVyIGFjY2VzaWJsZXMgbG9zIGl0ZW1zIHBvciBrZXkgeSBzZSBib3JyYW4gbG9zIGxpc3RhZG9zIGV4aXN0ZW50ZXNcbiAgICBjb25zdCBpdGVtTWFwID0ge31cbiAgICB0aGlzLnJvb3RJdGVtcyA9IFtdO1xuICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGl0ZW0uZ2V0S2V5KCk7XG4gICAgICBpdGVtTWFwW2tleV0gPSBpdGVtO1xuICAgICAgaWYgKGl0ZW0uc3ViKSB7XG4gICAgICAgIGl0ZW0uc3ViLml0ZW1MaXN0ID0gW107XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBTZSBhw7FhZGVuIGxvcyBpdGVtcyBhIGxvcyBsaXN0YWRvcyBjb3JyZXNwb25kaWVudGVzXG4gICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgcGFyZW50S2V5ID0gaXRlbS5nZXRQYXJlbnRLZXkoKTtcbiAgICAgIGlmIChwYXJlbnRLZXkgPT09ICdyb290Jykge1xuICAgICAgICB0aGlzLnJvb3RJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgfSBlbHNlIGlmIChwYXJlbnRLZXkpIHtcbiAgICAgICAgY29uc3Qgc3ViID0gaXRlbU1hcFtwYXJlbnRLZXldLnN1YjtcbiAgICAgICAgaWYgKHN1Yikge1xuICAgICAgICAgIHN1Yi5pdGVtTGlzdC5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBTZSBjb25maWd1cmFuIGxvcyBpdGVtcyBkZXNkZSByb290XG4gICAgbGV0IG9yZGVyID0gMDtcbiAgICB0aGlzLnJvb3RJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaXRlbS5zZXRTdWJMZXZlbCgwKTtcbiAgICAgIGl0ZW0uc2V0RGVmYXVsdElkKGAke3RoaXMuaWRQcmVmaXh9LSR7aW5kZXh9YCk7XG4gICAgICBpdGVtLnJlZnJlc2hBbGxQYXJlbnRzRXhwYW5kZWRSZWN1cnNpdmUodHJ1ZSk7XG4gICAgICBpZiAoIXRoaXMuZGVjb3VwbGVDaGlsZEZyb21QYXJlbnQpIHtcbiAgICAgICAgaXRlbS5zZXRDaGVja2VkQXV0b21hdGljYWxseURlcGVuZGluZ09uQ2hpbGRyZW4oKTtcbiAgICAgIH1cbiAgICAgIG9yZGVyID0gaXRlbS5zZXRPcmRlclJlY3Vyc2l2ZWx5KG9yZGVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaSB0aWVuZSB1biBtZW5zYWplIGRlIGVycm9yLCBzZSBpbmRpY2EgYSBsb3MgaXRlbXNcbiAgICogQHBhcmFtIGhhc0Vycm9yXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldEVycm9ySW5JdGVtcyhoYXNFcnJvcjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsbEl0ZW1zPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0uaW5oZXJpdGVkSGFzRXJyb3IgPSBoYXNFcnJvcjtcbiAgICAgICAgaXRlbS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGltcGlhIHVuIGxpc3RhZG8gZGUgc3Vic2NyaXBjaW9uZXNcbiAgICogQHBhcmFtIHN1YnNjcmlwdGlvbkxpc3RcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY2xlYXJTdWJzY3JpcHRpb25zKHN1YnNjcmlwdGlvbkxpc3Q6IFN1YnNjcmlwdGlvbltdKTogdm9pZCB7XG4gICAgaWYgKHN1YnNjcmlwdGlvbkxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgc3Vic2NyaXB0aW9uTGlzdC5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICAgIHN1YnNjcmlwdGlvbkxpc3Quc3BsaWNlKDAsIHN1YnNjcmlwdGlvbkxpc3QubGVuZ3RoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXZ1ZWx2ZSBsb3MgaXRlbXMgZGVsIMOhcmJvbCBvcmRlbmFkb3NcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0QWxsSXRlbXNJbk9yZGVyKCk6IFRyZWVJdGVtQ29tcG9uZW50W10ge1xuICAgIGxldCBsaXN0ID0gW107XG4gICAgaWYgKHRoaXMuYWxsSXRlbXMpIHtcbiAgICAgIGxpc3QgPSB0aGlzLmFsbEl0ZW1zLnRvQXJyYXkoKS5zb3J0KChhLCBiKSA9PiBhLm9yZGVySW5UcmVlID4gYi5vcmRlckluVHJlZSA/IDEgOiAtMSlcbiAgICB9XG4gICAgcmV0dXJuIGxpc3RcbiAgfVxuICBcblxufVxuIiwiPG5nLXRlbXBsYXRlICNpbm5lckh0bWw+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktaGludFwiPjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1lcnJvci1tZXNzYWdlXCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LXNlYXJjaC1iYXJcIj48L25nLWNvbnRlbnQ+XG4gIDx1bCBbYXR0ci5pZF09XCJpZCA/IGlkIDogbnVsbFwiXG4gICAgICBbYXR0ci5yb2xlXT1cInJvbGUgPyByb2xlIDogJ3RyZWUnXCJcbiAgICAgIFtkZXN5QXBwQWNjZXNzaWJpbGl0eV09XCJ0aGlzXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSB0cmVlIC0tPlxuPGRpdiBbY2xhc3NdPVwiWydjLWZvcm0tZ3JvdXAnLCBmb3JtR3JvdXBDbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgIFtuZ0NsYXNzXT1cInsnYy1mb3JtLWdyb3VwLS1lcnJvcic6IChoYXNFcnJvcnNNZXNzYWdlKCkgfHwgZm9ybUdyb3VwQ2xhc3NlcyA9PT0gJ2MtZm9ybS1ncm91cC0tZXJyb3InKSB9XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWVsZHNldENvbXBvbmVudCgpOyBlbHNlIGlubmVySHRtbFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktZmllbGRzZXRcIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19