@alauda/ui 6.5.10-beta.4 → 6.5.10-beta.41

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 (606) hide show
  1. package/accordion/accordion-item/accordion-item.component.d.ts +3 -3
  2. package/accordion/accordion.component.d.ts +1 -1
  3. package/anchor/anchor.component.d.ts +2 -2
  4. package/anchor/anchor.directive.d.ts +3 -3
  5. package/autocomplete/autocomplete-placeholder.component.d.ts +1 -1
  6. package/autocomplete/autocomplete.component.d.ts +1 -1
  7. package/autocomplete/autocomplete.directive.d.ts +2 -2
  8. package/autocomplete/autocomplete.types.d.ts +1 -1
  9. package/autocomplete/helper-directives.d.ts +1 -1
  10. package/autocomplete/suggestion/suggestion.component.d.ts +6 -6
  11. package/autocomplete/suggestion-group/suggestion-group.component.d.ts +1 -1
  12. package/back-top/back-top.component.d.ts +3 -2
  13. package/back-top/back-top.module.d.ts +2 -1
  14. package/breadcrumb/breadcrumb-item.component.d.ts +1 -1
  15. package/breadcrumb/breadcrumb.component.d.ts +1 -1
  16. package/button/button-group/button-group.component.d.ts +1 -1
  17. package/button/button.component.d.ts +1 -1
  18. package/button/button.types.d.ts +1 -12
  19. package/card/card.component.d.ts +1 -1
  20. package/card/helper-directives.d.ts +3 -7
  21. package/card/section.component.d.ts +1 -1
  22. package/checkbox/checkbox-group/checkbox-group.component.d.ts +3 -3
  23. package/checkbox/checkbox.component.d.ts +1 -1
  24. package/color-picker/color-picker.component.d.ts +1 -1
  25. package/date-picker/calendar/date-picker-panel/component.d.ts +1 -1
  26. package/date-picker/calendar/footer/component.d.ts +1 -1
  27. package/date-picker/calendar/header/component.d.ts +1 -1
  28. package/date-picker/calendar/panel/picker-panel.d.ts +1 -1
  29. package/date-picker/calendar/range-picker-panel/component.d.ts +1 -1
  30. package/date-picker/date-picker/date-picker.component.d.ts +1 -1
  31. package/date-picker/date-picker.type.d.ts +2 -2
  32. package/date-picker/range-picker/range-picker.component.d.ts +1 -1
  33. package/date-picker/trigger/trigger.component.d.ts +1 -1
  34. package/dialog/confirm-dialog/confirm-dialog.component.d.ts +1 -1
  35. package/dialog/dialog-content/dialog-close.directive.d.ts +1 -1
  36. package/dialog/dialog-content/dialog-content.component.d.ts +1 -1
  37. package/dialog/dialog-content/dialog-footer.component.d.ts +1 -1
  38. package/dialog/dialog-content/dialog-header.component.d.ts +1 -1
  39. package/dialog/dialog.component.d.ts +1 -1
  40. package/dialog/dialog.types.d.ts +3 -3
  41. package/drawer/component/drawer.component.d.ts +1 -1
  42. package/drawer/component/helper-directives.d.ts +3 -3
  43. package/dropdown/dropdown-active.directive.d.ts +1 -1
  44. package/dropdown/dropdown-button/dropdown-button.component.d.ts +3 -4
  45. package/dropdown/dropdown.directive.d.ts +1 -1
  46. package/dropdown/dropdown.types.d.ts +1 -1
  47. package/dropdown/helper-directives.d.ts +1 -1
  48. package/dropdown/menu/menu-content.directive.d.ts +1 -1
  49. package/dropdown/menu/menu.component.d.ts +1 -1
  50. package/dropdown/menu-group/menu-group.component.d.ts +1 -1
  51. package/dropdown/menu-item/menu-item.component.d.ts +1 -1
  52. package/dropdown/submenu/submenu.component.d.ts +1 -1
  53. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +73 -0
  54. package/esm2022/accordion/accordion.component.mjs +29 -0
  55. package/esm2022/accordion/accordion.module.mjs +39 -0
  56. package/esm2022/alauda-ui.mjs +2 -0
  57. package/esm2022/anchor/anchor.component.mjs +141 -0
  58. package/esm2022/anchor/anchor.directive.mjs +198 -0
  59. package/esm2022/anchor/anchor.module.mjs +35 -0
  60. package/{esm2020 → esm2022}/autocomplete/autocomplete-placeholder.component.mjs +4 -4
  61. package/esm2022/autocomplete/autocomplete.component.mjs +72 -0
  62. package/esm2022/autocomplete/autocomplete.directive.mjs +282 -0
  63. package/esm2022/autocomplete/autocomplete.module.mjs +53 -0
  64. package/{esm2020 → esm2022}/autocomplete/helper-directives.mjs +4 -4
  65. package/esm2022/autocomplete/suggestion/suggestion.component.mjs +77 -0
  66. package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +25 -0
  67. package/esm2022/back-top/back-top.component.mjs +84 -0
  68. package/esm2022/back-top/back-top.module.mjs +20 -0
  69. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +33 -0
  70. package/esm2022/breadcrumb/breadcrumb.component.mjs +56 -0
  71. package/esm2022/breadcrumb/breadcrumb.module.mjs +20 -0
  72. package/{esm2020 → esm2022}/button/button-group/button-group.component.mjs +4 -4
  73. package/esm2022/button/button.component.mjs +124 -0
  74. package/esm2022/button/button.module.mjs +20 -0
  75. package/esm2022/button/button.types.mjs +11 -0
  76. package/esm2022/card/card.component.mjs +14 -0
  77. package/esm2022/card/card.module.mjs +40 -0
  78. package/esm2022/card/helper-directives.mjs +42 -0
  79. package/{esm2020 → esm2022}/card/section.component.mjs +4 -4
  80. package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +60 -0
  81. package/esm2022/checkbox/checkbox.component.mjs +116 -0
  82. package/esm2022/checkbox/checkbox.module.mjs +20 -0
  83. package/esm2022/color-picker/color-picker.component.mjs +28 -0
  84. package/esm2022/color-picker/color-picker.module.mjs +19 -0
  85. package/esm2022/date-picker/calendar/constant.mjs +31 -0
  86. package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +137 -0
  87. package/esm2022/date-picker/calendar/footer/component.mjs +29 -0
  88. package/esm2022/date-picker/calendar/header/component.mjs +100 -0
  89. package/esm2022/date-picker/calendar/panel/picker-panel.mjs +158 -0
  90. package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +210 -0
  91. package/esm2022/date-picker/calendar/util.mjs +152 -0
  92. package/esm2022/date-picker/date-picker/date-picker.component.mjs +115 -0
  93. package/esm2022/date-picker/date-picker.module.mjs +82 -0
  94. package/esm2022/date-picker/range-picker/range-picker.component.mjs +88 -0
  95. package/esm2022/date-picker/trigger/trigger.component.mjs +76 -0
  96. package/esm2022/dialog/confirm-dialog/confirm-dialog-config.mjs +13 -0
  97. package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +91 -0
  98. package/{esm2020 → esm2022}/dialog/dialog-animations.mjs +1 -2
  99. package/esm2022/dialog/dialog-config.mjs +14 -0
  100. package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +42 -0
  101. package/esm2022/dialog/dialog-content/dialog-content.component.mjs +19 -0
  102. package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +13 -0
  103. package/esm2022/dialog/dialog-content/dialog-header.component.mjs +42 -0
  104. package/esm2022/dialog/dialog-ref.mjs +52 -0
  105. package/esm2022/dialog/dialog.component.mjs +154 -0
  106. package/esm2022/dialog/dialog.module.mjs +65 -0
  107. package/esm2022/dialog/dialog.service.mjs +124 -0
  108. package/esm2022/drawer/component/drawer.component.mjs +248 -0
  109. package/esm2022/drawer/component/helper-directives.mjs +33 -0
  110. package/esm2022/drawer/drawer.module.mjs +36 -0
  111. package/esm2022/drawer/drawer.service.mjs +47 -0
  112. package/esm2022/dropdown/dropdown-active.directive.mjs +18 -0
  113. package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +53 -0
  114. package/esm2022/dropdown/dropdown.directive.mjs +83 -0
  115. package/esm2022/dropdown/dropdown.module.mjs +65 -0
  116. package/{esm2020 → esm2022}/dropdown/helper-directives.mjs +4 -4
  117. package/esm2022/dropdown/menu/menu-content.directive.mjs +59 -0
  118. package/esm2022/dropdown/menu/menu.component.mjs +26 -0
  119. package/{esm2020 → esm2022}/dropdown/menu-group/menu-group.component.mjs +4 -4
  120. package/esm2022/dropdown/menu-item/menu-item.component.mjs +35 -0
  121. package/esm2022/dropdown/submenu/submenu.component.mjs +38 -0
  122. package/esm2022/form/common-form.mjs +87 -0
  123. package/esm2022/form/form-item/form-item.component.mjs +121 -0
  124. package/esm2022/form/form.directive.mjs +70 -0
  125. package/esm2022/form/form.module.mjs +48 -0
  126. package/esm2022/form/helper-directives.mjs +73 -0
  127. package/{esm2020 → esm2022}/i18n/i18n.module.mjs +5 -5
  128. package/esm2022/i18n/i18n.pipe.mjs +21 -0
  129. package/esm2022/i18n/i18n.service.mjs +48 -0
  130. package/esm2022/icon/icon-register.service.mjs +75 -0
  131. package/esm2022/icon/icon.component.mjs +74 -0
  132. package/esm2022/icon/icon.module.mjs +21 -0
  133. package/{esm2020 → esm2022}/inline-alert/helper-directives.mjs +4 -4
  134. package/esm2022/inline-alert/inline-alert.component.mjs +58 -0
  135. package/esm2022/inline-alert/inline-alert.module.mjs +20 -0
  136. package/esm2022/input/autosize.directive.mjs +56 -0
  137. package/esm2022/input/helper-directives.mjs +43 -0
  138. package/esm2022/input/input-group/input-group.component.mjs +46 -0
  139. package/esm2022/input/input.component.mjs +59 -0
  140. package/esm2022/input/input.module.mjs +85 -0
  141. package/esm2022/input/number-input/number-input.component.mjs +121 -0
  142. package/esm2022/input/search/search.component.mjs +87 -0
  143. package/esm2022/input/tags-input/tags-input.component.mjs +264 -0
  144. package/esm2022/input/tags-input/with-max-row-count.mjs +50 -0
  145. package/esm2022/message/base-message.mjs +99 -0
  146. package/esm2022/message/message-wrapper.component.mjs +15 -0
  147. package/esm2022/message/message.component.mjs +77 -0
  148. package/esm2022/message/message.config.mjs +20 -0
  149. package/esm2022/message/message.module.mjs +22 -0
  150. package/{esm2020 → esm2022}/message/message.service.mjs +4 -4
  151. package/esm2022/notification/notification-wrapper.component.mjs +17 -0
  152. package/esm2022/notification/notification.component.mjs +106 -0
  153. package/esm2022/notification/notification.module.mjs +23 -0
  154. package/{esm2020 → esm2022}/notification/notification.service.mjs +4 -4
  155. package/esm2022/paginator/paginator-intl.mjs +24 -0
  156. package/esm2022/paginator/paginator.component.mjs +126 -0
  157. package/esm2022/paginator/paginator.module.mjs +24 -0
  158. package/esm2022/radio/base-radio.mjs +72 -0
  159. package/esm2022/radio/radio-button/radio-button.component.mjs +41 -0
  160. package/esm2022/radio/radio-group/radio-group.component.mjs +65 -0
  161. package/esm2022/radio/radio.component.mjs +23 -0
  162. package/esm2022/radio/radio.module.mjs +21 -0
  163. package/esm2022/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +80 -0
  164. package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +119 -0
  165. package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +27 -0
  166. package/{esm2020 → esm2022}/scrolling/scrolling.module.mjs +9 -9
  167. package/{esm2020 → esm2022}/scrolling/virtual-for-of.directive.mjs +4 -4
  168. package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +26 -0
  169. package/esm2022/select/base-select.mjs +333 -0
  170. package/{esm2020 → esm2022}/select/helper-directives.mjs +7 -7
  171. package/esm2022/select/multi-select/multi-select.component.mjs +311 -0
  172. package/esm2022/select/option/option.component.mjs +119 -0
  173. package/esm2022/select/option-group/option-group.component.mjs +25 -0
  174. package/{esm2020 → esm2022}/select/option-placeholder.component.mjs +4 -4
  175. package/esm2022/select/select.component.mjs +107 -0
  176. package/esm2022/select/select.module.mjs +78 -0
  177. package/esm2022/select/validators.mjs +78 -0
  178. package/esm2022/shared/click-outside.directive.mjs +29 -0
  179. package/{esm2020 → esm2022}/shared/shared.module.mjs +5 -5
  180. package/esm2022/sort/sort-errors.mjs +13 -0
  181. package/esm2022/sort/sort-header.component.mjs +74 -0
  182. package/esm2022/sort/sort.directive.mjs +73 -0
  183. package/esm2022/sort/sort.module.mjs +19 -0
  184. package/esm2022/status-bar/status-bar.component.mjs +28 -0
  185. package/esm2022/status-bar/status-bar.module.mjs +19 -0
  186. package/esm2022/steps/steps.component.mjs +166 -0
  187. package/esm2022/steps/steps.module.mjs +19 -0
  188. package/{esm2020 → esm2022}/steps/types.mjs +1 -1
  189. package/esm2022/switch/switch.component.mjs +43 -0
  190. package/esm2022/switch/switch.module.mjs +18 -0
  191. package/esm2022/table/table-cell-def.directive.mjs +25 -0
  192. package/esm2022/table/table-cell.component.mjs +115 -0
  193. package/esm2022/table/table-cell.directive.mjs +29 -0
  194. package/esm2022/table/table-column-def.directive.mjs +31 -0
  195. package/esm2022/table/table-header-cell-def.directive.mjs +25 -0
  196. package/esm2022/table/table-header-cell.directive.mjs +25 -0
  197. package/esm2022/table/table-header-row-def.directive.mjs +33 -0
  198. package/esm2022/table/table-header-row.component.mjs +24 -0
  199. package/esm2022/table/table-placeholder.directive.mjs +33 -0
  200. package/esm2022/table/table-row-def.directive.mjs +34 -0
  201. package/esm2022/table/table-row.component.mjs +43 -0
  202. package/esm2022/table/table-scroll.directive.mjs +133 -0
  203. package/esm2022/table/table.component.mjs +79 -0
  204. package/esm2022/table/table.module.mjs +96 -0
  205. package/esm2022/table-of-contents/table-of-contents.module.mjs +20 -0
  206. package/esm2022/table-of-contents/toc-container.directive.mjs +111 -0
  207. package/esm2022/table-of-contents/toc-content.directive.mjs +39 -0
  208. package/esm2022/table-of-contents/toc-link.directive.mjs +48 -0
  209. package/esm2022/tabs/tab-body.component.mjs +146 -0
  210. package/esm2022/tabs/tab-context.service.mjs +30 -0
  211. package/esm2022/tabs/tab-group.component.mjs +256 -0
  212. package/esm2022/tabs/tab-header-active-indicator.component.mjs +41 -0
  213. package/esm2022/tabs/tab-header.component.mjs +277 -0
  214. package/esm2022/tabs/tab.component.mjs +72 -0
  215. package/esm2022/tabs/tabs.module.mjs +86 -0
  216. package/esm2022/tabs/tabs.types.mjs +10 -0
  217. package/esm2022/tag/check-tag/check-tag.component.mjs +31 -0
  218. package/esm2022/tag/tag.component.mjs +63 -0
  219. package/esm2022/tag/tag.module.mjs +20 -0
  220. package/esm2022/theme/theme.module.mjs +18 -0
  221. package/esm2022/theme/theme.pipe.mjs +64 -0
  222. package/esm2022/theme/theme.service.mjs +59 -0
  223. package/esm2022/time-picker/component.mjs +183 -0
  224. package/esm2022/time-picker/panel/panel.component.mjs +240 -0
  225. package/esm2022/time-picker/time-picker.module.mjs +56 -0
  226. package/esm2022/time-picker/time-picker.type.mjs +13 -0
  227. package/esm2022/tooltip/base-tooltip.mjs +333 -0
  228. package/esm2022/tooltip/tooltip-active.directive.mjs +51 -0
  229. package/esm2022/tooltip/tooltip-copy.directive.mjs +87 -0
  230. package/esm2022/tooltip/tooltip-intl.mjs +21 -0
  231. package/esm2022/tooltip/tooltip.component.mjs +120 -0
  232. package/esm2022/tooltip/tooltip.directive.mjs +44 -0
  233. package/esm2022/tooltip/tooltip.module.mjs +32 -0
  234. package/esm2022/tooltip/utils/index.mjs +58 -0
  235. package/{esm2020 → esm2022}/tree-select/tree-node-placeholder.component.mjs +4 -4
  236. package/esm2022/tree-select/tree-select.component.mjs +329 -0
  237. package/esm2022/tree-select/tree-select.module.mjs +34 -0
  238. package/esm2022/types.mjs +8 -0
  239. package/esm2022/utils/bem.mjs +44 -0
  240. package/esm2022/utils/coercion.mjs +5 -0
  241. package/esm2022/utils/fn.mjs +16 -0
  242. package/{fesm2020 → fesm2022}/alauda-ui.mjs +3144 -3252
  243. package/fesm2022/alauda-ui.mjs.map +1 -0
  244. package/form/common-form.d.ts +1 -9
  245. package/form/form-item/form-item.component.d.ts +1 -1
  246. package/form/form.directive.d.ts +1 -1
  247. package/form/form.types.d.ts +2 -2
  248. package/form/helper-directives.d.ts +7 -8
  249. package/i18n/i18n.pipe.d.ts +1 -1
  250. package/i18n/i18n.type.d.ts +1 -1
  251. package/icon/icon.component.d.ts +1 -1
  252. package/inline-alert/helper-directives.d.ts +1 -1
  253. package/inline-alert/inline-alert.component.d.ts +1 -1
  254. package/inline-alert/inline-alert.types.d.ts +1 -1
  255. package/input/autosize.directive.d.ts +1 -4
  256. package/input/helper-directives.d.ts +4 -4
  257. package/input/input-group/input-group.component.d.ts +1 -1
  258. package/input/input.component.d.ts +2 -5
  259. package/input/number-input/number-input.component.d.ts +5 -3
  260. package/input/search/search.component.d.ts +1 -1
  261. package/input/tags-input/tags-input.component.d.ts +3 -3
  262. package/message/message-wrapper.component.d.ts +1 -1
  263. package/message/message.component.d.ts +1 -1
  264. package/message/message.config.d.ts +0 -20
  265. package/notification/notification-wrapper.component.d.ts +1 -1
  266. package/notification/notification.component.d.ts +1 -5
  267. package/notification/notification.config.d.ts +1 -1
  268. package/package.json +14 -20
  269. package/paginator/paginator-intl.d.ts +0 -9
  270. package/paginator/paginator.component.d.ts +8 -25
  271. package/radio/base-radio.d.ts +1 -1
  272. package/radio/radio-button/radio-button.component.d.ts +1 -1
  273. package/radio/radio-group/radio-group.component.d.ts +1 -5
  274. package/radio/radio.component.d.ts +1 -1
  275. package/radio/radio.types.d.ts +1 -1
  276. package/scrolling/fixed-size-table-virtual-scroll.directive.d.ts +1 -1
  277. package/scrolling/fixed-size-virtual-scroll.directive.d.ts +1 -1
  278. package/scrolling/virtual-for-of.directive.d.ts +1 -1
  279. package/scrolling/virtual-scroll-viewport.component.d.ts +1 -1
  280. package/select/base-select.d.ts +7 -13
  281. package/select/helper-directives.d.ts +2 -2
  282. package/select/multi-select/multi-select.component.d.ts +3 -4
  283. package/select/option/option.component.d.ts +1 -1
  284. package/select/option-group/option-group.component.d.ts +1 -1
  285. package/select/option-placeholder.component.d.ts +1 -1
  286. package/select/select.component.d.ts +1 -1
  287. package/select/select.types.d.ts +3 -3
  288. package/select/validators.d.ts +1 -1
  289. package/shared/click-outside.directive.d.ts +1 -1
  290. package/sort/sort-errors.d.ts +0 -4
  291. package/sort/sort-header.component.d.ts +1 -1
  292. package/sort/sort.directive.d.ts +1 -1
  293. package/sort/sort.types.d.ts +2 -2
  294. package/status-bar/status-bar.component.d.ts +1 -1
  295. package/status-bar/status-bar.types.d.ts +2 -2
  296. package/steps/steps.component.d.ts +1 -5
  297. package/steps/types.d.ts +3 -7
  298. package/switch/switch.component.d.ts +1 -1
  299. package/table/table-cell-def.directive.d.ts +1 -5
  300. package/table/table-cell.component.d.ts +2 -2
  301. package/table/table-cell.directive.d.ts +1 -2
  302. package/table/table-column-def.directive.d.ts +1 -5
  303. package/table/table-header-cell-def.directive.d.ts +1 -5
  304. package/table/table-header-cell.directive.d.ts +1 -2
  305. package/table/table-header-row-def.directive.d.ts +1 -5
  306. package/table/table-header-row.component.d.ts +1 -2
  307. package/table/table-placeholder.directive.d.ts +2 -2
  308. package/table/table-row-def.directive.d.ts +1 -6
  309. package/table/table-row.component.d.ts +1 -2
  310. package/table/table-scroll.directive.d.ts +2 -2
  311. package/table/table.component.d.ts +1 -1
  312. package/table-of-contents/toc-container.directive.d.ts +2 -2
  313. package/table-of-contents/toc-content.directive.d.ts +1 -1
  314. package/table-of-contents/toc-link.directive.d.ts +1 -1
  315. package/tabs/tab-body.component.d.ts +9 -26
  316. package/tabs/tab-context.service.d.ts +0 -3
  317. package/tabs/tab-group.component.d.ts +3 -31
  318. package/tabs/tab-header-active-indicator.component.d.ts +1 -10
  319. package/tabs/tab-header.component.d.ts +2 -85
  320. package/tabs/tab.component.d.ts +3 -22
  321. package/tabs/tabs.types.d.ts +2 -5
  322. package/tag/check-tag/check-tag.component.d.ts +1 -1
  323. package/tag/tag.component.d.ts +1 -1
  324. package/tag/tag.types.d.ts +1 -1
  325. package/theme/style.css +5 -1
  326. package/theme/theme.pipe.d.ts +4 -4
  327. package/theme/theme.types.d.ts +3 -3
  328. package/time-picker/component.d.ts +1 -1
  329. package/time-picker/panel/panel.component.d.ts +1 -1
  330. package/time-picker/time-picker.type.d.ts +1 -1
  331. package/tooltip/base-tooltip.d.ts +1 -1
  332. package/tooltip/tooltip-active.directive.d.ts +1 -1
  333. package/tooltip/tooltip-copy.directive.d.ts +1 -1
  334. package/tooltip/tooltip-intl.d.ts +0 -4
  335. package/tooltip/tooltip.component.d.ts +1 -1
  336. package/tooltip/tooltip.directive.d.ts +1 -1
  337. package/tree-select/tree-node-placeholder.component.d.ts +1 -1
  338. package/tree-select/tree-select.component.d.ts +11 -15
  339. package/tree-select/tree-select.types.d.ts +1 -1
  340. package/types.d.ts +2 -5
  341. package/utils/coercion.d.ts +4 -4
  342. package/utils/fn.d.ts +0 -1
  343. package/utils/operators.d.ts +1 -1
  344. package/.changeset/README.md +0 -8
  345. package/alauda-ui.d.ts +0 -5
  346. package/esm2020/accordion/accordion-item/accordion-item.component.mjs +0 -73
  347. package/esm2020/accordion/accordion.component.mjs +0 -27
  348. package/esm2020/accordion/accordion.module.mjs +0 -39
  349. package/esm2020/alauda-ui.mjs +0 -5
  350. package/esm2020/anchor/anchor.component.mjs +0 -138
  351. package/esm2020/anchor/anchor.directive.mjs +0 -182
  352. package/esm2020/anchor/anchor.module.mjs +0 -36
  353. package/esm2020/autocomplete/autocomplete.component.mjs +0 -64
  354. package/esm2020/autocomplete/autocomplete.directive.mjs +0 -278
  355. package/esm2020/autocomplete/autocomplete.module.mjs +0 -53
  356. package/esm2020/autocomplete/suggestion/suggestion.component.mjs +0 -79
  357. package/esm2020/autocomplete/suggestion-group/suggestion-group.component.mjs +0 -23
  358. package/esm2020/back-top/back-top.component.mjs +0 -67
  359. package/esm2020/back-top/back-top.module.mjs +0 -19
  360. package/esm2020/breadcrumb/breadcrumb-item.component.mjs +0 -32
  361. package/esm2020/breadcrumb/breadcrumb.component.mjs +0 -57
  362. package/esm2020/breadcrumb/breadcrumb.module.mjs +0 -20
  363. package/esm2020/button/button.component.mjs +0 -122
  364. package/esm2020/button/button.module.mjs +0 -20
  365. package/esm2020/button/button.types.mjs +0 -22
  366. package/esm2020/card/card.component.mjs +0 -16
  367. package/esm2020/card/card.module.mjs +0 -40
  368. package/esm2020/card/helper-directives.mjs +0 -50
  369. package/esm2020/checkbox/checkbox-group/checkbox-group.component.mjs +0 -61
  370. package/esm2020/checkbox/checkbox.component.mjs +0 -112
  371. package/esm2020/checkbox/checkbox.module.mjs +0 -20
  372. package/esm2020/color-picker/color-picker.component.mjs +0 -28
  373. package/esm2020/color-picker/color-picker.module.mjs +0 -19
  374. package/esm2020/date-picker/calendar/constant.mjs +0 -32
  375. package/esm2020/date-picker/calendar/date-picker-panel/component.mjs +0 -128
  376. package/esm2020/date-picker/calendar/footer/component.mjs +0 -29
  377. package/esm2020/date-picker/calendar/header/component.mjs +0 -103
  378. package/esm2020/date-picker/calendar/panel/picker-panel.mjs +0 -155
  379. package/esm2020/date-picker/calendar/range-picker-panel/component.mjs +0 -209
  380. package/esm2020/date-picker/calendar/util.mjs +0 -146
  381. package/esm2020/date-picker/date-picker/date-picker.component.mjs +0 -110
  382. package/esm2020/date-picker/date-picker.module.mjs +0 -84
  383. package/esm2020/date-picker/range-picker/range-picker.component.mjs +0 -86
  384. package/esm2020/date-picker/trigger/trigger.component.mjs +0 -69
  385. package/esm2020/dialog/confirm-dialog/confirm-dialog-config.mjs +0 -12
  386. package/esm2020/dialog/confirm-dialog/confirm-dialog.component.mjs +0 -85
  387. package/esm2020/dialog/dialog-config.mjs +0 -15
  388. package/esm2020/dialog/dialog-content/dialog-close.directive.mjs +0 -38
  389. package/esm2020/dialog/dialog-content/dialog-content.component.mjs +0 -20
  390. package/esm2020/dialog/dialog-content/dialog-footer.component.mjs +0 -15
  391. package/esm2020/dialog/dialog-content/dialog-header.component.mjs +0 -39
  392. package/esm2020/dialog/dialog-ref.mjs +0 -48
  393. package/esm2020/dialog/dialog.component.mjs +0 -148
  394. package/esm2020/dialog/dialog.module.mjs +0 -68
  395. package/esm2020/dialog/dialog.service.mjs +0 -121
  396. package/esm2020/drawer/component/drawer.component.mjs +0 -232
  397. package/esm2020/drawer/component/helper-directives.mjs +0 -37
  398. package/esm2020/drawer/drawer.module.mjs +0 -37
  399. package/esm2020/drawer/drawer.service.mjs +0 -44
  400. package/esm2020/dropdown/dropdown-active.directive.mjs +0 -21
  401. package/esm2020/dropdown/dropdown-button/dropdown-button.component.mjs +0 -57
  402. package/esm2020/dropdown/dropdown.directive.mjs +0 -81
  403. package/esm2020/dropdown/dropdown.module.mjs +0 -65
  404. package/esm2020/dropdown/menu/menu-content.directive.mjs +0 -51
  405. package/esm2020/dropdown/menu/menu.component.mjs +0 -26
  406. package/esm2020/dropdown/menu-item/menu-item.component.mjs +0 -37
  407. package/esm2020/dropdown/submenu/submenu.component.mjs +0 -40
  408. package/esm2020/form/common-form.mjs +0 -91
  409. package/esm2020/form/form-item/form-item.component.mjs +0 -108
  410. package/esm2020/form/form.directive.mjs +0 -69
  411. package/esm2020/form/form.module.mjs +0 -48
  412. package/esm2020/form/helper-directives.mjs +0 -80
  413. package/esm2020/i18n/i18n.pipe.mjs +0 -20
  414. package/esm2020/i18n/i18n.service.mjs +0 -43
  415. package/esm2020/icon/icon-register.service.mjs +0 -74
  416. package/esm2020/icon/icon.component.mjs +0 -65
  417. package/esm2020/icon/icon.module.mjs +0 -21
  418. package/esm2020/inline-alert/inline-alert.component.mjs +0 -53
  419. package/esm2020/inline-alert/inline-alert.module.mjs +0 -20
  420. package/esm2020/input/autosize.directive.mjs +0 -59
  421. package/esm2020/input/helper-directives.mjs +0 -43
  422. package/esm2020/input/input-group/input-group.component.mjs +0 -39
  423. package/esm2020/input/input.component.mjs +0 -61
  424. package/esm2020/input/input.module.mjs +0 -87
  425. package/esm2020/input/number-input/number-input.component.mjs +0 -112
  426. package/esm2020/input/search/search.component.mjs +0 -88
  427. package/esm2020/input/tags-input/tags-input.component.mjs +0 -260
  428. package/esm2020/input/tags-input/with-max-row-count.mjs +0 -43
  429. package/esm2020/message/base-message.mjs +0 -90
  430. package/esm2020/message/message-wrapper.component.mjs +0 -14
  431. package/esm2020/message/message.component.mjs +0 -70
  432. package/esm2020/message/message.config.mjs +0 -21
  433. package/esm2020/message/message.module.mjs +0 -23
  434. package/esm2020/notification/notification-wrapper.component.mjs +0 -16
  435. package/esm2020/notification/notification.component.mjs +0 -107
  436. package/esm2020/notification/notification.module.mjs +0 -24
  437. package/esm2020/paginator/paginator-intl.mjs +0 -37
  438. package/esm2020/paginator/paginator.component.mjs +0 -125
  439. package/esm2020/paginator/paginator.module.mjs +0 -24
  440. package/esm2020/radio/base-radio.mjs +0 -67
  441. package/esm2020/radio/radio-button/radio-button.component.mjs +0 -42
  442. package/esm2020/radio/radio-group/radio-group.component.mjs +0 -76
  443. package/esm2020/radio/radio.component.mjs +0 -24
  444. package/esm2020/radio/radio.module.mjs +0 -21
  445. package/esm2020/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +0 -83
  446. package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +0 -121
  447. package/esm2020/scrolling/fixed-size-virtual-scroll.directive.mjs +0 -28
  448. package/esm2020/scrolling/virtual-scroll-viewport.component.mjs +0 -26
  449. package/esm2020/select/base-select.mjs +0 -337
  450. package/esm2020/select/multi-select/multi-select.component.mjs +0 -313
  451. package/esm2020/select/option/option.component.mjs +0 -112
  452. package/esm2020/select/option-group/option-group.component.mjs +0 -23
  453. package/esm2020/select/select.component.mjs +0 -108
  454. package/esm2020/select/select.module.mjs +0 -80
  455. package/esm2020/select/validators.mjs +0 -79
  456. package/esm2020/shared/click-outside.directive.mjs +0 -28
  457. package/esm2020/sort/sort-errors.mjs +0 -17
  458. package/esm2020/sort/sort-header.component.mjs +0 -72
  459. package/esm2020/sort/sort.directive.mjs +0 -75
  460. package/esm2020/sort/sort.module.mjs +0 -19
  461. package/esm2020/status-bar/status-bar.component.mjs +0 -29
  462. package/esm2020/status-bar/status-bar.module.mjs +0 -19
  463. package/esm2020/steps/steps.component.mjs +0 -184
  464. package/esm2020/steps/steps.module.mjs +0 -19
  465. package/esm2020/switch/switch.component.mjs +0 -46
  466. package/esm2020/switch/switch.module.mjs +0 -18
  467. package/esm2020/table/table-cell-def.directive.mjs +0 -29
  468. package/esm2020/table/table-cell.component.mjs +0 -121
  469. package/esm2020/table/table-cell.directive.mjs +0 -31
  470. package/esm2020/table/table-column-def.directive.mjs +0 -37
  471. package/esm2020/table/table-header-cell-def.directive.mjs +0 -29
  472. package/esm2020/table/table-header-cell.directive.mjs +0 -27
  473. package/esm2020/table/table-header-row-def.directive.mjs +0 -39
  474. package/esm2020/table/table-header-row.component.mjs +0 -25
  475. package/esm2020/table/table-placeholder.directive.mjs +0 -30
  476. package/esm2020/table/table-row-def.directive.mjs +0 -42
  477. package/esm2020/table/table-row.component.mjs +0 -43
  478. package/esm2020/table/table-scroll.directive.mjs +0 -134
  479. package/esm2020/table/table.component.mjs +0 -79
  480. package/esm2020/table/table.module.mjs +0 -96
  481. package/esm2020/table-of-contents/table-of-contents.module.mjs +0 -20
  482. package/esm2020/table-of-contents/toc-container.directive.mjs +0 -109
  483. package/esm2020/table-of-contents/toc-content.directive.mjs +0 -35
  484. package/esm2020/table-of-contents/toc-link.directive.mjs +0 -44
  485. package/esm2020/tabs/tab-body.component.mjs +0 -165
  486. package/esm2020/tabs/tab-context.service.mjs +0 -31
  487. package/esm2020/tabs/tab-group.component.mjs +0 -291
  488. package/esm2020/tabs/tab-header-active-indicator.component.mjs +0 -53
  489. package/esm2020/tabs/tab-header.component.mjs +0 -367
  490. package/esm2020/tabs/tab.component.mjs +0 -85
  491. package/esm2020/tabs/tabs.module.mjs +0 -88
  492. package/esm2020/tabs/tabs.types.mjs +0 -13
  493. package/esm2020/tag/check-tag/check-tag.component.mjs +0 -33
  494. package/esm2020/tag/tag.component.mjs +0 -66
  495. package/esm2020/tag/tag.module.mjs +0 -20
  496. package/esm2020/theme/theme.module.mjs +0 -18
  497. package/esm2020/theme/theme.pipe.mjs +0 -69
  498. package/esm2020/theme/theme.service.mjs +0 -52
  499. package/esm2020/time-picker/component.mjs +0 -179
  500. package/esm2020/time-picker/panel/panel.component.mjs +0 -230
  501. package/esm2020/time-picker/time-picker.module.mjs +0 -58
  502. package/esm2020/time-picker/time-picker.type.mjs +0 -13
  503. package/esm2020/tooltip/base-tooltip.mjs +0 -322
  504. package/esm2020/tooltip/tooltip-active.directive.mjs +0 -49
  505. package/esm2020/tooltip/tooltip-copy.directive.mjs +0 -82
  506. package/esm2020/tooltip/tooltip-intl.mjs +0 -29
  507. package/esm2020/tooltip/tooltip.component.mjs +0 -107
  508. package/esm2020/tooltip/tooltip.directive.mjs +0 -47
  509. package/esm2020/tooltip/tooltip.module.mjs +0 -33
  510. package/esm2020/tooltip/utils/index.mjs +0 -58
  511. package/esm2020/tree-select/tree-select.component.mjs +0 -340
  512. package/esm2020/tree-select/tree-select.module.mjs +0 -34
  513. package/esm2020/types.mjs +0 -11
  514. package/esm2020/utils/bem.mjs +0 -44
  515. package/esm2020/utils/coercion.mjs +0 -17
  516. package/esm2020/utils/fn.mjs +0 -19
  517. package/fesm2015/alauda-ui.mjs +0 -12051
  518. package/fesm2015/alauda-ui.mjs.map +0 -1
  519. package/fesm2020/alauda-ui.mjs.map +0 -1
  520. package/src/accordion/README.md +0 -13
  521. package/src/anchor/README.md +0 -23
  522. package/src/dropdown/README.md +0 -57
  523. package/src/form/README.md +0 -32
  524. package/src/icon/README.md +0 -28
  525. package/src/inline-alert/README.md +0 -16
  526. package/src/input/number-input/README.md +0 -16
  527. package/src/select/README.md +0 -57
  528. package/src/sort/README.md +0 -13
  529. package/src/table/README.md +0 -8
  530. package/src/table-of-contents/README.md +0 -94
  531. package/src/tag/README.md +0 -32
  532. package/src/tree-select/README.md +0 -34
  533. /package/{esm2020 → esm2022}/accordion/index.mjs +0 -0
  534. /package/{esm2020 → esm2022}/anchor/index.mjs +0 -0
  535. /package/{esm2020 → esm2022}/anchor/types.mjs +0 -0
  536. /package/{esm2020 → esm2022}/anchor/utils.mjs +0 -0
  537. /package/{esm2020 → esm2022}/autocomplete/autocomplete.types.mjs +0 -0
  538. /package/{esm2020 → esm2022}/autocomplete/index.mjs +0 -0
  539. /package/{esm2020 → esm2022}/back-top/index.mjs +0 -0
  540. /package/{esm2020 → esm2022}/breadcrumb/index.mjs +0 -0
  541. /package/{esm2020 → esm2022}/button/index.mjs +0 -0
  542. /package/{esm2020 → esm2022}/card/index.mjs +0 -0
  543. /package/{esm2020 → esm2022}/checkbox/index.mjs +0 -0
  544. /package/{esm2020 → esm2022}/color-picker/index.mjs +0 -0
  545. /package/{esm2020 → esm2022}/core/animation/animation-consts.mjs +0 -0
  546. /package/{esm2020 → esm2022}/date-picker/date-picker.type.mjs +0 -0
  547. /package/{esm2020 → esm2022}/date-picker/index.mjs +0 -0
  548. /package/{esm2020 → esm2022}/dialog/dialog.types.mjs +0 -0
  549. /package/{esm2020 → esm2022}/dialog/index.mjs +0 -0
  550. /package/{esm2020 → esm2022}/dialog/utils/errors.mjs +0 -0
  551. /package/{esm2020 → esm2022}/dialog/utils/index.mjs +0 -0
  552. /package/{esm2020 → esm2022}/drawer/component/drawer-ref.mjs +0 -0
  553. /package/{esm2020 → esm2022}/drawer/index.mjs +0 -0
  554. /package/{esm2020 → esm2022}/dropdown/dropdown.types.mjs +0 -0
  555. /package/{esm2020 → esm2022}/dropdown/index.mjs +0 -0
  556. /package/{esm2020 → esm2022}/form/form.types.mjs +0 -0
  557. /package/{esm2020 → esm2022}/form/index.mjs +0 -0
  558. /package/{esm2020 → esm2022}/i18n/i18n.type.mjs +0 -0
  559. /package/{esm2020 → esm2022}/i18n/index.mjs +0 -0
  560. /package/{esm2020 → esm2022}/i18n/language/en.mjs +0 -0
  561. /package/{esm2020 → esm2022}/i18n/language/zh.mjs +0 -0
  562. /package/{esm2020 → esm2022}/icon/icons.mjs +0 -0
  563. /package/{esm2020 → esm2022}/icon/index.mjs +0 -0
  564. /package/{esm2020 → esm2022}/icon/utils.mjs +0 -0
  565. /package/{esm2020 → esm2022}/index.mjs +0 -0
  566. /package/{esm2020 → esm2022}/inline-alert/index.mjs +0 -0
  567. /package/{esm2020 → esm2022}/inline-alert/inline-alert.types.mjs +0 -0
  568. /package/{esm2020 → esm2022}/input/index.mjs +0 -0
  569. /package/{esm2020 → esm2022}/input/utils/index.mjs +0 -0
  570. /package/{esm2020 → esm2022}/message/index.mjs +0 -0
  571. /package/{esm2020 → esm2022}/message/message-animations.mjs +0 -0
  572. /package/{esm2020 → esm2022}/notification/index.mjs +0 -0
  573. /package/{esm2020 → esm2022}/notification/notification.config.mjs +0 -0
  574. /package/{esm2020 → esm2022}/paginator/index.mjs +0 -0
  575. /package/{esm2020 → esm2022}/radio/index.mjs +0 -0
  576. /package/{esm2020 → esm2022}/radio/radio.types.mjs +0 -0
  577. /package/{esm2020 → esm2022}/scrolling/index.mjs +0 -0
  578. /package/{esm2020 → esm2022}/select/index.mjs +0 -0
  579. /package/{esm2020 → esm2022}/select/select.types.mjs +0 -0
  580. /package/{esm2020 → esm2022}/sort/index.mjs +0 -0
  581. /package/{esm2020 → esm2022}/sort/sort.types.mjs +0 -0
  582. /package/{esm2020 → esm2022}/status-bar/index.mjs +0 -0
  583. /package/{esm2020 → esm2022}/status-bar/status-bar.types.mjs +0 -0
  584. /package/{esm2020 → esm2022}/steps/index.mjs +0 -0
  585. /package/{esm2020 → esm2022}/switch/index.mjs +0 -0
  586. /package/{esm2020 → esm2022}/table/index.mjs +0 -0
  587. /package/{esm2020 → esm2022}/table-of-contents/index.mjs +0 -0
  588. /package/{esm2020 → esm2022}/tabs/index.mjs +0 -0
  589. /package/{esm2020 → esm2022}/tag/index.mjs +0 -0
  590. /package/{esm2020 → esm2022}/tag/tag.types.mjs +0 -0
  591. /package/{esm2020 → esm2022}/theme/index.mjs +0 -0
  592. /package/{esm2020 → esm2022}/theme/theme.types.mjs +0 -0
  593. /package/{esm2020 → esm2022}/theme/utils.mjs +0 -0
  594. /package/{esm2020 → esm2022}/time-picker/constant.mjs +0 -0
  595. /package/{esm2020 → esm2022}/time-picker/index.mjs +0 -0
  596. /package/{esm2020 → esm2022}/tooltip/index.mjs +0 -0
  597. /package/{esm2020 → esm2022}/tooltip/tooltip.types.mjs +0 -0
  598. /package/{esm2020 → esm2022}/tree-select/index.mjs +0 -0
  599. /package/{esm2020 → esm2022}/tree-select/tree-select.types.mjs +0 -0
  600. /package/{esm2020 → esm2022}/utils/animations.mjs +0 -0
  601. /package/{esm2020 → esm2022}/utils/async.mjs +0 -0
  602. /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
  603. /package/{esm2020 → esm2022}/utils/observe-dom.mjs +0 -0
  604. /package/{esm2020 → esm2022}/utils/operators.mjs +0 -0
  605. /package/{esm2020 → esm2022}/utils/scroll-into-view.mjs +0 -0
  606. /package/{esm2020 → esm2022}/utils/watch-content-exist.mjs +0 -0
@@ -0,0 +1,277 @@
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 } 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 "@angular/common";
11
+ import * as i3 from "@angular/cdk/portal";
12
+ import * as i4 from "../icon/icon.component";
13
+ import * as i5 from "@angular/cdk/observers";
14
+ import * as i6 from "./tab-header-active-indicator.component";
15
+ const EXAGGERATED_OVERSCROLL = 60;
16
+ export class TabHeaderComponent {
17
+ _changeDetectorRef;
18
+ _viewportRuler;
19
+ bem = buildBem('aui-tab-header');
20
+ _showAddon = false;
21
+ _showPaginationControls = false;
22
+ _disableScrollAfter = true;
23
+ _disableScrollBefore = true;
24
+ _scrollDistanceChanged;
25
+ _selectedIndexChanged = false;
26
+ _scrollDistance = 0;
27
+ _selectedIndex = 0;
28
+ _destroyed = new Subject();
29
+ _keyManager;
30
+ _tabLabelCount;
31
+ type = TabType.Line;
32
+ size = TabSize.Medium;
33
+ get selectedIndex() {
34
+ return this._selectedIndex;
35
+ }
36
+ set selectedIndex(value) {
37
+ this._selectedIndexChanged = this._selectedIndex !== value;
38
+ this._selectedIndex = value;
39
+ if (this._keyManager) {
40
+ this._keyManager.updateActiveItem(value);
41
+ }
42
+ }
43
+ selectFocusedIndex = new EventEmitter();
44
+ indexFocused = new EventEmitter();
45
+ _headerAddon;
46
+ _title;
47
+ _labelWrappers;
48
+ _tabListContainer;
49
+ _tabList;
50
+ _paginationWrapper;
51
+ _activeIndicator;
52
+ ngOnDestroy() {
53
+ this._destroyed.next();
54
+ this._destroyed.complete();
55
+ }
56
+ ngAfterContentChecked() {
57
+ if (this._tabLabelCount !== this._labelWrappers.length) {
58
+ this._updatePagination();
59
+ this._tabLabelCount = this._labelWrappers.length;
60
+ this._changeDetectorRef.markForCheck();
61
+ }
62
+ if (this._selectedIndexChanged) {
63
+ this._scrollToLabel(this._selectedIndex);
64
+ this._checkScrollingControls();
65
+ this._alignActiveIndicatorToSelectedTab();
66
+ this._selectedIndexChanged = false;
67
+ this._changeDetectorRef.markForCheck();
68
+ }
69
+ if (this._scrollDistanceChanged) {
70
+ this._updateTabScrollPosition();
71
+ this._scrollDistanceChanged = false;
72
+ this._changeDetectorRef.markForCheck();
73
+ }
74
+ if (this._showAddon !== !!this._headerAddon) {
75
+ this._showAddon = !!this._headerAddon;
76
+ this._updatePagination();
77
+ this._changeDetectorRef.markForCheck();
78
+ }
79
+ }
80
+ ngAfterContentInit() {
81
+ const resize = this._viewportRuler.change(150);
82
+ const realign = () => {
83
+ this._updatePagination();
84
+ this._alignActiveIndicatorToSelectedTab();
85
+ requestAnimationFrame(() => {
86
+ this._scrollToLabel(this._selectedIndex);
87
+ });
88
+ };
89
+ this._keyManager = new FocusKeyManager(this._labelWrappers)
90
+ .withHorizontalOrientation('ltr')
91
+ .withWrap();
92
+ this._keyManager.updateActiveItem(0);
93
+ requestAnimationFrame(realign);
94
+ resize.pipe(takeUntil(this._destroyed)).subscribe(() => {
95
+ realign();
96
+ });
97
+ this._keyManager.change
98
+ .pipe(takeUntil(this._destroyed))
99
+ .subscribe(newFocusIndex => {
100
+ this.indexFocused.emit(newFocusIndex);
101
+ this._setTabFocus(newFocusIndex);
102
+ });
103
+ }
104
+ get scrollDistance() {
105
+ return this._scrollDistance;
106
+ }
107
+ set scrollDistance(v) {
108
+ this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));
109
+ this._scrollDistanceChanged = true;
110
+ this._checkScrollingControls();
111
+ }
112
+ get focusIndex() {
113
+ return this._keyManager ? this._keyManager.activeItemIndex : 0;
114
+ }
115
+ set focusIndex(value) {
116
+ if (!this._isValidIndex(value) ||
117
+ this.focusIndex === value ||
118
+ !this._keyManager) {
119
+ return;
120
+ }
121
+ this._keyManager.setActiveItem(value);
122
+ }
123
+ _isValidIndex(index) {
124
+ if (!this._labelWrappers) {
125
+ return true;
126
+ }
127
+ const tab = this._labelWrappers
128
+ ? this._labelWrappers.toArray()[index]
129
+ : null;
130
+ return !!tab && !tab.disabled;
131
+ }
132
+ _handleKeydown(event) {
133
+ switch (event.key) {
134
+ case 'Home': {
135
+ this._keyManager.setFirstItemActive();
136
+ event.preventDefault();
137
+ break;
138
+ }
139
+ case 'End': {
140
+ this._keyManager.setLastItemActive();
141
+ event.preventDefault();
142
+ break;
143
+ }
144
+ case 'Enter':
145
+ case 'Space': {
146
+ this.selectFocusedIndex.emit(this.focusIndex);
147
+ event.preventDefault();
148
+ break;
149
+ }
150
+ default: {
151
+ this._keyManager.onKeydown(event);
152
+ }
153
+ }
154
+ }
155
+ _setTabFocus(tabIndex) {
156
+ if (this._showPaginationControls) {
157
+ this._scrollToLabel(tabIndex);
158
+ }
159
+ if (this._labelWrappers?.length > 0) {
160
+ this._labelWrappers.toArray()[tabIndex].focus();
161
+ const containerEl = this._tabListContainer.nativeElement;
162
+ containerEl.scrollLeft = 0;
163
+ }
164
+ }
165
+ _scrollToLabel(labelIndex) {
166
+ const selectedLabel = this._labelWrappers
167
+ ? this._labelWrappers.toArray()[labelIndex]
168
+ : null;
169
+ if (!selectedLabel) {
170
+ return;
171
+ }
172
+ const viewLength = this._tabListContainer.nativeElement.offsetWidth;
173
+ const labelBeforePos = selectedLabel.getOffsetLeft();
174
+ const labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();
175
+ const beforeVisiblePos = this.scrollDistance;
176
+ const afterVisiblePos = this.scrollDistance + viewLength;
177
+ if (labelBeforePos < beforeVisiblePos) {
178
+ this.scrollDistance -=
179
+ beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;
180
+ }
181
+ else if (labelAfterPos > afterVisiblePos) {
182
+ this.scrollDistance +=
183
+ labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;
184
+ }
185
+ }
186
+ _scrollHeader(scrollDir) {
187
+ const viewLength = this._tabListContainer.nativeElement.offsetWidth;
188
+ this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * viewLength) / 3;
189
+ }
190
+ _onContentChanges() {
191
+ this._updatePagination();
192
+ this._alignActiveIndicatorToSelectedTab();
193
+ this._changeDetectorRef.markForCheck();
194
+ }
195
+ _updatePagination() {
196
+ this._checkPaginationEnabled();
197
+ this._checkScrollingControls();
198
+ this._updateTabScrollPosition();
199
+ }
200
+ _checkPaginationEnabled() {
201
+ const isEnabled = this._tabList.nativeElement.scrollWidth >
202
+ this._paginationWrapper.nativeElement.offsetWidth + 2;
203
+ if (!isEnabled) {
204
+ this.scrollDistance = 0;
205
+ }
206
+ const detectChanges = isEnabled !== this._showPaginationControls;
207
+ this._showPaginationControls = isEnabled;
208
+ if (detectChanges) {
209
+ this._changeDetectorRef.markForCheck();
210
+ }
211
+ }
212
+ _checkScrollingControls() {
213
+ this._disableScrollBefore = this.scrollDistance === 0;
214
+ this._disableScrollAfter =
215
+ this.scrollDistance === this._getMaxScrollDistance();
216
+ this._changeDetectorRef.markForCheck();
217
+ }
218
+ _getMaxScrollDistance() {
219
+ const lengthOfTabList = this._tabList.nativeElement.scrollWidth;
220
+ const viewLength = this._tabListContainer.nativeElement.offsetWidth;
221
+ return lengthOfTabList - viewLength || 0;
222
+ }
223
+ _updateTabScrollPosition() {
224
+ const scrollDistance = this.scrollDistance;
225
+ const translateX = -scrollDistance;
226
+ this._tabList.nativeElement.style.transform = `translateX(${translateX}px)`;
227
+ }
228
+ _alignActiveIndicatorToSelectedTab() {
229
+ const selectedLabelWrapper = this._labelWrappers?.length > 0
230
+ ? this._labelWrappers.toArray()[this.selectedIndex].elementRef
231
+ .nativeElement
232
+ : null;
233
+ this._activeIndicator.alignToElement(selectedLabelWrapper);
234
+ }
235
+ constructor(_changeDetectorRef, _viewportRuler) {
236
+ this._changeDetectorRef = _changeDetectorRef;
237
+ this._viewportRuler = _viewportRuler;
238
+ }
239
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }], target: i0.ɵɵFactoryTarget.Component });
240
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", 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"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "component", type: i6.TabHeaderActiveIndicatorComponent, selector: "aui-tab-header-active-indicator", inputs: ["type"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
241
+ }
242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabHeaderComponent, decorators: [{
243
+ type: Component,
244
+ 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"] }]
245
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }]; }, propDecorators: { type: [{
246
+ type: Input
247
+ }], size: [{
248
+ type: Input
249
+ }], selectedIndex: [{
250
+ type: Input
251
+ }], selectFocusedIndex: [{
252
+ type: Output
253
+ }], indexFocused: [{
254
+ type: Output
255
+ }], _headerAddon: [{
256
+ type: ContentChild,
257
+ args: [TabHeaderAddonDirective, { static: false }]
258
+ }], _title: [{
259
+ type: ContentChild,
260
+ args: [TabTitleDirective, { static: false }]
261
+ }], _labelWrappers: [{
262
+ type: ContentChildren,
263
+ args: [TabLabelWrapperDirective]
264
+ }], _tabListContainer: [{
265
+ type: ViewChild,
266
+ args: ['tabListContainer', { static: true }]
267
+ }], _tabList: [{
268
+ type: ViewChild,
269
+ args: ['tabList', { static: true }]
270
+ }], _paginationWrapper: [{
271
+ type: ViewChild,
272
+ args: ['paginationWrapper', { static: true }]
273
+ }], _activeIndicator: [{
274
+ type: ViewChild,
275
+ args: [TabHeaderActiveIndicatorComponent, { static: true }]
276
+ }] } });
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFicy90YWItaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy90YWJzL3RhYi1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFHTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQU8sUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLGlCQUFpQixHQUNsQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7OztBQVloRCxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQVVsQyxNQUFNLE9BQU8sa0JBQWtCO0lBMllWO0lBQ0E7SUF6WW5CLEdBQUcsR0FBUSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV0QyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLHVCQUF1QixHQUFHLEtBQUssQ0FBQztJQUdoQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFHM0Isb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBR3BCLHNCQUFzQixDQUFVO0lBR2hDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUc5QixlQUFl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QURqQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJaEQsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsaUNBQWlDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgVmlld3BvcnRSdWxlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCZW0sIGJ1aWxkQmVtIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQge1xuICBUYWJIZWFkZXJBZGRvbkRpcmVjdGl2ZSxcbiAgVGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlLFxuICBUYWJUaXRsZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi90YWItYm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiSGVhZGVyQWN0aXZlSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi90YWItaGVhZGVyLWFjdGl2ZS1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYlNpemUsIFRhYlR5cGUgfSBmcm9tICcuL3RhYnMudHlwZXMnO1xuXG4vKipcbiAqIFRoZSBkaXJlY3Rpb25zIHRoYXQgc2Nyb2xsaW5nIGNhbiBnbyBpbiB3aGVuIHRoZSBoZWFkZXIncyB0YWJzIGV4Y2VlZCB0aGUgaGVhZGVyIHdpZHRoLiAnQWZ0ZXInXG4gKiB3aWxsIHNjcm9sbCB0aGUgaGVhZGVyIHRvd2FyZHMgdGhlIGVuZCBvZiB0aGUgdGFicyBsaXN0IGFuZCAnYmVmb3JlJyB3aWxsIHNjcm9sbCB0b3dhcmRzIHRoZVxuICogYmVnaW5uaW5nIG9mIHRoZSBsaXN0LlxuICovXG5leHBvcnQgdHlwZSBTY3JvbGxEaXJlY3Rpb24gPSAnYWZ0ZXInIHwgJ2JlZm9yZSc7XG4vKipcbiAqIFRoZSBkaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB3aWxsIGJlIG92ZXJzaG90IHdoZW4gc2Nyb2xsaW5nIGEgdGFiIGxhYmVsIGludG8gdmlldy4gVGhpcyBoZWxwc1xuICogcHJvdmlkZSBhIHNtYWxsIGFmZm9yZGFuY2UgdG8gdGhlIGxhYmVsIG5leHQgdG8gaXQuXG4gKi9cbmNvbnN0IEVYQUdHRVJBVEVEX09WRVJTQ1JPTEwgPSA2MDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRhYi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYi1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJIZWFkZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyQ29udGVudEluaXRcbntcbiAgYmVtOiBCZW0gPSBidWlsZEJlbSgnYXVpLXRhYi1oZWFkZXInKTtcblxuICBfc2hvd0FkZG9uID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvbnRyb2xzIGZvciBwYWdpbmF0aW9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgKi9cbiAgX3Nob3dQYWdpbmF0aW9uQ29udHJvbHMgPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgdGFiIGxpc3QgY2FuIGJlIHNjcm9sbGVkIG1vcmUgdG93YXJkcyB0aGUgZW5kIG9mIHRoZSB0YWIgbGFiZWwgbGlzdC4gKi9cbiAgX2Rpc2FibGVTY3JvbGxBZnRlciA9IHRydWU7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHRhYiBsaXN0IGNhbiBiZSBzY3JvbGxlZCBtb3JlIHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGFiIGxhYmVsIGxpc3QuICovXG4gIF9kaXNhYmxlU2Nyb2xsQmVmb3JlID0gdHJ1ZTtcblxuICAvKiogV2hldGhlciB0aGUgc2Nyb2xsIGRpc3RhbmNlIGhhcyBjaGFuZ2VkIGFuZCBzaG91bGQgYmUgYXBwbGllZCBhZnRlciB0aGUgdmlldyBpcyBjaGVja2VkLiAqL1xuICBwcml2YXRlIF9zY3JvbGxEaXN0YW5jZUNoYW5nZWQ6IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGhlYWRlciBzaG91bGQgc2Nyb2xsIHRvIHRoZSBzZWxlY3RlZCBpbmRleCBhZnRlciB0aGUgdmlldyBoYXMgYmVlbiBjaGVja2VkLiAqL1xuICBwcml2YXRlIF9zZWxlY3RlZEluZGV4Q2hhbmdlZCA9IGZhbHNlO1xuXG4gIC8qKiBUaGUgZGlzdGFuY2UgaW4gcGl4ZWxzIHRoYXQgdGhlIHRhYiBsYWJlbHMgc2hvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gdGhlIGxlZnQuICovXG4gIHByaXZhdGUgX3Njcm9sbERpc3RhbmNlID0gMDtcblxuICBwcml2YXRlIF9zZWxlY3RlZEluZGV4ID0gMDtcblxuICAvKiogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKiogVXNlZCB0byBtYW5hZ2UgZm9jdXMgYmV0d2VlbiB0aGUgdGFicy4gKi9cbiAgcHJpdmF0ZSBfa2V5TWFuYWdlcjogRm9jdXNLZXlNYW5hZ2VyPFRhYkxhYmVsV3JhcHBlckRpcmVjdGl2ZT47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGFiIGxhYmVscyB0aGF0IGFyZSBkaXNwbGF5ZWQgb24gdGhlIGhlYWRlci4gV2hlbiB0aGlzIGNoYW5nZXMsIHRoZSBoZWFkZXJcbiAgICogc2hvdWxkIHJlLWV2YWx1YXRlIHRoZSBzY3JvbGwgcG9zaXRpb24uXG4gICAqL1xuICBwcml2YXRlIF90YWJMYWJlbENvdW50OiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgdHlwZTogVGFiVHlwZSA9IFRhYlR5cGUuTGluZTtcblxuICBASW5wdXQoKVxuICBzaXplOiBUYWJTaXplID0gVGFiU2l6ZS5NZWRpdW07XG5cbiAgLyoqIFRoZSBpbmRleCBvZiB0aGUgYWN0aXZlIHRhYi4gKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgfVxuXG4gIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9zZWxlY3RlZEluZGV4Q2hhbmdlZCA9IHRoaXMuX3NlbGVjdGVkSW5kZXggIT09IHZhbHVlO1xuICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLl9rZXlNYW5hZ2VyKSB7XG4gICAgICB0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0odmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNlbGVjdEZvY3VzZWRJbmRleCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBsYWJlbCBpcyBmb2N1c2VkLiAqL1xuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgaW5kZXhGb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChUYWJIZWFkZXJBZGRvbkRpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIF9oZWFkZXJBZGRvbjogVGFiSGVhZGVyQWRkb25EaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUYWJUaXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIF90aXRsZTogVGFiVGl0bGVEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJMYWJlbFdyYXBwZXJEaXJlY3RpdmUpXG4gIC8qKlxuICAgKiB3b3JrYXJvdW5kIGZvciBAbGluayBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvcHVsbC80MjQyNVxuICAgKi9cbiAgX2xhYmVsV3JhcHBlcnM6IFF1ZXJ5TGlzdDxUYWJMYWJlbFdyYXBwZXJEaXJlY3RpdmUgJiB7IGRpc2FibGVkPzogYm9vbGVhbiB9PjtcblxuICBAVmlld0NoaWxkKCd0YWJMaXN0Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX3RhYkxpc3RDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkxpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfdGFiTGlzdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgncGFnaW5hdGlvbldyYXBwZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfcGFnaW5hdGlvbldyYXBwZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoVGFiSGVhZGVyQWN0aXZlSW5kaWNhdG9yQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfYWN0aXZlSW5kaWNhdG9yOiBUYWJIZWFkZXJBY3RpdmVJbmRpY2F0b3JDb21wb25lbnQ7XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAvLyBJZiB0aGUgbnVtYmVyIG9mIHRhYiBsYWJlbHMgaGF2ZSBjaGFuZ2VkLCBjaGVjayBpZiBzY3JvbGxpbmcgc2hvdWxkIGJlIGVuYWJsZWRcbiAgICBpZiAodGhpcy5fdGFiTGFiZWxDb3VudCAhPT0gdGhpcy5fbGFiZWxXcmFwcGVycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX3RhYkxhYmVsQ291bnQgPSB0aGlzLl9sYWJlbFdyYXBwZXJzLmxlbmd0aDtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBzZWxlY3RlZCBpbmRleCBoYXMgY2hhbmdlZCwgc2Nyb2xsIHRvIHRoZSBsYWJlbCBhbmQgY2hlY2sgaWYgdGhlIHNjcm9sbGluZyBjb250cm9sc1xuICAgIC8vIHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQpIHtcbiAgICAgIHRoaXMuX3Njcm9sbFRvTGFiZWwodGhpcy5fc2VsZWN0ZWRJbmRleCk7XG4gICAgICB0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCk7XG4gICAgICB0aGlzLl9hbGlnbkFjdGl2ZUluZGljYXRvclRvU2VsZWN0ZWRUYWIoKTtcbiAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXhDaGFuZ2VkID0gZmFsc2U7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgc2Nyb2xsIGRpc3RhbmNlIGhhcyBiZWVuIGNoYW5nZWQgKHRhYiBzZWxlY3RlZCwgZm9jdXNlZCwgc2Nyb2xsIGNvbnRyb2xzIGFjdGl2YXRlZCksXG4gICAgLy8gdGhlbiB0cmFuc2xhdGUgdGhlIGhlYWRlciB0byByZWZsZWN0IHRoaXMuXG4gICAgaWYgKHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlVGFiU2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgIHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Nob3dBZGRvbiAhPT0gISF0aGlzLl9oZWFkZXJBZGRvbikge1xuICAgICAgdGhpcy5fc2hvd0FkZG9uID0gISF0aGlzLl9oZWFkZXJBZGRvbjtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbGlnbnMgdGhlIGluayBiYXIgdG8gdGhlIHNlbGVjdGVkIHRhYiBvbiBsb2FkLlxuICAgKi9cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGNvbnN0IHJlc2l6ZSA9IHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKDE1MCk7XG4gICAgY29uc3QgcmVhbGlnbiA9ICgpID0+IHtcbiAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuX2FsaWduQWN0aXZlSW5kaWNhdG9yVG9TZWxlY3RlZFRhYigpO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsVG9MYWJlbCh0aGlzLl9zZWxlY3RlZEluZGV4KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLl9rZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLl9sYWJlbFdyYXBwZXJzKVxuICAgICAgLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oJ2x0cicpXG4gICAgICAud2l0aFdyYXAoKTtcbiAgICB0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oMCk7XG5cbiAgICAvLyBEZWZlciB0aGUgZmlyc3QgY2FsbCBpbiBvcmRlciB0byBhbGxvdyBmb3Igc2xvd2VyIGJyb3dzZXJzIHRvIGxheSBvdXQgdGhlIGVsZW1lbnRzLlxuICAgIC8vIFRoaXMgaGVscHMgaW4gY2FzZXMgd2hlcmUgdGhlIHVzZXIgbGFuZHMgZGlyZWN0bHkgb24gYSBwYWdlIHdpdGggcGFnaW5hdGVkIHRhYnMuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlYWxpZ24pO1xuXG4gICAgLy8gT24gd2luZG93IHJlc2l6ZSwgcmVhbGlnbiB0aGUgaW5rIGJhciBhbmQgdXBkYXRlIHRoZSBvcmllbnRhdGlvbiBvZlxuICAgIC8vIHRoZSBrZXkgbWFuYWdlciBpZiB0aGUgZGlyZWN0aW9uIGhhcyBjaGFuZ2VkLlxuICAgIHJlc2l6ZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgcmVhbGlnbigpO1xuICAgIH0pO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdGhlIGZvY3VzIGtleSBtYW5hZ2VyIHdlIG5lZWQgdG8gZW1pdCB0aGUgYGluZGV4Rm9jdXNlZGBcbiAgICAvLyBldmVudCBpbiBvcmRlciB0byBwcm92aWRlIGEgcHVibGljIGV2ZW50IHRoYXQgbm90aWZpZXMgYWJvdXQgZm9jdXMgY2hhbmdlcy4gQWxzbyB3ZSByZWFsaWduXG4gICAgLy8gdGhlIHRhYnMgY29udGFpbmVyIGJ5IHNjcm9sbGluZyB0aGUgbmV3IGZvY3VzZWQgdGFiIGludG8gdGhlIHZpc2libGUgc2VjdGlvbi5cbiAgICB0aGlzLl9rZXlNYW5hZ2VyLmNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKG5ld0ZvY3VzSW5kZXggPT4ge1xuICAgICAgICB0aGlzLmluZGV4Rm9jdXNlZC5lbWl0KG5ld0ZvY3VzSW5kZXgpO1xuICAgICAgICB0aGlzLl9zZXRUYWJGb2N1cyhuZXdGb2N1c0luZGV4KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqIFNldHMgdGhlIGRpc3RhbmNlIGluIHBpeGVscyB0aGF0IHRoZSB0YWIgaGVhZGVyIHNob3VsZCBiZSB0cmFuc2Zvcm1lZCBpbiB0aGUgWC1heGlzLiAqL1xuICBnZXQgc2Nyb2xsRGlzdGFuY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2Nyb2xsRGlzdGFuY2U7XG4gIH1cblxuICBzZXQgc2Nyb2xsRGlzdGFuY2UodjogbnVtYmVyKSB7XG4gICAgdGhpcy5fc2Nyb2xsRGlzdGFuY2UgPSBNYXRoLm1heChcbiAgICAgIDAsXG4gICAgICBNYXRoLm1pbih0aGlzLl9nZXRNYXhTY3JvbGxEaXN0YW5jZSgpLCB2KSxcbiAgICApO1xuICAgIC8vIE1hcmsgdGhhdCB0aGUgc2Nyb2xsIGRpc3RhbmNlIGhhcyBjaGFuZ2VkIHNvIHRoYXQgYWZ0ZXIgdGhlIHZpZXcgaXMgY2hlY2tlZCwgdGhlIENTU1xuICAgIC8vIHRyYW5zZm9ybWF0aW9uIGNhbiBtb3ZlIHRoZSBoZWFkZXIuXG4gICAgdGhpcy5fc2Nyb2xsRGlzdGFuY2VDaGFuZ2VkID0gdHJ1ZTtcbiAgICB0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCk7XG4gIH1cblxuICAvKiogVHJhY2tzIHdoaWNoIGVsZW1lbnQgaGFzIGZvY3VzOyB1c2VkIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uICovXG4gIGdldCBmb2N1c0luZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2tleU1hbmFnZXIgPyB0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCA6IDA7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgZm9jdXMgaW5kZXggaXMgc2V0LCB3ZSBtdXN0IG1hbnVhbGx5IHNlbmQgZm9jdXMgdG8gdGhlIGNvcnJlY3QgbGFiZWwgKi9cbiAgc2V0IGZvY3VzSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9pc1ZhbGlkSW5kZXgodmFsdWUpIHx8XG4gICAgICB0aGlzLmZvY3VzSW5kZXggPT09IHZhbHVlIHx8XG4gICAgICAhdGhpcy5fa2V5TWFuYWdlclxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYW4gaW5kZXggaXMgdmFsaWQuICBJZiB0aGUgdGFicyBhcmUgbm90IHJlYWR5IHlldCwgd2UgYXNzdW1lIHRoYXQgdGhlIHVzZXIgaXNcbiAgICogcHJvdmlkaW5nIGEgdmFsaWQgaW5kZXggYW5kIHJldHVybiB0cnVlLlxuICAgKi9cbiAgX2lzVmFsaWRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLl9sYWJlbFdyYXBwZXJzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdGFiID0gdGhpcy5fbGFiZWxXcmFwcGVyc1xuICAgICAgPyB0aGlzLl9sYWJlbFdyYXBwZXJzLnRvQXJyYXkoKVtpbmRleF1cbiAgICAgIDogbnVsbDtcbiAgICByZXR1cm4gISF0YWIgJiYgIXRhYi5kaXNhYmxlZDtcbiAgfVxuXG4gIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0hvbWUnOiB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRW5kJzoge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldExhc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgY2FzZSAnU3BhY2UnOiB7XG4gICAgICAgIHRoaXMuc2VsZWN0Rm9jdXNlZEluZGV4LmVtaXQodGhpcy5mb2N1c0luZGV4KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBmb2N1cyBvbiB0aGUgSFRNTCBlbGVtZW50IGZvciB0aGUgbGFiZWwgd3JhcHBlciBhbmQgc2Nyb2xscyBpdCBpbnRvIHRoZSB2aWV3IGlmXG4gICAqIHNjcm9sbGluZyBpcyBlbmFibGVkLlxuICAgKi9cbiAgX3NldFRhYkZvY3VzKHRhYkluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fc2hvd1BhZ2luYXRpb25Db250cm9scykge1xuICAgICAgdGhpcy5fc2Nyb2xsVG9MYWJlbCh0YWJJbmRleCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9sYWJlbFdyYXBwZXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9sYWJlbFdyYXBwZXJzLnRvQXJyYXkoKVt0YWJJbmRleF0uZm9jdXMoKTtcbiAgICAgIC8vIERvIG5vdCBsZXQgdGhlIGJyb3dzZXIgbWFuYWdlIHNjcm9sbGluZyB0byBmb2N1cyB0aGUgZWxlbWVudCwgdGhpcyB3aWxsIGJlIGhhbmRsZWRcbiAgICAgIC8vIGJ5IHVzaW5nIHRyYW5zbGF0aW9uLiBJbiBMVFIsIHRoZSBzY3JvbGwgbGVmdCBzaG91bGQgYmUgMC4gSW4gUlRMLCB0aGUgc2Nyb2xsIHdpZHRoXG4gICAgICAvLyBzaG91bGQgYmUgdGhlIGZ1bGwgd2lkdGggbWludXMgdGhlIG9mZnNldCB3aWR0aC5cbiAgICAgIGNvbnN0IGNvbnRhaW5lckVsID0gdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgY29udGFpbmVyRWwuc2Nyb2xsTGVmdCA9IDA7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmVzIHRoZSB0YWIgbGlzdCBzdWNoIHRoYXQgdGhlIGRlc2lyZWQgdGFiIGxhYmVsIChtYXJrZWQgYnkgaW5kZXgpIGlzIG1vdmVkIGludG8gdmlldy5cbiAgICpcbiAgICogVGhpcyBpcyBhbiBleHBlbnNpdmUgY2FsbCB0aGF0IGZvcmNlcyBhIGxheW91dCByZWZsb3cgdG8gY29tcHV0ZSBib3ggYW5kIHNjcm9sbCBtZXRyaWNzIGFuZFxuICAgKiBzaG91bGQgYmUgY2FsbGVkIHNwYXJpbmdseS5cbiAgICovXG4gIF9zY3JvbGxUb0xhYmVsKGxhYmVsSW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSB0aGlzLl9sYWJlbFdyYXBwZXJzXG4gICAgICA/IHRoaXMuX2xhYmVsV3JhcHBlcnMudG9BcnJheSgpW2xhYmVsSW5kZXhdXG4gICAgICA6IG51bGw7XG4gICAgaWYgKCFzZWxlY3RlZExhYmVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFRoZSB2aWV3IGxlbmd0aCBpcyB0aGUgdmlzaWJsZSB3aWR0aCBvZiB0aGUgdGFiIGxhYmVscy5cbiAgICBjb25zdCB2aWV3TGVuZ3RoID0gdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGxhYmVsQmVmb3JlUG9zID0gc2VsZWN0ZWRMYWJlbC5nZXRPZmZzZXRMZWZ0KCk7XG4gICAgY29uc3QgbGFiZWxBZnRlclBvcyA9IGxhYmVsQmVmb3JlUG9zICsgc2VsZWN0ZWRMYWJlbC5nZXRPZmZzZXRXaWR0aCgpO1xuICAgIGNvbnN0IGJlZm9yZVZpc2libGVQb3MgPSB0aGlzLnNjcm9sbERpc3RhbmNlO1xuICAgIGNvbnN0IGFmdGVyVmlzaWJsZVBvcyA9IHRoaXMuc2Nyb2xsRGlzdGFuY2UgKyB2aWV3TGVuZ3RoO1xuICAgIGlmIChsYWJlbEJlZm9yZVBvcyA8IGJlZm9yZVZpc2libGVQb3MpIHtcbiAgICAgIC8vIFNjcm9sbCBoZWFkZXIgdG8gbW92ZSBsYWJlbCB0byB0aGUgYmVmb3JlIGRpcmVjdGlvblxuICAgICAgdGhpcy5zY3JvbGxEaXN0YW5jZSAtPVxuICAgICAgICBiZWZvcmVWaXNpYmxlUG9zIC0gbGFiZWxCZWZvcmVQb3MgKyBFWEFHR0VSQVRFRF9PVkVSU0NST0xMO1xuICAgIH0gZWxzZSBpZiAobGFiZWxBZnRlclBvcyA+IGFmdGVyVmlzaWJsZVBvcykge1xuICAgICAgLy8gU2Nyb2xsIGhlYWRlciB0byBtb3ZlIGxhYmVsIHRvIHRoZSBhZnRlciBkaXJlY3Rpb25cbiAgICAgIHRoaXMuc2Nyb2xsRGlzdGFuY2UgKz1cbiAgICAgICAgbGFiZWxBZnRlclBvcyAtIGFmdGVyVmlzaWJsZVBvcyArIEVYQUdHRVJBVEVEX09WRVJTQ1JPTEw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmVzIHRoZSB0YWIgbGlzdCBpbiB0aGUgJ2JlZm9yZScgb3IgJ2FmdGVyJyBkaXJlY3Rpb24gKHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdCBvclxuICAgKiB0aGUgZW5kIG9mIHRoZSBsaXN0LCByZXNwZWN0aXZlbHkpLiBUaGUgZGlzdGFuY2UgdG8gc2Nyb2xsIGlzIGNvbXB1dGVkIHRvIGJlIGEgdGhpcmQgb2YgdGhlXG4gICAqIGxlbmd0aCBvZiB0aGUgdGFiIGxpc3QgdmlldyB3aW5kb3cuXG4gICAqXG4gICAqIFRoaXMgaXMgYW4gZXhwZW5zaXZlIGNhbGwgdGhhdCBmb3JjZXMgYSBsYXlvdXQgcmVmbG93IHRvIGNvbXB1dGUgYm94IGFuZCBzY3JvbGwgbWV0cmljcyBhbmRcbiAgICogc2hvdWxkIGJlIGNhbGxlZCBzcGFyaW5nbHkuXG4gICAqL1xuICBfc2Nyb2xsSGVhZGVyKHNjcm9sbERpcjogU2Nyb2xsRGlyZWN0aW9uKSB7XG4gICAgY29uc3Qgdmlld0xlbmd0aCA9IHRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAvLyBNb3ZlIHRoZSBzY3JvbGwgZGlzdGFuY2Ugb25lLXRoaXJkIHRoZSBsZW5ndGggb2YgdGhlIHRhYiBsaXN0J3Mgdmlld3BvcnQuXG4gICAgdGhpcy5zY3JvbGxEaXN0YW5jZSArPSAoKHNjcm9sbERpciA9PT0gJ2JlZm9yZScgPyAtMSA6IDEpICogdmlld0xlbmd0aCkgLyAzO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBNdXRhdGlvbk9ic2VydmVyIGRldGVjdHMgdGhhdCB0aGUgY29udGVudCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIF9vbkNvbnRlbnRDaGFuZ2VzKCkge1xuICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICB0aGlzLl9hbGlnbkFjdGl2ZUluZGljYXRvclRvU2VsZWN0ZWRUYWIoKTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGluZyB0aGUgdmlldyB3aGV0aGVyIHBhZ2luYXRpb24gc2hvdWxkIGJlIGVuYWJsZWQgb3Igbm90XG4gICAqL1xuICBfdXBkYXRlUGFnaW5hdGlvbigpIHtcbiAgICB0aGlzLl9jaGVja1BhZ2luYXRpb25FbmFibGVkKCk7XG4gICAgdGhpcy5fY2hlY2tTY3JvbGxpbmdDb250cm9scygpO1xuICAgIHRoaXMuX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGUgd2hldGhlciB0aGUgcGFnaW5hdGlvbiBjb250cm9scyBzaG91bGQgYmUgZGlzcGxheWVkLiBJZiB0aGUgc2Nyb2xsIHdpZHRoIG9mIHRoZVxuICAgKiB0YWIgbGlzdCBpcyB3aWRlciB0aGFuIHRoZSBzaXplIG9mIHRoZSBoZWFkZXIgY29udGFpbmVyLCB0aGVuIHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xzIHNob3VsZFxuICAgKiBiZSBzaG93bi5cbiAgICpcbiAgICogVGhpcyBpcyBhbiBleHBlbnNpdmUgY2FsbCB0aGF0IGZvcmNlcyBhIGxheW91dCByZWZsb3cgdG8gY29tcHV0ZSBib3ggYW5kIHNjcm9sbCBtZXRyaWNzIGFuZFxuICAgKiBzaG91bGQgYmUgY2FsbGVkIHNwYXJpbmdseS5cbiAgICovXG4gIF9jaGVja1BhZ2luYXRpb25FbmFibGVkKCkge1xuICAgIGNvbnN0IGlzRW5hYmxlZCA9XG4gICAgICB0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGggPlxuICAgICAgdGhpcy5fcGFnaW5hdGlvbldyYXBwZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArIDI7IC8vIDIgaXMgdGhlIGJvcmRlciBzaXplXG4gICAgaWYgKCFpc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2Nyb2xsRGlzdGFuY2UgPSAwO1xuICAgIH1cbiAgICBjb25zdCBkZXRlY3RDaGFuZ2VzID0gaXNFbmFibGVkICE9PSB0aGlzLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzO1xuICAgIHRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHMgPSBpc0VuYWJsZWQ7XG5cbiAgICBpZiAoZGV0ZWN0Q2hhbmdlcykge1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlIHdoZXRoZXIgdGhlIGJlZm9yZSBhbmQgYWZ0ZXIgY29udHJvbHMgc2hvdWxkIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuXG4gICAqIElmIHRoZSBoZWFkZXIgaXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdCAoc2Nyb2xsIGRpc3RhbmNlIGlzIGVxdWFsIHRvIDApIHRoZW4gZGlzYWJsZSB0aGVcbiAgICogYmVmb3JlIGJ1dHRvbi4gSWYgdGhlIGhlYWRlciBpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChzY3JvbGwgZGlzdGFuY2UgaXMgZXF1YWwgdG8gdGhlXG4gICAqIG1heGltdW0gZGlzdGFuY2Ugd2UgY2FuIHNjcm9sbCksIHRoZW4gZGlzYWJsZSB0aGUgYWZ0ZXIgYnV0dG9uLlxuICAgKlxuICAgKiBUaGlzIGlzIGFuIGV4cGVuc2l2ZSBjYWxsIHRoYXQgZm9yY2VzIGEgbGF5b3V0IHJlZmxvdyB0byBjb21wdXRlIGJveCBhbmQgc2Nyb2xsIG1ldHJpY3MgYW5kXG4gICAqIHNob3VsZCBiZSBjYWxsZWQgc3BhcmluZ2x5LlxuICAgKi9cbiAgX2NoZWNrU2Nyb2xsaW5nQ29udHJvbHMoKSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIHBhZ2luYXRpb24gYXJyb3dzIHNob3VsZCBiZSBhY3RpdmF0ZWQuXG4gICAgdGhpcy5fZGlzYWJsZVNjcm9sbEJlZm9yZSA9IHRoaXMuc2Nyb2xsRGlzdGFuY2UgPT09IDA7XG4gICAgdGhpcy5fZGlzYWJsZVNjcm9sbEFmdGVyID1cbiAgICAgIHRoaXMuc2Nyb2xsRGlzdGFuY2UgPT09IHRoaXMuX2dldE1heFNjcm9sbERpc3RhbmNlKCk7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBpbiBwaXhlbHMgdGhhdCBjYW4gYmUgc2V0IGZvciB0aGUgc2Nyb2xsIGRpc3RhbmNlLiBUaGlzXG4gICAqIGlzIGVxdWFsIHRvIHRoZSBkaWZmZXJlbmNlIGluIHdpZHRoIGJldHdlZW4gdGhlIHRhYiBsaXN0IGNvbnRhaW5lciBhbmQgdGFiIGhlYWRlciBjb250YWluZXIuXG4gICAqXG4gICAqIFRoaXMgaXMgYW4gZXhwZW5zaXZlIGNhbGwgdGhhdCBmb3JjZXMgYSBsYXlvdXQgcmVmbG93IHRvIGNvbXB1dGUgYm94IGFuZCBzY3JvbGwgbWV0cmljcyBhbmRcbiAgICogc2hvdWxkIGJlIGNhbGxlZCBzcGFyaW5nbHkuXG4gICAqL1xuICBfZ2V0TWF4U2Nyb2xsRGlzdGFuY2UoKTogbnVtYmVyIHtcbiAgICBjb25zdCBsZW5ndGhPZlRhYkxpc3QgPSB0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGg7XG4gICAgY29uc3Qgdmlld0xlbmd0aCA9IHRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICByZXR1cm4gbGVuZ3RoT2ZUYWJMaXN0IC0gdmlld0xlbmd0aCB8fCAwO1xuICB9XG5cbiAgLyoqIFBlcmZvcm1zIHRoZSBDU1MgdHJhbnNmb3JtYXRpb24gb24gdGhlIHRhYiBsaXN0IHRoYXQgd2lsbCBjYXVzZSB0aGUgbGlzdCB0byBzY3JvbGwuICovXG4gIF91cGRhdGVUYWJTY3JvbGxQb3NpdGlvbigpIHtcbiAgICBjb25zdCBzY3JvbGxEaXN0YW5jZSA9IHRoaXMuc2Nyb2xsRGlzdGFuY2U7XG4gICAgY29uc3QgdHJhbnNsYXRlWCA9IC1zY3JvbGxEaXN0YW5jZTtcbiAgICAvLyBEb24ndCB1c2UgYHRyYW5zbGF0ZTNkYCBoZXJlIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgYSBuZXcgbGF5ZXIuIEEgbmV3IGxheWVyXG4gICAgLy8gc2VlbXMgdG8gY2F1c2UgZmxpY2tlcmluZyBhbmQgb3ZlcmZsb3cgaW4gSW50ZXJuZXQgRXhwbG9yZXIuIEZvciBleGFtcGxlLCB0aGUgaW5rIGJhclxuICAgIC8vIGFuZCByaXBwbGVzIHdpbGwgZXhjZWVkIHRoZSBib3VuZGFyaWVzIG9mIHRoZSB2aXNpYmxlIHRhYiBiYXIuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvaXNzdWVzLzEwMjc2XG4gICAgdGhpcy5fdGFiTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKCR7dHJhbnNsYXRlWH1weClgO1xuICB9XG5cbiAgLyoqIFRlbGxzIHRoZSBhY3RpdmUgaW5kaWNhdG9yIHRvIGFsaWduIGl0c2VsZiB0byB0aGUgY3VycmVudCBsYWJlbCB3cmFwcGVyICovXG4gIF9hbGlnbkFjdGl2ZUluZGljYXRvclRvU2VsZWN0ZWRUYWIoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRMYWJlbFdyYXBwZXIgPVxuICAgICAgdGhpcy5fbGFiZWxXcmFwcGVycz8ubGVuZ3RoID4gMFxuICAgICAgICA/IHRoaXMuX2xhYmVsV3JhcHBlcnMudG9BcnJheSgpW3RoaXMuc2VsZWN0ZWRJbmRleF0uZWxlbWVudFJlZlxuICAgICAgICAgICAgLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgOiBudWxsO1xuICAgIHRoaXMuX2FjdGl2ZUluZGljYXRvci5hbGlnblRvRWxlbWVudChzZWxlY3RlZExhYmVsV3JhcHBlcik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdmlld3BvcnRSdWxlcjogVmlld3BvcnRSdWxlcixcbiAgKSB7fVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJiZW0uYmxvY2sodHlwZSwgc2l6ZSlcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl90aXRsZVwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3RpdGxlJylcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl90aXRsZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8ZGl2IFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCdoZWFkZXItd3JhcHBlcicpXCI+XG4gICAgPGRpdlxuICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3BhZ2luYXRpb24td3JhcHBlcicpXCJcbiAgICAgICNwYWdpbmF0aW9uV3JhcHBlclxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJfc2hvd1BhZ2luYXRpb25Db250cm9sc1wiXG4gICAgICAgIChjbGljayk9XCJfc2Nyb2xsSGVhZGVyKCdiZWZvcmUnKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cIl9kaXNhYmxlU2Nyb2xsQmVmb3JlID8gJycgOiBudWxsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3BhZ2luYXRpb24tYnV0dG9uJylcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX2xlZnRcIj48L2F1aS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCd0YWItbGlzdC1jb250YWluZXInKVwiXG4gICAgICAgIChrZXlkb3duKT1cIl9oYW5kbGVLZXlkb3duKCRldmVudClcIlxuICAgICAgICAjdGFiTGlzdENvbnRhaW5lclxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgICAgIChjZGtPYnNlcnZlQ29udGVudCk9XCJfb25Db250ZW50Q2hhbmdlcygpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgndGFiLWxpc3QnKVwiXG4gICAgICAgICAgI3RhYkxpc3RcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2xhYmVscycpXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxuICAgICAgICAgIDxhdWktdGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yXG4gICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICA+PC9hdWktdGFiLWhlYWRlci1hY3RpdmUtaW5kaWNhdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzXCJcbiAgICAgICAgKGNsaWNrKT1cIl9zY3JvbGxIZWFkZXIoJ2FmdGVyJylcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJfZGlzYWJsZVNjcm9sbEFmdGVyID8gJycgOiBudWxsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3BhZ2luYXRpb24tYnV0dG9uJylcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX3JpZ2h0XCI+PC9hdWktaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gSWYgdGhlcmUgaXMgYWRkb24gdGVtcGxhdGUsIHVzZSBpdC4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zaG93QWRkb25cIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2FkZG9uJylcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX2hlYWRlckFkZG9uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,72 @@
1
+ import { TemplatePortal } from '@angular/cdk/portal';
2
+ import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+ import { coerceAttrBoolean } from '../utils';
5
+ import { TabContentDirective, TabLabelDirective } from './tab-body.component';
6
+ import { TabContextService } from './tab-context.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./tab-context.service";
9
+ export class TabComponent {
10
+ _viewContainerRef;
11
+ tabContext;
12
+ name;
13
+ textLabel = '';
14
+ closeable = false;
15
+ disabled;
16
+ close = new EventEmitter();
17
+ templateLabel;
18
+ _explicitContent;
19
+ _implicitContent;
20
+ get content() {
21
+ return this._contentPortal;
22
+ }
23
+ position = null;
24
+ origin = null;
25
+ _stateChanges = new Subject();
26
+ _contentPortal = null;
27
+ constructor(_viewContainerRef, tabContext) {
28
+ this._viewContainerRef = _viewContainerRef;
29
+ this.tabContext = tabContext;
30
+ }
31
+ ngAfterContentInit() {
32
+ this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);
33
+ }
34
+ ngOnDestroy() {
35
+ this._stateChanges.complete();
36
+ }
37
+ ngOnChanges(changes) {
38
+ if (changes.hasOwnProperty('textLabel') ||
39
+ changes.hasOwnProperty('disabled') ||
40
+ changes.hasOwnProperty('closeable')) {
41
+ this._stateChanges.next();
42
+ }
43
+ }
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.TabContextService }], target: i0.ɵɵFactoryTarget.Component });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TabComponent, selector: "aui-tab", inputs: { name: "name", textLabel: ["label", "textLabel"], closeable: "closeable", disabled: ["disabled", "disabled", coerceAttrBoolean] }, 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 });
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabComponent, decorators: [{
48
+ type: Component,
49
+ 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" }]
50
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.TabContextService }]; }, propDecorators: { name: [{
51
+ type: Input
52
+ }], textLabel: [{
53
+ type: Input,
54
+ args: ['label']
55
+ }], closeable: [{
56
+ type: Input
57
+ }], disabled: [{
58
+ type: Input,
59
+ args: [{ transform: coerceAttrBoolean }]
60
+ }], close: [{
61
+ type: Output
62
+ }], templateLabel: [{
63
+ type: ContentChild,
64
+ args: [TabLabelDirective, { static: false }]
65
+ }], _explicitContent: [{
66
+ type: ContentChild,
67
+ args: [TabContentDirective, { read: TemplateRef, static: false }]
68
+ }], _implicitContent: [{
69
+ type: ViewChild,
70
+ args: [TemplateRef, { static: true }]
71
+ }] } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJzL3RhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9zcmMvdGFicy90YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBVzFELE1BQU0sT0FBTyxZQUFZO0lBd0RKO0lBQ0Q7SUF2RGxCLElBQUksQ0FBUztJQUliLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFJZixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBSWxCLFFBQVEsQ0FBVTtJQUdsQixLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUlqQyxhQUFhLENBQW9CO0lBTWpDLGdCQUFnQixDQUFtQjtJQUluQyxnQkFBZ0IsQ0FBbUI7SUFFbkMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFNRCxRQUFRLEdBQWtCLElBQUksQ0FBQztJQU0vQixNQUFNLEdBQWtCLElBQUksQ0FBQztJQUdwQixhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUdyQyxjQUFjLEdBQTBCLElBQUksQ0FBQztJQUVyRCxZQUNtQixpQkFBbUMsRUFDcEMsVUFBNkI7UUFENUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtJQUM1QyxDQUFDO0lBRUosa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQ0UsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFDbkMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7WUFDbEMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFDbkM7WUFDQSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzt1R0EvRVUsWUFBWTsyRkFBWixZQUFZLDZJQWFILGlCQUFpQiw2Q0FmMUIsQ0FBQyxpQkFBaUIsQ0FBQyxxRUFzQmhCLGlCQUFpQixtRkFNakIsbUJBQW1CLDJCQUFVLFdBQVcsK0VBSTNDLFdBQVcseUdDaEV4QiwrUUFNQTs7MkZENEJhLFlBQVk7a0JBVHhCLFNBQVM7K0JBQ0UsU0FBUyxZQUNULFFBQVEsaUJBRUgsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSx1QkFDMUIsS0FBSyxhQUNmLENBQUMsaUJBQWlCLENBQUM7dUlBSTlCLElBQUk7c0JBREgsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7dUJBQUMsT0FBTztnQkFLZCxTQUFTO3NCQURSLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFO2dCQUl2QyxLQUFLO3NCQURKLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFPbEQsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBS3ZFLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgY29lcmNlQXR0ckJvb2xlYW4gfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7IFRhYkNvbnRlbnREaXJlY3RpdmUsIFRhYkxhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi90YWItYm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3RhYi1jb250ZXh0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdGFiJyxcbiAgZXhwb3J0QXM6ICdhdWlUYWInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtUYWJDb250ZXh0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBQbGFpbiB0ZXh0IGxhYmVsIGZvciB0aGUgdGFiLCB1c2VkIHdoZW4gdGhlcmUgaXMgbm8gdGVtcGxhdGUgbGFiZWwuICovXG4gIEBJbnB1dCgnbGFiZWwnKVxuICB0ZXh0TGFiZWwgPSAnJztcblxuICAvKiogV2hldGhlciBvciBub3QgdG8gc2hvdyB0aGUgY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIgKi9cbiAgQElucHV0KClcbiAgY2xvc2VhYmxlID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRoZSB0YWIgaXMgZGlzYWJsZWQgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKiBDb250ZW50IGZvciB0aGUgdGFiIGxhYmVsIGdpdmVuIGJ5IGA8bmctdGVtcGxhdGUgW2F1aVRhYkxhYmVsXT5gLiAqL1xuICBAQ29udGVudENoaWxkKFRhYkxhYmVsRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgdGVtcGxhdGVMYWJlbDogVGFiTGFiZWxEaXJlY3RpdmU7XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHByb3ZpZGVkIGluIHRoZSB0YWIgY29udGVudCB0aGF0IHdpbGwgYmUgdXNlZCBpZiBwcmVzZW50LCB1c2VkIHRvIGVuYWJsZSBsYXp5LWxvYWRpbmdcbiAgICovXG4gIEBDb250ZW50Q2hpbGQoVGFiQ29udGVudERpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBfZXhwbGljaXRDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBUZW1wbGF0ZSBpbnNpZGUgdGhlIEF1aVRhYiB2aWV3IHRoYXQgY29udGFpbnMgYW4gYDxuZy1jb250ZW50PmAuICovXG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXG4gIF9pbXBsaWNpdENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IGNvbnRlbnQoKTogVGVtcGxhdGVQb3J0YWwgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFBvcnRhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVsYXRpdmVseSBpbmRleGVkIHBvc2l0aW9uIHdoZXJlIDAgcmVwcmVzZW50cyB0aGUgY2VudGVyLCBuZWdhdGl2ZSBpcyBsZWZ0LCBhbmQgcG9zaXRpdmVcbiAgICogcmVwcmVzZW50cyB0aGUgcmlnaHQuXG4gICAqL1xuICBwb3NpdGlvbjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHJlbGF0aXZlbHkgaW5kZXggb3JpZ2luIG9mIHRoZSB0YWIgaWYgaXQgd2FzIGNyZWF0ZWQgYW5kIHNlbGVjdGVkIGFmdGVyIHRoZXJlXG4gICAqIHdhcyBhbHJlYWR5IGEgc2VsZWN0ZWQgdGFiLiBQcm92aWRlcyBjb250ZXh0IG9mIHdoYXQgcG9zaXRpb24gdGhlIHRhYiBzaG91bGQgb3JpZ2luYXRlIGZyb20uXG4gICAqL1xuICBvcmlnaW46IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIHRhYiBjaGFuZ2VzLiAqL1xuICByZWFkb25seSBfc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKiogUG9ydGFsIHRoYXQgd2lsbCBiZSB0aGUgaG9zdGVkIGNvbnRlbnQgb2YgdGhlIHRhYiAqL1xuICBwcml2YXRlIF9jb250ZW50UG9ydGFsOiBUZW1wbGF0ZVBvcnRhbCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIHJlYWRvbmx5IHRhYkNvbnRleHQ6IFRhYkNvbnRleHRTZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRlbnRQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICB0aGlzLl9leHBsaWNpdENvbnRlbnQgfHwgdGhpcy5faW1wbGljaXRDb250ZW50LFxuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZixcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgndGV4dExhYmVsJykgfHxcbiAgICAgIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2Rpc2FibGVkJykgfHxcbiAgICAgIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2Nsb3NlYWJsZScpXG4gICAgKSB7XG4gICAgICB0aGlzLl9zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLVxuICBDcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGNvbnRlbnQgb2YgdGhlIDxhdWktdGFiPiBzbyB0aGF0IHdlIGNhbiBncmFiIGEgcmVmZXJlbmNlIHRvIHRoaXNcbiAgVGVtcGxhdGVSZWYgYW5kIHVzZSBpdCBpbiBhIFBvcnRhbCB0byByZW5kZXIgdGhlIHRhYiBjb250ZW50IGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZSBpbiB0aGVcbiAgdGFiLWdyb3VwLlxuLS0+XG48bmctdGVtcGxhdGU+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,86 @@
1
+ import { A11yModule } from '@angular/cdk/a11y';
2
+ import { ObserversModule } from '@angular/cdk/observers';
3
+ import { PortalModule } from '@angular/cdk/portal';
4
+ import { CommonModule } from '@angular/common';
5
+ import { NgModule } from '@angular/core';
6
+ import { FormsModule } from '@angular/forms';
7
+ import { ButtonModule } from '../button';
8
+ import { IconModule } from '../icon';
9
+ import { TabBodyComponent, TabBodyPortalDirective, TabContentDirective, TabHeaderAddonDirective, TabLabelDirective, TabLabelWrapperDirective, TabTitleDirective, } from './tab-body.component';
10
+ import { TabGroupComponent } from './tab-group.component';
11
+ import { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';
12
+ import { TabHeaderComponent } from './tab-header.component';
13
+ import { TabComponent } from './tab.component';
14
+ import * as i0 from "@angular/core";
15
+ export class TabsModule {
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TabsModule, declarations: [TabGroupComponent,
18
+ TabComponent,
19
+ TabLabelDirective,
20
+ TabContentDirective,
21
+ TabHeaderAddonDirective,
22
+ TabTitleDirective,
23
+ TabHeaderComponent,
24
+ TabBodyComponent,
25
+ TabBodyPortalDirective,
26
+ TabLabelWrapperDirective,
27
+ TabHeaderActiveIndicatorComponent], imports: [CommonModule,
28
+ FormsModule,
29
+ PortalModule,
30
+ ButtonModule,
31
+ IconModule,
32
+ A11yModule,
33
+ ObserversModule], exports: [TabGroupComponent,
34
+ TabComponent,
35
+ TabLabelDirective,
36
+ TabContentDirective,
37
+ TabHeaderAddonDirective,
38
+ TabTitleDirective,
39
+ TabLabelWrapperDirective,
40
+ TabHeaderComponent] });
41
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabsModule, imports: [CommonModule,
42
+ FormsModule,
43
+ PortalModule,
44
+ ButtonModule,
45
+ IconModule,
46
+ A11yModule,
47
+ ObserversModule] });
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TabsModule, decorators: [{
50
+ type: NgModule,
51
+ args: [{
52
+ imports: [
53
+ CommonModule,
54
+ FormsModule,
55
+ PortalModule,
56
+ ButtonModule,
57
+ IconModule,
58
+ A11yModule,
59
+ ObserversModule,
60
+ ],
61
+ declarations: [
62
+ TabGroupComponent,
63
+ TabComponent,
64
+ TabLabelDirective,
65
+ TabContentDirective,
66
+ TabHeaderAddonDirective,
67
+ TabTitleDirective,
68
+ TabHeaderComponent,
69
+ TabBodyComponent,
70
+ TabBodyPortalDirective,
71
+ TabLabelWrapperDirective,
72
+ TabHeaderActiveIndicatorComponent,
73
+ ],
74
+ exports: [
75
+ TabGroupComponent,
76
+ TabComponent,
77
+ TabLabelDirective,
78
+ TabContentDirective,
79
+ TabHeaderAddonDirective,
80
+ TabTitleDirective,
81
+ TabLabelWrapperDirective,
82
+ TabHeaderComponent,
83
+ ],
84
+ }]
85
+ }] });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFicy90YWJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXJDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixpQkFBaUIsR0FDbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBb0MvQyxNQUFNLE9BQU8sVUFBVTt1R0FBVixVQUFVO3dHQUFWLFVBQVUsaUJBdkJuQixpQkFBaUI7WUFDakIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLHNCQUFzQjtZQUN0Qix3QkFBd0I7WUFDeEIsaUNBQWlDLGFBbkJqQyxZQUFZO1lBQ1osV0FBVztZQUNYLFlBQVk7WUFDWixZQUFZO1lBQ1osVUFBVTtZQUNWLFVBQVU7WUFDVixlQUFlLGFBZ0JmLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLHdCQUF3QjtZQUN4QixrQkFBa0I7d0dBR1QsVUFBVSxZQWhDbkIsWUFBWTtZQUNaLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTtZQUNaLFVBQVU7WUFDVixVQUFVO1lBQ1YsZUFBZTs7MkZBMEJOLFVBQVU7a0JBbEN0QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixlQUFlO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4QixpQ0FBaUM7cUJBQ2xDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQix3QkFBd0I7d0JBQ3hCLGtCQUFrQjtxQkFDbkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgT2JzZXJ2ZXJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL29ic2VydmVycyc7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbic7XG5cbmltcG9ydCB7XG4gIFRhYkJvZHlDb21wb25lbnQsXG4gIFRhYkJvZHlQb3J0YWxEaXJlY3RpdmUsXG4gIFRhYkNvbnRlbnREaXJlY3RpdmUsXG4gIFRhYkhlYWRlckFkZG9uRGlyZWN0aXZlLFxuICBUYWJMYWJlbERpcmVjdGl2ZSxcbiAgVGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlLFxuICBUYWJUaXRsZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi90YWItYm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3RhYi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiSGVhZGVyQWN0aXZlSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi90YWItaGVhZGVyLWFjdGl2ZS1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdGFiLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiQ29tcG9uZW50IH0gZnJvbSAnLi90YWIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBQb3J0YWxNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBPYnNlcnZlcnNNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRhYkdyb3VwQ29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBUYWJMYWJlbERpcmVjdGl2ZSxcbiAgICBUYWJDb250ZW50RGlyZWN0aXZlLFxuICAgIFRhYkhlYWRlckFkZG9uRGlyZWN0aXZlLFxuICAgIFRhYlRpdGxlRGlyZWN0aXZlLFxuICAgIFRhYkhlYWRlckNvbXBvbmVudCxcbiAgICBUYWJCb2R5Q29tcG9uZW50LFxuICAgIFRhYkJvZHlQb3J0YWxEaXJlY3RpdmUsXG4gICAgVGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlLFxuICAgIFRhYkhlYWRlckFjdGl2ZUluZGljYXRvckNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRhYkdyb3VwQ29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBUYWJMYWJlbERpcmVjdGl2ZSxcbiAgICBUYWJDb250ZW50RGlyZWN0aXZlLFxuICAgIFRhYkhlYWRlckFkZG9uRGlyZWN0aXZlLFxuICAgIFRhYlRpdGxlRGlyZWN0aXZlLFxuICAgIFRhYkxhYmVsV3JhcHBlckRpcmVjdGl2ZSxcbiAgICBUYWJIZWFkZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYnNNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export const TabSize = {
2
+ Large: 'large',
3
+ Medium: 'medium',
4
+ Small: 'small',
5
+ };
6
+ export const TabType = {
7
+ Line: 'line',
8
+ Card: 'card',
9
+ };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJzL3RhYnMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBRXJCLEtBQUssRUFBRSxPQUFPO0lBR2QsTUFBTSxFQUFFLFFBQVE7SUFHaEIsS0FBSyxFQUFFLE9BQU87Q0FDTixDQUFDO0FBSVgsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsdWVPZiB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IFRhYlNpemUgPSB7XG4gIC8qKiDljaHniYfnuqflsLrlr7ggKi9cbiAgTGFyZ2U6ICdsYXJnZScsXG5cbiAgLyoqIOmhtemdoue6p+WwuuWvuCAqL1xuICBNZWRpdW06ICdtZWRpdW0nLFxuXG4gIC8qKiDlsI/lsLrlr7ggKi9cbiAgU21hbGw6ICdzbWFsbCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBUYWJTaXplID0gVmFsdWVPZjx0eXBlb2YgVGFiU2l6ZT47XG5cbmV4cG9ydCBjb25zdCBUYWJUeXBlID0ge1xuICBMaW5lOiAnbGluZScsXG4gIENhcmQ6ICdjYXJkJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFRhYlR5cGUgPSBWYWx1ZU9mPHR5cGVvZiBUYWJUeXBlPjtcbiJdfQ==