@alauda/ui 6.5.10-beta → 6.5.10-beta.1

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 (599) 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 +1 -1
  11. package/autocomplete/suggestion-group/suggestion-group.component.d.ts +1 -1
  12. package/back-top/back-top.component.d.ts +2 -2
  13. package/breadcrumb/breadcrumb-item.component.d.ts +1 -1
  14. package/breadcrumb/breadcrumb.component.d.ts +1 -1
  15. package/button/button-group/button-group.component.d.ts +1 -1
  16. package/button/button.component.d.ts +1 -1
  17. package/button/button.types.d.ts +1 -10
  18. package/card/card.component.d.ts +1 -1
  19. package/card/helper-directives.d.ts +3 -6
  20. package/card/section.component.d.ts +1 -1
  21. package/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
  22. package/checkbox/checkbox.component.d.ts +1 -1
  23. package/color-picker/color-picker.component.d.ts +1 -1
  24. package/date-picker/calendar/date-picker-panel/component.d.ts +1 -1
  25. package/date-picker/calendar/footer/component.d.ts +1 -1
  26. package/date-picker/calendar/header/component.d.ts +1 -1
  27. package/date-picker/calendar/panel/picker-panel.d.ts +1 -1
  28. package/date-picker/calendar/range-picker-panel/component.d.ts +1 -1
  29. package/date-picker/date-picker/date-picker.component.d.ts +1 -1
  30. package/date-picker/date-picker.type.d.ts +2 -2
  31. package/date-picker/range-picker/range-picker.component.d.ts +1 -1
  32. package/date-picker/trigger/trigger.component.d.ts +1 -1
  33. package/dialog/confirm-dialog/confirm-dialog.component.d.ts +1 -1
  34. package/dialog/dialog-content/dialog-close.directive.d.ts +1 -1
  35. package/dialog/dialog-content/dialog-content.component.d.ts +1 -1
  36. package/dialog/dialog-content/dialog-footer.component.d.ts +1 -1
  37. package/dialog/dialog-content/dialog-header.component.d.ts +1 -1
  38. package/dialog/dialog.component.d.ts +1 -1
  39. package/dialog/dialog.types.d.ts +3 -3
  40. package/drawer/component/drawer.component.d.ts +1 -1
  41. package/drawer/component/helper-directives.d.ts +3 -3
  42. package/dropdown/dropdown-active.directive.d.ts +1 -1
  43. package/dropdown/dropdown-button/dropdown-button.component.d.ts +1 -1
  44. package/dropdown/dropdown.directive.d.ts +1 -1
  45. package/dropdown/dropdown.types.d.ts +1 -1
  46. package/dropdown/helper-directives.d.ts +1 -1
  47. package/dropdown/menu/menu-content.directive.d.ts +1 -1
  48. package/dropdown/menu/menu.component.d.ts +1 -1
  49. package/dropdown/menu-group/menu-group.component.d.ts +1 -1
  50. package/dropdown/menu-item/menu-item.component.d.ts +1 -1
  51. package/dropdown/submenu/submenu.component.d.ts +1 -1
  52. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +73 -0
  53. package/esm2022/accordion/accordion.component.mjs +29 -0
  54. package/esm2022/accordion/accordion.module.mjs +39 -0
  55. package/esm2022/alauda-ui.mjs +2 -0
  56. package/esm2022/anchor/anchor.component.mjs +141 -0
  57. package/esm2022/anchor/anchor.directive.mjs +198 -0
  58. package/esm2022/anchor/anchor.module.mjs +35 -0
  59. package/{esm2020 → esm2022}/autocomplete/autocomplete-placeholder.component.mjs +4 -4
  60. package/esm2022/autocomplete/autocomplete.component.mjs +72 -0
  61. package/esm2022/autocomplete/autocomplete.directive.mjs +278 -0
  62. package/esm2022/autocomplete/autocomplete.module.mjs +53 -0
  63. package/{esm2020 → esm2022}/autocomplete/helper-directives.mjs +4 -4
  64. package/esm2022/autocomplete/suggestion/suggestion.component.mjs +85 -0
  65. package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +25 -0
  66. package/esm2022/back-top/back-top.component.mjs +68 -0
  67. package/esm2022/back-top/back-top.module.mjs +19 -0
  68. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +33 -0
  69. package/esm2022/breadcrumb/breadcrumb.component.mjs +56 -0
  70. package/esm2022/breadcrumb/breadcrumb.module.mjs +20 -0
  71. package/{esm2020 → esm2022}/button/button-group/button-group.component.mjs +4 -4
  72. package/esm2022/button/button.component.mjs +124 -0
  73. package/esm2022/button/button.module.mjs +20 -0
  74. package/esm2022/button/button.types.mjs +13 -0
  75. package/esm2022/card/card.component.mjs +14 -0
  76. package/esm2022/card/card.module.mjs +40 -0
  77. package/esm2022/card/helper-directives.mjs +45 -0
  78. package/{esm2020 → esm2022}/card/section.component.mjs +4 -4
  79. package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +60 -0
  80. package/esm2022/checkbox/checkbox.component.mjs +116 -0
  81. package/esm2022/checkbox/checkbox.module.mjs +20 -0
  82. package/esm2022/color-picker/color-picker.component.mjs +28 -0
  83. package/esm2022/color-picker/color-picker.module.mjs +19 -0
  84. package/esm2022/date-picker/calendar/constant.mjs +31 -0
  85. package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +137 -0
  86. package/esm2022/date-picker/calendar/footer/component.mjs +29 -0
  87. package/esm2022/date-picker/calendar/header/component.mjs +99 -0
  88. package/esm2022/date-picker/calendar/panel/picker-panel.mjs +158 -0
  89. package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +210 -0
  90. package/esm2022/date-picker/calendar/util.mjs +152 -0
  91. package/esm2022/date-picker/date-picker/date-picker.component.mjs +115 -0
  92. package/esm2022/date-picker/date-picker.module.mjs +82 -0
  93. package/esm2022/date-picker/range-picker/range-picker.component.mjs +88 -0
  94. package/esm2022/date-picker/trigger/trigger.component.mjs +76 -0
  95. package/esm2022/dialog/confirm-dialog/confirm-dialog-config.mjs +13 -0
  96. package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +88 -0
  97. package/{esm2020 → esm2022}/dialog/dialog-animations.mjs +1 -2
  98. package/esm2022/dialog/dialog-config.mjs +14 -0
  99. package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +42 -0
  100. package/esm2022/dialog/dialog-content/dialog-content.component.mjs +19 -0
  101. package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +13 -0
  102. package/esm2022/dialog/dialog-content/dialog-header.component.mjs +42 -0
  103. package/esm2022/dialog/dialog-ref.mjs +52 -0
  104. package/esm2022/dialog/dialog.component.mjs +154 -0
  105. package/esm2022/dialog/dialog.module.mjs +65 -0
  106. package/esm2022/dialog/dialog.service.mjs +124 -0
  107. package/esm2022/drawer/component/drawer.component.mjs +248 -0
  108. package/esm2022/drawer/component/helper-directives.mjs +33 -0
  109. package/esm2022/drawer/drawer.module.mjs +36 -0
  110. package/esm2022/drawer/drawer.service.mjs +47 -0
  111. package/esm2022/dropdown/dropdown-active.directive.mjs +18 -0
  112. package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +58 -0
  113. package/esm2022/dropdown/dropdown.directive.mjs +83 -0
  114. package/esm2022/dropdown/dropdown.module.mjs +65 -0
  115. package/{esm2020 → esm2022}/dropdown/helper-directives.mjs +4 -4
  116. package/esm2022/dropdown/menu/menu-content.directive.mjs +59 -0
  117. package/esm2022/dropdown/menu/menu.component.mjs +26 -0
  118. package/{esm2020 → esm2022}/dropdown/menu-group/menu-group.component.mjs +4 -4
  119. package/esm2022/dropdown/menu-item/menu-item.component.mjs +35 -0
  120. package/esm2022/dropdown/submenu/submenu.component.mjs +38 -0
  121. package/esm2022/form/common-form.mjs +88 -0
  122. package/esm2022/form/form-item/form-item.component.mjs +121 -0
  123. package/esm2022/form/form.directive.mjs +70 -0
  124. package/esm2022/form/form.module.mjs +48 -0
  125. package/esm2022/form/helper-directives.mjs +78 -0
  126. package/{esm2020 → esm2022}/i18n/i18n.module.mjs +5 -5
  127. package/esm2022/i18n/i18n.pipe.mjs +21 -0
  128. package/esm2022/i18n/i18n.service.mjs +46 -0
  129. package/esm2022/icon/icon-register.service.mjs +75 -0
  130. package/esm2022/icon/icon.component.mjs +74 -0
  131. package/esm2022/icon/icon.module.mjs +21 -0
  132. package/{esm2020 → esm2022}/inline-alert/helper-directives.mjs +4 -4
  133. package/esm2022/inline-alert/inline-alert.component.mjs +54 -0
  134. package/esm2022/inline-alert/inline-alert.module.mjs +20 -0
  135. package/esm2022/input/autosize.directive.mjs +56 -0
  136. package/esm2022/input/helper-directives.mjs +43 -0
  137. package/esm2022/input/input-group/input-group.component.mjs +46 -0
  138. package/esm2022/input/input.component.mjs +59 -0
  139. package/esm2022/input/input.module.mjs +85 -0
  140. package/esm2022/input/number-input/number-input.component.mjs +115 -0
  141. package/esm2022/input/search/search.component.mjs +87 -0
  142. package/esm2022/input/tags-input/tags-input.component.mjs +264 -0
  143. package/esm2022/message/base-message.mjs +99 -0
  144. package/esm2022/message/message-wrapper.component.mjs +15 -0
  145. package/esm2022/message/message.component.mjs +77 -0
  146. package/esm2022/message/message.config.mjs +20 -0
  147. package/esm2022/message/message.module.mjs +22 -0
  148. package/{esm2020 → esm2022}/message/message.service.mjs +4 -4
  149. package/esm2022/notification/notification-wrapper.component.mjs +17 -0
  150. package/esm2022/notification/notification.component.mjs +106 -0
  151. package/esm2022/notification/notification.module.mjs +23 -0
  152. package/{esm2020 → esm2022}/notification/notification.service.mjs +4 -4
  153. package/esm2022/paginator/paginator-intl.mjs +24 -0
  154. package/esm2022/paginator/paginator.component.mjs +124 -0
  155. package/esm2022/paginator/paginator.module.mjs +24 -0
  156. package/esm2022/radio/base-radio.mjs +72 -0
  157. package/esm2022/radio/radio-button/radio-button.component.mjs +41 -0
  158. package/esm2022/radio/radio-group/radio-group.component.mjs +70 -0
  159. package/esm2022/radio/radio.component.mjs +23 -0
  160. package/esm2022/radio/radio.module.mjs +21 -0
  161. package/esm2022/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +80 -0
  162. package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +119 -0
  163. package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +27 -0
  164. package/{esm2020 → esm2022}/scrolling/scrolling.module.mjs +9 -9
  165. package/{esm2020 → esm2022}/scrolling/virtual-for-of.directive.mjs +4 -4
  166. package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +26 -0
  167. package/esm2022/select/base-select.mjs +345 -0
  168. package/{esm2020 → esm2022}/select/helper-directives.mjs +7 -7
  169. package/esm2022/select/multi-select/multi-select.component.mjs +318 -0
  170. package/esm2022/select/option/option.component.mjs +119 -0
  171. package/esm2022/select/option-group/option-group.component.mjs +25 -0
  172. package/{esm2020 → esm2022}/select/option-placeholder.component.mjs +4 -4
  173. package/esm2022/select/select.component.mjs +107 -0
  174. package/esm2022/select/select.module.mjs +78 -0
  175. package/esm2022/select/validators.mjs +78 -0
  176. package/esm2022/shared/click-outside.directive.mjs +29 -0
  177. package/{esm2020 → esm2022}/shared/shared.module.mjs +5 -5
  178. package/esm2022/sort/sort-errors.mjs +13 -0
  179. package/esm2022/sort/sort-header.component.mjs +74 -0
  180. package/esm2022/sort/sort.directive.mjs +73 -0
  181. package/esm2022/sort/sort.module.mjs +19 -0
  182. package/esm2022/status-bar/status-bar.component.mjs +28 -0
  183. package/esm2022/status-bar/status-bar.module.mjs +19 -0
  184. package/esm2022/steps/steps.component.mjs +180 -0
  185. package/esm2022/steps/steps.module.mjs +19 -0
  186. package/esm2022/switch/switch.component.mjs +43 -0
  187. package/esm2022/switch/switch.module.mjs +18 -0
  188. package/esm2022/table/table-cell-def.directive.mjs +25 -0
  189. package/esm2022/table/table-cell.component.mjs +115 -0
  190. package/esm2022/table/table-cell.directive.mjs +29 -0
  191. package/esm2022/table/table-column-def.directive.mjs +31 -0
  192. package/esm2022/table/table-header-cell-def.directive.mjs +25 -0
  193. package/esm2022/table/table-header-cell.directive.mjs +25 -0
  194. package/esm2022/table/table-header-row-def.directive.mjs +33 -0
  195. package/esm2022/table/table-header-row.component.mjs +24 -0
  196. package/esm2022/table/table-placeholder.directive.mjs +33 -0
  197. package/esm2022/table/table-row-def.directive.mjs +34 -0
  198. package/esm2022/table/table-row.component.mjs +43 -0
  199. package/esm2022/table/table-scroll.directive.mjs +133 -0
  200. package/esm2022/table/table.component.mjs +79 -0
  201. package/esm2022/table/table.module.mjs +96 -0
  202. package/esm2022/table-of-contents/table-of-contents.module.mjs +20 -0
  203. package/esm2022/table-of-contents/toc-container.directive.mjs +111 -0
  204. package/esm2022/table-of-contents/toc-content.directive.mjs +39 -0
  205. package/esm2022/table-of-contents/toc-link.directive.mjs +48 -0
  206. package/esm2022/tabs/tab-body.component.mjs +151 -0
  207. package/esm2022/tabs/tab-context.service.mjs +30 -0
  208. package/esm2022/tabs/tab-group.component.mjs +256 -0
  209. package/esm2022/tabs/tab-header-active-indicator.component.mjs +46 -0
  210. package/esm2022/tabs/tab-header.component.mjs +276 -0
  211. package/esm2022/tabs/tab.component.mjs +77 -0
  212. package/esm2022/tabs/tabs.module.mjs +86 -0
  213. package/esm2022/tabs/tabs.types.mjs +10 -0
  214. package/esm2022/tag/check-tag/check-tag.component.mjs +31 -0
  215. package/esm2022/tag/tag.component.mjs +63 -0
  216. package/esm2022/tag/tag.module.mjs +20 -0
  217. package/esm2022/theme/theme.module.mjs +18 -0
  218. package/esm2022/theme/theme.pipe.mjs +64 -0
  219. package/esm2022/theme/theme.service.mjs +55 -0
  220. package/esm2022/time-picker/component.mjs +181 -0
  221. package/esm2022/time-picker/panel/panel.component.mjs +240 -0
  222. package/esm2022/time-picker/time-picker.module.mjs +56 -0
  223. package/esm2022/tooltip/base-tooltip.mjs +329 -0
  224. package/esm2022/tooltip/tooltip-active.directive.mjs +51 -0
  225. package/esm2022/tooltip/tooltip-copy.directive.mjs +87 -0
  226. package/esm2022/tooltip/tooltip-intl.mjs +21 -0
  227. package/esm2022/tooltip/tooltip.component.mjs +120 -0
  228. package/esm2022/tooltip/tooltip.directive.mjs +44 -0
  229. package/esm2022/tooltip/tooltip.module.mjs +32 -0
  230. package/{esm2020 → esm2022}/tree-select/tree-node-placeholder.component.mjs +4 -4
  231. package/esm2022/tree-select/tree-select.component.mjs +350 -0
  232. package/esm2022/tree-select/tree-select.module.mjs +34 -0
  233. package/esm2022/types.mjs +8 -0
  234. package/esm2022/utils/bem.mjs +44 -0
  235. package/esm2022/utils/coercion.mjs +13 -0
  236. package/{fesm2020 → fesm2022}/alauda-ui.mjs +2818 -2871
  237. package/fesm2022/alauda-ui.mjs.map +1 -0
  238. package/form/common-form.d.ts +1 -8
  239. package/form/form-item/form-item.component.d.ts +1 -1
  240. package/form/form.directive.d.ts +1 -1
  241. package/form/form.types.d.ts +2 -2
  242. package/form/helper-directives.d.ts +5 -5
  243. package/i18n/i18n.pipe.d.ts +1 -1
  244. package/i18n/i18n.type.d.ts +1 -1
  245. package/icon/icon.component.d.ts +1 -1
  246. package/inline-alert/helper-directives.d.ts +1 -1
  247. package/inline-alert/inline-alert.component.d.ts +1 -1
  248. package/inline-alert/inline-alert.types.d.ts +1 -1
  249. package/input/autosize.directive.d.ts +1 -4
  250. package/input/helper-directives.d.ts +4 -4
  251. package/input/input-group/input-group.component.d.ts +1 -1
  252. package/input/input.component.d.ts +1 -4
  253. package/input/number-input/number-input.component.d.ts +1 -1
  254. package/input/search/search.component.d.ts +1 -1
  255. package/input/tags-input/tags-input.component.d.ts +4 -4
  256. package/message/message-wrapper.component.d.ts +1 -1
  257. package/message/message.component.d.ts +1 -1
  258. package/message/message.config.d.ts +0 -20
  259. package/notification/notification-wrapper.component.d.ts +1 -1
  260. package/notification/notification.component.d.ts +1 -5
  261. package/notification/notification.config.d.ts +1 -1
  262. package/package.json +13 -19
  263. package/paginator/paginator-intl.d.ts +0 -9
  264. package/paginator/paginator.component.d.ts +1 -15
  265. package/radio/base-radio.d.ts +1 -1
  266. package/radio/radio-button/radio-button.component.d.ts +1 -1
  267. package/radio/radio-group/radio-group.component.d.ts +1 -4
  268. package/radio/radio.component.d.ts +1 -1
  269. package/radio/radio.types.d.ts +1 -1
  270. package/scrolling/fixed-size-table-virtual-scroll.directive.d.ts +1 -1
  271. package/scrolling/fixed-size-virtual-scroll.directive.d.ts +1 -1
  272. package/scrolling/virtual-for-of.directive.d.ts +1 -1
  273. package/scrolling/virtual-scroll-viewport.component.d.ts +1 -1
  274. package/select/base-select.d.ts +1 -4
  275. package/select/helper-directives.d.ts +2 -2
  276. package/select/multi-select/multi-select.component.d.ts +1 -1
  277. package/select/option/option.component.d.ts +1 -1
  278. package/select/option-group/option-group.component.d.ts +1 -1
  279. package/select/option-placeholder.component.d.ts +1 -1
  280. package/select/select.component.d.ts +1 -1
  281. package/select/select.types.d.ts +3 -3
  282. package/select/validators.d.ts +1 -1
  283. package/shared/click-outside.directive.d.ts +1 -1
  284. package/sort/sort-errors.d.ts +0 -4
  285. package/sort/sort-header.component.d.ts +1 -1
  286. package/sort/sort.directive.d.ts +1 -1
  287. package/sort/sort.types.d.ts +2 -2
  288. package/status-bar/status-bar.component.d.ts +1 -1
  289. package/status-bar/status-bar.types.d.ts +2 -2
  290. package/steps/steps.component.d.ts +1 -4
  291. package/steps/types.d.ts +3 -6
  292. package/switch/switch.component.d.ts +1 -1
  293. package/table/table-cell-def.directive.d.ts +1 -5
  294. package/table/table-cell.component.d.ts +2 -2
  295. package/table/table-cell.directive.d.ts +1 -2
  296. package/table/table-column-def.directive.d.ts +1 -5
  297. package/table/table-header-cell-def.directive.d.ts +1 -5
  298. package/table/table-header-cell.directive.d.ts +1 -2
  299. package/table/table-header-row-def.directive.d.ts +1 -5
  300. package/table/table-header-row.component.d.ts +1 -2
  301. package/table/table-placeholder.directive.d.ts +2 -2
  302. package/table/table-row-def.directive.d.ts +1 -6
  303. package/table/table-row.component.d.ts +1 -2
  304. package/table/table-scroll.directive.d.ts +2 -2
  305. package/table/table.component.d.ts +1 -1
  306. package/table-of-contents/toc-container.directive.d.ts +1 -1
  307. package/table-of-contents/toc-content.directive.d.ts +1 -1
  308. package/table-of-contents/toc-link.directive.d.ts +1 -1
  309. package/tabs/tab-body.component.d.ts +7 -23
  310. package/tabs/tab-context.service.d.ts +0 -3
  311. package/tabs/tab-group.component.d.ts +1 -29
  312. package/tabs/tab-header-active-indicator.component.d.ts +1 -10
  313. package/tabs/tab-header.component.d.ts +2 -85
  314. package/tabs/tab.component.d.ts +1 -19
  315. package/tabs/tabs.types.d.ts +2 -5
  316. package/tag/check-tag/check-tag.component.d.ts +1 -1
  317. package/tag/tag.component.d.ts +1 -1
  318. package/tag/tag.types.d.ts +1 -1
  319. package/theme/style.css +5 -1
  320. package/theme/theme.pipe.d.ts +4 -4
  321. package/theme/theme.types.d.ts +3 -3
  322. package/time-picker/component.d.ts +1 -1
  323. package/time-picker/panel/panel.component.d.ts +1 -1
  324. package/time-picker/time-picker.type.d.ts +1 -1
  325. package/tooltip/base-tooltip.d.ts +1 -1
  326. package/tooltip/tooltip-active.directive.d.ts +1 -1
  327. package/tooltip/tooltip-copy.directive.d.ts +1 -1
  328. package/tooltip/tooltip-intl.d.ts +0 -4
  329. package/tooltip/tooltip.component.d.ts +1 -1
  330. package/tooltip/tooltip.directive.d.ts +1 -1
  331. package/tree-select/tree-node-placeholder.component.d.ts +1 -1
  332. package/tree-select/tree-select.component.d.ts +2 -2
  333. package/tree-select/tree-select.types.d.ts +1 -1
  334. package/types.d.ts +2 -5
  335. package/utils/operators.d.ts +1 -1
  336. package/.changeset/README.md +0 -8
  337. package/alauda-ui.d.ts +0 -5
  338. package/esm2020/accordion/accordion-item/accordion-item.component.mjs +0 -73
  339. package/esm2020/accordion/accordion.component.mjs +0 -27
  340. package/esm2020/accordion/accordion.module.mjs +0 -39
  341. package/esm2020/alauda-ui.mjs +0 -5
  342. package/esm2020/anchor/anchor.component.mjs +0 -138
  343. package/esm2020/anchor/anchor.directive.mjs +0 -182
  344. package/esm2020/anchor/anchor.module.mjs +0 -36
  345. package/esm2020/autocomplete/autocomplete.component.mjs +0 -64
  346. package/esm2020/autocomplete/autocomplete.directive.mjs +0 -278
  347. package/esm2020/autocomplete/autocomplete.module.mjs +0 -53
  348. package/esm2020/autocomplete/suggestion/suggestion.component.mjs +0 -79
  349. package/esm2020/autocomplete/suggestion-group/suggestion-group.component.mjs +0 -23
  350. package/esm2020/back-top/back-top.component.mjs +0 -67
  351. package/esm2020/back-top/back-top.module.mjs +0 -19
  352. package/esm2020/breadcrumb/breadcrumb-item.component.mjs +0 -32
  353. package/esm2020/breadcrumb/breadcrumb.component.mjs +0 -57
  354. package/esm2020/breadcrumb/breadcrumb.module.mjs +0 -20
  355. package/esm2020/button/button.component.mjs +0 -122
  356. package/esm2020/button/button.module.mjs +0 -20
  357. package/esm2020/button/button.types.mjs +0 -22
  358. package/esm2020/card/card.component.mjs +0 -16
  359. package/esm2020/card/card.module.mjs +0 -40
  360. package/esm2020/card/helper-directives.mjs +0 -50
  361. package/esm2020/checkbox/checkbox-group/checkbox-group.component.mjs +0 -61
  362. package/esm2020/checkbox/checkbox.component.mjs +0 -112
  363. package/esm2020/checkbox/checkbox.module.mjs +0 -20
  364. package/esm2020/color-picker/color-picker.component.mjs +0 -28
  365. package/esm2020/color-picker/color-picker.module.mjs +0 -19
  366. package/esm2020/date-picker/calendar/constant.mjs +0 -32
  367. package/esm2020/date-picker/calendar/date-picker-panel/component.mjs +0 -128
  368. package/esm2020/date-picker/calendar/footer/component.mjs +0 -29
  369. package/esm2020/date-picker/calendar/header/component.mjs +0 -103
  370. package/esm2020/date-picker/calendar/panel/picker-panel.mjs +0 -155
  371. package/esm2020/date-picker/calendar/range-picker-panel/component.mjs +0 -209
  372. package/esm2020/date-picker/calendar/util.mjs +0 -146
  373. package/esm2020/date-picker/date-picker/date-picker.component.mjs +0 -110
  374. package/esm2020/date-picker/date-picker.module.mjs +0 -84
  375. package/esm2020/date-picker/range-picker/range-picker.component.mjs +0 -86
  376. package/esm2020/date-picker/trigger/trigger.component.mjs +0 -69
  377. package/esm2020/dialog/confirm-dialog/confirm-dialog-config.mjs +0 -12
  378. package/esm2020/dialog/confirm-dialog/confirm-dialog.component.mjs +0 -85
  379. package/esm2020/dialog/dialog-config.mjs +0 -15
  380. package/esm2020/dialog/dialog-content/dialog-close.directive.mjs +0 -38
  381. package/esm2020/dialog/dialog-content/dialog-content.component.mjs +0 -20
  382. package/esm2020/dialog/dialog-content/dialog-footer.component.mjs +0 -15
  383. package/esm2020/dialog/dialog-content/dialog-header.component.mjs +0 -39
  384. package/esm2020/dialog/dialog-ref.mjs +0 -48
  385. package/esm2020/dialog/dialog.component.mjs +0 -148
  386. package/esm2020/dialog/dialog.module.mjs +0 -68
  387. package/esm2020/dialog/dialog.service.mjs +0 -121
  388. package/esm2020/drawer/component/drawer.component.mjs +0 -232
  389. package/esm2020/drawer/component/helper-directives.mjs +0 -37
  390. package/esm2020/drawer/drawer.module.mjs +0 -37
  391. package/esm2020/drawer/drawer.service.mjs +0 -44
  392. package/esm2020/dropdown/dropdown-active.directive.mjs +0 -21
  393. package/esm2020/dropdown/dropdown-button/dropdown-button.component.mjs +0 -57
  394. package/esm2020/dropdown/dropdown.directive.mjs +0 -81
  395. package/esm2020/dropdown/dropdown.module.mjs +0 -65
  396. package/esm2020/dropdown/menu/menu-content.directive.mjs +0 -51
  397. package/esm2020/dropdown/menu/menu.component.mjs +0 -26
  398. package/esm2020/dropdown/menu-item/menu-item.component.mjs +0 -37
  399. package/esm2020/dropdown/submenu/submenu.component.mjs +0 -40
  400. package/esm2020/form/common-form.mjs +0 -91
  401. package/esm2020/form/form-item/form-item.component.mjs +0 -108
  402. package/esm2020/form/form.directive.mjs +0 -69
  403. package/esm2020/form/form.module.mjs +0 -48
  404. package/esm2020/form/helper-directives.mjs +0 -80
  405. package/esm2020/i18n/i18n.pipe.mjs +0 -20
  406. package/esm2020/i18n/i18n.service.mjs +0 -43
  407. package/esm2020/icon/icon-register.service.mjs +0 -74
  408. package/esm2020/icon/icon.component.mjs +0 -65
  409. package/esm2020/icon/icon.module.mjs +0 -21
  410. package/esm2020/inline-alert/inline-alert.component.mjs +0 -53
  411. package/esm2020/inline-alert/inline-alert.module.mjs +0 -20
  412. package/esm2020/input/autosize.directive.mjs +0 -59
  413. package/esm2020/input/helper-directives.mjs +0 -43
  414. package/esm2020/input/input-group/input-group.component.mjs +0 -39
  415. package/esm2020/input/input.component.mjs +0 -61
  416. package/esm2020/input/input.module.mjs +0 -87
  417. package/esm2020/input/number-input/number-input.component.mjs +0 -112
  418. package/esm2020/input/search/search.component.mjs +0 -88
  419. package/esm2020/input/tags-input/tags-input.component.mjs +0 -260
  420. package/esm2020/message/base-message.mjs +0 -90
  421. package/esm2020/message/message-wrapper.component.mjs +0 -14
  422. package/esm2020/message/message.component.mjs +0 -70
  423. package/esm2020/message/message.config.mjs +0 -21
  424. package/esm2020/message/message.module.mjs +0 -23
  425. package/esm2020/notification/notification-wrapper.component.mjs +0 -16
  426. package/esm2020/notification/notification.component.mjs +0 -107
  427. package/esm2020/notification/notification.module.mjs +0 -24
  428. package/esm2020/paginator/paginator-intl.mjs +0 -37
  429. package/esm2020/paginator/paginator.component.mjs +0 -125
  430. package/esm2020/paginator/paginator.module.mjs +0 -24
  431. package/esm2020/radio/base-radio.mjs +0 -67
  432. package/esm2020/radio/radio-button/radio-button.component.mjs +0 -42
  433. package/esm2020/radio/radio-group/radio-group.component.mjs +0 -76
  434. package/esm2020/radio/radio.component.mjs +0 -24
  435. package/esm2020/radio/radio.module.mjs +0 -21
  436. package/esm2020/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +0 -83
  437. package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +0 -121
  438. package/esm2020/scrolling/fixed-size-virtual-scroll.directive.mjs +0 -28
  439. package/esm2020/scrolling/virtual-scroll-viewport.component.mjs +0 -26
  440. package/esm2020/select/base-select.mjs +0 -337
  441. package/esm2020/select/multi-select/multi-select.component.mjs +0 -313
  442. package/esm2020/select/option/option.component.mjs +0 -112
  443. package/esm2020/select/option-group/option-group.component.mjs +0 -23
  444. package/esm2020/select/select.component.mjs +0 -108
  445. package/esm2020/select/select.module.mjs +0 -80
  446. package/esm2020/select/validators.mjs +0 -79
  447. package/esm2020/shared/click-outside.directive.mjs +0 -28
  448. package/esm2020/sort/sort-errors.mjs +0 -17
  449. package/esm2020/sort/sort-header.component.mjs +0 -72
  450. package/esm2020/sort/sort.directive.mjs +0 -75
  451. package/esm2020/sort/sort.module.mjs +0 -19
  452. package/esm2020/status-bar/status-bar.component.mjs +0 -29
  453. package/esm2020/status-bar/status-bar.module.mjs +0 -19
  454. package/esm2020/steps/steps.component.mjs +0 -184
  455. package/esm2020/steps/steps.module.mjs +0 -19
  456. package/esm2020/switch/switch.component.mjs +0 -46
  457. package/esm2020/switch/switch.module.mjs +0 -18
  458. package/esm2020/table/table-cell-def.directive.mjs +0 -29
  459. package/esm2020/table/table-cell.component.mjs +0 -121
  460. package/esm2020/table/table-cell.directive.mjs +0 -31
  461. package/esm2020/table/table-column-def.directive.mjs +0 -37
  462. package/esm2020/table/table-header-cell-def.directive.mjs +0 -29
  463. package/esm2020/table/table-header-cell.directive.mjs +0 -27
  464. package/esm2020/table/table-header-row-def.directive.mjs +0 -39
  465. package/esm2020/table/table-header-row.component.mjs +0 -25
  466. package/esm2020/table/table-placeholder.directive.mjs +0 -30
  467. package/esm2020/table/table-row-def.directive.mjs +0 -42
  468. package/esm2020/table/table-row.component.mjs +0 -43
  469. package/esm2020/table/table-scroll.directive.mjs +0 -134
  470. package/esm2020/table/table.component.mjs +0 -79
  471. package/esm2020/table/table.module.mjs +0 -96
  472. package/esm2020/table-of-contents/table-of-contents.module.mjs +0 -20
  473. package/esm2020/table-of-contents/toc-container.directive.mjs +0 -109
  474. package/esm2020/table-of-contents/toc-content.directive.mjs +0 -35
  475. package/esm2020/table-of-contents/toc-link.directive.mjs +0 -44
  476. package/esm2020/tabs/tab-body.component.mjs +0 -165
  477. package/esm2020/tabs/tab-context.service.mjs +0 -31
  478. package/esm2020/tabs/tab-group.component.mjs +0 -291
  479. package/esm2020/tabs/tab-header-active-indicator.component.mjs +0 -53
  480. package/esm2020/tabs/tab-header.component.mjs +0 -367
  481. package/esm2020/tabs/tab.component.mjs +0 -85
  482. package/esm2020/tabs/tabs.module.mjs +0 -88
  483. package/esm2020/tabs/tabs.types.mjs +0 -13
  484. package/esm2020/tag/check-tag/check-tag.component.mjs +0 -33
  485. package/esm2020/tag/tag.component.mjs +0 -66
  486. package/esm2020/tag/tag.module.mjs +0 -20
  487. package/esm2020/theme/theme.module.mjs +0 -18
  488. package/esm2020/theme/theme.pipe.mjs +0 -69
  489. package/esm2020/theme/theme.service.mjs +0 -52
  490. package/esm2020/time-picker/component.mjs +0 -179
  491. package/esm2020/time-picker/panel/panel.component.mjs +0 -230
  492. package/esm2020/time-picker/time-picker.module.mjs +0 -58
  493. package/esm2020/tooltip/base-tooltip.mjs +0 -322
  494. package/esm2020/tooltip/tooltip-active.directive.mjs +0 -49
  495. package/esm2020/tooltip/tooltip-copy.directive.mjs +0 -82
  496. package/esm2020/tooltip/tooltip-intl.mjs +0 -29
  497. package/esm2020/tooltip/tooltip.component.mjs +0 -107
  498. package/esm2020/tooltip/tooltip.directive.mjs +0 -47
  499. package/esm2020/tooltip/tooltip.module.mjs +0 -33
  500. package/esm2020/tree-select/tree-select.component.mjs +0 -340
  501. package/esm2020/tree-select/tree-select.module.mjs +0 -34
  502. package/esm2020/types.mjs +0 -11
  503. package/esm2020/utils/bem.mjs +0 -44
  504. package/esm2020/utils/coercion.mjs +0 -17
  505. package/fesm2015/alauda-ui.mjs +0 -12051
  506. package/fesm2015/alauda-ui.mjs.map +0 -1
  507. package/fesm2020/alauda-ui.mjs.map +0 -1
  508. package/src/accordion/README.md +0 -13
  509. package/src/anchor/README.md +0 -23
  510. package/src/dropdown/README.md +0 -57
  511. package/src/form/README.md +0 -32
  512. package/src/icon/README.md +0 -28
  513. package/src/inline-alert/README.md +0 -16
  514. package/src/input/number-input/README.md +0 -16
  515. package/src/select/README.md +0 -57
  516. package/src/sort/README.md +0 -13
  517. package/src/table/README.md +0 -8
  518. package/src/table-of-contents/README.md +0 -94
  519. package/src/tag/README.md +0 -32
  520. package/src/tree-select/README.md +0 -34
  521. /package/{esm2020 → esm2022}/accordion/index.mjs +0 -0
  522. /package/{esm2020 → esm2022}/anchor/index.mjs +0 -0
  523. /package/{esm2020 → esm2022}/anchor/types.mjs +0 -0
  524. /package/{esm2020 → esm2022}/anchor/utils.mjs +0 -0
  525. /package/{esm2020 → esm2022}/autocomplete/autocomplete.types.mjs +0 -0
  526. /package/{esm2020 → esm2022}/autocomplete/index.mjs +0 -0
  527. /package/{esm2020 → esm2022}/back-top/index.mjs +0 -0
  528. /package/{esm2020 → esm2022}/breadcrumb/index.mjs +0 -0
  529. /package/{esm2020 → esm2022}/button/index.mjs +0 -0
  530. /package/{esm2020 → esm2022}/card/index.mjs +0 -0
  531. /package/{esm2020 → esm2022}/checkbox/index.mjs +0 -0
  532. /package/{esm2020 → esm2022}/color-picker/index.mjs +0 -0
  533. /package/{esm2020 → esm2022}/core/animation/animation-consts.mjs +0 -0
  534. /package/{esm2020 → esm2022}/date-picker/date-picker.type.mjs +0 -0
  535. /package/{esm2020 → esm2022}/date-picker/index.mjs +0 -0
  536. /package/{esm2020 → esm2022}/dialog/dialog.types.mjs +0 -0
  537. /package/{esm2020 → esm2022}/dialog/index.mjs +0 -0
  538. /package/{esm2020 → esm2022}/dialog/utils/errors.mjs +0 -0
  539. /package/{esm2020 → esm2022}/dialog/utils/index.mjs +0 -0
  540. /package/{esm2020 → esm2022}/drawer/component/drawer-ref.mjs +0 -0
  541. /package/{esm2020 → esm2022}/drawer/index.mjs +0 -0
  542. /package/{esm2020 → esm2022}/dropdown/dropdown.types.mjs +0 -0
  543. /package/{esm2020 → esm2022}/dropdown/index.mjs +0 -0
  544. /package/{esm2020 → esm2022}/form/form.types.mjs +0 -0
  545. /package/{esm2020 → esm2022}/form/index.mjs +0 -0
  546. /package/{esm2020 → esm2022}/i18n/i18n.type.mjs +0 -0
  547. /package/{esm2020 → esm2022}/i18n/index.mjs +0 -0
  548. /package/{esm2020 → esm2022}/i18n/language/en.mjs +0 -0
  549. /package/{esm2020 → esm2022}/i18n/language/zh.mjs +0 -0
  550. /package/{esm2020 → esm2022}/icon/icons.mjs +0 -0
  551. /package/{esm2020 → esm2022}/icon/index.mjs +0 -0
  552. /package/{esm2020 → esm2022}/icon/utils.mjs +0 -0
  553. /package/{esm2020 → esm2022}/index.mjs +0 -0
  554. /package/{esm2020 → esm2022}/inline-alert/index.mjs +0 -0
  555. /package/{esm2020 → esm2022}/inline-alert/inline-alert.types.mjs +0 -0
  556. /package/{esm2020 → esm2022}/input/index.mjs +0 -0
  557. /package/{esm2020 → esm2022}/input/tags-input/with-max-row-count.mjs +0 -0
  558. /package/{esm2020 → esm2022}/input/utils/index.mjs +0 -0
  559. /package/{esm2020 → esm2022}/message/index.mjs +0 -0
  560. /package/{esm2020 → esm2022}/message/message-animations.mjs +0 -0
  561. /package/{esm2020 → esm2022}/notification/index.mjs +0 -0
  562. /package/{esm2020 → esm2022}/notification/notification.config.mjs +0 -0
  563. /package/{esm2020 → esm2022}/paginator/index.mjs +0 -0
  564. /package/{esm2020 → esm2022}/radio/index.mjs +0 -0
  565. /package/{esm2020 → esm2022}/radio/radio.types.mjs +0 -0
  566. /package/{esm2020 → esm2022}/scrolling/index.mjs +0 -0
  567. /package/{esm2020 → esm2022}/select/index.mjs +0 -0
  568. /package/{esm2020 → esm2022}/select/select.types.mjs +0 -0
  569. /package/{esm2020 → esm2022}/sort/index.mjs +0 -0
  570. /package/{esm2020 → esm2022}/sort/sort.types.mjs +0 -0
  571. /package/{esm2020 → esm2022}/status-bar/index.mjs +0 -0
  572. /package/{esm2020 → esm2022}/status-bar/status-bar.types.mjs +0 -0
  573. /package/{esm2020 → esm2022}/steps/index.mjs +0 -0
  574. /package/{esm2020 → esm2022}/steps/types.mjs +0 -0
  575. /package/{esm2020 → esm2022}/switch/index.mjs +0 -0
  576. /package/{esm2020 → esm2022}/table/index.mjs +0 -0
  577. /package/{esm2020 → esm2022}/table-of-contents/index.mjs +0 -0
  578. /package/{esm2020 → esm2022}/tabs/index.mjs +0 -0
  579. /package/{esm2020 → esm2022}/tag/index.mjs +0 -0
  580. /package/{esm2020 → esm2022}/tag/tag.types.mjs +0 -0
  581. /package/{esm2020 → esm2022}/theme/index.mjs +0 -0
  582. /package/{esm2020 → esm2022}/theme/theme.types.mjs +0 -0
  583. /package/{esm2020 → esm2022}/theme/utils.mjs +0 -0
  584. /package/{esm2020 → esm2022}/time-picker/constant.mjs +0 -0
  585. /package/{esm2020 → esm2022}/time-picker/index.mjs +0 -0
  586. /package/{esm2020 → esm2022}/time-picker/time-picker.type.mjs +0 -0
  587. /package/{esm2020 → esm2022}/tooltip/index.mjs +0 -0
  588. /package/{esm2020 → esm2022}/tooltip/tooltip.types.mjs +0 -0
  589. /package/{esm2020 → esm2022}/tooltip/utils/index.mjs +0 -0
  590. /package/{esm2020 → esm2022}/tree-select/index.mjs +0 -0
  591. /package/{esm2020 → esm2022}/tree-select/tree-select.types.mjs +0 -0
  592. /package/{esm2020 → esm2022}/utils/animations.mjs +0 -0
  593. /package/{esm2020 → esm2022}/utils/async.mjs +0 -0
  594. /package/{esm2020 → esm2022}/utils/fn.mjs +0 -0
  595. /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
  596. /package/{esm2020 → esm2022}/utils/observe-dom.mjs +0 -0
  597. /package/{esm2020 → esm2022}/utils/operators.mjs +0 -0
  598. /package/{esm2020 → esm2022}/utils/scroll-into-view.mjs +0 -0
  599. /package/{esm2020 → esm2022}/utils/watch-content-exist.mjs +0 -0
@@ -1,26 +0,0 @@
1
- import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
2
- import { ChangeDetectionStrategy, Component, ViewEncapsulation, } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class VirtualScrollViewportComponent extends CdkVirtualScrollViewport {
5
- }
6
- VirtualScrollViewportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: VirtualScrollViewportComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
- VirtualScrollViewportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: VirtualScrollViewportComponent, selector: "aui-virtual-scroll-viewport", host: { properties: { "class.aui-virtual-scroll-orientation-horizontal": "orientation === \"horizontal\"", "class.aui-virtual-scroll-orientation-vertical": "orientation !== \"horizontal\"" }, classAttribute: "aui-virtual-scroll-viewport" }, providers: [
8
- {
9
- provide: CdkVirtualScrollViewport,
10
- useExisting: VirtualScrollViewportComponent,
11
- },
12
- ], usesInheritance: true, ngImport: i0, template: "<!--\n Wrap the rendered content in an element that will be used to offset it based on the scroll\n position.\n-->\n<div\n #contentWrapper\n class=\"aui-virtual-scroll-content-wrapper\"\n>\n <ng-content></ng-content>\n</div>\n<!--\n Spacer used to force the scrolling container to the correct size for the *total* number of items\n so that the scrollbar captures the size of the entire data set.\n-->\n<div\n class=\"aui-virtual-scroll-spacer\"\n [style.width]=\"_totalContentWidth\"\n [style.height]=\"_totalContentHeight\"\n></div>\n", styles: ["aui-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.aui-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .aui-virtual-scroll-content-wrapper{right:0;left:auto}.aui-virtual-scroll-orientation-horizontal .aui-virtual-scroll-content-wrapper{min-height:100%}.aui-virtual-scroll-orientation-horizontal .aui-virtual-scroll-content-wrapper>dl:not([auiVirtualFor]),.aui-virtual-scroll-orientation-horizontal .aui-virtual-scroll-content-wrapper>ol:not([auiVirtualFor]),.aui-virtual-scroll-orientation-horizontal .aui-virtual-scroll-content-wrapper>table:not([auiVirtualFor]),.aui-virtual-scroll-orientation-horizontal .aui-virtual-scroll-content-wrapper>ul:not([auiVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.aui-virtual-scroll-orientation-vertical .aui-virtual-scroll-content-wrapper{min-width:100%}.aui-virtual-scroll-orientation-vertical .aui-virtual-scroll-content-wrapper>dl:not([auiVirtualFor]),.aui-virtual-scroll-orientation-vertical .aui-virtual-scroll-content-wrapper>ol:not([auiVirtualFor]),.aui-virtual-scroll-orientation-vertical .aui-virtual-scroll-content-wrapper>table:not([auiVirtualFor]),.aui-virtual-scroll-orientation-vertical .aui-virtual-scroll-content-wrapper>ul:not([auiVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.aui-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .aui-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: VirtualScrollViewportComponent, decorators: [{
14
- type: Component,
15
- args: [{ selector: 'aui-virtual-scroll-viewport', host: {
16
- class: 'aui-virtual-scroll-viewport',
17
- '[class.aui-virtual-scroll-orientation-horizontal]': 'orientation === "horizontal"',
18
- '[class.aui-virtual-scroll-orientation-vertical]': 'orientation !== "horizontal"',
19
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, providers: [
20
- {
21
- provide: CdkVirtualScrollViewport,
22
- useExisting: VirtualScrollViewportComponent,
23
- },
24
- ], template: "<!--\n Wrap the rendered content in an element that will be used to offset it based on the scroll\n position.\n-->\n<div\n #contentWrapper\n class=\"aui-virtual-scroll-content-wrapper\"\n>\n <ng-content></ng-content>\n</div>\n<!--\n Spacer used to force the scrolling container to the correct size for the *total* number of items\n so that the scrollbar captures the size of the entire data set.\n-->\n<div\n class=\"aui-virtual-scroll-spacer\"\n [style.width]=\"_totalContentWidth\"\n [style.height]=\"_totalContentHeight\"\n></div>\n", styles: ["aui-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.aui-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .aui-virtual-scroll-content-wrapper{right:0;left:auto}.aui-virtual-scroll-orientation-horizontal .aui-virtual-scroll-content-wrapper{min-height:100%}.aui-virtual-scroll-orientation-horizontal .aui-virtual-scroll-content-wrapper>dl:not([auiVirtualFor]),.aui-virtual-scroll-orientation-horizontal .aui-virtual-scroll-content-wrapper>ol:not([auiVirtualFor]),.aui-virtual-scroll-orientation-horizontal .aui-virtual-scroll-content-wrapper>table:not([auiVirtualFor]),.aui-virtual-scroll-orientation-horizontal .aui-virtual-scroll-content-wrapper>ul:not([auiVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.aui-virtual-scroll-orientation-vertical .aui-virtual-scroll-content-wrapper{min-width:100%}.aui-virtual-scroll-orientation-vertical .aui-virtual-scroll-content-wrapper>dl:not([auiVirtualFor]),.aui-virtual-scroll-orientation-vertical .aui-virtual-scroll-content-wrapper>ol:not([auiVirtualFor]),.aui-virtual-scroll-orientation-vertical .aui-virtual-scroll-content-wrapper>table:not([auiVirtualFor]),.aui-virtual-scroll-orientation-vertical .aui-virtual-scroll-content-wrapper>ul:not([auiVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.aui-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .aui-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\n"] }]
25
- }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwtdmlld3BvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Njcm9sbGluZy92aXJ0dWFsLXNjcm9sbC12aWV3cG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9zcmMvc2Nyb2xsaW5nL3ZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQzs7QUF1QnZCLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSx3QkFBd0I7OzJIQUEvRCw4QkFBOEI7K0dBQTlCLDhCQUE4Qix1U0FQOUI7UUFDVDtZQUNFLE9BQU8sRUFBRSx3QkFBd0I7WUFDakMsV0FBVyxFQUFFLDhCQUE4QjtTQUM1QztLQUNGLGlEQzFCSCxtaUJBbUJBOzJGRFNhLDhCQUE4QjtrQkFyQjFDLFNBQVM7K0JBQ0UsNkJBQTZCLFFBR2pDO3dCQUNKLEtBQUssRUFBRSw2QkFBNkI7d0JBQ3BDLG1EQUFtRCxFQUNqRCw4QkFBOEI7d0JBQ2hDLGlEQUFpRCxFQUMvQyw4QkFBOEI7cUJBQ2pDLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLLGFBQ2Y7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHdCQUF3Qjs0QkFDakMsV0FBVyxnQ0FBZ0M7eUJBQzVDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCcsXG4gIHRlbXBsYXRlVXJsOiAndmlydHVhbC1zY3JvbGwtdmlld3BvcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsndmlydHVhbC1zY3JvbGwtdmlld3BvcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYXVpLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0JyxcbiAgICAnW2NsYXNzLmF1aS12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsXSc6XG4gICAgICAnb3JpZW50YXRpb24gPT09IFwiaG9yaXpvbnRhbFwiJyxcbiAgICAnW2NsYXNzLmF1aS12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbF0nOlxuICAgICAgJ29yaWVudGF0aW9uICE9PSBcImhvcml6b250YWxcIicsXG4gIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0LFxuICAgICAgdXNlRXhpc3Rpbmc6IFZpcnR1YWxTY3JvbGxWaWV3cG9ydENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsVmlld3BvcnRDb21wb25lbnQgZXh0ZW5kcyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQge31cbiIsIjwhLS1cbiAgV3JhcCB0aGUgcmVuZGVyZWQgY29udGVudCBpbiBhbiBlbGVtZW50IHRoYXQgd2lsbCBiZSB1c2VkIHRvIG9mZnNldCBpdCBiYXNlZCBvbiB0aGUgc2Nyb2xsXG4gIHBvc2l0aW9uLlxuLS0+XG48ZGl2XG4gICNjb250ZW50V3JhcHBlclxuICBjbGFzcz1cImF1aS12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjwhLS1cbiAgU3BhY2VyIHVzZWQgdG8gZm9yY2UgdGhlIHNjcm9sbGluZyBjb250YWluZXIgdG8gdGhlIGNvcnJlY3Qgc2l6ZSBmb3IgdGhlICp0b3RhbCogbnVtYmVyIG9mIGl0ZW1zXG4gIHNvIHRoYXQgdGhlIHNjcm9sbGJhciBjYXB0dXJlcyB0aGUgc2l6ZSBvZiB0aGUgZW50aXJlIGRhdGEgc2V0LlxuLS0+XG48ZGl2XG4gIGNsYXNzPVwiYXVpLXZpcnR1YWwtc2Nyb2xsLXNwYWNlclwiXG4gIFtzdHlsZS53aWR0aF09XCJfdG90YWxDb250ZW50V2lkdGhcIlxuICBbc3R5bGUuaGVpZ2h0XT1cIl90b3RhbENvbnRlbnRIZWlnaHRcIlxuPjwvZGl2PlxuIl19
@@ -1,337 +0,0 @@
1
- import { ContentChild, ContentChildren, Directive, EventEmitter, Input, Output, ViewChild, ViewChildren, } from '@angular/core';
2
- import { BehaviorSubject, Subject, combineLatest, of, map, startWith, switchMap, takeUntil, } from 'rxjs';
3
- import { CommonFormControl } from '../form';
4
- import { ComponentSize } from '../types';
5
- import { coerceAttrBoolean, coerceString, isTemplateRef, publishRef, scrollIntoView, } from '../utils';
6
- import { OptionContentDirective } from './helper-directives';
7
- import { OptionComponent } from './option/option.component';
8
- import * as i0 from "@angular/core";
9
- export class BaseSelect extends CommonFormControl {
10
- constructor() {
11
- super(...arguments);
12
- this.filterFn = this._filterFn.bind(this);
13
- this.trackFn = this._trackFn;
14
- this.loading = false;
15
- this.placeholder = '';
16
- this.defaultFirstOption = true;
17
- this.lazy = true;
18
- this.filterChange = new EventEmitter();
19
- this.show = new EventEmitter();
20
- this.hide = new EventEmitter();
21
- this.isTemplateRef = isTemplateRef;
22
- this.isMulti = false;
23
- this._size = ComponentSize.Medium;
24
- this._filterable = true;
25
- this._clearable = false;
26
- this._allowCreate = false;
27
- this._filterString = '';
28
- this.destroy$$ = new Subject();
29
- this.size$$ = new BehaviorSubject(this.size);
30
- this.filterString$$ = new BehaviorSubject(this.filterString);
31
- this.size$ = this.size$$.asObservable();
32
- this.filterString$ = this.filterString$$.asObservable();
33
- }
34
- get size() {
35
- return this._size;
36
- }
37
- set size(val) {
38
- if (!val || this._size === val) {
39
- return;
40
- }
41
- this._size = val;
42
- this.size$$.next(val);
43
- }
44
- get filterable() {
45
- return this._filterable;
46
- }
47
- set filterable(val) {
48
- this._filterable = coerceAttrBoolean(val);
49
- }
50
- get clearable() {
51
- return this._clearable;
52
- }
53
- set clearable(val) {
54
- this._clearable = coerceAttrBoolean(val);
55
- }
56
- get allowCreate() {
57
- return this._allowCreate;
58
- }
59
- set allowCreate(val) {
60
- this._allowCreate = coerceAttrBoolean(val);
61
- }
62
- get allOptions() {
63
- return [
64
- ...(this.customOptions ? this.customOptions.toArray() : []),
65
- ...(this.contentOptions ? this.contentOptions.toArray() : []),
66
- ];
67
- }
68
- get opened() {
69
- return this.tooltipRef.isCreated;
70
- }
71
- get inputReadonly() {
72
- return !(this.filterable && this.opened);
73
- }
74
- get filterString() {
75
- return this._filterString;
76
- }
77
- set filterString(val) {
78
- if (val !== this._filterString) {
79
- this._filterString = val;
80
- this.filterString$$.next(val);
81
- this.filterChange.emit(val);
82
- }
83
- }
84
- ngAfterContentInit() {
85
- this.customCreatedOptions$ = combineLatest([
86
- this.values$,
87
- this.contentOptions.changes.pipe(startWith(this.contentOptions), switchMap((options) => options.length > 0
88
- ? combineLatest(options.map(option => option.value$))
89
- : of([]))),
90
- ]).pipe(map(([values, optionValues]) => values.reduce((acc, value) => {
91
- const included = optionValues
92
- .map(value => this.trackFn(value))
93
- .includes(this.trackFn(value));
94
- if (!included) {
95
- const label = this.labelFn?.(value) || coerceString(this.trackFn(value));
96
- if (label) {
97
- acc.push({
98
- label,
99
- value,
100
- });
101
- }
102
- }
103
- return acc;
104
- }, [])), publishRef());
105
- }
106
- ngAfterViewInit() {
107
- this.allOptions$ = combineLatest([
108
- this.customOptions.changes.pipe(startWith(this.customOptions)),
109
- this.contentOptions.changes.pipe(startWith(this.contentOptions)),
110
- ]).pipe(map(([customOptions, contentOptions]) => [...customOptions.toArray(), ...contentOptions.toArray()]), publishRef());
111
- // support dynamic options loading on filtering
112
- this.allOptions$.pipe(takeUntil(this.destroy$$)).subscribe(() => {
113
- if (this.opened) {
114
- requestAnimationFrame(() => {
115
- this.autoFocusFirstOption();
116
- });
117
- }
118
- });
119
- this.hasMatchedOption$ = combineLatest([
120
- this.allOptions$.pipe(map(customOptions => customOptions.filter(option => option !== this.inputtingOption)),
121
- // eslint-disable-next-line sonarjs/no-identical-functions
122
- switchMap(options => options.length > 0
123
- ? combineLatest(options.map(option => option.value$))
124
- : of([]))),
125
- this.filterString$,
126
- ]).pipe(map(([values, filterString]) => values.some(value => this.trackFn(value) === filterString)), publishRef());
127
- this.hasVisibleOption$ = this.contentOptions.changes.pipe(startWith(this.contentOptions), switchMap((options) => options.length > 0
128
- ? combineLatest(options.map(option => option.visible$))
129
- : of([])), map(visible => visible.some(Boolean)), publishRef());
130
- }
131
- ngOnDestroy() {
132
- this.optionContent?.detach();
133
- this.destroy$$.next();
134
- this.destroy$$.complete();
135
- }
136
- openOption() {
137
- this.tooltipRef.show();
138
- }
139
- closeOption() {
140
- this.tooltipRef.hide();
141
- }
142
- onShowOptions() {
143
- const exec = () => {
144
- this.containerWidth = this.selectRef.nativeElement.offsetWidth + 'px';
145
- requestAnimationFrame(() => {
146
- this.autoFocusFirstOption();
147
- });
148
- this.show.emit();
149
- };
150
- if (this.optionContent) {
151
- requestAnimationFrame(() => {
152
- this.optionContent.attach();
153
- exec();
154
- });
155
- }
156
- else {
157
- exec();
158
- }
159
- }
160
- onHideOptions() {
161
- if (this.onTouched) {
162
- this.onTouched();
163
- }
164
- if (!this.lazy) {
165
- this.optionContent?.detach();
166
- }
167
- this.resetFocusedOption();
168
- this.filterString = '';
169
- this.hide.emit();
170
- }
171
- onInput(event) {
172
- const value = event.target.value;
173
- this.filterString = value;
174
- requestAnimationFrame(() => {
175
- this.autoFocusFirstOption();
176
- });
177
- this.cdr.markForCheck();
178
- }
179
- onKeyDown(event) {
180
- switch (event.key) {
181
- case 'ArrowDown':
182
- this.focusOptionDir('down');
183
- event.stopPropagation();
184
- event.preventDefault();
185
- break;
186
- case 'ArrowUp':
187
- this.focusOptionDir('up');
188
- event.stopPropagation();
189
- event.preventDefault();
190
- break;
191
- case 'Enter':
192
- this.selectFocusedOption();
193
- event.stopPropagation();
194
- event.preventDefault();
195
- break;
196
- case 'Escape':
197
- this.escSelect();
198
- event.stopPropagation();
199
- event.preventDefault();
200
- break;
201
- }
202
- }
203
- onOptionClick(option) {
204
- this.resetFocusedOption(option);
205
- this.selectOption(option);
206
- }
207
- autoFocusFirstOption() {
208
- if (this.defaultFirstOption && this.allowCreate && this.filterString) {
209
- const matchedOption = this.contentOptions.find(option => this.trackFn(option.value) === this.filterString);
210
- this.resetFocusedOption(matchedOption || this.customOptions.first);
211
- return;
212
- }
213
- const selectedOption = this.allOptions.find(option => option.selected && option.visible);
214
- if (this.defaultFirstOption) {
215
- this.resetFocusedOption(selectedOption ||
216
- this.allOptions.find(option => option.visible && !option.disabled));
217
- }
218
- else if (selectedOption) {
219
- this.scrollToOption(selectedOption);
220
- }
221
- }
222
- focusOptionDir(dir) {
223
- if (!this.opened) {
224
- this.openOption();
225
- return;
226
- }
227
- const visibleOptions = this.allOptions.filter(option => option.visible && !option.disabled);
228
- if (visibleOptions.length === 0) {
229
- return;
230
- }
231
- const step = dir === 'down' ? 1 : -1;
232
- let i = visibleOptions.indexOf(this.focusedOption);
233
- i = i + step;
234
- if (i >= visibleOptions.length) {
235
- i = 0;
236
- }
237
- else if (i < 0) {
238
- i = visibleOptions.length - 1;
239
- }
240
- this.resetFocusedOption(visibleOptions[i]);
241
- }
242
- resetFocusedOption(focusedOption) {
243
- if (this.focusedOption === focusedOption) {
244
- return;
245
- }
246
- if (this.focusedOption) {
247
- this.focusedOption.blur();
248
- }
249
- this.focusedOption = focusedOption;
250
- if (this.focusedOption) {
251
- this.focusedOption.focus();
252
- this.scrollToOption(this.focusedOption);
253
- }
254
- }
255
- scrollToOption(option) {
256
- if (this.optionListRef) {
257
- scrollIntoView(this.optionListRef.nativeElement, option.elRef.nativeElement);
258
- }
259
- }
260
- selectFocusedOption() {
261
- if (!this.opened) {
262
- this.openOption();
263
- return;
264
- }
265
- if (this.focusedOption && !this.focusedOption.disabled) {
266
- this.selectOption(this.focusedOption);
267
- }
268
- }
269
- escSelect() {
270
- this.closeOption();
271
- }
272
- _trackFn(value) {
273
- return value;
274
- }
275
- _filterFn(filterString, { label, value }) {
276
- return ((typeof label === 'string' && label) ||
277
- this.labelFn?.(value) ||
278
- coerceString(this.trackFn(value)))
279
- ?.toLowerCase()
280
- .includes(filterString?.toLowerCase() ?? '');
281
- }
282
- }
283
- BaseSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: BaseSelect, deps: null, target: i0.ɵɵFactoryTarget.Directive });
284
- BaseSelect.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: BaseSelect, inputs: { size: "size", filterable: "filterable", clearable: "clearable", filterFn: "filterFn", trackFn: "trackFn", labelFn: "labelFn", allowCreate: "allowCreate", loading: "loading", placeholder: "placeholder", defaultFirstOption: "defaultFirstOption", lazy: "lazy" }, outputs: { filterChange: "filterChange", show: "show", hide: "hide" }, queries: [{ propertyName: "optionContent", first: true, predicate: OptionContentDirective, descendants: true }, { propertyName: "contentOptions", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: "selectRef", first: true, predicate: ["selectRef"], descendants: true, static: true }, { propertyName: "tooltipRef", first: true, predicate: ["tooltipRef"], descendants: true, static: true }, { propertyName: "optionListRef", first: true, predicate: ["optionListRef"], descendants: true }, { propertyName: "inputtingOption", first: true, predicate: ["inputtingOption"], descendants: true }, { propertyName: "customOptions", predicate: OptionComponent, descendants: true }], usesInheritance: true, ngImport: i0 });
285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: BaseSelect, decorators: [{
286
- type: Directive
287
- }], propDecorators: { size: [{
288
- type: Input
289
- }], filterable: [{
290
- type: Input
291
- }], clearable: [{
292
- type: Input
293
- }], filterFn: [{
294
- type: Input
295
- }], trackFn: [{
296
- type: Input
297
- }], labelFn: [{
298
- type: Input
299
- }], allowCreate: [{
300
- type: Input
301
- }], loading: [{
302
- type: Input
303
- }], placeholder: [{
304
- type: Input
305
- }], defaultFirstOption: [{
306
- type: Input
307
- }], lazy: [{
308
- type: Input
309
- }], filterChange: [{
310
- type: Output
311
- }], show: [{
312
- type: Output
313
- }], hide: [{
314
- type: Output
315
- }], selectRef: [{
316
- type: ViewChild,
317
- args: ['selectRef', { static: true }]
318
- }], tooltipRef: [{
319
- type: ViewChild,
320
- args: ['tooltipRef', { static: true }]
321
- }], optionListRef: [{
322
- type: ViewChild,
323
- args: ['optionListRef', { static: false }]
324
- }], inputtingOption: [{
325
- type: ViewChild,
326
- args: ['inputtingOption', { static: false }]
327
- }], optionContent: [{
328
- type: ContentChild,
329
- args: [OptionContentDirective]
330
- }], customOptions: [{
331
- type: ViewChildren,
332
- args: [OptionComponent]
333
- }], contentOptions: [{
334
- type: ContentChildren,
335
- args: [OptionComponent, { descendants: true }]
336
- }] } });
337
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VsZWN0L2Jhc2Utc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxZQUFZLEVBQ1osZUFBZSxFQUNmLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBRWYsT0FBTyxFQUNQLGFBQWEsRUFDYixFQUFFLEVBQ0YsR0FBRyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUk1RCxNQUFNLE9BQWdCLFVBQ3BCLFNBQVEsaUJBQW9CO0lBRjlCOztRQXFDRSxhQUFRLEdBQXNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR3hELFlBQU8sR0FBZSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBMENwQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBR2pCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUcxQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBR1osaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRzFDLFNBQUksR0FB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QUFJO3NCQURQLEtBQUs7Z0JBY0YsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSztnQkFVTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJRixXQUFXO3NCQURkLEtBQUs7Z0JBcUNOLE9BQU87c0JBRE4sS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixZQUFZO3NCQURYLE1BQU07Z0JBSVAsSUFBSTtzQkFESCxNQUFNO2dCQUlQLElBQUk7c0JBREgsTUFBTTtnQkFJRyxTQUFTO3NCQURsQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlCLFVBQVU7c0JBRG5CLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJL0IsYUFBYTtzQkFEdEIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUluQyxlQUFlO3NCQUR4QixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJckMsYUFBYTtzQkFEdEIsWUFBWTt1QkFBQyxzQkFBc0I7Z0JBSXBDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxlQUFlO2dCQUk3QixjQUFjO3NCQURiLGVBQWU7dUJBQUMsZUFBZSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgb2YsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENvbW1vbkZvcm1Db250cm9sIH0gZnJvbSAnLi4vZm9ybSc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5pbXBvcnQgeyBDb21wb25lbnRTaXplIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgY29lcmNlQXR0ckJvb2xlYW4sXG4gIGNvZXJjZVN0cmluZyxcbiAgaXNUZW1wbGF0ZVJlZixcbiAgcHVibGlzaFJlZixcbiAgc2Nyb2xsSW50b1ZpZXcsXG59IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHsgT3B0aW9uQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4vaGVscGVyLWRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcHRpb25GaWx0ZXJGbiwgU2VsZWN0RmlsdGVyT3B0aW9uLCBUcmFja0ZuIH0gZnJvbSAnLi9zZWxlY3QudHlwZXMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU2VsZWN0PFQsIFYgPSBUPlxuICBleHRlbmRzIENvbW1vbkZvcm1Db250cm9sPFY+XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIGdldCBzaXplKCkge1xuICAgIHJldHVybiB0aGlzLl9zaXplO1xuICB9XG5cbiAgc2V0IHNpemUodmFsKSB7XG4gICAgaWYgKCF2YWwgfHwgdGhpcy5fc2l6ZSA9PT0gdmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3NpemUgPSB2YWw7XG4gICAgdGhpcy5zaXplJCQubmV4dCh2YWwpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGZpbHRlcmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcmFibGU7XG4gIH1cblxuICBzZXQgZmlsdGVyYWJsZSh2YWw6IGJvb2xlYW4gfCAnJykge1xuICAgIHRoaXMuX2ZpbHRlcmFibGUgPSBjb2VyY2VBdHRyQm9vbGVhbih2YWwpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGNsZWFyYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xlYXJhYmxlO1xuICB9XG5cbiAgc2V0IGNsZWFyYWJsZSh2YWw6IGJvb2xlYW4gfCAnJykge1xuICAgIHRoaXMuX2NsZWFyYWJsZSA9IGNvZXJjZUF0dHJCb29sZWFuKHZhbCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBmaWx0ZXJGbjogT3B0aW9uRmlsdGVyRm48VD4gPSB0aGlzLl9maWx0ZXJGbi5iaW5kKHRoaXMpO1xuXG4gIEBJbnB1dCgpXG4gIHRyYWNrRm46IFRyYWNrRm48VD4gPSB0aGlzLl90cmFja0ZuO1xuXG4gIEBJbnB1dCgpXG4gIGxhYmVsRm4/OiAodmFsdWU6IFQpID0+IHN0cmluZztcblxuICBASW5wdXQoKVxuICBnZXQgYWxsb3dDcmVhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93Q3JlYXRlO1xuICB9XG5cbiAgc2V0IGFsbG93Q3JlYXRlKHZhbDogYm9vbGVhbiB8ICcnKSB7XG4gICAgdGhpcy5fYWxsb3dDcmVhdGUgPSBjb2VyY2VBdHRyQm9vbGVhbih2YWwpO1xuICB9XG5cbiAgZ2V0IGFsbE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLih0aGlzLmN1c3RvbU9wdGlvbnMgPyB0aGlzLmN1c3RvbU9wdGlvbnMudG9BcnJheSgpIDogW10pLFxuICAgICAgLi4uKHRoaXMuY29udGVudE9wdGlvbnMgPyB0aGlzLmNvbnRlbnRPcHRpb25zLnRvQXJyYXkoKSA6IFtdKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0IG9wZW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwUmVmLmlzQ3JlYXRlZDtcbiAgfVxuXG4gIGdldCBpbnB1dFJlYWRvbmx5KCkge1xuICAgIHJldHVybiAhKHRoaXMuZmlsdGVyYWJsZSAmJiB0aGlzLm9wZW5lZCk7XG4gIH1cblxuICBnZXQgZmlsdGVyU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJTdHJpbmc7XG4gIH1cblxuICBzZXQgZmlsdGVyU3RyaW5nKHZhbCkge1xuICAgIGlmICh2YWwgIT09IHRoaXMuX2ZpbHRlclN0cmluZykge1xuICAgICAgdGhpcy5fZmlsdGVyU3RyaW5nID0gdmFsO1xuICAgICAgdGhpcy5maWx0ZXJTdHJpbmckJC5uZXh0KHZhbCk7XG4gICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQElucHV0KClcbiAgZGVmYXVsdEZpcnN0T3B0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBsYXp5ID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0UmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHNlbGVjdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcFJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCB0b29sdGlwUmVmOiBUb29sdGlwRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoJ29wdGlvbkxpc3RSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJvdGVjdGVkIG9wdGlvbkxpc3RSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0dGluZ09wdGlvbicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwcm90ZWN0ZWQgaW5wdXR0aW5nT3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD47XG5cbiAgQENvbnRlbnRDaGlsZChPcHRpb25Db250ZW50RGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgb3B0aW9uQ29udGVudD86IE9wdGlvbkNvbnRlbnREaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZHJlbihPcHRpb25Db21wb25lbnQpXG4gIGN1c3RvbU9wdGlvbnM6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oT3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIGNvbnRlbnRPcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+PjtcblxuICBpc1RlbXBsYXRlUmVmID0gaXNUZW1wbGF0ZVJlZjtcbiAgaXNNdWx0aSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBVdGlsaXR5IGZpZWxkIHRvIG1ha2Ugc3VyZSB0aGUgdXNlcnMgYWx3YXlzIHNlZSB0aGUgdmFsdWUgYXMgdHlwZSBhcnJheVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgdmFsdWVzJDogT2JzZXJ2YWJsZTxUW10+O1xuXG4gIGFsbE9wdGlvbnMkOiBPYnNlcnZhYmxlPEFycmF5PE9wdGlvbkNvbXBvbmVudDxUPj4+O1xuXG4gIHByb3RlY3RlZCBmb2N1c2VkT3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD47XG5cbiAgcHJpdmF0ZSBfc2l6ZTogQ29tcG9uZW50U2l6ZSA9IENvbXBvbmVudFNpemUuTWVkaXVtO1xuICBwcml2YXRlIF9maWx0ZXJhYmxlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfY2xlYXJhYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgX2FsbG93Q3JlYXRlID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZpbHRlclN0cmluZyA9ICcnO1xuXG4gIHByb3RlY3RlZCBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcm90ZWN0ZWQgc2l6ZSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb21wb25lbnRTaXplPih0aGlzLnNpemUpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbHRlclN0cmluZyQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KFxuICAgIHRoaXMuZmlsdGVyU3RyaW5nLFxuICApO1xuXG4gIHNpemUkID0gdGhpcy5zaXplJCQuYXNPYnNlcnZhYmxlKCk7XG4gIGZpbHRlclN0cmluZyQgPSB0aGlzLmZpbHRlclN0cmluZyQkLmFzT2JzZXJ2YWJsZSgpO1xuICBoYXNWaXNpYmxlT3B0aW9uJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaGFzTWF0Y2hlZE9wdGlvbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGN1c3RvbUNyZWF0ZWRPcHRpb25zJDogT2JzZXJ2YWJsZTxBcnJheTxTZWxlY3RGaWx0ZXJPcHRpb248VD4+PjtcbiAgY29udGFpbmVyV2lkdGg6IHN0cmluZztcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5jdXN0b21DcmVhdGVkT3B0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMudmFsdWVzJCxcbiAgICAgIChcbiAgICAgICAgdGhpcy5jb250ZW50T3B0aW9ucy5jaGFuZ2VzIGFzIE9ic2VydmFibGU8UXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj4+XG4gICAgICApLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmNvbnRlbnRPcHRpb25zKSxcbiAgICAgICAgc3dpdGNoTWFwKChvcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+PikgPT5cbiAgICAgICAgICBvcHRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gY29tYmluZUxhdGVzdChvcHRpb25zLm1hcChvcHRpb24gPT4gb3B0aW9uLnZhbHVlJCkpXG4gICAgICAgICAgICA6IG9mKFtdIGFzIFRbXSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt2YWx1ZXMsIG9wdGlvblZhbHVlc10pID0+XG4gICAgICAgIHZhbHVlcy5yZWR1Y2U8QXJyYXk8U2VsZWN0RmlsdGVyT3B0aW9uPFQ+Pj4oKGFjYywgdmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBpbmNsdWRlZCA9IG9wdGlvblZhbHVlc1xuICAgICAgICAgICAgLm1hcCh2YWx1ZSA9PiB0aGlzLnRyYWNrRm4odmFsdWUpKVxuICAgICAgICAgICAgLmluY2x1ZGVzKHRoaXMudHJhY2tGbih2YWx1ZSkpO1xuICAgICAgICAgIGlmICghaW5jbHVkZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID1cbiAgICAgICAgICAgICAgdGhpcy5sYWJlbEZuPy4odmFsdWUpIHx8IGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4odmFsdWUpKTtcbiAgICAgICAgICAgIGlmIChsYWJlbCkge1xuICAgICAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCBbXSksXG4gICAgICApLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5hbGxPcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jdXN0b21PcHRpb25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5jdXN0b21PcHRpb25zKSksXG4gICAgICB0aGlzLmNvbnRlbnRPcHRpb25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5jb250ZW50T3B0aW9ucykpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbY3VzdG9tT3B0aW9ucywgY29udGVudE9wdGlvbnNdOiBbXG4gICAgICAgICAgUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj4sXG4gICAgICAgICAgUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj4sXG4gICAgICAgIF0pID0+IFsuLi5jdXN0b21PcHRpb25zLnRvQXJyYXkoKSwgLi4uY29udGVudE9wdGlvbnMudG9BcnJheSgpXSxcbiAgICAgICksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIC8vIHN1cHBvcnQgZHluYW1pYyBvcHRpb25zIGxvYWRpbmcgb24gZmlsdGVyaW5nXG4gICAgdGhpcy5hbGxPcHRpb25zJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5vcGVuZWQpIHtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmF1dG9Gb2N1c0ZpcnN0T3B0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5oYXNNYXRjaGVkT3B0aW9uJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5hbGxPcHRpb25zJC5waXBlKFxuICAgICAgICBtYXAoY3VzdG9tT3B0aW9ucyA9PlxuICAgICAgICAgIGN1c3RvbU9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24gIT09IHRoaXMuaW5wdXR0aW5nT3B0aW9uKSxcbiAgICAgICAgKSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8taWRlbnRpY2FsLWZ1bmN0aW9uc1xuICAgICAgICBzd2l0Y2hNYXAob3B0aW9ucyA9PlxuICAgICAgICAgIG9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgICAgICAgPyBjb21iaW5lTGF0ZXN0KG9wdGlvbnMubWFwKG9wdGlvbiA9PiBvcHRpb24udmFsdWUkKSlcbiAgICAgICAgICAgIDogb2YoW10gYXMgVFtdKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICB0aGlzLmZpbHRlclN0cmluZyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3ZhbHVlcywgZmlsdGVyU3RyaW5nXSkgPT5cbiAgICAgICAgdmFsdWVzLnNvbWUodmFsdWUgPT4gdGhpcy50cmFja0ZuKHZhbHVlKSA9PT0gZmlsdGVyU3RyaW5nKSxcbiAgICAgICksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMuaGFzVmlzaWJsZU9wdGlvbiQgPSAoXG4gICAgICB0aGlzLmNvbnRlbnRPcHRpb25zLmNoYW5nZXMgYXMgT2JzZXJ2YWJsZTxRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+Pj5cbiAgICApLnBpcGUoXG4gICAgICBzdGFydFdpdGgodGhpcy5jb250ZW50T3B0aW9ucyksXG4gICAgICBzd2l0Y2hNYXAoKG9wdGlvbnM6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+KSA9PlxuICAgICAgICBvcHRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgICA/IGNvbWJpbmVMYXRlc3Qob3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi52aXNpYmxlJCkpXG4gICAgICAgICAgOiBvZihbXSBhcyBib29sZWFuW10pLFxuICAgICAgKSxcbiAgICAgIG1hcCh2aXNpYmxlID0+IHZpc2libGUuc29tZShCb29sZWFuKSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub3B0aW9uQ29udGVudD8uZGV0YWNoKCk7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvcGVuT3B0aW9uKCkge1xuICAgIHRoaXMudG9vbHRpcFJlZi5zaG93KCk7XG4gIH1cblxuICBjbG9zZU9wdGlvbigpIHtcbiAgICB0aGlzLnRvb2x0aXBSZWYuaGlkZSgpO1xuICB9XG5cbiAgb25TaG93T3B0aW9ucygpIHtcbiAgICBjb25zdCBleGVjID0gKCkgPT4ge1xuICAgICAgdGhpcy5jb250YWluZXJXaWR0aCA9IHRoaXMuc2VsZWN0UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAncHgnO1xuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLmF1dG9Gb2N1c0ZpcnN0T3B0aW9uKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5zaG93LmVtaXQoKTtcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMub3B0aW9uQ29udGVudCkge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25Db250ZW50LmF0dGFjaCgpO1xuICAgICAgICBleGVjKCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhlYygpO1xuICAgIH1cbiAgfVxuXG4gIG9uSGlkZU9wdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubGF6eSkge1xuICAgICAgdGhpcy5vcHRpb25Db250ZW50Py5kZXRhY2goKTtcbiAgICB9XG4gICAgdGhpcy5yZXNldEZvY3VzZWRPcHRpb24oKTtcbiAgICB0aGlzLmZpbHRlclN0cmluZyA9ICcnO1xuICAgIHRoaXMuaGlkZS5lbWl0KCk7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLmZpbHRlclN0cmluZyA9IHZhbHVlO1xuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuYXV0b0ZvY3VzRmlyc3RPcHRpb24oKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIHRoaXMuZm9jdXNPcHRpb25EaXIoJ2Rvd24nKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuZm9jdXNPcHRpb25EaXIoJ3VwJyk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgdGhpcy5zZWxlY3RGb2N1c2VkT3B0aW9uKCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMuZXNjU2VsZWN0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBvbk9wdGlvbkNsaWNrKG9wdGlvbjogT3B0aW9uQ29tcG9uZW50PFQ+KSB7XG4gICAgdGhpcy5yZXNldEZvY3VzZWRPcHRpb24ob3B0aW9uKTtcbiAgICB0aGlzLnNlbGVjdE9wdGlvbihvcHRpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGF1dG9Gb2N1c0ZpcnN0T3B0aW9uKCkge1xuICAgIGlmICh0aGlzLmRlZmF1bHRGaXJzdE9wdGlvbiAmJiB0aGlzLmFsbG93Q3JlYXRlICYmIHRoaXMuZmlsdGVyU3RyaW5nKSB7XG4gICAgICBjb25zdCBtYXRjaGVkT3B0aW9uID0gdGhpcy5jb250ZW50T3B0aW9ucy5maW5kKFxuICAgICAgICBvcHRpb24gPT4gdGhpcy50cmFja0ZuKG9wdGlvbi52YWx1ZSkgPT09IHRoaXMuZmlsdGVyU3RyaW5nLFxuICAgICAgKTtcbiAgICAgIHRoaXMucmVzZXRGb2N1c2VkT3B0aW9uKG1hdGNoZWRPcHRpb24gfHwgdGhpcy5jdXN0b21PcHRpb25zLmZpcnN0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMuYWxsT3B0aW9ucy5maW5kKFxuICAgICAgb3B0aW9uID0+IG9wdGlvbi5zZWxlY3RlZCAmJiBvcHRpb24udmlzaWJsZSxcbiAgICApO1xuICAgIGlmICh0aGlzLmRlZmF1bHRGaXJzdE9wdGlvbikge1xuICAgICAgdGhpcy5yZXNldEZvY3VzZWRPcHRpb24oXG4gICAgICAgIHNlbGVjdGVkT3B0aW9uIHx8XG4gICAgICAgICAgdGhpcy5hbGxPcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi52aXNpYmxlICYmICFvcHRpb24uZGlzYWJsZWQpLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICB0aGlzLnNjcm9sbFRvT3B0aW9uKHNlbGVjdGVkT3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9jdXNPcHRpb25EaXIoZGlyOiAnZG93bicgfCAndXAnKSB7XG4gICAgaWYgKCF0aGlzLm9wZW5lZCkge1xuICAgICAgdGhpcy5vcGVuT3B0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHZpc2libGVPcHRpb25zID0gdGhpcy5hbGxPcHRpb25zLmZpbHRlcihcbiAgICAgIG9wdGlvbiA9PiBvcHRpb24udmlzaWJsZSAmJiAhb3B0aW9uLmRpc2FibGVkLFxuICAgICk7XG4gICAgaWYgKHZpc2libGVPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdGVwID0gZGlyID09PSAnZG93bicgPyAxIDogLTE7XG4gICAgbGV0IGkgPSB2aXNpYmxlT3B0aW9ucy5pbmRleE9mKHRoaXMuZm9jdXNlZE9wdGlvbik7XG4gICAgaSA9IGkgKyBzdGVwO1xuICAgIGlmIChpID49IHZpc2libGVPcHRpb25zLmxlbmd0aCkge1xuICAgICAgaSA9IDA7XG4gICAgfSBlbHNlIGlmIChpIDwgMCkge1xuICAgICAgaSA9IHZpc2libGVPcHRpb25zLmxlbmd0aCAtIDE7XG4gICAgfVxuICAgIHRoaXMucmVzZXRGb2N1c2VkT3B0aW9uKHZpc2libGVPcHRpb25zW2ldKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldEZvY3VzZWRPcHRpb24oZm9jdXNlZE9wdGlvbj86IE9wdGlvbkNvbXBvbmVudDxUPikge1xuICAgIGlmICh0aGlzLmZvY3VzZWRPcHRpb24gPT09IGZvY3VzZWRPcHRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb2N1c2VkT3B0aW9uKSB7XG4gICAgICB0aGlzLmZvY3VzZWRPcHRpb24uYmx1cigpO1xuICAgIH1cblxuICAgIHRoaXMuZm9jdXNlZE9wdGlvbiA9IGZvY3VzZWRPcHRpb247XG5cbiAgICBpZiAodGhpcy5mb2N1c2VkT3B0aW9uKSB7XG4gICAgICB0aGlzLmZvY3VzZWRPcHRpb24uZm9jdXMoKTtcbiAgICAgIHRoaXMuc2Nyb2xsVG9PcHRpb24odGhpcy5mb2N1c2VkT3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2Nyb2xsVG9PcHRpb24ob3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD4pIHtcbiAgICBpZiAodGhpcy5vcHRpb25MaXN0UmVmKSB7XG4gICAgICBzY3JvbGxJbnRvVmlldyhcbiAgICAgICAgdGhpcy5vcHRpb25MaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIG9wdGlvbi5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0Rm9jdXNlZE9wdGlvbigpIHtcbiAgICBpZiAoIXRoaXMub3BlbmVkKSB7XG4gICAgICB0aGlzLm9wZW5PcHRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZm9jdXNlZE9wdGlvbiAmJiAhdGhpcy5mb2N1c2VkT3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbih0aGlzLmZvY3VzZWRPcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBlc2NTZWxlY3QoKSB7XG4gICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHJhY2tGbjxUPih2YWx1ZTogVCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlckZuKFxuICAgIGZpbHRlclN0cmluZzogc3RyaW5nLFxuICAgIHsgbGFiZWwsIHZhbHVlIH06IFNlbGVjdEZpbHRlck9wdGlvbjxUPixcbiAgKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0eXBlb2YgbGFiZWwgPT09ICdzdHJpbmcnICYmIGxhYmVsKSB8fFxuICAgICAgdGhpcy5sYWJlbEZuPy4odmFsdWUpIHx8XG4gICAgICBjb2VyY2VTdHJpbmcodGhpcy50cmFja0ZuKHZhbHVlKSlcbiAgICApXG4gICAgICA/LnRvTG93ZXJDYXNlKClcbiAgICAgIC5pbmNsdWRlcyhmaWx0ZXJTdHJpbmc/LnRvTG93ZXJDYXNlKCkgPz8gJycpO1xuICB9XG5cbiAgYWJzdHJhY3Qgc2VsZWN0T3B0aW9uKG9wdGlvbjogT3B0aW9uQ29tcG9uZW50PFQ+KTogdm9pZDtcbiAgYWJzdHJhY3QgY2xlYXJWYWx1ZShldmVudDogRXZlbnQpOiB2b2lkO1xufVxuIl19