@alauda/ui 6.5.9-beta.26 → 6.5.9-beta.28

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 (598) hide show
  1. package/.changeset/README.md +8 -0
  2. package/accordion/accordion-item/accordion-item.component.d.ts +3 -3
  3. package/accordion/accordion.component.d.ts +1 -1
  4. package/alauda-ui.d.ts +5 -0
  5. package/anchor/anchor.component.d.ts +2 -2
  6. package/anchor/anchor.directive.d.ts +3 -3
  7. package/autocomplete/autocomplete-placeholder.component.d.ts +1 -1
  8. package/autocomplete/autocomplete.component.d.ts +1 -1
  9. package/autocomplete/autocomplete.directive.d.ts +2 -2
  10. package/autocomplete/autocomplete.types.d.ts +1 -1
  11. package/autocomplete/helper-directives.d.ts +1 -1
  12. package/autocomplete/suggestion/suggestion.component.d.ts +1 -1
  13. package/autocomplete/suggestion-group/suggestion-group.component.d.ts +1 -1
  14. package/back-top/back-top.component.d.ts +2 -2
  15. package/breadcrumb/breadcrumb-item.component.d.ts +1 -1
  16. package/breadcrumb/breadcrumb.component.d.ts +1 -1
  17. package/button/button-group/button-group.component.d.ts +1 -1
  18. package/button/button.component.d.ts +1 -1
  19. package/button/button.types.d.ts +10 -1
  20. package/card/card.component.d.ts +1 -1
  21. package/card/helper-directives.d.ts +6 -3
  22. package/card/section.component.d.ts +1 -1
  23. package/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
  24. package/checkbox/checkbox.component.d.ts +1 -1
  25. package/color-picker/color-picker.component.d.ts +1 -1
  26. package/date-picker/calendar/date-picker-panel/component.d.ts +1 -1
  27. package/date-picker/calendar/footer/component.d.ts +1 -1
  28. package/date-picker/calendar/header/component.d.ts +1 -1
  29. package/date-picker/calendar/panel/picker-panel.d.ts +1 -1
  30. package/date-picker/calendar/range-picker-panel/component.d.ts +1 -1
  31. package/date-picker/date-picker/date-picker.component.d.ts +1 -1
  32. package/date-picker/date-picker.type.d.ts +2 -2
  33. package/date-picker/range-picker/range-picker.component.d.ts +1 -1
  34. package/date-picker/trigger/trigger.component.d.ts +1 -1
  35. package/dialog/confirm-dialog/confirm-dialog.component.d.ts +1 -1
  36. package/dialog/dialog-content/dialog-close.directive.d.ts +1 -1
  37. package/dialog/dialog-content/dialog-content.component.d.ts +1 -1
  38. package/dialog/dialog-content/dialog-footer.component.d.ts +1 -1
  39. package/dialog/dialog-content/dialog-header.component.d.ts +1 -1
  40. package/dialog/dialog.component.d.ts +1 -1
  41. package/dialog/dialog.types.d.ts +3 -3
  42. package/drawer/component/drawer.component.d.ts +1 -1
  43. package/drawer/component/helper-directives.d.ts +3 -3
  44. package/dropdown/dropdown-active.directive.d.ts +1 -1
  45. package/dropdown/dropdown-button/dropdown-button.component.d.ts +7 -4
  46. package/dropdown/dropdown.directive.d.ts +1 -1
  47. package/dropdown/dropdown.types.d.ts +1 -1
  48. package/dropdown/helper-directives.d.ts +1 -1
  49. package/dropdown/menu/menu-content.directive.d.ts +1 -1
  50. package/dropdown/menu/menu.component.d.ts +2 -5
  51. package/dropdown/menu-group/menu-group.component.d.ts +1 -1
  52. package/dropdown/menu-item/menu-item.component.d.ts +1 -1
  53. package/dropdown/submenu/submenu.component.d.ts +1 -1
  54. package/esm2020/accordion/accordion-item/accordion-item.component.mjs +73 -0
  55. package/esm2020/accordion/accordion.component.mjs +27 -0
  56. package/esm2020/accordion/accordion.module.mjs +39 -0
  57. package/esm2020/alauda-ui.mjs +5 -0
  58. package/esm2020/anchor/anchor.component.mjs +138 -0
  59. package/esm2020/anchor/anchor.directive.mjs +182 -0
  60. package/esm2020/anchor/anchor.module.mjs +36 -0
  61. package/{esm2022 → esm2020}/autocomplete/autocomplete-placeholder.component.mjs +4 -4
  62. package/esm2020/autocomplete/autocomplete.component.mjs +64 -0
  63. package/esm2020/autocomplete/autocomplete.directive.mjs +278 -0
  64. package/esm2020/autocomplete/autocomplete.module.mjs +53 -0
  65. package/{esm2022 → esm2020}/autocomplete/helper-directives.mjs +4 -4
  66. package/esm2020/autocomplete/suggestion/suggestion.component.mjs +79 -0
  67. package/esm2020/autocomplete/suggestion-group/suggestion-group.component.mjs +23 -0
  68. package/esm2020/back-top/back-top.component.mjs +67 -0
  69. package/esm2020/back-top/back-top.module.mjs +19 -0
  70. package/esm2020/breadcrumb/breadcrumb-item.component.mjs +32 -0
  71. package/esm2020/breadcrumb/breadcrumb.component.mjs +57 -0
  72. package/esm2020/breadcrumb/breadcrumb.module.mjs +20 -0
  73. package/{esm2022 → esm2020}/button/button-group/button-group.component.mjs +4 -4
  74. package/esm2020/button/button.component.mjs +122 -0
  75. package/esm2020/button/button.module.mjs +20 -0
  76. package/esm2020/button/button.types.mjs +22 -0
  77. package/esm2020/card/card.component.mjs +16 -0
  78. package/esm2020/card/card.module.mjs +40 -0
  79. package/esm2020/card/helper-directives.mjs +50 -0
  80. package/{esm2022 → esm2020}/card/section.component.mjs +4 -4
  81. package/esm2020/checkbox/checkbox-group/checkbox-group.component.mjs +61 -0
  82. package/esm2020/checkbox/checkbox.component.mjs +112 -0
  83. package/esm2020/checkbox/checkbox.module.mjs +20 -0
  84. package/esm2020/color-picker/color-picker.component.mjs +28 -0
  85. package/esm2020/color-picker/color-picker.module.mjs +19 -0
  86. package/esm2020/date-picker/calendar/constant.mjs +32 -0
  87. package/esm2020/date-picker/calendar/date-picker-panel/component.mjs +128 -0
  88. package/esm2020/date-picker/calendar/footer/component.mjs +29 -0
  89. package/esm2020/date-picker/calendar/header/component.mjs +103 -0
  90. package/esm2020/date-picker/calendar/panel/picker-panel.mjs +155 -0
  91. package/esm2020/date-picker/calendar/range-picker-panel/component.mjs +209 -0
  92. package/esm2020/date-picker/calendar/util.mjs +146 -0
  93. package/esm2020/date-picker/date-picker/date-picker.component.mjs +110 -0
  94. package/esm2020/date-picker/date-picker.module.mjs +84 -0
  95. package/esm2020/date-picker/range-picker/range-picker.component.mjs +86 -0
  96. package/esm2020/date-picker/trigger/trigger.component.mjs +69 -0
  97. package/esm2020/dialog/confirm-dialog/confirm-dialog-config.mjs +12 -0
  98. package/esm2020/dialog/confirm-dialog/confirm-dialog.component.mjs +85 -0
  99. package/{esm2022 → esm2020}/dialog/dialog-animations.mjs +2 -1
  100. package/esm2020/dialog/dialog-config.mjs +15 -0
  101. package/esm2020/dialog/dialog-content/dialog-close.directive.mjs +38 -0
  102. package/esm2020/dialog/dialog-content/dialog-content.component.mjs +20 -0
  103. package/esm2020/dialog/dialog-content/dialog-footer.component.mjs +15 -0
  104. package/esm2020/dialog/dialog-content/dialog-header.component.mjs +39 -0
  105. package/esm2020/dialog/dialog-ref.mjs +48 -0
  106. package/esm2020/dialog/dialog.component.mjs +148 -0
  107. package/esm2020/dialog/dialog.module.mjs +68 -0
  108. package/esm2020/dialog/dialog.service.mjs +121 -0
  109. package/esm2020/drawer/component/drawer.component.mjs +232 -0
  110. package/esm2020/drawer/component/helper-directives.mjs +37 -0
  111. package/esm2020/drawer/drawer.module.mjs +37 -0
  112. package/esm2020/drawer/drawer.service.mjs +44 -0
  113. package/esm2020/dropdown/dropdown-active.directive.mjs +21 -0
  114. package/esm2020/dropdown/dropdown-button/dropdown-button.component.mjs +57 -0
  115. package/esm2020/dropdown/dropdown.directive.mjs +81 -0
  116. package/esm2020/dropdown/dropdown.module.mjs +65 -0
  117. package/{esm2022 → esm2020}/dropdown/helper-directives.mjs +4 -4
  118. package/esm2020/dropdown/menu/menu-content.directive.mjs +51 -0
  119. package/esm2020/dropdown/menu/menu.component.mjs +26 -0
  120. package/{esm2022 → esm2020}/dropdown/menu-group/menu-group.component.mjs +4 -4
  121. package/esm2020/dropdown/menu-item/menu-item.component.mjs +37 -0
  122. package/esm2020/dropdown/submenu/submenu.component.mjs +40 -0
  123. package/esm2020/form/common-form.mjs +91 -0
  124. package/esm2020/form/form-item/form-item.component.mjs +108 -0
  125. package/esm2020/form/form.directive.mjs +69 -0
  126. package/esm2020/form/form.module.mjs +48 -0
  127. package/esm2020/form/helper-directives.mjs +80 -0
  128. package/{esm2022 → esm2020}/i18n/i18n.module.mjs +5 -5
  129. package/esm2020/i18n/i18n.pipe.mjs +20 -0
  130. package/esm2020/i18n/i18n.service.mjs +43 -0
  131. package/esm2020/icon/icon-register.service.mjs +74 -0
  132. package/esm2020/icon/icon.component.mjs +65 -0
  133. package/esm2020/icon/icon.module.mjs +21 -0
  134. package/{esm2022 → esm2020}/inline-alert/helper-directives.mjs +4 -4
  135. package/esm2020/inline-alert/inline-alert.component.mjs +53 -0
  136. package/esm2020/inline-alert/inline-alert.module.mjs +20 -0
  137. package/esm2020/input/autosize.directive.mjs +59 -0
  138. package/esm2020/input/helper-directives.mjs +43 -0
  139. package/esm2020/input/input-group/input-group.component.mjs +39 -0
  140. package/esm2020/input/input.component.mjs +61 -0
  141. package/esm2020/input/input.module.mjs +87 -0
  142. package/esm2020/input/number-input/number-input.component.mjs +112 -0
  143. package/esm2020/input/search/search.component.mjs +88 -0
  144. package/esm2020/input/tags-input/tags-input.component.mjs +260 -0
  145. package/esm2020/message/base-message.mjs +90 -0
  146. package/esm2020/message/message-wrapper.component.mjs +14 -0
  147. package/esm2020/message/message.component.mjs +70 -0
  148. package/esm2020/message/message.config.mjs +21 -0
  149. package/esm2020/message/message.module.mjs +23 -0
  150. package/{esm2022 → esm2020}/message/message.service.mjs +4 -4
  151. package/esm2020/notification/notification-wrapper.component.mjs +16 -0
  152. package/esm2020/notification/notification.component.mjs +107 -0
  153. package/esm2020/notification/notification.module.mjs +24 -0
  154. package/{esm2022 → esm2020}/notification/notification.service.mjs +4 -4
  155. package/esm2020/paginator/paginator-intl.mjs +37 -0
  156. package/esm2020/paginator/paginator.component.mjs +125 -0
  157. package/esm2020/paginator/paginator.module.mjs +24 -0
  158. package/esm2020/radio/base-radio.mjs +67 -0
  159. package/esm2020/radio/radio-button/radio-button.component.mjs +42 -0
  160. package/esm2020/radio/radio-group/radio-group.component.mjs +76 -0
  161. package/esm2020/radio/radio.component.mjs +24 -0
  162. package/esm2020/radio/radio.module.mjs +21 -0
  163. package/esm2020/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +83 -0
  164. package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +121 -0
  165. package/esm2020/scrolling/fixed-size-virtual-scroll.directive.mjs +28 -0
  166. package/{esm2022 → esm2020}/scrolling/scrolling.module.mjs +9 -9
  167. package/{esm2022 → esm2020}/scrolling/virtual-for-of.directive.mjs +4 -4
  168. package/esm2020/scrolling/virtual-scroll-viewport.component.mjs +26 -0
  169. package/esm2020/select/base-select.mjs +337 -0
  170. package/{esm2022 → esm2020}/select/helper-directives.mjs +7 -7
  171. package/esm2020/select/multi-select/multi-select.component.mjs +313 -0
  172. package/esm2020/select/option/option.component.mjs +112 -0
  173. package/esm2020/select/option-group/option-group.component.mjs +23 -0
  174. package/{esm2022 → esm2020}/select/option-placeholder.component.mjs +4 -4
  175. package/esm2020/select/select.component.mjs +108 -0
  176. package/esm2020/select/select.module.mjs +80 -0
  177. package/esm2020/select/validators.mjs +79 -0
  178. package/esm2020/shared/click-outside.directive.mjs +28 -0
  179. package/{esm2022 → esm2020}/shared/shared.module.mjs +5 -5
  180. package/esm2020/sort/sort-errors.mjs +17 -0
  181. package/esm2020/sort/sort-header.component.mjs +72 -0
  182. package/esm2020/sort/sort.directive.mjs +75 -0
  183. package/esm2020/sort/sort.module.mjs +19 -0
  184. package/esm2020/status-bar/status-bar.component.mjs +29 -0
  185. package/esm2020/status-bar/status-bar.module.mjs +19 -0
  186. package/esm2020/steps/steps.component.mjs +184 -0
  187. package/esm2020/steps/steps.module.mjs +19 -0
  188. package/esm2020/switch/switch.component.mjs +46 -0
  189. package/esm2020/switch/switch.module.mjs +18 -0
  190. package/esm2020/table/table-cell-def.directive.mjs +29 -0
  191. package/esm2020/table/table-cell.component.mjs +121 -0
  192. package/esm2020/table/table-cell.directive.mjs +31 -0
  193. package/esm2020/table/table-column-def.directive.mjs +37 -0
  194. package/esm2020/table/table-header-cell-def.directive.mjs +29 -0
  195. package/esm2020/table/table-header-cell.directive.mjs +27 -0
  196. package/esm2020/table/table-header-row-def.directive.mjs +39 -0
  197. package/esm2020/table/table-header-row.component.mjs +25 -0
  198. package/esm2020/table/table-placeholder.directive.mjs +30 -0
  199. package/esm2020/table/table-row-def.directive.mjs +42 -0
  200. package/esm2020/table/table-row.component.mjs +43 -0
  201. package/esm2020/table/table-scroll.directive.mjs +134 -0
  202. package/esm2020/table/table.component.mjs +79 -0
  203. package/esm2020/table/table.module.mjs +96 -0
  204. package/esm2020/table-of-contents/table-of-contents.module.mjs +20 -0
  205. package/esm2020/table-of-contents/toc-container.directive.mjs +109 -0
  206. package/esm2020/table-of-contents/toc-content.directive.mjs +35 -0
  207. package/esm2020/table-of-contents/toc-link.directive.mjs +44 -0
  208. package/esm2020/tabs/tab-body.component.mjs +165 -0
  209. package/esm2020/tabs/tab-context.service.mjs +31 -0
  210. package/esm2020/tabs/tab-group.component.mjs +291 -0
  211. package/esm2020/tabs/tab-header-active-indicator.component.mjs +53 -0
  212. package/esm2020/tabs/tab-header.component.mjs +367 -0
  213. package/esm2020/tabs/tab.component.mjs +85 -0
  214. package/esm2020/tabs/tabs.module.mjs +88 -0
  215. package/esm2020/tabs/tabs.types.mjs +13 -0
  216. package/esm2020/tag/check-tag/check-tag.component.mjs +33 -0
  217. package/esm2020/tag/tag.component.mjs +66 -0
  218. package/esm2020/tag/tag.module.mjs +20 -0
  219. package/esm2020/theme/theme.module.mjs +18 -0
  220. package/esm2020/theme/theme.pipe.mjs +69 -0
  221. package/esm2020/theme/theme.service.mjs +52 -0
  222. package/esm2020/time-picker/component.mjs +179 -0
  223. package/esm2020/time-picker/panel/panel.component.mjs +230 -0
  224. package/esm2020/time-picker/time-picker.module.mjs +58 -0
  225. package/esm2020/tooltip/base-tooltip.mjs +322 -0
  226. package/esm2020/tooltip/tooltip-active.directive.mjs +49 -0
  227. package/esm2020/tooltip/tooltip-copy.directive.mjs +82 -0
  228. package/esm2020/tooltip/tooltip-intl.mjs +29 -0
  229. package/esm2020/tooltip/tooltip.component.mjs +107 -0
  230. package/esm2020/tooltip/tooltip.directive.mjs +47 -0
  231. package/esm2020/tooltip/tooltip.module.mjs +33 -0
  232. package/{esm2022 → esm2020}/tree-select/tree-node-placeholder.component.mjs +4 -4
  233. package/esm2020/tree-select/tree-select.component.mjs +340 -0
  234. package/esm2020/tree-select/tree-select.module.mjs +34 -0
  235. package/esm2020/types.mjs +11 -0
  236. package/esm2020/utils/bem.mjs +44 -0
  237. package/esm2020/utils/coercion.mjs +17 -0
  238. package/fesm2015/alauda-ui.mjs +12051 -0
  239. package/fesm2015/alauda-ui.mjs.map +1 -0
  240. package/{fesm2022 → fesm2020}/alauda-ui.mjs +2870 -2819
  241. package/fesm2020/alauda-ui.mjs.map +1 -0
  242. package/form/common-form.d.ts +8 -1
  243. package/form/form-item/form-item.component.d.ts +1 -1
  244. package/form/form.directive.d.ts +1 -1
  245. package/form/form.types.d.ts +2 -2
  246. package/form/helper-directives.d.ts +5 -5
  247. package/i18n/i18n.pipe.d.ts +1 -1
  248. package/i18n/i18n.type.d.ts +1 -1
  249. package/icon/icon.component.d.ts +1 -1
  250. package/inline-alert/helper-directives.d.ts +1 -1
  251. package/inline-alert/inline-alert.component.d.ts +1 -1
  252. package/inline-alert/inline-alert.types.d.ts +1 -1
  253. package/input/autosize.directive.d.ts +4 -1
  254. package/input/helper-directives.d.ts +4 -4
  255. package/input/input-group/input-group.component.d.ts +1 -1
  256. package/input/input.component.d.ts +4 -1
  257. package/input/number-input/number-input.component.d.ts +1 -1
  258. package/input/search/search.component.d.ts +1 -1
  259. package/input/tags-input/tags-input.component.d.ts +4 -4
  260. package/message/message-wrapper.component.d.ts +1 -1
  261. package/message/message.component.d.ts +1 -1
  262. package/message/message.config.d.ts +20 -0
  263. package/notification/notification-wrapper.component.d.ts +1 -1
  264. package/notification/notification.component.d.ts +5 -1
  265. package/notification/notification.config.d.ts +1 -1
  266. package/package.json +19 -13
  267. package/paginator/paginator-intl.d.ts +9 -0
  268. package/paginator/paginator.component.d.ts +15 -1
  269. package/radio/base-radio.d.ts +1 -1
  270. package/radio/radio-button/radio-button.component.d.ts +1 -1
  271. package/radio/radio-group/radio-group.component.d.ts +4 -1
  272. package/radio/radio.component.d.ts +1 -1
  273. package/radio/radio.types.d.ts +1 -1
  274. package/scrolling/fixed-size-table-virtual-scroll.directive.d.ts +1 -1
  275. package/scrolling/fixed-size-virtual-scroll.directive.d.ts +1 -1
  276. package/scrolling/virtual-for-of.directive.d.ts +1 -1
  277. package/scrolling/virtual-scroll-viewport.component.d.ts +1 -1
  278. package/select/base-select.d.ts +4 -1
  279. package/select/helper-directives.d.ts +2 -2
  280. package/select/multi-select/multi-select.component.d.ts +1 -1
  281. package/select/option/option.component.d.ts +1 -1
  282. package/select/option-group/option-group.component.d.ts +1 -1
  283. package/select/option-placeholder.component.d.ts +1 -1
  284. package/select/select.component.d.ts +1 -1
  285. package/select/select.types.d.ts +3 -3
  286. package/select/validators.d.ts +1 -1
  287. package/shared/click-outside.directive.d.ts +1 -1
  288. package/sort/sort-errors.d.ts +4 -0
  289. package/sort/sort-header.component.d.ts +1 -1
  290. package/sort/sort.directive.d.ts +1 -1
  291. package/sort/sort.types.d.ts +2 -2
  292. package/src/accordion/README.md +13 -0
  293. package/src/anchor/README.md +23 -0
  294. package/src/dropdown/README.md +57 -0
  295. package/src/form/README.md +32 -0
  296. package/src/icon/README.md +28 -0
  297. package/src/inline-alert/README.md +16 -0
  298. package/src/input/number-input/README.md +16 -0
  299. package/src/select/README.md +57 -0
  300. package/src/sort/README.md +13 -0
  301. package/src/table/README.md +8 -0
  302. package/src/table-of-contents/README.md +94 -0
  303. package/src/tag/README.md +32 -0
  304. package/src/tree-select/README.md +34 -0
  305. package/status-bar/status-bar.component.d.ts +1 -1
  306. package/status-bar/status-bar.types.d.ts +2 -2
  307. package/steps/steps.component.d.ts +4 -1
  308. package/steps/types.d.ts +6 -3
  309. package/switch/switch.component.d.ts +1 -1
  310. package/table/table-cell-def.directive.d.ts +5 -1
  311. package/table/table-cell.component.d.ts +2 -2
  312. package/table/table-cell.directive.d.ts +2 -1
  313. package/table/table-column-def.directive.d.ts +5 -1
  314. package/table/table-header-cell-def.directive.d.ts +5 -1
  315. package/table/table-header-cell.directive.d.ts +2 -1
  316. package/table/table-header-row-def.directive.d.ts +5 -1
  317. package/table/table-header-row.component.d.ts +2 -1
  318. package/table/table-placeholder.directive.d.ts +2 -2
  319. package/table/table-row-def.directive.d.ts +6 -1
  320. package/table/table-row.component.d.ts +2 -1
  321. package/table/table-scroll.directive.d.ts +2 -2
  322. package/table/table.component.d.ts +1 -1
  323. package/table-of-contents/toc-container.directive.d.ts +1 -1
  324. package/table-of-contents/toc-content.directive.d.ts +1 -1
  325. package/table-of-contents/toc-link.directive.d.ts +1 -1
  326. package/tabs/tab-body.component.d.ts +23 -7
  327. package/tabs/tab-context.service.d.ts +3 -0
  328. package/tabs/tab-group.component.d.ts +29 -1
  329. package/tabs/tab-header-active-indicator.component.d.ts +10 -1
  330. package/tabs/tab-header.component.d.ts +85 -2
  331. package/tabs/tab.component.d.ts +19 -1
  332. package/tabs/tabs.types.d.ts +5 -2
  333. package/tag/check-tag/check-tag.component.d.ts +1 -1
  334. package/tag/tag.component.d.ts +1 -1
  335. package/tag/tag.types.d.ts +1 -1
  336. package/theme/theme.pipe.d.ts +4 -4
  337. package/theme/theme.types.d.ts +3 -3
  338. package/time-picker/component.d.ts +1 -1
  339. package/time-picker/panel/panel.component.d.ts +1 -1
  340. package/time-picker/time-picker.type.d.ts +1 -1
  341. package/tooltip/base-tooltip.d.ts +1 -1
  342. package/tooltip/tooltip-active.directive.d.ts +1 -1
  343. package/tooltip/tooltip-copy.directive.d.ts +1 -1
  344. package/tooltip/tooltip-intl.d.ts +4 -0
  345. package/tooltip/tooltip.component.d.ts +1 -1
  346. package/tooltip/tooltip.directive.d.ts +1 -1
  347. package/tree-select/tree-node-placeholder.component.d.ts +1 -1
  348. package/tree-select/tree-select.component.d.ts +2 -2
  349. package/tree-select/tree-select.types.d.ts +1 -1
  350. package/types.d.ts +5 -2
  351. package/utils/operators.d.ts +1 -1
  352. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +0 -73
  353. package/esm2022/accordion/accordion.component.mjs +0 -29
  354. package/esm2022/accordion/accordion.module.mjs +0 -39
  355. package/esm2022/alauda-ui.mjs +0 -2
  356. package/esm2022/anchor/anchor.component.mjs +0 -141
  357. package/esm2022/anchor/anchor.directive.mjs +0 -198
  358. package/esm2022/anchor/anchor.module.mjs +0 -35
  359. package/esm2022/autocomplete/autocomplete.component.mjs +0 -72
  360. package/esm2022/autocomplete/autocomplete.directive.mjs +0 -278
  361. package/esm2022/autocomplete/autocomplete.module.mjs +0 -53
  362. package/esm2022/autocomplete/suggestion/suggestion.component.mjs +0 -85
  363. package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +0 -25
  364. package/esm2022/back-top/back-top.component.mjs +0 -68
  365. package/esm2022/back-top/back-top.module.mjs +0 -19
  366. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +0 -33
  367. package/esm2022/breadcrumb/breadcrumb.component.mjs +0 -56
  368. package/esm2022/breadcrumb/breadcrumb.module.mjs +0 -20
  369. package/esm2022/button/button.component.mjs +0 -124
  370. package/esm2022/button/button.module.mjs +0 -20
  371. package/esm2022/button/button.types.mjs +0 -13
  372. package/esm2022/card/card.component.mjs +0 -14
  373. package/esm2022/card/card.module.mjs +0 -40
  374. package/esm2022/card/helper-directives.mjs +0 -45
  375. package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +0 -60
  376. package/esm2022/checkbox/checkbox.component.mjs +0 -116
  377. package/esm2022/checkbox/checkbox.module.mjs +0 -20
  378. package/esm2022/color-picker/color-picker.component.mjs +0 -28
  379. package/esm2022/color-picker/color-picker.module.mjs +0 -19
  380. package/esm2022/date-picker/calendar/constant.mjs +0 -31
  381. package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +0 -137
  382. package/esm2022/date-picker/calendar/footer/component.mjs +0 -29
  383. package/esm2022/date-picker/calendar/header/component.mjs +0 -99
  384. package/esm2022/date-picker/calendar/panel/picker-panel.mjs +0 -158
  385. package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +0 -210
  386. package/esm2022/date-picker/calendar/util.mjs +0 -152
  387. package/esm2022/date-picker/date-picker/date-picker.component.mjs +0 -115
  388. package/esm2022/date-picker/date-picker.module.mjs +0 -82
  389. package/esm2022/date-picker/range-picker/range-picker.component.mjs +0 -88
  390. package/esm2022/date-picker/trigger/trigger.component.mjs +0 -76
  391. package/esm2022/dialog/confirm-dialog/confirm-dialog-config.mjs +0 -13
  392. package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +0 -88
  393. package/esm2022/dialog/dialog-config.mjs +0 -14
  394. package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +0 -42
  395. package/esm2022/dialog/dialog-content/dialog-content.component.mjs +0 -19
  396. package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +0 -13
  397. package/esm2022/dialog/dialog-content/dialog-header.component.mjs +0 -42
  398. package/esm2022/dialog/dialog-ref.mjs +0 -52
  399. package/esm2022/dialog/dialog.component.mjs +0 -154
  400. package/esm2022/dialog/dialog.module.mjs +0 -65
  401. package/esm2022/dialog/dialog.service.mjs +0 -124
  402. package/esm2022/drawer/component/drawer.component.mjs +0 -248
  403. package/esm2022/drawer/component/helper-directives.mjs +0 -33
  404. package/esm2022/drawer/drawer.module.mjs +0 -36
  405. package/esm2022/drawer/drawer.service.mjs +0 -47
  406. package/esm2022/dropdown/dropdown-active.directive.mjs +0 -18
  407. package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +0 -50
  408. package/esm2022/dropdown/dropdown.directive.mjs +0 -83
  409. package/esm2022/dropdown/dropdown.module.mjs +0 -65
  410. package/esm2022/dropdown/menu/menu-content.directive.mjs +0 -59
  411. package/esm2022/dropdown/menu/menu.component.mjs +0 -34
  412. package/esm2022/dropdown/menu-item/menu-item.component.mjs +0 -35
  413. package/esm2022/dropdown/submenu/submenu.component.mjs +0 -38
  414. package/esm2022/form/common-form.mjs +0 -88
  415. package/esm2022/form/form-item/form-item.component.mjs +0 -121
  416. package/esm2022/form/form.directive.mjs +0 -70
  417. package/esm2022/form/form.module.mjs +0 -48
  418. package/esm2022/form/helper-directives.mjs +0 -78
  419. package/esm2022/i18n/i18n.pipe.mjs +0 -21
  420. package/esm2022/i18n/i18n.service.mjs +0 -46
  421. package/esm2022/icon/icon-register.service.mjs +0 -75
  422. package/esm2022/icon/icon.component.mjs +0 -74
  423. package/esm2022/icon/icon.module.mjs +0 -21
  424. package/esm2022/inline-alert/inline-alert.component.mjs +0 -54
  425. package/esm2022/inline-alert/inline-alert.module.mjs +0 -20
  426. package/esm2022/input/autosize.directive.mjs +0 -56
  427. package/esm2022/input/helper-directives.mjs +0 -43
  428. package/esm2022/input/input-group/input-group.component.mjs +0 -46
  429. package/esm2022/input/input.component.mjs +0 -59
  430. package/esm2022/input/input.module.mjs +0 -85
  431. package/esm2022/input/number-input/number-input.component.mjs +0 -115
  432. package/esm2022/input/search/search.component.mjs +0 -87
  433. package/esm2022/input/tags-input/tags-input.component.mjs +0 -264
  434. package/esm2022/message/base-message.mjs +0 -99
  435. package/esm2022/message/message-wrapper.component.mjs +0 -15
  436. package/esm2022/message/message.component.mjs +0 -77
  437. package/esm2022/message/message.config.mjs +0 -20
  438. package/esm2022/message/message.module.mjs +0 -22
  439. package/esm2022/notification/notification-wrapper.component.mjs +0 -17
  440. package/esm2022/notification/notification.component.mjs +0 -106
  441. package/esm2022/notification/notification.module.mjs +0 -23
  442. package/esm2022/paginator/paginator-intl.mjs +0 -24
  443. package/esm2022/paginator/paginator.component.mjs +0 -124
  444. package/esm2022/paginator/paginator.module.mjs +0 -24
  445. package/esm2022/radio/base-radio.mjs +0 -72
  446. package/esm2022/radio/radio-button/radio-button.component.mjs +0 -41
  447. package/esm2022/radio/radio-group/radio-group.component.mjs +0 -70
  448. package/esm2022/radio/radio.component.mjs +0 -23
  449. package/esm2022/radio/radio.module.mjs +0 -21
  450. package/esm2022/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +0 -80
  451. package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +0 -119
  452. package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +0 -27
  453. package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +0 -26
  454. package/esm2022/select/base-select.mjs +0 -345
  455. package/esm2022/select/multi-select/multi-select.component.mjs +0 -318
  456. package/esm2022/select/option/option.component.mjs +0 -119
  457. package/esm2022/select/option-group/option-group.component.mjs +0 -25
  458. package/esm2022/select/select.component.mjs +0 -107
  459. package/esm2022/select/select.module.mjs +0 -78
  460. package/esm2022/select/validators.mjs +0 -78
  461. package/esm2022/shared/click-outside.directive.mjs +0 -29
  462. package/esm2022/sort/sort-errors.mjs +0 -13
  463. package/esm2022/sort/sort-header.component.mjs +0 -74
  464. package/esm2022/sort/sort.directive.mjs +0 -73
  465. package/esm2022/sort/sort.module.mjs +0 -19
  466. package/esm2022/status-bar/status-bar.component.mjs +0 -28
  467. package/esm2022/status-bar/status-bar.module.mjs +0 -19
  468. package/esm2022/steps/steps.component.mjs +0 -180
  469. package/esm2022/steps/steps.module.mjs +0 -19
  470. package/esm2022/switch/switch.component.mjs +0 -43
  471. package/esm2022/switch/switch.module.mjs +0 -18
  472. package/esm2022/table/table-cell-def.directive.mjs +0 -25
  473. package/esm2022/table/table-cell.component.mjs +0 -115
  474. package/esm2022/table/table-cell.directive.mjs +0 -29
  475. package/esm2022/table/table-column-def.directive.mjs +0 -31
  476. package/esm2022/table/table-header-cell-def.directive.mjs +0 -25
  477. package/esm2022/table/table-header-cell.directive.mjs +0 -25
  478. package/esm2022/table/table-header-row-def.directive.mjs +0 -33
  479. package/esm2022/table/table-header-row.component.mjs +0 -24
  480. package/esm2022/table/table-placeholder.directive.mjs +0 -33
  481. package/esm2022/table/table-row-def.directive.mjs +0 -34
  482. package/esm2022/table/table-row.component.mjs +0 -43
  483. package/esm2022/table/table-scroll.directive.mjs +0 -133
  484. package/esm2022/table/table.component.mjs +0 -79
  485. package/esm2022/table/table.module.mjs +0 -96
  486. package/esm2022/table-of-contents/table-of-contents.module.mjs +0 -20
  487. package/esm2022/table-of-contents/toc-container.directive.mjs +0 -111
  488. package/esm2022/table-of-contents/toc-content.directive.mjs +0 -39
  489. package/esm2022/table-of-contents/toc-link.directive.mjs +0 -48
  490. package/esm2022/tabs/tab-body.component.mjs +0 -151
  491. package/esm2022/tabs/tab-context.service.mjs +0 -30
  492. package/esm2022/tabs/tab-group.component.mjs +0 -256
  493. package/esm2022/tabs/tab-header-active-indicator.component.mjs +0 -46
  494. package/esm2022/tabs/tab-header.component.mjs +0 -276
  495. package/esm2022/tabs/tab.component.mjs +0 -77
  496. package/esm2022/tabs/tabs.module.mjs +0 -86
  497. package/esm2022/tabs/tabs.types.mjs +0 -10
  498. package/esm2022/tag/check-tag/check-tag.component.mjs +0 -31
  499. package/esm2022/tag/tag.component.mjs +0 -63
  500. package/esm2022/tag/tag.module.mjs +0 -20
  501. package/esm2022/theme/theme.module.mjs +0 -18
  502. package/esm2022/theme/theme.pipe.mjs +0 -64
  503. package/esm2022/theme/theme.service.mjs +0 -55
  504. package/esm2022/time-picker/component.mjs +0 -181
  505. package/esm2022/time-picker/panel/panel.component.mjs +0 -240
  506. package/esm2022/time-picker/time-picker.module.mjs +0 -56
  507. package/esm2022/tooltip/base-tooltip.mjs +0 -329
  508. package/esm2022/tooltip/tooltip-active.directive.mjs +0 -51
  509. package/esm2022/tooltip/tooltip-copy.directive.mjs +0 -87
  510. package/esm2022/tooltip/tooltip-intl.mjs +0 -21
  511. package/esm2022/tooltip/tooltip.component.mjs +0 -120
  512. package/esm2022/tooltip/tooltip.directive.mjs +0 -44
  513. package/esm2022/tooltip/tooltip.module.mjs +0 -32
  514. package/esm2022/tree-select/tree-select.component.mjs +0 -350
  515. package/esm2022/tree-select/tree-select.module.mjs +0 -34
  516. package/esm2022/types.mjs +0 -8
  517. package/esm2022/utils/bem.mjs +0 -44
  518. package/esm2022/utils/coercion.mjs +0 -13
  519. package/fesm2022/alauda-ui.mjs.map +0 -1
  520. /package/{esm2022 → esm2020}/accordion/index.mjs +0 -0
  521. /package/{esm2022 → esm2020}/anchor/index.mjs +0 -0
  522. /package/{esm2022 → esm2020}/anchor/types.mjs +0 -0
  523. /package/{esm2022 → esm2020}/anchor/utils.mjs +0 -0
  524. /package/{esm2022 → esm2020}/autocomplete/autocomplete.types.mjs +0 -0
  525. /package/{esm2022 → esm2020}/autocomplete/index.mjs +0 -0
  526. /package/{esm2022 → esm2020}/back-top/index.mjs +0 -0
  527. /package/{esm2022 → esm2020}/breadcrumb/index.mjs +0 -0
  528. /package/{esm2022 → esm2020}/button/index.mjs +0 -0
  529. /package/{esm2022 → esm2020}/card/index.mjs +0 -0
  530. /package/{esm2022 → esm2020}/checkbox/index.mjs +0 -0
  531. /package/{esm2022 → esm2020}/color-picker/index.mjs +0 -0
  532. /package/{esm2022 → esm2020}/core/animation/animation-consts.mjs +0 -0
  533. /package/{esm2022 → esm2020}/date-picker/date-picker.type.mjs +0 -0
  534. /package/{esm2022 → esm2020}/date-picker/index.mjs +0 -0
  535. /package/{esm2022 → esm2020}/dialog/dialog.types.mjs +0 -0
  536. /package/{esm2022 → esm2020}/dialog/index.mjs +0 -0
  537. /package/{esm2022 → esm2020}/dialog/utils/errors.mjs +0 -0
  538. /package/{esm2022 → esm2020}/dialog/utils/index.mjs +0 -0
  539. /package/{esm2022 → esm2020}/drawer/component/drawer-ref.mjs +0 -0
  540. /package/{esm2022 → esm2020}/drawer/index.mjs +0 -0
  541. /package/{esm2022 → esm2020}/dropdown/dropdown.types.mjs +0 -0
  542. /package/{esm2022 → esm2020}/dropdown/index.mjs +0 -0
  543. /package/{esm2022 → esm2020}/form/form.types.mjs +0 -0
  544. /package/{esm2022 → esm2020}/form/index.mjs +0 -0
  545. /package/{esm2022 → esm2020}/i18n/i18n.type.mjs +0 -0
  546. /package/{esm2022 → esm2020}/i18n/index.mjs +0 -0
  547. /package/{esm2022 → esm2020}/i18n/language/en.mjs +0 -0
  548. /package/{esm2022 → esm2020}/i18n/language/zh.mjs +0 -0
  549. /package/{esm2022 → esm2020}/icon/icons.mjs +0 -0
  550. /package/{esm2022 → esm2020}/icon/index.mjs +0 -0
  551. /package/{esm2022 → esm2020}/icon/utils.mjs +0 -0
  552. /package/{esm2022 → esm2020}/index.mjs +0 -0
  553. /package/{esm2022 → esm2020}/inline-alert/index.mjs +0 -0
  554. /package/{esm2022 → esm2020}/inline-alert/inline-alert.types.mjs +0 -0
  555. /package/{esm2022 → esm2020}/input/index.mjs +0 -0
  556. /package/{esm2022 → esm2020}/input/tags-input/with-max-row-count.mjs +0 -0
  557. /package/{esm2022 → esm2020}/input/utils/index.mjs +0 -0
  558. /package/{esm2022 → esm2020}/message/index.mjs +0 -0
  559. /package/{esm2022 → esm2020}/message/message-animations.mjs +0 -0
  560. /package/{esm2022 → esm2020}/notification/index.mjs +0 -0
  561. /package/{esm2022 → esm2020}/notification/notification.config.mjs +0 -0
  562. /package/{esm2022 → esm2020}/paginator/index.mjs +0 -0
  563. /package/{esm2022 → esm2020}/radio/index.mjs +0 -0
  564. /package/{esm2022 → esm2020}/radio/radio.types.mjs +0 -0
  565. /package/{esm2022 → esm2020}/scrolling/index.mjs +0 -0
  566. /package/{esm2022 → esm2020}/select/index.mjs +0 -0
  567. /package/{esm2022 → esm2020}/select/select.types.mjs +0 -0
  568. /package/{esm2022 → esm2020}/sort/index.mjs +0 -0
  569. /package/{esm2022 → esm2020}/sort/sort.types.mjs +0 -0
  570. /package/{esm2022 → esm2020}/status-bar/index.mjs +0 -0
  571. /package/{esm2022 → esm2020}/status-bar/status-bar.types.mjs +0 -0
  572. /package/{esm2022 → esm2020}/steps/index.mjs +0 -0
  573. /package/{esm2022 → esm2020}/steps/types.mjs +0 -0
  574. /package/{esm2022 → esm2020}/switch/index.mjs +0 -0
  575. /package/{esm2022 → esm2020}/table/index.mjs +0 -0
  576. /package/{esm2022 → esm2020}/table-of-contents/index.mjs +0 -0
  577. /package/{esm2022 → esm2020}/tabs/index.mjs +0 -0
  578. /package/{esm2022 → esm2020}/tag/index.mjs +0 -0
  579. /package/{esm2022 → esm2020}/tag/tag.types.mjs +0 -0
  580. /package/{esm2022 → esm2020}/theme/index.mjs +0 -0
  581. /package/{esm2022 → esm2020}/theme/theme.types.mjs +0 -0
  582. /package/{esm2022 → esm2020}/theme/utils.mjs +0 -0
  583. /package/{esm2022 → esm2020}/time-picker/constant.mjs +0 -0
  584. /package/{esm2022 → esm2020}/time-picker/index.mjs +0 -0
  585. /package/{esm2022 → esm2020}/time-picker/time-picker.type.mjs +0 -0
  586. /package/{esm2022 → esm2020}/tooltip/index.mjs +0 -0
  587. /package/{esm2022 → esm2020}/tooltip/tooltip.types.mjs +0 -0
  588. /package/{esm2022 → esm2020}/tooltip/utils/index.mjs +0 -0
  589. /package/{esm2022 → esm2020}/tree-select/index.mjs +0 -0
  590. /package/{esm2022 → esm2020}/tree-select/tree-select.types.mjs +0 -0
  591. /package/{esm2022 → esm2020}/utils/animations.mjs +0 -0
  592. /package/{esm2022 → esm2020}/utils/async.mjs +0 -0
  593. /package/{esm2022 → esm2020}/utils/fn.mjs +0 -0
  594. /package/{esm2022 → esm2020}/utils/index.mjs +0 -0
  595. /package/{esm2022 → esm2020}/utils/observe-dom.mjs +0 -0
  596. /package/{esm2022 → esm2020}/utils/operators.mjs +0 -0
  597. /package/{esm2022 → esm2020}/utils/scroll-into-view.mjs +0 -0
  598. /package/{esm2022 → esm2020}/utils/watch-content-exist.mjs +0 -0
@@ -0,0 +1,53 @@
1
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, } from '@angular/core';
2
+ import { buildBem } from '../utils';
3
+ import { TabType } from './tabs.types';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class TabHeaderActiveIndicatorComponent {
7
+ constructor(_elementRef, _ngZone) {
8
+ this._elementRef = _elementRef;
9
+ this._ngZone = _ngZone;
10
+ this.type = TabType.Line;
11
+ this.bem = buildBem('aui-tab-header-active-indicator');
12
+ }
13
+ /**
14
+ * Calculates the styles from the provided element in order to align the indicator to that element.
15
+ * Shows the indicator if previously set as hidden.
16
+ * @param element
17
+ */
18
+ alignToElement(element) {
19
+ if (typeof requestAnimationFrame !== 'undefined') {
20
+ this._ngZone.runOutsideAngular(() => {
21
+ requestAnimationFrame(() => this._setStyles(element));
22
+ });
23
+ }
24
+ else {
25
+ this._setStyles(element);
26
+ }
27
+ }
28
+ /**
29
+ * Sets the proper styles to the element.
30
+ * @param element
31
+ */
32
+ _setStyles(element) {
33
+ const positions = this._getElementPosition(element);
34
+ const nativeEl = this._elementRef.nativeElement;
35
+ nativeEl.style.left = positions.left;
36
+ nativeEl.style.width = positions.width;
37
+ }
38
+ _getElementPosition(element) {
39
+ return {
40
+ left: element ? (element.offsetLeft || 0) + 'px' : '0',
41
+ width: element ? (element.offsetWidth || 0) + 'px' : '0',
42
+ };
43
+ }
44
+ }
45
+ TabHeaderActiveIndicatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TabHeaderActiveIndicatorComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
46
+ TabHeaderActiveIndicatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TabHeaderActiveIndicatorComponent, selector: "aui-tab-header-active-indicator", inputs: { type: "type" }, ngImport: i0, template: "<div [ngClass]=\"bem.block(type)\"></div>\n", directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TabHeaderActiveIndicatorComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'aui-tab-header-active-indicator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, template: "<div [ngClass]=\"bem.block(type)\"></div>\n" }]
50
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { type: [{
51
+ type: Input
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJzL3RhYi1oZWFkZXItYWN0aXZlLWluZGljYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9zcmMvdGFicy90YWItaGVhZGVyLWFjdGl2ZS1pbmRpY2F0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUVMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQU8sUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQVN2QyxNQUFNLE9BQU8saUNBQWlDO0lBTTVDLFlBQ21CLFdBQW9DLEVBQ3BDLE9BQWU7UUFEZixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQU5sQyxTQUFJLEdBQVksT0FBTyxDQUFDLElBQUksQ0FBQztRQUU3QixRQUFHLEdBQVEsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFLcEQsQ0FBQztJQUVKOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsT0FBb0I7UUFDakMsSUFBSSxPQUFPLHFCQUFxQixLQUFLLFdBQVcsRUFBRTtZQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDbEMscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssVUFBVSxDQUFDLE9BQW9CO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztRQUNoRCxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ3JDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDekMsQ0FBQztJQUVPLG1CQUFtQixDQUFDLE9BQW9CO1FBQzlDLE9BQU87WUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHO1lBQ3RELEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUc7U0FDekQsQ0FBQztJQUNKLENBQUM7OzhIQTFDVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyxpR0NwQjlDLDZDQUNBOzJGRG1CYSxpQ0FBaUM7a0JBUDdDLFNBQVM7K0JBQ0UsaUNBQWlDLGlCQUU1QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLHVCQUMxQixLQUFLO3NIQUkxQixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlbSwgYnVpbGRCZW0gfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7IFRhYlR5cGUgfSBmcm9tICcuL3RhYnMudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi1oZWFkZXItYWN0aXZlLWluZGljYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFiSGVhZGVyQWN0aXZlSW5kaWNhdG9yQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgdHlwZTogVGFiVHlwZSA9IFRhYlR5cGUuTGluZTtcblxuICBiZW06IEJlbSA9IGJ1aWxkQmVtKCdhdWktdGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yJyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmdab25lOiBOZ1pvbmUsXG4gICkge31cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgc3R5bGVzIGZyb20gdGhlIHByb3ZpZGVkIGVsZW1lbnQgaW4gb3JkZXIgdG8gYWxpZ24gdGhlIGluZGljYXRvciB0byB0aGF0IGVsZW1lbnQuXG4gICAqIFNob3dzIHRoZSBpbmRpY2F0b3IgaWYgcHJldmlvdXNseSBzZXQgYXMgaGlkZGVuLlxuICAgKiBAcGFyYW0gZWxlbWVudFxuICAgKi9cbiAgYWxpZ25Ub0VsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLl9zZXRTdHlsZXMoZWxlbWVudCkpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NldFN0eWxlcyhlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcHJvcGVyIHN0eWxlcyB0byB0aGUgZWxlbWVudC5cbiAgICogQHBhcmFtIGVsZW1lbnRcbiAgICovXG4gIHByaXZhdGUgX3NldFN0eWxlcyhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRoaXMuX2dldEVsZW1lbnRQb3NpdGlvbihlbGVtZW50KTtcbiAgICBjb25zdCBuYXRpdmVFbCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBuYXRpdmVFbC5zdHlsZS5sZWZ0ID0gcG9zaXRpb25zLmxlZnQ7XG4gICAgbmF0aXZlRWwuc3R5bGUud2lkdGggPSBwb3NpdGlvbnMud2lkdGg7XG4gIH1cblxuICBwcml2YXRlIF9nZXRFbGVtZW50UG9zaXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGVmdDogZWxlbWVudCA/IChlbGVtZW50Lm9mZnNldExlZnQgfHwgMCkgKyAncHgnIDogJzAnLFxuICAgICAgd2lkdGg6IGVsZW1lbnQgPyAoZWxlbWVudC5vZmZzZXRXaWR0aCB8fCAwKSArICdweCcgOiAnMCcsXG4gICAgfTtcbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJiZW0uYmxvY2sodHlwZSlcIj48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,367 @@
1
+ import { FocusKeyManager } from '@angular/cdk/a11y';
2
+ import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
3
+ import { Subject, takeUntil } from 'rxjs';
4
+ import { buildBem, coerceNumber } from '../utils';
5
+ import { TabHeaderAddonDirective, TabLabelWrapperDirective, TabTitleDirective, } from './tab-body.component';
6
+ import { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';
7
+ import { TabSize, TabType } from './tabs.types';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/cdk/scrolling";
10
+ import * as i2 from "../icon/icon.component";
11
+ import * as i3 from "./tab-header-active-indicator.component";
12
+ import * as i4 from "@angular/common";
13
+ import * as i5 from "@angular/cdk/portal";
14
+ import * as i6 from "@angular/cdk/observers";
15
+ /**
16
+ * The distance in pixels that will be overshot when scrolling a tab label into view. This helps
17
+ * provide a small affordance to the label next to it.
18
+ */
19
+ const EXAGGERATED_OVERSCROLL = 60;
20
+ export class TabHeaderComponent {
21
+ constructor(_changeDetectorRef, _viewportRuler) {
22
+ this._changeDetectorRef = _changeDetectorRef;
23
+ this._viewportRuler = _viewportRuler;
24
+ this.bem = buildBem('aui-tab-header');
25
+ this._showAddon = false;
26
+ /** Whether the controls for pagination should be displayed */
27
+ this._showPaginationControls = false;
28
+ /** Whether the tab list can be scrolled more towards the end of the tab label list. */
29
+ this._disableScrollAfter = true;
30
+ /** Whether the tab list can be scrolled more towards the beginning of the tab label list. */
31
+ this._disableScrollBefore = true;
32
+ /** Whether the header should scroll to the selected index after the view has been checked. */
33
+ this._selectedIndexChanged = false;
34
+ /** The distance in pixels that the tab labels should be translated to the left. */
35
+ this._scrollDistance = 0;
36
+ this._selectedIndex = 0;
37
+ /** Emits when the component is destroyed. */
38
+ this._destroyed = new Subject();
39
+ this.type = TabType.Line;
40
+ this.size = TabSize.Medium;
41
+ /** Event emitted when the option is selected. */
42
+ this.selectFocusedIndex = new EventEmitter();
43
+ /** Event emitted when a label is focused. */
44
+ this.indexFocused = new EventEmitter();
45
+ }
46
+ /** The index of the active tab. */
47
+ get selectedIndex() {
48
+ return this._selectedIndex;
49
+ }
50
+ set selectedIndex(value) {
51
+ value = coerceNumber(value);
52
+ this._selectedIndexChanged = this._selectedIndex !== value;
53
+ this._selectedIndex = value;
54
+ if (this._keyManager) {
55
+ this._keyManager.updateActiveItem(value);
56
+ }
57
+ }
58
+ ngOnDestroy() {
59
+ this._destroyed.next();
60
+ this._destroyed.complete();
61
+ }
62
+ ngAfterContentChecked() {
63
+ // If the number of tab labels have changed, check if scrolling should be enabled
64
+ if (this._tabLabelCount !== this._labelWrappers.length) {
65
+ this._updatePagination();
66
+ this._tabLabelCount = this._labelWrappers.length;
67
+ this._changeDetectorRef.markForCheck();
68
+ }
69
+ // If the selected index has changed, scroll to the label and check if the scrolling controls
70
+ // should be disabled.
71
+ if (this._selectedIndexChanged) {
72
+ this._scrollToLabel(this._selectedIndex);
73
+ this._checkScrollingControls();
74
+ this._alignActiveIndicatorToSelectedTab();
75
+ this._selectedIndexChanged = false;
76
+ this._changeDetectorRef.markForCheck();
77
+ }
78
+ // If the scroll distance has been changed (tab selected, focused, scroll controls activated),
79
+ // then translate the header to reflect this.
80
+ if (this._scrollDistanceChanged) {
81
+ this._updateTabScrollPosition();
82
+ this._scrollDistanceChanged = false;
83
+ this._changeDetectorRef.markForCheck();
84
+ }
85
+ if (this._showAddon !== !!this._headerAddon) {
86
+ this._showAddon = !!this._headerAddon;
87
+ this._updatePagination();
88
+ this._changeDetectorRef.markForCheck();
89
+ }
90
+ }
91
+ /**
92
+ * Aligns the ink bar to the selected tab on load.
93
+ */
94
+ ngAfterContentInit() {
95
+ const resize = this._viewportRuler.change(150);
96
+ const realign = () => {
97
+ this._updatePagination();
98
+ this._alignActiveIndicatorToSelectedTab();
99
+ requestAnimationFrame(() => {
100
+ this._scrollToLabel(this._selectedIndex);
101
+ });
102
+ };
103
+ this._keyManager = new FocusKeyManager(this._labelWrappers)
104
+ .withHorizontalOrientation('ltr')
105
+ .withWrap();
106
+ this._keyManager.updateActiveItem(0);
107
+ // Defer the first call in order to allow for slower browsers to lay out the elements.
108
+ // This helps in cases where the user lands directly on a page with paginated tabs.
109
+ typeof requestAnimationFrame !== 'undefined'
110
+ ? requestAnimationFrame(realign)
111
+ : realign();
112
+ // On window resize, realign the ink bar and update the orientation of
113
+ // the key manager if the direction has changed.
114
+ resize.pipe(takeUntil(this._destroyed)).subscribe(() => {
115
+ realign();
116
+ });
117
+ // If there is a change in the focus key manager we need to emit the `indexFocused`
118
+ // event in order to provide a public event that notifies about focus changes. Also we realign
119
+ // the tabs container by scrolling the new focused tab into the visible section.
120
+ this._keyManager.change
121
+ .pipe(takeUntil(this._destroyed))
122
+ .subscribe(newFocusIndex => {
123
+ this.indexFocused.emit(newFocusIndex);
124
+ this._setTabFocus(newFocusIndex);
125
+ });
126
+ }
127
+ /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */
128
+ get scrollDistance() {
129
+ return this._scrollDistance;
130
+ }
131
+ set scrollDistance(v) {
132
+ this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));
133
+ // Mark that the scroll distance has changed so that after the view is checked, the CSS
134
+ // transformation can move the header.
135
+ this._scrollDistanceChanged = true;
136
+ this._checkScrollingControls();
137
+ }
138
+ /** Tracks which element has focus; used for keyboard navigation */
139
+ get focusIndex() {
140
+ return this._keyManager ? this._keyManager.activeItemIndex : 0;
141
+ }
142
+ /** When the focus index is set, we must manually send focus to the correct label */
143
+ set focusIndex(value) {
144
+ if (!this._isValidIndex(value) ||
145
+ this.focusIndex === value ||
146
+ !this._keyManager) {
147
+ return;
148
+ }
149
+ this._keyManager.setActiveItem(value);
150
+ }
151
+ /**
152
+ * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is
153
+ * providing a valid index and return true.
154
+ */
155
+ _isValidIndex(index) {
156
+ if (!this._labelWrappers) {
157
+ return true;
158
+ }
159
+ const tab = this._labelWrappers
160
+ ? this._labelWrappers.toArray()[index]
161
+ : null;
162
+ return !!tab && !tab.disabled;
163
+ }
164
+ _handleKeydown(event) {
165
+ switch (event.key) {
166
+ case 'Home':
167
+ this._keyManager.setFirstItemActive();
168
+ event.preventDefault();
169
+ break;
170
+ case 'End':
171
+ this._keyManager.setLastItemActive();
172
+ event.preventDefault();
173
+ break;
174
+ case 'Enter':
175
+ case 'Space':
176
+ this.selectFocusedIndex.emit(this.focusIndex);
177
+ event.preventDefault();
178
+ break;
179
+ default:
180
+ this._keyManager.onKeydown(event);
181
+ }
182
+ }
183
+ /**
184
+ * Sets focus on the HTML element for the label wrapper and scrolls it into the view if
185
+ * scrolling is enabled.
186
+ */
187
+ _setTabFocus(tabIndex) {
188
+ if (this._showPaginationControls) {
189
+ this._scrollToLabel(tabIndex);
190
+ }
191
+ if (this._labelWrappers?.length > 0) {
192
+ this._labelWrappers.toArray()[tabIndex].focus();
193
+ // Do not let the browser manage scrolling to focus the element, this will be handled
194
+ // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width
195
+ // should be the full width minus the offset width.
196
+ const containerEl = this._tabListContainer.nativeElement;
197
+ containerEl.scrollLeft = 0;
198
+ }
199
+ }
200
+ /**
201
+ * Moves the tab list such that the desired tab label (marked by index) is moved into view.
202
+ *
203
+ * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
204
+ * should be called sparingly.
205
+ */
206
+ _scrollToLabel(labelIndex) {
207
+ const selectedLabel = this._labelWrappers
208
+ ? this._labelWrappers.toArray()[labelIndex]
209
+ : null;
210
+ if (!selectedLabel) {
211
+ return;
212
+ }
213
+ // The view length is the visible width of the tab labels.
214
+ const viewLength = this._tabListContainer.nativeElement.offsetWidth;
215
+ const labelBeforePos = selectedLabel.getOffsetLeft();
216
+ const labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();
217
+ const beforeVisiblePos = this.scrollDistance;
218
+ const afterVisiblePos = this.scrollDistance + viewLength;
219
+ if (labelBeforePos < beforeVisiblePos) {
220
+ // Scroll header to move label to the before direction
221
+ this.scrollDistance -=
222
+ beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;
223
+ }
224
+ else if (labelAfterPos > afterVisiblePos) {
225
+ // Scroll header to move label to the after direction
226
+ this.scrollDistance +=
227
+ labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;
228
+ }
229
+ }
230
+ /**
231
+ * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or
232
+ * the end of the list, respectively). The distance to scroll is computed to be a third of the
233
+ * length of the tab list view window.
234
+ *
235
+ * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
236
+ * should be called sparingly.
237
+ */
238
+ _scrollHeader(scrollDir) {
239
+ const viewLength = this._tabListContainer.nativeElement.offsetWidth;
240
+ // Move the scroll distance one-third the length of the tab list's viewport.
241
+ this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * viewLength) / 3;
242
+ }
243
+ /**
244
+ * Callback for when the MutationObserver detects that the content has changed.
245
+ */
246
+ _onContentChanges() {
247
+ this._updatePagination();
248
+ this._alignActiveIndicatorToSelectedTab();
249
+ this._changeDetectorRef.markForCheck();
250
+ }
251
+ /**
252
+ * Updating the view whether pagination should be enabled or not
253
+ */
254
+ _updatePagination() {
255
+ this._checkPaginationEnabled();
256
+ this._checkScrollingControls();
257
+ this._updateTabScrollPosition();
258
+ }
259
+ /**
260
+ * Evaluate whether the pagination controls should be displayed. If the scroll width of the
261
+ * tab list is wider than the size of the header container, then the pagination controls should
262
+ * be shown.
263
+ *
264
+ * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
265
+ * should be called sparingly.
266
+ */
267
+ _checkPaginationEnabled() {
268
+ const isEnabled = this._tabList.nativeElement.scrollWidth >
269
+ this._paginationWrapper.nativeElement.offsetWidth + 2; // 2 is the border size
270
+ if (!isEnabled) {
271
+ this.scrollDistance = 0;
272
+ }
273
+ const detectChanges = isEnabled !== this._showPaginationControls;
274
+ this._showPaginationControls = isEnabled;
275
+ if (detectChanges) {
276
+ this._changeDetectorRef.markForCheck();
277
+ }
278
+ }
279
+ /**
280
+ * Evaluate whether the before and after controls should be enabled or disabled.
281
+ * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the
282
+ * before button. If the header is at the end of the list (scroll distance is equal to the
283
+ * maximum distance we can scroll), then disable the after button.
284
+ *
285
+ * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
286
+ * should be called sparingly.
287
+ */
288
+ _checkScrollingControls() {
289
+ // Check if the pagination arrows should be activated.
290
+ this._disableScrollBefore = this.scrollDistance === 0;
291
+ this._disableScrollAfter =
292
+ this.scrollDistance === this._getMaxScrollDistance();
293
+ this._changeDetectorRef.markForCheck();
294
+ }
295
+ /**
296
+ * Determines what is the maximum length in pixels that can be set for the scroll distance. This
297
+ * is equal to the difference in width between the tab list container and tab header container.
298
+ *
299
+ * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
300
+ * should be called sparingly.
301
+ */
302
+ _getMaxScrollDistance() {
303
+ const lengthOfTabList = this._tabList.nativeElement.scrollWidth;
304
+ const viewLength = this._tabListContainer.nativeElement.offsetWidth;
305
+ return lengthOfTabList - viewLength || 0;
306
+ }
307
+ /** Performs the CSS transformation on the tab list that will cause the list to scroll. */
308
+ _updateTabScrollPosition() {
309
+ const scrollDistance = this.scrollDistance;
310
+ const translateX = -scrollDistance;
311
+ // Don't use `translate3d` here because we don't want to create a new layer. A new layer
312
+ // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar
313
+ // and ripples will exceed the boundaries of the visible tab bar.
314
+ // See: https://github.com/angular/material2/issues/10276
315
+ this._tabList.nativeElement.style.transform = `translateX(${translateX}px)`;
316
+ }
317
+ /** Tells the active indicator to align itself to the current label wrapper */
318
+ _alignActiveIndicatorToSelectedTab() {
319
+ const selectedLabelWrapper = this._labelWrappers?.length > 0
320
+ ? this._labelWrappers.toArray()[this.selectedIndex].elementRef
321
+ .nativeElement
322
+ : null;
323
+ this._activeIndicator.alignToElement(selectedLabelWrapper);
324
+ }
325
+ }
326
+ TabHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TabHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }], target: i0.ɵɵFactoryTarget.Component });
327
+ TabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TabHeaderComponent, selector: "aui-tab-header", inputs: { type: "type", size: "size", selectedIndex: "selectedIndex" }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, queries: [{ propertyName: "_headerAddon", first: true, predicate: TabHeaderAddonDirective, descendants: true }, { propertyName: "_title", first: true, predicate: TabTitleDirective, descendants: true }, { propertyName: "_labelWrappers", predicate: TabLabelWrapperDirective }], viewQueries: [{ propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_paginationWrapper", first: true, predicate: ["paginationWrapper"], descendants: true, static: true }, { propertyName: "_activeIndicator", first: true, predicate: TabHeaderActiveIndicatorComponent, descendants: true, static: true }], ngImport: i0, template: "<div [ngClass]=\"bem.block(type, size)\">\n <ng-container *ngIf=\"_title\">\n <div [ngClass]=\"bem.element('title')\">\n <ng-template [cdkPortalOutlet]=\"_title\"></ng-template>\n </div>\n </ng-container>\n <div [ngClass]=\"bem.element('header-wrapper')\">\n <div\n [ngClass]=\"bem.element('pagination-wrapper')\"\n #paginationWrapper\n >\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('before')\"\n [attr.disabled]=\"_disableScrollBefore ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </div>\n <div\n [ngClass]=\"bem.element('tab-list-container')\"\n (keydown)=\"_handleKeydown($event)\"\n #tabListContainer\n >\n <div\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\"\n [ngClass]=\"bem.element('tab-list')\"\n #tabList\n >\n <div [ngClass]=\"bem.element('labels')\"><ng-content></ng-content></div>\n <aui-tab-header-active-indicator\n [type]=\"type\"\n ></aui-tab-header-active-indicator>\n </div>\n </div>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('after')\"\n [attr.disabled]=\"_disableScrollAfter ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </div>\n </div>\n <!-- If there is addon template, use it. -->\n <ng-container *ngIf=\"_showAddon\">\n <div [ngClass]=\"bem.element('addon')\">\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".aui-tab-header{display:flex;flex-direction:column;flex-shrink:0;position:relative;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header--large .aui-tab-label{padding:16px 20px;font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--medium .aui-tab-label{padding:12px 20px;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--small .aui-tab-label{padding:8px 16px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tab-header__header-wrapper{display:flex;flex-shrink:0;position:relative}.aui-tab-header__title{display:flex;justify-content:space-between;color:rgb(var(--aui-color-n-1));font-size:var(--aui-font-size-xxl);margin-inline:20px;padding:20px 0 12px;font-weight:var(--aui-font-weight-bolder);border-bottom:1px rgb(var(--aui-color-n-8)) solid;line-height:32px}.aui-tab-header--card{background-color:rgb(var(--aui-color-button-bg))}.aui-tab-header--line{border-radius:var(--aui-border-radius-l);overflow:hidden;box-shadow:0 0 4px #3234371a;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header__pagination-wrapper{display:flex;overflow:hidden;flex-grow:1;align-items:center;position:relative}.aui-tab-header__pagination-button{width:32px;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;z-index:3;box-shadow:0 0 4px #ccc;opacity:.6;transition:box-shadow .3s,opacity .3s,color .3s}.aui-tab-header__pagination-button:hover{opacity:1;color:rgb(var(--aui-color-primary))}.aui-tab-header__pagination-button:first-of-type{margin-right:1px}.aui-tab-header__pagination-button:last-of-type{margin-left:1px}.aui-tab-header__pagination-button[disabled]{cursor:default;box-shadow:none;opacity:.1}.aui-tab-header__tab-list-container{display:flex;flex-grow:1;overflow:hidden;position:relative;z-index:1}.aui-tab-header__tab-list{flex-grow:1;position:relative;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header__labels{display:flex}.aui-tab-header__labels:focus{outline:none}.aui-tab-header__addon{display:inline-flex;align-items:center;justify-content:center;margin:0 8px}.aui-tab-header__spacer{flex:1 1 0}.aui-tab-label{position:relative;cursor:pointer;box-sizing:border-box;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;color:rgb(var(--aui-color-n-2));font-weight:var(--aui-font-weight-bold);z-index:2;transition:opacity .3s}.aui-tab-label:focus,.aui-tab-label.isActive{outline:none}.aui-tab-label:not(.aui-tab-label--disabled).isActive,.aui-tab-label:not(.aui-tab-label--disabled):hover{color:rgb(var(--aui-color-primary))}.aui-tab-label.aui-tab-label--disabled{cursor:not-allowed;opacity:.2}.aui-tab-label__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aui-tab-label__close{margin-left:8px;font-size:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:rgb(var(--aui-color-n-4));transition:all .3s ease}.aui-tab-label__close:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tab-label.cdk-focused:not(.cdk-mouse-focused){box-shadow:inset 0 0 0 3px rgba(var(--aui-color-primary),.3)}aui-tab-header-active-indicator{display:flex;height:100%;position:absolute;top:0;pointer-events:none;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header-active-indicator{position:relative;flex:1;height:100%;z-index:1}.aui-tab-header-active-indicator:after{content:\"\";position:absolute;display:block;background:rgb(var(--aui-color-primary));height:2px}.aui-tab-header-active-indicator--line:after{width:100%;left:0;bottom:0}.aui-tab-header-active-indicator--card{background-color:rgb(var(--aui-color-n-10))}.aui-tab-header-active-indicator--card:after{width:calc(100% + 2px);top:0;left:-1px}\n"], components: [{ type: i2.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { type: i3.TabHeaderActiveIndicatorComponent, selector: "aui-tab-header-active-indicator", inputs: ["type"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i6.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TabHeaderComponent, decorators: [{
329
+ type: Component,
330
+ args: [{ selector: 'aui-tab-header', encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"bem.block(type, size)\">\n <ng-container *ngIf=\"_title\">\n <div [ngClass]=\"bem.element('title')\">\n <ng-template [cdkPortalOutlet]=\"_title\"></ng-template>\n </div>\n </ng-container>\n <div [ngClass]=\"bem.element('header-wrapper')\">\n <div\n [ngClass]=\"bem.element('pagination-wrapper')\"\n #paginationWrapper\n >\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('before')\"\n [attr.disabled]=\"_disableScrollBefore ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </div>\n <div\n [ngClass]=\"bem.element('tab-list-container')\"\n (keydown)=\"_handleKeydown($event)\"\n #tabListContainer\n >\n <div\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\"\n [ngClass]=\"bem.element('tab-list')\"\n #tabList\n >\n <div [ngClass]=\"bem.element('labels')\"><ng-content></ng-content></div>\n <aui-tab-header-active-indicator\n [type]=\"type\"\n ></aui-tab-header-active-indicator>\n </div>\n </div>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('after')\"\n [attr.disabled]=\"_disableScrollAfter ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </div>\n </div>\n <!-- If there is addon template, use it. -->\n <ng-container *ngIf=\"_showAddon\">\n <div [ngClass]=\"bem.element('addon')\">\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".aui-tab-header{display:flex;flex-direction:column;flex-shrink:0;position:relative;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header--large .aui-tab-label{padding:16px 20px;font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--medium .aui-tab-label{padding:12px 20px;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--small .aui-tab-label{padding:8px 16px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tab-header__header-wrapper{display:flex;flex-shrink:0;position:relative}.aui-tab-header__title{display:flex;justify-content:space-between;color:rgb(var(--aui-color-n-1));font-size:var(--aui-font-size-xxl);margin-inline:20px;padding:20px 0 12px;font-weight:var(--aui-font-weight-bolder);border-bottom:1px rgb(var(--aui-color-n-8)) solid;line-height:32px}.aui-tab-header--card{background-color:rgb(var(--aui-color-button-bg))}.aui-tab-header--line{border-radius:var(--aui-border-radius-l);overflow:hidden;box-shadow:0 0 4px #3234371a;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header__pagination-wrapper{display:flex;overflow:hidden;flex-grow:1;align-items:center;position:relative}.aui-tab-header__pagination-button{width:32px;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;z-index:3;box-shadow:0 0 4px #ccc;opacity:.6;transition:box-shadow .3s,opacity .3s,color .3s}.aui-tab-header__pagination-button:hover{opacity:1;color:rgb(var(--aui-color-primary))}.aui-tab-header__pagination-button:first-of-type{margin-right:1px}.aui-tab-header__pagination-button:last-of-type{margin-left:1px}.aui-tab-header__pagination-button[disabled]{cursor:default;box-shadow:none;opacity:.1}.aui-tab-header__tab-list-container{display:flex;flex-grow:1;overflow:hidden;position:relative;z-index:1}.aui-tab-header__tab-list{flex-grow:1;position:relative;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header__labels{display:flex}.aui-tab-header__labels:focus{outline:none}.aui-tab-header__addon{display:inline-flex;align-items:center;justify-content:center;margin:0 8px}.aui-tab-header__spacer{flex:1 1 0}.aui-tab-label{position:relative;cursor:pointer;box-sizing:border-box;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;color:rgb(var(--aui-color-n-2));font-weight:var(--aui-font-weight-bold);z-index:2;transition:opacity .3s}.aui-tab-label:focus,.aui-tab-label.isActive{outline:none}.aui-tab-label:not(.aui-tab-label--disabled).isActive,.aui-tab-label:not(.aui-tab-label--disabled):hover{color:rgb(var(--aui-color-primary))}.aui-tab-label.aui-tab-label--disabled{cursor:not-allowed;opacity:.2}.aui-tab-label__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aui-tab-label__close{margin-left:8px;font-size:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:rgb(var(--aui-color-n-4));transition:all .3s ease}.aui-tab-label__close:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tab-label.cdk-focused:not(.cdk-mouse-focused){box-shadow:inset 0 0 0 3px rgba(var(--aui-color-primary),.3)}aui-tab-header-active-indicator{display:flex;height:100%;position:absolute;top:0;pointer-events:none;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header-active-indicator{position:relative;flex:1;height:100%;z-index:1}.aui-tab-header-active-indicator:after{content:\"\";position:absolute;display:block;background:rgb(var(--aui-color-primary));height:2px}.aui-tab-header-active-indicator--line:after{width:100%;left:0;bottom:0}.aui-tab-header-active-indicator--card{background-color:rgb(var(--aui-color-n-10))}.aui-tab-header-active-indicator--card:after{width:calc(100% + 2px);top:0;left:-1px}\n"] }]
331
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }]; }, propDecorators: { type: [{
332
+ type: Input
333
+ }], size: [{
334
+ type: Input
335
+ }], selectedIndex: [{
336
+ type: Input
337
+ }], selectFocusedIndex: [{
338
+ type: Output
339
+ }], indexFocused: [{
340
+ type: Output
341
+ }], _headerAddon: [{
342
+ type: ContentChild,
343
+ args: [TabHeaderAddonDirective, { static: false }]
344
+ }], _title: [{
345
+ type: ContentChild,
346
+ args: [TabTitleDirective, { static: false }]
347
+ }],
348
+ /**
349
+ * workaround for @link https://github.com/microsoft/TypeScript/pull/42425
350
+ */
351
+ _labelWrappers: [{
352
+ type: ContentChildren,
353
+ args: [TabLabelWrapperDirective]
354
+ }], _tabListContainer: [{
355
+ type: ViewChild,
356
+ args: ['tabListContainer', { static: true }]
357
+ }], _tabList: [{
358
+ type: ViewChild,
359
+ args: ['tabList', { static: true }]
360
+ }], _paginationWrapper: [{
361
+ type: ViewChild,
362
+ args: ['paginationWrapper', { static: true }]
363
+ }], _activeIndicator: [{
364
+ type: ViewChild,
365
+ args: [TabHeaderActiveIndicatorComponent, { static: true }]
366
+ }] } });
367
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFicy90YWItaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy90YWJzL3RhYi1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFHTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQU8sUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixpQkFBaUIsR0FDbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFRaEQ7OztHQUdHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFVbEMsTUFBTSxPQUFPLGtCQUFrQjtJQXlZN0IsWUFDbUIsa0JBQXFDLEVBQ3JDLGNBQTZCO1FBRDdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUF4WWhELFFBQUcsR0FBUSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV0QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLDhEQUE4RDtRQUM5RCw0QkFBdUIsR0FBRyxLQUFLLENB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QWlDLDhEQzdJOUMsaXdEQXFEQTsyRkRGYSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGlCQUdYLGlCQUFpQixDQUFDLElBQUksdUJBQ2hCLEtBQUssbUJBQ1QsdUJBQXVCLENBQUMsTUFBTTtvSUEwQy9DLElBQUk7c0JBREgsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBS0YsYUFBYTtzQkFEaEIsS0FBSztnQkFpQkcsa0JBQWtCO3NCQUQxQixNQUFNO2dCQUtFLFlBQVk7c0JBRHBCLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJeEQsTUFBTTtzQkFETCxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7UUFJbEQ7O1dBRUc7UUFDSCxjQUFjO3NCQUpiLGVBQWU7dUJBQUMsd0JBQXdCO2dCQU96QyxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkvQyxRQUFRO3NCQURQLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdEMsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJaEQsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsaUNBQWlDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgVmlld3BvcnRSdWxlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCZW0sIGJ1aWxkQmVtLCBjb2VyY2VOdW1iZXIgfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7XG4gIFRhYkhlYWRlckFkZG9uRGlyZWN0aXZlLFxuICBUYWJMYWJlbFdyYXBwZXJEaXJlY3RpdmUsXG4gIFRhYlRpdGxlRGlyZWN0aXZlLFxufSBmcm9tICcuL3RhYi1ib2R5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJIZWFkZXJBY3RpdmVJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuL3RhYi1oZWFkZXItYWN0aXZlLWluZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiU2l6ZSwgVGFiVHlwZSB9IGZyb20gJy4vdGFicy50eXBlcyc7XG5cbi8qKlxuICogVGhlIGRpcmVjdGlvbnMgdGhhdCBzY3JvbGxpbmcgY2FuIGdvIGluIHdoZW4gdGhlIGhlYWRlcidzIHRhYnMgZXhjZWVkIHRoZSBoZWFkZXIgd2lkdGguICdBZnRlcidcbiAqIHdpbGwgc2Nyb2xsIHRoZSBoZWFkZXIgdG93YXJkcyB0aGUgZW5kIG9mIHRoZSB0YWJzIGxpc3QgYW5kICdiZWZvcmUnIHdpbGwgc2Nyb2xsIHRvd2FyZHMgdGhlXG4gKiBiZWdpbm5pbmcgb2YgdGhlIGxpc3QuXG4gKi9cbmV4cG9ydCB0eXBlIFNjcm9sbERpcmVjdGlvbiA9ICdhZnRlcicgfCAnYmVmb3JlJztcbi8qKlxuICogVGhlIGRpc3RhbmNlIGluIHBpeGVscyB0aGF0IHdpbGwgYmUgb3ZlcnNob3Qgd2hlbiBzY3JvbGxpbmcgYSB0YWIgbGFiZWwgaW50byB2aWV3LiBUaGlzIGhlbHBzXG4gKiBwcm92aWRlIGEgc21hbGwgYWZmb3JkYW5jZSB0byB0aGUgbGFiZWwgbmV4dCB0byBpdC5cbiAqL1xuY29uc3QgRVhBR0dFUkFURURfT1ZFUlNDUk9MTCA9IDYwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdGFiLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRhYkhlYWRlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJDb250ZW50SW5pdFxue1xuICBiZW06IEJlbSA9IGJ1aWxkQmVtKCdhdWktdGFiLWhlYWRlcicpO1xuXG4gIF9zaG93QWRkb24gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgY29udHJvbHMgZm9yIHBhZ2luYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCAqL1xuICBfc2hvd1BhZ2luYXRpb25Db250cm9scyA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSB0YWIgbGlzdCBjYW4gYmUgc2Nyb2xsZWQgbW9yZSB0b3dhcmRzIHRoZSBlbmQgb2YgdGhlIHRhYiBsYWJlbCBsaXN0LiAqL1xuICBfZGlzYWJsZVNjcm9sbEFmdGVyID0gdHJ1ZTtcblxuICAvKiogV2hldGhlciB0aGUgdGFiIGxpc3QgY2FuIGJlIHNjcm9sbGVkIG1vcmUgdG93YXJkcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0YWIgbGFiZWwgbGlzdC4gKi9cbiAgX2Rpc2FibGVTY3JvbGxCZWZvcmUgPSB0cnVlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBzY3JvbGwgZGlzdGFuY2UgaGFzIGNoYW5nZWQgYW5kIHNob3VsZCBiZSBhcHBsaWVkIGFmdGVyIHRoZSB2aWV3IGlzIGNoZWNrZWQuICovXG4gIHByaXZhdGUgX3Njcm9sbERpc3RhbmNlQ2hhbmdlZDogYm9vbGVhbjtcblxuICAvKiogV2hldGhlciB0aGUgaGVhZGVyIHNob3VsZCBzY3JvbGwgdG8gdGhlIHNlbGVjdGVkIGluZGV4IGFmdGVyIHRoZSB2aWV3IGhhcyBiZWVuIGNoZWNrZWQuICovXG4gIHByaXZhdGUgX3NlbGVjdGVkSW5kZXhDaGFuZ2VkID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBkaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB0aGUgdGFiIGxhYmVscyBzaG91bGQgYmUgdHJhbnNsYXRlZCB0byB0aGUgbGVmdC4gKi9cbiAgcHJpdmF0ZSBfc2Nyb2xsRGlzdGFuY2UgPSAwO1xuXG4gIHByaXZhdGUgX3NlbGVjdGVkSW5kZXggPSAwO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKiBVc2VkIHRvIG1hbmFnZSBmb2N1cyBiZXR3ZWVuIHRoZSB0YWJzLiAqL1xuICBwcml2YXRlIF9rZXlNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8VGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlPjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0YWIgbGFiZWxzIHRoYXQgYXJlIGRpc3BsYXllZCBvbiB0aGUgaGVhZGVyLiBXaGVuIHRoaXMgY2hhbmdlcywgdGhlIGhlYWRlclxuICAgKiBzaG91bGQgcmUtZXZhbHVhdGUgdGhlIHNjcm9sbCBwb3NpdGlvbi5cbiAgICovXG4gIHByaXZhdGUgX3RhYkxhYmVsQ291bnQ6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICB0eXBlOiBUYWJUeXBlID0gVGFiVHlwZS5MaW5lO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IFRhYlNpemUgPSBUYWJTaXplLk1lZGl1bTtcblxuICAvKiogVGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgdGFiLiAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHZhbHVlID0gY29lcmNlTnVtYmVyKHZhbHVlKTtcbiAgICB0aGlzLl9zZWxlY3RlZEluZGV4Q2hhbmdlZCA9IHRoaXMuX3NlbGVjdGVkSW5kZXggIT09IHZhbHVlO1xuICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLl9rZXlNYW5hZ2VyKSB7XG4gICAgICB0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0odmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNlbGVjdEZvY3VzZWRJbmRleCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBsYWJlbCBpcyBmb2N1c2VkLiAqL1xuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgaW5kZXhGb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChUYWJIZWFkZXJBZGRvbkRpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIF9oZWFkZXJBZGRvbjogVGFiSGVhZGVyQWRkb25EaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUYWJUaXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIF90aXRsZTogVGFiVGl0bGVEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJMYWJlbFdyYXBwZXJEaXJlY3RpdmUpXG4gIC8qKlxuICAgKiB3b3JrYXJvdW5kIGZvciBAbGluayBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvcHVsbC80MjQyNVxuICAgKi9cbiAgX2xhYmVsV3JhcHBlcnM6IFF1ZXJ5TGlzdDxUYWJMYWJlbFdyYXBwZXJEaXJlY3RpdmUgJiB7IGRpc2FibGVkPzogYm9vbGVhbiB9PjtcblxuICBAVmlld0NoaWxkKCd0YWJMaXN0Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX3RhYkxpc3RDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkxpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfdGFiTGlzdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgncGFnaW5hdGlvbldyYXBwZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfcGFnaW5hdGlvbldyYXBwZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoVGFiSGVhZGVyQWN0aXZlSW5kaWNhdG9yQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfYWN0aXZlSW5kaWNhdG9yOiBUYWJIZWFkZXJBY3RpdmVJbmRpY2F0b3JDb21wb25lbnQ7XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAvLyBJZiB0aGUgbnVtYmVyIG9mIHRhYiBsYWJlbHMgaGF2ZSBjaGFuZ2VkLCBjaGVjayBpZiBzY3JvbGxpbmcgc2hvdWxkIGJlIGVuYWJsZWRcbiAgICBpZiAodGhpcy5fdGFiTGFiZWxDb3VudCAhPT0gdGhpcy5fbGFiZWxXcmFwcGVycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX3RhYkxhYmVsQ291bnQgPSB0aGlzLl9sYWJlbFdyYXBwZXJzLmxlbmd0aDtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBzZWxlY3RlZCBpbmRleCBoYXMgY2hhbmdlZCwgc2Nyb2xsIHRvIHRoZSBsYWJlbCBhbmQgY2hlY2sgaWYgdGhlIHNjcm9sbGluZyBjb250cm9sc1xuICAgIC8vIHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQpIHtcbiAgICAgIHRoaXMuX3Njcm9sbFRvTGFiZWwodGhpcy5fc2VsZWN0ZWRJbmRleCk7XG4gICAgICB0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCk7XG4gICAgICB0aGlzLl9hbGlnbkFjdGl2ZUluZGljYXRvclRvU2VsZWN0ZWRUYWIoKTtcbiAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXhDaGFuZ2VkID0gZmFsc2U7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgc2Nyb2xsIGRpc3RhbmNlIGhhcyBiZWVuIGNoYW5nZWQgKHRhYiBzZWxlY3RlZCwgZm9jdXNlZCwgc2Nyb2xsIGNvbnRyb2xzIGFjdGl2YXRlZCksXG4gICAgLy8gdGhlbiB0cmFuc2xhdGUgdGhlIGhlYWRlciB0byByZWZsZWN0IHRoaXMuXG4gICAgaWYgKHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlVGFiU2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgIHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Nob3dBZGRvbiAhPT0gISF0aGlzLl9oZWFkZXJBZGRvbikge1xuICAgICAgdGhpcy5fc2hvd0FkZG9uID0gISF0aGlzLl9oZWFkZXJBZGRvbjtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbGlnbnMgdGhlIGluayBiYXIgdG8gdGhlIHNlbGVjdGVkIHRhYiBvbiBsb2FkLlxuICAgKi9cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGNvbnN0IHJlc2l6ZSA9IHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKDE1MCk7XG4gICAgY29uc3QgcmVhbGlnbiA9ICgpID0+IHtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX2FsaWduQWN0aXZlSW5kaWNhdG9yVG9TZWxlY3RlZFRhYigpO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsVG9MYWJlbCh0aGlzLl9zZWxlY3RlZEluZGV4KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLl9rZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLl9sYWJlbFdyYXBwZXJzKVxuICAgICAgLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oJ2x0cicpXG4gICAgICAud2l0aFdyYXAoKTtcbiAgICB0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oMCk7XG5cbiAgICAvLyBEZWZlciB0aGUgZmlyc3QgY2FsbCBpbiBvcmRlciB0byBhbGxvdyBmb3Igc2xvd2VyIGJyb3dzZXJzIHRvIGxheSBvdXQgdGhlIGVsZW1lbnRzLlxuICAgIC8vIFRoaXMgaGVscHMgaW4gY2FzZXMgd2hlcmUgdGhlIHVzZXIgbGFuZHMgZGlyZWN0bHkgb24gYSBwYWdlIHdpdGggcGFnaW5hdGVkIHRhYnMuXG4gICAgdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgID8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlYWxpZ24pXG4gICAgICA6IHJlYWxpZ24oKTtcblxuICAgIC8vIE9uIHdpbmRvdyByZXNpemUsIHJlYWxpZ24gdGhlIGluayBiYXIgYW5kIHVwZGF0ZSB0aGUgb3JpZW50YXRpb24gb2ZcbiAgICAvLyB0aGUga2V5IG1hbmFnZXIgaWYgdGhlIGRpcmVjdGlvbiBoYXMgY2hhbmdlZC5cbiAgICByZXNpemUucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHJlYWxpZ24oKTtcbiAgICB9KTtcblxuICAgIC8vIElmIHRoZXJlIGlzIGEgY2hhbmdlIGluIHRoZSBmb2N1cyBrZXkgbWFuYWdlciB3ZSBuZWVkIHRvIGVtaXQgdGhlIGBpbmRleEZvY3VzZWRgXG4gICAgLy8gZXZlbnQgaW4gb3JkZXIgdG8gcHJvdmlkZSBhIHB1YmxpYyBldmVudCB0aGF0IG5vdGlmaWVzIGFib3V0IGZvY3VzIGNoYW5nZXMuIEFsc28gd2UgcmVhbGlnblxuICAgIC8vIHRoZSB0YWJzIGNvbnRhaW5lciBieSBzY3JvbGxpbmcgdGhlIG5ldyBmb2N1c2VkIHRhYiBpbnRvIHRoZSB2aXNpYmxlIHNlY3Rpb24uXG4gICAgdGhpcy5fa2V5TWFuYWdlci5jaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKVxuICAgICAgLnN1YnNjcmliZShuZXdGb2N1c0luZGV4ID0+IHtcbiAgICAgICAgdGhpcy5pbmRleEZvY3VzZWQuZW1pdChuZXdGb2N1c0luZGV4KTtcbiAgICAgICAgdGhpcy5fc2V0VGFiRm9jdXMobmV3Rm9jdXNJbmRleCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKiBTZXRzIHRoZSBkaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB0aGUgdGFiIGhlYWRlciBzaG91bGQgYmUgdHJhbnNmb3JtZWQgaW4gdGhlIFgtYXhpcy4gKi9cbiAgZ2V0IHNjcm9sbERpc3RhbmNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbERpc3RhbmNlO1xuICB9XG5cbiAgc2V0IHNjcm9sbERpc3RhbmNlKHY6IG51bWJlcikge1xuICAgIHRoaXMuX3Njcm9sbERpc3RhbmNlID0gTWF0aC5tYXgoXG4gICAgICAwLFxuICAgICAgTWF0aC5taW4odGhpcy5fZ2V0TWF4U2Nyb2xsRGlzdGFuY2UoKSwgdiksXG4gICAgKTtcbiAgICAvLyBNYXJrIHRoYXQgdGhlIHNjcm9sbCBkaXN0YW5jZSBoYXMgY2hhbmdlZCBzbyB0aGF0IGFmdGVyIHRoZSB2aWV3IGlzIGNoZWNrZWQsIHRoZSBDU1NcbiAgICAvLyB0cmFuc2Zvcm1hdGlvbiBjYW4gbW92ZSB0aGUgaGVhZGVyLlxuICAgIHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCA9IHRydWU7XG4gICAgdGhpcy5fY2hlY2tTY3JvbGxpbmdDb250cm9scygpO1xuICB9XG5cbiAgLyoqIFRyYWNrcyB3aGljaCBlbGVtZW50IGhhcyBmb2N1czsgdXNlZCBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiAqL1xuICBnZXQgZm9jdXNJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9rZXlNYW5hZ2VyID8gdGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggOiAwO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIGZvY3VzIGluZGV4IGlzIHNldCwgd2UgbXVzdCBtYW51YWxseSBzZW5kIGZvY3VzIHRvIHRoZSBjb3JyZWN0IGxhYmVsICovXG4gIHNldCBmb2N1c0luZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5faXNWYWxpZEluZGV4KHZhbHVlKSB8fFxuICAgICAgdGhpcy5mb2N1c0luZGV4ID09PSB2YWx1ZSB8fFxuICAgICAgIXRoaXMuX2tleU1hbmFnZXJcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGFuIGluZGV4IGlzIHZhbGlkLiAgSWYgdGhlIHRhYnMgYXJlIG5vdCByZWFkeSB5ZXQsIHdlIGFzc3VtZSB0aGF0IHRoZSB1c2VyIGlzXG4gICAqIHByb3ZpZGluZyBhIHZhbGlkIGluZGV4IGFuZCByZXR1cm4gdHJ1ZS5cbiAgICovXG4gIF9pc1ZhbGlkSW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fbGFiZWxXcmFwcGVycykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHRhYiA9IHRoaXMuX2xhYmVsV3JhcHBlcnNcbiAgICAgID8gdGhpcy5fbGFiZWxXcmFwcGVycy50b0FycmF5KClbaW5kZXhdXG4gICAgICA6IG51bGw7XG4gICAgcmV0dXJuICEhdGFiICYmICF0YWIuZGlzYWJsZWQ7XG4gIH1cblxuICBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbmQnOlxuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldExhc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgY2FzZSAnU3BhY2UnOlxuICAgICAgICB0aGlzLnNlbGVjdEZvY3VzZWRJbmRleC5lbWl0KHRoaXMuZm9jdXNJbmRleCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGZvY3VzIG9uIHRoZSBIVE1MIGVsZW1lbnQgZm9yIHRoZSBsYWJlbCB3cmFwcGVyIGFuZCBzY3JvbGxzIGl0IGludG8gdGhlIHZpZXcgaWZcbiAgICogc2Nyb2xsaW5nIGlzIGVuYWJsZWQuXG4gICAqL1xuICBfc2V0VGFiRm9jdXModGFiSW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSB7XG4gICAgICB0aGlzLl9zY3JvbGxUb0xhYmVsKHRhYkluZGV4KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2xhYmVsV3JhcHBlcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2xhYmVsV3JhcHBlcnMudG9BcnJheSgpW3RhYkluZGV4XS5mb2N1cygpO1xuICAgICAgLy8gRG8gbm90IGxldCB0aGUgYnJvd3NlciBtYW5hZ2Ugc2Nyb2xsaW5nIHRvIGZvY3VzIHRoZSBlbGVtZW50LCB0aGlzIHdpbGwgYmUgaGFuZGxlZFxuICAgICAgLy8gYnkgdXNpbmcgdHJhbnNsYXRpb24uIEluIExUUiwgdGhlIHNjcm9sbCBsZWZ0IHNob3VsZCBiZSAwLiBJbiBSVEwsIHRoZSBzY3JvbGwgd2lkdGhcbiAgICAgIC8vIHNob3VsZCBiZSB0aGUgZnVsbCB3aWR0aCBtaW51cyB0aGUgb2Zmc2V0IHdpZHRoLlxuICAgICAgY29uc3QgY29udGFpbmVyRWwgPSB0aGlzLl90YWJMaXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb250YWluZXJFbC5zY3JvbGxMZWZ0ID0gMDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIHRhYiBsaXN0IHN1Y2ggdGhhdCB0aGUgZGVzaXJlZCB0YWIgbGFiZWwgKG1hcmtlZCBieSBpbmRleCkgaXMgbW92ZWQgaW50byB2aWV3LlxuICAgKlxuICAgKiBUaGlzIGlzIGFuIGV4cGVuc2l2ZSBjYWxsIHRoYXQgZm9yY2VzIGEgbGF5b3V0IHJlZmxvdyB0byBjb21wdXRlIGJveCBhbmQgc2Nyb2xsIG1ldHJpY3MgYW5kXG4gICAqIHNob3VsZCBiZSBjYWxsZWQgc3BhcmluZ2x5LlxuICAgKi9cbiAgX3Njcm9sbFRvTGFiZWwobGFiZWxJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IHRoaXMuX2xhYmVsV3JhcHBlcnNcbiAgICAgID8gdGhpcy5fbGFiZWxXcmFwcGVycy50b0FycmF5KClbbGFiZWxJbmRleF1cbiAgICAgIDogbnVsbDtcbiAgICBpZiAoIXNlbGVjdGVkTGFiZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gVGhlIHZpZXcgbGVuZ3RoIGlzIHRoZSB2aXNpYmxlIHdpZHRoIG9mIHRoZSB0YWIgbGFiZWxzLlxuICAgIGNvbnN0IHZpZXdMZW5ndGggPSB0aGlzLl90YWJMaXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgbGFiZWxCZWZvcmVQb3MgPSBzZWxlY3RlZExhYmVsLmdldE9mZnNldExlZnQoKTtcbiAgICBjb25zdCBsYWJlbEFmdGVyUG9zID0gbGFiZWxCZWZvcmVQb3MgKyBzZWxlY3RlZExhYmVsLmdldE9mZnNldFdpZHRoKCk7XG4gICAgY29uc3QgYmVmb3JlVmlzaWJsZVBvcyA9IHRoaXMuc2Nyb2xsRGlzdGFuY2U7XG4gICAgY29uc3QgYWZ0ZXJWaXNpYmxlUG9zID0gdGhpcy5zY3JvbGxEaXN0YW5jZSArIHZpZXdMZW5ndGg7XG4gICAgaWYgKGxhYmVsQmVmb3JlUG9zIDwgYmVmb3JlVmlzaWJsZVBvcykge1xuICAgICAgLy8gU2Nyb2xsIGhlYWRlciB0byBtb3ZlIGxhYmVsIHRvIHRoZSBiZWZvcmUgZGlyZWN0aW9uXG4gICAgICB0aGlzLnNjcm9sbERpc3RhbmNlIC09XG4gICAgICAgIGJlZm9yZVZpc2libGVQb3MgLSBsYWJlbEJlZm9yZVBvcyArIEVYQUdHRVJBVEVEX09WRVJTQ1JPTEw7XG4gICAgfSBlbHNlIGlmIChsYWJlbEFmdGVyUG9zID4gYWZ0ZXJWaXNpYmxlUG9zKSB7XG4gICAgICAvLyBTY3JvbGwgaGVhZGVyIHRvIG1vdmUgbGFiZWwgdG8gdGhlIGFmdGVyIGRpcmVjdGlvblxuICAgICAgdGhpcy5zY3JvbGxEaXN0YW5jZSArPVxuICAgICAgICBsYWJlbEFmdGVyUG9zIC0gYWZ0ZXJWaXNpYmxlUG9zICsgRVhBR0dFUkFURURfT1ZFUlNDUk9MTDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIHRhYiBsaXN0IGluIHRoZSAnYmVmb3JlJyBvciAnYWZ0ZXInIGRpcmVjdGlvbiAodG93YXJkcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0IG9yXG4gICAqIHRoZSBlbmQgb2YgdGhlIGxpc3QsIHJlc3BlY3RpdmVseSkuIFRoZSBkaXN0YW5jZSB0byBzY3JvbGwgaXMgY29tcHV0ZWQgdG8gYmUgYSB0aGlyZCBvZiB0aGVcbiAgICogbGVuZ3RoIG9mIHRoZSB0YWIgbGlzdCB2aWV3IHdpbmRvdy5cbiAgICpcbiAgICogVGhpcyBpcyBhbiBleHBlbnNpdmUgY2FsbCB0aGF0IGZvcmNlcyBhIGxheW91dCByZWZsb3cgdG8gY29tcHV0ZSBib3ggYW5kIHNjcm9sbCBtZXRyaWNzIGFuZFxuICAgKiBzaG91bGQgYmUgY2FsbGVkIHNwYXJpbmdseS5cbiAgICovXG4gIF9zY3JvbGxIZWFkZXIoc2Nyb2xsRGlyOiBTY3JvbGxEaXJlY3Rpb24pIHtcbiAgICBjb25zdCB2aWV3TGVuZ3RoID0gdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIC8vIE1vdmUgdGhlIHNjcm9sbCBkaXN0YW5jZSBvbmUtdGhpcmQgdGhlIGxlbmd0aCBvZiB0aGUgdGFiIGxpc3QncyB2aWV3cG9ydC5cbiAgICB0aGlzLnNjcm9sbERpc3RhbmNlICs9ICgoc2Nyb2xsRGlyID09PSAnYmVmb3JlJyA/IC0xIDogMSkgKiB2aWV3TGVuZ3RoKSAvIDM7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIE11dGF0aW9uT2JzZXJ2ZXIgZGV0ZWN0cyB0aGF0IHRoZSBjb250ZW50IGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgX29uQ29udGVudENoYW5nZXMoKSB7XG4gICAgdGhpcy5fdXBkYXRlUGFnaW5hdGlvbigpO1xuICAgIHRoaXMuX2FsaWduQWN0aXZlSW5kaWNhdG9yVG9TZWxlY3RlZFRhYigpO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0aW5nIHRoZSB2aWV3IHdoZXRoZXIgcGFnaW5hdGlvbiBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICovXG4gIF91cGRhdGVQYWdpbmF0aW9uKCkge1xuICAgIHRoaXMuX2NoZWNrUGFnaW5hdGlvbkVuYWJsZWQoKTtcbiAgICB0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCk7XG4gICAgdGhpcy5fdXBkYXRlVGFiU2Nyb2xsUG9zaXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZSB3aGV0aGVyIHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xzIHNob3VsZCBiZSBkaXNwbGF5ZWQuIElmIHRoZSBzY3JvbGwgd2lkdGggb2YgdGhlXG4gICAqIHRhYiBsaXN0IGlzIHdpZGVyIHRoYW4gdGhlIHNpemUgb2YgdGhlIGhlYWRlciBjb250YWluZXIsIHRoZW4gdGhlIHBhZ2luYXRpb24gY29udHJvbHMgc2hvdWxkXG4gICAqIGJlIHNob3duLlxuICAgKlxuICAgKiBUaGlzIGlzIGFuIGV4cGVuc2l2ZSBjYWxsIHRoYXQgZm9yY2VzIGEgbGF5b3V0IHJlZmxvdyB0byBjb21wdXRlIGJveCBhbmQgc2Nyb2xsIG1ldHJpY3MgYW5kXG4gICAqIHNob3VsZCBiZSBjYWxsZWQgc3BhcmluZ2x5LlxuICAgKi9cbiAgX2NoZWNrUGFnaW5hdGlvbkVuYWJsZWQoKSB7XG4gICAgY29uc3QgaXNFbmFibGVkID1cbiAgICAgIHRoaXMuX3RhYkxpc3QubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aCA+XG4gICAgICB0aGlzLl9wYWdpbmF0aW9uV3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgMjsgLy8gMiBpcyB0aGUgYm9yZGVyIHNpemVcbiAgICBpZiAoIWlzRW5hYmxlZCkge1xuICAgICAgdGhpcy5zY3JvbGxEaXN0YW5jZSA9IDA7XG4gICAgfVxuICAgIGNvbnN0IGRldGVjdENoYW5nZXMgPSBpc0VuYWJsZWQgIT09IHRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM7XG4gICAgdGhpcy5fc2hvd1BhZ2luYXRpb25Db250cm9scyA9IGlzRW5hYmxlZDtcblxuICAgIGlmIChkZXRlY3RDaGFuZ2VzKSB7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGUgd2hldGhlciB0aGUgYmVmb3JlIGFuZCBhZnRlciBjb250cm9scyBzaG91bGQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZC5cbiAgICogSWYgdGhlIGhlYWRlciBpcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0IChzY3JvbGwgZGlzdGFuY2UgaXMgZXF1YWwgdG8gMCkgdGhlbiBkaXNhYmxlIHRoZVxuICAgKiBiZWZvcmUgYnV0dG9uLiBJZiB0aGUgaGVhZGVyIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKHNjcm9sbCBkaXN0YW5jZSBpcyBlcXVhbCB0byB0aGVcbiAgICogbWF4aW11bSBkaXN0YW5jZSB3ZSBjYW4gc2Nyb2xsKSwgdGhlbiBkaXNhYmxlIHRoZSBhZnRlciBidXR0b24uXG4gICAqXG4gICAqIFRoaXMgaXMgYW4gZXhwZW5zaXZlIGNhbGwgdGhhdCBmb3JjZXMgYSBsYXlvdXQgcmVmbG93IHRvIGNvbXB1dGUgYm94IGFuZCBzY3JvbGwgbWV0cmljcyBhbmRcbiAgICogc2hvdWxkIGJlIGNhbGxlZCBzcGFyaW5nbHkuXG4gICAqL1xuICBfY2hlY2tTY3JvbGxpbmdDb250cm9scygpIHtcbiAgICAvLyBDaGVjayBpZiB0aGUgcGFnaW5hdGlvbiBhcnJvd3Mgc2hvdWxkIGJlIGFjdGl2YXRlZC5cbiAgICB0aGlzLl9kaXNhYmxlU2Nyb2xsQmVmb3JlID0gdGhpcy5zY3JvbGxEaXN0YW5jZSA9PT0gMDtcbiAgICB0aGlzLl9kaXNhYmxlU2Nyb2xsQWZ0ZXIgPVxuICAgICAgdGhpcy5zY3JvbGxEaXN0YW5jZSA9PT0gdGhpcy5fZ2V0TWF4U2Nyb2xsRGlzdGFuY2UoKTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIGluIHBpeGVscyB0aGF0IGNhbiBiZSBzZXQgZm9yIHRoZSBzY3JvbGwgZGlzdGFuY2UuIFRoaXNcbiAgICogaXMgZXF1YWwgdG8gdGhlIGRpZmZlcmVuY2UgaW4gd2lkdGggYmV0d2VlbiB0aGUgdGFiIGxpc3QgY29udGFpbmVyIGFuZCB0YWIgaGVhZGVyIGNvbnRhaW5lci5cbiAgICpcbiAgICogVGhpcyBpcyBhbiBleHBlbnNpdmUgY2FsbCB0aGF0IGZvcmNlcyBhIGxheW91dCByZWZsb3cgdG8gY29tcHV0ZSBib3ggYW5kIHNjcm9sbCBtZXRyaWNzIGFuZFxuICAgKiBzaG91bGQgYmUgY2FsbGVkIHNwYXJpbmdseS5cbiAgICovXG4gIF9nZXRNYXhTY3JvbGxEaXN0YW5jZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IGxlbmd0aE9mVGFiTGlzdCA9IHRoaXMuX3RhYkxpc3QubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aDtcbiAgICBjb25zdCB2aWV3TGVuZ3RoID0gdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIHJldHVybiBsZW5ndGhPZlRhYkxpc3QgLSB2aWV3TGVuZ3RoIHx8IDA7XG4gIH1cblxuICAvKiogUGVyZm9ybXMgdGhlIENTUyB0cmFuc2Zvcm1hdGlvbiBvbiB0aGUgdGFiIGxpc3QgdGhhdCB3aWxsIGNhdXNlIHRoZSBsaXN0IHRvIHNjcm9sbC4gKi9cbiAgX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCkge1xuICAgIGNvbnN0IHNjcm9sbERpc3RhbmNlID0gdGhpcy5zY3JvbGxEaXN0YW5jZTtcbiAgICBjb25zdCB0cmFuc2xhdGVYID0gLXNjcm9sbERpc3RhbmNlO1xuICAgIC8vIERvbid0IHVzZSBgdHJhbnNsYXRlM2RgIGhlcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIGNyZWF0ZSBhIG5ldyBsYXllci4gQSBuZXcgbGF5ZXJcbiAgICAvLyBzZWVtcyB0byBjYXVzZSBmbGlja2VyaW5nIGFuZCBvdmVyZmxvdyBpbiBJbnRlcm5ldCBFeHBsb3Jlci4gRm9yIGV4YW1wbGUsIHRoZSBpbmsgYmFyXG4gICAgLy8gYW5kIHJpcHBsZXMgd2lsbCBleGNlZWQgdGhlIGJvdW5kYXJpZXMgb2YgdGhlIHZpc2libGUgdGFiIGJhci5cbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL21hdGVyaWFsMi9pc3N1ZXMvMTAyNzZcbiAgICB0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHt0cmFuc2xhdGVYfXB4KWA7XG4gIH1cblxuICAvKiogVGVsbHMgdGhlIGFjdGl2ZSBpbmRpY2F0b3IgdG8gYWxpZ24gaXRzZWxmIHRvIHRoZSBjdXJyZW50IGxhYmVsIHdyYXBwZXIgKi9cbiAgX2FsaWduQWN0aXZlSW5kaWNhdG9yVG9TZWxlY3RlZFRhYigpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZExhYmVsV3JhcHBlciA9XG4gICAgICB0aGlzLl9sYWJlbFdyYXBwZXJzPy5sZW5ndGggPiAwXG4gICAgICAgID8gdGhpcy5fbGFiZWxXcmFwcGVycy50b0FycmF5KClbdGhpcy5zZWxlY3RlZEluZGV4XS5lbGVtZW50UmVmXG4gICAgICAgICAgICAubmF0aXZlRWxlbWVudFxuICAgICAgICA6IG51bGw7XG4gICAgdGhpcy5fYWN0aXZlSW5kaWNhdG9yLmFsaWduVG9FbGVtZW50KHNlbGVjdGVkTGFiZWxXcmFwcGVyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICApIHt9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImJlbS5ibG9jayh0eXBlLCBzaXplKVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3RpdGxlXCI+XG4gICAgPGRpdiBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgndGl0bGUnKVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX3RpdGxlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxkaXYgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2hlYWRlci13cmFwcGVyJylcIj5cbiAgICA8ZGl2XG4gICAgICBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgncGFnaW5hdGlvbi13cmFwcGVyJylcIlxuICAgICAgI3BhZ2luYXRpb25XcmFwcGVyXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzXCJcbiAgICAgICAgKGNsaWNrKT1cIl9zY3JvbGxIZWFkZXIoJ2JlZm9yZScpXCJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiX2Rpc2FibGVTY3JvbGxCZWZvcmUgPyAnJyA6IG51bGxcIlxuICAgICAgICBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgncGFnaW5hdGlvbi1idXR0b24nKVwiXG4gICAgICA+XG4gICAgICAgIDxhdWktaWNvbiBpY29uPVwiYW5nbGVfbGVmdFwiPjwvYXVpLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3RhYi1saXN0LWNvbnRhaW5lcicpXCJcbiAgICAgICAgKGtleWRvd24pPVwiX2hhbmRsZUtleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICN0YWJMaXN0Q29udGFpbmVyXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICByb2xlPVwidGFibGlzdFwiXG4gICAgICAgICAgKGNka09ic2VydmVDb250ZW50KT1cIl9vbkNvbnRlbnRDaGFuZ2VzKClcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCd0YWItbGlzdCcpXCJcbiAgICAgICAgICAjdGFiTGlzdFxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgnbGFiZWxzJylcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+XG4gICAgICAgICAgPGF1aS10YWItaGVhZGVyLWFjdGl2ZS1pbmRpY2F0b3JcbiAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgID48L2F1aS10YWItaGVhZGVyLWFjdGl2ZS1pbmRpY2F0b3I+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiX3Nob3dQYWdpbmF0aW9uQ29udHJvbHNcIlxuICAgICAgICAoY2xpY2spPVwiX3Njcm9sbEhlYWRlcignYWZ0ZXInKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cIl9kaXNhYmxlU2Nyb2xsQWZ0ZXIgPyAnJyA6IG51bGxcIlxuICAgICAgICBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgncGFnaW5hdGlvbi1idXR0b24nKVwiXG4gICAgICA+XG4gICAgICAgIDxhdWktaWNvbiBpY29uPVwiYW5nbGVfcmlnaHRcIj48L2F1aS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBJZiB0aGVyZSBpcyBhZGRvbiB0ZW1wbGF0ZSwgdXNlIGl0LiAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3Nob3dBZGRvblwiPlxuICAgICAgPGRpdiBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgnYWRkb24nKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJfaGVhZGVyQWRkb25cIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,85 @@
1
+ /* eslint-disable no-prototype-builtins */
2
+ import { TemplatePortal } from '@angular/cdk/portal';
3
+ import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
4
+ import { Subject } from 'rxjs';
5
+ import { coerceAttrBoolean } from '../utils';
6
+ import { TabContentDirective, TabLabelDirective } from './tab-body.component';
7
+ import { TabContextService } from './tab-context.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "./tab-context.service";
10
+ export class TabComponent {
11
+ constructor(_viewContainerRef, tabContext) {
12
+ this._viewContainerRef = _viewContainerRef;
13
+ this.tabContext = tabContext;
14
+ /** Plain text label for the tab, used when there is no template label. */
15
+ this.textLabel = '';
16
+ /** Whether or not to show the close button in the header */
17
+ this.closeable = false;
18
+ this.close = new EventEmitter();
19
+ /**
20
+ * The relatively indexed position where 0 represents the center, negative is left, and positive
21
+ * represents the right.
22
+ */
23
+ this.position = null;
24
+ /**
25
+ * The initial relatively index origin of the tab if it was created and selected after there
26
+ * was already a selected tab. Provides context of what position the tab should originate from.
27
+ */
28
+ this.origin = null;
29
+ /** Emits whenever the internal state of the tab changes. */
30
+ this._stateChanges = new Subject();
31
+ /** Portal that will be the hosted content of the tab */
32
+ this._contentPortal = null;
33
+ this._disabled = false;
34
+ }
35
+ /** Whether or not the tab is disabled */
36
+ get disabled() {
37
+ return this._disabled;
38
+ }
39
+ set disabled(value) {
40
+ this._disabled = coerceAttrBoolean(value);
41
+ }
42
+ get content() {
43
+ return this._contentPortal;
44
+ }
45
+ ngAfterContentInit() {
46
+ this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);
47
+ }
48
+ ngOnDestroy() {
49
+ this._stateChanges.complete();
50
+ }
51
+ ngOnChanges(changes) {
52
+ if (changes.hasOwnProperty('textLabel') ||
53
+ changes.hasOwnProperty('disabled') ||
54
+ changes.hasOwnProperty('closeable')) {
55
+ this._stateChanges.next();
56
+ }
57
+ }
58
+ }
59
+ TabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TabComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.TabContextService }], target: i0.ɵɵFactoryTarget.Component });
60
+ TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TabComponent, selector: "aui-tab", inputs: { name: "name", textLabel: ["label", "textLabel"], closeable: "closeable", disabled: "disabled" }, outputs: { close: "close" }, providers: [TabContextService], queries: [{ propertyName: "templateLabel", first: true, predicate: TabLabelDirective, descendants: true }, { propertyName: "_explicitContent", first: true, predicate: TabContentDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: ["auiTab"], usesOnChanges: true, ngImport: i0, template: "<!--\n Create a template for the content of the <aui-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group.\n-->\n<ng-template><ng-content></ng-content></ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TabComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ selector: 'aui-tab', exportAs: 'auiTab', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, providers: [TabContextService], template: "<!--\n Create a template for the content of the <aui-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group.\n-->\n<ng-template><ng-content></ng-content></ng-template>\n" }]
64
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.TabContextService }]; }, propDecorators: { name: [{
65
+ type: Input
66
+ }], textLabel: [{
67
+ type: Input,
68
+ args: ['label']
69
+ }], closeable: [{
70
+ type: Input
71
+ }], disabled: [{
72
+ type: Input
73
+ }], close: [{
74
+ type: Output
75
+ }], templateLabel: [{
76
+ type: ContentChild,
77
+ args: [TabLabelDirective, { static: false }]
78
+ }], _explicitContent: [{
79
+ type: ContentChild,
80
+ args: [TabContentDirective, { read: TemplateRef, static: false }]
81
+ }], _implicitContent: [{
82
+ type: ViewChild,
83
+ args: [TemplateRef, { static: true }]
84
+ }] } });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJzL3RhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9zcmMvdGFicy90YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFFVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQVcxRCxNQUFNLE9BQU8sWUFBWTtJQStEdkIsWUFDbUIsaUJBQW1DLEVBQ3BDLFVBQTZCO1FBRDVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDcEMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUE3RC9DLDBFQUEwRTtRQUUxRSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsNERBQTREO1FBRTVELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFhbEIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFvQmpDOzs7V0FHRztRQUNILGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRS9COzs7V0FHRztRQUNILFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBRTdCLDREQUE0RDtRQUNuRCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFN0Msd0RBQXdEO1FBQ2hELG1CQUFjLEdBQTBCLElBQUksQ0FBQztRQUU3QyxjQUFTLEdBQUcsS0FBSyxDQUFDO0lBS3ZCLENBQUM7SUF0REosMENBQTBDO0lBQzFDLElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBbUI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBbUJELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBMkJELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUN0QyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUNFLE9BQU8sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQ25DO1lBQ0EsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7O3lHQXZGVSxZQUFZOzZGQUFaLFlBQVksMEtBRlosQ0FBQyxpQkFBaUIsQ0FBQyxxRUE0QmhCLGlCQUFpQixtRkFNakIsbUJBQW1CLDJCQUFVLFdBQVcsK0VBSTNDLFdBQVcseUdDdEV4QiwrUUFNQTsyRkQ0QmEsWUFBWTtrQkFUeEIsU0FBUzsrQkFDRSxTQUFTLFlBQ1QsUUFBUSxpQkFFSCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLHVCQUMxQixLQUFLLGFBQ2YsQ0FBQyxpQkFBaUIsQ0FBQzt1SUFJOUIsSUFBSTtzQkFESCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSzt1QkFBQyxPQUFPO2dCQUtkLFNBQVM7c0JBRFIsS0FBSztnQkFLRixRQUFRO3NCQURYLEtBQUs7Z0JBVU4sS0FBSztzQkFESixNQUFNO2dCQUtQLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT2xELGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUt2RSxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zICovXG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGNvZXJjZUF0dHJCb29sZWFuIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBUYWJDb250ZW50RGlyZWN0aXZlLCBUYWJMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vdGFiLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi90YWItY29udGV4dC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRhYicsXG4gIGV4cG9ydEFzOiAnYXVpVGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgcHJvdmlkZXJzOiBbVGFiQ29udGV4dFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZztcblxuICAvKiogUGxhaW4gdGV4dCBsYWJlbCBmb3IgdGhlIHRhYiwgdXNlZCB3aGVuIHRoZXJlIGlzIG5vIHRlbXBsYXRlIGxhYmVsLiAqL1xuICBASW5wdXQoJ2xhYmVsJylcbiAgdGV4dExhYmVsID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGNsb3NlIGJ1dHRvbiBpbiB0aGUgaGVhZGVyICovXG4gIEBJbnB1dCgpXG4gIGNsb3NlYWJsZSA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgdGFiIGlzIGRpc2FibGVkICAqL1xuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgJycpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUF0dHJCb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQ29udGVudCBmb3IgdGhlIHRhYiBsYWJlbCBnaXZlbiBieSBgPG5nLXRlbXBsYXRlIFthdWlUYWJMYWJlbF0+YC4gKi9cbiAgQENvbnRlbnRDaGlsZChUYWJMYWJlbERpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHRlbXBsYXRlTGFiZWw6IFRhYkxhYmVsRGlyZWN0aXZlO1xuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBwcm92aWRlZCBpbiB0aGUgdGFiIGNvbnRlbnQgdGhhdCB3aWxsIGJlIHVzZWQgaWYgcHJlc2VudCwgdXNlZCB0byBlbmFibGUgbGF6eS1sb2FkaW5nXG4gICAqL1xuICBAQ29udGVudENoaWxkKFRhYkNvbnRlbnREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgX2V4cGxpY2l0Q29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKiogVGVtcGxhdGUgaW5zaWRlIHRoZSBBdWlUYWIgdmlldyB0aGF0IGNvbnRhaW5zIGFuIGA8bmctY29udGVudD5gLiAqL1xuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfaW1wbGljaXRDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCBjb250ZW50KCk6IFRlbXBsYXRlUG9ydGFsIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRQb3J0YWw7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlbHkgaW5kZXhlZCBwb3NpdGlvbiB3aGVyZSAwIHJlcHJlc2VudHMgdGhlIGNlbnRlciwgbmVnYXRpdmUgaXMgbGVmdCwgYW5kIHBvc2l0aXZlXG4gICAqIHJlcHJlc2VudHMgdGhlIHJpZ2h0LlxuICAgKi9cbiAgcG9zaXRpb246IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCByZWxhdGl2ZWx5IGluZGV4IG9yaWdpbiBvZiB0aGUgdGFiIGlmIGl0IHdhcyBjcmVhdGVkIGFuZCBzZWxlY3RlZCBhZnRlciB0aGVyZVxuICAgKiB3YXMgYWxyZWFkeSBhIHNlbGVjdGVkIHRhYi4gUHJvdmlkZXMgY29udGV4dCBvZiB3aGF0IHBvc2l0aW9uIHRoZSB0YWIgc2hvdWxkIG9yaWdpbmF0ZSBmcm9tLlxuICAgKi9cbiAgb3JpZ2luOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHN0YXRlIG9mIHRoZSB0YWIgY2hhbmdlcy4gKi9cbiAgcmVhZG9ubHkgX3N0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqIFBvcnRhbCB0aGF0IHdpbGwgYmUgdGhlIGhvc3RlZCBjb250ZW50IG9mIHRoZSB0YWIgKi9cbiAgcHJpdmF0ZSBfY29udGVudFBvcnRhbDogVGVtcGxhdGVQb3J0YWwgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIHJlYWRvbmx5IHRhYkNvbnRleHQ6IFRhYkNvbnRleHRTZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRlbnRQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICB0aGlzLl9leHBsaWNpdENvbnRlbnQgfHwgdGhpcy5faW1wbGljaXRDb250ZW50LFxuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZixcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgndGV4dExhYmVsJykgfHxcbiAgICAgIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2Rpc2FibGVkJykgfHxcbiAgICAgIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2Nsb3NlYWJsZScpXG4gICAgKSB7XG4gICAgICB0aGlzLl9zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLVxuICBDcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGNvbnRlbnQgb2YgdGhlIDxhdWktdGFiPiBzbyB0aGF0IHdlIGNhbiBncmFiIGEgcmVmZXJlbmNlIHRvIHRoaXNcbiAgVGVtcGxhdGVSZWYgYW5kIHVzZSBpdCBpbiBhIFBvcnRhbCB0byByZW5kZXIgdGhlIHRhYiBjb250ZW50IGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZSBpbiB0aGVcbiAgdGFiLWdyb3VwLlxuLS0+XG48bmctdGVtcGxhdGU+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+XG4iXX0=