@alauda/ui 6.5.9-beta.23 → 6.5.9-beta.24

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 (466) hide show
  1. package/accordion/accordion-item/accordion-item.component.d.ts +1 -1
  2. package/accordion/accordion.component.d.ts +1 -1
  3. package/anchor/anchor.component.d.ts +2 -2
  4. package/anchor/anchor.directive.d.ts +2 -2
  5. package/autocomplete/autocomplete.directive.d.ts +2 -2
  6. package/autocomplete/suggestion/suggestion.component.d.ts +1 -1
  7. package/back-top/back-top.component.d.ts +1 -1
  8. package/breadcrumb/breadcrumb.component.d.ts +1 -1
  9. package/button/button.component.d.ts +1 -1
  10. package/card/card.component.d.ts +1 -1
  11. package/card/helper-directives.d.ts +1 -1
  12. package/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
  13. package/checkbox/checkbox.component.d.ts +1 -1
  14. package/date-picker/calendar/date-picker-panel/component.d.ts +1 -1
  15. package/date-picker/calendar/footer/component.d.ts +1 -1
  16. package/date-picker/calendar/header/component.d.ts +1 -1
  17. package/date-picker/calendar/panel/picker-panel.d.ts +1 -1
  18. package/date-picker/calendar/range-picker-panel/component.d.ts +1 -1
  19. package/date-picker/date-picker/date-picker.component.d.ts +1 -1
  20. package/date-picker/range-picker/range-picker.component.d.ts +1 -1
  21. package/date-picker/trigger/trigger.component.d.ts +1 -1
  22. package/dialog/dialog-content/dialog-close.directive.d.ts +1 -1
  23. package/dialog/dialog-content/dialog-header.component.d.ts +1 -1
  24. package/drawer/component/drawer.component.d.ts +1 -1
  25. package/dropdown/dropdown-active.directive.d.ts +1 -1
  26. package/dropdown/dropdown-button/dropdown-button.component.d.ts +1 -1
  27. package/dropdown/dropdown.directive.d.ts +1 -1
  28. package/dropdown/menu/menu.component.d.ts +1 -1
  29. package/dropdown/menu-item/menu-item.component.d.ts +1 -1
  30. package/dropdown/submenu/submenu.component.d.ts +1 -1
  31. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +73 -0
  32. package/esm2022/accordion/accordion.component.mjs +29 -0
  33. package/{esm2020 → esm2022}/accordion/accordion.module.mjs +11 -11
  34. package/esm2022/anchor/anchor.component.mjs +141 -0
  35. package/esm2022/anchor/anchor.directive.mjs +198 -0
  36. package/{esm2020 → esm2022}/anchor/anchor.module.mjs +11 -11
  37. package/{esm2020 → esm2022}/autocomplete/autocomplete-placeholder.component.mjs +4 -4
  38. package/esm2022/autocomplete/autocomplete.component.mjs +72 -0
  39. package/esm2022/autocomplete/autocomplete.directive.mjs +278 -0
  40. package/{esm2020 → esm2022}/autocomplete/autocomplete.module.mjs +17 -17
  41. package/{esm2020 → esm2022}/autocomplete/helper-directives.mjs +4 -4
  42. package/esm2022/autocomplete/suggestion/suggestion.component.mjs +85 -0
  43. package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +25 -0
  44. package/esm2022/back-top/back-top.component.mjs +68 -0
  45. package/{esm2020 → esm2022}/back-top/back-top.module.mjs +5 -5
  46. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +33 -0
  47. package/esm2022/breadcrumb/breadcrumb.component.mjs +56 -0
  48. package/{esm2020 → esm2022}/breadcrumb/breadcrumb.module.mjs +5 -5
  49. package/{esm2020 → esm2022}/button/button-group/button-group.component.mjs +4 -4
  50. package/esm2022/button/button.component.mjs +124 -0
  51. package/{esm2020 → esm2022}/button/button.module.mjs +5 -5
  52. package/esm2022/card/card.component.mjs +14 -0
  53. package/{esm2020 → esm2022}/card/card.module.mjs +13 -13
  54. package/esm2022/card/helper-directives.mjs +45 -0
  55. package/{esm2020 → esm2022}/card/section.component.mjs +4 -4
  56. package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +60 -0
  57. package/esm2022/checkbox/checkbox.component.mjs +116 -0
  58. package/{esm2020 → esm2022}/checkbox/checkbox.module.mjs +5 -5
  59. package/esm2022/color-picker/color-picker.component.mjs +28 -0
  60. package/{esm2020 → esm2022}/color-picker/color-picker.module.mjs +5 -5
  61. package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +137 -0
  62. package/esm2022/date-picker/calendar/footer/component.mjs +29 -0
  63. package/esm2022/date-picker/calendar/header/component.mjs +99 -0
  64. package/esm2022/date-picker/calendar/panel/picker-panel.mjs +158 -0
  65. package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +210 -0
  66. package/esm2022/date-picker/calendar/util.mjs +152 -0
  67. package/esm2022/date-picker/date-picker/date-picker.component.mjs +115 -0
  68. package/{esm2020 → esm2022}/date-picker/date-picker.module.mjs +35 -35
  69. package/esm2022/date-picker/range-picker/range-picker.component.mjs +88 -0
  70. package/esm2022/date-picker/trigger/trigger.component.mjs +76 -0
  71. package/esm2022/dialog/confirm-dialog/confirm-dialog-config.mjs +13 -0
  72. package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +88 -0
  73. package/esm2022/dialog/dialog-config.mjs +14 -0
  74. package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +42 -0
  75. package/{esm2020 → esm2022}/dialog/dialog-content/dialog-content.component.mjs +5 -5
  76. package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +13 -0
  77. package/esm2022/dialog/dialog-content/dialog-header.component.mjs +42 -0
  78. package/esm2022/dialog/dialog-ref.mjs +52 -0
  79. package/esm2022/dialog/dialog.component.mjs +154 -0
  80. package/{esm2020 → esm2022}/dialog/dialog.module.mjs +22 -22
  81. package/esm2022/dialog/dialog.service.mjs +124 -0
  82. package/esm2022/drawer/component/drawer.component.mjs +248 -0
  83. package/{esm2020 → esm2022}/drawer/component/helper-directives.mjs +10 -10
  84. package/{esm2020 → esm2022}/drawer/drawer.module.mjs +11 -11
  85. package/esm2022/drawer/drawer.service.mjs +47 -0
  86. package/esm2022/dropdown/dropdown-active.directive.mjs +18 -0
  87. package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +50 -0
  88. package/esm2022/dropdown/dropdown.directive.mjs +83 -0
  89. package/{esm2020 → esm2022}/dropdown/dropdown.module.mjs +21 -21
  90. package/{esm2020 → esm2022}/dropdown/helper-directives.mjs +4 -4
  91. package/esm2022/dropdown/menu/menu-content.directive.mjs +59 -0
  92. package/esm2022/dropdown/menu/menu.component.mjs +34 -0
  93. package/{esm2020 → esm2022}/dropdown/menu-group/menu-group.component.mjs +4 -4
  94. package/esm2022/dropdown/menu-item/menu-item.component.mjs +35 -0
  95. package/esm2022/dropdown/submenu/submenu.component.mjs +38 -0
  96. package/esm2022/form/common-form.mjs +88 -0
  97. package/esm2022/form/form-item/form-item.component.mjs +121 -0
  98. package/esm2022/form/form.directive.mjs +70 -0
  99. package/{esm2020 → esm2022}/form/form.module.mjs +17 -17
  100. package/esm2022/form/helper-directives.mjs +78 -0
  101. package/{esm2020 → esm2022}/i18n/i18n.module.mjs +5 -5
  102. package/esm2022/i18n/i18n.pipe.mjs +21 -0
  103. package/esm2022/i18n/i18n.service.mjs +46 -0
  104. package/esm2022/icon/icon-register.service.mjs +75 -0
  105. package/esm2022/icon/icon.component.mjs +74 -0
  106. package/{esm2020 → esm2022}/icon/icon.module.mjs +5 -5
  107. package/{esm2020 → esm2022}/inline-alert/helper-directives.mjs +4 -4
  108. package/esm2022/inline-alert/inline-alert.component.mjs +54 -0
  109. package/{esm2020 → esm2022}/inline-alert/inline-alert.module.mjs +5 -5
  110. package/esm2022/input/autosize.directive.mjs +56 -0
  111. package/esm2022/input/helper-directives.mjs +43 -0
  112. package/esm2022/input/input-group/input-group.component.mjs +46 -0
  113. package/esm2022/input/input.component.mjs +59 -0
  114. package/{esm2020 → esm2022}/input/input.module.mjs +33 -33
  115. package/esm2022/input/number-input/number-input.component.mjs +115 -0
  116. package/esm2022/input/search/search.component.mjs +87 -0
  117. package/esm2022/input/tags-input/tags-input.component.mjs +264 -0
  118. package/esm2022/message/base-message.mjs +99 -0
  119. package/esm2022/message/message-wrapper.component.mjs +15 -0
  120. package/esm2022/message/message.component.mjs +77 -0
  121. package/esm2022/message/message.config.mjs +20 -0
  122. package/{esm2020 → esm2022}/message/message.module.mjs +5 -5
  123. package/{esm2020 → esm2022}/message/message.service.mjs +4 -4
  124. package/esm2022/notification/notification-wrapper.component.mjs +17 -0
  125. package/esm2022/notification/notification.component.mjs +106 -0
  126. package/{esm2020 → esm2022}/notification/notification.module.mjs +5 -5
  127. package/{esm2020 → esm2022}/notification/notification.service.mjs +4 -4
  128. package/esm2022/paginator/paginator-intl.mjs +24 -0
  129. package/esm2022/paginator/paginator.component.mjs +124 -0
  130. package/{esm2020 → esm2022}/paginator/paginator.module.mjs +5 -5
  131. package/esm2022/radio/base-radio.mjs +72 -0
  132. package/esm2022/radio/radio-button/radio-button.component.mjs +41 -0
  133. package/esm2022/radio/radio-group/radio-group.component.mjs +70 -0
  134. package/{esm2020 → esm2022}/radio/radio.component.mjs +5 -5
  135. package/{esm2020 → esm2022}/radio/radio.module.mjs +5 -5
  136. package/{esm2020 → esm2022}/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +13 -14
  137. package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +119 -0
  138. package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +27 -0
  139. package/{esm2020 → esm2022}/scrolling/scrolling.module.mjs +9 -9
  140. package/{esm2020 → esm2022}/scrolling/virtual-for-of.directive.mjs +4 -4
  141. package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +26 -0
  142. package/esm2022/select/base-select.mjs +345 -0
  143. package/{esm2020 → esm2022}/select/helper-directives.mjs +7 -7
  144. package/esm2022/select/multi-select/multi-select.component.mjs +318 -0
  145. package/esm2022/select/option/option.component.mjs +119 -0
  146. package/esm2022/select/option-group/option-group.component.mjs +25 -0
  147. package/{esm2020 → esm2022}/select/option-placeholder.component.mjs +4 -4
  148. package/esm2022/select/select.component.mjs +107 -0
  149. package/{esm2020 → esm2022}/select/select.module.mjs +29 -29
  150. package/esm2022/select/validators.mjs +78 -0
  151. package/esm2022/shared/click-outside.directive.mjs +29 -0
  152. package/{esm2020 → esm2022}/shared/shared.module.mjs +5 -5
  153. package/esm2022/sort/sort-header.component.mjs +74 -0
  154. package/esm2022/sort/sort.directive.mjs +73 -0
  155. package/{esm2020 → esm2022}/sort/sort.module.mjs +5 -5
  156. package/esm2022/status-bar/status-bar.component.mjs +28 -0
  157. package/{esm2020 → esm2022}/status-bar/status-bar.module.mjs +5 -5
  158. package/esm2022/steps/steps.component.mjs +180 -0
  159. package/{esm2020 → esm2022}/steps/steps.module.mjs +5 -5
  160. package/esm2022/switch/switch.component.mjs +43 -0
  161. package/{esm2020 → esm2022}/switch/switch.module.mjs +5 -5
  162. package/esm2022/table/table-cell-def.directive.mjs +25 -0
  163. package/esm2022/table/table-cell.component.mjs +115 -0
  164. package/{esm2020 → esm2022}/table/table-cell.directive.mjs +5 -5
  165. package/esm2022/table/table-column-def.directive.mjs +31 -0
  166. package/esm2022/table/table-header-cell-def.directive.mjs +25 -0
  167. package/{esm2020 → esm2022}/table/table-header-cell.directive.mjs +4 -4
  168. package/esm2022/table/table-header-row-def.directive.mjs +33 -0
  169. package/{esm2020 → esm2022}/table/table-header-row.component.mjs +4 -4
  170. package/esm2022/table/table-placeholder.directive.mjs +33 -0
  171. package/esm2022/table/table-row-def.directive.mjs +34 -0
  172. package/esm2022/table/table-row.component.mjs +43 -0
  173. package/esm2022/table/table-scroll.directive.mjs +133 -0
  174. package/esm2022/table/table.component.mjs +79 -0
  175. package/{esm2020 → esm2022}/table/table.module.mjs +35 -35
  176. package/{esm2020 → esm2022}/table-of-contents/table-of-contents.module.mjs +5 -5
  177. package/esm2022/table-of-contents/toc-container.directive.mjs +111 -0
  178. package/esm2022/table-of-contents/toc-content.directive.mjs +39 -0
  179. package/esm2022/table-of-contents/toc-link.directive.mjs +48 -0
  180. package/esm2022/tabs/tab-body.component.mjs +151 -0
  181. package/esm2022/tabs/tab-context.service.mjs +30 -0
  182. package/esm2022/tabs/tab-group.component.mjs +256 -0
  183. package/esm2022/tabs/tab-header-active-indicator.component.mjs +46 -0
  184. package/esm2022/tabs/tab-header.component.mjs +276 -0
  185. package/esm2022/tabs/tab.component.mjs +77 -0
  186. package/{esm2020 → esm2022}/tabs/tabs.module.mjs +34 -34
  187. package/esm2022/tag/check-tag/check-tag.component.mjs +31 -0
  188. package/esm2022/tag/tag.component.mjs +63 -0
  189. package/{esm2020 → esm2022}/tag/tag.module.mjs +5 -5
  190. package/{esm2020 → esm2022}/theme/theme.module.mjs +5 -5
  191. package/esm2022/theme/theme.pipe.mjs +64 -0
  192. package/esm2022/theme/theme.service.mjs +55 -0
  193. package/esm2022/time-picker/component.mjs +181 -0
  194. package/esm2022/time-picker/panel/panel.component.mjs +240 -0
  195. package/{esm2020 → esm2022}/time-picker/time-picker.module.mjs +23 -23
  196. package/esm2022/tooltip/base-tooltip.mjs +329 -0
  197. package/esm2022/tooltip/tooltip-active.directive.mjs +51 -0
  198. package/esm2022/tooltip/tooltip-copy.directive.mjs +87 -0
  199. package/esm2022/tooltip/tooltip-intl.mjs +21 -0
  200. package/esm2022/tooltip/tooltip.component.mjs +120 -0
  201. package/esm2022/tooltip/tooltip.directive.mjs +44 -0
  202. package/{esm2020 → esm2022}/tooltip/tooltip.module.mjs +8 -8
  203. package/{esm2020 → esm2022}/tree-select/tree-node-placeholder.component.mjs +4 -4
  204. package/esm2022/tree-select/tree-select.component.mjs +350 -0
  205. package/{esm2020 → esm2022}/tree-select/tree-select.module.mjs +9 -9
  206. package/esm2022/utils/bem.mjs +44 -0
  207. package/{fesm2020 → fesm2022}/alauda-ui.mjs +2200 -1860
  208. package/fesm2022/alauda-ui.mjs.map +1 -0
  209. package/form/common-form.d.ts +1 -1
  210. package/form/form-item/form-item.component.d.ts +1 -1
  211. package/form/form.directive.d.ts +1 -1
  212. package/form/helper-directives.d.ts +1 -1
  213. package/icon/icon.component.d.ts +1 -1
  214. package/inline-alert/inline-alert.component.d.ts +1 -1
  215. package/input/autosize.directive.d.ts +1 -1
  216. package/input/input.component.d.ts +1 -1
  217. package/input/number-input/number-input.component.d.ts +1 -1
  218. package/input/search/search.component.d.ts +1 -1
  219. package/input/tags-input/tags-input.component.d.ts +1 -1
  220. package/package.json +11 -17
  221. package/paginator/paginator.component.d.ts +1 -1
  222. package/radio/base-radio.d.ts +1 -1
  223. package/radio/radio-group/radio-group.component.d.ts +1 -1
  224. package/scrolling/fixed-size-table-virtual-scroll.directive.d.ts +1 -1
  225. package/scrolling/virtual-for-of.directive.d.ts +1 -1
  226. package/select/base-select.d.ts +1 -1
  227. package/select/multi-select/multi-select.component.d.ts +1 -1
  228. package/select/option/option.component.d.ts +1 -1
  229. package/select/validators.d.ts +1 -1
  230. package/sort/sort-header.component.d.ts +1 -1
  231. package/sort/sort.directive.d.ts +1 -1
  232. package/status-bar/status-bar.component.d.ts +1 -1
  233. package/steps/steps.component.d.ts +1 -1
  234. package/switch/switch.component.d.ts +1 -1
  235. package/table/table-cell.component.d.ts +2 -2
  236. package/table/table-cell.directive.d.ts +1 -1
  237. package/table/table-column-def.directive.d.ts +1 -1
  238. package/table/table-header-row-def.directive.d.ts +1 -1
  239. package/table/table-row-def.directive.d.ts +1 -1
  240. package/table/table-row.component.d.ts +1 -1
  241. package/table/table-scroll.directive.d.ts +2 -2
  242. package/table/table.component.d.ts +1 -1
  243. package/table-of-contents/toc-content.directive.d.ts +1 -1
  244. package/table-of-contents/toc-link.directive.d.ts +1 -1
  245. package/tabs/tab-body.component.d.ts +2 -2
  246. package/tabs/tab-group.component.d.ts +1 -1
  247. package/tabs/tab-header-active-indicator.component.d.ts +1 -1
  248. package/tabs/tab-header.component.d.ts +1 -1
  249. package/tabs/tab.component.d.ts +1 -1
  250. package/tag/check-tag/check-tag.component.d.ts +1 -1
  251. package/tag/tag.component.d.ts +1 -1
  252. package/time-picker/component.d.ts +1 -1
  253. package/time-picker/panel/panel.component.d.ts +1 -1
  254. package/tooltip/tooltip-active.directive.d.ts +1 -1
  255. package/tooltip/tooltip-copy.directive.d.ts +1 -1
  256. package/tooltip/tooltip.directive.d.ts +1 -1
  257. package/tree-select/tree-select.component.d.ts +2 -2
  258. package/esm2020/accordion/accordion-item/accordion-item.component.mjs +0 -71
  259. package/esm2020/accordion/accordion.component.mjs +0 -27
  260. package/esm2020/anchor/anchor.component.mjs +0 -137
  261. package/esm2020/anchor/anchor.directive.mjs +0 -182
  262. package/esm2020/autocomplete/autocomplete.component.mjs +0 -64
  263. package/esm2020/autocomplete/autocomplete.directive.mjs +0 -277
  264. package/esm2020/autocomplete/suggestion/suggestion.component.mjs +0 -79
  265. package/esm2020/autocomplete/suggestion-group/suggestion-group.component.mjs +0 -23
  266. package/esm2020/back-top/back-top.component.mjs +0 -65
  267. package/esm2020/breadcrumb/breadcrumb-item.component.mjs +0 -32
  268. package/esm2020/breadcrumb/breadcrumb.component.mjs +0 -57
  269. package/esm2020/button/button.component.mjs +0 -121
  270. package/esm2020/card/card.component.mjs +0 -16
  271. package/esm2020/card/helper-directives.mjs +0 -47
  272. package/esm2020/checkbox/checkbox-group/checkbox-group.component.mjs +0 -61
  273. package/esm2020/checkbox/checkbox.component.mjs +0 -112
  274. package/esm2020/color-picker/color-picker.component.mjs +0 -28
  275. package/esm2020/date-picker/calendar/date-picker-panel/component.mjs +0 -128
  276. package/esm2020/date-picker/calendar/footer/component.mjs +0 -29
  277. package/esm2020/date-picker/calendar/header/component.mjs +0 -99
  278. package/esm2020/date-picker/calendar/panel/picker-panel.mjs +0 -151
  279. package/esm2020/date-picker/calendar/range-picker-panel/component.mjs +0 -207
  280. package/esm2020/date-picker/calendar/util.mjs +0 -145
  281. package/esm2020/date-picker/date-picker/date-picker.component.mjs +0 -110
  282. package/esm2020/date-picker/range-picker/range-picker.component.mjs +0 -86
  283. package/esm2020/date-picker/trigger/trigger.component.mjs +0 -69
  284. package/esm2020/dialog/confirm-dialog/confirm-dialog-config.mjs +0 -12
  285. package/esm2020/dialog/confirm-dialog/confirm-dialog.component.mjs +0 -85
  286. package/esm2020/dialog/dialog-config.mjs +0 -15
  287. package/esm2020/dialog/dialog-content/dialog-close.directive.mjs +0 -38
  288. package/esm2020/dialog/dialog-content/dialog-footer.component.mjs +0 -15
  289. package/esm2020/dialog/dialog-content/dialog-header.component.mjs +0 -39
  290. package/esm2020/dialog/dialog-ref.mjs +0 -48
  291. package/esm2020/dialog/dialog.component.mjs +0 -147
  292. package/esm2020/dialog/dialog.service.mjs +0 -120
  293. package/esm2020/drawer/component/drawer.component.mjs +0 -229
  294. package/esm2020/drawer/drawer.service.mjs +0 -44
  295. package/esm2020/dropdown/dropdown-active.directive.mjs +0 -21
  296. package/esm2020/dropdown/dropdown-button/dropdown-button.component.mjs +0 -51
  297. package/esm2020/dropdown/dropdown.directive.mjs +0 -81
  298. package/esm2020/dropdown/menu/menu-content.directive.mjs +0 -51
  299. package/esm2020/dropdown/menu/menu.component.mjs +0 -33
  300. package/esm2020/dropdown/menu-item/menu-item.component.mjs +0 -37
  301. package/esm2020/dropdown/submenu/submenu.component.mjs +0 -40
  302. package/esm2020/form/common-form.mjs +0 -84
  303. package/esm2020/form/form-item/form-item.component.mjs +0 -108
  304. package/esm2020/form/form.directive.mjs +0 -69
  305. package/esm2020/form/helper-directives.mjs +0 -80
  306. package/esm2020/i18n/i18n.pipe.mjs +0 -20
  307. package/esm2020/i18n/i18n.service.mjs +0 -43
  308. package/esm2020/icon/icon-register.service.mjs +0 -73
  309. package/esm2020/icon/icon.component.mjs +0 -65
  310. package/esm2020/inline-alert/inline-alert.component.mjs +0 -53
  311. package/esm2020/input/autosize.directive.mjs +0 -54
  312. package/esm2020/input/helper-directives.mjs +0 -43
  313. package/esm2020/input/input-group/input-group.component.mjs +0 -39
  314. package/esm2020/input/input.component.mjs +0 -57
  315. package/esm2020/input/number-input/number-input.component.mjs +0 -112
  316. package/esm2020/input/search/search.component.mjs +0 -88
  317. package/esm2020/input/tags-input/tags-input.component.mjs +0 -255
  318. package/esm2020/message/base-message.mjs +0 -90
  319. package/esm2020/message/message-wrapper.component.mjs +0 -14
  320. package/esm2020/message/message.component.mjs +0 -70
  321. package/esm2020/message/message.config.mjs +0 -16
  322. package/esm2020/notification/notification-wrapper.component.mjs +0 -16
  323. package/esm2020/notification/notification.component.mjs +0 -103
  324. package/esm2020/paginator/paginator-intl.mjs +0 -26
  325. package/esm2020/paginator/paginator.component.mjs +0 -117
  326. package/esm2020/radio/base-radio.mjs +0 -67
  327. package/esm2020/radio/radio-button/radio-button.component.mjs +0 -41
  328. package/esm2020/radio/radio-group/radio-group.component.mjs +0 -73
  329. package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +0 -119
  330. package/esm2020/scrolling/fixed-size-virtual-scroll.directive.mjs +0 -27
  331. package/esm2020/scrolling/virtual-scroll-viewport.component.mjs +0 -26
  332. package/esm2020/select/base-select.mjs +0 -334
  333. package/esm2020/select/multi-select/multi-select.component.mjs +0 -310
  334. package/esm2020/select/option/option.component.mjs +0 -112
  335. package/esm2020/select/option-group/option-group.component.mjs +0 -23
  336. package/esm2020/select/select.component.mjs +0 -107
  337. package/esm2020/select/validators.mjs +0 -75
  338. package/esm2020/shared/click-outside.directive.mjs +0 -28
  339. package/esm2020/sort/sort-header.component.mjs +0 -68
  340. package/esm2020/sort/sort.directive.mjs +0 -74
  341. package/esm2020/status-bar/status-bar.component.mjs +0 -29
  342. package/esm2020/steps/steps.component.mjs +0 -180
  343. package/esm2020/switch/switch.component.mjs +0 -46
  344. package/esm2020/table/table-cell-def.directive.mjs +0 -25
  345. package/esm2020/table/table-cell.component.mjs +0 -121
  346. package/esm2020/table/table-column-def.directive.mjs +0 -31
  347. package/esm2020/table/table-header-cell-def.directive.mjs +0 -25
  348. package/esm2020/table/table-header-row-def.directive.mjs +0 -35
  349. package/esm2020/table/table-placeholder.directive.mjs +0 -30
  350. package/esm2020/table/table-row-def.directive.mjs +0 -37
  351. package/esm2020/table/table-row.component.mjs +0 -42
  352. package/esm2020/table/table-scroll.directive.mjs +0 -133
  353. package/esm2020/table/table.component.mjs +0 -76
  354. package/esm2020/table-of-contents/toc-container.directive.mjs +0 -109
  355. package/esm2020/table-of-contents/toc-content.directive.mjs +0 -35
  356. package/esm2020/table-of-contents/toc-link.directive.mjs +0 -44
  357. package/esm2020/tabs/tab-body.component.mjs +0 -147
  358. package/esm2020/tabs/tab-context.service.mjs +0 -28
  359. package/esm2020/tabs/tab-group.component.mjs +0 -246
  360. package/esm2020/tabs/tab-header-active-indicator.component.mjs +0 -44
  361. package/esm2020/tabs/tab-header.component.mjs +0 -264
  362. package/esm2020/tabs/tab.component.mjs +0 -71
  363. package/esm2020/tag/check-tag/check-tag.component.mjs +0 -33
  364. package/esm2020/tag/tag.component.mjs +0 -65
  365. package/esm2020/theme/theme.pipe.mjs +0 -69
  366. package/esm2020/theme/theme.service.mjs +0 -52
  367. package/esm2020/time-picker/component.mjs +0 -179
  368. package/esm2020/time-picker/panel/panel.component.mjs +0 -228
  369. package/esm2020/tooltip/base-tooltip.mjs +0 -318
  370. package/esm2020/tooltip/tooltip-active.directive.mjs +0 -49
  371. package/esm2020/tooltip/tooltip-copy.directive.mjs +0 -82
  372. package/esm2020/tooltip/tooltip-intl.mjs +0 -23
  373. package/esm2020/tooltip/tooltip.component.mjs +0 -107
  374. package/esm2020/tooltip/tooltip.directive.mjs +0 -47
  375. package/esm2020/tree-select/tree-select.component.mjs +0 -339
  376. package/esm2020/utils/bem.mjs +0 -43
  377. package/fesm2015/alauda-ui.mjs +0 -11663
  378. package/fesm2015/alauda-ui.mjs.map +0 -1
  379. package/fesm2020/alauda-ui.mjs.map +0 -1
  380. /package/{esm2020 → esm2022}/accordion/index.mjs +0 -0
  381. /package/{esm2020 → esm2022}/alauda-ui.mjs +0 -0
  382. /package/{esm2020 → esm2022}/anchor/index.mjs +0 -0
  383. /package/{esm2020 → esm2022}/anchor/types.mjs +0 -0
  384. /package/{esm2020 → esm2022}/anchor/utils.mjs +0 -0
  385. /package/{esm2020 → esm2022}/autocomplete/autocomplete.types.mjs +0 -0
  386. /package/{esm2020 → esm2022}/autocomplete/index.mjs +0 -0
  387. /package/{esm2020 → esm2022}/back-top/index.mjs +0 -0
  388. /package/{esm2020 → esm2022}/breadcrumb/index.mjs +0 -0
  389. /package/{esm2020 → esm2022}/button/button.types.mjs +0 -0
  390. /package/{esm2020 → esm2022}/button/index.mjs +0 -0
  391. /package/{esm2020 → esm2022}/card/index.mjs +0 -0
  392. /package/{esm2020 → esm2022}/checkbox/index.mjs +0 -0
  393. /package/{esm2020 → esm2022}/color-picker/index.mjs +0 -0
  394. /package/{esm2020 → esm2022}/core/animation/animation-consts.mjs +0 -0
  395. /package/{esm2020 → esm2022}/date-picker/calendar/constant.mjs +0 -0
  396. /package/{esm2020 → esm2022}/date-picker/date-picker.type.mjs +0 -0
  397. /package/{esm2020 → esm2022}/date-picker/index.mjs +0 -0
  398. /package/{esm2020 → esm2022}/dialog/dialog-animations.mjs +0 -0
  399. /package/{esm2020 → esm2022}/dialog/dialog.types.mjs +0 -0
  400. /package/{esm2020 → esm2022}/dialog/index.mjs +0 -0
  401. /package/{esm2020 → esm2022}/dialog/utils/errors.mjs +0 -0
  402. /package/{esm2020 → esm2022}/dialog/utils/index.mjs +0 -0
  403. /package/{esm2020 → esm2022}/drawer/component/drawer-ref.mjs +0 -0
  404. /package/{esm2020 → esm2022}/drawer/index.mjs +0 -0
  405. /package/{esm2020 → esm2022}/dropdown/dropdown.types.mjs +0 -0
  406. /package/{esm2020 → esm2022}/dropdown/index.mjs +0 -0
  407. /package/{esm2020 → esm2022}/form/form.types.mjs +0 -0
  408. /package/{esm2020 → esm2022}/form/index.mjs +0 -0
  409. /package/{esm2020 → esm2022}/i18n/i18n.type.mjs +0 -0
  410. /package/{esm2020 → esm2022}/i18n/index.mjs +0 -0
  411. /package/{esm2020 → esm2022}/i18n/language/en.mjs +0 -0
  412. /package/{esm2020 → esm2022}/i18n/language/zh.mjs +0 -0
  413. /package/{esm2020 → esm2022}/icon/icons.mjs +0 -0
  414. /package/{esm2020 → esm2022}/icon/index.mjs +0 -0
  415. /package/{esm2020 → esm2022}/icon/utils.mjs +0 -0
  416. /package/{esm2020 → esm2022}/index.mjs +0 -0
  417. /package/{esm2020 → esm2022}/inline-alert/index.mjs +0 -0
  418. /package/{esm2020 → esm2022}/inline-alert/inline-alert.types.mjs +0 -0
  419. /package/{esm2020 → esm2022}/input/index.mjs +0 -0
  420. /package/{esm2020 → esm2022}/input/tags-input/with-max-row-count.mjs +0 -0
  421. /package/{esm2020 → esm2022}/input/utils/index.mjs +0 -0
  422. /package/{esm2020 → esm2022}/message/index.mjs +0 -0
  423. /package/{esm2020 → esm2022}/message/message-animations.mjs +0 -0
  424. /package/{esm2020 → esm2022}/notification/index.mjs +0 -0
  425. /package/{esm2020 → esm2022}/notification/notification.config.mjs +0 -0
  426. /package/{esm2020 → esm2022}/paginator/index.mjs +0 -0
  427. /package/{esm2020 → esm2022}/radio/index.mjs +0 -0
  428. /package/{esm2020 → esm2022}/radio/radio.types.mjs +0 -0
  429. /package/{esm2020 → esm2022}/scrolling/index.mjs +0 -0
  430. /package/{esm2020 → esm2022}/select/index.mjs +0 -0
  431. /package/{esm2020 → esm2022}/select/select.types.mjs +0 -0
  432. /package/{esm2020 → esm2022}/sort/index.mjs +0 -0
  433. /package/{esm2020 → esm2022}/sort/sort-errors.mjs +0 -0
  434. /package/{esm2020 → esm2022}/sort/sort.types.mjs +0 -0
  435. /package/{esm2020 → esm2022}/status-bar/index.mjs +0 -0
  436. /package/{esm2020 → esm2022}/status-bar/status-bar.types.mjs +0 -0
  437. /package/{esm2020 → esm2022}/steps/index.mjs +0 -0
  438. /package/{esm2020 → esm2022}/steps/types.mjs +0 -0
  439. /package/{esm2020 → esm2022}/switch/index.mjs +0 -0
  440. /package/{esm2020 → esm2022}/table/index.mjs +0 -0
  441. /package/{esm2020 → esm2022}/table-of-contents/index.mjs +0 -0
  442. /package/{esm2020 → esm2022}/tabs/index.mjs +0 -0
  443. /package/{esm2020 → esm2022}/tabs/tabs.types.mjs +0 -0
  444. /package/{esm2020 → esm2022}/tag/index.mjs +0 -0
  445. /package/{esm2020 → esm2022}/tag/tag.types.mjs +0 -0
  446. /package/{esm2020 → esm2022}/theme/index.mjs +0 -0
  447. /package/{esm2020 → esm2022}/theme/theme.types.mjs +0 -0
  448. /package/{esm2020 → esm2022}/theme/utils.mjs +0 -0
  449. /package/{esm2020 → esm2022}/time-picker/constant.mjs +0 -0
  450. /package/{esm2020 → esm2022}/time-picker/index.mjs +0 -0
  451. /package/{esm2020 → esm2022}/time-picker/time-picker.type.mjs +0 -0
  452. /package/{esm2020 → esm2022}/tooltip/index.mjs +0 -0
  453. /package/{esm2020 → esm2022}/tooltip/tooltip.types.mjs +0 -0
  454. /package/{esm2020 → esm2022}/tooltip/utils/index.mjs +0 -0
  455. /package/{esm2020 → esm2022}/tree-select/index.mjs +0 -0
  456. /package/{esm2020 → esm2022}/tree-select/tree-select.types.mjs +0 -0
  457. /package/{esm2020 → esm2022}/types.mjs +0 -0
  458. /package/{esm2020 → esm2022}/utils/animations.mjs +0 -0
  459. /package/{esm2020 → esm2022}/utils/async.mjs +0 -0
  460. /package/{esm2020 → esm2022}/utils/coercion.mjs +0 -0
  461. /package/{esm2020 → esm2022}/utils/fn.mjs +0 -0
  462. /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
  463. /package/{esm2020 → esm2022}/utils/observe-dom.mjs +0 -0
  464. /package/{esm2020 → esm2022}/utils/operators.mjs +0 -0
  465. /package/{esm2020 → esm2022}/utils/scroll-into-view.mjs +0 -0
  466. /package/{esm2020 → esm2022}/utils/watch-content-exist.mjs +0 -0
@@ -0,0 +1,350 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewChildren, ViewEncapsulation, forwardRef, } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { BehaviorSubject, combineLatest, map, of, startWith, Subject, switchMap, takeUntil, tap, } from 'rxjs';
4
+ import { CommonFormControl } from '../form';
5
+ import { buildBem, coerceAttrBoolean, coerceString, publishRef, scrollIntoView, } from '../utils';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "../tooltip/tooltip.directive";
9
+ import * as i3 from "../icon/icon.component";
10
+ import * as i4 from "../input/input.component";
11
+ import * as i5 from "../input/input-group/input-group.component";
12
+ import * as i6 from "../input/helper-directives";
13
+ export class TreeSelectComponent extends CommonFormControl {
14
+ get nodesData() {
15
+ return this._nodesData;
16
+ }
17
+ set nodesData(val) {
18
+ if (!val || val === this._nodesData) {
19
+ return;
20
+ }
21
+ this._nodesData = val;
22
+ this.flattedNodes = this.flatNodesData(val);
23
+ this.updateSelectDisplay(this.model);
24
+ }
25
+ loading = false;
26
+ placeholder = '';
27
+ get filterable() {
28
+ return this._filterable;
29
+ }
30
+ set filterable(val) {
31
+ this._filterable = coerceAttrBoolean(val);
32
+ }
33
+ get clearable() {
34
+ return this._clearable;
35
+ }
36
+ set clearable(val) {
37
+ this._clearable = coerceAttrBoolean(val);
38
+ }
39
+ get leafOnly() {
40
+ return this._leafOnly;
41
+ }
42
+ set leafOnly(val) {
43
+ this._leafOnly = coerceAttrBoolean(val);
44
+ }
45
+ filterFn = this._filterFn;
46
+ trackFn = this._trackFn;
47
+ labelFn;
48
+ filterChange = new EventEmitter();
49
+ show = new EventEmitter();
50
+ hide = new EventEmitter();
51
+ selectRef;
52
+ tooltipRef;
53
+ nodeListRef;
54
+ inputRef;
55
+ _nodesData = [];
56
+ _filterString = '';
57
+ _filterable = false;
58
+ _clearable = false;
59
+ _leafOnly = false;
60
+ filterString$$ = new BehaviorSubject(this.filterString);
61
+ filterString$ = this.filterString$$.asObservable();
62
+ containerWidth;
63
+ displayText = '';
64
+ flattedNodes = [];
65
+ get isClearable() {
66
+ return !this.disabled && this.clearable && this.getInputValue();
67
+ }
68
+ get opened() {
69
+ return this.tooltipRef.isCreated;
70
+ }
71
+ get inputReadonly() {
72
+ return !(this.filterable && this.opened);
73
+ }
74
+ get filterString() {
75
+ return this._filterString;
76
+ }
77
+ set filterString(val) {
78
+ if (val !== this._filterString) {
79
+ this._filterString = val;
80
+ this.filterString$$.next(val);
81
+ this.filterChange.emit(val);
82
+ }
83
+ }
84
+ updatePosition() {
85
+ this.tooltipRef.updatePosition();
86
+ }
87
+ onVisibleNodes(visible) {
88
+ if (visible) {
89
+ this.containerWidth = this.selectRef.nativeElement.offsetWidth + 'px';
90
+ this.show.emit();
91
+ this.cdr.detectChanges();
92
+ }
93
+ else {
94
+ if (this.onTouched) {
95
+ this.onTouched();
96
+ }
97
+ this.filterString = '';
98
+ this.hide.emit();
99
+ }
100
+ }
101
+ onInput(event) {
102
+ const value = event.target.value;
103
+ this.filterString = value;
104
+ this.cdr.markForCheck();
105
+ }
106
+ onNodeClick(node) {
107
+ this.selectNode(node);
108
+ }
109
+ getVisibleNodeCount() {
110
+ return this.flattedNodes.filter(node => this.filterFn(this.filterString, node)).length;
111
+ }
112
+ selectNode(node) {
113
+ if (!node.selected) {
114
+ this.emitValue(node.nodeData.value);
115
+ if (this.onChange) {
116
+ this.closeOption();
117
+ }
118
+ }
119
+ }
120
+ onKeyDown(event) {
121
+ if (event.key === 'Escape') {
122
+ this.closeOption();
123
+ event.stopPropagation();
124
+ event.preventDefault();
125
+ }
126
+ }
127
+ openOption() {
128
+ this.tooltipRef.show();
129
+ }
130
+ closeOption() {
131
+ this.inputRef.elementRef.nativeElement.value = this.displayText;
132
+ this.tooltipRef.hide();
133
+ }
134
+ updateSelectDisplay(value) {
135
+ const pickedNode = this.flattedNodes.find(node => this.trackFn(node.value) === this.trackFn(value));
136
+ this.displayText = pickedNode
137
+ ? this.getLabelFromNode(pickedNode).toString()
138
+ : coerceString(this.trackFn(value));
139
+ }
140
+ clearValue(event) {
141
+ this.emitValue(null);
142
+ event.stopPropagation();
143
+ event.preventDefault();
144
+ }
145
+ valueIn(v) {
146
+ this.updateSelectDisplay(v);
147
+ this.closeOption();
148
+ return v;
149
+ }
150
+ getPlaceholder() {
151
+ return this.filterable && this.opened ? this.displayText : this.placeholder;
152
+ }
153
+ getInputValue() {
154
+ return this.filterable && this.opened ? '' : this.displayText;
155
+ }
156
+ trackByLabel = (_, node) => this.getLabelFromNode(node);
157
+ flatNodesData(nodes = []) {
158
+ return nodes.reduce((prevValue, currentNode) => prevValue.concat(currentNode, this.flatNodesData(currentNode.children)), []);
159
+ }
160
+ getLabelFromNode(node) {
161
+ return (this.labelFn?.(node.value) ||
162
+ node.label ||
163
+ coerceString(this.trackFn(node.value)));
164
+ }
165
+ _filterFn(filterString, node) {
166
+ return this.getLabelFromNode(node)?.includes(filterString ?? '');
167
+ }
168
+ _trackFn(value) {
169
+ return value;
170
+ }
171
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: TreeSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
172
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: TreeSelectComponent, selector: "aui-tree-select", inputs: { nodesData: "nodesData", loading: "loading", placeholder: "placeholder", filterable: "filterable", clearable: "clearable", leafOnly: "leafOnly", filterFn: "filterFn", trackFn: "trackFn", labelFn: "labelFn" }, outputs: { filterChange: "filterChange", show: "show", hide: "hide" }, providers: [
173
+ {
174
+ provide: NG_VALUE_ACCESSOR,
175
+ useExisting: forwardRef(() => TreeSelectComponent),
176
+ multi: true,
177
+ },
178
+ ], viewQueries: [{ propertyName: "selectRef", first: true, predicate: ["selectRef"], descendants: true, static: true }, { propertyName: "tooltipRef", first: true, predicate: ["tooltipRef"], descendants: true, static: true }, { propertyName: "nodeListRef", first: true, predicate: ["nodeListRef"], descendants: true, static: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"aui-tree-select\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n [auiDisableAnimation]=\"true\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleNodes($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-tree-select__input\"\n autocomplete=\"off\"\n aui-input\n [value]=\"getInputValue()\"\n [disabled]=\"disabled\"\n [placeholder]=\"getPlaceholder()\"\n [readonly]=\"inputReadonly\"\n (input)=\"onInput($event)\"\n (blur)=\"closeOption()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <span\n auiInputSuffix\n class=\"aui-tree-select__icon-container\"\n >\n <aui-icon\n class=\"aui-tree-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-tree-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-tree-node-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #nodeListRef\n class=\"aui-tree-node-container__content\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodesData; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n <div\n *ngIf=\"!getVisibleNodeCount()\"\n class=\"aui-tree-node-container__placeholder\"\n >\n <ng-content select=\"aui-tree-node-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-tree-node-container{padding:8px 0;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10);position:relative;overflow:auto}.aui-tree-node-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-tree-node-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-tree-node-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-tree-node-container__content .divider{border:none;border-top:1px solid rgb(var(--aui-color-n-8))}.aui-tree-node-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-tree-node-container--small .aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-tree-node-container--small .aui-tree-node-container__placeholder{font-size:var(--aui-font-size-s)}.aui-tree-select{display:inline-block;position:relative;width:100%}.aui-tree-select__icon-container{display:block;position:relative}.aui-tree-select.isDisabled .aui-tree-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-tree-select__clear{display:none}.aui-tree-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-tree-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__indicator{display:none}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__clear{display:flex}.aui-tree-select:not(.isDisabled):hover .aui-input{border-color:rgb(var(--aui-color-primary))}.aui-tree-select__input.aui-input[readonly]:not([disabled]){background-color:rgb(var(--aui-color-n-9));cursor:text}aui-tree-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-tree-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.TooltipDirective; }), selector: "[auiTooltip]", inputs: ["auiTooltip", "auiTooltipContext", "auiTooltipClass", "auiTooltipType", "auiTooltipPosition", "auiTooltipTrigger", "auiTooltipDisabled", "auiTooltipHideOnClick", "auiDisableAnimation"], outputs: ["auiTooltipVisibleChange"], exportAs: ["auiTooltip"] }, { kind: "component", type: i0.forwardRef(function () { return i3.IconComponent; }), selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "component", type: i0.forwardRef(function () { return i4.InputComponent; }), selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }, { kind: "component", type: i0.forwardRef(function () { return i5.InputGroupComponent; }), selector: "aui-input-group" }, { kind: "directive", type: i0.forwardRef(function () { return i6.InputSuffixDirective; }), selector: "[auiInputSuffix]" }, { kind: "component", type: i0.forwardRef(function () { return TreeNodeComponent; }), selector: "aui-tree-node", inputs: ["nodeData", "leafOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
179
+ }
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: TreeSelectComponent, decorators: [{
181
+ type: Component,
182
+ args: [{ selector: 'aui-tree-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, providers: [
183
+ {
184
+ provide: NG_VALUE_ACCESSOR,
185
+ useExisting: forwardRef(() => TreeSelectComponent),
186
+ multi: true,
187
+ },
188
+ ], template: "<div\n class=\"aui-tree-select\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n [auiDisableAnimation]=\"true\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleNodes($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-tree-select__input\"\n autocomplete=\"off\"\n aui-input\n [value]=\"getInputValue()\"\n [disabled]=\"disabled\"\n [placeholder]=\"getPlaceholder()\"\n [readonly]=\"inputReadonly\"\n (input)=\"onInput($event)\"\n (blur)=\"closeOption()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <span\n auiInputSuffix\n class=\"aui-tree-select__icon-container\"\n >\n <aui-icon\n class=\"aui-tree-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-tree-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-tree-node-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #nodeListRef\n class=\"aui-tree-node-container__content\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodesData; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n <div\n *ngIf=\"!getVisibleNodeCount()\"\n class=\"aui-tree-node-container__placeholder\"\n >\n <ng-content select=\"aui-tree-node-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-tree-node-container{padding:8px 0;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10);position:relative;overflow:auto}.aui-tree-node-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-tree-node-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-tree-node-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-tree-node-container__content .divider{border:none;border-top:1px solid rgb(var(--aui-color-n-8))}.aui-tree-node-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-tree-node-container--small .aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-tree-node-container--small .aui-tree-node-container__placeholder{font-size:var(--aui-font-size-s)}.aui-tree-select{display:inline-block;position:relative;width:100%}.aui-tree-select__icon-container{display:block;position:relative}.aui-tree-select.isDisabled .aui-tree-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-tree-select__clear{display:none}.aui-tree-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-tree-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__indicator{display:none}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__clear{display:flex}.aui-tree-select:not(.isDisabled):hover .aui-input{border-color:rgb(var(--aui-color-primary))}.aui-tree-select__input.aui-input[readonly]:not([disabled]){background-color:rgb(var(--aui-color-n-9));cursor:text}aui-tree-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-tree-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"] }]
189
+ }], propDecorators: { nodesData: [{
190
+ type: Input
191
+ }], loading: [{
192
+ type: Input
193
+ }], placeholder: [{
194
+ type: Input
195
+ }], filterable: [{
196
+ type: Input
197
+ }], clearable: [{
198
+ type: Input
199
+ }], leafOnly: [{
200
+ type: Input
201
+ }], filterFn: [{
202
+ type: Input
203
+ }], trackFn: [{
204
+ type: Input
205
+ }], labelFn: [{
206
+ type: Input
207
+ }], filterChange: [{
208
+ type: Output
209
+ }], show: [{
210
+ type: Output
211
+ }], hide: [{
212
+ type: Output
213
+ }], selectRef: [{
214
+ type: ViewChild,
215
+ args: ['selectRef', { static: true }]
216
+ }], tooltipRef: [{
217
+ type: ViewChild,
218
+ args: ['tooltipRef', { static: true }]
219
+ }], nodeListRef: [{
220
+ type: ViewChild,
221
+ args: ['nodeListRef', { static: true }]
222
+ }], inputRef: [{
223
+ type: ViewChild,
224
+ args: ['inputRef', { static: true }]
225
+ }] } });
226
+ export class TreeNodeComponent {
227
+ cdr;
228
+ bem = buildBem('aui-tree-node');
229
+ _nodeData;
230
+ nodeData$$ = new BehaviorSubject(this.nodeData);
231
+ destroy$$ = new Subject();
232
+ get nodeData() {
233
+ return this._nodeData;
234
+ }
235
+ set nodeData(val) {
236
+ if (val === this._nodeData) {
237
+ return;
238
+ }
239
+ this._nodeData = val;
240
+ this.nodeData$$.next(val);
241
+ }
242
+ get leafOnly() {
243
+ return this._leafOnly;
244
+ }
245
+ set leafOnly(val) {
246
+ this._leafOnly = coerceAttrBoolean(val);
247
+ }
248
+ titleRef;
249
+ childNodes;
250
+ selected = false;
251
+ visible = true;
252
+ isLeaf = false;
253
+ _leafOnly = true;
254
+ select;
255
+ selected$;
256
+ selfVisible$;
257
+ visible$;
258
+ constructor(select, cdr) {
259
+ this.cdr = cdr;
260
+ this.select = select;
261
+ this.selected$ = combineLatest([
262
+ this.select.model$,
263
+ this.nodeData$$.pipe(map(data => data.value)),
264
+ ]).pipe(map(([selectValue, selfValue]) => selectValue &&
265
+ this.select.trackFn(selectValue) === this.select.trackFn(selfValue)), tap(selected => {
266
+ this.selected = selected;
267
+ }), publishRef());
268
+ this.selfVisible$ = combineLatest([
269
+ this.select.filterString$,
270
+ this.nodeData$$,
271
+ ]).pipe(map(([filterString, nodeData]) => this.select.filterFn(filterString, nodeData)), publishRef());
272
+ }
273
+ ngAfterViewInit() {
274
+ const hasVisibleChildNodes$ = this.childNodes.changes.pipe(startWith(this.childNodes), switchMap((nodes) => nodes.length > 0
275
+ ? combineLatest(nodes.map(node => node.visible$))
276
+ : of([false])), map(visible => visible.some(Boolean)), tap(hasVisibleChildren => (this.isLeaf = !hasVisibleChildren)));
277
+ this.visible$ = combineLatest([
278
+ this.selfVisible$,
279
+ hasVisibleChildNodes$,
280
+ ]).pipe(map(visible => visible.some(Boolean)), publishRef());
281
+ this.visible$.pipe(takeUntil(this.destroy$$)).subscribe(visible => {
282
+ this.visible = visible;
283
+ this.cdr.markForCheck();
284
+ });
285
+ this.selected$.pipe(takeUntil(this.destroy$$)).subscribe(selected => {
286
+ this.selected = selected;
287
+ this.cdr.markForCheck();
288
+ });
289
+ if (this.selected) {
290
+ requestAnimationFrame(() => {
291
+ this.scrollToNode(this);
292
+ });
293
+ }
294
+ }
295
+ ngOnDestroy() {
296
+ this.destroy$$.next();
297
+ this.destroy$$.complete();
298
+ }
299
+ onClick() {
300
+ if (this.nodeData.disabled || this.nodeData.loading) {
301
+ return;
302
+ }
303
+ if (this.leafOnly && !this.isLeaf) {
304
+ this.switchExpanded();
305
+ return;
306
+ }
307
+ this.select.onNodeClick(this);
308
+ }
309
+ switchExpanded() {
310
+ this.nodeData.expanded = !this.nodeData.expanded;
311
+ if (this.nodeData.expanded && this.childNodes.last) {
312
+ requestAnimationFrame(() => {
313
+ this.scrollToNode(this.childNodes.last);
314
+ });
315
+ }
316
+ requestAnimationFrame(() => {
317
+ this.select.updatePosition();
318
+ });
319
+ }
320
+ getIcon() {
321
+ return this.nodeData.expanded
322
+ ? this.nodeData.expandedIcon || this.nodeData.icon
323
+ : this.nodeData.icon;
324
+ }
325
+ trackByLabel(_, data) {
326
+ return data.label;
327
+ }
328
+ scrollToNode(node) {
329
+ if (this.select.nodeListRef) {
330
+ scrollIntoView(this.select.nodeListRef.nativeElement, node.titleRef.nativeElement);
331
+ }
332
+ }
333
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: TreeNodeComponent, deps: [{ token: TreeSelectComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
334
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: TreeNodeComponent, selector: "aui-tree-node", inputs: { nodeData: "nodeData", leafOnly: "leafOnly" }, viewQueries: [{ propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, static: true }, { propertyName: "childNodes", predicate: i0.forwardRef(function () { return TreeNodeComponent; }), descendants: true }], ngImport: i0, template: "<div\n [hidden]=\"!visible\"\n class=\"aui-tree-node\"\n [class.isDisabled]=\"nodeData.disabled\"\n [class.isSelected]=\"selected\"\n [attr.data-value]=\"nodeData.value\"\n>\n <div\n class=\"aui-tree-node__content\"\n [class.isLeftOnly]=\"leafOnly && !isLeaf && !nodeData.disabled\"\n >\n <aui-icon\n *ngIf=\"nodeData.loading\"\n class=\"aui-tree-node__loading\"\n margin=\"left\"\n size=\"16\"\n [icon]=\"'spinner'\"\n ></aui-icon>\n <aui-icon\n *ngIf=\"nodeData.children && !nodeData.loading\"\n class=\"aui-tree-node__indicator\"\n margin=\"left\"\n size=\"16\"\n [icon]=\"nodeData.expanded ? 'angle_down' : 'angle_right'\"\n (click)=\"switchExpanded()\"\n ></aui-icon>\n <span\n #titleRef\n class=\"aui-tree-node__title\"\n [class.isDisabled]=\"nodeData.disabled || nodeData.loading\"\n [class.isSelected]=\"selected\"\n [class.unselectable]=\"leafOnly && !isLeaf\"\n (click)=\"onClick()\"\n >\n <aui-icon\n *ngIf=\"nodeData.icon\"\n margin=\"right\"\n [icon]=\"getIcon()\"\n ></aui-icon>\n {{ nodeData.label }}\n </span>\n </div>\n <div\n *ngIf=\"nodeData.children\"\n [hidden]=\"!nodeData.expanded\"\n class=\"aui-tree-node__children\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodeData.children; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n</div>\n", styles: [".aui-tree-node__content{display:flex;height:var(--aui-inline-height-m);line-height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);color:rgb(var(--aui-color-main-text));margin-left:4px;cursor:pointer}.aui-tree-node__content aui-icon{color:rgb(var(--aui-color-n-2))}.aui-tree-node__content.isLeftOnly:hover{background-color:rgb(var(--aui-color-p-6))}.aui-tree-node__title{display:inline-block;padding:6px 8px;width:100%;height:100%;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tree-node__title:hover{background-color:rgb(var(--aui-color-p-6))}.aui-tree-node__title.unselectable{color:rgb(var(--aui-color-n-4))}.aui-tree-node__title.unselectable aui-icon{color:rgb(var(--aui-color-n-4))}.aui-tree-node__title.isSelected{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tree-node__title.isSelected aui-icon{color:rgb(var(--aui-color-primary))}.aui-tree-node__title.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-tree-node__title.isDisabled aui-icon{color:rgb(var(--aui-color-n-6))}.aui-tree-node__loading{cursor:not-allowed}.aui-tree-node__indicator:hover{color:rgb(var(--aui-color-primary))}.aui-tree-node__children{margin-left:calc(var(--aui-font-size-m) + 6px)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "component", type: TreeNodeComponent, selector: "aui-tree-node", inputs: ["nodeData", "leafOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
335
+ }
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: TreeNodeComponent, decorators: [{
337
+ type: Component,
338
+ args: [{ selector: 'aui-tree-node', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\n [hidden]=\"!visible\"\n class=\"aui-tree-node\"\n [class.isDisabled]=\"nodeData.disabled\"\n [class.isSelected]=\"selected\"\n [attr.data-value]=\"nodeData.value\"\n>\n <div\n class=\"aui-tree-node__content\"\n [class.isLeftOnly]=\"leafOnly && !isLeaf && !nodeData.disabled\"\n >\n <aui-icon\n *ngIf=\"nodeData.loading\"\n class=\"aui-tree-node__loading\"\n margin=\"left\"\n size=\"16\"\n [icon]=\"'spinner'\"\n ></aui-icon>\n <aui-icon\n *ngIf=\"nodeData.children && !nodeData.loading\"\n class=\"aui-tree-node__indicator\"\n margin=\"left\"\n size=\"16\"\n [icon]=\"nodeData.expanded ? 'angle_down' : 'angle_right'\"\n (click)=\"switchExpanded()\"\n ></aui-icon>\n <span\n #titleRef\n class=\"aui-tree-node__title\"\n [class.isDisabled]=\"nodeData.disabled || nodeData.loading\"\n [class.isSelected]=\"selected\"\n [class.unselectable]=\"leafOnly && !isLeaf\"\n (click)=\"onClick()\"\n >\n <aui-icon\n *ngIf=\"nodeData.icon\"\n margin=\"right\"\n [icon]=\"getIcon()\"\n ></aui-icon>\n {{ nodeData.label }}\n </span>\n </div>\n <div\n *ngIf=\"nodeData.children\"\n [hidden]=\"!nodeData.expanded\"\n class=\"aui-tree-node__children\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodeData.children; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n</div>\n", styles: [".aui-tree-node__content{display:flex;height:var(--aui-inline-height-m);line-height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);color:rgb(var(--aui-color-main-text));margin-left:4px;cursor:pointer}.aui-tree-node__content aui-icon{color:rgb(var(--aui-color-n-2))}.aui-tree-node__content.isLeftOnly:hover{background-color:rgb(var(--aui-color-p-6))}.aui-tree-node__title{display:inline-block;padding:6px 8px;width:100%;height:100%;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tree-node__title:hover{background-color:rgb(var(--aui-color-p-6))}.aui-tree-node__title.unselectable{color:rgb(var(--aui-color-n-4))}.aui-tree-node__title.unselectable aui-icon{color:rgb(var(--aui-color-n-4))}.aui-tree-node__title.isSelected{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tree-node__title.isSelected aui-icon{color:rgb(var(--aui-color-primary))}.aui-tree-node__title.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-tree-node__title.isDisabled aui-icon{color:rgb(var(--aui-color-n-6))}.aui-tree-node__loading{cursor:not-allowed}.aui-tree-node__indicator:hover{color:rgb(var(--aui-color-primary))}.aui-tree-node__children{margin-left:calc(var(--aui-font-size-m) + 6px)}\n"] }]
339
+ }], ctorParameters: function () { return [{ type: TreeSelectComponent }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { nodeData: [{
340
+ type: Input
341
+ }], leafOnly: [{
342
+ type: Input
343
+ }], titleRef: [{
344
+ type: ViewChild,
345
+ args: ['titleRef', { static: true }]
346
+ }], childNodes: [{
347
+ type: ViewChildren,
348
+ args: [forwardRef(() => TreeNodeComponent)]
349
+ }] } });
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uL3NyYy90cmVlLXNlbGVjdC90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxHQUtYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUk1QyxPQUFPLEVBRUwsUUFBUSxFQUNSLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osVUFBVSxFQUNWLGNBQWMsR0FDZixNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7QUFtQmxCLE1BQU0sT0FBTyxtQkFBaUMsU0FBUSxpQkFBb0I7SUFDeEUsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxHQUFHO1FBQ2YsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcs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RSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWSxDQUFDLENBQVMsRUFBRSxJQUFpQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUEwQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQzNCLGNBQWMsQ0FDWixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUM1QixDQUFDO1NBQ0g7SUFDSCxDQUFDO3VHQTNKVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixvUkFnQ0csaUJBQWlCLG9ERTVVbEQsaytDQXNEQSx1eERGc1BhLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksdUJBQ2hCLEtBQUs7dUlBVXRCLFFBQVE7c0JBRFgsS0FBSztnQkFjRixRQUFRO3NCQURYLEtBQUs7Z0JBVU4sUUFBUTtzQkFEUCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXZDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgUXVlcnlMaXN0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIFN1YmplY3QsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb21tb25Gb3JtQ29udHJvbCB9IGZyb20gJy4uL2Zvcm0nO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dCc7XG5pbXBvcnQgeyBUcmFja0ZuIH0gZnJvbSAnLi4vc2VsZWN0L3NlbGVjdC50eXBlcyc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5pbXBvcnQge1xuICBCZW0sXG4gIGJ1aWxkQmVtLFxuICBjb2VyY2VBdHRyQm9vbGVhbixcbiAgY29lcmNlU3RyaW5nLFxuICBwdWJsaXNoUmVmLFxuICBzY3JvbGxJbnRvVmlldyxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4vdHJlZS1zZWxlY3QudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdHJlZS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZVNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIENvbW1vbkZvcm1Db250cm9sPFQ+IHtcbiAgQElucHV0KClcbiAgZ2V0IG5vZGVzRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbm9kZXNEYXRhO1xuICB9XG5cbiAgc2V0IG5vZGVzRGF0YSh2YWwpIHtcbiAgICBpZiAoIXZhbCB8fCB2YWwgPT09IHRoaXMuX25vZGVzRGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9ub2Rlc0RhdGEgPSB2YWw7XG4gICAgdGhpcy5mbGF0dGVkTm9kZXMgPSB0aGlzLmZsYXROb2Rlc0RhdGEodmFsKTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdERpc3BsYXkodGhpcy5tb2RlbCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSAnJztcblxuICBASW5wdXQoKVxuICBnZXQgZmlsdGVyYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyYWJsZTtcbiAgfVxuXG4gIHNldCBmaWx0ZXJhYmxlKHZhbDogYm9vbGVhbiB8ICcnKSB7XG4gICAgdGhpcy5fZmlsdGVyYWJsZSA9IGNvZXJjZUF0dHJCb29sZWFuKHZhbCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgY2xlYXJhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9jbGVhcmFibGU7XG4gIH1cblxuICBzZXQgY2xlYXJhYmxlKHZhbDogYm9vbGVhbiB8ICcnKSB7XG4gICAgdGhpcy5fY2xlYXJhYmxlID0gY29lcmNlQXR0ckJvb2xlYW4odmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBsZWFmT25seSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbGVhZk9ubHk7XG4gIH1cblxuICBzZXQgbGVhZk9ubHkodmFsOiBib29sZWFuIHwgJycpIHtcbiAgICB0aGlzLl9sZWFmT25seSA9IGNvZXJjZUF0dHJCb29sZWFuKHZhbCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBmaWx0ZXJGbiA9IHRoaXMuX2ZpbHRlckZuO1xuXG4gIEBJbnB1dCgpXG4gIHRyYWNrRm46IFRyYWNrRm48VD4gPSB0aGlzLl90cmFja0ZuO1xuXG4gIEBJbnB1dCgpXG4gIGxhYmVsRm4/OiAodmFsdWU6IFQpID0+IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0UmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHNlbGVjdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcFJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCB0b29sdGlwUmVmOiBUb29sdGlwRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoJ25vZGVMaXN0UmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgbm9kZUxpc3RSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgaW5wdXRSZWY6IElucHV0Q29tcG9uZW50O1xuXG4gIHByaXZhdGUgX25vZGVzRGF0YTogQXJyYXk8VHJlZU5vZGU8VD4+ID0gW107XG4gIHByaXZhdGUgX2ZpbHRlclN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9maWx0ZXJhYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgX2NsZWFyYWJsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9sZWFmT25seSA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbHRlclN0cmluZyQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmZpbHRlclN0cmluZyk7XG5cbiAgZmlsdGVyU3RyaW5nJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5maWx0ZXJTdHJpbmckJC5hc09ic2VydmFibGUoKTtcblxuICBjb250YWluZXJXaWR0aDogc3RyaW5nO1xuICBkaXNwbGF5VGV4dCA9ICcnO1xuICBmbGF0dGVkTm9kZXM6IEFycmF5PFRyZWVOb2RlPFQ+PiA9IFtdO1xuXG4gIGdldCBpc0NsZWFyYWJsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5jbGVhcmFibGUgJiYgdGhpcy5nZXRJbnB1dFZhbHVlKCk7XG4gIH1cblxuICBnZXQgb3BlbmVkKCkge1xuICAgIHJldHVybiB0aGlzLnRvb2x0aXBSZWYuaXNDcmVhdGVkO1xuICB9XG5cbiAgZ2V0IGlucHV0UmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuICEodGhpcy5maWx0ZXJhYmxlICYmIHRoaXMub3BlbmVkKTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlclN0cmluZztcbiAgfVxuXG4gIHNldCBmaWx0ZXJTdHJpbmcodmFsKSB7XG4gICAgaWYgKHZhbCAhPT0gdGhpcy5fZmlsdGVyU3RyaW5nKSB7XG4gICAgICB0aGlzLl9maWx0ZXJTdHJpbmcgPSB2YWw7XG4gICAgICB0aGlzLmZpbHRlclN0cmluZyQkLm5leHQodmFsKTtcbiAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlLmVtaXQodmFsKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQb3NpdGlvbigpIHtcbiAgICB0aGlzLnRvb2x0aXBSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgfVxuXG4gIG9uVmlzaWJsZU5vZGVzKHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmlzaWJsZSkge1xuICAgICAgdGhpcy5jb250YWluZXJXaWR0aCA9IHRoaXMuc2VsZWN0UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAncHgnO1xuICAgICAgdGhpcy5zaG93LmVtaXQoKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmZpbHRlclN0cmluZyA9ICcnO1xuICAgICAgdGhpcy5oaWRlLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLmZpbHRlclN0cmluZyA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Ob2RlQ2xpY2sobm9kZTogVHJlZU5vZGVDb21wb25lbnQ8VD4pIHtcbiAgICB0aGlzLnNlbGVjdE5vZGUobm9kZSk7XG4gIH1cblxuICBnZXRWaXNpYmxlTm9kZUNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLmZsYXR0ZWROb2Rlcy5maWx0ZXIobm9kZSA9PlxuICAgICAgdGhpcy5maWx0ZXJGbih0aGlzLmZpbHRlclN0cmluZywgbm9kZSksXG4gICAgKS5sZW5ndGg7XG4gIH1cblxuICBzZWxlY3ROb2RlKG5vZGU6IFRyZWVOb2RlQ29tcG9uZW50PFQ+KSB7XG4gICAgaWYgKCFub2RlLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmVtaXRWYWx1ZShub2RlLm5vZGVEYXRhLnZhbHVlKTtcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICAgIHRoaXMuY2xvc2VPcHRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5PcHRpb24oKSB7XG4gICAgdGhpcy50b29sdGlwUmVmLnNob3coKTtcbiAgfVxuXG4gIGNsb3NlT3B0aW9uKCkge1xuICAgIHRoaXMuaW5wdXRSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kaXNwbGF5VGV4dDtcbiAgICB0aGlzLnRvb2x0aXBSZWYuaGlkZSgpO1xuICB9XG5cbiAgdXBkYXRlU2VsZWN0RGlzcGxheSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgcGlja2VkTm9kZSA9IHRoaXMuZmxhdHRlZE5vZGVzLmZpbmQoXG4gICAgICBub2RlID0+IHRoaXMudHJhY2tGbihub2RlLnZhbHVlKSA9PT0gdGhpcy50cmFja0ZuKHZhbHVlKSxcbiAgICApO1xuICAgIHRoaXMuZGlzcGxheVRleHQgPSBwaWNrZWROb2RlXG4gICAgICA/IHRoaXMuZ2V0TGFiZWxGcm9tTm9kZShwaWNrZWROb2RlKS50b1N0cmluZygpXG4gICAgICA6IGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4odmFsdWUpKTtcbiAgfVxuXG4gIGNsZWFyVmFsdWUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5lbWl0VmFsdWUobnVsbCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB2YWx1ZUluKHY6IFQpOiBUIHtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdERpc3BsYXkodik7XG4gICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICAgIHJldHVybiB2O1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyYWJsZSAmJiB0aGlzLm9wZW5lZCA/IHRoaXMuZGlzcGxheVRleHQgOiB0aGlzLnBsYWNlaG9sZGVyO1xuICB9XG5cbiAgZ2V0SW5wdXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJhYmxlICYmIHRoaXMub3BlbmVkID8gJycgOiB0aGlzLmRpc3BsYXlUZXh0O1xuICB9XG5cbiAgLy8gYHRoaXNgIGlzIG5vdCBhdmFpbGFibGUgaW4gYHRyYWNrQnlgLi4uXG4gIHRyYWNrQnlMYWJlbCA9IChfOiBudW1iZXIsIG5vZGU6IFRyZWVOb2RlPFQ+KSA9PiB0aGlzLmdldExhYmVsRnJvbU5vZGUobm9kZSk7XG5cbiAgcHJpdmF0ZSBmbGF0Tm9kZXNEYXRhKG5vZGVzOiBBcnJheTxUcmVlTm9kZTxUPj4gPSBbXSk6IEFycmF5PFRyZWVOb2RlPFQ+PiB7XG4gICAgcmV0dXJuIG5vZGVzLnJlZHVjZShcbiAgICAgIChwcmV2VmFsdWU6IEFycmF5PFRyZWVOb2RlPFQ+PiwgY3VycmVudE5vZGUpID0+XG4gICAgICAgIHByZXZWYWx1ZS5jb25jYXQoY3VycmVudE5vZGUsIHRoaXMuZmxhdE5vZGVzRGF0YShjdXJyZW50Tm9kZS5jaGlsZHJlbikpLFxuICAgICAgW10sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFiZWxGcm9tTm9kZShub2RlOiBUcmVlTm9kZTxUPikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxhYmVsRm4/Lihub2RlLnZhbHVlKSB8fFxuICAgICAgbm9kZS5sYWJlbCB8fFxuICAgICAgY29lcmNlU3RyaW5nKHRoaXMudHJhY2tGbihub2RlLnZhbHVlKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRm4oZmlsdGVyU3RyaW5nOiBzdHJpbmcsIG5vZGU6IFRyZWVOb2RlPFQ+KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGFiZWxGcm9tTm9kZShub2RlKT8uaW5jbHVkZXMoZmlsdGVyU3RyaW5nID8/ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyYWNrRm48VD4odmFsdWU6IFQpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRyZWUtbm9kZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLW5vZGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlTm9kZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIGJlbTogQmVtID0gYnVpbGRCZW0oJ2F1aS10cmVlLW5vZGUnKTtcblxuICBwcml2YXRlIF9ub2RlRGF0YTogVHJlZU5vZGU8VD47XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZURhdGEkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJlZU5vZGU8VD4+KHRoaXMubm9kZURhdGEpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG5vZGVEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9ub2RlRGF0YTtcbiAgfVxuXG4gIHNldCBub2RlRGF0YSh2YWwpIHtcbiAgICBpZiAodmFsID09PSB0aGlzLl9ub2RlRGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9ub2RlRGF0YSA9IHZhbDtcbiAgICB0aGlzLm5vZGVEYXRhJCQubmV4dCh2YWwpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxlYWZPbmx5KCkge1xuICAgIHJldHVybiB0aGlzLl9sZWFmT25seTtcbiAgfVxuXG4gIHNldCBsZWFmT25seSh2YWw6IGJvb2xlYW4gfCAnJykge1xuICAgIHRoaXMuX2xlYWZPbmx5ID0gY29lcmNlQXR0ckJvb2xlYW4odmFsKTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlUmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgdGl0bGVSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBUcmVlTm9kZUNvbXBvbmVudCkpXG4gIGNoaWxkTm9kZXM6IFF1ZXJ5TGlzdDxUcmVlTm9kZUNvbXBvbmVudDxUPj47XG5cbiAgc2VsZWN0ZWQgPSBmYWxzZTtcbiAgdmlzaWJsZSA9IHRydWU7XG4gIGlzTGVhZiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xlYWZPbmx5ID0gdHJ1ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3Q6IFRyZWVTZWxlY3RDb21wb25lbnQ8VD47XG4gIHNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2VsZlZpc2libGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB2aXNpYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzZWxlY3Q6IFRyZWVTZWxlY3RDb21wb25lbnQ8VD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICB0aGlzLnNlbGVjdCA9IHNlbGVjdDtcbiAgICB0aGlzLnNlbGVjdGVkJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWxlY3QubW9kZWwkLFxuICAgICAgdGhpcy5ub2RlRGF0YSQkLnBpcGUobWFwKGRhdGEgPT4gZGF0YS52YWx1ZSkpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbc2VsZWN0VmFsdWUsIHNlbGZWYWx1ZV0pID0+XG4gICAgICAgICAgc2VsZWN0VmFsdWUgJiZcbiAgICAgICAgICB0aGlzLnNlbGVjdC50cmFja0ZuKHNlbGVjdFZhbHVlKSA9PT0gdGhpcy5zZWxlY3QudHJhY2tGbihzZWxmVmFsdWUpLFxuICAgICAgKSxcbiAgICAgIHRhcChzZWxlY3RlZCA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIH0pLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gICAgdGhpcy5zZWxmVmlzaWJsZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc2VsZWN0LmZpbHRlclN0cmluZyQsXG4gICAgICB0aGlzLm5vZGVEYXRhJCQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2ZpbHRlclN0cmluZywgbm9kZURhdGFdKSA9PlxuICAgICAgICB0aGlzLnNlbGVjdC5maWx0ZXJGbihmaWx0ZXJTdHJpbmcsIG5vZGVEYXRhKSxcbiAgICAgICksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBoYXNWaXNpYmxlQ2hpbGROb2RlcyQgPSB0aGlzLmNoaWxkTm9kZXMuY2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMuY2hpbGROb2RlcyksXG4gICAgICBzd2l0Y2hNYXAoKG5vZGVzOiBRdWVyeUxpc3Q8VHJlZU5vZGVDb21wb25lbnQ8VD4+KSA9PlxuICAgICAgICBub2Rlcy5sZW5ndGggPiAwXG4gICAgICAgICAgPyBjb21iaW5lTGF0ZXN0KG5vZGVzLm1hcChub2RlID0+IG5vZGUudmlzaWJsZSQpKVxuICAgICAgICAgIDogb2YoW2ZhbHNlXSksXG4gICAgICApLFxuICAgICAgbWFwKHZpc2libGUgPT4gdmlzaWJsZS5zb21lKEJvb2xlYW4pKSxcbiAgICAgIHRhcChoYXNWaXNpYmxlQ2hpbGRyZW4gPT4gKHRoaXMuaXNMZWFmID0gIWhhc1Zpc2libGVDaGlsZHJlbikpLFxuICAgICk7XG4gICAgdGhpcy52aXNpYmxlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWxmVmlzaWJsZSQsXG4gICAgICBoYXNWaXNpYmxlQ2hpbGROb2RlcyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCh2aXNpYmxlID0+IHZpc2libGUuc29tZShCb29sZWFuKSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMudmlzaWJsZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUodmlzaWJsZSA9PiB7XG4gICAgICB0aGlzLnZpc2libGUgPSB2aXNpYmxlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUoc2VsZWN0ZWQgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb05vZGUodGhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMubm9kZURhdGEuZGlzYWJsZWQgfHwgdGhpcy5ub2RlRGF0YS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmxlYWZPbmx5ICYmICF0aGlzLmlzTGVhZikge1xuICAgICAgdGhpcy5zd2l0Y2hFeHBhbmRlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdC5vbk5vZGVDbGljayh0aGlzKTtcbiAgfVxuXG4gIHN3aXRjaEV4cGFuZGVkKCkge1xuICAgIHRoaXMubm9kZURhdGEuZXhwYW5kZWQgPSAhdGhpcy5ub2RlRGF0YS5leHBhbmRlZDtcbiAgICBpZiAodGhpcy5ub2RlRGF0YS5leHBhbmRlZCAmJiB0aGlzLmNoaWxkTm9kZXMubGFzdCkge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb05vZGUodGhpcy5jaGlsZE5vZGVzLmxhc3QpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdC51cGRhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0SWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlRGF0YS5leHBhbmRlZFxuICAgICAgPyB0aGlzLm5vZGVEYXRhLmV4cGFuZGVkSWNvbiB8fCB0aGlzLm5vZGVEYXRhLmljb25cbiAgICAgIDogdGhpcy5ub2RlRGF0YS5pY29uO1xuICB9XG5cbiAgdHJhY2tCeUxhYmVsKF86IG51bWJlciwgZGF0YTogVHJlZU5vZGU8VD4pIHtcbiAgICByZXR1cm4gZGF0YS5sYWJlbDtcbiAgfVxuXG4gIHNjcm9sbFRvTm9kZShub2RlOiBUcmVlTm9kZUNvbXBvbmVudDxUPikge1xuICAgIGlmICh0aGlzLnNlbGVjdC5ub2RlTGlzdFJlZikge1xuICAgICAgc2Nyb2xsSW50b1ZpZXcoXG4gICAgICAgIHRoaXMuc2VsZWN0Lm5vZGVMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIG5vZGUudGl0bGVSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYXVpLXRyZWUtc2VsZWN0XCJcbiAgW2NsYXNzLmlzRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MuaXNDbGVhcmFibGVdPVwiaXNDbGVhcmFibGVcIlxuICAjc2VsZWN0UmVmXG4gICN0b29sdGlwUmVmPVwiYXVpVG9vbHRpcFwiXG4gIFthdWlUb29sdGlwXT1cInRlbXBsYXRlUmVmXCJcbiAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFthdWlEaXNhYmxlQW5pbWF0aW9uXT1cInRydWVcIlxuICBhdWlUb29sdGlwVHJpZ2dlcj1cImNsaWNrXCJcbiAgYXVpVG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tIHN0YXJ0XCJcbiAgYXVpVG9vbHRpcFR5cGU9XCJwbGFpblwiXG4gIChhdWlUb29sdGlwVmlzaWJsZUNoYW5nZSk9XCJvblZpc2libGVOb2RlcygkZXZlbnQpXCJcbj5cbiAgPGF1aS1pbnB1dC1ncm91cD5cbiAgICA8aW5wdXRcbiAgICAgICNpbnB1dFJlZlxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RfX2lucHV0XCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBhdWktaW5wdXRcbiAgICAgIFt2YWx1ZV09XCJnZXRJbnB1dFZhbHVlKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcbiAgICAgIFtyZWFkb25seV09XCJpbnB1dFJlYWRvbmx5XCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgICAgKGJsdXIpPVwiY2xvc2VPcHRpb24oKVwiXG4gICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8c3BhblxuICAgICAgYXVpSW5wdXRTdWZmaXhcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtc2VsZWN0X19pY29uLWNvbnRhaW5lclwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGNsYXNzPVwiYXVpLXRyZWUtc2VsZWN0X19pbmRpY2F0b3JcIlxuICAgICAgICBbaWNvbl09XCJsb2FkaW5nID8gJ3NwaW5uZXInIDogJ2NhcmV0X2Rvd25fcydcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RfX2NsZWFyXCJcbiAgICAgICAgaWNvbj1cInhtYXJrX3NtYWxsXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICA8L3NwYW4+XG4gIDwvYXVpLWlucHV0LWdyb3VwPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImF1aS10cmVlLW5vZGUtY29udGFpbmVyXCJcbiAgICBbc3R5bGUubWluV2lkdGhdPVwiY29udGFpbmVyV2lkdGhcIlxuICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgI25vZGVMaXN0UmVmXG4gICAgICBjbGFzcz1cImF1aS10cmVlLW5vZGUtY29udGFpbmVyX19jb250ZW50XCJcbiAgICA+XG4gICAgICA8YXVpLXRyZWUtbm9kZVxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBub2Rlc0RhdGE7IHRyYWNrQnk6IHRyYWNrQnlMYWJlbFwiXG4gICAgICAgIFtub2RlRGF0YV09XCJkYXRhXCJcbiAgICAgICAgW2xlYWZPbmx5XT1cImxlYWZPbmx5XCJcbiAgICAgID48L2F1aS10cmVlLW5vZGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhZ2V0VmlzaWJsZU5vZGVDb3VudCgpXCJcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZS1jb250YWluZXJfX3BsYWNlaG9sZGVyXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhdWktdHJlZS1ub2RlLXBsYWNlaG9sZGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iLCI8ZGl2XG4gIFtoaWRkZW5dPVwiIXZpc2libGVcIlxuICBjbGFzcz1cImF1aS10cmVlLW5vZGVcIlxuICBbY2xhc3MuaXNEaXNhYmxlZF09XCJub2RlRGF0YS5kaXNhYmxlZFwiXG4gIFtjbGFzcy5pc1NlbGVjdGVkXT1cInNlbGVjdGVkXCJcbiAgW2F0dHIuZGF0YS12YWx1ZV09XCJub2RlRGF0YS52YWx1ZVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImF1aS10cmVlLW5vZGVfX2NvbnRlbnRcIlxuICAgIFtjbGFzcy5pc0xlZnRPbmx5XT1cImxlYWZPbmx5ICYmICFpc0xlYWYgJiYgIW5vZGVEYXRhLmRpc2FibGVkXCJcbiAgPlxuICAgIDxhdWktaWNvblxuICAgICAgKm5nSWY9XCJub2RlRGF0YS5sb2FkaW5nXCJcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZV9fbG9hZGluZ1wiXG4gICAgICBtYXJnaW49XCJsZWZ0XCJcbiAgICAgIHNpemU9XCIxNlwiXG4gICAgICBbaWNvbl09XCInc3Bpbm5lcidcIlxuICAgID48L2F1aS1pY29uPlxuICAgIDxhdWktaWNvblxuICAgICAgKm5nSWY9XCJub2RlRGF0YS5jaGlsZHJlbiAmJiAhbm9kZURhdGEubG9hZGluZ1wiXG4gICAgICBjbGFzcz1cImF1aS10cmVlLW5vZGVfX2luZGljYXRvclwiXG4gICAgICBtYXJnaW49XCJsZWZ0XCJcbiAgICAgIHNpemU9XCIxNlwiXG4gICAgICBbaWNvbl09XCJub2RlRGF0YS5leHBhbmRlZCA/ICdhbmdsZV9kb3duJyA6ICdhbmdsZV9yaWdodCdcIlxuICAgICAgKGNsaWNrKT1cInN3aXRjaEV4cGFuZGVkKClcIlxuICAgID48L2F1aS1pY29uPlxuICAgIDxzcGFuXG4gICAgICAjdGl0bGVSZWZcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZV9fdGl0bGVcIlxuICAgICAgW2NsYXNzLmlzRGlzYWJsZWRdPVwibm9kZURhdGEuZGlzYWJsZWQgfHwgbm9kZURhdGEubG9hZGluZ1wiXG4gICAgICBbY2xhc3MuaXNTZWxlY3RlZF09XCJzZWxlY3RlZFwiXG4gICAgICBbY2xhc3MudW5zZWxlY3RhYmxlXT1cImxlYWZPbmx5ICYmICFpc0xlYWZcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwibm9kZURhdGEuaWNvblwiXG4gICAgICAgIG1hcmdpbj1cInJpZ2h0XCJcbiAgICAgICAgW2ljb25dPVwiZ2V0SWNvbigpXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgICAge3sgbm9kZURhdGEubGFiZWwgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJub2RlRGF0YS5jaGlsZHJlblwiXG4gICAgW2hpZGRlbl09XCIhbm9kZURhdGEuZXhwYW5kZWRcIlxuICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZV9fY2hpbGRyZW5cIlxuICA+XG4gICAgPGF1aS10cmVlLW5vZGVcbiAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIG5vZGVEYXRhLmNoaWxkcmVuOyB0cmFja0J5OiB0cmFja0J5TGFiZWxcIlxuICAgICAgW25vZGVEYXRhXT1cImRhdGFcIlxuICAgICAgW2xlYWZPbmx5XT1cImxlYWZPbmx5XCJcbiAgICA+PC9hdWktdHJlZS1ub2RlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -7,15 +7,15 @@ import { TreeNodePlaceholderComponent } from './tree-node-placeholder.component'
7
7
  import { TreeNodeComponent, TreeSelectComponent, } from './tree-select.component';
8
8
  import * as i0 from "@angular/core";
9
9
  export class TreeSelectModule {
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: TreeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.4", ngImport: i0, type: TreeSelectModule, declarations: [TreeSelectComponent,
12
+ TreeNodeComponent,
13
+ TreeNodePlaceholderComponent], imports: [CommonModule, TooltipModule, IconModule, InputModule], exports: [TreeSelectComponent,
14
+ TreeNodeComponent,
15
+ TreeNodePlaceholderComponent] });
16
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: TreeSelectModule, imports: [CommonModule, TooltipModule, IconModule, InputModule] });
10
17
  }
11
- TreeSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- TreeSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TreeSelectModule, declarations: [TreeSelectComponent,
13
- TreeNodeComponent,
14
- TreeNodePlaceholderComponent], imports: [CommonModule, TooltipModule, IconModule, InputModule], exports: [TreeSelectComponent,
15
- TreeNodeComponent,
16
- TreeNodePlaceholderComponent] });
17
- TreeSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeSelectModule, imports: [CommonModule, TooltipModule, IconModule, InputModule] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeSelectModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: TreeSelectModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [CommonModule, TooltipModule, IconModule, InputModule],
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
31
31
  ],
32
32
  }]
33
33
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUNwQixNQUFNLHlCQUF5QixDQUFDOztBQWVqQyxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBVnpCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsNEJBQTRCLGFBSnBCLFlBQVksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFdBQVcsYUFPNUQsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQiw0QkFBNEI7OEdBR25CLGdCQUFnQixZQVpqQixZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXOzJGQVluRCxnQkFBZ0I7a0JBYjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDO29CQUMvRCxZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQiw0QkFBNEI7cUJBQzdCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICcuLi9pY29uJztcbmltcG9ydCB7IElucHV0TW9kdWxlIH0gZnJvbSAnLi4vaW5wdXQnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJy4uL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBUcmVlTm9kZVBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnLi90cmVlLW5vZGUtcGxhY2Vob2xkZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRyZWVOb2RlQ29tcG9uZW50LFxuICBUcmVlU2VsZWN0Q29tcG9uZW50LFxufSBmcm9tICcuL3RyZWUtc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRvb2x0aXBNb2R1bGUsIEljb25Nb2R1bGUsIElucHV0TW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVHJlZVNlbGVjdENvbXBvbmVudCxcbiAgICBUcmVlTm9kZUNvbXBvbmVudCxcbiAgICBUcmVlTm9kZVBsYWNlaG9sZGVyQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVHJlZVNlbGVjdENvbXBvbmVudCxcbiAgICBUcmVlTm9kZUNvbXBvbmVudCxcbiAgICBUcmVlTm9kZVBsYWNlaG9sZGVyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VsZWN0TW9kdWxlIHt9XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUNwQixNQUFNLHlCQUF5QixDQUFDOztBQWVqQyxNQUFNLE9BQU8sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7d0dBQWhCLGdCQUFnQixpQkFWekIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQiw0QkFBNEIsYUFKcEIsWUFBWSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxhQU81RCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLDRCQUE0Qjt3R0FHbkIsZ0JBQWdCLFlBWmpCLFlBQVksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFdBQVc7OzJGQVluRCxnQkFBZ0I7a0JBYjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDO29CQUMvRCxZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQiw0QkFBNEI7cUJBQzdCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICcuLi9pY29uJztcbmltcG9ydCB7IElucHV0TW9kdWxlIH0gZnJvbSAnLi4vaW5wdXQnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJy4uL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBUcmVlTm9kZVBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnLi90cmVlLW5vZGUtcGxhY2Vob2xkZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRyZWVOb2RlQ29tcG9uZW50LFxuICBUcmVlU2VsZWN0Q29tcG9uZW50LFxufSBmcm9tICcuL3RyZWUtc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRvb2x0aXBNb2R1bGUsIEljb25Nb2R1bGUsIElucHV0TW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVHJlZVNlbGVjdENvbXBvbmVudCxcbiAgICBUcmVlTm9kZUNvbXBvbmVudCxcbiAgICBUcmVlTm9kZVBsYWNlaG9sZGVyQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVHJlZVNlbGVjdENvbXBvbmVudCxcbiAgICBUcmVlTm9kZUNvbXBvbmVudCxcbiAgICBUcmVlTm9kZVBsYWNlaG9sZGVyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VsZWN0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,44 @@
1
+ export class Bem {
2
+ namespace;
3
+ constructor(namespace) {
4
+ this.namespace = namespace;
5
+ }
6
+ block(...modifiers) {
7
+ const activatedModifiers = getActivatedModifiers(modifiers);
8
+ if (activatedModifiers.length > 0) {
9
+ return `${this.namespace} ${activatedModifiers
10
+ .map(modifier => this.namespace + '--' + modifier)
11
+ .join(' ')}`;
12
+ }
13
+ return this.namespace;
14
+ }
15
+ modifier(name) {
16
+ return `${this.namespace}--${name}`;
17
+ }
18
+ element(name, ...modifiers) {
19
+ const activatedModifiers = getActivatedModifiers(modifiers);
20
+ if (activatedModifiers.length > 0) {
21
+ return `${this.namespace}__${name} ${activatedModifiers
22
+ .map(modifier => this.namespace + '__' + name + '--' + modifier)
23
+ .join(' ')}`;
24
+ }
25
+ return `${this.namespace}__${name}`;
26
+ }
27
+ }
28
+ function getActivatedModifiers(modifiers) {
29
+ return modifiers.reduce((acc, modifier) => {
30
+ if (!modifier) {
31
+ return acc;
32
+ }
33
+ return acc.concat(typeof modifier === 'string'
34
+ ? [modifier]
35
+ : getActivatedModifiersFromObject(modifier));
36
+ }, []);
37
+ }
38
+ function getActivatedModifiersFromObject(modifiers) {
39
+ return Object.keys(modifiers).filter(key => modifiers[key]);
40
+ }
41
+ export function buildBem(namespace) {
42
+ return new Bem(namespace);
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2JlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLE9BQU8sR0FBRztJQUNlO0lBQTdCLFlBQTZCLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFBRyxDQUFDO0lBRWxELEtBQUssQ0FBQyxHQUFHLFNBQXNEO1FBQzdELE1BQU0sa0JBQWtCLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUQsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLGtCQUFrQjtpQkFDM0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsUUFBUSxDQUFDO2lCQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU8sQ0FDTCxJQUFZLEVBQ1osR0FBRyxTQUEyRDtRQUU5RCxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVELElBQUksa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksa0JBQWtCO2lCQUNwRCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQztpQkFDL0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7U0FDaEI7UUFFRCxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFFRCxTQUFTLHFCQUFxQixDQUM1QixTQUEyRDtJQUUzRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQVcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7UUFDbEQsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQ2YsT0FBTyxRQUFRLEtBQUssUUFBUTtZQUMxQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDWixDQUFDLENBQUMsK0JBQStCLENBQUMsUUFBUSxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDO0FBRUQsU0FBUywrQkFBK0IsQ0FBQyxTQUV4QztJQUNDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxTQUFpQjtJQUN4QyxPQUFPLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFeHBlcmltZW50YWwgYmVtIGNsYXNzbmFtZSBoZWxwZXJcbmV4cG9ydCBjbGFzcyBCZW0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG5hbWVzcGFjZTogc3RyaW5nKSB7fVxuXG4gIGJsb2NrKC4uLm1vZGlmaWVyczogQXJyYXk8eyBbbmFtZTogc3RyaW5nXTogYm9vbGVhbiB9IHwgc3RyaW5nPikge1xuICAgIGNvbnN0IGFjdGl2YXRlZE1vZGlmaWVycyA9IGdldEFjdGl2YXRlZE1vZGlmaWVycyhtb2RpZmllcnMpO1xuICAgIGlmIChhY3RpdmF0ZWRNb2RpZmllcnMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMubmFtZXNwYWNlfSAke2FjdGl2YXRlZE1vZGlmaWVyc1xuICAgICAgICAubWFwKG1vZGlmaWVyID0+IHRoaXMubmFtZXNwYWNlICsgJy0tJyArIG1vZGlmaWVyKVxuICAgICAgICAuam9pbignICcpfWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5hbWVzcGFjZTtcbiAgfVxuXG4gIG1vZGlmaWVyKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBgJHt0aGlzLm5hbWVzcGFjZX0tLSR7bmFtZX1gO1xuICB9XG5cbiAgZWxlbWVudChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgLi4ubW9kaWZpZXJzOiBBcnJheTx7IFtuYW1lOiBzdHJpbmddOiBib29sZWFuIHwgJycgfSB8IHN0cmluZz5cbiAgKSB7XG4gICAgY29uc3QgYWN0aXZhdGVkTW9kaWZpZXJzID0gZ2V0QWN0aXZhdGVkTW9kaWZpZXJzKG1vZGlmaWVycyk7XG5cbiAgICBpZiAoYWN0aXZhdGVkTW9kaWZpZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLm5hbWVzcGFjZX1fXyR7bmFtZX0gJHthY3RpdmF0ZWRNb2RpZmllcnNcbiAgICAgICAgLm1hcChtb2RpZmllciA9PiB0aGlzLm5hbWVzcGFjZSArICdfXycgKyBuYW1lICsgJy0tJyArIG1vZGlmaWVyKVxuICAgICAgICAuam9pbignICcpfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3RoaXMubmFtZXNwYWNlfV9fJHtuYW1lfWA7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0QWN0aXZhdGVkTW9kaWZpZXJzKFxuICBtb2RpZmllcnM6IEFycmF5PHsgW25hbWU6IHN0cmluZ106IGJvb2xlYW4gfCAnJyB9IHwgc3RyaW5nPixcbikge1xuICByZXR1cm4gbW9kaWZpZXJzLnJlZHVjZTxzdHJpbmdbXT4oKGFjYywgbW9kaWZpZXIpID0+IHtcbiAgICBpZiAoIW1vZGlmaWVyKSB7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cbiAgICByZXR1cm4gYWNjLmNvbmNhdChcbiAgICAgIHR5cGVvZiBtb2RpZmllciA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBbbW9kaWZpZXJdXG4gICAgICAgIDogZ2V0QWN0aXZhdGVkTW9kaWZpZXJzRnJvbU9iamVjdChtb2RpZmllciksXG4gICAgKTtcbiAgfSwgW10pO1xufVxuXG5mdW5jdGlvbiBnZXRBY3RpdmF0ZWRNb2RpZmllcnNGcm9tT2JqZWN0KG1vZGlmaWVyczoge1xuICBbbmFtZTogc3RyaW5nXTogYm9vbGVhbiB8ICcnO1xufSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMobW9kaWZpZXJzKS5maWx0ZXIoa2V5ID0+IG1vZGlmaWVyc1trZXldKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQmVtKG5hbWVzcGFjZTogc3RyaW5nKSB7XG4gIHJldHVybiBuZXcgQmVtKG5hbWVzcGFjZSk7XG59XG4iXX0=