@alauda/ui 6.2.3-beta.9 → 6.3.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1289) hide show
  1. package/.changeset/README.md +8 -0
  2. package/accordion/accordion-item/accordion-item.component.d.ts +7 -0
  3. package/accordion/accordion.component.d.ts +3 -0
  4. package/accordion/accordion.module.d.ts +10 -0
  5. package/alauda-ui.d.ts +1 -20
  6. package/anchor/anchor.component.d.ts +7 -2
  7. package/anchor/anchor.directive.d.ts +7 -0
  8. package/anchor/anchor.module.d.ts +7 -0
  9. package/autocomplete/autocomplete-placeholder.component.d.ts +3 -0
  10. package/autocomplete/autocomplete.component.d.ts +3 -0
  11. package/autocomplete/autocomplete.directive.d.ts +5 -0
  12. package/autocomplete/autocomplete.module.d.ts +13 -0
  13. package/autocomplete/helper-directives.d.ts +3 -0
  14. package/autocomplete/suggestion/suggestion.component.d.ts +3 -0
  15. package/autocomplete/suggestion-group/suggestion-group.component.d.ts +3 -0
  16. package/back-top/back-top.component.d.ts +3 -0
  17. package/back-top/back-top.module.d.ts +7 -0
  18. package/breadcrumb/breadcrumb-item.component.d.ts +3 -0
  19. package/breadcrumb/breadcrumb.component.d.ts +3 -0
  20. package/breadcrumb/breadcrumb.module.d.ts +8 -0
  21. package/button/button-group/button-group.component.d.ts +3 -0
  22. package/button/button.component.d.ts +9 -38
  23. package/button/button.module.d.ts +8 -0
  24. package/card/card.component.d.ts +3 -0
  25. package/card/card.module.d.ts +8 -0
  26. package/card/helper-directives.d.ts +7 -0
  27. package/card/section.component.d.ts +3 -0
  28. package/checkbox/checkbox-group/checkbox-group.component.d.ts +3 -0
  29. package/checkbox/checkbox.component.d.ts +3 -0
  30. package/checkbox/checkbox.module.d.ts +8 -0
  31. package/color-picker/color-picker.component.d.ts +3 -0
  32. package/color-picker/color-picker.module.d.ts +7 -0
  33. package/date-picker/calendar/date-picker-panel/component.d.ts +3 -0
  34. package/date-picker/calendar/footer/component.d.ts +3 -0
  35. package/date-picker/calendar/header/component.d.ts +3 -0
  36. package/date-picker/calendar/panel/picker-panel.d.ts +3 -0
  37. package/date-picker/calendar/range-picker-panel/component.d.ts +3 -0
  38. package/date-picker/date-picker/date-picker.component.d.ts +3 -0
  39. package/date-picker/date-picker.module.d.ts +20 -0
  40. package/date-picker/public-api.d.ts +1 -0
  41. package/date-picker/range-picker/range-picker.component.d.ts +3 -0
  42. package/date-picker/trigger/trigger.component.d.ts +3 -0
  43. package/dialog/confirm-dialog/confirm-dialog.component.d.ts +3 -0
  44. package/dialog/dialog-content/dialog-close.directive.d.ts +3 -0
  45. package/dialog/dialog-content/dialog-content.component.d.ts +3 -0
  46. package/dialog/dialog-content/dialog-footer.component.d.ts +3 -0
  47. package/dialog/dialog-content/dialog-header.component.d.ts +3 -0
  48. package/dialog/dialog.component.d.ts +3 -0
  49. package/dialog/dialog.module.d.ts +15 -0
  50. package/dialog/dialog.service.d.ts +3 -0
  51. package/dialog/public-api.d.ts +1 -0
  52. package/drawer/component/drawer.component.d.ts +5 -2
  53. package/drawer/component/helper-directives.d.ts +7 -4
  54. package/drawer/drawer.module.d.ts +10 -0
  55. package/drawer/drawer.service.d.ts +3 -0
  56. package/dropdown/dropdown-active.directive.d.ts +3 -0
  57. package/dropdown/dropdown-button/dropdown-button.component.d.ts +3 -0
  58. package/dropdown/dropdown.directive.d.ts +3 -0
  59. package/dropdown/dropdown.module.d.ts +17 -0
  60. package/dropdown/helper-directives.d.ts +3 -0
  61. package/dropdown/menu/menu-content.directive.d.ts +3 -0
  62. package/dropdown/menu/menu.component.d.ts +3 -0
  63. package/dropdown/menu-group/menu-group.component.d.ts +3 -0
  64. package/dropdown/menu-item/menu-item.component.d.ts +3 -0
  65. package/dropdown/public-api.d.ts +1 -0
  66. package/dropdown/submenu/submenu.component.d.ts +3 -0
  67. package/esm2020/accordion/accordion-item/accordion-item.component.mjs +73 -0
  68. package/esm2020/accordion/accordion.component.mjs +27 -0
  69. package/esm2020/accordion/accordion.module.mjs +39 -0
  70. package/{esm2015/accordion/public-api.js → esm2020/accordion/public-api.mjs} +0 -0
  71. package/esm2020/alauda-ui.mjs +5 -0
  72. package/esm2020/anchor/anchor.component.mjs +139 -0
  73. package/esm2020/anchor/anchor.directive.mjs +184 -0
  74. package/esm2020/anchor/anchor.module.mjs +36 -0
  75. package/{esm2015/anchor/public-api.js → esm2020/anchor/public-api.mjs} +0 -0
  76. package/{esm2015/anchor/types.js → esm2020/anchor/types.mjs} +0 -0
  77. package/{esm2015/anchor/utils.js → esm2020/anchor/utils.mjs} +0 -0
  78. package/esm2020/autocomplete/autocomplete-placeholder.component.mjs +17 -0
  79. package/esm2020/autocomplete/autocomplete.component.mjs +41 -0
  80. package/esm2020/autocomplete/autocomplete.directive.mjs +272 -0
  81. package/esm2020/autocomplete/autocomplete.module.mjs +53 -0
  82. package/{esm2015/autocomplete/autocomplete.types.js → esm2020/autocomplete/autocomplete.types.mjs} +0 -0
  83. package/esm2020/autocomplete/helper-directives.mjs +17 -0
  84. package/{esm2015/autocomplete/public-api.js → esm2020/autocomplete/public-api.mjs} +0 -0
  85. package/esm2020/autocomplete/suggestion/suggestion.component.mjs +78 -0
  86. package/esm2020/autocomplete/suggestion-group/suggestion-group.component.mjs +23 -0
  87. package/esm2020/back-top/back-top.component.mjs +68 -0
  88. package/esm2020/back-top/back-top.module.mjs +19 -0
  89. package/{esm2015/back-top/public-api.js → esm2020/back-top/public-api.mjs} +0 -0
  90. package/esm2020/breadcrumb/breadcrumb-item.component.mjs +32 -0
  91. package/esm2020/breadcrumb/breadcrumb.component.mjs +57 -0
  92. package/esm2020/breadcrumb/breadcrumb.module.mjs +20 -0
  93. package/{esm2015/breadcrumb/public-api.js → esm2020/breadcrumb/public-api.mjs} +0 -0
  94. package/esm2020/button/button-group/button-group.component.mjs +11 -0
  95. package/esm2020/button/button.component.mjs +122 -0
  96. package/esm2020/button/button.module.mjs +20 -0
  97. package/{esm2015/button/button.types.js → esm2020/button/button.types.mjs} +0 -0
  98. package/{esm2015/button/public-api.js → esm2020/button/public-api.mjs} +0 -0
  99. package/esm2020/card/card.component.mjs +16 -0
  100. package/esm2020/card/card.module.mjs +40 -0
  101. package/esm2020/card/helper-directives.mjs +43 -0
  102. package/{esm2015/card/public-api.js → esm2020/card/public-api.mjs} +0 -0
  103. package/esm2020/card/section.component.mjs +11 -0
  104. package/esm2020/checkbox/checkbox-group/checkbox-group.component.mjs +64 -0
  105. package/esm2020/checkbox/checkbox.component.mjs +114 -0
  106. package/esm2020/checkbox/checkbox.module.mjs +20 -0
  107. package/{esm2015/checkbox/public-api.js → esm2020/checkbox/public-api.mjs} +0 -0
  108. package/esm2020/color-picker/color-picker.component.mjs +32 -0
  109. package/esm2020/color-picker/color-picker.module.mjs +19 -0
  110. package/{esm2015/color-picker/public-api.js → esm2020/color-picker/public-api.mjs} +0 -0
  111. package/{esm2015/date-picker/calendar/constant.js → esm2020/date-picker/calendar/constant.mjs} +0 -0
  112. package/esm2020/date-picker/calendar/date-picker-panel/component.mjs +128 -0
  113. package/esm2020/date-picker/calendar/footer/component.mjs +29 -0
  114. package/esm2020/date-picker/calendar/header/component.mjs +105 -0
  115. package/esm2020/date-picker/calendar/panel/picker-panel.mjs +149 -0
  116. package/esm2020/date-picker/calendar/range-picker-panel/component.mjs +209 -0
  117. package/{esm2015/date-picker/calendar/util.js → esm2020/date-picker/calendar/util.mjs} +0 -0
  118. package/esm2020/date-picker/date-picker/date-picker.component.mjs +104 -0
  119. package/esm2020/date-picker/date-picker.module.mjs +84 -0
  120. package/{esm2015/date-picker/date-picker.type.js → esm2020/date-picker/date-picker.type.mjs} +0 -0
  121. package/esm2020/date-picker/public-api.mjs +12 -0
  122. package/esm2020/date-picker/range-picker/range-picker.component.mjs +80 -0
  123. package/esm2020/date-picker/trigger/trigger.component.mjs +69 -0
  124. package/{esm2015/dialog/confirm-dialog/confirm-dialog-config.js → esm2020/dialog/confirm-dialog/confirm-dialog-config.mjs} +0 -0
  125. package/esm2020/dialog/confirm-dialog/confirm-dialog.component.mjs +86 -0
  126. package/{esm2015/dialog/dialog-config.js → esm2020/dialog/dialog-config.mjs} +0 -0
  127. package/esm2020/dialog/dialog-content/dialog-close.directive.mjs +38 -0
  128. package/esm2020/dialog/dialog-content/dialog-content.component.mjs +20 -0
  129. package/esm2020/dialog/dialog-content/dialog-footer.component.mjs +15 -0
  130. package/esm2020/dialog/dialog-content/dialog-header.component.mjs +39 -0
  131. package/{esm2015/dialog/dialog-ref.js → esm2020/dialog/dialog-ref.mjs} +0 -0
  132. package/esm2020/dialog/dialog.component.mjs +59 -0
  133. package/esm2020/dialog/dialog.module.mjs +68 -0
  134. package/esm2020/dialog/dialog.service.mjs +128 -0
  135. package/{esm2015/dialog/dialog.types.js → esm2020/dialog/dialog.types.mjs} +0 -0
  136. package/esm2020/dialog/public-api.mjs +12 -0
  137. package/{esm2015/dialog/utils/errors.js → esm2020/dialog/utils/errors.mjs} +0 -0
  138. package/esm2020/dialog/utils/index.mjs +11 -0
  139. package/{esm2015/drawer/component/drawer-ref.js → esm2020/drawer/component/drawer-ref.mjs} +0 -0
  140. package/esm2020/drawer/component/drawer.component.mjs +231 -0
  141. package/esm2020/drawer/component/helper-directives.mjs +37 -0
  142. package/esm2020/drawer/drawer.module.mjs +37 -0
  143. package/esm2020/drawer/drawer.service.mjs +45 -0
  144. package/{esm2015/drawer/public-api.js → esm2020/drawer/public-api.mjs} +0 -0
  145. package/esm2020/dropdown/dropdown-active.directive.mjs +21 -0
  146. package/esm2020/dropdown/dropdown-button/dropdown-button.component.mjs +51 -0
  147. package/esm2020/dropdown/dropdown.directive.mjs +83 -0
  148. package/esm2020/dropdown/dropdown.module.mjs +65 -0
  149. package/{esm2015/dropdown/dropdown.types.js → esm2020/dropdown/dropdown.types.mjs} +0 -0
  150. package/esm2020/dropdown/helper-directives.mjs +17 -0
  151. package/esm2020/dropdown/menu/menu-content.directive.mjs +51 -0
  152. package/esm2020/dropdown/menu/menu.component.mjs +33 -0
  153. package/esm2020/dropdown/menu-group/menu-group.component.mjs +11 -0
  154. package/esm2020/dropdown/menu-item/menu-item.component.mjs +37 -0
  155. package/esm2020/dropdown/public-api.mjs +12 -0
  156. package/esm2020/dropdown/submenu/submenu.component.mjs +40 -0
  157. package/esm2020/form/common-form.mjs +92 -0
  158. package/esm2020/form/form-item/form-item.component.mjs +106 -0
  159. package/esm2020/form/form.directive.mjs +70 -0
  160. package/esm2020/form/form.module.mjs +48 -0
  161. package/{esm2015/form/form.types.js → esm2020/form/form.types.mjs} +0 -0
  162. package/esm2020/form/helper-directives.mjs +81 -0
  163. package/{esm2015/form/public-api.js → esm2020/form/public-api.mjs} +0 -0
  164. package/esm2020/i18n/i18n.module.mjs +16 -0
  165. package/esm2020/i18n/i18n.pipe.mjs +20 -0
  166. package/esm2020/i18n/i18n.service.mjs +43 -0
  167. package/esm2020/i18n/i18n.type.mjs +6 -0
  168. package/{esm2015/i18n/language/en.js → esm2020/i18n/language/en.mjs} +0 -0
  169. package/{esm2015/i18n/language/zh.js → esm2020/i18n/language/zh.mjs} +0 -0
  170. package/{esm2015/i18n/public-api.js → esm2020/i18n/public-api.mjs} +0 -0
  171. package/esm2020/icon/icon-register.service.mjs +70 -0
  172. package/esm2020/icon/icon.component.mjs +65 -0
  173. package/esm2020/icon/icon.module.mjs +21 -0
  174. package/{esm2015/icon/icons.js → esm2020/icon/icons.mjs} +0 -0
  175. package/{esm2015/icon/public-api.js → esm2020/icon/public-api.mjs} +0 -0
  176. package/{esm2015/icon/utils.js → esm2020/icon/utils.mjs} +0 -0
  177. package/esm2020/inline-alert/helper-directives.mjs +14 -0
  178. package/esm2020/inline-alert/inline-alert.component.mjs +55 -0
  179. package/esm2020/inline-alert/inline-alert.module.mjs +20 -0
  180. package/{esm2015/inline-alert/inline-alert.types.js → esm2020/inline-alert/inline-alert.types.mjs} +0 -0
  181. package/{esm2015/inline-alert/public-api.js → esm2020/inline-alert/public-api.mjs} +0 -0
  182. package/esm2020/input/autosize.directive.mjs +60 -0
  183. package/esm2020/input/helper-directives.mjs +43 -0
  184. package/esm2020/input/input-group/input-group.component.mjs +39 -0
  185. package/esm2020/input/input.component.mjs +61 -0
  186. package/esm2020/input/input.module.mjs +91 -0
  187. package/esm2020/input/number-input/number-input.component.mjs +94 -0
  188. package/esm2020/input/public-api.mjs +9 -0
  189. package/esm2020/input/search/search.component.mjs +81 -0
  190. package/esm2020/input/tags-input/tags-input.component.mjs +265 -0
  191. package/{esm2015/input/tags-input/with-max-row-count.js → esm2020/input/tags-input/with-max-row-count.mjs} +0 -0
  192. package/{esm2015/input/utils/index.js → esm2020/input/utils/index.mjs} +0 -0
  193. package/esm2020/message/base-message.mjs +90 -0
  194. package/{esm2015/message/message-animations.js → esm2020/message/message-animations.mjs} +0 -0
  195. package/esm2020/message/message-wrapper.component.mjs +14 -0
  196. package/esm2020/message/message.component.mjs +70 -0
  197. package/{esm2015/message/message.config.js → esm2020/message/message.config.mjs} +0 -0
  198. package/esm2020/message/message.module.mjs +23 -0
  199. package/esm2020/message/message.service.mjs +26 -0
  200. package/{esm2015/message/public-api.js → esm2020/message/public-api.mjs} +0 -0
  201. package/esm2020/notification/notification-wrapper.component.mjs +16 -0
  202. package/esm2020/notification/notification.component.mjs +107 -0
  203. package/{esm2015/notification/notification.config.js → esm2020/notification/notification.config.mjs} +0 -0
  204. package/esm2020/notification/notification.module.mjs +24 -0
  205. package/esm2020/notification/notification.service.mjs +26 -0
  206. package/{esm2015/notification/public-api.js → esm2020/notification/public-api.mjs} +0 -0
  207. package/esm2020/paginator/paginator-intl.mjs +36 -0
  208. package/esm2020/paginator/paginator.component.mjs +125 -0
  209. package/esm2020/paginator/paginator.module.mjs +24 -0
  210. package/{esm2015/paginator/public-api.js → esm2020/paginator/public-api.mjs} +0 -0
  211. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  212. package/esm2020/radio/base-radio.mjs +69 -0
  213. package/{esm2015/radio/public-api.js → esm2020/radio/public-api.mjs} +0 -0
  214. package/esm2020/radio/radio-button/radio-button.component.mjs +42 -0
  215. package/esm2020/radio/radio-group/radio-group.component.mjs +80 -0
  216. package/esm2020/radio/radio.component.mjs +24 -0
  217. package/esm2020/radio/radio.module.mjs +21 -0
  218. package/{esm2015/radio/radio.types.js → esm2020/radio/radio.types.mjs} +0 -0
  219. package/esm2020/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +84 -0
  220. package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +122 -0
  221. package/esm2020/scrolling/fixed-size-virtual-scroll.directive.mjs +28 -0
  222. package/esm2020/scrolling/public-api.mjs +7 -0
  223. package/esm2020/scrolling/scrolling.module.mjs +30 -0
  224. package/esm2020/scrolling/virtual-for-of.directive.mjs +36 -0
  225. package/esm2020/scrolling/virtual-scroll-viewport.component.mjs +26 -0
  226. package/esm2020/select/base-select.mjs +339 -0
  227. package/esm2020/select/helper-directives.mjs +29 -0
  228. package/esm2020/select/multi-select/multi-select.component.mjs +292 -0
  229. package/esm2020/select/option/option.component.mjs +110 -0
  230. package/esm2020/select/option-group/option-group.component.mjs +23 -0
  231. package/esm2020/select/option-placeholder.component.mjs +17 -0
  232. package/{esm2015/select/public-api.js → esm2020/select/public-api.mjs} +0 -0
  233. package/esm2020/select/select.component.mjs +107 -0
  234. package/esm2020/select/select.module.mjs +80 -0
  235. package/{esm2015/select/select.types.js → esm2020/select/select.types.mjs} +0 -0
  236. package/esm2020/select/validators.mjs +79 -0
  237. package/esm2020/shared/click-outside.directive.mjs +28 -0
  238. package/esm2020/shared/shared.module.mjs +16 -0
  239. package/{esm2015/sort/public-api.js → esm2020/sort/public-api.mjs} +0 -0
  240. package/{esm2015/sort/sort-errors.js → esm2020/sort/sort-errors.mjs} +0 -0
  241. package/esm2020/sort/sort-header.component.mjs +72 -0
  242. package/esm2020/sort/sort.directive.mjs +75 -0
  243. package/esm2020/sort/sort.module.mjs +19 -0
  244. package/{esm2015/sort/sort.types.js → esm2020/sort/sort.types.mjs} +0 -0
  245. package/{esm2015/status-bar/public-api.js → esm2020/status-bar/public-api.mjs} +0 -0
  246. package/esm2020/status-bar/status-bar.component.mjs +29 -0
  247. package/esm2020/status-bar/status-bar.module.mjs +19 -0
  248. package/{esm2015/status-bar/status-bar.types.js → esm2020/status-bar/status-bar.types.mjs} +0 -0
  249. package/{esm2015/steps/public-api.js → esm2020/steps/public-api.mjs} +0 -0
  250. package/esm2020/steps/steps.component.mjs +183 -0
  251. package/esm2020/steps/steps.module.mjs +19 -0
  252. package/{esm2015/steps/types.js → esm2020/steps/types.mjs} +0 -0
  253. package/{esm2015/switch/public-api.js → esm2020/switch/public-api.mjs} +0 -0
  254. package/esm2020/switch/switch.component.mjs +49 -0
  255. package/esm2020/switch/switch.module.mjs +18 -0
  256. package/esm2020/table/public-api.mjs +15 -0
  257. package/esm2020/table/table-cell-def.directive.mjs +29 -0
  258. package/esm2020/table/table-cell.component.mjs +121 -0
  259. package/esm2020/table/table-cell.directive.mjs +27 -0
  260. package/esm2020/table/table-column-def.directive.mjs +37 -0
  261. package/esm2020/table/table-header-cell-def.directive.mjs +29 -0
  262. package/esm2020/table/table-header-cell.directive.mjs +27 -0
  263. package/esm2020/table/table-header-row-def.directive.mjs +39 -0
  264. package/esm2020/table/table-header-row.component.mjs +25 -0
  265. package/esm2020/table/table-placeholder.directive.mjs +30 -0
  266. package/esm2020/table/table-row-def.directive.mjs +42 -0
  267. package/esm2020/table/table-row.component.mjs +43 -0
  268. package/esm2020/table/table-scroll.directive.mjs +91 -0
  269. package/esm2020/table/table.component.mjs +81 -0
  270. package/esm2020/table/table.module.mjs +96 -0
  271. package/{esm2015/table-of-contents/public-api.js → esm2020/table-of-contents/public-api.mjs} +0 -0
  272. package/esm2020/table-of-contents/table-of-contents.module.mjs +20 -0
  273. package/esm2020/table-of-contents/toc-container.directive.mjs +110 -0
  274. package/esm2020/table-of-contents/toc-content.directive.mjs +35 -0
  275. package/esm2020/table-of-contents/toc-link.directive.mjs +47 -0
  276. package/esm2020/tabs/public-api.mjs +9 -0
  277. package/esm2020/tabs/tab-body.component.mjs +165 -0
  278. package/esm2020/tabs/tab-context.service.mjs +32 -0
  279. package/esm2020/tabs/tab-group.component.mjs +291 -0
  280. package/esm2020/tabs/tab-header-active-indicator.component.mjs +53 -0
  281. package/esm2020/tabs/tab-header.component.mjs +365 -0
  282. package/esm2020/tabs/tab.component.mjs +85 -0
  283. package/esm2020/tabs/tabs.module.mjs +88 -0
  284. package/{esm2015/tabs/tabs.types.js → esm2020/tabs/tabs.types.mjs} +0 -0
  285. package/esm2020/tag/check-tag/check-tag.component.mjs +33 -0
  286. package/{esm2015/tag/public-api.js → esm2020/tag/public-api.mjs} +0 -0
  287. package/esm2020/tag/tag.component.mjs +64 -0
  288. package/esm2020/tag/tag.module.mjs +20 -0
  289. package/{esm2015/tag/tag.types.js → esm2020/tag/tag.types.mjs} +0 -0
  290. package/{esm2015/theme/public-api.js → esm2020/theme/public-api.mjs} +0 -0
  291. package/esm2020/theme/theme.module.mjs +18 -0
  292. package/esm2020/theme/theme.pipe.mjs +70 -0
  293. package/esm2020/theme/theme.service.mjs +53 -0
  294. package/{esm2015/theme/theme.types.js → esm2020/theme/theme.types.mjs} +0 -0
  295. package/{esm2015/theme/utils.js → esm2020/theme/utils.mjs} +0 -0
  296. package/esm2020/time-picker/component.mjs +173 -0
  297. package/esm2020/time-picker/constant.mjs +5 -0
  298. package/esm2020/time-picker/panel/panel.component.mjs +224 -0
  299. package/{esm2015/time-picker/public-api.js → esm2020/time-picker/public-api.mjs} +0 -0
  300. package/esm2020/time-picker/time-picker.module.mjs +58 -0
  301. package/esm2020/time-picker/time-picker.type.mjs +13 -0
  302. package/esm2020/tooltip/base-tooltip.mjs +244 -0
  303. package/esm2020/tooltip/public-api.mjs +9 -0
  304. package/esm2020/tooltip/tooltip-active.directive.mjs +44 -0
  305. package/esm2020/tooltip/tooltip-copy.directive.mjs +78 -0
  306. package/esm2020/tooltip/tooltip-intl.mjs +28 -0
  307. package/esm2020/tooltip/tooltip.component.mjs +49 -0
  308. package/esm2020/tooltip/tooltip.directive.mjs +51 -0
  309. package/esm2020/tooltip/tooltip.module.mjs +33 -0
  310. package/{esm2015/tooltip/tooltip.types.js → esm2020/tooltip/tooltip.types.mjs} +0 -0
  311. package/{esm2015/tooltip/utils/index.js → esm2020/tooltip/utils/index.mjs} +0 -0
  312. package/esm2020/tree-select/public-api.mjs +5 -0
  313. package/esm2020/tree-select/tree-node-placeholder.component.mjs +17 -0
  314. package/esm2020/tree-select/tree-select.component.mjs +343 -0
  315. package/esm2020/tree-select/tree-select.module.mjs +34 -0
  316. package/{esm2015/tree-select/tree-select.types.js → esm2020/tree-select/tree-select.types.mjs} +0 -0
  317. package/{esm2015/types.js → esm2020/types.mjs} +0 -0
  318. package/{esm2015/utils/async.js → esm2020/utils/async.mjs} +0 -0
  319. package/{esm2015/utils/bem.js → esm2020/utils/bem.mjs} +0 -0
  320. package/esm2020/utils/coercion.mjs +17 -0
  321. package/esm2020/utils/fn.mjs +8 -0
  322. package/{esm2015/utils/index.js → esm2020/utils/index.mjs} +0 -0
  323. package/{esm2015/utils/observe-dom.js → esm2020/utils/observe-dom.mjs} +0 -0
  324. package/{esm2015/utils/scroll-into-view.js → esm2020/utils/scroll-into-view.mjs} +0 -0
  325. package/{esm2015/utils/watch-content-exist.js → esm2020/utils/watch-content-exist.mjs} +0 -0
  326. package/fesm2015/alauda-ui.mjs +11581 -0
  327. package/fesm2015/alauda-ui.mjs.map +1 -0
  328. package/fesm2020/alauda-ui.mjs +11507 -0
  329. package/fesm2020/alauda-ui.mjs.map +1 -0
  330. package/form/common-form.d.ts +3 -0
  331. package/form/form-item/form-item.component.d.ts +3 -0
  332. package/form/form.directive.d.ts +3 -0
  333. package/form/form.module.d.ts +8 -0
  334. package/form/helper-directives.d.ts +11 -0
  335. package/i18n/i18n.module.d.ts +5 -0
  336. package/i18n/i18n.pipe.d.ts +3 -0
  337. package/i18n/i18n.service.d.ts +5 -1
  338. package/icon/icon-register.service.d.ts +3 -0
  339. package/icon/icon.component.d.ts +3 -0
  340. package/icon/icon.module.d.ts +7 -0
  341. package/inline-alert/helper-directives.d.ts +3 -0
  342. package/inline-alert/inline-alert.component.d.ts +3 -0
  343. package/inline-alert/inline-alert.module.d.ts +8 -0
  344. package/input/autosize.directive.d.ts +3 -0
  345. package/input/helper-directives.d.ts +9 -0
  346. package/input/input-group/input-group.component.d.ts +3 -0
  347. package/input/input.component.d.ts +7 -21
  348. package/input/input.module.d.ts +17 -0
  349. package/input/number-input/number-input.component.d.ts +3 -0
  350. package/input/public-api.d.ts +2 -0
  351. package/input/search/search.component.d.ts +3 -0
  352. package/input/tags-input/tags-input.component.d.ts +5 -2
  353. package/message/message-wrapper.component.d.ts +3 -0
  354. package/message/message.component.d.ts +3 -0
  355. package/message/message.module.d.ts +9 -0
  356. package/message/message.service.d.ts +3 -0
  357. package/notification/notification-wrapper.component.d.ts +3 -0
  358. package/notification/notification.component.d.ts +5 -3
  359. package/notification/notification.module.d.ts +10 -0
  360. package/notification/notification.service.d.ts +3 -0
  361. package/package.json +28 -16
  362. package/paginator/paginator-intl.d.ts +3 -0
  363. package/paginator/paginator.component.d.ts +3 -0
  364. package/paginator/paginator.module.d.ts +10 -0
  365. package/radio/base-radio.d.ts +3 -0
  366. package/radio/radio-button/radio-button.component.d.ts +3 -0
  367. package/radio/radio-group/radio-group.component.d.ts +3 -0
  368. package/radio/radio.component.d.ts +3 -0
  369. package/radio/radio.module.d.ts +9 -0
  370. package/scrolling/fixed-size-table-virtual-scroll-strategy.d.ts +3 -0
  371. package/scrolling/fixed-size-table-virtual-scroll.directive.d.ts +3 -0
  372. package/scrolling/fixed-size-virtual-scroll.directive.d.ts +3 -0
  373. package/scrolling/public-api.d.ts +1 -0
  374. package/scrolling/scrolling.module.d.ts +8 -0
  375. package/scrolling/virtual-for-of.directive.d.ts +3 -0
  376. package/scrolling/virtual-scroll-viewport.component.d.ts +3 -0
  377. package/select/base-select.d.ts +10 -29
  378. package/select/helper-directives.d.ts +5 -0
  379. package/select/multi-select/multi-select.component.d.ts +4 -0
  380. package/select/option/option.component.d.ts +3 -0
  381. package/select/option-group/option-group.component.d.ts +3 -0
  382. package/select/option-placeholder.component.d.ts +3 -0
  383. package/select/select.component.d.ts +3 -0
  384. package/select/select.module.d.ts +17 -0
  385. package/select/validators.d.ts +3 -0
  386. package/shared/click-outside.directive.d.ts +3 -0
  387. package/shared/shared.module.d.ts +5 -0
  388. package/sort/sort-header.component.d.ts +3 -0
  389. package/sort/sort.directive.d.ts +3 -0
  390. package/sort/sort.module.d.ts +7 -0
  391. package/src/accordion/README.md +13 -0
  392. package/src/anchor/README.md +23 -0
  393. package/src/dropdown/README.md +57 -0
  394. package/src/form/README.md +32 -0
  395. package/src/icon/README.md +28 -0
  396. package/src/inline-alert/README.md +16 -0
  397. package/src/input/number-input/README.md +15 -0
  398. package/src/select/README.md +57 -0
  399. package/src/sort/README.md +13 -0
  400. package/src/table/README.md +8 -0
  401. package/src/table-of-contents/README.md +79 -0
  402. package/src/tag/README.md +32 -0
  403. package/src/tree-select/README.md +34 -0
  404. package/status-bar/status-bar.component.d.ts +3 -0
  405. package/status-bar/status-bar.module.d.ts +7 -0
  406. package/steps/steps.component.d.ts +4 -1
  407. package/steps/steps.module.d.ts +7 -0
  408. package/switch/switch.component.d.ts +3 -0
  409. package/switch/switch.module.d.ts +6 -0
  410. package/table/public-api.d.ts +2 -0
  411. package/table/table-cell-def.directive.d.ts +3 -0
  412. package/table/table-cell.component.d.ts +5 -0
  413. package/table/table-cell.directive.d.ts +3 -0
  414. package/table/table-column-def.directive.d.ts +3 -0
  415. package/table/table-header-cell-def.directive.d.ts +3 -0
  416. package/table/table-header-cell.directive.d.ts +3 -0
  417. package/table/table-header-row-def.directive.d.ts +4 -1
  418. package/table/table-header-row.component.d.ts +3 -0
  419. package/table/table-placeholder.directive.d.ts +5 -0
  420. package/table/table-row-def.directive.d.ts +5 -2
  421. package/table/table-row.component.d.ts +3 -0
  422. package/table/table-scroll.directive.d.ts +5 -0
  423. package/table/table.component.d.ts +3 -0
  424. package/table/table.module.d.ts +20 -0
  425. package/table-of-contents/table-of-contents.module.d.ts +8 -0
  426. package/table-of-contents/toc-container.directive.d.ts +3 -0
  427. package/table-of-contents/toc-content.directive.d.ts +3 -0
  428. package/table-of-contents/toc-link.directive.d.ts +3 -0
  429. package/tabs/public-api.d.ts +0 -1
  430. package/tabs/tab-body.component.d.ts +61 -2
  431. package/tabs/tab-context.service.d.ts +4 -1
  432. package/tabs/tab-group.component.d.ts +7 -12
  433. package/tabs/tab-header-active-indicator.component.d.ts +3 -0
  434. package/tabs/tab-header.component.d.ts +4 -1
  435. package/tabs/tab.component.d.ts +4 -1
  436. package/tabs/tabs.module.d.ts +16 -0
  437. package/tag/check-tag/check-tag.component.d.ts +3 -0
  438. package/tag/tag.component.d.ts +3 -0
  439. package/tag/tag.module.d.ts +8 -0
  440. package/theme/_var.scss +7 -10
  441. package/theme/style.css +2 -2
  442. package/theme/theme.module.d.ts +6 -0
  443. package/theme/theme.pipe.d.ts +9 -0
  444. package/theme/theme.service.d.ts +3 -0
  445. package/time-picker/component.d.ts +3 -0
  446. package/time-picker/panel/panel.component.d.ts +3 -0
  447. package/time-picker/time-picker.module.d.ts +15 -0
  448. package/tooltip/base-tooltip.d.ts +3 -0
  449. package/tooltip/public-api.d.ts +1 -0
  450. package/tooltip/tooltip-active.directive.d.ts +3 -0
  451. package/tooltip/tooltip-copy.directive.d.ts +3 -0
  452. package/tooltip/tooltip-intl.d.ts +3 -0
  453. package/tooltip/tooltip.component.d.ts +3 -0
  454. package/tooltip/tooltip.directive.d.ts +3 -0
  455. package/tooltip/tooltip.module.d.ts +10 -0
  456. package/tree-select/public-api.d.ts +0 -1
  457. package/tree-select/tree-node-placeholder.component.d.ts +3 -0
  458. package/tree-select/tree-select.component.d.ts +37 -3
  459. package/tree-select/tree-select.module.d.ts +10 -0
  460. package/utils/coercion.d.ts +1 -1
  461. package/utils/fn.d.ts +1 -1
  462. package/utils/observe-dom.d.ts +0 -1
  463. package/accordion/accordion-item/accordion-item.component.ngfactory.d.ts +0 -1
  464. package/accordion/accordion-item/accordion-item.component.scss.ngstyle.d.ts +0 -1
  465. package/accordion/accordion.component.ngfactory.d.ts +0 -1
  466. package/accordion/accordion.component.scss.ngstyle.d.ts +0 -1
  467. package/accordion/accordion.module.ngfactory.d.ts +0 -3
  468. package/alauda-ui.metadata.json +0 -1
  469. package/anchor/anchor.component.ngfactory.d.ts +0 -1
  470. package/anchor/anchor.component.scss.ngstyle.d.ts +0 -1
  471. package/anchor/anchor.module.ngfactory.d.ts +0 -3
  472. package/autocomplete/autocomplete-placeholder.component.ngfactory.d.ts +0 -1
  473. package/autocomplete/autocomplete.component.ngfactory.d.ts +0 -1
  474. package/autocomplete/autocomplete.component.scss.ngstyle.d.ts +0 -1
  475. package/autocomplete/autocomplete.module.ngfactory.d.ts +0 -3
  476. package/autocomplete/suggestion/suggestion.component.ngfactory.d.ts +0 -1
  477. package/autocomplete/suggestion/suggestion.component.scss.ngstyle.d.ts +0 -1
  478. package/autocomplete/suggestion-group/suggestion-group.component.ngfactory.d.ts +0 -1
  479. package/autocomplete/suggestion-group/suggestion-group.component.scss.ngstyle.d.ts +0 -1
  480. package/back-top/back-top.component.ngfactory.d.ts +0 -1
  481. package/back-top/back-top.component.scss.ngstyle.d.ts +0 -1
  482. package/back-top/back-top.module.ngfactory.d.ts +0 -3
  483. package/breadcrumb/breadcrumb-item.component.ngfactory.d.ts +0 -1
  484. package/breadcrumb/breadcrumb-item.component.scss.ngstyle.d.ts +0 -1
  485. package/breadcrumb/breadcrumb.component.ngfactory.d.ts +0 -1
  486. package/breadcrumb/breadcrumb.component.scss.ngstyle.d.ts +0 -1
  487. package/breadcrumb/breadcrumb.module.ngfactory.d.ts +0 -3
  488. package/bundles/alauda-ui.umd.js +0 -12812
  489. package/bundles/alauda-ui.umd.js.map +0 -1
  490. package/bundles/alauda-ui.umd.min.js +0 -2
  491. package/bundles/alauda-ui.umd.min.js.map +0 -1
  492. package/button/button-group/button-group.component.ngfactory.d.ts +0 -1
  493. package/button/button-group/button-group.component.scss.ngstyle.d.ts +0 -1
  494. package/button/button.component.ngfactory.d.ts +0 -1
  495. package/button/button.component.scss.ngstyle.d.ts +0 -1
  496. package/button/button.module.ngfactory.d.ts +0 -3
  497. package/card/card.component.ngfactory.d.ts +0 -1
  498. package/card/card.component.scss.ngstyle.d.ts +0 -1
  499. package/card/card.module.ngfactory.d.ts +0 -3
  500. package/card/section.component.ngfactory.d.ts +0 -1
  501. package/card/section.component.scss.ngstyle.d.ts +0 -1
  502. package/checkbox/checkbox-group/checkbox-group.component.ngfactory.d.ts +0 -1
  503. package/checkbox/checkbox-group/checkbox-group.component.scss.ngstyle.d.ts +0 -1
  504. package/checkbox/checkbox.component.ngfactory.d.ts +0 -1
  505. package/checkbox/checkbox.component.scss.ngstyle.d.ts +0 -1
  506. package/checkbox/checkbox.module.ngfactory.d.ts +0 -3
  507. package/color-picker/color-picker.component.ngfactory.d.ts +0 -1
  508. package/color-picker/color-picker.component.scss.ngstyle.d.ts +0 -1
  509. package/color-picker/color-picker.module.ngfactory.d.ts +0 -3
  510. package/date-picker/calendar/date-picker-panel/component.ngfactory.d.ts +0 -1
  511. package/date-picker/calendar/date-picker-panel/style.scss.ngstyle.d.ts +0 -1
  512. package/date-picker/calendar/footer/component.ngfactory.d.ts +0 -1
  513. package/date-picker/calendar/footer/style.scss.ngstyle.d.ts +0 -1
  514. package/date-picker/calendar/header/component.ngfactory.d.ts +0 -1
  515. package/date-picker/calendar/header/style.scss.ngstyle.d.ts +0 -1
  516. package/date-picker/calendar/panel/picker-panel.ngfactory.d.ts +0 -1
  517. package/date-picker/calendar/panel/picker-panel.style.scss.ngstyle.d.ts +0 -1
  518. package/date-picker/calendar/range-picker-panel/component.ngfactory.d.ts +0 -1
  519. package/date-picker/calendar/range-picker-panel/style.scss.ngstyle.d.ts +0 -1
  520. package/date-picker/date-picker/date-picker.component.ngfactory.d.ts +0 -1
  521. package/date-picker/date-picker/date-picker.style.scss.shim.ngstyle.d.ts +0 -1
  522. package/date-picker/date-picker.module.ngfactory.d.ts +0 -3
  523. package/date-picker/range-picker/range-picker.component.ngfactory.d.ts +0 -1
  524. package/date-picker/range-picker/range-picker.style.scss.shim.ngstyle.d.ts +0 -1
  525. package/date-picker/trigger/trigger.component.ngfactory.d.ts +0 -1
  526. package/date-picker/trigger/trigger.style.scss.shim.ngstyle.d.ts +0 -1
  527. package/dialog/confirm-dialog/confirm-dialog.component.ngfactory.d.ts +0 -1
  528. package/dialog/confirm-dialog/confirm-dialog.component.scss.ngstyle.d.ts +0 -1
  529. package/dialog/dialog-content/dialog-content.component.ngfactory.d.ts +0 -1
  530. package/dialog/dialog-content/dialog-footer.component.ngfactory.d.ts +0 -1
  531. package/dialog/dialog-content/dialog-header.component.ngfactory.d.ts +0 -1
  532. package/dialog/dialog.component.ngfactory.d.ts +0 -1
  533. package/dialog/dialog.component.scss.ngstyle.d.ts +0 -1
  534. package/dialog/dialog.module.ngfactory.d.ts +0 -3
  535. package/drawer/component/drawer.component.ngfactory.d.ts +0 -1
  536. package/drawer/component/drawer.component.scss.ngstyle.d.ts +0 -1
  537. package/drawer/drawer.module.ngfactory.d.ts +0 -3
  538. package/dropdown/dropdown-button/dropdown-button.component.ngfactory.d.ts +0 -1
  539. package/dropdown/dropdown-button/dropdown-button.component.scss.ngstyle.d.ts +0 -1
  540. package/dropdown/dropdown.module.ngfactory.d.ts +0 -3
  541. package/dropdown/menu/menu.component.ngfactory.d.ts +0 -1
  542. package/dropdown/menu/menu.component.scss.ngstyle.d.ts +0 -1
  543. package/dropdown/menu-group/menu-group.component.ngfactory.d.ts +0 -1
  544. package/dropdown/menu-group/menu-group.component.scss.ngstyle.d.ts +0 -1
  545. package/dropdown/menu-item/menu-item.component.ngfactory.d.ts +0 -1
  546. package/dropdown/menu-item/menu-item.component.scss.ngstyle.d.ts +0 -1
  547. package/dropdown/submenu/submenu.component.ngfactory.d.ts +0 -1
  548. package/dropdown/submenu/submenu.component.scss.ngstyle.d.ts +0 -1
  549. package/esm2015/accordion/accordion-item/accordion-item.component.js +0 -68
  550. package/esm2015/accordion/accordion-item/accordion-item.component.ngfactory.js +0 -28
  551. package/esm2015/accordion/accordion-item/accordion-item.component.ngsummary.json +0 -1
  552. package/esm2015/accordion/accordion-item/accordion-item.component.scss.ngstyle.js +0 -9
  553. package/esm2015/accordion/accordion.component.js +0 -28
  554. package/esm2015/accordion/accordion.component.ngfactory.js +0 -17
  555. package/esm2015/accordion/accordion.component.ngsummary.json +0 -1
  556. package/esm2015/accordion/accordion.component.scss.ngstyle.js +0 -9
  557. package/esm2015/accordion/accordion.module.js +0 -28
  558. package/esm2015/accordion/accordion.module.ngfactory.js +0 -18
  559. package/esm2015/accordion/accordion.module.ngsummary.json +0 -1
  560. package/esm2015/accordion/public-api.ngsummary.json +0 -1
  561. package/esm2015/alauda-ui.js +0 -25
  562. package/esm2015/alauda-ui.ngsummary.json +0 -1
  563. package/esm2015/anchor/anchor.component.js +0 -146
  564. package/esm2015/anchor/anchor.component.ngfactory.js +0 -40
  565. package/esm2015/anchor/anchor.component.ngsummary.json +0 -1
  566. package/esm2015/anchor/anchor.component.scss.ngstyle.js +0 -9
  567. package/esm2015/anchor/anchor.directive.js +0 -174
  568. package/esm2015/anchor/anchor.directive.ngsummary.json +0 -1
  569. package/esm2015/anchor/anchor.module.js +0 -25
  570. package/esm2015/anchor/anchor.module.ngfactory.js +0 -13
  571. package/esm2015/anchor/anchor.module.ngsummary.json +0 -1
  572. package/esm2015/anchor/public-api.ngsummary.json +0 -1
  573. package/esm2015/anchor/types.ngsummary.json +0 -1
  574. package/esm2015/anchor/utils.ngsummary.json +0 -1
  575. package/esm2015/autocomplete/autocomplete-placeholder.component.js +0 -13
  576. package/esm2015/autocomplete/autocomplete-placeholder.component.ngfactory.js +0 -16
  577. package/esm2015/autocomplete/autocomplete-placeholder.component.ngsummary.json +0 -1
  578. package/esm2015/autocomplete/autocomplete.component.js +0 -40
  579. package/esm2015/autocomplete/autocomplete.component.ngfactory.js +0 -22
  580. package/esm2015/autocomplete/autocomplete.component.ngsummary.json +0 -1
  581. package/esm2015/autocomplete/autocomplete.component.scss.ngstyle.js +0 -9
  582. package/esm2015/autocomplete/autocomplete.directive.js +0 -253
  583. package/esm2015/autocomplete/autocomplete.directive.ngsummary.json +0 -1
  584. package/esm2015/autocomplete/autocomplete.module.js +0 -36
  585. package/esm2015/autocomplete/autocomplete.module.ngfactory.js +0 -20
  586. package/esm2015/autocomplete/autocomplete.module.ngsummary.json +0 -1
  587. package/esm2015/autocomplete/autocomplete.types.ngsummary.json +0 -1
  588. package/esm2015/autocomplete/helper-directives.js +0 -13
  589. package/esm2015/autocomplete/helper-directives.ngsummary.json +0 -1
  590. package/esm2015/autocomplete/public-api.ngsummary.json +0 -1
  591. package/esm2015/autocomplete/suggestion/suggestion.component.js +0 -79
  592. package/esm2015/autocomplete/suggestion/suggestion.component.ngfactory.js +0 -22
  593. package/esm2015/autocomplete/suggestion/suggestion.component.ngsummary.json +0 -1
  594. package/esm2015/autocomplete/suggestion/suggestion.component.scss.ngstyle.js +0 -9
  595. package/esm2015/autocomplete/suggestion-group/suggestion-group.component.js +0 -25
  596. package/esm2015/autocomplete/suggestion-group/suggestion-group.component.ngfactory.js +0 -18
  597. package/esm2015/autocomplete/suggestion-group/suggestion-group.component.ngsummary.json +0 -1
  598. package/esm2015/autocomplete/suggestion-group/suggestion-group.component.scss.ngstyle.js +0 -9
  599. package/esm2015/back-top/back-top.component.js +0 -75
  600. package/esm2015/back-top/back-top.component.ngfactory.js +0 -25
  601. package/esm2015/back-top/back-top.component.ngsummary.json +0 -1
  602. package/esm2015/back-top/back-top.component.scss.ngstyle.js +0 -9
  603. package/esm2015/back-top/back-top.module.js +0 -14
  604. package/esm2015/back-top/back-top.module.ngfactory.js +0 -16
  605. package/esm2015/back-top/back-top.module.ngsummary.json +0 -1
  606. package/esm2015/back-top/public-api.ngsummary.json +0 -1
  607. package/esm2015/breadcrumb/breadcrumb-item.component.js +0 -36
  608. package/esm2015/breadcrumb/breadcrumb-item.component.ngfactory.js +0 -23
  609. package/esm2015/breadcrumb/breadcrumb-item.component.ngsummary.json +0 -1
  610. package/esm2015/breadcrumb/breadcrumb-item.component.scss.ngstyle.js +0 -9
  611. package/esm2015/breadcrumb/breadcrumb.component.js +0 -58
  612. package/esm2015/breadcrumb/breadcrumb.component.ngfactory.js +0 -17
  613. package/esm2015/breadcrumb/breadcrumb.component.ngsummary.json +0 -1
  614. package/esm2015/breadcrumb/breadcrumb.component.scss.ngstyle.js +0 -9
  615. package/esm2015/breadcrumb/breadcrumb.module.js +0 -15
  616. package/esm2015/breadcrumb/breadcrumb.module.ngfactory.js +0 -16
  617. package/esm2015/breadcrumb/breadcrumb.module.ngsummary.json +0 -1
  618. package/esm2015/breadcrumb/public-api.ngsummary.json +0 -1
  619. package/esm2015/button/button-group/button-group.component.js +0 -14
  620. package/esm2015/button/button-group/button-group.component.ngfactory.js +0 -17
  621. package/esm2015/button/button-group/button-group.component.ngsummary.json +0 -1
  622. package/esm2015/button/button-group/button-group.component.scss.ngstyle.js +0 -9
  623. package/esm2015/button/button.component.js +0 -124
  624. package/esm2015/button/button.component.ngfactory.js +0 -23
  625. package/esm2015/button/button.component.ngsummary.json +0 -1
  626. package/esm2015/button/button.component.scss.ngstyle.js +0 -9
  627. package/esm2015/button/button.module.js +0 -15
  628. package/esm2015/button/button.module.ngfactory.js +0 -16
  629. package/esm2015/button/button.module.ngsummary.json +0 -1
  630. package/esm2015/button/button.types.ngsummary.json +0 -1
  631. package/esm2015/button/public-api.ngsummary.json +0 -1
  632. package/esm2015/card/card.component.js +0 -20
  633. package/esm2015/card/card.component.ngfactory.js +0 -17
  634. package/esm2015/card/card.component.ngsummary.json +0 -1
  635. package/esm2015/card/card.component.scss.ngstyle.js +0 -9
  636. package/esm2015/card/card.module.js +0 -27
  637. package/esm2015/card/card.module.ngfactory.js +0 -12
  638. package/esm2015/card/card.module.ngsummary.json +0 -1
  639. package/esm2015/card/helper-directives.js +0 -33
  640. package/esm2015/card/helper-directives.ngsummary.json +0 -1
  641. package/esm2015/card/public-api.ngsummary.json +0 -1
  642. package/esm2015/card/section.component.js +0 -14
  643. package/esm2015/card/section.component.ngfactory.js +0 -17
  644. package/esm2015/card/section.component.ngsummary.json +0 -1
  645. package/esm2015/card/section.component.scss.ngstyle.js +0 -9
  646. package/esm2015/checkbox/checkbox-group/checkbox-group.component.js +0 -60
  647. package/esm2015/checkbox/checkbox-group/checkbox-group.component.ngfactory.js +0 -18
  648. package/esm2015/checkbox/checkbox-group/checkbox-group.component.ngsummary.json +0 -1
  649. package/esm2015/checkbox/checkbox-group/checkbox-group.component.scss.ngstyle.js +0 -9
  650. package/esm2015/checkbox/checkbox.component.js +0 -105
  651. package/esm2015/checkbox/checkbox.component.ngfactory.js +0 -30
  652. package/esm2015/checkbox/checkbox.component.ngsummary.json +0 -1
  653. package/esm2015/checkbox/checkbox.component.scss.ngstyle.js +0 -9
  654. package/esm2015/checkbox/checkbox.module.js +0 -15
  655. package/esm2015/checkbox/checkbox.module.ngfactory.js +0 -16
  656. package/esm2015/checkbox/checkbox.module.ngsummary.json +0 -1
  657. package/esm2015/checkbox/public-api.ngsummary.json +0 -1
  658. package/esm2015/color-picker/color-picker.component.js +0 -29
  659. package/esm2015/color-picker/color-picker.component.ngfactory.js +0 -22
  660. package/esm2015/color-picker/color-picker.component.ngsummary.json +0 -1
  661. package/esm2015/color-picker/color-picker.component.scss.ngstyle.js +0 -9
  662. package/esm2015/color-picker/color-picker.module.js +0 -14
  663. package/esm2015/color-picker/color-picker.module.ngfactory.js +0 -13
  664. package/esm2015/color-picker/color-picker.module.ngsummary.json +0 -1
  665. package/esm2015/color-picker/public-api.ngsummary.json +0 -1
  666. package/esm2015/date-picker/calendar/constant.ngsummary.json +0 -1
  667. package/esm2015/date-picker/calendar/date-picker-panel/component.js +0 -106
  668. package/esm2015/date-picker/calendar/date-picker-panel/component.ngfactory.js +0 -65
  669. package/esm2015/date-picker/calendar/date-picker-panel/component.ngsummary.json +0 -1
  670. package/esm2015/date-picker/calendar/date-picker-panel/style.scss.ngstyle.js +0 -9
  671. package/esm2015/date-picker/calendar/footer/component.js +0 -25
  672. package/esm2015/date-picker/calendar/footer/component.ngfactory.js +0 -32
  673. package/esm2015/date-picker/calendar/footer/component.ngsummary.json +0 -1
  674. package/esm2015/date-picker/calendar/footer/style.scss.ngstyle.js +0 -9
  675. package/esm2015/date-picker/calendar/header/component.js +0 -100
  676. package/esm2015/date-picker/calendar/header/component.ngfactory.js +0 -58
  677. package/esm2015/date-picker/calendar/header/component.ngsummary.json +0 -1
  678. package/esm2015/date-picker/calendar/header/style.scss.ngstyle.js +0 -9
  679. package/esm2015/date-picker/calendar/panel/picker-panel.js +0 -144
  680. package/esm2015/date-picker/calendar/panel/picker-panel.ngfactory.js +0 -34
  681. package/esm2015/date-picker/calendar/panel/picker-panel.ngsummary.json +0 -1
  682. package/esm2015/date-picker/calendar/panel/picker-panel.style.scss.ngstyle.js +0 -9
  683. package/esm2015/date-picker/calendar/range-picker-panel/component.js +0 -193
  684. package/esm2015/date-picker/calendar/range-picker-panel/component.ngfactory.js +0 -76
  685. package/esm2015/date-picker/calendar/range-picker-panel/component.ngsummary.json +0 -1
  686. package/esm2015/date-picker/calendar/range-picker-panel/style.scss.ngstyle.js +0 -9
  687. package/esm2015/date-picker/calendar/util.ngsummary.json +0 -1
  688. package/esm2015/date-picker/date-picker/date-picker.component.js +0 -84
  689. package/esm2015/date-picker/date-picker/date-picker.component.ngfactory.js +0 -49
  690. package/esm2015/date-picker/date-picker/date-picker.component.ngsummary.json +0 -1
  691. package/esm2015/date-picker/date-picker/date-picker.style.scss.shim.ngstyle.js +0 -9
  692. package/esm2015/date-picker/date-picker.module.js +0 -47
  693. package/esm2015/date-picker/date-picker.module.ngfactory.js +0 -31
  694. package/esm2015/date-picker/date-picker.module.ngsummary.json +0 -1
  695. package/esm2015/date-picker/date-picker.type.ngsummary.json +0 -1
  696. package/esm2015/date-picker/public-api.js +0 -11
  697. package/esm2015/date-picker/public-api.ngsummary.json +0 -1
  698. package/esm2015/date-picker/range-picker/range-picker.component.js +0 -66
  699. package/esm2015/date-picker/range-picker/range-picker.component.ngfactory.js +0 -49
  700. package/esm2015/date-picker/range-picker/range-picker.component.ngsummary.json +0 -1
  701. package/esm2015/date-picker/range-picker/range-picker.style.scss.shim.ngstyle.js +0 -9
  702. package/esm2015/date-picker/trigger/trigger.component.js +0 -61
  703. package/esm2015/date-picker/trigger/trigger.component.ngfactory.js +0 -66
  704. package/esm2015/date-picker/trigger/trigger.component.ngsummary.json +0 -1
  705. package/esm2015/date-picker/trigger/trigger.style.scss.shim.ngstyle.js +0 -9
  706. package/esm2015/dialog/confirm-dialog/confirm-dialog-config.ngsummary.json +0 -1
  707. package/esm2015/dialog/confirm-dialog/confirm-dialog.component.js +0 -95
  708. package/esm2015/dialog/confirm-dialog/confirm-dialog.component.ngfactory.js +0 -32
  709. package/esm2015/dialog/confirm-dialog/confirm-dialog.component.ngsummary.json +0 -1
  710. package/esm2015/dialog/confirm-dialog/confirm-dialog.component.scss.ngstyle.js +0 -9
  711. package/esm2015/dialog/dialog-config.ngsummary.json +0 -1
  712. package/esm2015/dialog/dialog-content/dialog-close.directive.js +0 -35
  713. package/esm2015/dialog/dialog-content/dialog-close.directive.ngsummary.json +0 -1
  714. package/esm2015/dialog/dialog-content/dialog-content.component.js +0 -27
  715. package/esm2015/dialog/dialog-content/dialog-content.component.ngfactory.js +0 -18
  716. package/esm2015/dialog/dialog-content/dialog-content.component.ngsummary.json +0 -1
  717. package/esm2015/dialog/dialog-content/dialog-footer.component.js +0 -17
  718. package/esm2015/dialog/dialog-content/dialog-footer.component.ngfactory.js +0 -16
  719. package/esm2015/dialog/dialog-content/dialog-footer.component.ngsummary.json +0 -1
  720. package/esm2015/dialog/dialog-content/dialog-header.component.js +0 -41
  721. package/esm2015/dialog/dialog-content/dialog-header.component.ngfactory.js +0 -26
  722. package/esm2015/dialog/dialog-content/dialog-header.component.ngsummary.json +0 -1
  723. package/esm2015/dialog/dialog-ref.ngsummary.json +0 -1
  724. package/esm2015/dialog/dialog.component.js +0 -64
  725. package/esm2015/dialog/dialog.component.ngfactory.js +0 -20
  726. package/esm2015/dialog/dialog.component.ngsummary.json +0 -1
  727. package/esm2015/dialog/dialog.component.scss.ngstyle.js +0 -9
  728. package/esm2015/dialog/dialog.module.js +0 -44
  729. package/esm2015/dialog/dialog.module.ngfactory.js +0 -25
  730. package/esm2015/dialog/dialog.module.ngsummary.json +0 -1
  731. package/esm2015/dialog/dialog.service.js +0 -132
  732. package/esm2015/dialog/dialog.service.ngsummary.json +0 -1
  733. package/esm2015/dialog/dialog.types.ngsummary.json +0 -1
  734. package/esm2015/dialog/public-api.js +0 -11
  735. package/esm2015/dialog/public-api.ngsummary.json +0 -1
  736. package/esm2015/dialog/utils/errors.ngsummary.json +0 -1
  737. package/esm2015/dialog/utils/index.js +0 -11
  738. package/esm2015/dialog/utils/index.ngsummary.json +0 -1
  739. package/esm2015/drawer/component/drawer-ref.ngsummary.json +0 -1
  740. package/esm2015/drawer/component/drawer.component.js +0 -210
  741. package/esm2015/drawer/component/drawer.component.ngfactory.js +0 -42
  742. package/esm2015/drawer/component/drawer.component.ngsummary.json +0 -1
  743. package/esm2015/drawer/component/drawer.component.scss.ngstyle.js +0 -9
  744. package/esm2015/drawer/component/helper-directives.js +0 -27
  745. package/esm2015/drawer/component/helper-directives.ngsummary.json +0 -1
  746. package/esm2015/drawer/drawer.module.js +0 -26
  747. package/esm2015/drawer/drawer.module.ngfactory.js +0 -23
  748. package/esm2015/drawer/drawer.module.ngsummary.json +0 -1
  749. package/esm2015/drawer/drawer.service.js +0 -46
  750. package/esm2015/drawer/drawer.service.ngsummary.json +0 -1
  751. package/esm2015/drawer/public-api.ngsummary.json +0 -1
  752. package/esm2015/dropdown/dropdown-active.directive.js +0 -13
  753. package/esm2015/dropdown/dropdown-active.directive.ngsummary.json +0 -1
  754. package/esm2015/dropdown/dropdown-button/dropdown-button.component.js +0 -46
  755. package/esm2015/dropdown/dropdown-button/dropdown-button.component.ngfactory.js +0 -29
  756. package/esm2015/dropdown/dropdown-button/dropdown-button.component.ngsummary.json +0 -1
  757. package/esm2015/dropdown/dropdown-button/dropdown-button.component.scss.ngstyle.js +0 -9
  758. package/esm2015/dropdown/dropdown.directive.js +0 -73
  759. package/esm2015/dropdown/dropdown.directive.ngsummary.json +0 -1
  760. package/esm2015/dropdown/dropdown.module.js +0 -44
  761. package/esm2015/dropdown/dropdown.module.ngfactory.js +0 -25
  762. package/esm2015/dropdown/dropdown.module.ngsummary.json +0 -1
  763. package/esm2015/dropdown/dropdown.types.ngsummary.json +0 -1
  764. package/esm2015/dropdown/helper-directives.js +0 -13
  765. package/esm2015/dropdown/helper-directives.ngsummary.json +0 -1
  766. package/esm2015/dropdown/menu/menu-content.directive.js +0 -54
  767. package/esm2015/dropdown/menu/menu-content.directive.ngsummary.json +0 -1
  768. package/esm2015/dropdown/menu/menu.component.js +0 -32
  769. package/esm2015/dropdown/menu/menu.component.ngfactory.js +0 -18
  770. package/esm2015/dropdown/menu/menu.component.ngsummary.json +0 -1
  771. package/esm2015/dropdown/menu/menu.component.scss.ngstyle.js +0 -9
  772. package/esm2015/dropdown/menu-group/menu-group.component.js +0 -14
  773. package/esm2015/dropdown/menu-group/menu-group.component.ngfactory.js +0 -17
  774. package/esm2015/dropdown/menu-group/menu-group.component.ngsummary.json +0 -1
  775. package/esm2015/dropdown/menu-group/menu-group.component.scss.ngstyle.js +0 -9
  776. package/esm2015/dropdown/menu-item/menu-item.component.js +0 -38
  777. package/esm2015/dropdown/menu-item/menu-item.component.ngfactory.js +0 -17
  778. package/esm2015/dropdown/menu-item/menu-item.component.ngsummary.json +0 -1
  779. package/esm2015/dropdown/menu-item/menu-item.component.scss.ngstyle.js +0 -9
  780. package/esm2015/dropdown/public-api.js +0 -11
  781. package/esm2015/dropdown/public-api.ngsummary.json +0 -1
  782. package/esm2015/dropdown/submenu/submenu.component.js +0 -37
  783. package/esm2015/dropdown/submenu/submenu.component.ngfactory.js +0 -29
  784. package/esm2015/dropdown/submenu/submenu.component.ngsummary.json +0 -1
  785. package/esm2015/dropdown/submenu/submenu.component.scss.ngstyle.js +0 -9
  786. package/esm2015/form/common-form.js +0 -89
  787. package/esm2015/form/common-form.ngsummary.json +0 -1
  788. package/esm2015/form/form-item/form-item.component.js +0 -93
  789. package/esm2015/form/form-item/form-item.component.ngfactory.js +0 -23
  790. package/esm2015/form/form-item/form-item.component.ngsummary.json +0 -1
  791. package/esm2015/form/form-item/form-item.component.scss.ngstyle.js +0 -9
  792. package/esm2015/form/form.directive.js +0 -58
  793. package/esm2015/form/form.directive.ngsummary.json +0 -1
  794. package/esm2015/form/form.module.js +0 -31
  795. package/esm2015/form/form.module.ngfactory.js +0 -12
  796. package/esm2015/form/form.module.ngsummary.json +0 -1
  797. package/esm2015/form/form.types.ngsummary.json +0 -1
  798. package/esm2015/form/helper-directives.js +0 -66
  799. package/esm2015/form/helper-directives.ngsummary.json +0 -1
  800. package/esm2015/form/public-api.ngsummary.json +0 -1
  801. package/esm2015/i18n/i18n.module.js +0 -11
  802. package/esm2015/i18n/i18n.module.ngfactory.js +0 -11
  803. package/esm2015/i18n/i18n.module.ngsummary.json +0 -1
  804. package/esm2015/i18n/i18n.pipe.js +0 -19
  805. package/esm2015/i18n/i18n.pipe.ngsummary.json +0 -1
  806. package/esm2015/i18n/i18n.service.js +0 -43
  807. package/esm2015/i18n/i18n.service.ngsummary.json +0 -1
  808. package/esm2015/i18n/i18n.type.js +0 -6
  809. package/esm2015/i18n/i18n.type.ngsummary.json +0 -1
  810. package/esm2015/i18n/language/en.ngsummary.json +0 -1
  811. package/esm2015/i18n/language/zh.ngsummary.json +0 -1
  812. package/esm2015/i18n/public-api.ngsummary.json +0 -1
  813. package/esm2015/icon/icon-register.service.js +0 -63
  814. package/esm2015/icon/icon-register.service.ngsummary.json +0 -1
  815. package/esm2015/icon/icon.component.js +0 -62
  816. package/esm2015/icon/icon.component.ngfactory.js +0 -25
  817. package/esm2015/icon/icon.component.ngsummary.json +0 -1
  818. package/esm2015/icon/icon.component.scss.ngstyle.js +0 -9
  819. package/esm2015/icon/icon.module.js +0 -16
  820. package/esm2015/icon/icon.module.ngfactory.js +0 -15
  821. package/esm2015/icon/icon.module.ngsummary.json +0 -1
  822. package/esm2015/icon/icons.ngsummary.json +0 -1
  823. package/esm2015/icon/public-api.ngsummary.json +0 -1
  824. package/esm2015/icon/utils.ngsummary.json +0 -1
  825. package/esm2015/inline-alert/helper-directives.js +0 -10
  826. package/esm2015/inline-alert/helper-directives.ngsummary.json +0 -1
  827. package/esm2015/inline-alert/inline-alert.component.js +0 -51
  828. package/esm2015/inline-alert/inline-alert.component.ngfactory.js +0 -29
  829. package/esm2015/inline-alert/inline-alert.component.ngsummary.json +0 -1
  830. package/esm2015/inline-alert/inline-alert.component.scss.ngstyle.js +0 -9
  831. package/esm2015/inline-alert/inline-alert.module.js +0 -15
  832. package/esm2015/inline-alert/inline-alert.module.ngfactory.js +0 -16
  833. package/esm2015/inline-alert/inline-alert.module.ngsummary.json +0 -1
  834. package/esm2015/inline-alert/inline-alert.types.ngsummary.json +0 -1
  835. package/esm2015/inline-alert/public-api.ngsummary.json +0 -1
  836. package/esm2015/input/autosize.directive.js +0 -61
  837. package/esm2015/input/autosize.directive.ngsummary.json +0 -1
  838. package/esm2015/input/helper-directives.js +0 -30
  839. package/esm2015/input/helper-directives.ngsummary.json +0 -1
  840. package/esm2015/input/input-group/input-group.component.js +0 -33
  841. package/esm2015/input/input-group/input-group.component.ngfactory.js +0 -22
  842. package/esm2015/input/input-group/input-group.component.ngsummary.json +0 -1
  843. package/esm2015/input/input-group/input-group.component.scss.ngstyle.js +0 -9
  844. package/esm2015/input/input.component.js +0 -69
  845. package/esm2015/input/input.component.ngfactory.js +0 -17
  846. package/esm2015/input/input.component.ngsummary.json +0 -1
  847. package/esm2015/input/input.component.scss.ngstyle.js +0 -9
  848. package/esm2015/input/input.module.js +0 -54
  849. package/esm2015/input/input.module.ngfactory.js +0 -20
  850. package/esm2015/input/input.module.ngsummary.json +0 -1
  851. package/esm2015/input/number-input/number-input.component.js +0 -83
  852. package/esm2015/input/number-input/number-input.component.ngfactory.js +0 -51
  853. package/esm2015/input/number-input/number-input.component.ngsummary.json +0 -1
  854. package/esm2015/input/number-input/number-input.component.scss.ngstyle.js +0 -9
  855. package/esm2015/input/public-api.js +0 -7
  856. package/esm2015/input/public-api.ngsummary.json +0 -1
  857. package/esm2015/input/search/search.component.js +0 -72
  858. package/esm2015/input/search/search.component.ngfactory.js +0 -51
  859. package/esm2015/input/search/search.component.ngsummary.json +0 -1
  860. package/esm2015/input/search/search.component.scss.ngstyle.js +0 -9
  861. package/esm2015/input/tags-input/tags-input.component.js +0 -252
  862. package/esm2015/input/tags-input/tags-input.component.ngfactory.js +0 -45
  863. package/esm2015/input/tags-input/tags-input.component.ngsummary.json +0 -1
  864. package/esm2015/input/tags-input/tags-input.component.scss.ngstyle.js +0 -9
  865. package/esm2015/input/tags-input/with-max-row-count.ngsummary.json +0 -1
  866. package/esm2015/input/utils/index.ngsummary.json +0 -1
  867. package/esm2015/message/base-message.js +0 -87
  868. package/esm2015/message/base-message.ngsummary.json +0 -1
  869. package/esm2015/message/message-animations.ngsummary.json +0 -1
  870. package/esm2015/message/message-wrapper.component.js +0 -20
  871. package/esm2015/message/message-wrapper.component.ngfactory.js +0 -17
  872. package/esm2015/message/message-wrapper.component.ngsummary.json +0 -1
  873. package/esm2015/message/message-wrapper.component.scss.ngstyle.js +0 -9
  874. package/esm2015/message/message.component.js +0 -77
  875. package/esm2015/message/message.component.ngfactory.js +0 -23
  876. package/esm2015/message/message.component.ngsummary.json +0 -1
  877. package/esm2015/message/message.component.scss.ngstyle.js +0 -9
  878. package/esm2015/message/message.config.ngsummary.json +0 -1
  879. package/esm2015/message/message.module.js +0 -18
  880. package/esm2015/message/message.module.ngfactory.js +0 -25
  881. package/esm2015/message/message.module.ngsummary.json +0 -1
  882. package/esm2015/message/message.service.js +0 -22
  883. package/esm2015/message/message.service.ngsummary.json +0 -1
  884. package/esm2015/message/public-api.ngsummary.json +0 -1
  885. package/esm2015/notification/notification-wrapper.component.js +0 -22
  886. package/esm2015/notification/notification-wrapper.component.ngfactory.js +0 -17
  887. package/esm2015/notification/notification-wrapper.component.ngsummary.json +0 -1
  888. package/esm2015/notification/notification-wrapper.component.scss.ngstyle.js +0 -9
  889. package/esm2015/notification/notification.component.js +0 -106
  890. package/esm2015/notification/notification.component.ngfactory.js +0 -42
  891. package/esm2015/notification/notification.component.ngsummary.json +0 -1
  892. package/esm2015/notification/notification.component.scss.ngstyle.js +0 -9
  893. package/esm2015/notification/notification.config.ngsummary.json +0 -1
  894. package/esm2015/notification/notification.module.js +0 -19
  895. package/esm2015/notification/notification.module.ngfactory.js +0 -25
  896. package/esm2015/notification/notification.module.ngsummary.json +0 -1
  897. package/esm2015/notification/notification.service.js +0 -22
  898. package/esm2015/notification/notification.service.ngsummary.json +0 -1
  899. package/esm2015/notification/public-api.ngsummary.json +0 -1
  900. package/esm2015/paginator/paginator-intl.js +0 -33
  901. package/esm2015/paginator/paginator-intl.ngsummary.json +0 -1
  902. package/esm2015/paginator/paginator.component.js +0 -118
  903. package/esm2015/paginator/paginator.component.ngfactory.js +0 -73
  904. package/esm2015/paginator/paginator.component.ngsummary.json +0 -1
  905. package/esm2015/paginator/paginator.component.scss.ngstyle.js +0 -9
  906. package/esm2015/paginator/paginator.module.js +0 -19
  907. package/esm2015/paginator/paginator.module.ngfactory.js +0 -32
  908. package/esm2015/paginator/paginator.module.ngsummary.json +0 -1
  909. package/esm2015/paginator/public-api.ngsummary.json +0 -1
  910. package/esm2015/public-api.ngsummary.json +0 -1
  911. package/esm2015/radio/base-radio.js +0 -69
  912. package/esm2015/radio/base-radio.ngsummary.json +0 -1
  913. package/esm2015/radio/public-api.ngsummary.json +0 -1
  914. package/esm2015/radio/radio-button/radio-button.component.js +0 -48
  915. package/esm2015/radio/radio-button/radio-button.component.ngfactory.js +0 -30
  916. package/esm2015/radio/radio-button/radio-button.component.ngsummary.json +0 -1
  917. package/esm2015/radio/radio-button/radio-button.component.scss.ngstyle.js +0 -9
  918. package/esm2015/radio/radio-group/radio-group.component.js +0 -75
  919. package/esm2015/radio/radio-group/radio-group.component.ngfactory.js +0 -18
  920. package/esm2015/radio/radio-group/radio-group.component.ngsummary.json +0 -1
  921. package/esm2015/radio/radio-group/radio-group.component.scss.ngstyle.js +0 -9
  922. package/esm2015/radio/radio.component.js +0 -31
  923. package/esm2015/radio/radio.component.ngfactory.js +0 -26
  924. package/esm2015/radio/radio.component.ngsummary.json +0 -1
  925. package/esm2015/radio/radio.component.scss.ngstyle.js +0 -9
  926. package/esm2015/radio/radio.module.js +0 -16
  927. package/esm2015/radio/radio.module.ngfactory.js +0 -16
  928. package/esm2015/radio/radio.module.ngsummary.json +0 -1
  929. package/esm2015/radio/radio.types.ngsummary.json +0 -1
  930. package/esm2015/scrolling/fixed-size-table-virtual-scroll-strategy.js +0 -81
  931. package/esm2015/scrolling/fixed-size-table-virtual-scroll-strategy.ngsummary.json +0 -1
  932. package/esm2015/scrolling/fixed-size-table-virtual-scroll.directive.js +0 -108
  933. package/esm2015/scrolling/fixed-size-table-virtual-scroll.directive.ngsummary.json +0 -1
  934. package/esm2015/scrolling/fixed-size-virtual-scroll.directive.js +0 -20
  935. package/esm2015/scrolling/fixed-size-virtual-scroll.directive.ngsummary.json +0 -1
  936. package/esm2015/scrolling/public-api.js +0 -6
  937. package/esm2015/scrolling/public-api.ngsummary.json +0 -1
  938. package/esm2015/scrolling/scrolling.module.js +0 -21
  939. package/esm2015/scrolling/scrolling.module.ngfactory.js +0 -11
  940. package/esm2015/scrolling/scrolling.module.ngsummary.json +0 -1
  941. package/esm2015/scrolling/virtual-for-of.directive.js +0 -30
  942. package/esm2015/scrolling/virtual-for-of.directive.ngsummary.json +0 -1
  943. package/esm2015/scrolling/virtual-scroll-viewport.component.js +0 -26
  944. package/esm2015/scrolling/virtual-scroll-viewport.component.ngfactory.js +0 -19
  945. package/esm2015/scrolling/virtual-scroll-viewport.component.ngsummary.json +0 -1
  946. package/esm2015/scrolling/virtual-scroll-viewport.component.scss.ngstyle.js +0 -9
  947. package/esm2015/select/base-select.js +0 -311
  948. package/esm2015/select/base-select.ngsummary.json +0 -1
  949. package/esm2015/select/helper-directives.js +0 -22
  950. package/esm2015/select/helper-directives.ngsummary.json +0 -1
  951. package/esm2015/select/multi-select/multi-select.component.js +0 -276
  952. package/esm2015/select/multi-select/multi-select.component.ngfactory.js +0 -76
  953. package/esm2015/select/multi-select/multi-select.component.ngsummary.json +0 -1
  954. package/esm2015/select/multi-select/multi-select.component.scss.ngstyle.js +0 -9
  955. package/esm2015/select/option/option.component.js +0 -107
  956. package/esm2015/select/option/option.component.ngfactory.js +0 -26
  957. package/esm2015/select/option/option.component.ngsummary.json +0 -1
  958. package/esm2015/select/option/option.component.scss.ngstyle.js +0 -9
  959. package/esm2015/select/option-group/option-group.component.js +0 -25
  960. package/esm2015/select/option-group/option-group.component.ngfactory.js +0 -18
  961. package/esm2015/select/option-group/option-group.component.ngsummary.json +0 -1
  962. package/esm2015/select/option-group/option-group.component.scss.ngstyle.js +0 -9
  963. package/esm2015/select/option-placeholder.component.js +0 -13
  964. package/esm2015/select/option-placeholder.component.ngfactory.js +0 -16
  965. package/esm2015/select/option-placeholder.component.ngsummary.json +0 -1
  966. package/esm2015/select/public-api.ngsummary.json +0 -1
  967. package/esm2015/select/select.component.js +0 -95
  968. package/esm2015/select/select.component.ngfactory.js +0 -63
  969. package/esm2015/select/select.component.ngsummary.json +0 -1
  970. package/esm2015/select/select.component.scss.ngstyle.js +0 -9
  971. package/esm2015/select/select.module.js +0 -49
  972. package/esm2015/select/select.module.ngfactory.js +0 -30
  973. package/esm2015/select/select.module.ngsummary.json +0 -1
  974. package/esm2015/select/select.types.ngsummary.json +0 -1
  975. package/esm2015/select/validators.js +0 -72
  976. package/esm2015/select/validators.ngsummary.json +0 -1
  977. package/esm2015/shared/click-outside.directive.js +0 -26
  978. package/esm2015/shared/click-outside.directive.ngsummary.json +0 -1
  979. package/esm2015/shared/shared.module.js +0 -11
  980. package/esm2015/shared/shared.module.ngfactory.js +0 -11
  981. package/esm2015/shared/shared.module.ngsummary.json +0 -1
  982. package/esm2015/sort/public-api.ngsummary.json +0 -1
  983. package/esm2015/sort/sort-errors.ngsummary.json +0 -1
  984. package/esm2015/sort/sort-header.component.js +0 -76
  985. package/esm2015/sort/sort-header.component.ngfactory.js +0 -22
  986. package/esm2015/sort/sort-header.component.ngsummary.json +0 -1
  987. package/esm2015/sort/sort-header.component.scss.ngstyle.js +0 -9
  988. package/esm2015/sort/sort.directive.js +0 -69
  989. package/esm2015/sort/sort.directive.ngsummary.json +0 -1
  990. package/esm2015/sort/sort.module.js +0 -14
  991. package/esm2015/sort/sort.module.ngfactory.js +0 -12
  992. package/esm2015/sort/sort.module.ngsummary.json +0 -1
  993. package/esm2015/sort/sort.types.ngsummary.json +0 -1
  994. package/esm2015/status-bar/public-api.ngsummary.json +0 -1
  995. package/esm2015/status-bar/status-bar.component.js +0 -28
  996. package/esm2015/status-bar/status-bar.component.ngfactory.js +0 -26
  997. package/esm2015/status-bar/status-bar.component.ngsummary.json +0 -1
  998. package/esm2015/status-bar/status-bar.component.scss.ngstyle.js +0 -9
  999. package/esm2015/status-bar/status-bar.module.js +0 -14
  1000. package/esm2015/status-bar/status-bar.module.ngfactory.js +0 -20
  1001. package/esm2015/status-bar/status-bar.module.ngsummary.json +0 -1
  1002. package/esm2015/status-bar/status-bar.types.ngsummary.json +0 -1
  1003. package/esm2015/steps/public-api.ngsummary.json +0 -1
  1004. package/esm2015/steps/steps.component.js +0 -179
  1005. package/esm2015/steps/steps.component.ngfactory.js +0 -34
  1006. package/esm2015/steps/steps.component.ngsummary.json +0 -1
  1007. package/esm2015/steps/steps.component.scss.ngstyle.js +0 -9
  1008. package/esm2015/steps/steps.module.js +0 -14
  1009. package/esm2015/steps/steps.module.ngfactory.js +0 -16
  1010. package/esm2015/steps/steps.module.ngsummary.json +0 -1
  1011. package/esm2015/steps/types.ngsummary.json +0 -1
  1012. package/esm2015/switch/public-api.ngsummary.json +0 -1
  1013. package/esm2015/switch/switch.component.js +0 -47
  1014. package/esm2015/switch/switch.component.ngfactory.js +0 -25
  1015. package/esm2015/switch/switch.component.ngsummary.json +0 -1
  1016. package/esm2015/switch/switch.component.scss.ngstyle.js +0 -9
  1017. package/esm2015/switch/switch.module.js +0 -13
  1018. package/esm2015/switch/switch.module.ngfactory.js +0 -12
  1019. package/esm2015/switch/switch.module.ngsummary.json +0 -1
  1020. package/esm2015/table/public-api.js +0 -13
  1021. package/esm2015/table/public-api.ngsummary.json +0 -1
  1022. package/esm2015/table/table-cell-def.directive.js +0 -20
  1023. package/esm2015/table/table-cell-def.directive.ngsummary.json +0 -1
  1024. package/esm2015/table/table-cell.component.js +0 -82
  1025. package/esm2015/table/table-cell.component.ngfactory.js +0 -32
  1026. package/esm2015/table/table-cell.component.ngsummary.json +0 -1
  1027. package/esm2015/table/table-cell.directive.js +0 -26
  1028. package/esm2015/table/table-cell.directive.ngsummary.json +0 -1
  1029. package/esm2015/table/table-column-def.directive.js +0 -29
  1030. package/esm2015/table/table-column-def.directive.ngsummary.json +0 -1
  1031. package/esm2015/table/table-header-cell-def.directive.js +0 -20
  1032. package/esm2015/table/table-header-cell-def.directive.ngsummary.json +0 -1
  1033. package/esm2015/table/table-header-cell.directive.js +0 -26
  1034. package/esm2015/table/table-header-cell.directive.ngsummary.json +0 -1
  1035. package/esm2015/table/table-header-row-def.directive.js +0 -24
  1036. package/esm2015/table/table-header-row-def.directive.ngsummary.json +0 -1
  1037. package/esm2015/table/table-header-row.component.js +0 -20
  1038. package/esm2015/table/table-header-row.component.ngfactory.js +0 -17
  1039. package/esm2015/table/table-header-row.component.ngsummary.json +0 -1
  1040. package/esm2015/table/table-placeholder.directive.js +0 -30
  1041. package/esm2015/table/table-placeholder.directive.ngsummary.json +0 -1
  1042. package/esm2015/table/table-row-def.directive.js +0 -25
  1043. package/esm2015/table/table-row-def.directive.ngsummary.json +0 -1
  1044. package/esm2015/table/table-row.component.js +0 -37
  1045. package/esm2015/table/table-row.component.ngfactory.js +0 -17
  1046. package/esm2015/table/table-row.component.ngsummary.json +0 -1
  1047. package/esm2015/table/table-scroll.directive.js +0 -84
  1048. package/esm2015/table/table-scroll.directive.ngsummary.json +0 -1
  1049. package/esm2015/table/table-scroll.scss.ngstyle.js +0 -9
  1050. package/esm2015/table/table.component.js +0 -69
  1051. package/esm2015/table/table.component.ngfactory.js +0 -25
  1052. package/esm2015/table/table.component.ngsummary.json +0 -1
  1053. package/esm2015/table/table.component.scss.ngstyle.js +0 -9
  1054. package/esm2015/table/table.module.js +0 -61
  1055. package/esm2015/table/table.module.ngfactory.js +0 -20
  1056. package/esm2015/table/table.module.ngsummary.json +0 -1
  1057. package/esm2015/table-of-contents/public-api.ngsummary.json +0 -1
  1058. package/esm2015/table-of-contents/table-of-contents.module.js +0 -15
  1059. package/esm2015/table-of-contents/table-of-contents.module.ngfactory.js +0 -12
  1060. package/esm2015/table-of-contents/table-of-contents.module.ngsummary.json +0 -1
  1061. package/esm2015/table-of-contents/toc-container.directive.js +0 -109
  1062. package/esm2015/table-of-contents/toc-container.directive.ngsummary.json +0 -1
  1063. package/esm2015/table-of-contents/toc-content.directive.js +0 -32
  1064. package/esm2015/table-of-contents/toc-content.directive.ngsummary.json +0 -1
  1065. package/esm2015/table-of-contents/toc-link.directive.js +0 -43
  1066. package/esm2015/table-of-contents/toc-link.directive.ngsummary.json +0 -1
  1067. package/esm2015/tabs/public-api.js +0 -10
  1068. package/esm2015/tabs/public-api.ngsummary.json +0 -1
  1069. package/esm2015/tabs/tab-body.component.js +0 -35
  1070. package/esm2015/tabs/tab-body.component.ngfactory.js +0 -18
  1071. package/esm2015/tabs/tab-body.component.ngsummary.json +0 -1
  1072. package/esm2015/tabs/tab-context.service.js +0 -28
  1073. package/esm2015/tabs/tab-context.service.ngsummary.json +0 -1
  1074. package/esm2015/tabs/tab-directives.js +0 -142
  1075. package/esm2015/tabs/tab-directives.ngsummary.json +0 -1
  1076. package/esm2015/tabs/tab-group.component.js +0 -277
  1077. package/esm2015/tabs/tab-group.component.ngfactory.js +0 -56
  1078. package/esm2015/tabs/tab-group.component.ngsummary.json +0 -1
  1079. package/esm2015/tabs/tab-group.component.scss.ngstyle.js +0 -9
  1080. package/esm2015/tabs/tab-header-active-indicator.component.js +0 -59
  1081. package/esm2015/tabs/tab-header-active-indicator.component.ngfactory.js +0 -17
  1082. package/esm2015/tabs/tab-header-active-indicator.component.ngsummary.json +0 -1
  1083. package/esm2015/tabs/tab-header.component.js +0 -348
  1084. package/esm2015/tabs/tab-header.component.ngfactory.js +0 -44
  1085. package/esm2015/tabs/tab-header.component.ngsummary.json +0 -1
  1086. package/esm2015/tabs/tab-header.component.scss.ngstyle.js +0 -9
  1087. package/esm2015/tabs/tab.component.js +0 -82
  1088. package/esm2015/tabs/tab.component.ngfactory.js +0 -18
  1089. package/esm2015/tabs/tab.component.ngsummary.json +0 -1
  1090. package/esm2015/tabs/tabs.module.js +0 -53
  1091. package/esm2015/tabs/tabs.module.ngfactory.js +0 -22
  1092. package/esm2015/tabs/tabs.module.ngsummary.json +0 -1
  1093. package/esm2015/tabs/tabs.types.ngsummary.json +0 -1
  1094. package/esm2015/tag/check-tag/check-tag.component.js +0 -34
  1095. package/esm2015/tag/check-tag/check-tag.component.ngfactory.js +0 -27
  1096. package/esm2015/tag/check-tag/check-tag.component.ngsummary.json +0 -1
  1097. package/esm2015/tag/check-tag/check-tag.component.scss.ngstyle.js +0 -9
  1098. package/esm2015/tag/public-api.ngsummary.json +0 -1
  1099. package/esm2015/tag/tag.component.js +0 -57
  1100. package/esm2015/tag/tag.component.ngfactory.js +0 -26
  1101. package/esm2015/tag/tag.component.ngsummary.json +0 -1
  1102. package/esm2015/tag/tag.component.scss.ngstyle.js +0 -9
  1103. package/esm2015/tag/tag.module.js +0 -15
  1104. package/esm2015/tag/tag.module.ngfactory.js +0 -16
  1105. package/esm2015/tag/tag.module.ngsummary.json +0 -1
  1106. package/esm2015/tag/tag.types.ngsummary.json +0 -1
  1107. package/esm2015/theme/public-api.ngsummary.json +0 -1
  1108. package/esm2015/theme/theme.module.js +0 -13
  1109. package/esm2015/theme/theme.module.ngfactory.js +0 -12
  1110. package/esm2015/theme/theme.module.ngsummary.json +0 -1
  1111. package/esm2015/theme/theme.pipe.js +0 -61
  1112. package/esm2015/theme/theme.pipe.ngsummary.json +0 -1
  1113. package/esm2015/theme/theme.service.js +0 -52
  1114. package/esm2015/theme/theme.service.ngsummary.json +0 -1
  1115. package/esm2015/theme/theme.types.ngsummary.json +0 -1
  1116. package/esm2015/theme/utils.ngsummary.json +0 -1
  1117. package/esm2015/time-picker/component.js +0 -149
  1118. package/esm2015/time-picker/component.ngfactory.js +0 -82
  1119. package/esm2015/time-picker/component.ngsummary.json +0 -1
  1120. package/esm2015/time-picker/constant.js +0 -9
  1121. package/esm2015/time-picker/constant.ngsummary.json +0 -1
  1122. package/esm2015/time-picker/panel/panel.component.js +0 -211
  1123. package/esm2015/time-picker/panel/panel.component.ngfactory.js +0 -49
  1124. package/esm2015/time-picker/panel/panel.component.ngsummary.json +0 -1
  1125. package/esm2015/time-picker/panel/panel.style.scss.ngstyle.js +0 -9
  1126. package/esm2015/time-picker/public-api.ngsummary.json +0 -1
  1127. package/esm2015/time-picker/style.scss.ngstyle.js +0 -9
  1128. package/esm2015/time-picker/time-picker.module.js +0 -33
  1129. package/esm2015/time-picker/time-picker.module.ngfactory.js +0 -30
  1130. package/esm2015/time-picker/time-picker.module.ngsummary.json +0 -1
  1131. package/esm2015/time-picker/time-picker.type.js +0 -13
  1132. package/esm2015/time-picker/time-picker.type.ngsummary.json +0 -1
  1133. package/esm2015/tooltip/base-tooltip.js +0 -255
  1134. package/esm2015/tooltip/base-tooltip.ngsummary.json +0 -1
  1135. package/esm2015/tooltip/public-api.js +0 -8
  1136. package/esm2015/tooltip/public-api.ngsummary.json +0 -1
  1137. package/esm2015/tooltip/tooltip-active.directive.js +0 -44
  1138. package/esm2015/tooltip/tooltip-active.directive.ngsummary.json +0 -1
  1139. package/esm2015/tooltip/tooltip-copy.directive.js +0 -80
  1140. package/esm2015/tooltip/tooltip-copy.directive.ngsummary.json +0 -1
  1141. package/esm2015/tooltip/tooltip-intl.js +0 -25
  1142. package/esm2015/tooltip/tooltip-intl.ngsummary.json +0 -1
  1143. package/esm2015/tooltip/tooltip.component.js +0 -55
  1144. package/esm2015/tooltip/tooltip.component.ngfactory.js +0 -25
  1145. package/esm2015/tooltip/tooltip.component.ngsummary.json +0 -1
  1146. package/esm2015/tooltip/tooltip.component.scss.ngstyle.js +0 -9
  1147. package/esm2015/tooltip/tooltip.directive.js +0 -45
  1148. package/esm2015/tooltip/tooltip.directive.ngsummary.json +0 -1
  1149. package/esm2015/tooltip/tooltip.module.js +0 -25
  1150. package/esm2015/tooltip/tooltip.module.ngfactory.js +0 -19
  1151. package/esm2015/tooltip/tooltip.module.ngsummary.json +0 -1
  1152. package/esm2015/tooltip/tooltip.types.ngsummary.json +0 -1
  1153. package/esm2015/tooltip/utils/index.ngsummary.json +0 -1
  1154. package/esm2015/tree-select/public-api.js +0 -6
  1155. package/esm2015/tree-select/public-api.ngsummary.json +0 -1
  1156. package/esm2015/tree-select/tree-node/tree-node.component.js +0 -127
  1157. package/esm2015/tree-select/tree-node/tree-node.component.ngfactory.js +0 -32
  1158. package/esm2015/tree-select/tree-node/tree-node.component.ngsummary.json +0 -1
  1159. package/esm2015/tree-select/tree-node/tree-node.component.scss.ngstyle.js +0 -9
  1160. package/esm2015/tree-select/tree-node-placeholder.component.js +0 -13
  1161. package/esm2015/tree-select/tree-node-placeholder.component.ngfactory.js +0 -16
  1162. package/esm2015/tree-select/tree-node-placeholder.component.ngsummary.json +0 -1
  1163. package/esm2015/tree-select/tree-select.component.js +0 -204
  1164. package/esm2015/tree-select/tree-select.component.ngfactory.js +0 -56
  1165. package/esm2015/tree-select/tree-select.component.ngsummary.json +0 -1
  1166. package/esm2015/tree-select/tree-select.component.scss.ngstyle.js +0 -9
  1167. package/esm2015/tree-select/tree-select.module.js +0 -26
  1168. package/esm2015/tree-select/tree-select.module.ngfactory.js +0 -29
  1169. package/esm2015/tree-select/tree-select.module.ngsummary.json +0 -1
  1170. package/esm2015/tree-select/tree-select.types.ngsummary.json +0 -1
  1171. package/esm2015/types.ngsummary.json +0 -1
  1172. package/esm2015/utils/async.ngsummary.json +0 -1
  1173. package/esm2015/utils/bem.ngsummary.json +0 -1
  1174. package/esm2015/utils/coercion.js +0 -16
  1175. package/esm2015/utils/coercion.ngsummary.json +0 -1
  1176. package/esm2015/utils/fn.js +0 -8
  1177. package/esm2015/utils/fn.ngsummary.json +0 -1
  1178. package/esm2015/utils/index.ngsummary.json +0 -1
  1179. package/esm2015/utils/observe-dom.ngsummary.json +0 -1
  1180. package/esm2015/utils/scroll-into-view.ngsummary.json +0 -1
  1181. package/esm2015/utils/watch-content-exist.ngsummary.json +0 -1
  1182. package/fesm2015/alauda-ui.js +0 -10768
  1183. package/fesm2015/alauda-ui.js.map +0 -1
  1184. package/form/form-item/form-item.component.ngfactory.d.ts +0 -1
  1185. package/form/form-item/form-item.component.scss.ngstyle.d.ts +0 -1
  1186. package/form/form.module.ngfactory.d.ts +0 -3
  1187. package/i18n/i18n.module.ngfactory.d.ts +0 -3
  1188. package/icon/icon.component.ngfactory.d.ts +0 -1
  1189. package/icon/icon.component.scss.ngstyle.d.ts +0 -1
  1190. package/icon/icon.module.ngfactory.d.ts +0 -3
  1191. package/inline-alert/inline-alert.component.ngfactory.d.ts +0 -1
  1192. package/inline-alert/inline-alert.component.scss.ngstyle.d.ts +0 -1
  1193. package/inline-alert/inline-alert.module.ngfactory.d.ts +0 -3
  1194. package/input/input-group/input-group.component.ngfactory.d.ts +0 -1
  1195. package/input/input-group/input-group.component.scss.ngstyle.d.ts +0 -1
  1196. package/input/input.component.ngfactory.d.ts +0 -1
  1197. package/input/input.component.scss.ngstyle.d.ts +0 -1
  1198. package/input/input.module.ngfactory.d.ts +0 -3
  1199. package/input/number-input/number-input.component.ngfactory.d.ts +0 -1
  1200. package/input/number-input/number-input.component.scss.ngstyle.d.ts +0 -1
  1201. package/input/search/search.component.ngfactory.d.ts +0 -1
  1202. package/input/search/search.component.scss.ngstyle.d.ts +0 -1
  1203. package/input/tags-input/tags-input.component.ngfactory.d.ts +0 -1
  1204. package/input/tags-input/tags-input.component.scss.ngstyle.d.ts +0 -1
  1205. package/message/message-wrapper.component.ngfactory.d.ts +0 -1
  1206. package/message/message-wrapper.component.scss.ngstyle.d.ts +0 -1
  1207. package/message/message.component.ngfactory.d.ts +0 -1
  1208. package/message/message.component.scss.ngstyle.d.ts +0 -1
  1209. package/message/message.module.ngfactory.d.ts +0 -3
  1210. package/notification/notification-wrapper.component.ngfactory.d.ts +0 -1
  1211. package/notification/notification-wrapper.component.scss.ngstyle.d.ts +0 -1
  1212. package/notification/notification.component.ngfactory.d.ts +0 -1
  1213. package/notification/notification.component.scss.ngstyle.d.ts +0 -1
  1214. package/notification/notification.module.ngfactory.d.ts +0 -3
  1215. package/paginator/paginator.component.ngfactory.d.ts +0 -1
  1216. package/paginator/paginator.component.scss.ngstyle.d.ts +0 -1
  1217. package/paginator/paginator.module.ngfactory.d.ts +0 -3
  1218. package/radio/radio-button/radio-button.component.ngfactory.d.ts +0 -1
  1219. package/radio/radio-button/radio-button.component.scss.ngstyle.d.ts +0 -1
  1220. package/radio/radio-group/radio-group.component.ngfactory.d.ts +0 -1
  1221. package/radio/radio-group/radio-group.component.scss.ngstyle.d.ts +0 -1
  1222. package/radio/radio.component.ngfactory.d.ts +0 -1
  1223. package/radio/radio.component.scss.ngstyle.d.ts +0 -1
  1224. package/radio/radio.module.ngfactory.d.ts +0 -3
  1225. package/scrolling/scrolling.module.ngfactory.d.ts +0 -3
  1226. package/scrolling/virtual-scroll-viewport.component.ngfactory.d.ts +0 -1
  1227. package/scrolling/virtual-scroll-viewport.component.scss.ngstyle.d.ts +0 -1
  1228. package/select/multi-select/multi-select.component.ngfactory.d.ts +0 -1
  1229. package/select/multi-select/multi-select.component.scss.ngstyle.d.ts +0 -1
  1230. package/select/option/option.component.ngfactory.d.ts +0 -1
  1231. package/select/option/option.component.scss.ngstyle.d.ts +0 -1
  1232. package/select/option-group/option-group.component.ngfactory.d.ts +0 -1
  1233. package/select/option-group/option-group.component.scss.ngstyle.d.ts +0 -1
  1234. package/select/option-placeholder.component.ngfactory.d.ts +0 -1
  1235. package/select/select.component.ngfactory.d.ts +0 -1
  1236. package/select/select.component.scss.ngstyle.d.ts +0 -1
  1237. package/select/select.module.ngfactory.d.ts +0 -3
  1238. package/shared/shared.module.ngfactory.d.ts +0 -3
  1239. package/sort/sort-header.component.ngfactory.d.ts +0 -1
  1240. package/sort/sort-header.component.scss.ngstyle.d.ts +0 -1
  1241. package/sort/sort.module.ngfactory.d.ts +0 -3
  1242. package/status-bar/status-bar.component.ngfactory.d.ts +0 -1
  1243. package/status-bar/status-bar.component.scss.ngstyle.d.ts +0 -1
  1244. package/status-bar/status-bar.module.ngfactory.d.ts +0 -3
  1245. package/steps/steps.component.ngfactory.d.ts +0 -1
  1246. package/steps/steps.component.scss.ngstyle.d.ts +0 -1
  1247. package/steps/steps.module.ngfactory.d.ts +0 -3
  1248. package/switch/switch.component.ngfactory.d.ts +0 -1
  1249. package/switch/switch.component.scss.ngstyle.d.ts +0 -1
  1250. package/switch/switch.module.ngfactory.d.ts +0 -3
  1251. package/table/table-cell.component.ngfactory.d.ts +0 -1
  1252. package/table/table-header-row.component.ngfactory.d.ts +0 -1
  1253. package/table/table-row.component.ngfactory.d.ts +0 -1
  1254. package/table/table-scroll.scss.ngstyle.d.ts +0 -1
  1255. package/table/table.component.ngfactory.d.ts +0 -1
  1256. package/table/table.component.scss.ngstyle.d.ts +0 -1
  1257. package/table/table.module.ngfactory.d.ts +0 -3
  1258. package/table-of-contents/table-of-contents.module.ngfactory.d.ts +0 -3
  1259. package/tabs/tab-body.component.ngfactory.d.ts +0 -1
  1260. package/tabs/tab-directives.d.ts +0 -47
  1261. package/tabs/tab-group.component.ngfactory.d.ts +0 -1
  1262. package/tabs/tab-group.component.scss.ngstyle.d.ts +0 -1
  1263. package/tabs/tab-header-active-indicator.component.ngfactory.d.ts +0 -1
  1264. package/tabs/tab-header.component.ngfactory.d.ts +0 -1
  1265. package/tabs/tab-header.component.scss.ngstyle.d.ts +0 -1
  1266. package/tabs/tab.component.ngfactory.d.ts +0 -1
  1267. package/tabs/tabs.module.ngfactory.d.ts +0 -3
  1268. package/tag/check-tag/check-tag.component.ngfactory.d.ts +0 -1
  1269. package/tag/check-tag/check-tag.component.scss.ngstyle.d.ts +0 -1
  1270. package/tag/tag.component.ngfactory.d.ts +0 -1
  1271. package/tag/tag.component.scss.ngstyle.d.ts +0 -1
  1272. package/tag/tag.module.ngfactory.d.ts +0 -3
  1273. package/theme/theme.module.ngfactory.d.ts +0 -3
  1274. package/time-picker/component.ngfactory.d.ts +0 -1
  1275. package/time-picker/panel/panel.component.ngfactory.d.ts +0 -1
  1276. package/time-picker/panel/panel.style.scss.ngstyle.d.ts +0 -1
  1277. package/time-picker/style.scss.ngstyle.d.ts +0 -1
  1278. package/time-picker/time-picker.module.ngfactory.d.ts +0 -3
  1279. package/tooltip/tooltip.component.ngfactory.d.ts +0 -1
  1280. package/tooltip/tooltip.component.scss.ngstyle.d.ts +0 -1
  1281. package/tooltip/tooltip.module.ngfactory.d.ts +0 -3
  1282. package/tree-select/tree-node/tree-node.component.d.ts +0 -34
  1283. package/tree-select/tree-node/tree-node.component.ngfactory.d.ts +0 -1
  1284. package/tree-select/tree-node/tree-node.component.scss.ngstyle.d.ts +0 -1
  1285. package/tree-select/tree-node-placeholder.component.ngfactory.d.ts +0 -1
  1286. package/tree-select/tree-select.component.ngfactory.d.ts +0 -1
  1287. package/tree-select/tree-select.component.scss.ngstyle.d.ts +0 -1
  1288. package/tree-select/tree-select.module.ngfactory.d.ts +0 -3
  1289. package/tsconfig.lib.tsbuildinfo +0 -3
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/types.ts","../../src/utils/async.ts","../../src/utils/bem.ts","../../src/utils/coercion.ts","../../src/utils/fn.ts","../../node_modules/tslib/tslib.es6.js","../../src/utils/observe-dom.ts","../../src/utils/scroll-into-view.ts","../../src/utils/watch-content-exist.ts","../../src/theme/theme.service.ts","../../src/theme/utils.ts","../../src/theme/theme.pipe.ts","../../src/theme/theme.module.ts","../../src/icon/icon-register.service.ts","../../src/icon/icons.ts","../../src/icon/utils.ts","../../src/icon/icon.component.ts","../../src/icon/icon.module.ts","../../src/table/table-cell-def.directive.ts","../../src/table/table-cell.component.ts","../../src/table/table-cell.directive.ts","../../src/table/table-column-def.directive.ts","../../src/table/table-header-cell-def.directive.ts","../../src/table/table-header-cell.directive.ts","../../src/table/table-header-row-def.directive.ts","../../src/table/table-header-row.component.ts","../../src/table/table-placeholder.directive.ts","../../src/table/table-row-def.directive.ts","../../src/table/table-row.component.ts","../../src/table/table.component.ts","../../src/table/table-scroll.directive.ts","../../src/table/table.module.ts","../../src/sort/sort-errors.ts","../../src/sort/sort.directive.ts","../../src/sort/sort-header.component.ts","../../src/sort/sort.module.ts","../../src/button/button-group/button-group.component.ts","../../src/button/button.types.ts","../../src/button/button.component.ts","../../src/button/button.module.ts","../../src/back-top/back-top.component.ts","../../src/tooltip/tooltip.types.ts","../../src/back-top/back-top.module.ts","../../src/tooltip/tooltip.component.ts","../../src/tooltip/utils/index.ts","../../src/tooltip/base-tooltip.ts","../../src/tooltip/tooltip-active.directive.ts","../../src/tooltip/tooltip-intl.ts","../../src/tooltip/tooltip-copy.directive.ts","../../src/tooltip/tooltip.directive.ts","../../src/tooltip/tooltip.module.ts","../../src/card/section.component.ts","../../src/card/card.component.ts","../../src/card/helper-directives.ts","../../src/card/card.module.ts","../../src/dialog/dialog-ref.ts","../../src/dialog/dialog.types.ts","../../src/dialog/confirm-dialog/confirm-dialog-config.ts","../../src/dialog/confirm-dialog/confirm-dialog.component.ts","../../src/dialog/dialog-config.ts","../../src/dialog/utils/errors.ts","../../src/dialog/utils/index.ts","../../src/dialog/dialog.component.ts","../../src/dialog/dialog.service.ts","../../src/dialog/dialog-content/dialog-close.directive.ts","../../src/dialog/dialog-content/dialog-content.component.ts","../../src/dialog/dialog-content/dialog-footer.component.ts","../../src/dialog/dialog-content/dialog-header.component.ts","../../src/dialog/dialog.module.ts","../../src/form/form.types.ts","../../src/form/form.directive.ts","../../src/form/helper-directives.ts","../../src/form/form-item/form-item.component.ts","../../src/form/form.module.ts","../../src/form/common-form.ts","../../src/radio/radio.types.ts","../../src/radio/radio-group/radio-group.component.ts","../../src/radio/base-radio.ts","../../src/radio/radio.component.ts","../../src/radio/radio-button/radio-button.component.ts","../../src/radio/radio.module.ts","../../src/switch/switch.component.ts","../../src/switch/switch.module.ts","../../src/checkbox/checkbox-group/checkbox-group.component.ts","../../src/checkbox/checkbox.component.ts","../../src/checkbox/checkbox.module.ts","../../src/input/input.component.ts","../../src/input/helper-directives.ts","../../src/input/input-group/input-group.component.ts","../../src/input/search/search.component.ts","../../src/input/tags-input/with-max-row-count.ts","../../src/input/tags-input/tags-input.component.ts","../../src/shared/click-outside.directive.ts","../../src/shared/shared.module.ts","../../src/tag/tag.types.ts","../../src/tag/tag.component.ts","../../src/tag/check-tag/check-tag.component.ts","../../src/input/utils/index.ts","../../src/tag/tag.module.ts","../../src/input/autosize.directive.ts","../../src/input/number-input/number-input.component.ts","../../src/input/input.module.ts","../../src/i18n/language/en.ts","../../src/i18n/i18n.type.ts","../../src/i18n/i18n.service.ts","../../src/i18n/i18n.pipe.ts","../../src/i18n/i18n.module.ts","../../src/dropdown/dropdown-active.directive.ts","../../src/dropdown/dropdown.directive.ts","../../src/dropdown/dropdown.types.ts","../../src/dropdown/menu-item/menu-item.component.ts","../../src/dropdown/menu/menu-content.directive.ts","../../src/dropdown/menu/menu.component.ts","../../src/dropdown/dropdown-button/dropdown-button.component.ts","../../src/dropdown/menu-group/menu-group.component.ts","../../src/dropdown/submenu/submenu.component.ts","../../src/dropdown/helper-directives.ts","../../src/dropdown/dropdown.module.ts","../../src/select/helper-directives.ts","../../src/select/option/option.component.ts","../../src/select/select.types.ts","../../src/select/base-select.ts","../../src/select/multi-select/multi-select.component.ts","../../src/select/option-group/option-group.component.ts","../../src/select/option-placeholder.component.ts","../../src/select/select.component.ts","../../src/select/validators.ts","../../src/select/select.module.ts","../../src/paginator/paginator-intl.ts","../../src/paginator/paginator.component.ts","../../src/paginator/paginator.module.ts","../../src/inline-alert/inline-alert.types.ts","../../src/inline-alert/helper-directives.ts","../../src/inline-alert/inline-alert.component.ts","../../src/inline-alert/inline-alert.module.ts","../../src/breadcrumb/breadcrumb-item.component.ts","../../src/breadcrumb/breadcrumb.component.ts","../../src/breadcrumb/breadcrumb.module.ts","../../src/message/message-wrapper.component.ts","../../src/message/message.config.ts","../../src/message/message-animations.ts","../../src/message/message.component.ts","../../src/message/base-message.ts","../../src/message/message.service.ts","../../src/message/message.module.ts","../../src/notification/notification-wrapper.component.ts","../../src/notification/notification.component.ts","../../src/notification/notification.config.ts","../../src/notification/notification.service.ts","../../src/notification/notification.module.ts","../../src/tabs/tab-body.component.ts","../../src/tabs/tab-directives.ts","../../src/tabs/tabs.types.ts","../../src/tabs/tab-header-active-indicator.component.ts","../../src/tabs/tab-header.component.ts","../../src/tabs/tab-context.service.ts","../../src/tabs/tab.component.ts","../../src/tabs/tab-group.component.ts","../../src/tabs/tabs.module.ts","../../src/tree-select/tree-node-placeholder.component.ts","../../src/tree-select/tree-select.component.ts","../../src/tree-select/tree-node/tree-node.component.ts","../../src/tree-select/tree-select.module.ts","../../src/autocomplete/autocomplete.directive.ts","../../src/autocomplete/autocomplete-placeholder.component.ts","../../src/autocomplete/suggestion/suggestion.component.ts","../../src/autocomplete/autocomplete.component.ts","../../src/autocomplete/suggestion-group/suggestion-group.component.ts","../../src/autocomplete/helper-directives.ts","../../src/autocomplete/autocomplete.module.ts","../../src/table-of-contents/toc-container.directive.ts","../../src/table-of-contents/toc-content.directive.ts","../../src/table-of-contents/toc-link.directive.ts","../../src/table-of-contents/table-of-contents.module.ts","../../src/status-bar/status-bar.types.ts","../../src/status-bar/status-bar.component.ts","../../src/status-bar/status-bar.module.ts","../../src/color-picker/color-picker.component.ts","../../src/color-picker/color-picker.module.ts","../../src/accordion/accordion.component.ts","../../src/accordion/accordion-item/accordion-item.component.ts","../../src/accordion/accordion.module.ts","../../src/scrolling/fixed-size-table-virtual-scroll-strategy.ts","../../src/scrolling/fixed-size-table-virtual-scroll.directive.ts","../../src/scrolling/fixed-size-virtual-scroll.directive.ts","../../src/scrolling/virtual-for-of.directive.ts","../../src/scrolling/virtual-scroll-viewport.component.ts","../../src/scrolling/scrolling.module.ts","../../src/anchor/anchor.directive.ts","../../src/anchor/utils.ts","../../src/anchor/anchor.component.ts","../../src/date-picker/date-picker.type.ts","../../src/anchor/anchor.module.ts","../../src/date-picker/calendar/constant.ts","../../src/date-picker/calendar/util.ts","../../src/time-picker/time-picker.type.ts","../../src/time-picker/component.ts","../../src/time-picker/constant.ts","../../src/time-picker/panel/panel.component.ts","../../src/time-picker/time-picker.module.ts","../../src/date-picker/calendar/date-picker-panel/component.ts","../../src/date-picker/calendar/footer/component.ts","../../src/date-picker/calendar/header/component.ts","../../src/date-picker/calendar/panel/picker-panel.ts","../../src/date-picker/calendar/range-picker-panel/component.ts","../../src/date-picker/date-picker/date-picker.component.ts","../../src/date-picker/range-picker/range-picker.component.ts","../../src/date-picker/trigger/trigger.component.ts","../../src/date-picker/date-picker.module.ts","../../src/drawer/component/drawer-ref.ts","../../src/drawer/component/helper-directives.ts","../../src/drawer/component/drawer.component.ts","../../src/drawer/drawer.service.ts","../../src/drawer/drawer.module.ts","../../src/steps/types.ts","../../src/steps/steps.component.ts","../../src/steps/steps.module.ts","../../src/i18n/language/zh.ts"],"names":["ComponentSize","Large","Medium","Small","Mini","Empty","sleep","ms","Promise","resolve","setTimeout","Bem","namespace","this","prototype","block","_this","modifiers","_i","arguments","length","activatedModifiers","getActivatedModifiers","map","modifier","join","name","element","reduce","acc","concat","Object","keys","filter","key","getActivatedModifiersFromObject","buildBem","coerceString","val","toString","coerceAttrBoolean","coerceNumber","fallbackValue","_isNumberValue","Number","value","isNaN","parseFloat","last","values","isTemplateRef","label","TemplateRef","handlePixel","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","call","__extends","TypeError","String","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","pop","push","__values","o","s","m","i","__read","r","ar","error","__spread","observeResizeOn","target","options","Observable","observer","resizeObserver","ResizeObserver","entries","entries_1","entries_1_1","entry","observe","unobserve","disconnect","scrollIntoView","container","selected","top","offsetTop","bottom","offsetHeight","viewRectTop","scrollTop","viewRectBottom","clientHeight","watchContentExist","queryList","changes","pipe","startWith","list","publishReplay","refCount","ThemeService","currentAppTheme$$","ReplaySubject","currentTheme$","asObservable","distinctUntilChanged","htmlEl","document","querySelector","getAttribute","themeMode","darkModeQuery","window","matchMedia","browserTheme","matches","addEventListener","_a","themeChanged","setThemeMode","mode","setAttribute","currentTheme","rgbColor","color","rgbaColor","_b","cssVar","Injectable","args","providedIn","transform","Pipe","pure","ThemePickerPipe","themeService","cdr","destroy$$","Subject","takeUntil","subscribe","theme","markForCheck","Function","isArray","ngOnDestroy","complete","ChangeDetectorRef","NgModule","imports","CommonModule","declarations","RgbColorPipe","RgbaColorPipe","CssVarPipe","exports","IconRegisterService","httpClient","defaultIconPrefix","doc","registerSvgSymbolsByString","getDefaultIconPrefix","replaceDefaultIconPrefix","prefix","registerSvgSymbolsByUrl","url","Error","get","responseType","res","getAuiIconFailedToLoadCustomIconFile","str","appendSvg","svgString","setEl","createElement","className","style","display","innerHTML","append","ICON_REGISTER_PROVIDER_FACTORY","parentRegister","Optional","type","Inject","DOCUMENT","HttpClient","decorators","ICON_REGISTER_SERVICE_PROVIDER","provide","deps","SkipSelf","useFactory","id","IconComponent","iconRegisterService","link","bem","parseIcon","icon","defaultPrefix","arr","split","getWidth","size","getHeight","getIconId","getClass","margin","Component","selector","template","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","preserveWhitespaces","Input","ThemeModule","providers","TableCellDefDirective","_super","CdkCellDef","Directive","useExisting","TableExpandButtonCellComponent","expand","disabled","expandChange","EventEmitter","defineProperty","CdkCell","Output","TableExpandPanelCellComponent","background","animations","trigger","state","height","margin-bottom","transition","animate","TableCellDirective","columnDef","elementRef","nativeElement","classList","add","cssClassFriendlyName","host","class","role","CdkColumnDef","ElementRef","TableColumnDefDirective","inputs","TableHeaderCellDefDirective","CdkHeaderCellDef","TableHeaderCellDirective","CdkHeaderCell","TableHeaderRowDefDirective","CdkHeaderRowDef","TableHeaderRowComponent","CdkHeaderRow","CDK_ROW_TEMPLATE","exportAs","templateRef","viewContainer","ViewContainerRef","TableRowDefDirective","CdkRowDef","TableRowComponent","elRef","hasPanel","ngAfterContentInit","panel","CdkRow","HostBinding","TableComponent","_createPlaceholder","footerRow","_placeholderDef","_placeholderOutlet","createEmbeddedView","_clearPlaceholder","clear","CdkTable","CDK_TABLE_TEMPLATE","CDK_TABLE","_VIEW_REPEATER_STRATEGY","useClass","_DisposeViewRepeaterStrategy","_COALESCED_STYLE_SCHEDULER","_CoalescedStyleScheduler","ViewChild","TablePlaceholderOutlet","static","ContentChild","TablePlaceholderDefDirective","SHADOW_CLASS","CLASS_PREFIX","SCROLL_BEFORE_END_CLASS","TableScrollShadowDirective","el","table","ngAfterViewInit","requestAnimationFrame","viewMutation","merge","containerEl","fromEvent","mutateVerticalScroll","mutateHorizontalScroll","scrollDis","scrollHeight","placeClassList","updateStickyColumnStyles","scrollWidth","offsetWidth","scrollLeft","condition","Host","getSortDuplicateSortableIdError","getSortHeaderNotContainedWithinSortError","getSortHeaderMissingIdError","getSortInvalidDirectionError","direction","IconModule","CdkTableModule","TableScrollWrapperDirective","SortDirective","sortables","Map","_stateChanges","start","_direction","sortChange","isDevMode","register","sortable","has","set","deregister","delete","sort","active","emit","ngOnChanges","SortHeaderComponent","_sort","_cdkColumnRef","arrowDirection","_rerenderSubscription","_isSorted","_updateArrowDirection","_viewState","ngOnInit","unsubscribe","_handleClick","includes","ButtonType","Default","Primary","Success","Warning","Danger","Text","Inline","Info","ButtonComponent","renderer","focusMonitor","_type","_size","_plain","_loading","_round","_square","addClass","monitor","removeClass","switchAssertClass","stopMonitoring","Renderer2","FocusMonitor","ButtonGroupComponent","BackTopComponent","cdkScrollable","click","_visibilityHeight","target$$","BehaviorSubject","visibilityHeight$$","visibilityHeight","isDisplayed$","combineLatest","getTarget","switchMap","throttleTime","undefined","leading","trailing","getTargetScrollTop","_target","documentElement","handleClick","event","_scrollTarget","scrollTo","behavior","getElementRef","CdkScrollable","TooltipType","TooltipTrigger","TooltipComponent","hover$","setupInputs","assign","text$","inputContent$","template$","class$","inputPosition$","inputType$","inputClass$","inputPosition","inputType","inputClass","dir","Plain","context$","inputContext$","invertHorizontal","invertVertical","invertPosition","x","BaseTooltip","overlay","viewContainerRef","ngZone","hideOnClick","show","hide","componentClass","hostHovered","tooltipHovered","listeners","inputContent$$","inputType$$","inputPosition$$","inputClass$$","inputContext$$","tooltipChanged$","_position","_trigger","Hover","_disabled","debounceTime","updatePosition","_context","disposeTooltip","run","updateListeners","overlayRef","createTooltip","isCreated","createOverlay","portal","ComponentPortal","componentIns","attach","instance","hovered","onTooltipHovered","Click","unlistenBody","listen","onBodyClick","bind","dispose","toggleTooltip","clearListeners","onClick","onMouseEnter","onMouseLeave","Focus","onFocus","onBlur","Manual","forEach","unListen","originPosition","position","isXDir","pos","main","originX","originY","fallback","getOriginPosition","overlayPosition","horizontal","vertical","overlayX","overlayY","getOverlayPosition","positionStrategy","flexibleConnectedTo","withGrowAfterOpen","withPositions","scrollStrategy","scrollStrategies","reposition","config","OverlayConfig","contains","Overlay","NgZone","TooltipActiveDirective","tooltipDirective","customClass","copyTip","copySuccessTip","copyFailTip","TOOLTIP_COPY_INTL_PROVIDER_FACTORY","parentIntl","TooltipCopyIntl","TOOLTIP_COPY_INTL_INTL_PROVIDER","TooltipCopyDirective","toolTipIntl","_copyText","textContent","_copyTip","_copySuccessTip","_copyFailTip","content","auiTooltipCopyTip","onSourceClick","writeText","auiTooltipCopy","auiTooltipCopySuccessTip","auiTooltipCopyFailTip","HostListener","TooltipDirective","OverlayModule","entryComponents","divider","[class.aui-card__header]","[class.aui-card__footer]","[class.aui-section__title]","CardComponent","CardHeaderDirective","CardFooterDirective","SectionComponent","SectionTitleDirective","DialogSize","ConfirmType","uniqueId","DialogRef","dialogInstance","scrollDispatcher","afterOpen$","afterClosed$","scrollable","overlayElement","close","detachBackdrop","afterOpen","afterClosed","getPositionStrategy","left","updateSize","getConfig","cancelButton","confirmType","confirmText","cancelText","ConfirmDialogComponent","dialogRef","waitConfirm","waitCancel","setConfig","ConfirmDialogConfig","iconMap","confirm","beforeConfirm","toPromise","cancel","beforeCancel","beforeAction","first","Big","hasBackdrop","fitViewport","throwDialogContentAlreadyAttachedError","getClosestDialog","openDialogs","parent","parentElement","tagName","find","dialog","dataset","DialogComponent","hidden","_id","attachComponentPortal","portalOutlet","hasAttached","blurActiveElement","attachTemplatePortal","activeElement","blur","CdkPortalOutlet","DIALOG_DATA","InjectionToken","DialogService","injector","open","compOrTempRef","hiddenPrevDialog","DialogConfig","dialogIns","attachDialog","attachDialogContent","removeDialog","showPrevDialog","FitContent","componentInstance","action","closeAll","overlayConfig","getOverlayConfig","dialogConfig","global","backdropClass","DIALOG_BACKDROP_CLASS","panelClass","DIALOG_OVERLAY_PANE_CLASS","width","dialogPortal","TemplatePortal","$implicit","data","createInjector","contentRef","userInjector","Injector","useValue","index","indexOf","splice","ScrollDispatcher","DialogCloseDirective","dialogService","closeDialog","DialogContentComponent","Directionality","DialogHeaderComponent","closeable","PortalModule","ButtonModule","DialogFooterComponent","LabelPosition","Top","Left","Right","FormDirective","controlContainer","labelWidth$$","labelPosition$$","emptyAddon$$","inline","labelWidth$","labelPosition$","emptyAddon$","formDirective","submitted","[class.aui-form]","[class.aui-form--inline]","[class.ng-submitted]","ControlContainer","[class.aui-form-item__label]","[class.aui-form-item__hint]","[class.aui-form-item__addon]","[class.aui-form-item__error]","FormItemControlDirective","_required","[class.aui-form-item__control]","FormItemComponent","auiForm","ngForm","formGroup","labelWidth","labelPosition","emptyAddon","parentForm","subscribeInputsFromParent","hasError$","ngControls","controls","control","mapControlStatus","statuses","some","status","errorCount$","errors","hintCount$","hints","statusChanges","ngSubmit","dirty","NgForm","FormGroupDirective","FormItemLabelDirective","ContentChildren","NgControl","descendants","FormItemAddonDirective","FormItemErrorDirective","FormItemHintDirective","CommonFormControl","valueChange","value$$","snapshot","value$","tap","_propValue","writeValue","registerOnChange","fn","onChange","registerOnTouched","onTouched","setDisabledState","isDisabled","valueIn","emitValue","emitValueChange","valueOut","CommonForm","RadioSize","RadioGroupComponent","size$$","isPlain$$","name$$","size$","isPlain$","name$","plain","onRadioChange","onRadioBlur","NG_VALUE_ACCESSOR","forwardRef","multi","BaseRadio","radioGroup","checked","_value","RadioComponent","RadioButtonComponent","isPlain","SwitchComponent","loading","onSwitch","CheckboxGroupComponent","_trackFn","onCheckboxChange","checkbox","checkboxes","item","onCheckboxBlur","CheckboxComponent","checkboxGroup","label$$","_indeterminate","trackFn","_label","indeterminate","InputComponent","disabled$","booleanVal","removeAttribute","InputGroupComponent","hasAddonBefore$","addonBeforeRefs","hasAddonAfter$","addonAfterRefs","hasPrefix$","prefixRefs","hasSuffix$","suffixRefs","InputAddonBeforeDirective","InputAddonAfterDirective","InputPrefixDirective","InputSuffixDirective","SearchComponent","searchButton","clearable","searching","placeholder","keywordChange","search","showSpinner","emitChange","emitSearch","emitClear","createWithMaxRowCount","component","hostPosition","maxRowCount","hostDisplay","maxHeight","paddingPatch","getContainerPaddingPatch","customRowHeight","getRowHeight","INPUT_ERROR_KEY","TagsInputComponent","fb","allowRepeat","allowEmpty","readonlyTags","withMaxRowCount","sortByReadonly","clearInput","focused","inputControl","_inputValidator","Validators","compose","_inputAsyncValidator","composeAsync","inputRef","tagSize","_j","inputValidator","inputAsyncValidator","currentValue","emitEvent","setValidators","setAsyncValidators","onRemove","onInput","setStyle","inputValueMirror","removeStyle","_c","setErrors","onKeyDown","inputEl","stopPropagation","preventDefault","pushValue","onInputFocus","onInputBlur","trackByValue","items","curr","Set","setValue","syncControlStatus","valid","pending","take","removeInputControlError","_k","invalid","markAsDirty","markAsPending","_d","_f","_e","_h","_g","updateValueAndValidity","FormBuilder","ClickOutsideDirective","auiClickOutside","TagType","TagComponent","border","solid","round","allowClick","isNormalTag","border-color","background-color","CheckTagComponent","checkedChange","hiddenTextarea","CONTEXT_STYLE","calcTextareaHeight","targetElement","minRows","maxRows","getComputedStyle","boxSizing","getPropertyValue","paddingSize","borderSize","contextStyle","calculateNodeStyling","singleRowHeight","minHeight","Math","max","min","parentNode","remove","DEFAULT_VALUE","AutosizeDirective","ngControl","_autoSize","resizeTextarea","autoSize","valueChanges","NumberInputComponent","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","controlsPosition","isFocus","parsePrecision","inputChanged","takeOneStep","positive","precision","getStepPrecision","toFixed","slice","read","FormsModule","ReactiveFormsModule","TagModule","SharedModule","en","locale","translation","start_date","end_date","select_date","select_time","to","year_suffix","month_suffix","monday","tuesday","wednesday","thursday","friday","saturday","sunday","now","select_all","today","I18NInterfaceToken","factory","I18nService","_i18n","i18nChange$$","localeChange$","pluck","setI18n","i18n","translate","ignoreNonExist","console","warn","replaceAll","_matched","$0","trim","I18nPipe","DropdownActiveDirective","DropdownDirective","_menu","menu","lazyContent","lazyContentContext","detach","MenuItemType","MenuItemComponent","divide","actived","MenuContentDirective","appRef","componentFactoryResolver","context","isAttached","outlet","DomPortalOutlet","insertBefore","outletElement","ApplicationRef","ComponentFactoryResolver","MenuComponent","menuItems","DropdownButtonComponent","buttonClick","hasEnabledItem","SubmenuComponent","[class.aui-menu-group__title]","TooltipModule","MenuGroupComponent","MenuGroupTitleDirective","[class.aui-option-group__title]","OptionContentDirective","OptionComponent","select","_labelContext","labelContext$$","labelContext","isMulti","visible","label$","labelContext$","MultiSelectComponent","selected$","values$","selectValue","selfValue","visible$","filterString$","filterString","option","filterFn","onOptionClick","focus","BaseSelect","SelectAllStatus","_filterFn","defaultFirstOption","lazy","filterChange","_filterable","_clearable","_allowCreate","_filterString","filterString$$","customOptions","toArray","contentOptions","tooltipRef","filterable","opened","customCreatedOptions$","of","optionValues","labelFn","allOptions$","autoFocusFirstOption","hasMatchedOption$","inputtingOption","hasVisibleOption$","optionContent","openOption","closeOption","onShowOptions","exec","containerWidth","selectRef","onHideOptions","resetFocusedOption","focusOptionDir","selectFocusedOption","escSelect","selectOption","allowCreate","matchedOption","selectedOption","allOptions","scrollToOption","visibleOptions","focusedOption","optionListRef","toLowerCase","ViewChildren","bemSelectAll","_allowSelectAll","selectedValues","inputValue","displayClearBtn","inputReadonly","selectedOptions$","selectAllStatus$","Indeterminate","Checked","selectAllStatus","hasEnabledOptions$","setInputWidth","removeValue","resetInput","addValue","clearValue","onSelectAllClick","visibleOptionsValue","OptionGroupComponent","node","SelectComponent","isClearable","hasSelected","selectedOption$","hasSelected$","AuiSelectValidators","IncludesDirective","_includes","onValidatorChange","registerOnValidatorChange","validate","NG_VALIDATORS","InputModule","I18nModule","OptionPlaceholderComponent","OptionGroupTitleDirective","itemsPerPageLabel","jumperLabelPrefix","jumperLabelSuffix","getTotalLabel","PAGINATOR_INTL_PROVIDER_FACTORY","PaginatorIntl","PAGINATOR_INTL_PROVIDER","PaginatorComponent","intl","currentPage","pageSize","pageSizeOptions","total","layout","currentPageChange","pageSizeChange","intlChangeSub","ceil","getLayoutArr","getCenterPages","pageCount","from","fill","jumpTo","page","navigate","changePageSize","onKeydown","nextPage","parseInt","trackByIndex","SelectModule","InlineAlertType","InlineAlertComponent","closable","closeSelf","InlineAlertTitleDirective","BreadcrumbItemComponent","_separator","_separatorIcon","BreadcrumbComponent","separator","separatorIcon","MessageType","MessageAnimations","inOut","opacity","margin-top","MESSAGE_CONFIG","MESSAGE_DEFAULT_CONFIG","duration","maxStack","typeIcon","MessageComponent","animateStartState","animateStartEnd","animateState","beforeClosed","timerId","clearTimeout","onAnimationEnd","toState","BaseMessage","applicationRef","cfr","overlayPaneClassName","wrapperClass","globalConfig","componentRefs","initWrapperContainer","mergedConfig","removeNeedless","componentRef","initComponentRef","destroy","createType","success","warning","info","findIndex","ref","removeAll","wrapperInstance","MessageService","MessageWrapperComponent","NotificationWrapperComponent","NotificationComponent","isHover","countDown","remains","title","attachComponentRef","resolveComponentFactory","footerRef","footerPortal","childComponentInstance","modalEl","createComponent","NOTIFICATION_CONFIG","NOTIFICATION_DEFAULT_CONFIG","NotificationService","TabBodyComponent","content$","_content","TabLabelDirective","CdkPortal","TabHeaderAddonDirective","TabLabelWrapperDirective","getOffsetLeft","offsetLeft","getOffsetWidth","[class.aui-tab-label]","[class.aui-tab-label--disabled]","TabTitleDirective","TabBodyPortalDirective","_host","_hostSubscription","Subscription","EMPTY","TabSize","TabType","Line","Card","TabHeaderActiveIndicatorComponent","_elementRef","_ngZone","alignToElement","runOutsideAngular","_setStyles","positions","_getElementPosition","nativeEl","TabHeaderComponent","_changeDetectorRef","_viewportRuler","_showAddon","_showPaginationControls","_disableScrollAfter","_disableScrollBefore","_selectedIndexChanged","_scrollDistance","_selectedIndex","_destroyed","selectFocusedIndex","indexFocused","_keyManager","updateActiveItem","ngAfterContentChecked","_tabLabelCount","_labelWrappers","_updatePagination","_scrollToLabel","_checkScrollingControls","_alignActiveIndicatorToSelectedTab","_scrollDistanceChanged","_updateTabScrollPosition","_headerAddon","resize","change","realign","FocusKeyManager","withHorizontalOrientation","withWrap","newFocusIndex","_setTabFocus","_getMaxScrollDistance","activeItemIndex","_isValidIndex","focusIndex","setActiveItem","tab","_handleKeydown","setFirstItemActive","setLastItemActive","tabIndex","_tabListContainer","labelIndex","selectedLabel","viewLength","labelBeforePos","labelAfterPos","beforeVisiblePos","scrollDistance","afterVisiblePos","_scrollHeader","scrollDir","_onContentChanges","_checkPaginationEnabled","isEnabled","_tabList","_paginationWrapper","detectChanges","translateX","selectedLabelWrapper","selectedIndex","_activeIndicator","ViewportRuler","TabContextService","_parent","active$$","active$","a","isActive","TabComponent","_viewContainerRef","tabContext","textLabel","origin","_contentPortal","_explicitContent","_implicitContent","TabContentDirective","TabGroupComponent","_indexToSelect","_tabsSubscription","_tabLabelSubscription","_tab","_typeChange","_sizeChange","selectedIndexChange","tabChange","selectedTabChange","focusChange","activatedTabs","_changeActivatedTabs","_tabs","_findIndexByTab","_lazy","indexToSelect","_clampTabIndex","tabChangeEvent","_createChangeEvent","_previousHeaderAddon","_subscribeToTabLabels","tabs","idx","_tabHeader","_focusChanged","realignActiveIndicator","TabChangeEvent","_getTabIndex","A11yModule","ObserversModule","TreeSelectComponent","_nodesData","_leafOnly","displayText","flattedNodes","trackByLabel","getLabelFromNode","flatNodesData","updateSelectDisplay","propValue","getInputValue","openNodes","closeNodes","onShowNodes","onHideNodes","onNodeClick","selectNode","getVisibleNodeCount","nodeData","pickedNode","getPlaceholder","nodes","prevValue","currentNode","children","TreeNodeComponent","nodeData$$","isLeaf","selfVisible$","_nodeData","hasVisibleChildNodes$","childNodes","hasVisibleChildren","scrollToNode","leafOnly","switchExpanded","expanded","getIcon","expandedIcon","nodeListRef","titleRef","TreeNodePlaceholderComponent","AutoCompleteDirective","defaultFirstSuggestion","suggestionTrigger","inputValue$$","filterFn$$","unsubscribe$","inputValue$","filterFn$","_autocomplete","directive$$","innerSelector","updateSuggestionsContext","resetFocusedSuggestion","input","ev","focusSuggestionDir","focusedSuggestion","onSuggestionClick","isArrCtrl","patchValue","autoFocusFirstSuggestion","selectedSuggestion","autocomplete","suggestions","suggestion","scrollToSuggestion","firstFocusableSuggestion_1","visibleSuggestions","suggestionListRef","CustomAutoCompleteDirective","SuggestionComponent","directive","AutocompleteComponent","hasVisibleSuggestion$","hasContent$","hasVisibleSuggestion","hasPlaceholder","AutocompletePlaceholderComponent","SuggestionGroupComponent","[class.aui-suggestion-group__title]","SuggestionGroupTitleDirective","TocContainerDirective","activedChange","_contents","_scrollTop$","_scrollTo$","_onDestroy$","_subs","_nativeElement","getOffsetTop","getMinContent","minContent","abs","getMaxContent","maxContent","onScroll","actived$","isScrollEnd","auiTocContent","scrollTween$","destination","performance","source","observeOn","animationFrameScheduler","repeat","takeWhile","endWith","tweenValue","sub","registerContent","tocContent","deregisterContent","TocContentDirective","elemRef","containerDirective","TocLinkDirective","for","auiTocLink","StatusBarSize","statusClick","StatusBarComponent","ColorPickerComponent","AccordionComponent","depth","CdkAccordion","AccordionItemComponent","accordion","uniqueSelectionDispatcher","_lazyContentTpl","lazyContentTpl","CdkAccordionItem","viewProviders","UniqueSelectionDispatcher","AccordionItemContentDirective","AccordionItemHeaderDirective","CdkAccordionModule","FixedSizeTableVirtualScrollStrategy","_rowHeight","_headerHeight","_bufferSize","_indexChange","scrolledIndexChange","stickyChange","renderedRangeStream","end","_dataLength","onDataLengthChanged","viewport","onContentScrolled","_updateContent","setTotalContentSize","dataLength","onContentRendered","onRenderedOffsetChanged","scrollToIndex","scrollToOffset","rowHeight","headerHeight","bufferSize","newIndex","measureScrollOffset","getViewportSize","renderedOffset","setRenderedContentOffset","setRenderedRange","_tableVirtualScrollDirectiveStrategyFactory","tableDir","stickyHeaderSelector","defaults","FixedSizeTableVirtualScrollDirective","onDestroy$","_dataSource$$","buffer","dataSource","isStickyEnabled","stickyPositions","initStickyPositions","stickyOffset","setSticky","_headerRowDefs","def","sticky","prev","querySelectorAll","offset","baseOffset","VIRTUAL_SCROLL_STRATEGY","_fixedSizeVirtualScrollStrategyFactory","FixedSizeVirtualScrollDirective","CdkFixedSizeVirtualScroll","ɵ0","VirtualForOfDirective","cdkVirtualForOf","cdkVirtualForTrackBy","cdkVirtualForTemplate","cdkVirtualForTemplateCacheSize","CdkVirtualForOf","VirtualScrollViewportComponent","CdkVirtualScrollViewport","[class.aui-virtual-scroll-orientation-horizontal]","[class.aui-virtual-scroll-orientation-vertical]","EXPORTABLE","uid","AnchorDirective","AnchorLabelDirective","_level","labelChange","injectId","AnchorDirectiveChild","adaptPosition","padding","auiAnchor","anchorPortal","AnchorComponent","anchorComponentRef","anchorEl","adaptAnchorPosition","anchorLabels","pageContentEl","closest","anchorContentEl","containerRect","getBoundingClientRect","right","minTop","paddingTop","paddingRight","getAnchorTreeItems","level","treeItems","subItems","items_1","items_1_1","lastTreeItem","AnchorTreeComponent","activeIdChange","depose$$","_treeItems","watchLabelsChange","Boolean","activeId","subItem","onItemClick","location","hash","history","pushState","pathname","trackById","_index","_items","anchorId","activeItem","scrollableEl","activedItem","offsetParent","replaceState","Side","DateNavRange","DatePickerType","DAY","MONTH","YEAR","DATE_TYPES","Year","Month","Day","DATE_NAV_RANGES","Decade","DateCell","formatDate","dateValue","date","year","month","cell","isBackground","nextNavRangeType","current","guard","guardIndex","currentIndex","updateDate","sourceValue","newValue","clone","calcRangeValue","subtract","sortDates","dates","isBefore","isSame","getNavRangeByType","getTypeByNavRange","navRange","getTimePickerModel","second","minute","hour","updateDateByTimeModel","time","TimePickerControlType","composeDisabledDateFn","fns","every","isTimePickerModel","dayjs","extend","customParseFormat","TimePickerComponent","format","showIcon","hourStep","minuteStep","secondStep","timeValue","timeFormatValue","submit","changeFromPanel","changeFromInput","afterParsed","isValid","openPanel","closePanel","refer","HOUR_ITEMS","MINUTE_ITEMS","ɵ1","SECOND_ITEMS","ɵ2","TimePickerPanelComponent","HOUR_ITEM_CONFIG","MINUTE_ITEM_CONFIG","SECOND_ITEM_CONFIG","CONTROL_ITEM_HEIGHT","enabledColumns","firstScrolled","_format","charSet","hourEnabled","minuteEnabled","secondEnabled","Hour","disableHours","Minute","disableMinutes","Second","disableSeconds","syncScrollOffset","syncValue","empty","hourRef","enabled","minuteRef","secondRef","cf","scrollByValue","divideBy","targetOffset","currentTop","perTick_1","matchValue","currDate","getControlTypeConfig","selectNow","trackBy","mousedown","DatePickerPanelComponent","showTime","disabledDate","disabledTime","weekStartDay","showFooter","getDisabledTimeFn","selectedDate","_cacheSelectedDate","_cacheDisabledTimeFn","obj","selectedTime","anchor","panelValueChange","currentNavType","confirmValue","nextNavRange","closeAfterConfirm","timeDateChange","setToday","CalendarHeaderComponent","dateNavRange","navRangeChange","anchorChange","clickNav","range","maxAvail","minAvail","shouldShowNav","side","availValue","_minAvail","_maxAvail","constrainDate","compareNavValue","constrain","constrainValue","isBetween","navHead","PickerPanelComponent","_weekStartDay","weekDefs","day","normalized","minDate","maxDate","isAfter","headerRange","renderPanelData","colCounts","rowCounts","panelData","firstData","counts","DAY_PANEL_COLUMN_COUNT","MONTH_PANEL_COLUMN_COUNT","YEAR_PANEL_COLUMN_COUNT","getDatePanelIterable","k","row","disabledDateFn","sortedDates","matchDates","inRange","isRangeStart","isRangeEnd","match","matchToday","trackByFn","DateRangePickerPanelComponent","leftDateRange","rightDateRange","FOOTER_DATE_FORMAT","leftAnchor","rightAnchor","rangeValue","leftDisabledTimeFn","getDisabledTimeCachedFn","rightDisabledTimeFn","unit","matchValues","startTime","endTime","reorder","calendarRangeChange","getDateDisabledFn","cacheSelectedDate","cacheDisabledTimeFn","selectPickerPanel","nextRange","syncTime","sortedDate","hoverItem","closeThen","timeChange","startDate","endDate","DatePickerComponent","openChange","getDefaultFormat","Emulated","RangePickerComponent","DatePickerTriggerComponent","centerFocus","leftFocus","rightFocus","focusInput","isRange","hasValue","focusInputRef","DrawerSize","COMPONENTS","CalendarFooterComponent","TimePickerModule","DATA","SIZE_MAPPER","DrawerComponent","offsetY","hideOnClickOutside","showClose","drawerViewInit","templateContext","aui-drawer","hasDivider","drawerClass","attachOverlay","updateBodyOverflow","contentParams","attachBodyContent","drawerTemplate","outsidePointerEvents","Node","hostElement","bodyPortalOutlet","contentTemplate","Type","componentPortal","changeDetectorRef","enable","disable","disposeOverlay","maskClick","maskClosable","mask","DrawerRef","DrawerHeaderDirective","DrawerContentDirective","DrawerFooterDirective","DrawerService","drawerRef","createDrawer","updateOptions","COMMON","StepState","Done","Pending","StepDefaultIcon","_b$1","StepSelectedIcon","_c$1","StepsComponent","_steps","linear","orientation","selectable","currentIndexChange","currentIndexChange$$","stepsChange$$","_currentIndex","setCurrentIndex","steps","getProgressCurrentIndex","ret","reversedPrevSteps","reverse","doneIndex","optional","lastDoneStepIndex","reversedSteps","doneStepIndex","getActiveIndex","default","isSelectable","isProgress","currentStep","isLastActive","firstDefaultIndex","mutationObserver","MutationObserver","mutations","mutations_1","mutations_1_1","mutation"],"mappings":"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","sourcesContent":["export type ValueOf<T> = T[keyof T];\n\nexport const ComponentSize = {\n Large: 'large',\n Medium: 'medium',\n Small: 'small',\n Mini: 'mini',\n /**\n * represents default internally, @link https://github.com/angular/vscode-ng-language-service/issues/1147\n */\n Empty: '',\n} as const;\n\nexport type ComponentSize = ValueOf<typeof ComponentSize>;\n","export function sleep(ms = 0) {\n return new Promise(resolve => {\n setTimeout(resolve, ms);\n });\n}\n","// Experimental bem classname helper\nexport class Bem {\n constructor(private readonly namespace: string) {}\n\n block(...modifiers: Array<{ [name: string]: boolean } | string>) {\n const activatedModifiers = getActivatedModifiers(modifiers);\n if (activatedModifiers.length > 0) {\n return `${this.namespace} ${activatedModifiers\n .map(modifier => this.namespace + '--' + modifier)\n .join(' ')}`;\n }\n return this.namespace;\n }\n\n modifier(name: string) {\n return `${this.namespace}--${name}`;\n }\n\n element(\n name: string,\n ...modifiers: Array<{ [name: string]: boolean | '' } | string>\n ) {\n const activatedModifiers = getActivatedModifiers(modifiers);\n\n if (activatedModifiers.length > 0) {\n return `${this.namespace}__${name} ${activatedModifiers\n .map(modifier => this.namespace + '__' + name + '--' + modifier)\n .join(' ')}`;\n }\n\n return `${this.namespace}__${name}`;\n }\n}\n\nfunction getActivatedModifiers(\n modifiers: Array<{ [name: string]: boolean | '' } | string>,\n) {\n return modifiers.reduce<string[]>((acc, modifier) => {\n if (!modifier) {\n return acc;\n }\n return acc.concat(\n typeof modifier === 'string'\n ? [modifier]\n : getActivatedModifiersFromObject(modifier),\n );\n }, []);\n}\n\nfunction getActivatedModifiersFromObject(modifiers: {\n [name: string]: boolean | '';\n}) {\n return Object.keys(modifiers).filter(key => modifiers[key]);\n}\n\nexport function buildBem(namespace: string) {\n return new Bem(namespace);\n}\n","export function coerceString(val: unknown): string {\n return val == null ? '' : val.toString();\n}\n\nexport function coerceAttrBoolean(val: unknown): boolean {\n return val === '' ? true : !!val;\n}\n\nexport function coerceNumber(val: unknown, fallbackValue = 0): number {\n return _isNumberValue(val) ? Number(val) : fallbackValue;\n}\n\nexport function _isNumberValue(value: unknown): boolean {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value as string)) && !isNaN(Number(value));\n}\n","import { TemplateRef } from '@angular/core';\n\nexport function isUndefined(val: unknown): boolean {\n return val === undefined;\n}\n\nexport const last = <T>(values: T[]) => values?.[values.length - 1];\n\nexport const isTemplateRef = (\n label: string | TemplateRef<unknown>,\n): label is TemplateRef<unknown> => label instanceof TemplateRef;\n\nexport const handlePixel = (value: number | string) =>\n Number.isNaN(+value) ? (value as string) : value + 'px';\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Observable } from 'rxjs';\n\nexport const observeResizeOn = <T extends Element>(\n target: T,\n options?: ResizeObserverOptions,\n) =>\n new Observable<T>(observer => {\n const resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n observer.next(entry.target as T);\n }\n });\n resizeObserver.observe(target, options);\n return () => {\n resizeObserver.unobserve(target);\n resizeObserver.disconnect();\n };\n });\n\nexport const observeMutationOn = <T extends Node>(\n target: T,\n options?: MutationObserverInit,\n) =>\n new Observable<MutationRecord>(observer => {\n const mutationObserver = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n observer.next(mutation);\n }\n });\n mutationObserver.observe(target, options);\n return () => mutationObserver.disconnect();\n });\n","export function scrollIntoView(container: HTMLElement, selected: HTMLElement) {\n if (!selected) {\n container.scrollTop = 0;\n return;\n }\n\n const top = selected.offsetTop;\n const bottom = selected.offsetTop + selected.offsetHeight;\n const viewRectTop = container.scrollTop;\n const viewRectBottom = viewRectTop + container.clientHeight;\n\n if (viewRectTop > top) {\n container.scrollTop = top;\n } else if (viewRectBottom < bottom) {\n container.scrollTop = bottom - container.clientHeight;\n }\n}\n","import { QueryList } from '@angular/core';\nimport { map, publishReplay, refCount, startWith } from 'rxjs/operators';\n\nexport function watchContentExist(queryList: QueryList<unknown>) {\n return queryList.changes.pipe(\n startWith(queryList),\n map((list: QueryList<unknown>) => !!list.length),\n publishReplay(1),\n refCount(),\n );\n}\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nimport { Theme, ThemeMode } from './theme.types';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly htmlEl: HTMLHtmlElement;\n private browserTheme: Theme;\n private themeMode: ThemeMode;\n\n private readonly currentAppTheme$$ = new ReplaySubject<Theme>(1);\n\n readonly currentTheme$ = this.currentAppTheme$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n constructor() {\n this.htmlEl = document.querySelector('html');\n\n switch (this.htmlEl.getAttribute('aui-theme-mode')) {\n case 'dark':\n this.themeMode = 'dark';\n break;\n case 'light':\n this.themeMode = 'light';\n break;\n case 'system':\n this.themeMode = 'system';\n break;\n default:\n this.themeMode = 'light';\n }\n\n const darkModeQuery = window.matchMedia('(prefers-color-scheme: dark)');\n this.browserTheme = darkModeQuery.matches ? 'dark' : 'light';\n\n darkModeQuery.addEventListener('change', ({ matches }) => {\n this.browserTheme = matches ? 'dark' : 'light';\n if (this.themeMode === 'system') {\n this.themeChanged();\n }\n });\n\n this.themeChanged();\n }\n\n setThemeMode(mode: ThemeMode) {\n this.htmlEl.setAttribute('aui-theme-mode', mode);\n this.themeMode = mode;\n this.themeChanged();\n }\n\n currentTheme() {\n return this.themeMode === 'system' ? this.browserTheme : this.themeMode;\n }\n\n private themeChanged() {\n this.currentAppTheme$$.next(this.currentTheme());\n }\n}\n","export function rgbColor(color: string): string {\n return `rgb(var(--aui-color-${color}))`;\n}\n\nexport function rgbaColor([color, opacity]: [string, number]) {\n return `rgba(var(--aui-color-${color}), ${opacity})`;\n}\n\nexport function cssVar(value: string) {\n return `var(--aui-${value})`;\n}\n","import {\n ChangeDetectorRef,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { ThemeService } from './theme.service';\nimport { Theme, ThemeSet } from './theme.types';\nimport { cssVar, rgbColor, rgbaColor } from './utils';\n\n@Pipe({ name: 'auiRgbColor', pure: true })\nexport class RgbColorPipe implements PipeTransform {\n transform = rgbColor;\n}\n\n@Pipe({ name: 'auiRgbaColor', pure: true })\nexport class RgbaColorPipe implements PipeTransform {\n transform = rgbaColor;\n}\n\n@Pipe({ name: 'auiCssVar', pure: true })\nexport class CssVarPipe implements PipeTransform {\n transform = cssVar;\n}\n\n@Pipe({ name: 'auiThemePicker', pure: false })\nexport class ThemePickerPipe<T> implements PipeTransform, OnDestroy {\n private currentTheme: Theme;\n private readonly destroy$$ = new Subject<void>();\n\n constructor(themeService: ThemeService, cdr: ChangeDetectorRef) {\n themeService.currentTheme$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(theme => {\n this.currentTheme = theme;\n cdr.markForCheck();\n });\n }\n\n transform(v: ThemeSet<T>) {\n if (v instanceof Function) {\n return v(this.currentTheme);\n }\n if (Array.isArray(v)) {\n return v[this.currentTheme === 'light' ? 0 : 1];\n }\n return v[this.currentTheme];\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport {\n CssVarPipe,\n RgbColorPipe,\n RgbaColorPipe,\n ThemePickerPipe,\n} from './theme.pipe';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ThemePickerPipe, RgbColorPipe, RgbaColorPipe, CssVarPipe],\n exports: [ThemePickerPipe, RgbColorPipe, RgbaColorPipe, CssVarPipe],\n})\nexport class ThemeModule {}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, Optional, SkipSelf } from '@angular/core';\n\nimport { auiIcons } from './icons';\nimport {\n getAuiIconFailedToLoadCustomIconFile,\n getAuiIconNoHttpProviderError,\n} from './utils';\n\n@Injectable()\nexport class IconRegisterService {\n private defaultIconPrefix = 'aui-icon';\n private readonly doc: Document;\n\n constructor(\n @Optional()\n @Inject(DOCUMENT)\n document: any,\n @Optional() private readonly httpClient: HttpClient,\n ) {\n this.doc = document;\n this.registerSvgSymbolsByString(auiIcons);\n }\n\n getDefaultIconPrefix(): string {\n return this.defaultIconPrefix;\n }\n\n replaceDefaultIconPrefix(prefix: string): void {\n this.defaultIconPrefix = prefix;\n }\n\n registerSvgSymbolsByUrl(url: string) {\n if (!this.httpClient) {\n throw getAuiIconNoHttpProviderError();\n }\n this.httpClient\n .get(url, {\n responseType: 'text',\n })\n .subscribe(\n res => {\n this.registerSvgSymbolsByString(res);\n },\n () => {\n throw getAuiIconFailedToLoadCustomIconFile(url);\n },\n );\n }\n\n registerSvgSymbolsByString(str: string) {\n this.appendSvg(str);\n }\n\n private appendSvg(svgString: string) {\n const setEl = this.doc.createElement('div');\n setEl.className = 'aui-icon-set';\n setEl.style.display = 'none';\n setEl.innerHTML = svgString;\n this.doc.body.append(setEl);\n }\n}\n\nexport function ICON_REGISTER_PROVIDER_FACTORY(\n parentRegister: IconRegisterService,\n document: Document,\n httpClient: HttpClient,\n) {\n return parentRegister || new IconRegisterService(document, httpClient);\n}\n\nexport const ICON_REGISTER_SERVICE_PROVIDER = {\n provide: IconRegisterService,\n deps: [\n [new Optional(), new SkipSelf(), IconRegisterService],\n [new Optional(), DOCUMENT],\n [new Optional(), HttpClient],\n ],\n useFactory: ICON_REGISTER_PROVIDER_FACTORY,\n};\n","export const auiIcons =\n '<svg><symbol id=\"aui-icon-square_s\" viewBox=\"0 0 1024 1024\"><path d=\"M950.857143 0a73.142857 73.142857 0 0 1 73.142857 73.142857v877.714286a73.142857 73.142857 0 0 1-73.142857 73.142857H73.142857a73.142857 73.142857 0 0 1-73.142857-73.142857V73.142857a73.142857 73.142857 0 0 1 73.142857-73.142857h877.714286z m-182.857143 219.428571h-512a36.571429 36.571429 0 0 0-35.986286 29.988572L219.428571 256v512a36.571429 36.571429 0 0 0 29.988572 35.986286L256 804.571429h512a36.571429 36.571429 0 0 0 35.986286-29.988572L804.571429 768v-512a36.571429 36.571429 0 0 0-29.988572-35.986286L768 219.428571z\" ></path></symbol><symbol id=\"aui-icon-close_small\" viewBox=\"0 0 1024 1024\"><path d=\"M597.333333 512l170.666667-170.666667a60.672 60.672 0 0 0 0-85.333333 60.672 60.672 0 0 0-85.333333 0L512 426.666667 341.333333 256a60.672 60.672 0 0 0-85.333333 0 60.672 60.672 0 0 0 0 85.333333l170.666667 170.666667-170.666667 170.666667a60.672 60.672 0 0 0 0 85.333333 60.672 60.672 0 0 0 85.333333 0l170.666667-170.666667 170.666667 170.666667a60.672 60.672 0 0 0 85.333333 0 60.672 60.672 0 0 0 0-85.333333L597.333333 512z\" ></path></symbol><symbol id=\"aui-icon-close\" viewBox=\"0 0 1024 1024\"><path d=\"M597.333 512l341.334-341.333a60.672 60.672 0 0 0 0-85.334 60.672 60.672 0 0 0-85.334 0L512 426.667 170.667 85.333a60.672 60.672 0 0 0-85.334 0 60.672 60.672 0 0 0 0 85.334L426.667 512 85.333 853.333a60.672 60.672 0 0 0 0 85.334 60.672 60.672 0 0 0 85.334 0L512 597.333l341.333 341.334a60.672 60.672 0 0 0 85.334 0 60.672 60.672 0 0 0 0-85.334L597.333 512z\" ></path></symbol><symbol id=\"aui-icon-arrow\" viewBox=\"0 0 1024 1024\"><path d=\"M700.352 180.16l301.696 301.696a42.56 42.56 0 0 1 0 60.288l-301.696 301.696a42.688 42.688 0 1 1-60.352-60.288l228.8-228.928H52.16a42.688 42.688 0 0 1 0-85.312h816.64L640 240.448a42.688 42.688 0 0 1 60.352-60.288z\" ></path></symbol><symbol id=\"aui-icon-time\" viewBox=\"0 0 1024 1024\"><path d=\"M567.678 277.319v278.584a20.735 20.735 0 0 1-5.951 15.36 20.735 20.735 0 0 1-15.36 5.951h-192.25a20.735 20.735 0 0 1-15.36-6.016 20.735 20.735 0 0 1-5.952-15.36V523.2c0-6.208 1.984-11.328 6.016-15.36a20.735 20.735 0 0 1 15.36-5.952h145.915v-224.57c0-6.207 1.92-11.327 5.952-15.359a20.735 20.735 0 0 1 15.36-5.952h24.959c6.208 0 11.328 1.984 15.36 6.016a20.735 20.735 0 0 1 6.015 15.36z m318.327 451.443A422.26 422.26 0 0 0 943.988 512a422.26 422.26 0 0 0-57.983-216.762 430.644 430.644 0 0 0-157.243-157.243A422.26 422.26 0 0 0 512 80.012a422.26 422.26 0 0 0-216.762 57.983 430.644 430.644 0 0 0-157.243 157.243A422.26 422.26 0 0 0 80.012 512c0 78.334 19.328 150.588 57.983 216.762a430.644 430.644 0 0 0 157.243 157.243A422.26 422.26 0 0 0 512 943.988a422.26 422.26 0 0 0 216.762-57.983 430.644 430.644 0 0 0 157.243-157.243z m69.31-473.395A499.058 499.058 0 0 1 1023.985 512c0 92.861-22.911 178.555-68.67 257.017a509.681 509.681 0 0 1-186.298 186.298A500.85 500.85 0 0 1 512 1023.985a500.85 500.85 0 0 1-257.017-68.67A509.681 509.681 0 0 1 68.685 769.017 500.85 500.85 0 0 1 0.015 512c0-92.861 22.911-178.555 68.67-257.017A509.681 509.681 0 0 1 254.983 68.685 500.85 500.85 0 0 1 512 0.015c92.861 0 178.555 22.911 257.017 68.67a508.913 508.913 0 0 1 186.298 186.682z\" ></path></symbol><symbol id=\"aui-icon-calendar\" viewBox=\"0 0 1024 1024\"><path d=\"M332.8 25.6L332.736 128h358.4L691.2 25.6H768L767.936 128H947.2v870.4H76.8V128h179.136L256 25.6h76.8zM255.936 209.6H158.4v707.2h707.2V209.6h-97.664L768 256h-76.8l-0.064-46.4h-358.4L332.8 256H256l-0.064-46.4zM704 601.6v76.8H320V601.6h384z m0-192v76.8H320V409.6h384z\" ></path></symbol><symbol id=\"aui-icon-check_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024zM248 536l192 192 336-336L704 320 440 584 320 464 248 536z\" ></path></symbol><symbol id=\"aui-icon-close_circle_small_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024z m85.333333-512l170.666667-170.666667a60.672 60.672 0 0 0 0-85.333333 60.672 60.672 0 0 0-85.333333 0L512 426.666667 341.333333 256a60.672 60.672 0 0 0-85.333333 0 60.672 60.672 0 0 0 0 85.333333l170.666667 170.666667-170.666667 170.666667a60.672 60.672 0 0 0 0 85.333333 60.672 60.672 0 0 0 85.333333 0l170.666667-170.666667 170.666667 170.666667a60.672 60.672 0 0 0 85.333333 0 60.672 60.672 0 0 0 0-85.333333L597.333333 512z\" ></path></symbol><symbol id=\"aui-icon-angle_down\" viewBox=\"0 0 1024 1024\"><path d=\"M512 678.4a38.4 38.4 0 0 1-27.136-11.264l-256-256a38.272 38.272 0 0 1 0-54.272 38.272 38.272 0 0 1 54.272 0L512 585.664l228.864-228.8a38.272 38.272 0 0 1 54.272 0 38.272 38.272 0 0 1 0 54.272l-256 256A38.4 38.4 0 0 1 512 678.4\" ></path></symbol><symbol id=\"aui-icon-angle_double_left\" viewBox=\"0 0 1024 1024\"><path d=\"M568.64 749.44a19.776 19.776 0 0 1-5.696 13.12l-28.544 28.544a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696L241.856 524.8a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12L508.16 232.256a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696l28.544 28.544a19.584 19.584 0 0 1 5.696 13.12 19.776 19.776 0 0 1-5.696 13.12L338.368 511.616l224.576 224.576a19.584 19.584 0 0 1 5.696 13.12v0.128z m219.456 0a19.776 19.776 0 0 1-5.696 13.12l-28.544 28.544a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696L461.312 524.8a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l266.304-266.304a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696l28.544 28.544a19.584 19.584 0 0 1 5.696 13.12 19.776 19.776 0 0 1-5.696 13.12L557.824 511.616l224.576 224.576a19.584 19.584 0 0 1 5.696 13.12v0.128z\" ></path></symbol><symbol id=\"aui-icon-angle_double_right\" viewBox=\"0 0 1024 1024\"><path d=\"M568.64 511.552a19.776 19.776 0 0 1-5.696 13.12l-266.304 266.304a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696l-28.544-28.544a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l224.576-224.576-224.576-224.576a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l28.544-28.544a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696L562.944 498.56a19.584 19.584 0 0 1 5.696 13.12v-0.128z m219.392 0a19.776 19.776 0 0 1-5.696 13.12l-266.304 266.304a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696l-28.544-28.544a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l224.576-224.576-224.576-224.576a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l28.544-28.544a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696l266.304 266.304a19.584 19.584 0 0 1 5.696 13.12v-0.128z\" ></path></symbol><symbol id=\"aui-icon-caret_down_s\" viewBox=\"0 0 1024 1024\"><path d=\"M269.248 384h485.504a32 32 0 0 1 22.592 54.656l-242.688 242.688a32 32 0 0 1-45.312 0L246.656 438.656A32 32 0 0 1 269.248 384z\" ></path></symbol><symbol id=\"aui-icon-angle_left\" viewBox=\"0 0 1024 1024\"><path d=\"M345.6 512a38.4 38.4 0 0 1 11.264-27.136l256-256a38.272 38.272 0 0 1 54.272 0 38.272 38.272 0 0 1 0 54.272L438.336 512l228.8 228.864a38.272 38.272 0 0 1 0 54.272 38.272 38.272 0 0 1-54.272 0l-256-256A38.4 38.4 0 0 1 345.6 512\" ></path></symbol><symbol id=\"aui-icon-check_triangle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M1024 1024H0L1024 0v1024z m-544-288L640 896l256-256-64-64-192 192-96-96-64 64z\" ></path></symbol><symbol id=\"aui-icon-check\" viewBox=\"0 0 1024 1024\"><path d=\"M974.656 224.96c11.552 12.064 17.344 26.72 17.344 43.968s-5.792 31.904-17.344 43.968L442.016 868.864c-11.552 12.064-25.6 18.112-42.112 18.112s-30.56-6.048-42.112-18.112L49.344 546.912C37.792 534.848 32 520.192 32 502.944s5.792-31.904 17.344-43.968l84.224-87.904c11.552-12.064 25.6-18.112 42.112-18.112s30.56 6.048 42.112 18.112l182.08 190.72L806.176 137.056c11.552-12.064 25.6-18.112 42.112-18.112s30.56 6.048 42.112 18.112l84.224 87.904z\" ></path></symbol><symbol id=\"aui-icon-ellipsis_h_s\" viewBox=\"0 0 1024 1024\"><path d=\"M192 416a96 96 0 1 1 0 192 96 96 0 0 1 0-192z m320 0a96 96 0 1 1 0 192 96 96 0 0 1 0-192z m320 0a96 96 0 1 1 0 192 96 96 0 0 1 0-192z\" ></path></symbol><symbol id=\"aui-icon-exclamation_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0c282.688 0 512 229.312 512 512s-229.312 512-512 512-512-229.312-512-512 229.312-512 512-512z m85.312 831.36v-126.72c0-11.968-9.344-21.952-20.672-21.952h-128a22.208 22.208 0 0 0-21.952 21.952v126.72c0 11.968 9.984 21.952 21.952 21.952h128c11.392 0 20.672-9.984 20.672-21.952z m-1.28-229.376L608 187.968a13.376 13.376 0 0 0-6.656-11.968 25.664 25.664 0 0 0-16-5.312H438.656a25.664 25.664 0 0 0-16 5.312 13.376 13.376 0 0 0-6.656 12.032l11.328 413.952c0 9.344 9.984 16.64 22.656 16.64h123.328c12.032 0 22.016-7.296 22.656-16.64z\" ></path></symbol><symbol id=\"aui-icon-check_s\" viewBox=\"0 0 1024 1024\"><path d=\"M169.024 534.976L247.04 456.96a12.8 12.8 0 0 1 18.048 0L416 608l342.976-342.976a12.8 12.8 0 0 1 18.048 0L855.04 343.04a12.8 12.8 0 0 1 0 18.048L424.96 791.04a12.8 12.8 0 0 1-18.048 0L168.96 552.96a12.8 12.8 0 0 1 0-18.048z\" ></path></symbol><symbol id=\"aui-icon-compress_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 549.952v265.856c0 10.24-3.776 19.2-11.264 26.688a36.48 36.48 0 0 1-26.688 11.264 36.48 36.48 0 0 1-26.752-11.264L361.856 757.12l-196.992 196.992a18.752 18.752 0 0 1-27.264 0L69.952 886.4a18.752 18.752 0 0 1 0-27.264l196.992-196.992L181.504 576.64a36.48 36.48 0 0 1-11.264-26.752c0-10.24 3.712-19.2 11.264-26.688A36.48 36.48 0 0 1 208.192 512h265.856c10.24 0 19.2 3.776 26.688 11.264A36.48 36.48 0 0 1 512 549.952z m442.048-412.352a18.752 18.752 0 0 1 0 27.264L757.12 361.856l85.44 85.44a36.48 36.48 0 0 1 11.264 26.752c0 10.24-3.712 19.2-11.264 26.688a36.48 36.48 0 0 1-26.688 11.264H549.952a36.48 36.48 0 0 1-26.688-11.264A36.48 36.48 0 0 1 512 474.048V208.192c0-10.24 3.776-19.2 11.264-26.688a36.48 36.48 0 0 1 26.688-11.264c10.304 0 19.2 3.712 26.752 11.264l85.44 85.44 196.992-196.992a18.752 18.752 0 0 1 27.264 0l67.648 67.648z\" ></path></symbol><symbol id=\"aui-icon-angle_right\" viewBox=\"0 0 1024 1024\"><path d=\"M678.4 512a38.4 38.4 0 0 1-11.264 27.136l-256 256a38.272 38.272 0 0 1-54.272 0 38.272 38.272 0 0 1 0-54.272L585.664 512 356.864 283.136a38.272 38.272 0 0 1 0-54.272 38.272 38.272 0 0 1 54.272 0l256 256A38.4 38.4 0 0 1 678.4 512\" ></path></symbol><symbol id=\"aui-icon-export\" viewBox=\"0 0 1024 1024\"><path d=\"M729.6 624H448v-96h281.6V452.352a32 32 0 0 1 52.48-24.64l148.48 123.712a32 32 0 0 1 0 49.152l-148.48 123.712a32 32 0 0 1-52.48-24.64V624zM832 384h-64V128H128v768h640v-128h64v128a64 64 0 0 1-64 64H128a64 64 0 0 1-64-64V128a64 64 0 0 1 64-64h640a64 64 0 0 1 64 64v256z\" ></path></symbol><symbol id=\"aui-icon-import\" viewBox=\"0 0 1024 1024\"><path d=\"M678.4 528H960v96h-281.6v75.648a32 32 0 0 1-52.48 24.64L477.44 600.576a32 32 0 0 1 0-49.152l148.48-123.712a32 32 0 0 1 52.48 24.64V528zM832 384h-64V128H128v768h640v-128h64v128a64 64 0 0 1-64 64H128a64 64 0 0 1-64-64V128a64 64 0 0 1 64-64h640a64 64 0 0 1 64 64v256z\" ></path></symbol><symbol id=\"aui-icon-exclamation_triangle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M585.152 849.792V741.12a18.56 18.56 0 0 0-18.304-18.88H457.152a18.56 18.56 0 0 0-18.304 18.88v108.608c0 10.24 8 18.88 18.304 18.88h109.696a18.56 18.56 0 0 0 18.304-18.88z m-1.152-213.76l10.24-262.272a13.824 13.824 0 0 0-5.632-10.88c-3.456-2.816-8.576-6.272-13.76-6.272H449.152c-5.12 0-10.24 3.456-13.696 6.272-3.968 2.88-5.76 8.576-5.76 12.032l9.792 261.12c0 7.488 8.576 13.184 19.392 13.184h105.728c10.304 0 18.88-5.76 19.456-13.12zM576 102.336l438.912 804.672a73.088 73.088 0 0 1-64 108.032H73.088c-25.664 0-49.664-13.76-62.848-36.032a72 72 0 0 1-1.152-72L448 102.272a72.704 72.704 0 0 1 128 0z\" ></path></symbol><symbol id=\"aui-icon-expand_s\" viewBox=\"0 0 1024 1024\"><path d=\"M498.56 591.936a18.432 18.432 0 0 1 0 26.816l-193.664 193.664 84.032 84.032a35.84 35.84 0 0 1 11.072 26.24 35.84 35.84 0 0 1-11.072 26.24 35.84 35.84 0 0 1-26.24 11.072H101.312a35.84 35.84 0 0 1-26.24-11.072 35.84 35.84 0 0 1-11.072-26.24v-261.376a35.84 35.84 0 0 1 11.072-26.24 35.84 35.84 0 0 1 26.24-11.072 35.84 35.84 0 0 1 26.24 11.072l84.032 84.032L405.248 525.44a18.432 18.432 0 0 1 26.88 0L498.56 591.936zM960 101.312v261.376a35.84 35.84 0 0 1-11.072 26.24 35.84 35.84 0 0 1-26.24 11.072 35.84 35.84 0 0 1-26.24-11.072l-84.032-84.032L618.752 498.56a18.432 18.432 0 0 1-26.88 0L525.44 432.064a18.432 18.432 0 0 1 0-26.816l193.664-193.664-84.032-84.032a35.84 35.84 0 0 1-11.072-26.24 35.84 35.84 0 0 1 11.072-26.24 35.84 35.84 0 0 1 26.24-11.072h261.376a35.84 35.84 0 0 1 26.24 11.072 35.84 35.84 0 0 1 11.072 26.24z\" ></path></symbol><symbol id=\"aui-icon-minus_s\" viewBox=\"0 0 1024 1024\"><path d=\"M256 448h512a64 64 0 0 1 0 128H256a64 64 0 0 1 0-128\" ></path></symbol><symbol id=\"aui-icon-minus\" viewBox=\"0 0 1024 1024\"><path d=\"M904 448H120C86.4 448 64 470.4 64 504s22.4 56 56 56h784c33.6 0 56-22.4 56-56S937.6 448 904 448z\" ></path></symbol><symbol id=\"aui-icon-info_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0a512 512 0 1 1 0 1024A512 512 0 0 1 512 0zM448 304v32c0 26.368 21.632 48 48 48h32c26.368 0 48-21.632 48-48v-32A48.192 48.192 0 0 0 528 256h-32a48.192 48.192 0 0 0-48 48zM640 768v-64H576V448H384v64h64v192H384v64h256z\" ></path></symbol><symbol id=\"aui-icon-navigation_expand\" viewBox=\"0 0 1024 1024\"><path d=\"M512 192l256 320-256 320H448V192h64zM256 192h64v640H256V192z\" ></path></symbol><symbol id=\"aui-icon-copy\" viewBox=\"0 0 1024 1024\"><path d=\"M742.848 865.728v40.768c0 29.44-25.088 53.504-55.936 53.504h-503.04C153.152 960 128 936 128 906.496V226.816c0-29.568 25.088-53.568 55.936-53.568h124.096v-40.96c0-37.76 29.824-68.288 66.624-68.288h271.36C784.192 64 896 178.56 896 320v477.44c0 37.76-29.824 68.288-66.624 68.288h-86.528z m0-51.2h86.528c9.152 0 16.64-7.616 16.64-17.024V319.936c0-113.088-89.536-204.8-199.936-204.8h-271.36c-9.28 0-16.704 7.68-16.704 17.088v41.024h192.768c128 127.744 192.064 192.768 192.064 195.008v446.272z m-52.608 95.104V388.864h-197.12V223.68H180.672v685.952h509.568zM533.44 347.52h126.912L533.504 223.488V347.52z\" ></path></symbol><symbol id=\"aui-icon-plus\" viewBox=\"0 0 1024 1024\"><path d=\"M904 456h-336v-336C568 86.4 545.6 64 512 64s-56 22.4-56 56v336h-336C86.4 456 64 478.4 64 512s22.4 56 56 56h336v336c0 33.6 22.4 56 56 56s56-22.4 56-56v-336h336c33.6 0 56-22.4 56-56s-22.4-56-56-56z\" ></path></symbol><symbol id=\"aui-icon-back_top\" viewBox=\"0 0 1024 1024\"><path d=\"M545.07353 181.552571a42.2855 42.2855 0 0 0-34.480914-12.346599l-0.511776 0.063972a37.551571 37.551571 0 0 0-1.471357 0.191916c-0.383832 0-0.703692 0.127944-1.023552 0.191916l-1.023552 0.127944a42.413444 42.413444 0 0 0-1.27944 0.319861l-0.63972 0.127944a37.103767 37.103767 0 0 0-1.471357 0.447804l-0.511776 0.127944a39.150871 39.150871 0 0 0-1.535328 0.511776l-0.447804 0.127944a43.820828 43.820828 0 0 0-1.535328 0.63972l-0.383833 0.063972a36.400075 36.400075 0 0 0-1.5993 0.703692l-0.255888 0.127944a44.460549 44.460549 0 0 0-1.663272 0.831636l-0.191916 0.127944a44.652465 44.652465 0 0 0-10.939214 8.316362L117.804461 551.502718a43.24508 43.24508 0 0 0 0 60.773411c16.632723 16.760667 43.692884 16.760667 60.325607 0l294.271256-296.510277v665.180984a42.861248 42.861248 0 0 0 42.541389 43.053164h-0.191916a42.733304 42.733304 0 0 0 42.477416-43.053164v-665.308928l294.463172 296.446305c16.632723 16.760667 43.692884 16.632723 60.325608-0.255888a42.989192 42.989192 0 0 0 0.063972-60.517523l-367.007435-369.758231zM991.790092 43.181108a42.60536 42.60536 0 0 0-42.477416-42.733304H74.687324C51.209596 0.447804 32.209908 19.575436 32.209908 43.181108c0 23.669645 18.999688 42.861248 42.477416 42.861248h874.625352c23.477728 0 42.477416-19.191604 42.477416-42.861248z\" ></path></symbol><symbol id=\"aui-icon-moon\" viewBox=\"0 0 1024 1024\"><path d=\"M831.68 749.568c-21.952 3.456-44.224 5.248-66.944 5.248a414.592 414.592 0 0 1-204.992-52.48 396.16 396.16 0 0 1-148.992-142.848 372.224 372.224 0 0 1-54.784-196.48c0-74.56 21.12-144 63.296-208.064a381.44 381.44 0 0 0-199.872 133.504 352.256 352.256 0 0 0-77.504 223.872c0 50.496 10.304 98.752 30.976 144.832 20.672 46.08 48.384 85.696 83.072 118.912 34.624 33.28 76.032 59.776 124.096 79.616 48 19.84 98.432 29.696 151.104 29.696 58.432 0 113.92-11.968 166.4-35.84a386.24 386.24 0 0 0 134.144-99.968z m123.456-49.536c-38.144 78.848-95.616 141.888-172.48 189.12A471.424 471.424 0 0 1 531.2 960a471.552 471.552 0 0 1-181.248-35.584 473.088 473.088 0 0 1-149.056-95.552 451.008 451.008 0 0 1-99.712-142.848A420.032 420.032 0 0 1 64 512.32c0-59.52 11.648-116.352 35.008-170.56a442.112 442.112 0 0 1 94.848-140.8 465.856 465.856 0 0 1 143.232-95.872 481.472 481.472 0 0 1 176.448-39.936c17.856-0.768 30.208 6.784 37.12 22.72 7.296 16 4.224 29.952-9.152 41.984a310.912 310.912 0 0 0-80 105.792 301.952 301.952 0 0 0-27.648 127.36c0 57.6 14.784 110.592 44.416 159.168 29.568 48.64 69.76 87.04 120.384 115.456a334.272 334.272 0 0 0 166.08 42.56c47.872 0 94.08-9.92 138.688-29.76 16.64-6.976 31.232-4.48 43.776 7.616a35.648 35.648 0 0 1 10.688 19.84 36.032 36.032 0 0 1-2.752 22.144z\" ></path></symbol><symbol id=\"aui-icon-navigation_collapse\" viewBox=\"0 0 1024 1024\"><path d=\"M512 832L256 512l256-320h64v640H512z m192-640h64v640h-64V192z\" ></path></symbol><symbol id=\"aui-icon-sun\" viewBox=\"0 0 1024 1024\"><path d=\"M787.392 623.808c16-35.712 24.064-73.024 24.064-112 0-39.04-7.936-76.352-23.808-111.872a288.96 288.96 0 0 0-64.32-92.032A303.68 303.68 0 0 0 627.2 246.336a305.792 305.792 0 0 0-116.8-22.72c-40.768 0-79.744 7.552-116.864 22.72-37.12 15.168-69.12 35.712-96.192 61.568a288.96 288.96 0 0 0-64.256 92.032 271.296 271.296 0 0 0-23.808 111.808c0 39.04 7.936 76.288 23.808 111.808a288.96 288.96 0 0 0 64.256 92.032c27.008 25.856 59.072 46.4 96.192 61.568 37.12 15.168 76.096 22.784 116.864 22.784s79.68-7.616 116.8-22.784a303.68 303.68 0 0 0 96.192-61.568 286.272 286.272 0 0 0 64-91.776z m168.32 26.496c-1.408 5.056-4.864 8.32-10.432 10.048l-152.704 48v153.088a15.424 15.424 0 0 1-6.784 12.992c-5.184 3.328-10.24 4.032-15.168 2.048l-152.64-47.04-94.08 124.032a16.64 16.64 0 0 1-13.568 6.528 16.64 16.64 0 0 1-13.632-6.528l-94.08-124.032-152.64 47.04c-4.864 1.92-9.92 1.28-15.168-2.048a15.424 15.424 0 0 1-6.784-12.992v-153.088l-152.64-48c-5.568-1.664-9.088-4.992-10.432-10.048-1.792-5.632-1.088-10.496 2.048-14.464l94.08-124.096-94.08-124.032a15.36 15.36 0 0 1-2.048-14.528c1.344-4.992 4.864-8.32 10.432-10.048l152.64-48V162.048c0-5.312 2.24-9.664 6.784-12.992 5.248-3.328 10.24-4.032 15.168-1.984l152.64 46.976 94.08-124.032A16.256 16.256 0 0 1 510.336 64c5.888 0 10.432 1.984 13.568 6.016l94.08 124.032 152.64-46.976c4.928-2.048 9.984-1.344 15.168 1.92 4.544 3.392 6.784 7.68 6.784 13.056v153.088l152.704 48c5.568 1.728 9.024 5.056 10.432 10.048a15.36 15.36 0 0 1-2.112 14.528l-94.08 124.032 94.08 124.096c3.2 3.968 3.84 8.832 2.112 14.464z\" ></path></symbol><symbol id=\"aui-icon-search_s\" viewBox=\"0 0 1024 1024\"><path d=\"M613.248 613.76c47.36-47.36 71.04-104.32 71.04-170.688 0-66.432-23.552-123.2-70.784-170.432-47.232-47.168-104-70.784-170.432-70.784-66.432 0-123.2 23.616-170.432 70.784-47.168 47.232-70.784 104-70.784 170.432 0 66.432 23.616 123.2 70.784 170.432 47.232 47.232 104 70.784 170.432 70.784A231.872 231.872 0 0 0 613.248 613.76zM960 891.072c0 18.688-6.848 34.816-20.48 48.448-13.632 13.632-29.76 20.48-48.448 20.48a64 64 0 0 1-48.448-20.48l-184.704-184.128a368.704 368.704 0 0 1-214.848 66.752 372.48 372.48 0 0 1-147.264-29.888 379.008 379.008 0 0 1-121.152-80.768 379.008 379.008 0 0 1-80.768-121.152A372.48 372.48 0 0 1 64 443.136c0-51.392 9.984-100.48 29.888-147.328a379.008 379.008 0 0 1 80.768-121.152c33.92-33.92 74.304-60.8 121.152-80.768A372.48 372.48 0 0 1 443.072 64c51.328 0 100.48 9.984 147.264 29.888a379.008 379.008 0 0 1 121.152 80.768c33.92 33.92 60.8 74.304 80.768 121.152a372.48 372.48 0 0 1 29.888 147.264 368.704 368.704 0 0 1-66.752 214.848l184.704 184.704c13.248 13.248 19.904 29.44 19.904 48.448z\" ></path></symbol><symbol id=\"aui-icon-history_s\" viewBox=\"0 0 1024 1024\"><path d=\"M924.416 338.176A435.84 435.84 0 0 1 960 512a435.84 435.84 0 0 1-35.584 173.824 451.968 451.968 0 0 1-95.68 142.912 451.968 451.968 0 0 1-142.912 95.68A435.84 435.84 0 0 1 512 960a444.8 444.8 0 0 1-190.72-42.24 437.952 437.952 0 0 1-154.048-119.36 20.8 20.8 0 0 1-3.776-13.12 17.28 17.28 0 0 1 4.992-11.968l79.872-80.448a20.992 20.992 0 0 1 14.592-5.312c6.208 0.832 10.688 3.2 13.44 7.04a292.8 292.8 0 0 0 104.384 85.76A294.144 294.144 0 0 0 512 810.688c40.448 0 79.04-7.872 115.84-23.68a300.928 300.928 0 0 0 95.36-63.872c26.816-26.816 48.064-58.624 63.872-95.36 15.744-36.736 23.616-75.328 23.616-115.776 0-40.448-7.872-79.04-23.68-115.84A300.928 300.928 0 0 0 723.2 300.8a300.928 300.928 0 0 0-95.36-63.872A290.944 290.944 0 0 0 512 213.312c-38.08 0-74.688 6.912-109.696 20.736a289.792 289.792 0 0 0-93.312 59.2L388.928 373.76c12.032 11.648 14.72 25.088 8.128 40.256-6.592 15.552-18.048 23.296-34.368 23.296H101.312a35.84 35.84 0 0 1-26.24-11.072A35.84 35.84 0 0 1 64 400V138.688c0-16.384 7.808-27.84 23.36-34.432 15.168-6.592 28.544-3.84 40.192 8.192l75.84 75.2a452.8 452.8 0 0 1 142.656-91.264A439.424 439.424 0 0 1 512 64a435.84 435.84 0 0 1 173.824 35.584c55.232 23.68 102.848 55.616 142.912 95.68a451.968 451.968 0 0 1 95.68 142.912z m-337.728 5.824v261.312a18.176 18.176 0 0 1-5.248 13.44 18.176 18.176 0 0 1-13.44 5.248H381.312a18.176 18.176 0 0 1-13.44-5.248 18.176 18.176 0 0 1-5.184-13.44v-37.312c0-5.44 1.728-9.92 5.248-13.44a18.176 18.176 0 0 1 13.44-5.248H512V344c0-5.44 1.728-9.92 5.248-13.44a18.176 18.176 0 0 1 13.44-5.248h37.312c5.44 0 9.92 1.792 13.44 5.248a18.176 18.176 0 0 1 5.248 13.44z\" ></path></symbol><symbol id=\"aui-icon-check_circle\" viewBox=\"0 0 24 24\"><path d=\"M12,0 C18.627417,0 24,5.372583 24,12 C24,18.627417 18.627417,24 12,24 C5.372583,24 0,18.627417 0,12 C0,5.372583 5.372583,0 12,0 Z M12,1 C5.92486775,1 1,5.92486775 1,12 C1,18.0751322 5.92486775,23 12,23 C18.0751322,23 23,18.0751322 23,12 C23,5.92486775 18.0751322,1 12,1 Z M16.5,8 L18,9.588 L11,17 L7,12.765 L8.5,11.176 L11,13.824 L16.5,8 Z\"/></symbol><symbol id=\"aui-icon-sync_circle\" viewBox=\"0 0 24 24\"><path d=\"M11.5,-0.5 C18.127417,-0.5 23.5,4.872583 23.5,11.5 C23.5,18.127417 18.127417,23.5 11.5,23.5 C4.872583,23.5 -0.5,18.127417 -0.5,11.5 C-0.5,4.872583 4.872583,-0.5 11.5,-0.5 Z M11.5,0.5 C5.42486775,0.5 0.5,5.42486775 0.5,11.5 C0.5,17.5751322 5.42486775,22.5 11.5,22.5 C17.5751322,22.5 22.5,17.5751322 22.5,11.5 C22.5,5.42486775 17.5751322,0.5 11.5,0.5 Z M18.0455081,12.4032823 C18.2571452,12.4032823 18.4179194,12.5954153 18.3787702,12.8034113 C17.7680202,16.0465 14.9206008,18.5 11.5,18.5 C9.62445161,18.5 7.92122177,17.7622903 6.66449597,16.5613105 L5.65641129,17.5693952 C5.22966532,17.9961411 4.5,17.6938992 4.5,17.090375 L4.5,13.3064516 C4.5,12.9323185 4.80328629,12.6290323 5.17741935,12.6290323 L8.96134274,12.6290323 C9.56486694,12.6290323 9.86710887,13.3586976 9.4403629,13.7854718 L8.26193548,14.9638992 C9.14433065,15.7901532 10.2895363,16.2430645 11.5044032,16.2419637 C13.6895887,16.2399879 15.5778105,14.7419315 16.0991976,12.6615484 C16.1371331,12.5101734 16.271996,12.4032823 16.4280565,12.4032823 L18.0455081,12.4032823 Z M11.5,4.5 C13.3755484,4.5 15.0787782,5.23770968 16.335504,6.43868952 L17.3435887,5.43060484 C17.7703347,5.00385887 18.5,5.30610081 18.5,5.909625 L18.5,9.69354839 C18.5,10.0676814 18.1967137,10.3709677 17.8225806,10.3709677 L14.0386573,10.3709677 C13.4351331,10.3709677 13.1328911,9.64130242 13.5596371,9.21452823 L14.7380645,8.03612903 C13.8556694,7.20990323 12.7105484,6.75699194 11.4957097,6.75806452 C9.30939516,6.75998387 7.42193548,8.25905645 6.90080242,10.3385081 C6.86286694,10.4898831 6.72800403,10.5967742 6.57194355,10.5967742 L4.95452016,10.5967742 C4.74288306,10.5967742 4.58210887,10.4046411 4.62125806,10.1966452 C5.23197984,6.9535 8.07939919,4.5 11.5,4.5 Z\" transform=\"translate(.5 .5)\"></path></symbol><symbol id=\"aui-icon-close_circle\" viewBox=\"0 0 24 24\"><path d=\"M12,0 C18.627417,0 24,5.372583 24,12 C24,18.627417 18.627417,24 12,24 C5.372583,24 0,18.627417 0,12 C0,5.372583 5.372583,0 12,0 Z M12,1 C5.92486775,1 1,5.92486775 1,12 C1,18.0751322 5.92486775,23 12,23 C18.0751322,23 23,18.0751322 23,12 C23,5.92486775 18.0751322,1 12,1 Z M15.2301716,6.7 C15.4530454,6.7 15.6759193,6.78894965 15.8368282,6.94985857 L17.0501414,8.16317179 C17.2110503,8.32408071 17.3,8.54695455 17.3,8.7698284 C17.3,8.99270224 17.2110503,9.21557609 17.0501414,9.37648501 L14.4266264,12 L17.0501414,14.623515 C17.2110503,14.7844239 17.3,15.0072978 17.3,15.2301716 C17.3,15.4530454 17.2110503,15.6759193 17.0501414,15.8368282 L15.8368282,17.0501414 C15.6759193,17.2110503 15.4530454,17.3 15.2301716,17.3 C15.0072978,17.3 14.7844239,17.2110503 14.623515,17.0501414 L12,14.4266264 L9.37648501,17.0501414 C9.21557609,17.2110503 8.99270224,17.3 8.7698284,17.3 C8.54695455,17.3 8.32408071,17.2110503 8.16317179,17.0501414 L6.94985857,15.8368282 C6.78894965,15.6759193 6.7,15.4530454 6.7,15.2301716 C6.7,15.0072978 6.78894965,14.7844239 6.94985857,14.623515 L9.57337356,12 L6.94985857,9.37648501 C6.78894965,9.21557609 6.7,8.99270224 6.7,8.7698284 C6.7,8.54695455 6.78894965,8.32408071 6.94985857,8.16317179 L8.16317179,6.94985857 C8.32408071,6.78894965 8.54695455,6.7 8.7698284,6.7 C8.99270224,6.7 9.21557609,6.78894965 9.37648501,6.94985857 L12,9.57337356 L14.623515,6.94985857 C14.7844239,6.78894965 15.0072978,6.7 15.2301716,6.7 Z\"></path></symbol><symbol id=\"aui-icon-sync_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024z m148.032-670.336l-53.888 53.888a30.976 30.976 0 0 0 21.888 52.864h172.992A30.976 30.976 0 0 0 832 429.44V256.448a30.976 30.976 0 0 0-52.864-21.888l-46.08 46.08a320.064 320.064 0 0 0-535.488 171.776 15.488 15.488 0 0 0 15.232 18.304H286.72a15.552 15.552 0 0 0 15.04-11.84 217.024 217.024 0 0 1 210.048-163.648c55.552 0 107.904 20.672 148.224 58.432z m-437.12 209.92A30.976 30.976 0 0 0 192 594.56v172.992c0 27.584 33.344 41.408 52.864 21.888l46.08-46.08a320.128 320.128 0 0 0 535.488-171.776 15.488 15.488 0 0 0-15.232-18.304H737.28a15.552 15.552 0 0 0-15.04 11.84 217.024 217.024 0 0 1-210.048 163.648 215.232 215.232 0 0 1-148.224-58.432l53.888-53.888a30.976 30.976 0 0 0-21.888-52.864H222.976z\" ></path></symbol><symbol id=\"aui-icon-close_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0C229.12 0 0 229.12 0 512s229.12 512 512 512 512-229.12 512-512-229.12-512-512-512z m251.072 646.4a24.768 24.768 0 0 1 0 35.072l-81.792 81.6a24.768 24.768 0 0 1-35.072 0L512 627.584l-134.4 135.488a24.768 24.768 0 0 1-35.072 0l-81.6-81.792a24.768 24.768 0 0 1 0-35.072L396.416 512 260.928 377.6a24.768 24.768 0 0 1 0-35.072l81.792-81.792a24.768 24.768 0 0 1 35.072 0L512 396.416l134.4-135.488a24.768 24.768 0 0 1 35.072 0l81.792 81.792a24.768 24.768 0 0 1 0 35.072L627.584 512l135.488 134.4z\" ></path></symbol></svg>';\n","export function getAuiIconNoHttpProviderError(): Error {\n return new Error(\n 'Could not find HttpClient provider for use with Alauda UI icons. Please include the HttpClientModule from @angular/common/http in your app imports.',\n );\n}\n\nexport function getAuiIconFailedToLoadCustomIconFile(url: string) {\n return new Error(`AuiIcon failed to load custom icon file: ${url}.`);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem, handlePixel } from '../utils';\n\nimport { IconRegisterService } from './icon-register.service';\n\nlet id = 0;\n\n@Component({\n selector: 'aui-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class IconComponent {\n @Input()\n icon: string;\n\n @Input()\n light: string;\n\n @Input()\n dark: string;\n\n @Input()\n link = '';\n\n @Input()\n margin: 'left' | 'right';\n\n @Input()\n size: string;\n\n @Input()\n color: string;\n\n @Input()\n background: 'circle' | 'triangle';\n\n @Input()\n backgroundColor: string;\n\n bem: Bem = buildBem('aui-icon');\n\n id = id++;\n\n constructor(private readonly iconRegisterService: IconRegisterService) {}\n\n private parseIcon(icon: string): [string, string] {\n const defaultPrefix = this.iconRegisterService.getDefaultIconPrefix();\n const arr = (icon || '').split(':');\n return arr.length < 2 ? [defaultPrefix, arr[0]] : [arr[0], arr[1]];\n }\n\n getWidth() {\n if (!this.size) {\n return false;\n }\n return handlePixel((this.size || '').split(',')[0]);\n }\n\n getHeight() {\n if (!this.size) {\n return false;\n }\n const arr = (this.size || '').split(',');\n return handlePixel(arr[1] || arr[0]);\n }\n\n getIconId(icon: string) {\n const [prefix, name] = this.parseIcon(icon);\n return `${prefix}-${name}`;\n }\n\n getClass(id: string) {\n return `${this.bem.block(this.margin)} ${id}`;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThemeModule } from '../theme/public-api';\n\nimport { ICON_REGISTER_SERVICE_PROVIDER } from './icon-register.service';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [CommonModule, ThemeModule],\n declarations: [IconComponent],\n exports: [IconComponent],\n providers: [ICON_REGISTER_SERVICE_PROVIDER],\n})\nexport class IconModule {}\n","import { CdkCellDef } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n/**\n * Cell definition for the aui-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\n@Directive({\n selector: '[auiTableCellDef]',\n providers: [\n {\n provide: CdkCellDef,\n useExisting: TableCellDefDirective,\n },\n ],\n})\nexport class TableCellDefDirective extends CdkCellDef {}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CdkCell } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-table-cell[auiExpandButton]',\n template: `\n <button\n type=\"button\"\n class=\"aui-expand-button\"\n [class.isExpanded]=\"expand\"\n [disabled]=\"disabled\"\n (click)=\"expandChange.next()\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TableExpandButtonCellComponent extends CdkCell {\n @Input()\n expand = false;\n\n @Input()\n disabled = false;\n\n @Output()\n expandChange = new EventEmitter();\n\n get expanded() {\n return this.expand ? 'expanded' : null;\n }\n}\n@Component({\n selector: 'aui-table-cell[auiExpandPanel]',\n template: `\n <div\n *ngIf=\"expand\"\n class=\"aui-table__cell-expand-panel\"\n [@expand]=\"expanded\"\n >\n <div\n class=\"aui-table__cell-expand-panel-content\"\n [class.hasBackground]=\"background\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n animations: [\n trigger('expand', [\n state('*', style({ height: 0 })),\n state('expanded', style({ height: '*', 'margin-bottom': '15px' })),\n transition('* <=> expanded', [animate('0.1s ease-in-out')]),\n ]),\n ],\n})\nexport class TableExpandPanelCellComponent extends CdkCell {\n @Input()\n expand = false;\n\n @Input()\n background = true;\n\n get expanded() {\n return this.expand ? 'expanded' : null;\n }\n}\n","import { CdkCell, CdkColumnDef } from '@angular/cdk/table';\nimport { Directive, ElementRef } from '@angular/core';\n\nimport { buildBem } from '../utils';\n\nconst bem = buildBem('aui-table');\n\n/** Cell template container that adds the right classes and role. */\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: 'aui-table-cell',\n host: {\n class: 'aui-table__cell',\n role: 'gridcell',\n },\n})\nexport class TableCellDirective extends CdkCell {\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef<HTMLElement>) {\n super(columnDef, elementRef);\n elementRef.nativeElement.classList.add(\n bem.element(`column-${columnDef.cssClassFriendlyName}`),\n );\n }\n}\n","import { CdkColumnDef } from '@angular/cdk/table';\nimport { Directive, Input } from '@angular/core';\n\n/**\n * Column definition for the aui-table.\n * Defines a set of cells available for a table column.\n */\n@Directive({\n selector: '[auiTableColumnDef]',\n providers: [\n {\n provide: CdkColumnDef,\n useExisting: TableColumnDefDirective,\n },\n ],\n inputs: ['sticky'],\n})\nexport class TableColumnDefDirective extends CdkColumnDef {\n // Unique name for this column\n // Why it does not work in `inputs` property?\n @Input()\n set auiTableColumnDef(value: string) {\n this.name = value;\n }\n}\n","import { CdkHeaderCellDef } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n/**\n * Header cell definition for the aui-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\n@Directive({\n selector: '[auiTableHeaderCellDef]',\n providers: [\n {\n provide: CdkHeaderCellDef,\n useExisting: TableHeaderCellDefDirective,\n },\n ],\n})\nexport class TableHeaderCellDefDirective extends CdkHeaderCellDef {}\n","import { CdkColumnDef, CdkHeaderCell } from '@angular/cdk/table';\nimport { Directive, ElementRef } from '@angular/core';\n\nimport { buildBem } from '../utils';\n\nconst bem = buildBem('aui-table');\n\n/** Header cell template container that adds the right classes and role. */\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: 'aui-table-header-cell',\n host: {\n class: 'aui-table__header-cell',\n role: 'columnheader',\n },\n})\nexport class TableHeaderCellDirective extends CdkHeaderCell {\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef<HTMLElement>) {\n super(columnDef, elementRef);\n elementRef.nativeElement.classList.add(\n bem.element(`column-${columnDef.cssClassFriendlyName}`),\n );\n }\n}\n","import { CdkHeaderRowDef } from '@angular/cdk/table';\nimport { Directive, Input } from '@angular/core';\n\n/**\n * Header row definition for the aui-table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\n@Directive({\n selector: '[auiTableHeaderRowDef]',\n providers: [\n {\n provide: CdkHeaderRowDef,\n useExisting: TableHeaderRowDefDirective,\n },\n ],\n})\nexport class TableHeaderRowDefDirective extends CdkHeaderRowDef {\n @Input('auiTableHeaderRowDef')\n columns: string[];\n\n @Input('auiTableHeaderRowDefSticky')\n sticky: boolean;\n}\n","import { CDK_ROW_TEMPLATE, CdkHeaderRow } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n/** Header template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'aui-table-header-row',\n template: CDK_ROW_TEMPLATE,\n host: {\n class: 'aui-table__header-row',\n role: 'row',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'auiTableHeaderRow',\n preserveWhitespaces: false,\n})\nexport class TableHeaderRowComponent extends CdkHeaderRow {}\n","import { RowOutlet } from '@angular/cdk/table';\nimport {\n Directive,\n ElementRef,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[auiTablePlaceholderDef]',\n})\nexport class TablePlaceholderDefDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n@Directive({\n selector: '[auiTablePlaceholderOutlet]',\n})\nexport class TablePlaceholderOutlet implements RowOutlet {\n constructor(\n public viewContainer: ViewContainerRef,\n public elementRef: ElementRef,\n ) {}\n}\n","import { CdkRowDef } from '@angular/cdk/table';\nimport { Directive, Input } from '@angular/core';\n\n/**\n * Data row definition for the aui-table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\n@Directive({\n selector: '[auiTableRowDef]',\n providers: [\n {\n provide: CdkRowDef,\n useExisting: TableRowDefDirective,\n },\n ],\n})\nexport class TableRowDefDirective<T> extends CdkRowDef<T> {\n @Input('auiTableRowDefColumns')\n columns: string[];\n\n @Input('auiTableRowDefWhen')\n when: (index: number, rowData: T) => boolean;\n}\n","import { CDK_ROW_TEMPLATE, CdkRow } from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'aui-table-row',\n template: CDK_ROW_TEMPLATE,\n host: {\n class: 'aui-table__row',\n role: 'row',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'auiTableRow',\n preserveWhitespaces: false,\n})\nexport class TableRowComponent extends CdkRow implements AfterContentInit {\n @Input()\n @HostBinding('class.isDisabled')\n disabled = false;\n\n @HostBinding('class.hasPanel')\n hasPanel = false;\n\n constructor(private readonly elRef: ElementRef<HTMLElement>) {\n super();\n }\n\n ngAfterContentInit() {\n const panel = this.elRef.nativeElement.querySelector(\n 'aui-table-cell[auiExpandPanel]',\n );\n this.hasPanel = !!panel;\n }\n}\n","import {\n _DisposeViewRepeaterStrategy,\n _VIEW_REPEATER_STRATEGY,\n} from '@angular/cdk/collections';\nimport {\n CDK_TABLE,\n CDK_TABLE_TEMPLATE,\n CdkTable,\n _COALESCED_STYLE_SCHEDULER,\n _CoalescedStyleScheduler,\n} from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n TablePlaceholderDefDirective,\n TablePlaceholderOutlet,\n} from './table-placeholder.directive';\n\n@Component({\n selector: 'aui-table',\n exportAs: 'auiTable',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['table.component.scss', 'table-scroll.scss'],\n template: `\n ${CDK_TABLE_TEMPLATE}\n <ng-container auiTablePlaceholderOutlet></ng-container>\n `,\n host: {\n class: 'aui-table',\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: CDK_TABLE,\n useExisting: TableComponent,\n },\n {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy,\n },\n {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler,\n },\n ],\n})\nexport class TableComponent<T>\n extends CdkTable<T>\n implements AfterContentInit, OnDestroy {\n @Input()\n enableScrollWrapper: boolean;\n\n @ViewChild(TablePlaceholderOutlet, { static: true })\n _placeholderOutlet: TablePlaceholderOutlet;\n\n @ContentChild(TablePlaceholderDefDirective, { static: true })\n _placeholderDef: TablePlaceholderDefDirective;\n\n // FIXME: workaround to override because it will break constructor if it is field, but why MatTable works?\n // @ts-ignore\n protected get stickyCssClass() {\n return 'aui-table-sticky';\n }\n\n protected set stickyCssClass(_: string) {\n // nothing\n }\n\n ngAfterContentInit() {\n this._createPlaceholder();\n }\n\n private _createPlaceholder() {\n const footerRow = this._placeholderDef;\n if (!this._placeholderDef) {\n return;\n }\n\n const container = this._placeholderOutlet.viewContainer;\n container.createEmbeddedView(footerRow.templateRef);\n }\n\n private _clearPlaceholder() {\n this._placeholderOutlet.viewContainer.clear();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this._clearPlaceholder();\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Host,\n HostBinding,\n OnDestroy,\n} from '@angular/core';\nimport { Subject, fromEvent, merge } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { observeResizeOn } from '../utils';\nimport { TableComponent } from './table.component';\n\nconst CLASS_PREFIX = 'aui-table';\nconst SHADOW_CLASS = `${CLASS_PREFIX}__scroll-shadow`;\nconst HAS_SCROLL_CLASS = `${SHADOW_CLASS}--has-scroll`;\nconst SCROLLING_CLASS = `${SHADOW_CLASS}--scrolling`;\nconst SCROLL_BEFORE_END_CLASS = `${SHADOW_CLASS}--before-end`;\n\nconst HAS_TABLE_TOP_SHADOW = 'hasTableTopShadow';\nconst HAS_TABLE_BOTTOM_SHADOW = 'hasTableBottomShadow';\nconst HAS_TABLE_VERTICAL_SCROLL = 'hasTableVerticalScroll';\n\n@Directive({\n selector: '[auiTableScrollWrapper]',\n host: {\n class: 'aui-table__scroll-wrapper',\n },\n})\nexport class TableScrollWrapperDirective {}\n@Directive({\n selector: '[auiTableScrollShadow]',\n})\nexport class TableScrollShadowDirective implements AfterViewInit, OnDestroy {\n destroy$$ = new Subject<void>();\n constructor(\n private readonly el: ElementRef<HTMLElement>,\n @Host() private readonly table: TableComponent<unknown>,\n ) {}\n\n @HostBinding(`class.${SCROLL_BEFORE_END_CLASS}`)\n SCROLL_BEFORE_END_CLASS = true;\n\n @HostBinding(`class.${SHADOW_CLASS}`)\n SHADOW_CLASS = true;\n\n get containerEl() {\n return this.el.nativeElement;\n }\n\n ngAfterViewInit() {\n requestAnimationFrame(() => {\n this.viewMutation();\n });\n }\n\n viewMutation() {\n merge(\n observeResizeOn(this.containerEl),\n fromEvent(this.containerEl, 'scroll'),\n )\n .pipe(startWith(null as void), takeUntil(this.destroy$$))\n .subscribe(() => {\n this.mutateVerticalScroll();\n this.mutateHorizontalScroll();\n });\n }\n\n mutateVerticalScroll() {\n const scrollDis =\n this.containerEl.scrollHeight - this.containerEl.offsetHeight;\n\n this.placeClassList(\n this.containerEl.classList,\n scrollDis > 0,\n HAS_TABLE_VERTICAL_SCROLL,\n );\n\n const scrollTop = this.containerEl.scrollTop;\n this.placeClassList(\n this.containerEl.classList,\n scrollTop > 0,\n HAS_TABLE_TOP_SHADOW,\n );\n this.placeClassList(\n this.containerEl.classList,\n scrollTop < scrollDis,\n HAS_TABLE_BOTTOM_SHADOW,\n );\n\n // 兼容屏幕缩放是 sticky多列的样式问题\n this.table.updateStickyColumnStyles();\n }\n\n mutateHorizontalScroll() {\n const scrollDis =\n this.containerEl.scrollWidth - this.containerEl.offsetWidth;\n\n this.placeClassList(\n this.containerEl.classList,\n scrollDis > 0,\n HAS_SCROLL_CLASS,\n );\n\n const scrollLeft = this.containerEl.scrollLeft;\n this.placeClassList(\n this.containerEl.classList,\n scrollLeft > 0,\n SCROLLING_CLASS,\n );\n this.placeClassList(\n this.containerEl.classList,\n scrollLeft < scrollDis,\n SCROLL_BEFORE_END_CLASS,\n );\n }\n\n placeClassList(\n classList: DOMTokenList,\n condition: boolean,\n className: string,\n ) {\n classList[condition ? 'add' : 'remove'](className);\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n }\n}\n","import { CdkTableModule } from '@angular/cdk/table';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/icon.module';\n\nimport { TableCellDefDirective } from './table-cell-def.directive';\nimport {\n TableExpandButtonCellComponent,\n TableExpandPanelCellComponent,\n} from './table-cell.component';\nimport { TableCellDirective } from './table-cell.directive';\nimport { TableColumnDefDirective } from './table-column-def.directive';\nimport { TableHeaderCellDefDirective } from './table-header-cell-def.directive';\nimport { TableHeaderCellDirective } from './table-header-cell.directive';\nimport { TableHeaderRowDefDirective } from './table-header-row-def.directive';\nimport { TableHeaderRowComponent } from './table-header-row.component';\nimport {\n TablePlaceholderDefDirective,\n TablePlaceholderOutlet,\n} from './table-placeholder.directive';\nimport { TableRowDefDirective } from './table-row-def.directive';\nimport { TableRowComponent } from './table-row.component';\nimport {\n TableScrollShadowDirective,\n TableScrollWrapperDirective,\n} from './table-scroll.directive';\nimport { TableComponent } from './table.component';\n\n@NgModule({\n imports: [CommonModule, IconModule, CdkTableModule],\n declarations: [\n TableComponent,\n TableRowComponent,\n TableHeaderRowComponent,\n TableExpandButtonCellComponent,\n TableExpandPanelCellComponent,\n TableCellDirective,\n TableCellDefDirective,\n TableHeaderCellDirective,\n TableRowDefDirective,\n TableHeaderRowDefDirective,\n TableHeaderCellDefDirective,\n TableColumnDefDirective,\n TableScrollShadowDirective,\n TablePlaceholderOutlet,\n TablePlaceholderDefDirective,\n TableScrollWrapperDirective,\n ],\n exports: [\n TableComponent,\n TableRowComponent,\n TableHeaderRowComponent,\n TableExpandButtonCellComponent,\n TableExpandPanelCellComponent,\n TableCellDirective,\n TableCellDefDirective,\n TableHeaderCellDirective,\n TableRowDefDirective,\n TableHeaderRowDefDirective,\n TableHeaderCellDefDirective,\n TableColumnDefDirective,\n TableScrollShadowDirective,\n TablePlaceholderOutlet,\n TablePlaceholderDefDirective,\n TableScrollWrapperDirective,\n ],\n})\nexport class TableModule {}\n","/** @docs-private */\nexport function getSortDuplicateSortableIdError(id: string): Error {\n return new Error(`Cannot have two MatSortables with the same id (${id}).`);\n}\n\n/** @docs-private */\nexport function getSortHeaderNotContainedWithinSortError(): Error {\n return new Error(\n `MatSortHeader must be placed within a parent element with the MatSort directive.`,\n );\n}\n\n/** @docs-private */\nexport function getSortHeaderMissingIdError(): Error {\n return new Error(`MatSortHeader must be provided with a unique id.`);\n}\n\n/** @docs-private */\nexport function getSortInvalidDirectionError(direction: string): Error {\n return new Error(\n `${direction} is not a valid sort direction ('asc' or 'desc').`,\n );\n}\n","// Original code from material2\n\nimport {\n Directive,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n isDevMode,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport {\n getSortDuplicateSortableIdError,\n getSortHeaderMissingIdError,\n getSortInvalidDirectionError,\n} from './sort-errors';\nimport { Sort, SortDirection, Sortable } from './sort.types';\n\n@Directive({\n selector: '[auiSort]',\n exportAs: 'auiSort',\n})\nexport class SortDirective implements OnChanges, OnDestroy {\n sortables = new Map<string, Sortable>();\n\n readonly _stateChanges = new Subject<void>();\n\n @Input()\n active: string;\n\n @Input()\n start: 'asc' | 'desc' = 'asc';\n\n @Input()\n get direction(): SortDirection {\n return this._direction;\n }\n\n set direction(direction: SortDirection) {\n if (\n isDevMode() &&\n direction &&\n direction !== 'asc' &&\n direction !== 'desc'\n ) {\n throw getSortInvalidDirectionError(direction);\n }\n this._direction = direction;\n }\n\n private _direction: SortDirection = '';\n\n @Output()\n readonly sortChange: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n register(sortable: Sortable): void {\n if (!sortable.id) {\n throw getSortHeaderMissingIdError();\n }\n\n if (this.sortables.has(sortable.id)) {\n throw getSortDuplicateSortableIdError(sortable.id);\n }\n\n this.sortables.set(sortable.id, sortable);\n }\n\n deregister(sortable: Sortable): void {\n this.sortables.delete(sortable.id);\n }\n\n sort(sortable: Sortable): void {\n if (this.active !== sortable.id) {\n this.active = sortable.id;\n this.direction = sortable.start ? sortable.start : this.start;\n } else {\n this.direction = this.direction === 'asc' ? 'desc' : 'asc';\n }\n\n this.sortChange.emit({\n active: this.active,\n direction: this.direction,\n });\n }\n\n ngOnChanges() {\n this._stateChanges.next();\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n}\n","import { CdkColumnDef } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription, merge } from 'rxjs';\n\n/*\n * TODO: prevent ```public property '' of exported class has or is using name ''\n * from external module '' but cannot be named``` issue.\n */\nimport { Bem, buildBem } from '../utils';\n\nimport { getSortHeaderNotContainedWithinSortError } from './sort-errors';\nimport { SortDirective } from './sort.directive';\nimport { ArrowViewState, SortDirection, Sortable } from './sort.types';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: '[aui-sort-header]',\n templateUrl: 'sort-header.component.html',\n styleUrls: ['sort-header.component.scss'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SortHeaderComponent implements Sortable, OnInit, OnDestroy {\n private readonly _rerenderSubscription: Subscription;\n\n _viewState: ArrowViewState;\n\n arrowDirection: SortDirection = '';\n\n @Input('aui-sort-header')\n id: string;\n\n @Input()\n start: 'asc' | 'desc';\n\n bem: Bem = buildBem('aui-sort-header');\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional() public _sort: SortDirective,\n @Optional() public _cdkColumnRef: CdkColumnDef,\n ) {\n if (!_sort) {\n throw getSortHeaderNotContainedWithinSortError();\n }\n\n this._rerenderSubscription = merge(\n _sort.sortChange,\n _sort._stateChanges,\n ).subscribe(() => {\n if (this._isSorted()) {\n this._updateArrowDirection();\n }\n\n if (!this._isSorted() && this._viewState === 'active') {\n this._viewState = '';\n }\n\n cdr.markForCheck();\n });\n }\n\n ngOnInit() {\n if (!this.id && this._cdkColumnRef) {\n this.id = this._cdkColumnRef.name;\n }\n this._updateArrowDirection();\n this._viewState = this._isSorted() ? 'active' : '';\n this._sort.register(this);\n }\n\n ngOnDestroy() {\n this._sort.deregister(this);\n this._rerenderSubscription.unsubscribe();\n }\n\n _handleClick() {\n this._sort.sort(this);\n this._viewState = this._isSorted() ? 'active' : '';\n }\n\n _isSorted() {\n return (\n this._sort.active === this.id &&\n ['asc', 'desc'].includes(this._sort.direction)\n );\n }\n\n _updateArrowDirection() {\n this.arrowDirection = this._isSorted()\n ? this._sort.direction\n : this.start || this._sort.start;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SortHeaderComponent } from './sort-header.component';\nimport { SortDirective } from './sort.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SortDirective, SortHeaderComponent],\n exports: [SortDirective, SortHeaderComponent],\n})\nexport class SortModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-button-group',\n templateUrl: './button-group.component.html',\n styleUrls: ['./button-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class ButtonGroupComponent {}\n","import { ValueOf } from '../types';\n\nexport const ButtonType = {\n Default: 'default',\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Danger: 'danger',\n Text: 'text',\n Inline: 'inline',\n /**\n * represents default internally, @link https://github.com/angular/vscode-ng-language-service/issues/1147\n */\n Empty: '',\n /**\n * @deprecated use `ButtonType.Danger` instead\n */\n Error: 'danger',\n /**\n * @deprecated use `ButtonType.Default` instead\n */\n Info: 'default',\n} as const;\n\nexport type ButtonType = ValueOf<typeof ButtonType>;\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../types';\n\nimport { ButtonType } from './button.types';\n\nconst prefix = 'aui-button--';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'button[aui-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class ButtonComponent implements OnDestroy {\n @Input('aui-button')\n get type() {\n return this._type;\n }\n\n set type(val) {\n if (!val || val === this._type) {\n return;\n }\n this.renderer.removeClass(this.el.nativeElement, prefix + this._type);\n this.renderer.addClass(this.el.nativeElement, prefix + val);\n this._type = val;\n }\n\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n // when change from other size to default\n if (!val) {\n val = ComponentSize.Medium;\n }\n if (this._size === val) {\n return;\n }\n this.renderer.removeClass(this.el.nativeElement, prefix + this._size);\n this.renderer.addClass(this.el.nativeElement, prefix + val);\n this._size = val;\n }\n\n @Input()\n get plain() {\n return this._plain;\n }\n\n set plain(val) {\n if (this._plain === val) {\n return;\n }\n this.switchAssertClass('isPlain', val);\n this._plain = val;\n }\n\n @Input()\n get loading() {\n return this._loading;\n }\n\n set loading(val) {\n if (this._loading === val) {\n return;\n }\n this.switchAssertClass('isLoading', val);\n this._loading = val;\n }\n\n @Input()\n get round() {\n return this._round;\n }\n\n set round(val) {\n if (this._round === val) {\n return;\n }\n this.switchAssertClass('isRound', val);\n this._round = val;\n }\n\n @Input()\n get square() {\n return this._square;\n }\n\n set square(val) {\n if (this._square === val) {\n return;\n }\n this.switchAssertClass('isSquare', val);\n this._square = val;\n }\n\n private _type: ButtonType = ButtonType.Default;\n private _size: ComponentSize = ComponentSize.Medium;\n private _plain = false;\n private _loading = false;\n private _round = false;\n private _square = false;\n\n constructor(\n private readonly el: ElementRef,\n private readonly renderer: Renderer2,\n private readonly focusMonitor: FocusMonitor,\n ) {\n this.renderer.addClass(this.el.nativeElement, 'aui-button');\n this.renderer.addClass(this.el.nativeElement, prefix + this.type);\n this.renderer.addClass(this.el.nativeElement, prefix + this.size);\n\n this.focusMonitor.monitor(this.el.nativeElement, false);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.el.nativeElement);\n }\n\n private switchAssertClass(className: string, val: boolean) {\n if (val) {\n this.renderer.addClass(this.el.nativeElement, className);\n } else {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/public-api';\n\nimport { ButtonGroupComponent } from './button-group/button-group.component';\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [ButtonComponent, ButtonGroupComponent],\n exports: [ButtonComponent, ButtonGroupComponent],\n})\nexport class ButtonModule {}\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Optional,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject, combineLatest, fromEvent } from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n switchMap,\n throttleTime,\n} from 'rxjs/operators';\n\ntype TargetType = Element | Window | string;\n\n@Component({\n selector: 'aui-back-top',\n templateUrl: './back-top.component.html',\n styleUrls: ['./back-top.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class BackTopComponent {\n @Input()\n set visibilityHeight(val: number) {\n this._visibilityHeight = val;\n this.visibilityHeight$$.next(val);\n }\n\n get visibilityHeight() {\n return this._visibilityHeight;\n }\n\n @Input()\n set target(val: TargetType) {\n this._target = val;\n this.target$$.next(val);\n }\n\n get target() {\n return this._target;\n }\n\n @Output()\n click = new EventEmitter<Event>();\n\n private _visibilityHeight = 400;\n private readonly target$$ = new BehaviorSubject<TargetType>(this.target);\n private readonly visibilityHeight$$ = new BehaviorSubject<number>(\n this.visibilityHeight,\n );\n\n private _target: Element | Window | string;\n private _scrollTarget: Element | Window;\n\n constructor(@Optional() private readonly cdkScrollable: CdkScrollable) {}\n\n isDisplayed$ = combineLatest([\n this.target$$.asObservable().pipe(\n map(target => this.getTarget(target)),\n switchMap(target =>\n fromEvent(target, 'scroll').pipe(\n // use default scheduler\n throttleTime(50, undefined, { leading: true, trailing: true }),\n map(() => this.getTargetScrollTop(target)),\n ),\n ),\n ),\n this.visibilityHeight$$,\n ]).pipe(\n map(([scrollTop, visibilityHeight]) => scrollTop >= visibilityHeight),\n distinctUntilChanged(),\n );\n\n getTargetScrollTop(target: Element | Window) {\n if (target === window) {\n return document.documentElement.scrollTop;\n }\n return (target as HTMLElement).scrollTop;\n }\n\n handleClick(event: Event) {\n this._scrollTarget.scrollTo({ top: 0, behavior: 'smooth' });\n this.click.emit(event);\n }\n\n getTarget(target: TargetType) {\n if (typeof target === 'string') {\n target = document.querySelector(target);\n }\n // set default value for _target,if no input or selector fail\n if (!target) {\n target = this.cdkScrollable\n ? this.cdkScrollable.getElementRef().nativeElement\n : window;\n }\n this._scrollTarget = target;\n return target;\n }\n}\n","export enum TooltipType {\n Default = 'default',\n Primary = 'primary',\n Success = 'success',\n Warning = 'warning',\n Error = 'error',\n Info = 'info',\n Plain = 'plain',\n}\n\nexport enum TooltipTrigger {\n Hover = 'hover',\n Click = 'click',\n Focus = 'focus',\n Manual = 'manual',\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/icon.module';\n\nimport { BackTopComponent } from './back-top.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [BackTopComponent],\n exports: [BackTopComponent],\n})\nexport class BackTopModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable, Subject, combineLatest } from 'rxjs';\nimport { map, publishReplay, refCount, startWith } from 'rxjs/operators';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { TooltipType } from './tooltip.types';\n\n@Component({\n selector: 'aui-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TooltipComponent {\n text: string;\n template: TemplateRef<any>;\n bem: Bem = buildBem('aui-tooltip');\n\n inputContent$: Observable<string | TemplateRef<any>>;\n inputType$: Observable<TooltipType>;\n inputPosition$: Observable<string>;\n inputClass$: Observable<string>;\n inputContext$: Observable<any>;\n\n text$: Observable<string>;\n template$: Observable<TemplateRef<any>>;\n class$: Observable<string>;\n context$: Observable<any>;\n\n hover$ = new Subject<boolean>();\n\n constructor(\n public elRef: ElementRef<HTMLElement>,\n public cdr: ChangeDetectorRef,\n ) {}\n\n setupInputs(inputs: {\n inputContent$: Observable<string | TemplateRef<any>>;\n inputType$: Observable<TooltipType>;\n inputPosition$: Observable<string>;\n inputClass$: Observable<string>;\n inputContext$: Observable<any>;\n }) {\n Object.assign(this, inputs);\n this.text$ = this.inputContent$.pipe(\n map(val => {\n if (typeof val === 'string') {\n return val;\n }\n return '';\n }),\n publishReplay(1),\n refCount(),\n );\n this.template$ = this.inputContent$.pipe(\n map(val => {\n if (typeof val !== 'string') {\n return val;\n }\n return null;\n }),\n publishReplay(1),\n refCount(),\n );\n this.class$ = combineLatest([\n this.inputPosition$.pipe(startWith('top')),\n this.inputType$.pipe(startWith(TooltipType.Default)),\n this.inputClass$.pipe(startWith('')),\n ]).pipe(\n map(([inputPosition, inputType, inputClass]) => {\n const b = this.bem.block();\n const dir = inputPosition.split(' ')[0];\n return inputType === TooltipType.Plain\n ? `${b}--${dir} ${inputClass}`\n : `${b} ${b}--${inputType} ${b}--${dir} ${inputClass}`;\n }),\n publishReplay(1),\n refCount(),\n );\n this.context$ = this.inputContext$.pipe(publishReplay(1), refCount());\n }\n}\n","import {\n HorizontalConnectionPos,\n OriginConnectionPosition,\n OverlayConnectionPosition,\n VerticalConnectionPos,\n} from '@angular/cdk/overlay';\n\nexport function getOriginPosition(\n position: string,\n): { main: OriginConnectionPosition; fallback: OriginConnectionPosition } {\n const pos = position.split(' ');\n let isXDir;\n if (pos[0] === 'start' || pos[0] === 'end') {\n isXDir = true;\n }\n const main = {\n originX: (pos[isXDir ? 0 : 1] as HorizontalConnectionPos) || 'center',\n originY: (pos[isXDir ? 1 : 0] as VerticalConnectionPos) || 'center',\n };\n const { x, y } = invertPosition(main.originX, main.originY);\n const fallback = {\n originX: isXDir ? x : main.originX,\n originY: !isXDir ? y : main.originY,\n };\n return { main, fallback };\n}\n\nexport function getOverlayPosition(\n position: string,\n): { main: OverlayConnectionPosition; fallback: OverlayConnectionPosition } {\n const pos = position.split(' ');\n let isXDir;\n if (pos[0] === 'start' || pos[0] === 'end') {\n isXDir = true;\n }\n const horizontal =\n (pos[isXDir ? 0 : 1] as HorizontalConnectionPos) || 'center';\n const vertical = (pos[isXDir ? 1 : 0] as VerticalConnectionPos) || 'center';\n const main = {\n overlayX: isXDir ? invertHorizontal(horizontal) : horizontal,\n overlayY: !isXDir ? invertVertical(vertical) : vertical,\n };\n const { x, y } = invertPosition(main.overlayX, main.overlayY);\n const fallback = {\n overlayX: isXDir ? x : main.overlayX,\n overlayY: !isXDir ? y : main.overlayY,\n };\n return { main, fallback };\n}\n\nexport function invertHorizontal(dir: HorizontalConnectionPos) {\n if (dir === 'start') {\n dir = 'end';\n } else if (dir === 'end') {\n dir = 'start';\n }\n return dir;\n}\n\nexport function invertVertical(dir: VerticalConnectionPos) {\n if (dir === 'top') {\n dir = 'bottom';\n } else if (dir === 'bottom') {\n dir = 'top';\n }\n return dir;\n}\n\nexport function invertPosition(\n x: HorizontalConnectionPos,\n y: VerticalConnectionPos,\n): { x: HorizontalConnectionPos; y: VerticalConnectionPos } {\n return { x: invertHorizontal(x), y: invertVertical(y) };\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n NgZone,\n OnDestroy,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { ReplaySubject, merge } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { sleep } from '../utils';\n\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipTrigger, TooltipType } from './tooltip.types';\nimport { getOriginPosition, getOverlayPosition } from './utils';\n\nexport interface TooltipInterface {\n content: string | TemplateRef<any>;\n context: any;\n class: string;\n type: TooltipType;\n position: string;\n trigger: TooltipTrigger;\n disabled: boolean;\n hideOnClick: boolean;\n show: EventEmitter<void>;\n hide: EventEmitter<void>;\n}\n\nexport const DISPLAY_DELAY = 50;\nexport const HIDDEN_DELAY = 150;\n\n@Directive()\n// tslint:disable-next-line: directive-class-suffix\nexport class BaseTooltip<T = any>\n implements TooltipInterface, AfterViewInit, OnDestroy {\n set content(value: string | TemplateRef<any>) {\n this.inputContent$$.next(value);\n }\n\n get context() {\n return this._context;\n }\n\n set context(value: T) {\n this._context = value;\n this.inputContext$$.next(value);\n }\n\n set class(value: string) {\n this.inputClass$$.next(value);\n }\n\n set type(value: TooltipType) {\n if (!value) {\n return;\n }\n this.inputType$$.next(value);\n }\n\n get position() {\n return this._position;\n }\n\n set position(value: string) {\n if (!value || value === this._position) {\n return;\n }\n this._position = value;\n this.inputPosition$$.next(value);\n this.disposeTooltip();\n }\n\n get trigger() {\n return this._trigger;\n }\n\n set trigger(value) {\n if (!value || value === this._trigger) {\n return;\n }\n this._trigger = value;\n this.disposeTooltip();\n this.ngZone.run(this.updateListeners, this);\n }\n\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = value;\n if (value) {\n this.disposeTooltip();\n }\n }\n\n hideOnClick = false;\n\n show = new EventEmitter<void>();\n hide = new EventEmitter<void>();\n\n protected overlayRef: OverlayRef;\n protected componentClass: ComponentType<any> = TooltipComponent;\n protected componentIns: TooltipComponent;\n protected hostHovered = false;\n protected tooltipHovered = false;\n protected listeners: Array<() => void> = [];\n protected unlistenBody: () => void;\n\n protected inputContent$$ = new ReplaySubject<string | TemplateRef<any>>(1);\n protected inputType$$ = new ReplaySubject<TooltipType>(1);\n protected inputPosition$$ = new ReplaySubject<string>(1);\n protected inputClass$$ = new ReplaySubject<string>(1);\n protected inputContext$$ = new ReplaySubject<any>(1);\n protected tooltipChanged$ = merge(\n this.inputContent$$,\n this.inputType$$,\n this.inputPosition$$,\n this.inputClass$$,\n this.inputContext$$,\n );\n\n protected _position = 'top';\n protected _trigger = TooltipTrigger.Hover;\n protected _disabled = false;\n protected _context: T;\n\n get isCreated() {\n return !!this.overlayRef;\n }\n\n constructor(\n protected overlay: Overlay,\n protected viewContainerRef: ViewContainerRef,\n protected elRef: ElementRef<HTMLInputElement>,\n protected renderer: Renderer2,\n protected cdr: ChangeDetectorRef,\n protected ngZone: NgZone,\n ) {\n this.tooltipChanged$.pipe(debounceTime(0)).subscribe(() => {\n this.updatePosition();\n });\n }\n\n createTooltip() {\n if (this.disabled || this.isCreated) {\n return;\n }\n this.overlayRef = this.createOverlay();\n const portal = new ComponentPortal(\n this.componentClass,\n this.viewContainerRef,\n );\n this.componentIns = this.overlayRef.attach(portal).instance;\n this.componentIns.setupInputs({\n inputClass$: this.inputClass$$.asObservable(),\n inputContent$: this.inputContent$$.asObservable(),\n inputContext$: this.inputContext$$.asObservable(),\n inputPosition$: this.inputPosition$$.asObservable(),\n inputType$: this.inputType$$.asObservable(),\n });\n\n if (this.trigger === TooltipTrigger.Hover) {\n this.componentIns.hover$.subscribe(hovered => {\n this.onTooltipHovered(hovered);\n });\n }\n if (\n this.trigger === TooltipTrigger.Hover ||\n this.trigger === TooltipTrigger.Click\n ) {\n this.unlistenBody = this.renderer.listen(\n 'body',\n 'click',\n this.onBodyClick.bind(this),\n );\n }\n\n this.show.emit();\n\n this.cdr.markForCheck();\n }\n\n disposeTooltip() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.componentIns = null;\n this.tooltipHovered = false;\n if (this.unlistenBody) {\n this.unlistenBody();\n this.unlistenBody = null;\n }\n this.hide.emit();\n }\n }\n\n toggleTooltip() {\n if (this.isCreated) {\n this.disposeTooltip();\n } else {\n this.createTooltip();\n }\n }\n\n updatePosition() {\n if (this.overlayRef) {\n this.overlayRef.updatePosition();\n }\n }\n\n ngAfterViewInit() {\n if (this.trigger === TooltipTrigger.Hover) {\n this.updateListeners();\n }\n }\n\n ngOnDestroy() {\n this.disposeTooltip();\n this.clearListeners();\n }\n\n protected updateListeners() {\n this.clearListeners();\n switch (this.trigger) {\n case TooltipTrigger.Click:\n this.listeners.push(\n this.renderer.listen(\n this.elRef.nativeElement,\n 'click',\n this.onClick.bind(this) as () => void,\n ),\n );\n break;\n case TooltipTrigger.Hover:\n this.listeners.push(\n this.renderer.listen(\n this.elRef.nativeElement,\n 'mouseenter',\n this.onMouseEnter.bind(this) as () => void,\n ),\n this.renderer.listen(\n this.elRef.nativeElement,\n 'mouseleave',\n this.onMouseLeave.bind(this) as () => void,\n ),\n );\n break;\n case TooltipTrigger.Focus:\n this.listeners.push(\n this.renderer.listen(\n this.elRef.nativeElement,\n 'focus',\n this.onFocus.bind(this),\n ),\n this.renderer.listen(\n this.elRef.nativeElement,\n 'blur',\n this.onBlur.bind(this),\n ),\n );\n break;\n case TooltipTrigger.Manual:\n break;\n }\n }\n\n protected clearListeners() {\n this.listeners.forEach(unListen => {\n unListen();\n });\n this.listeners = [];\n }\n\n protected createOverlay(): OverlayRef {\n const originPosition = getOriginPosition(this.position);\n const overlayPosition = getOverlayPosition(this.position);\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elRef)\n .withGrowAfterOpen(true)\n .withPositions([\n { ...originPosition.main, ...overlayPosition.main },\n { ...originPosition.fallback, ...overlayPosition.fallback },\n ]);\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n const config = new OverlayConfig({\n positionStrategy,\n scrollStrategy,\n });\n return this.overlay.create(config);\n }\n\n protected async onMouseEnter() {\n this.hostHovered = true;\n if (!this.isCreated) {\n await sleep(DISPLAY_DELAY);\n if (this.hostHovered) {\n this.createTooltip();\n }\n }\n }\n\n protected async onMouseLeave() {\n this.hostHovered = false;\n await sleep(HIDDEN_DELAY);\n if (!this.tooltipHovered && !this.hostHovered) {\n this.disposeTooltip();\n }\n }\n\n protected async onTooltipHovered(hovered: boolean) {\n this.tooltipHovered = hovered;\n if (!hovered) {\n await sleep(HIDDEN_DELAY);\n if (!this.tooltipHovered && !this.hostHovered) {\n this.disposeTooltip();\n }\n }\n }\n\n protected onClick() {\n this.toggleTooltip();\n }\n\n protected onBodyClick(event: Event) {\n if (\n !this.elRef.nativeElement.contains(event.target as Node) &&\n (this.hideOnClick ||\n !this.componentIns.elRef.nativeElement.contains(event.target as Node))\n ) {\n this.disposeTooltip();\n }\n }\n\n protected onFocus() {\n this.createTooltip();\n }\n\n protected onBlur() {\n this.disposeTooltip();\n }\n}\n","import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\n\nimport { BaseTooltip } from './base-tooltip';\n\n@Directive({\n selector: '[auiTooltipActive]',\n})\nexport class TooltipActiveDirective {\n @Input('auiTooltipActive')\n customClass: string | string[];\n\n constructor(\n tooltipDirective: BaseTooltip,\n private readonly el: ElementRef,\n private readonly renderer: Renderer2,\n ) {\n tooltipDirective.show.subscribe(() => {\n this.addClass();\n });\n tooltipDirective.hide.subscribe(() => {\n this.removeClass();\n });\n }\n\n private addClass() {\n const classArr =\n typeof this.customClass === 'string'\n ? this.customClass.split(' ')\n : this.customClass;\n classArr.forEach(name => {\n this.renderer.addClass(this.el.nativeElement, name);\n });\n }\n\n private removeClass() {\n const classArr =\n typeof this.customClass === 'string'\n ? this.customClass.split(' ')\n : this.customClass;\n classArr.forEach(name => {\n this.renderer.removeClass(this.el.nativeElement, name);\n });\n }\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\n\n/**\n * Texts to render on the code editor.\n */\n@Injectable()\nexport class TooltipCopyIntl {\n copyTip = 'Click to copy';\n\n copySuccessTip = 'Copied to clipboard';\n\n copyFailTip = 'Copy failed';\n}\n\nexport function TOOLTIP_COPY_INTL_PROVIDER_FACTORY(\n parentIntl: TooltipCopyIntl,\n) {\n return parentIntl || new TooltipCopyIntl();\n}\n\n/** @docs-private */\nexport const TOOLTIP_COPY_INTL_INTL_PROVIDER = {\n // If there is already an CodeEditorIntl available, use that. Otherwise, provide a new one.\n provide: TooltipCopyIntl,\n deps: [[new Optional(), new SkipSelf(), TooltipCopyIntl]],\n useFactory: TOOLTIP_COPY_INTL_PROVIDER_FACTORY,\n};\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnInit,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { writeText } from 'clipboard-polyfill';\n\nimport { BaseTooltip } from './base-tooltip';\nimport { TooltipCopyIntl } from './tooltip-intl';\n\n@Directive({\n selector: '[auiTooltipCopy]',\n inputs: ['position:auiTooltipPosition', 'disabled:auiTooltipDisabled'],\n})\nexport class TooltipCopyDirective extends BaseTooltip implements OnInit {\n @HostBinding('class.aui-tooltip-copy')\n className = true;\n\n @Input()\n get auiTooltipCopy() {\n return this._copyText || this.elRef.nativeElement.textContent;\n }\n\n set auiTooltipCopy(value: string) {\n this._copyText = value;\n }\n\n @Input()\n get auiTooltipCopyTip() {\n return this._copyTip || this.toolTipIntl.copyTip;\n }\n\n set auiTooltipCopyTip(value: string) {\n this._copyTip = value;\n }\n\n @Input()\n get auiTooltipCopySuccessTip() {\n return this._copySuccessTip || this.toolTipIntl.copySuccessTip;\n }\n\n set auiTooltipCopySuccessTip(value: string) {\n this._copySuccessTip = value;\n }\n\n @Input()\n get auiTooltipCopyFailTip() {\n return this._copyFailTip || this.toolTipIntl.copyFailTip;\n }\n\n set auiTooltipCopyFailTip(value: string) {\n this._copyFailTip = value;\n }\n\n private _copyText: string;\n private _copyTip: string;\n private _copySuccessTip: string;\n private _copyFailTip: string;\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n elRef: ElementRef,\n renderer: Renderer2,\n cdr: ChangeDetectorRef,\n ngZone: NgZone,\n private readonly toolTipIntl: TooltipCopyIntl,\n ) {\n super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);\n }\n\n ngOnInit() {\n this.content = this.auiTooltipCopyTip;\n this.hide.subscribe(() => {\n this.content = this.auiTooltipCopyTip;\n });\n }\n\n @HostListener('click')\n async onSourceClick() {\n if (!this.disabled) {\n try {\n await writeText(this.auiTooltipCopy);\n this.content = this.auiTooltipCopySuccessTip;\n } catch {\n this.content = this.auiTooltipCopyFailTip;\n }\n }\n }\n}\n","// tslint:disable: no-output-rename\nimport { Overlay } from '@angular/cdk/overlay';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n Output,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { BaseTooltip } from './base-tooltip';\n\n@Directive({\n selector: '[auiTooltip]',\n providers: [\n {\n provide: BaseTooltip,\n useExisting: TooltipDirective,\n },\n ],\n exportAs: 'auiTooltip',\n inputs: [\n 'content:auiTooltip',\n 'context:auiTooltipContext',\n 'class:auiTooltipClass',\n 'type:auiTooltipType',\n 'position:auiTooltipPosition',\n 'trigger:auiTooltipTrigger',\n 'disabled:auiTooltipDisabled',\n ],\n})\nexport class TooltipDirective extends BaseTooltip {\n @Input('auiTooltipHideOnClick')\n hideOnClick: boolean;\n\n @Output('auiTooltipShow')\n show: EventEmitter<void>;\n\n @Output('auiTooltipHide')\n hide: EventEmitter<void>;\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n elRef: ElementRef,\n renderer: Renderer2,\n cdr: ChangeDetectorRef,\n ngZone: NgZone,\n ) {\n super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipActiveDirective } from './tooltip-active.directive';\nimport { TooltipCopyDirective } from './tooltip-copy.directive';\nimport { TOOLTIP_COPY_INTL_INTL_PROVIDER } from './tooltip-intl';\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n imports: [CommonModule, OverlayModule],\n declarations: [\n TooltipDirective,\n TooltipComponent,\n TooltipActiveDirective,\n TooltipCopyDirective,\n ],\n entryComponents: [TooltipComponent],\n exports: [TooltipDirective, TooltipActiveDirective, TooltipCopyDirective],\n providers: [TOOLTIP_COPY_INTL_INTL_PROVIDER],\n})\nexport class TooltipModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-section',\n templateUrl: './section.component.html',\n styleUrls: ['./section.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class SectionComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class CardComponent {\n @Input() divider = true;\n}\n","// tslint:disable: no-host-metadata-property\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiCardHeader]',\n host: {\n '[class.aui-card__header]': 'true',\n },\n})\nexport class CardHeaderDirective {}\n\n@Directive({\n selector: '[auiCardFooter]',\n host: {\n '[class.aui-card__footer]': 'true',\n },\n})\nexport class CardFooterDirective {}\n\n@Directive({\n selector: '[auiSectionTitle]',\n host: {\n '[class.aui-section__title]': 'true',\n },\n})\nexport class SectionTitleDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { CardComponent } from './card.component';\nimport {\n CardFooterDirective,\n CardHeaderDirective,\n SectionTitleDirective,\n} from './helper-directives';\nimport { SectionComponent } from './section.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n CardComponent,\n CardHeaderDirective,\n CardFooterDirective,\n SectionComponent,\n SectionTitleDirective,\n ],\n exports: [\n CardComponent,\n CardHeaderDirective,\n CardFooterDirective,\n SectionComponent,\n SectionTitleDirective,\n ],\n})\nexport class CardModule {}\n","import {\n CdkScrollable,\n ComponentType,\n GlobalPositionStrategy,\n OverlayRef,\n ScrollDispatcher,\n} from '@angular/cdk/overlay';\nimport { NgZone } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { DialogComponent } from './dialog.component';\n\nlet uniqueId = 0;\n\nexport class DialogRef<T = ComponentType<any>, R = any> {\n componentInstance?: T;\n readonly id = `aui-dialog-${uniqueId++}`;\n\n private readonly afterOpen$ = new Subject<void>();\n private readonly afterClosed$ = new Subject<R>();\n\n private readonly scrollable: CdkScrollable;\n\n constructor(\n private readonly overlayRef: OverlayRef,\n public dialogInstance: DialogComponent,\n scrollDispatcher: ScrollDispatcher,\n ngZone: NgZone,\n ) {\n dialogInstance.id = this.id;\n this.scrollable = new CdkScrollable(\n { nativeElement: overlayRef.overlayElement },\n scrollDispatcher,\n ngZone,\n );\n this.scrollable.ngOnInit();\n }\n\n close(result: R = null): void {\n this.scrollable.ngOnDestroy();\n this.overlayRef.detachBackdrop();\n this.overlayRef.dispose();\n this.afterClosed$.next(result);\n this.afterClosed$.complete();\n }\n\n afterOpen(): Observable<void> {\n return this.afterOpen$.asObservable();\n }\n\n afterClosed(): Observable<R> {\n return this.afterClosed$.asObservable();\n }\n\n updatePosition(): this {\n this.getPositionStrategy().top('0').left('0');\n this.overlayRef.updatePosition();\n return this;\n }\n\n updateSize(): this {\n this.getPositionStrategy();\n this.overlayRef.updatePosition();\n return this;\n }\n\n private getPositionStrategy(): GlobalPositionStrategy {\n return this.overlayRef.getConfig()\n .positionStrategy as GlobalPositionStrategy;\n }\n}\n","import { Observable } from 'rxjs';\n\nexport enum DialogSize {\n Small = 'small',\n Medium = 'medium',\n Big = 'big',\n Large = 'large',\n Fullscreen = 'fullscreen',\n FitContent = 'fit-content',\n}\n\nexport enum ConfirmType {\n Primary = 'primary',\n Success = 'success',\n Warning = 'warning',\n Danger = 'danger',\n}\n\nexport type PromiseExecutor<T> = (\n resolve: (result?: T | PromiseLike<T>) => void,\n reject: (reason?: unknown) => void,\n) => void;\n\nexport type CustomBeforeAction<T> = () => PromiseLike<T> | Observable<T>;\n\nexport type BeforeAction<T> = PromiseExecutor<T> | CustomBeforeAction<T>;\n","import { BeforeAction, ConfirmType } from '../dialog.types';\n\nexport class ConfirmDialogConfig<T = unknown, R = unknown> {\n title: string;\n content?: string;\n cancelButton? = true;\n confirmType?: ConfirmType = ConfirmType.Primary;\n confirmText? = 'OK';\n cancelText? = 'Cancel';\n\n beforeConfirm?: BeforeAction<T>;\n beforeCancel?: BeforeAction<R>;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nimport { Bem, buildBem } from '../../utils';\nimport { DialogRef } from '../dialog-ref';\nimport {\n BeforeAction,\n ConfirmType,\n CustomBeforeAction,\n PromiseExecutor,\n} from '../dialog.types';\n\nimport { ConfirmDialogConfig } from './confirm-dialog-config';\n\n@Component({\n selector: 'aui-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class ConfirmDialogComponent<T = unknown, R = unknown> {\n bem: Bem = buildBem('aui-confirm-dialog');\n\n config: ConfirmDialogConfig<T, R>;\n\n waitConfirm = false;\n waitCancel = false;\n\n constructor(\n private readonly dialogRef: DialogRef<any>,\n private readonly cdr: ChangeDetectorRef,\n ) {}\n\n setConfig(config: ConfirmDialogConfig<T, R>) {\n this.config = { ...new ConfirmDialogConfig(), ...config };\n }\n\n iconMap(type: ConfirmType) {\n switch (type) {\n case ConfirmType.Success:\n return 'check_circle_s';\n case ConfirmType.Danger:\n return 'exclamation_triangle_s';\n case ConfirmType.Primary:\n case ConfirmType.Warning:\n default:\n return 'exclamation_circle_s';\n }\n }\n\n async confirm() {\n if (!this.config.beforeConfirm) {\n this.dialogRef.close({ confirm: true, result: null });\n return;\n }\n this.waitConfirm = true;\n try {\n const result = await this.toPromise(this.config.beforeConfirm);\n this.dialogRef.close({ confirm: true, result });\n } catch {\n } finally {\n this.waitConfirm = false;\n this.cdr.markForCheck();\n }\n }\n\n async cancel() {\n if (!this.config.beforeCancel) {\n this.dialogRef.close({ confirm: false, result: null });\n return;\n }\n this.waitCancel = true;\n try {\n const result = await this.toPromise(this.config.beforeCancel);\n this.dialogRef.close({ confirm: false, result });\n } catch {\n } finally {\n this.waitCancel = false;\n this.cdr.markForCheck();\n }\n }\n\n private toPromise<T>(beforeAction: BeforeAction<T>) {\n if (beforeAction.length) {\n return new Promise(beforeAction as PromiseExecutor<T>);\n }\n\n const result = (beforeAction as CustomBeforeAction<T>)();\n\n if (result instanceof Observable) {\n return result.pipe(first()).toPromise();\n }\n\n return result;\n }\n}\n","import { ViewContainerRef } from '@angular/core';\n\nimport { DialogSize } from './dialog.types';\n\nexport class DialogConfig<D = any> {\n id?: number;\n viewContainerRef?: ViewContainerRef;\n data?: D;\n size?: DialogSize = DialogSize.Big;\n hasBackdrop? = true;\n fitViewport? = false;\n}\n","export function throwDialogContentAlreadyAttachedError() {\n throw new Error(\n 'Attempting to attach dialog content after content is already attached',\n );\n}\n","import { ElementRef } from '@angular/core';\n\nimport { DialogRef } from '../dialog-ref';\n\nexport function getClosestDialog(\n element: ElementRef,\n openDialogs: Array<DialogRef<any>>,\n) {\n let parent = (element.nativeElement as HTMLElement).parentElement;\n\n while (parent?.tagName !== 'AUI-DIALOG') {\n parent = parent.parentElement;\n }\n\n return parent\n ? openDialogs.find(dialog => dialog.id === parent.dataset.id)\n : null;\n}\n\nexport * from './errors';\n","import {\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { DialogConfig } from './dialog-config';\nimport { throwDialogContentAlreadyAttachedError } from './utils';\n\n@Component({\n selector: 'aui-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n encapsulation: ViewEncapsulation.None,\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n preserveWhitespaces: false,\n})\nexport class DialogComponent {\n @ViewChild(CdkPortalOutlet, { static: true })\n portalOutlet: CdkPortalOutlet;\n\n bem: Bem = buildBem('aui-dialog');\n\n config: DialogConfig;\n\n hidden = false;\n\n get id() {\n return this._id;\n }\n\n set id(value) {\n this.elementRef.nativeElement.dataset.id = value;\n }\n\n private readonly _id: string;\n\n get rootClass() {\n return `${this.bem.block(this.config.size)} ${\n this.config.fitViewport ? this.bem.modifier('fit-viewport') : ''\n }`;\n }\n\n get customStyle() {\n return this.hidden\n ? {\n display: 'none',\n }\n : {};\n }\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (this.portalOutlet.hasAttached()) {\n throwDialogContentAlreadyAttachedError();\n }\n this.blurActiveElement();\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n attachTemplatePortal<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T> {\n if (this.portalOutlet.hasAttached()) {\n throwDialogContentAlreadyAttachedError();\n }\n this.blurActiveElement();\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n private blurActiveElement() {\n if (document) {\n (document.activeElement as HTMLElement).blur();\n }\n }\n}\n","import {\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollDispatcher,\n} from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n Injectable,\n InjectionToken,\n Injector,\n NgZone,\n TemplateRef,\n} from '@angular/core';\n\nimport { ConfirmDialogConfig } from './confirm-dialog/confirm-dialog-config';\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { DialogConfig } from './dialog-config';\nimport { DialogRef } from './dialog-ref';\nimport { DialogComponent } from './dialog.component';\nimport { DialogSize } from './dialog.types';\n\nexport const DIALOG_DATA = new InjectionToken<any>('aui-dialog-data');\n\n@Injectable()\nexport class DialogService {\n static readonly DIALOG_OVERLAY_PANE_CLASS = 'aui-dialog-overlay-pane';\n static readonly DIALOG_BACKDROP_CLASS = 'aui-dialog-backdrop';\n\n openDialogs: Array<DialogRef<any>> = [];\n\n constructor(\n private readonly overlay: Overlay,\n private readonly injector: Injector,\n private readonly scrollDispatcher: ScrollDispatcher,\n private readonly ngZone: NgZone,\n ) {}\n\n open<T, D = any, R = any>(\n compOrTempRef: ComponentType<T> | TemplateRef<T>,\n config: DialogConfig<D> = null,\n ): DialogRef<T, R> {\n this.hiddenPrevDialog();\n\n config = { ...new DialogConfig(), ...config };\n\n const overlayRef = this.createOverlay(config);\n const dialogIns = this.attachDialog(overlayRef, config);\n const dialogRef = this.attachDialogContent<T, D, R>(\n compOrTempRef,\n dialogIns,\n overlayRef,\n config,\n );\n this.openDialogs.push(dialogRef);\n dialogRef.updatePosition().updateSize();\n dialogRef.afterClosed().subscribe(() => {\n this.removeDialog(dialogRef);\n this.showPrevDialog();\n });\n\n return dialogRef;\n }\n\n confirm<T = unknown, R = unknown>(\n config: ConfirmDialogConfig<T, R>,\n ): Promise<T> {\n const dialogRef = this.open<\n ConfirmDialogComponent<T, R>,\n void,\n { confirm: boolean; result: T | R }\n >(ConfirmDialogComponent, {\n size: DialogSize.FitContent,\n });\n dialogRef.componentInstance.setConfig(config);\n return new Promise((resolve, reject) => {\n dialogRef.afterClosed().subscribe(action => {\n if (action.confirm) {\n resolve(action.result as T);\n } else {\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(action.result as R);\n }\n });\n });\n }\n\n closeAll() {\n this.openDialogs.forEach(dialogRef => {\n dialogRef.close();\n });\n }\n\n private hiddenPrevDialog() {\n if (this.openDialogs.length > 0) {\n this.openDialogs[\n this.openDialogs.length - 1\n ].dialogInstance.hidden = true;\n }\n }\n\n private showPrevDialog() {\n if (this.openDialogs.length > 0) {\n this.openDialogs[\n this.openDialogs.length - 1\n ].dialogInstance.hidden = false;\n }\n }\n\n private createOverlay(config: DialogConfig): OverlayRef {\n const overlayConfig = this.getOverlayConfig(config);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(dialogConfig: DialogConfig): OverlayConfig {\n return {\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n hasBackdrop: dialogConfig.hasBackdrop && !this.openDialogs.length,\n backdropClass: DialogService.DIALOG_BACKDROP_CLASS,\n panelClass: DialogService.DIALOG_OVERLAY_PANE_CLASS,\n width: '100vw',\n height: '100vh',\n };\n }\n\n private attachDialog(\n overlayRef: OverlayRef,\n config: DialogConfig,\n ): DialogComponent {\n const dialogPortal = new ComponentPortal(\n DialogComponent,\n config.viewContainerRef,\n );\n const dialogRef = overlayRef.attach(dialogPortal);\n dialogRef.instance.config = config;\n return dialogRef.instance;\n }\n\n private attachDialogContent<T, D, R>(\n compOrTempRef: ComponentType<T> | TemplateRef<T>,\n dialogIns: DialogComponent,\n overlayRef: OverlayRef,\n config: DialogConfig<D>,\n ): DialogRef<T, R> {\n const dialogRef = new DialogRef<T, R>(\n overlayRef,\n dialogIns,\n this.scrollDispatcher,\n this.ngZone,\n );\n\n if (compOrTempRef instanceof TemplateRef) {\n dialogIns.attachTemplatePortal(\n new TemplatePortal(compOrTempRef, null, {\n $implicit: config.data,\n } as any),\n );\n } else {\n const injector = this.createInjector(config, dialogRef, dialogIns);\n const contentRef = dialogIns.attachComponentPortal<T>(\n new ComponentPortal(compOrTempRef, null, injector),\n );\n dialogRef.componentInstance = contentRef.instance;\n }\n return dialogRef;\n }\n\n private createInjector<T>(\n config: DialogConfig,\n dialogRef: DialogRef<T>,\n dialogIns: DialogComponent,\n ): Injector {\n const userInjector = config?.viewContainerRef?.injector;\n return Injector.create({\n providers: [\n {\n provide: DialogRef,\n useValue: dialogRef,\n },\n {\n provide: DIALOG_DATA,\n useValue: config.data || dialogIns,\n },\n ],\n parent: userInjector || this.injector,\n });\n }\n\n private removeDialog(dialogRef: DialogRef<any>) {\n const index = this.openDialogs.indexOf(dialogRef);\n this.openDialogs.splice(index, 1);\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnInit,\n Optional,\n} from '@angular/core';\n\nimport { DialogRef } from '../dialog-ref';\nimport { DialogService } from '../dialog.service';\nimport { getClosestDialog } from '../utils';\n\n@Directive({\n selector: 'button[auiDialogClose]',\n exportAs: 'auiDialogClose',\n})\nexport class DialogCloseDirective implements OnInit {\n @Input('auiDialogClose')\n result: any;\n\n constructor(\n @Optional() public dialogRef: DialogRef<any>,\n private readonly elementRef: ElementRef,\n private readonly dialogService: DialogService,\n ) {}\n\n ngOnInit() {\n if (!this.dialogRef) {\n this.dialogRef = getClosestDialog(\n this.elementRef,\n this.dialogService.openDialogs,\n );\n }\n }\n\n @HostListener('click')\n closeDialog() {\n this.dialogRef.close(this.result);\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { CdkScrollable, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\n\n@Component({\n selector: 'aui-dialog-content',\n templateUrl: './dialog-content.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class DialogContentComponent extends CdkScrollable {\n bem: Bem = buildBem('aui-dialog');\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n elementRef: ElementRef<HTMLElement>,\n scrollDispatcher: ScrollDispatcher,\n ngZone: NgZone,\n dir?: Directionality,\n ) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\n\n@Component({\n selector: 'aui-dialog-footer',\n templateUrl: './dialog-footer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class DialogFooterComponent {\n bem: Bem = buildBem('aui-dialog');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\nimport { DialogRef } from '../dialog-ref';\nimport { DialogService } from '../dialog.service';\nimport { getClosestDialog } from '../utils';\n\n@Component({\n selector: 'aui-dialog-header',\n templateUrl: './dialog-header.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class DialogHeaderComponent implements OnInit {\n bem: Bem = buildBem('aui-dialog');\n\n @Input()\n divider = true;\n\n @Input()\n closeable = true;\n\n @Input()\n result: any = false;\n\n constructor(\n @Optional() public dialogRef: DialogRef<any>,\n private readonly elementRef: ElementRef,\n private readonly dialogService: DialogService,\n ) {}\n\n ngOnInit() {\n if (!this.dialogRef) {\n this.dialogRef = getClosestDialog(\n this.elementRef,\n this.dialogService.openDialogs,\n );\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button/public-api';\nimport { IconModule } from '../icon/public-api';\n\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { DialogCloseDirective } from './dialog-content/dialog-close.directive';\nimport { DialogContentComponent } from './dialog-content/dialog-content.component';\nimport { DialogFooterComponent } from './dialog-content/dialog-footer.component';\nimport { DialogHeaderComponent } from './dialog-content/dialog-header.component';\nimport { DialogComponent } from './dialog.component';\nimport { DialogService } from './dialog.service';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n IconModule,\n ButtonModule,\n ],\n declarations: [\n DialogComponent,\n DialogHeaderComponent,\n DialogContentComponent,\n DialogFooterComponent,\n DialogCloseDirective,\n ConfirmDialogComponent,\n ],\n exports: [\n DialogComponent,\n DialogHeaderComponent,\n DialogContentComponent,\n DialogFooterComponent,\n DialogCloseDirective,\n ],\n entryComponents: [DialogComponent, ConfirmDialogComponent],\n providers: [DialogService],\n})\nexport class DialogModule {}\n","import { ValueOf } from '../types';\n\nexport const LabelPosition = {\n Top: 'top',\n Left: 'left',\n Right: 'right',\n} as const;\n\nexport const FormItemWidth = {\n Small: 'small',\n Medium: 'medium',\n Large: 'large',\n} as const;\n\nexport type LabelPosition = ValueOf<typeof LabelPosition>;\n\nexport type FormItemWidth = ValueOf<typeof FormItemWidth>;\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { ControlContainer, FormGroupDirective, NgForm } from '@angular/forms';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nimport { LabelPosition } from './form.types';\n\n@Directive({\n selector: 'form[auiForm]',\n exportAs: 'auiForm',\n host: {\n '[class.aui-form]': 'true',\n '[class.aui-form--inline]': 'inline',\n '[class.ng-submitted]': 'ngClassSubmitted',\n },\n})\nexport class FormDirective {\n get ngClassSubmitted() {\n return (this.controlContainer?.formDirective as NgForm | FormGroupDirective)\n .submitted;\n }\n\n private readonly labelWidth$$ = new BehaviorSubject<string>(null);\n private readonly labelPosition$$ = new BehaviorSubject<LabelPosition>(\n LabelPosition.Right,\n );\n\n private readonly emptyAddon$$ = new BehaviorSubject<boolean>(false);\n\n @Input('auiFormLabelWidth')\n set labelWidth(val: string) {\n this.labelWidth$$.next(val);\n }\n\n @Input('auiFormLabelPosition')\n set labelPosition(val: LabelPosition) {\n this.labelPosition$$.next(val);\n }\n\n @Input('auiFormEmptyAddon')\n set emptyAddon(val: boolean) {\n this.emptyAddon$$.next(val);\n }\n\n @Input('auiFormInline')\n inline = false;\n\n labelWidth$: Observable<string> = this.labelWidth$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n labelPosition$: Observable<LabelPosition> = this.labelPosition$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n emptyAddon$: Observable<boolean> = this.emptyAddon$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n constructor(\n @Inject(ControlContainer)\n @Optional()\n public controlContainer?: ControlContainer,\n ) {}\n}\n","// tslint:disable: no-host-metadata-property\nimport { Directive, Input } from '@angular/core';\n\nimport { coerceAttrBoolean } from '../utils';\n\n@Directive({\n selector: 'label[auiFormItemLabel]',\n host: {\n '[class.aui-form-item__label]': 'true',\n },\n})\nexport class FormItemLabelDirective {}\n\n@Directive({\n selector: '[auiFormItemHint]',\n host: {\n '[class.aui-form-item__hint]': 'true',\n },\n})\nexport class FormItemHintDirective {}\n\n@Directive({\n selector: '[auiFormItemAddon]',\n host: {\n '[class.aui-form-item__addon]': 'true',\n },\n})\nexport class FormItemAddonDirective {}\n\n@Directive({\n selector: '[auiFormItemError]',\n host: {\n '[class.aui-form-item__error]': 'true',\n },\n})\nexport class FormItemErrorDirective {}\n\n@Directive({\n selector: '[auiFormItemControl]',\n host: {\n '[class.aui-form-item__control]': 'true',\n },\n})\nexport class FormItemControlDirective {\n @Input()\n get required() {\n return this._required;\n }\n\n set required(val: boolean | '') {\n this._required = coerceAttrBoolean(val);\n }\n\n private _required = false;\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Observable, Subject, combineLatest, merge } from 'rxjs';\nimport {\n map,\n publishReplay,\n refCount,\n startWith,\n switchMap,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { Bem, buildBem } from '../../utils';\nimport { FormDirective } from '../form.directive';\nimport { FormItemWidth, LabelPosition } from '../form.types';\nimport {\n FormItemAddonDirective,\n FormItemControlDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n} from '../helper-directives';\n\n@Component({\n selector: 'aui-form-item',\n templateUrl: './form-item.component.html',\n styleUrls: ['./form-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class FormItemComponent implements AfterContentInit, OnDestroy {\n bem: Bem = buildBem('aui-form-item');\n\n @Input()\n labelWidth: string = null;\n\n @Input()\n width: FormItemWidth;\n\n @Input()\n labelPosition: LabelPosition = LabelPosition.Right;\n\n @Input()\n emptyAddon = false;\n\n @ContentChild(FormItemLabelDirective, { static: false })\n itemLabel: FormItemLabelDirective;\n\n @ContentChild(FormItemControlDirective, { static: false })\n itemControl: FormItemControlDirective;\n\n @ContentChildren(NgControl, { descendants: true })\n ngControls: QueryList<NgControl>;\n\n @ContentChildren(FormItemAddonDirective)\n addons: QueryList<FormItemAddonDirective>;\n\n @ContentChildren(FormItemErrorDirective)\n errors: QueryList<FormItemErrorDirective>;\n\n @ContentChildren(FormItemHintDirective)\n hints: QueryList<FormItemHintDirective>;\n\n hasError$: Observable<boolean>;\n errorCount$: Observable<number>;\n hintCount$: Observable<number>;\n parentForm: NgForm | FormGroupDirective;\n\n private readonly destroy$$ = new Subject<void>();\n\n get formItemWidthClass() {\n return this.width\n ? this.bem.element('content', { [this.width]: true })\n : '';\n }\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Optional() private readonly auiForm: FormDirective,\n @Optional() ngForm: NgForm,\n @Optional() formGroup: FormGroupDirective,\n ) {\n this.parentForm = formGroup || ngForm;\n if (this.auiForm) {\n this.subscribeInputsFromParent();\n }\n }\n\n ngAfterContentInit() {\n this.hasError$ = this.ngControls.changes.pipe(\n startWith(this.ngControls),\n switchMap((controls: QueryList<NgControl>) =>\n combineLatest(\n controls.map(control => this.mapControlStatus(control)),\n ).pipe(map(statuses => statuses.some(status => status))),\n ),\n );\n\n this.errorCount$ = this.errors.changes.pipe(\n map(errors => errors.length),\n startWith(this.errors.length),\n );\n\n this.hintCount$ = this.hints.changes.pipe(\n map(hints => hints.length),\n startWith(this.hints.length),\n );\n }\n\n subscribeInputsFromParent() {\n this.auiForm.labelWidth$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(width => {\n this.labelWidth = width;\n this.cdr.markForCheck();\n });\n this.auiForm.labelPosition$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(position => {\n this.labelPosition = position;\n this.cdr.markForCheck();\n });\n this.auiForm.emptyAddon$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(emptyAddon => {\n this.emptyAddon = emptyAddon;\n this.cdr.markForCheck();\n });\n }\n\n mapControlStatus(control: NgControl) {\n return (this.parentForm\n ? combineLatest([\n control.statusChanges.pipe(startWith(control.status)),\n merge(\n this.parentForm.statusChanges.pipe(\n startWith(this.parentForm.status),\n ),\n this.parentForm.ngSubmit,\n ),\n ]).pipe(map(([status]: string[]) => status))\n : control.statusChanges\n ).pipe(\n map(\n (status: string) =>\n status === 'INVALID' && (control.dirty || this.parentForm?.submitted),\n ),\n publishReplay(1),\n refCount(),\n );\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FormItemComponent } from './form-item/form-item.component';\nimport { FormDirective } from './form.directive';\nimport {\n FormItemAddonDirective,\n FormItemControlDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n} from './helper-directives';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n FormDirective,\n FormItemComponent,\n FormItemAddonDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n FormItemControlDirective,\n ],\n exports: [\n FormDirective,\n FormItemComponent,\n FormItemAddonDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n FormItemControlDirective,\n ],\n})\nexport class FormModule {}\n","import {\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { publishReplay, refCount, tap } from 'rxjs/operators';\n\nimport { coerceAttrBoolean } from '../utils';\n\n/**\n * form control 内部不保持 value 属性,当不使用 ngModel 时可以通过 [(value)] 实现双向绑定;\n * 也可以分别传入 value 和 监听 valueChange 事件以实现阻断用户操作的功能。\n */\n@Directive()\n// tslint:disable-next-line:directive-class-suffix\nexport class CommonFormControl<T, V = T> implements ControlValueAccessor {\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n }\n\n @Input()\n get readonly() {\n return this.disabled;\n }\n\n set readonly(val) {\n this.disabled = val;\n }\n\n @Input('value')\n get propValue() {\n return this._propValue;\n }\n\n set propValue(val) {\n if (val === this._propValue) {\n return;\n }\n this._propValue = val;\n this.writeValue(val);\n }\n\n @Output()\n valueChange = new EventEmitter<T>();\n\n protected onChange: (_: T) => void;\n protected onTouched: () => void;\n protected value$$ = new ReplaySubject<V>(1);\n private _propValue: T;\n private _disabled = false;\n\n snapshot: { value: V } = { value: null };\n\n value$: Observable<V> = this.value$$.asObservable().pipe(\n tap(value => {\n this.snapshot.value = value;\n }),\n publishReplay(1),\n refCount(),\n );\n\n constructor(protected cdr: ChangeDetectorRef) {}\n\n registerOnChange(fn: (_: T) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n writeValue(value: T) {\n this.value$$.next(this.valueIn(value));\n }\n\n emitValue(value: V) {\n this.emitValueChange(this.valueOut(value));\n }\n\n emitValueChange(value: T) {\n if (this.onChange) {\n this.onChange(value);\n this.writeValue(value);\n }\n this.valueChange.emit(value);\n }\n\n protected valueIn(v: T): V {\n return v as any;\n }\n\n protected valueOut(v: V): T {\n return v as any;\n }\n}\n\n/**\n * @deprecated use {@link CommonFormControl} instead\n */\nexport const CommonForm = CommonFormControl;\n","import { ValueOf } from '../types';\n\nexport const RadioSize = {\n Medium: 'medium',\n Small: 'small',\n Mini: 'mini',\n} as const;\n\nexport type RadioSize = ValueOf<typeof RadioSize>;\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nimport { CommonFormControl } from '../../form/public-api';\nimport { RadioSize } from '../radio.types';\n\n@Component({\n selector: 'aui-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n})\nexport class RadioGroupComponent extends CommonFormControl<any> {\n private readonly size$$ = new BehaviorSubject<RadioSize>(RadioSize.Medium);\n private readonly isPlain$$ = new BehaviorSubject<boolean>(true);\n private readonly name$$ = new BehaviorSubject<string>('');\n\n @Input()\n set size(val: RadioSize) {\n this.size$$.next(val);\n }\n\n @Input()\n direction: 'row' | 'column' = 'row';\n\n /**\n * @deprecated use `plain` instead\n */\n @Input()\n set isPlain(val: boolean) {\n this.plain = val;\n }\n\n @Input()\n set plain(val: boolean) {\n this.isPlain$$.next(val);\n }\n\n @Input()\n set name(val: string) {\n this.name$$.next(val);\n }\n\n size$: Observable<RadioSize> = this.size$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n isPlain$: Observable<boolean> = this.isPlain$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n name$: Observable<string> = this.name$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n writeValue(value: any) {\n this.value$$.next(value);\n }\n\n onRadioChange(value: any) {\n this.emitValueChange(value);\n }\n\n onRadioBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject, Subject, combineLatest } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\n\nlet uniqueId = 0;\n\n@Directive()\n// tslint:disable-next-line: directive-class-suffix\nexport class BaseRadio implements OnInit, AfterViewInit, OnDestroy {\n id = `aui-radio-${uniqueId++}`;\n\n @Input()\n disabled: boolean | '' = false;\n\n @Input()\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n this.value$$.next(val);\n }\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef;\n\n checked = false;\n name = '';\n\n protected _value: unknown;\n protected readonly value$$ = new BehaviorSubject(this.value);\n protected destroy$$ = new Subject<void>();\n\n constructor(\n protected radioGroup: RadioGroupComponent,\n protected focusMonitor: FocusMonitor,\n protected cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.radioGroup.name$.pipe(takeUntil(this.destroy$$)).subscribe(name => {\n this.name = name;\n this.cdr.markForCheck();\n });\n\n combineLatest([this.radioGroup.value$, this.value$$])\n .pipe(\n takeUntil(this.destroy$$),\n map(([groupValue, selfValue]) => groupValue === selfValue),\n )\n .subscribe(checked => {\n this.checked = checked;\n this.cdr.markForCheck();\n });\n }\n\n ngAfterViewInit() {\n this.focusMonitor.monitor(this.elRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.focusMonitor.stopMonitoring(this.elRef.nativeElement);\n }\n\n onClick() {\n if (this.checked || this.disabled) {\n return;\n }\n this.radioGroup.onRadioChange(this.value);\n }\n\n onBlur() {\n this.radioGroup.onRadioBlur();\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { BaseRadio } from './base-radio';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\n\n@Component({\n selector: 'aui-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class RadioComponent extends BaseRadio {\n bem: Bem = buildBem('aui-radio');\n\n get rootClass() {\n return `${this.bem.block()} ${this.disabled ? 'isDisabled' : ''} ${\n this.checked ? 'isChecked' : ''\n }`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n radioGroup: RadioGroupComponent,\n focusMonitor: FocusMonitor,\n cdr: ChangeDetectorRef,\n ) {\n super(radioGroup, focusMonitor, cdr);\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Bem, buildBem } from '../../utils';\nimport { BaseRadio } from '../base-radio';\nimport { RadioGroupComponent } from '../radio-group/radio-group.component';\nimport { RadioSize } from '../radio.types';\n\n@Component({\n selector: 'aui-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class RadioButtonComponent extends BaseRadio implements OnInit {\n bem: Bem = buildBem('aui-radio-button');\n\n size: RadioSize = RadioSize.Medium;\n isPlain = true;\n\n get rootClass() {\n return `${this.bem.block(this.size)} ${this.disabled ? 'isDisabled' : ''} ${\n this.checked ? 'isChecked' : ''\n } ${this.isPlain ? 'isPlain' : ''}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n radioGroup: RadioGroupComponent,\n focusMonitor: FocusMonitor,\n cdr: ChangeDetectorRef,\n ) {\n super(radioGroup, focusMonitor, cdr);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.radioGroup.size$.pipe(takeUntil(this.destroy$$)).subscribe(size => {\n this.size = size;\n this.cdr.markForCheck();\n });\n this.radioGroup.isPlain$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(isPlain => {\n this.isPlain = isPlain;\n this.cdr.markForCheck();\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/public-api';\n\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\nimport { RadioComponent } from './radio.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [RadioComponent, RadioGroupComponent, RadioButtonComponent],\n exports: [RadioComponent, RadioGroupComponent, RadioButtonComponent],\n})\nexport class RadioModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CommonFormControl } from '../form/public-api';\nimport { Bem, buildBem } from '../utils';\n\nconst prefix = 'aui-switch';\n\n@Component({\n selector: 'aui-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n})\nexport class SwitchComponent extends CommonFormControl<boolean> {\n bem: Bem = buildBem(prefix);\n\n @Input()\n loading = false;\n\n writeValue(value: boolean) {\n this.value$$.next(value);\n }\n\n onSwitch() {\n if (this.disabled) {\n return;\n }\n this.emitValueChange(!this.snapshot.value);\n }\n\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SwitchComponent } from './switch.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SwitchComponent],\n exports: [SwitchComponent],\n})\nexport class SwitchModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CommonFormControl } from '../../form/public-api';\nimport { TrackFn } from '../../select/public-api';\nimport { CheckboxComponent } from '../checkbox.component';\n\n@Component({\n selector: 'aui-checkbox-group',\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxGroupComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxGroupComponent<T> extends CommonFormControl<T[]> {\n private _trackFn: TrackFn<T>;\n\n @Input()\n direction: 'row' | 'column' = 'row';\n\n @Input()\n get trackFn() {\n return this._trackFn;\n }\n\n set trackFn(val) {\n if (val !== this._trackFn) {\n this._trackFn = val;\n }\n }\n\n @ContentChildren(forwardRef(() => CheckboxComponent), {\n descendants: true,\n })\n checkboxes: QueryList<CheckboxComponent<T>>;\n\n writeValue(val: T[]) {\n this.value$$.next(val);\n }\n\n onCheckboxChange(checkbox: CheckboxComponent<T>) {\n if (this.onTouched) {\n this.onTouched();\n }\n const values = this.checkboxes\n .filter(item =>\n item === checkbox ? !item.snapshot.value : item.snapshot.value,\n )\n .map(item => item.label);\n this.emitValueChange(values);\n }\n\n onCheckboxBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Subject, combineLatest } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { CommonFormControl } from '../form/public-api';\n\nimport { CheckboxGroupComponent } from './checkbox-group/checkbox-group.component';\n\nlet uniqueId = 0;\n@Component({\n selector: 'aui-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent<T>\n extends CommonFormControl<boolean>\n implements AfterViewInit, OnDestroy {\n id = `aui-checkbox-${uniqueId++}`;\n\n @Input()\n name = '';\n\n @Input()\n type = 'label';\n\n @Input()\n get label() {\n return this._label;\n }\n\n set label(val) {\n this._label = val;\n this.label$$.next(val);\n }\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n this._indeterminate = value;\n }\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef;\n\n private readonly checkboxGroup: CheckboxGroupComponent<T>;\n private _label: T;\n private readonly label$$ = new BehaviorSubject(this.label);\n private _indeterminate = false;\n private readonly destroy$$ = new Subject<void>();\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional()\n @Inject(forwardRef(() => CheckboxGroupComponent))\n checkboxGroup: CheckboxGroupComponent<T>,\n private readonly focusMonitor: FocusMonitor,\n ) {\n super(cdr);\n this.checkboxGroup = checkboxGroup;\n if (this.checkboxGroup) {\n combineLatest([this.checkboxGroup.value$, this.label$$])\n .pipe(\n takeUntil(this.destroy$$),\n map(([value, label]) => {\n if (this.checkboxGroup.trackFn) {\n return value?.some(\n v =>\n this.checkboxGroup.trackFn(v) ===\n this.checkboxGroup.trackFn(label),\n );\n }\n return value?.includes(label);\n }),\n )\n .subscribe(this.value$$);\n }\n }\n\n ngAfterViewInit() {\n this.focusMonitor.monitor(this.elRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.focusMonitor.stopMonitoring(this.elRef.nativeElement);\n }\n\n writeValue(value: boolean) {\n this.value$$.next(value);\n }\n\n onClick() {\n if (this.disabled) {\n return;\n }\n if (this.indeterminate) {\n this._indeterminate = false;\n }\n this.emitValueChange(!this.snapshot.value);\n if (this.checkboxGroup) {\n this.checkboxGroup.onCheckboxChange(this);\n }\n }\n\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n if (this.checkboxGroup) {\n this.checkboxGroup.onCheckboxBlur();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/public-api';\n\nimport { CheckboxGroupComponent } from './checkbox-group/checkbox-group.component';\nimport { CheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [CheckboxComponent, CheckboxGroupComponent],\n exports: [CheckboxComponent, CheckboxGroupComponent],\n})\nexport class CheckboxModule {}\n","/* eslint-disable sonarjs/no-duplicate-string */\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ComponentSize } from '../types';\nimport { coerceAttrBoolean } from '../utils';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'input[aui-input],textarea[aui-input]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class InputComponent {\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n if (!val || this._size === val) {\n return;\n }\n this.renderer.removeClass(\n this.elementRef.nativeElement,\n 'aui-input--' + this._size,\n );\n this.renderer.addClass(this.elementRef.nativeElement, 'aui-input--' + val);\n this._size = val;\n this.size$.next(val);\n }\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n const booleanVal = coerceAttrBoolean(val);\n if (booleanVal === this._disabled) {\n return;\n }\n if (booleanVal) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'disabled', '');\n } else {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'disabled');\n }\n this._disabled = booleanVal;\n this.disabled$.next(booleanVal);\n }\n\n private _size: ComponentSize = ComponentSize.Medium;\n private _disabled = false;\n\n size$ = new BehaviorSubject<ComponentSize>(this.size);\n\n /**\n * workaround for @link https://github.com/microsoft/TypeScript/pull/42425\n */\n disabled$ = new BehaviorSubject<boolean>(this.disabled as boolean);\n\n constructor(\n public elementRef: ElementRef<HTMLInputElement>,\n private readonly renderer: Renderer2,\n ) {\n this.renderer.addClass(this.elementRef.nativeElement, 'aui-input');\n this.renderer.addClass(\n this.elementRef.nativeElement,\n 'aui-input--' + this.size,\n );\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiInputAddonBefore]',\n})\nexport class InputAddonBeforeDirective {}\n\n@Directive({\n selector: '[auiInputAddonAfter]',\n})\nexport class InputAddonAfterDirective {}\n\n@Directive({\n selector: '[auiInputPrefix]',\n})\nexport class InputPrefixDirective {}\n\n@Directive({\n selector: '[auiInputSuffix]',\n})\nexport class InputSuffixDirective {}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { Bem, buildBem, watchContentExist } from '../../utils';\nimport {\n InputAddonAfterDirective,\n InputAddonBeforeDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n} from '../helper-directives';\nimport { InputComponent } from '../input.component';\n\n@Component({\n selector: 'aui-input-group',\n templateUrl: './input-group.component.html',\n styleUrls: ['./input-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class InputGroupComponent implements AfterContentInit {\n bem: Bem = buildBem('aui-input-group');\n\n @ContentChildren(InputAddonBeforeDirective)\n private readonly addonBeforeRefs: QueryList<InputAddonBeforeDirective>;\n\n @ContentChildren(InputAddonAfterDirective)\n private readonly addonAfterRefs: QueryList<InputAddonAfterDirective>;\n\n @ContentChildren(InputPrefixDirective)\n private readonly prefixRefs: QueryList<InputPrefixDirective>;\n\n @ContentChildren(InputSuffixDirective)\n private readonly suffixRefs: QueryList<InputSuffixDirective>;\n\n @ContentChild(InputComponent, { static: false })\n inputRef: InputComponent;\n\n hasAddonBefore$: Observable<boolean>;\n hasAddonAfter$: Observable<boolean>;\n hasPrefix$: Observable<boolean>;\n hasSuffix$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasAddonBefore$ = watchContentExist(this.addonBeforeRefs);\n this.hasAddonAfter$ = watchContentExist(this.addonAfterRefs);\n this.hasPrefix$ = watchContentExist(this.prefixRefs);\n this.hasSuffix$ = watchContentExist(this.suffixRefs);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\n\n@Component({\n selector: 'aui-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SearchComponent {\n bem: Bem = buildBem('aui-search');\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n searchButton = false;\n\n @Input()\n clearable = true;\n\n @Input()\n searching = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n disabled = false;\n\n @Input()\n get keyword() {\n return this.value;\n }\n\n set keyword(value: string) {\n this.value = value;\n }\n\n @Output()\n keywordChange = new EventEmitter<string>();\n\n @Output()\n search = new EventEmitter<string>();\n\n @Output()\n clear = new EventEmitter<void>();\n\n value = '';\n\n get showSpinner() {\n return this.searching && !this.searchButton;\n }\n\n get showClear() {\n return !this.disabled && this.clearable && this.value && !this.showSpinner;\n }\n\n emitChange(value: string): void {\n this.value = value;\n this.keywordChange.emit(value);\n }\n\n emitSearch(): void {\n if (this.disabled) {\n return;\n }\n this.search.emit(this.value);\n }\n\n emitClear(): void {\n if (this.disabled) {\n return;\n }\n this.value = '';\n this.keywordChange.emit('');\n this.search.emit('');\n this.clear.emit();\n }\n}\n","import { ComponentSize } from '../../types';\n\nfunction getRowHeight(size: ComponentSize) {\n switch (size) {\n case ComponentSize.Large:\n return 33;\n case ComponentSize.Small:\n return 23;\n case ComponentSize.Mini:\n return 21;\n default:\n return 25;\n }\n}\n\nfunction getContainerPaddingPatch(size: ComponentSize) {\n switch (size) {\n case ComponentSize.Mini:\n return 3;\n case ComponentSize.Small:\n return 5;\n default:\n return 7;\n }\n}\n\nexport function createWithMaxRowCount<\n T extends {\n maxRowCount: number;\n customRowHeight?: number;\n size: ComponentSize;\n }\n>(component: T) {\n const hostPosition = () => (component.maxRowCount > 0 ? 'relative' : null);\n const hostDisplay = () => (component.maxRowCount ? 'block' : null);\n const maxHeight = () => {\n if (component.maxRowCount <= 0) {\n return null;\n }\n\n const paddingPatch = getContainerPaddingPatch(component.size);\n\n const rowHeight =\n isNaN(component.customRowHeight) || component.customRowHeight <= 0\n ? getRowHeight(component.size)\n : component.customRowHeight;\n\n return `${rowHeight * component.maxRowCount + paddingPatch}px`;\n };\n\n return {\n hostPosition,\n hostDisplay,\n maxHeight,\n };\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport {\n AsyncValidatorFn,\n FormBuilder,\n NG_VALUE_ACCESSOR,\n NgControl,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { map, publishReplay, refCount, take, tap } from 'rxjs/operators';\n\nimport { CommonFormControl } from '../../form/public-api';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\n\nimport { createWithMaxRowCount } from './with-max-row-count';\n\nexport const INPUT_ERROR_KEY = 'input_data_error';\n\n@Component({\n selector: 'aui-tags-input',\n templateUrl: './tags-input.component.html',\n styleUrls: [\n '../../input/input.component.scss',\n '../../tag/tag.component.scss',\n './tags-input.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TagsInputComponent),\n multi: true,\n },\n ],\n})\nexport class TagsInputComponent\n extends CommonFormControl<string[]>\n implements AfterViewInit, OnChanges {\n bem: Bem = buildBem('aui-tags-input');\n\n @Input()\n placeholder = '';\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n // TODO: implement this feature\n @Input()\n clearable: boolean | '' = false;\n\n @Input()\n allowRepeat: boolean | '' = false;\n\n @Input()\n allowEmpty: boolean | '' = false;\n\n @Input()\n readonlyTags: string[] | readonly string[] = [];\n\n @Input()\n maxRowCount = 0;\n\n @Input()\n customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight\n\n _inputValidator: ValidatorFn;\n _inputAsyncValidator: AsyncValidatorFn;\n\n @Input()\n set inputValidator(fn: ValidatorFn | ValidatorFn[]) {\n this._inputValidator = Array.isArray(fn) ? Validators.compose(fn) : fn;\n }\n\n get inputValidator() {\n return this._inputValidator;\n }\n\n @Input()\n set inputAsyncValidator(fn: AsyncValidatorFn | AsyncValidatorFn[]) {\n this._inputAsyncValidator = Array.isArray(fn)\n ? Validators.composeAsync(fn)\n : fn;\n }\n\n get inputAsyncValidator() {\n return this._inputAsyncValidator;\n }\n\n @ViewChild('inputRef', { static: true })\n inputRef: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputValueMirror', { static: true })\n inputValueMirror: ElementRef<HTMLElement>;\n\n @HostBinding('style.position')\n get hostPosition() {\n return this.withMaxRowCount.hostPosition();\n }\n\n @HostBinding('style.display')\n get hostDisplay() {\n return this.withMaxRowCount.hostDisplay();\n }\n\n get maxHeight() {\n return this.withMaxRowCount.maxHeight();\n }\n\n private readonly withMaxRowCount = createWithMaxRowCount(this);\n\n snapshot = {\n value: [] as string[],\n };\n\n value$: Observable<string[]> = this.value$$.asObservable().pipe(\n map(value => this.sortByReadonly(value)),\n tap(value => {\n this.snapshot.value = value;\n this.clearInput();\n }),\n publishReplay(1),\n refCount(),\n );\n\n focused = false;\n\n // 内置form control,仅作校验使用\n readonly inputControl = this.fb.control('');\n // 外层 FormControl,所有的校验逻辑针对输入数据\n controlContainer: NgControl;\n\n get rootClass() {\n const size = this.size || ComponentSize.Medium;\n return `aui-input ${this.bem.block(size)} ${\n this.disabled ? 'isDisabled' : ''\n } ${this.focused ? 'isFocused' : ''} ${\n this.clearable ? 'isClearable' : ''\n } ${this.maxRowCount > 0 ? 'withHeightLimit' : ''}`;\n }\n\n get tagSize() {\n return this.size === ComponentSize.Large\n ? ComponentSize.Medium\n : ComponentSize.Mini;\n }\n\n get inputClass() {\n return `${this.bem.element('input', {\n hidden:\n this.disabled || (!this.focused && !this.inputRef?.nativeElement.value),\n })} aui-tag aui-tag--${this.tagSize}`;\n }\n\n constructor(\n cdr: ChangeDetectorRef,\n private readonly fb: FormBuilder,\n private readonly renderer: Renderer2,\n private readonly injector: Injector,\n ) {\n super(cdr);\n }\n\n ngOnChanges({\n inputValidator,\n inputAsyncValidator,\n disabled,\n }: SimpleChanges) {\n if (disabled) {\n this.inputControl[disabled.currentValue ? 'disable' : 'enable']({\n emitEvent: false,\n });\n }\n if (inputValidator) {\n this.inputControl.setValidators(this.inputValidator);\n }\n if (inputAsyncValidator) {\n this.inputControl.setAsyncValidators(this.inputAsyncValidator);\n }\n }\n\n ngAfterViewInit() {\n this.controlContainer = this.injector.get(NgControl, null);\n }\n\n writeValue(val: string[]) {\n this.value$$.next(val || []);\n }\n\n onRemove(index: number) {\n const target = this.snapshot.value[index];\n if (target && this.readonlyTags.includes(target)) {\n return;\n }\n this.emitValueChange(this.snapshot.value.filter((_, i) => i !== index));\n }\n\n onInput() {\n const value = this.inputRef.nativeElement.value;\n // make sure value sync to span element\n requestAnimationFrame(() => {\n if (!value.length) {\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n } else {\n this.renderer.setStyle(\n this.inputRef.nativeElement,\n 'width',\n this.inputValueMirror.nativeElement.scrollWidth + 'px',\n );\n }\n });\n if (\n this.controlContainer?.control?.errors?.[INPUT_ERROR_KEY] &&\n Object.keys(this.controlContainer.control.errors).length === 1\n ) {\n this.controlContainer.control.setErrors(null);\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const inputEl = event.target as HTMLInputElement;\n if (event.key === 'Backspace' && inputEl.value === '') {\n this.onRemove(this.snapshot.value.length - 1);\n event.stopPropagation();\n event.preventDefault();\n } else if (event.key === 'Enter') {\n event.stopPropagation();\n event.preventDefault();\n requestAnimationFrame(() => {\n this.pushValue(inputEl.value);\n });\n }\n }\n\n onInputFocus() {\n this.focused = true;\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n this.pushValue((event.target as HTMLInputElement).value);\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n trackByValue(_: number, value: string) {\n return value;\n }\n\n private sortByReadonly(items: string[]) {\n return this.readonlyTags.length\n ? [\n ...items.reduce(\n (acc, curr) => acc.add(curr),\n new Set(this.readonlyTags),\n ),\n ]\n : items;\n }\n\n private pushValue(value: string) {\n if (!this.allowEmpty && !value) {\n this.removeInputControlError();\n return;\n }\n if (!this.allowRepeat && this.snapshot.value.includes(value)) {\n return;\n }\n this.inputControl.setValue(this.inputRef.nativeElement.value);\n // inputControl 自身的状态为同步计算\n this.syncControlStatus();\n if (this.inputControl.valid) {\n this.emitValueChange(this.snapshot.value.concat(value));\n } else if (this.inputControl.pending) {\n // PENDING 后只会变为 VALID 或 INVALID 的决议状态\n this.inputControl.statusChanges.pipe(take(1)).subscribe(_ => {\n this.syncControlStatus();\n if (this.inputControl.valid) {\n this.emitValueChange(this.snapshot.value.concat(value));\n }\n });\n }\n }\n\n private syncControlStatus() {\n const { pending, valid, invalid, disabled, errors } = this.inputControl;\n if (valid) {\n this.removeInputControlError();\n this.controlContainer?.control.markAsDirty();\n } else if (pending) {\n this.controlContainer?.control.markAsPending();\n } else if (invalid) {\n this.controlContainer?.control.markAsDirty();\n this.controlContainer?.control.setErrors({\n ...(this.controlContainer?.control?.errors || {}),\n [INPUT_ERROR_KEY]: errors,\n });\n } else if (disabled) {\n // 与当前 input 校验脱离\n this.controlContainer?.control?.updateValueAndValidity();\n }\n }\n\n private removeInputControlError() {\n let errors = this.controlContainer?.control.errors;\n if (errors?.[INPUT_ERROR_KEY]) {\n delete errors[INPUT_ERROR_KEY];\n }\n if (Object.keys(errors || {}).length === 0) {\n errors = null;\n }\n this.controlContainer?.control.setErrors(errors);\n }\n\n private clearInput() {\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n this.inputRef.nativeElement.value = '';\n this.inputControl.setValue('');\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Output,\n} from '@angular/core';\n\n@Directive({\n selector: '[auiClickOutside]',\n exportAs: 'auiClickOutside',\n})\nexport class ClickOutsideDirective {\n @Output()\n auiClickOutside = new EventEmitter<Event>();\n\n @HostListener('document:click', ['$event'])\n onBodyClick(event: Event) {\n if (!this.el.nativeElement.contains(event.target as Node)) {\n this.auiClickOutside.emit(event);\n }\n }\n\n constructor(private readonly el: ElementRef<HTMLElement>) {}\n}\n","import { NgModule } from '@angular/core';\n\nimport { ClickOutsideDirective } from './click-outside.directive';\n\n@NgModule({\n declarations: [ClickOutsideDirective],\n exports: [ClickOutsideDirective],\n})\nexport class SharedModule {}\n","import { ValueOf } from '../types';\n\nexport const TagType = {\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Error: 'error',\n Info: 'info',\n} as const;\n\nexport type TagType = ValueOf<typeof TagType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../types';\nimport { Bem, buildBem } from '../utils';\n\nimport { TagType } from './tag.types';\n\n@Component({\n selector: 'aui-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TagComponent {\n bem: Bem = buildBem('aui-tag');\n\n @Input()\n type: TagType = TagType.Primary;\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n closeable = false;\n\n @Input()\n border = false;\n\n @Input()\n solid = false;\n\n @Input()\n invalid = false;\n\n @Input()\n round = true;\n\n @Input()\n color = '';\n\n @Input()\n allowClick = false;\n\n @Output()\n close = new EventEmitter<void>();\n\n get rootClass() {\n return `${this.bem.block(\n this.type || TagType.Primary,\n this.size || ComponentSize.Medium,\n )} ${this.solid ? 'isSolid' : ''} ${this.border ? 'hasBorder' : ''} ${\n this.invalid ? 'isInvalid' : ''\n } ${this.round ? 'isRound' : ''} ${\n this.allowClick && this.isNormalTag ? 'allowClick' : ''\n }`;\n }\n\n // 只有常规标签支持单击样式\n get isNormalTag() {\n return !this.solid && !this.closeable && !this.invalid;\n }\n\n get customStyle() {\n const arr = this.color.split(',');\n return {\n color: arr[0],\n 'border-color': arr[0],\n 'background-color': arr[1] || arr[0],\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\nimport { TagType } from '../tag.types';\n\n@Component({\n selector: 'aui-check-tag',\n templateUrl: './check-tag.component.html',\n styleUrls: ['./check-tag.component.scss', '../tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class CheckTagComponent {\n bem: Bem = buildBem('aui-tag');\n hovered = false;\n\n @Input()\n checked = false;\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n round = true;\n\n @Output()\n checkedChange = new EventEmitter<boolean>();\n\n get rootClass() {\n return `aui-check-tag ${this.bem.block(\n this.size,\n this.checked || this.hovered ? TagType.Primary : TagType.Info,\n )} ${this.round ? 'isRound' : ''}`;\n }\n}\n","let hiddenTextarea: HTMLTextAreaElement;\n\nconst HIDDEN_STYLE = `\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\n\nconst CONTEXT_STYLE = [\n 'letter-spacing',\n 'line-height',\n 'padding-top',\n 'padding-bottom',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'padding-left',\n 'padding-right',\n 'border-width',\n 'box-sizing',\n];\n\nfunction calculateNodeStyling(targetElement: HTMLTextAreaElement) {\n const style = window.getComputedStyle(targetElement);\n\n const boxSizing = style.getPropertyValue('box-sizing');\n\n const paddingSize =\n parseFloat(style.getPropertyValue('padding-bottom')) +\n parseFloat(style.getPropertyValue('padding-top'));\n\n const borderSize =\n parseFloat(style.getPropertyValue('border-bottom-width')) +\n parseFloat(style.getPropertyValue('border-top-width'));\n\n const contextStyle = CONTEXT_STYLE.map(\n name => `${name}:${style.getPropertyValue(name)}`,\n ).join(';');\n\n return { contextStyle, paddingSize, borderSize, boxSizing };\n}\n\nexport function calcTextareaHeight(\n targetElement: HTMLTextAreaElement,\n minRows = 1,\n maxRows: number = null,\n) {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.append(hiddenTextarea);\n }\n\n const { paddingSize, borderSize, contextStyle } = calculateNodeStyling(\n targetElement,\n );\n\n hiddenTextarea.setAttribute('style', `${contextStyle};${HIDDEN_STYLE}`);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n hiddenTextarea.value = '';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n const result: {\n minHeight?: string;\n maxHeight?: string;\n height?: string;\n } = {};\n\n if (minRows !== null) {\n const minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n result.minHeight = `${minHeight}px`;\n }\n if (maxRows !== null) {\n const maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n height = Math.min(maxHeight, height);\n result.maxHeight = `${maxHeight}px`;\n }\n result.height = `${height}px`;\n\n if (hiddenTextarea.parentNode) {\n hiddenTextarea.remove();\n }\n hiddenTextarea = null;\n\n return result;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/public-api';\n\nimport { CheckTagComponent } from './check-tag/check-tag.component';\nimport { TagComponent } from './tag.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [TagComponent, CheckTagComponent],\n exports: [TagComponent, CheckTagComponent],\n})\nexport class TagModule {}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { calcTextareaHeight } from './utils';\n\nconst DEFAULT_VALUE = {\n minRows: 3,\n maxRows: 6,\n};\n\nexport interface AutoSizeValue {\n minRows: number;\n maxRows?: number;\n}\n\n/**\n * Directive to automatically resize a textarea to fit its content.\n */\n@Directive({\n selector:\n // tslint:disable-next-line: directive-selector\n 'textarea[autosize][ngModel],textarea[autosize][formControl],textarea[autosize][formControlName]',\n exportAs: 'TextareaAutosize',\n})\nexport class AutosizeDirective implements AfterViewInit, OnDestroy {\n private _autoSize: AutoSizeValue = DEFAULT_VALUE;\n\n private readonly destroy$$ = new Subject<void>();\n\n @Input('autosize')\n get autoSize() {\n return this._autoSize;\n }\n\n set autoSize(value: AutoSizeValue | '') {\n if (!value) {\n value = DEFAULT_VALUE;\n }\n this._autoSize = value;\n this.resizeTextarea();\n }\n\n constructor(\n private readonly elRef: ElementRef<HTMLTextAreaElement>,\n private readonly ngControl: NgControl,\n ) {}\n\n resizeTextarea() {\n const el = this.elRef.nativeElement;\n const autoSize = this._autoSize;\n Object.assign(\n el.style,\n calcTextareaHeight(\n el,\n autoSize.minRows ?? DEFAULT_VALUE.minRows,\n autoSize.maxRows || DEFAULT_VALUE.maxRows, // 0 is unacceptable\n ),\n );\n }\n\n ngAfterViewInit() {\n this.ngControl.valueChanges\n .pipe(startWith(null as void), takeUntil(this.destroy$$))\n .subscribe(() => this.resizeTextarea());\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CommonFormControl } from '../../form/public-api';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem, coerceNumber } from '../../utils';\n\n@Component({\n selector: 'aui-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberInputComponent),\n multi: true,\n },\n ],\n})\nexport class NumberInputComponent\n extends CommonFormControl<number>\n implements AfterViewInit {\n bem: Bem = buildBem('aui-number-input');\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n min: string | number = Number.MIN_SAFE_INTEGER;\n\n @Input()\n max: string | number = Number.MAX_SAFE_INTEGER;\n\n @Input()\n step = 1;\n\n @Input()\n precision: number;\n\n @Input()\n controls = true;\n\n @Input()\n placeholder = '';\n\n @Input()\n controlsPosition = '';\n\n @ViewChild('inputRef', { read: ElementRef })\n inputRef: ElementRef<HTMLInputElement>;\n\n isFocus = false;\n\n ngAfterViewInit() {\n this.inputRef.nativeElement.value = (this.snapshot.value ?? '') + '';\n }\n\n valueIn(v: number) {\n if (this.inputRef) {\n this.inputRef.nativeElement.value = (v ?? '') + '';\n }\n return v;\n }\n\n valueOut(value: number) {\n return Math.max(\n coerceNumber(this.min, Number.MIN_SAFE_INTEGER),\n Math.min(\n coerceNumber(this.max, Number.MAX_SAFE_INTEGER),\n this.parsePrecision(value),\n ),\n );\n }\n\n inputChanged(value: string) {\n this.emitValue(coerceNumber(value, this.snapshot.value));\n }\n\n takeOneStep(positive: boolean) {\n if (positive) {\n this.emitValue((this.snapshot.value ?? 0) + this.step);\n } else {\n this.emitValue((this.snapshot.value ?? 0) - this.step);\n }\n }\n\n private parsePrecision(value: number) {\n const precision = this.precision ?? this.getStepPrecision();\n return parseFloat(value.toFixed(precision));\n }\n\n private getStepPrecision() {\n const step = this.step + '';\n const index = step.indexOf('.');\n return index < 0 ? 0 : step.slice(index + 1).length;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button/public-api';\nimport { IconModule } from '../icon/public-api';\nimport { SharedModule } from '../shared/shared.module';\nimport { TagModule } from '../tag/public-api';\n\nimport { AutosizeDirective } from './autosize.directive';\nimport {\n InputAddonAfterDirective,\n InputAddonBeforeDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n} from './helper-directives';\nimport { InputGroupComponent } from './input-group/input-group.component';\nimport { InputComponent } from './input.component';\nimport { NumberInputComponent } from './number-input/number-input.component';\nimport { SearchComponent } from './search/search.component';\nimport { TagsInputComponent } from './tags-input/tags-input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n FormsModule,\n ReactiveFormsModule,\n IconModule,\n TagModule,\n SharedModule,\n ],\n declarations: [\n AutosizeDirective,\n InputComponent,\n InputGroupComponent,\n InputAddonBeforeDirective,\n InputAddonAfterDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n SearchComponent,\n TagsInputComponent,\n NumberInputComponent,\n ],\n exports: [\n AutosizeDirective,\n InputComponent,\n InputGroupComponent,\n InputAddonBeforeDirective,\n InputAddonAfterDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n SearchComponent,\n TagsInputComponent,\n NumberInputComponent,\n ],\n})\nexport class InputModule {}\n","import { I18NInterface } from '../i18n.type';\n\nexport const en: I18NInterface = {\n locale: 'en',\n translation: {\n start_date: 'Start Date',\n end_date: 'End Date',\n select_date: 'Select Date',\n select_time: 'Select time',\n clear: 'clear',\n confirm: 'confirm',\n to: 'To',\n year_suffix: '',\n month_suffix: '',\n monday: 'Mon',\n tuesday: 'Tues',\n wednesday: 'Wed',\n thursday: 'Thur',\n friday: 'Fri',\n saturday: 'Sat',\n sunday: 'Sun',\n now: 'Now',\n select_all: 'Select All',\n today: 'Today',\n },\n};\n","import { InjectionToken } from '@angular/core';\n\nimport { en } from './language/en';\n\nexport interface I18NInterface {\n locale: string;\n translation: Record<string, string>;\n}\nexport type StringMap = Record<string, string>;\n\nexport const I18NInterfaceToken = new InjectionToken('i18n token', {\n factory: () => en,\n});\n","import { Inject, Injectable, isDevMode } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { pluck } from 'rxjs/operators';\n\nimport { I18NInterface, I18NInterfaceToken, StringMap } from './i18n.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class I18nService {\n private readonly i18nChange$$ = new BehaviorSubject<I18NInterface>(\n this._i18n,\n );\n\n localeChange$ = this.i18nChange$$.asObservable().pipe(pluck('locale'));\n\n constructor(@Inject(I18NInterfaceToken) private _i18n: I18NInterface) {}\n\n setI18n(i18n: I18NInterface) {\n this._i18n = i18n;\n this.i18nChange$$.next(i18n);\n }\n\n get i18n() {\n return this._i18n;\n }\n\n translate(key: string, data?: StringMap, ignoreNonExist = false) {\n let content = this._i18n.translation[key];\n if (content == null) {\n if (isDevMode() && !ignoreNonExist) {\n console.warn(`No exist translate key for ${key}`);\n }\n return key;\n }\n if (data) {\n content = content.replaceAll(\n /{{([^{}]+)}}/,\n (_matched, $0: string) => data[$0.trim()],\n );\n }\n return content;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { I18nService } from './i18n.service';\nimport { StringMap } from './i18n.type';\n\n@Pipe({\n name: 'auiI18n',\n})\nexport class I18nPipe implements PipeTransform {\n constructor(private readonly i18n: I18nService) {}\n transform(value: any, data?: StringMap) {\n return this.i18n.translate(value, data);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { I18nPipe } from './i18n.pipe';\n\n@NgModule({\n declarations: [I18nPipe],\n exports: [I18nPipe],\n})\nexport class I18nModule {}\n","import { Directive, Input } from '@angular/core';\n\nimport { TooltipActiveDirective } from '../tooltip/public-api';\n\n@Directive({\n selector: '[auiDropdownActive]',\n})\nexport class DropdownActiveDirective extends TooltipActiveDirective {\n @Input('auiDropdownActive')\n customClass: string | string[];\n}\n","// tslint:disable: no-output-rename\nimport { Overlay } from '@angular/cdk/overlay';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnInit,\n Output,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { debounceTime } from 'rxjs/operators';\n\nimport {\n BaseTooltip,\n TooltipTrigger,\n TooltipType,\n} from '../tooltip/public-api';\n\nimport { DropdownActiveDirective } from './dropdown-active.directive';\nimport { MenuComponent } from './menu/menu.component';\n\n@Directive({\n selector: '[auiDropdown]',\n exportAs: 'auiDropdown',\n inputs: [\n 'class:auiDropdownClass',\n 'disabled:auiDropdownDisabled',\n 'position:auiDropdownPosition',\n 'trigger:auiDropdownTrigger',\n ],\n providers: [\n {\n provide: BaseTooltip,\n useExisting: DropdownDirective,\n },\n ],\n})\nexport class DropdownDirective extends BaseTooltip implements OnInit {\n @Input('auiDropdown')\n get menu() {\n return this._menu;\n }\n\n set menu(value) {\n if (value === this._menu) {\n return;\n }\n this._menu = value;\n this.content = value.template;\n }\n\n @Input('auiDropdownContext')\n lazyContentContext: any;\n\n @Input('auiDropdownHideOnClick')\n hideOnClick = true;\n\n @Output('auiDropdownShow')\n show: EventEmitter<void>;\n\n @Output('auiDropdownHide')\n hide: EventEmitter<void>;\n\n private _menu: MenuComponent;\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n elRef: ElementRef,\n renderer: Renderer2,\n cdr: ChangeDetectorRef,\n ngZone: NgZone,\n ) {\n super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);\n new DropdownActiveDirective(this, elRef, renderer).customClass = 'isActive';\n this.type = TooltipType.Plain;\n this.position = 'bottom end';\n this.trigger = TooltipTrigger.Click;\n }\n\n ngOnInit() {\n this.show.pipe(debounceTime(0)).subscribe(() => {\n if (this.menu.lazyContent) {\n this.menu.lazyContent.attach(this.lazyContentContext);\n this.updatePosition();\n }\n });\n\n this.hide.subscribe(() => {\n if (this.menu.lazyContent) {\n this.menu.lazyContent.detach();\n }\n });\n }\n}\n","import { ValueOf } from '../types';\n\nexport const MenuItemType = {\n Default: 'default',\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Danger: 'danger',\n} as const;\n\nexport type MenuItemType = ValueOf<typeof MenuItemType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\nimport { MenuItemType } from '../dropdown.types';\n\n@Component({\n selector: 'aui-menu-item',\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class MenuItemComponent {\n bem: Bem = buildBem('aui-menu-item');\n\n protected _disabled = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = value;\n }\n\n @Input()\n divide = false;\n\n @Input()\n type: MenuItemType = MenuItemType.Default;\n\n @Input()\n actived = false;\n\n get className() {\n return `${this.bem.block(this.type)} ${this.divide ? 'hasDivider' : ''} ${\n this.actived ? 'isActive' : ''\n }`;\n }\n}\n","import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n Directive,\n Inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n selector: '*[auiMenuContent]',\n exportAs: 'auiMenuContent',\n})\nexport class MenuContentDirective implements OnDestroy {\n private portal: TemplatePortal;\n private outlet: DomPortalOutlet;\n\n private readonly doc: Document;\n\n constructor(\n private readonly templateRef: TemplateRef<unknown>,\n private readonly appRef: ApplicationRef,\n private readonly viewContainerRef: ViewContainerRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly injector: Injector,\n @Inject(DOCUMENT) document: any,\n ) {\n this.doc = document;\n }\n\n attach(context?: any) {\n if (this.portal?.isAttached) {\n return;\n }\n if (!this.portal) {\n this.portal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n if (!this.outlet) {\n this.outlet = new DomPortalOutlet(\n this.doc.createElement('div'),\n this.componentFactoryResolver,\n this.appRef,\n this.injector,\n );\n }\n const el = this.templateRef.elementRef.nativeElement as HTMLElement;\n el.parentNode.insertBefore(this.outlet.outletElement, el);\n this.portal.attach(this.outlet, context);\n }\n\n detach() {\n if (this.portal?.isAttached) {\n this.portal.detach();\n }\n }\n\n ngOnDestroy() {\n if (this.outlet) {\n this.outlet.dispose();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\n\nimport { MenuContentDirective } from './menu-content.directive';\n\n@Component({\n selector: 'aui-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class MenuComponent {\n bem: Bem = buildBem('aui-menu');\n\n @Input()\n size: ComponentSize = ComponentSize.Small;\n\n @ViewChild(TemplateRef, { static: true })\n template: TemplateRef<any>;\n\n @ContentChild(MenuContentDirective, { static: true })\n lazyContent: MenuContentDirective;\n\n @ContentChildren(MenuItemComponent, { descendants: true })\n menuItems: QueryList<MenuItemComponent>;\n\n get hasEnabledItem() {\n return this.menuItems?.length > 0;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ButtonType } from '../../button/public-api';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem, coerceAttrBoolean } from '../../utils';\nimport { MenuComponent } from '../menu/menu.component';\n\n@Component({\n selector: 'aui-dropdown-button',\n templateUrl: './dropdown-button.component.html',\n styleUrls: ['./dropdown-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class DropdownButtonComponent {\n bem: Bem = buildBem('aui-dropdown-button');\n\n @Input()\n type: ButtonType = ButtonType.Default;\n\n @Input()\n plain = true;\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n loading = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n }\n\n @Output()\n buttonClick = new EventEmitter<Event>();\n\n @ContentChild(MenuComponent, { static: true })\n menu: MenuComponent;\n\n get disableTrigger() {\n return !this.menu?.hasEnabledItem;\n }\n\n private _disabled = false;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-menu-group',\n templateUrl: './menu-group.component.html',\n styleUrls: ['./menu-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class MenuGroupComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { TooltipTrigger } from '../../tooltip/public-api';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\n\n@Component({\n selector: 'aui-submenu',\n templateUrl: './submenu.component.html',\n styleUrls: ['./submenu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SubmenuComponent extends MenuItemComponent {\n bem: Bem = buildBem('aui-submenu');\n\n @Input()\n trigger = TooltipTrigger.Hover;\n\n @Input()\n size: ComponentSize = ComponentSize.Small;\n\n @Input()\n get disabled() {\n return this._disabled || !this.hasEnabledItem;\n }\n\n @ContentChildren(MenuItemComponent, { descendants: true })\n menuItems: QueryList<MenuItemComponent>;\n\n get hasEnabledItem() {\n return this.menuItems?.length > 0;\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiMenuGroupTitle]',\n exportAs: 'auiMenuGroupTitle',\n host: {\n '[class.aui-menu-group__title]': 'true',\n },\n})\nexport class MenuGroupTitleDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button/public-api';\nimport { IconModule } from '../icon/public-api';\nimport { TooltipModule } from '../tooltip/public-api';\n\nimport { DropdownActiveDirective } from './dropdown-active.directive';\nimport { DropdownButtonComponent } from './dropdown-button/dropdown-button.component';\nimport { DropdownDirective } from './dropdown.directive';\nimport { MenuGroupTitleDirective } from './helper-directives';\nimport { MenuGroupComponent } from './menu-group/menu-group.component';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { MenuContentDirective } from './menu/menu-content.directive';\nimport { MenuComponent } from './menu/menu.component';\nimport { SubmenuComponent } from './submenu/submenu.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, IconModule, ButtonModule],\n declarations: [\n DropdownDirective,\n DropdownActiveDirective,\n DropdownButtonComponent,\n MenuComponent,\n MenuGroupComponent,\n MenuGroupTitleDirective,\n MenuItemComponent,\n SubmenuComponent,\n MenuContentDirective,\n ],\n exports: [\n DropdownDirective,\n DropdownActiveDirective,\n DropdownButtonComponent,\n MenuComponent,\n MenuGroupComponent,\n MenuGroupTitleDirective,\n MenuItemComponent,\n SubmenuComponent,\n MenuContentDirective,\n ],\n})\nexport class DropdownModule {}\n","import { Directive } from '@angular/core';\n\nimport { MenuContentDirective } from '../dropdown/public-api';\n\n@Directive({\n selector: '[auiOptionGroupTitle]',\n exportAs: 'auiOptionGroupTitle',\n host: {\n '[class.aui-option-group__title]': 'true',\n },\n})\nexport class OptionGroupTitleDirective {}\n\n@Directive({\n selector: '*[auiOptionContent]',\n exportAs: 'auiOptionContent',\n})\nexport class OptionContentDirective extends MenuContentDirective {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n publishReplay,\n refCount,\n tap,\n} from 'rxjs/operators';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem, coerceAttrBoolean } from '../../utils';\nimport { BaseSelect } from '../base-select';\nimport { MultiSelectComponent } from '../multi-select/multi-select.component';\n\n@Component({\n selector: 'aui-option',\n templateUrl: './option.component.html',\n styleUrls: ['./option.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class OptionComponent<T> {\n bem: Bem = buildBem('aui-option');\n\n private _disabled = false;\n private _label: string | TemplateRef<unknown> = '';\n private _labelContext: unknown = {};\n private _value: T;\n private readonly label$$ = new BehaviorSubject(this.label);\n\n private readonly labelContext$$ = new BehaviorSubject(this.labelContext);\n\n private readonly value$$ = new BehaviorSubject(this.value);\n\n @Input()\n get label() {\n return this._label;\n }\n\n set label(val) {\n this._label = val;\n this.label$$.next(val);\n }\n\n @Input()\n get labelContext() {\n return this._labelContext;\n }\n\n set labelContext(val) {\n this._labelContext = val;\n this.labelContext$$.next(val);\n }\n\n @Input()\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n this.value$$.next(val);\n }\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n }\n\n isMulti = false;\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef;\n\n private readonly select: BaseSelect<T>;\n selected = false;\n visible = true;\n size: ComponentSize = ComponentSize.Medium;\n focused = false;\n\n value$ = this.value$$.asObservable();\n label$ = this.label$$.asObservable();\n labelContext$ = this.labelContext$$.asObservable();\n\n selected$: Observable<boolean>;\n size$: Observable<ComponentSize>;\n visible$: Observable<boolean>;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Inject(forwardRef(() => BaseSelect))\n select: any, // FIXME: workaround temporarily\n ) {\n this.isMulti = select instanceof MultiSelectComponent;\n this.select = select;\n this.selected$ = combineLatest([this.select.values$, this.value$$]).pipe(\n map(([selectValue, selfValue]) =>\n selectValue\n ?.map(this.select.trackFn)\n .includes(this.select.trackFn(selfValue)),\n ),\n distinctUntilChanged(),\n tap(selected => {\n this.selected = selected;\n }),\n publishReplay(1),\n refCount(),\n );\n this.size$ = this.select.size$.pipe(\n tap(size => {\n this.size = size;\n }),\n );\n this.visible$ = combineLatest([\n this.select.filterString$,\n combineLatest([this.label$, this.value$, this.labelContext$]).pipe(\n map(([label, value, labelContext]) => ({ label, value, labelContext })),\n ),\n ]).pipe(\n map(([filterString, option]) =>\n this.select.filterFn(filterString, option),\n ),\n distinctUntilChanged(),\n tap(visible => {\n this.visible = visible;\n }),\n publishReplay(1),\n refCount(),\n );\n }\n\n onClick() {\n if (this.disabled) {\n return;\n }\n this.select.onOptionClick(this);\n }\n\n focus() {\n if (this.disabled) {\n return;\n }\n this.focused = true;\n this.cdr.markForCheck();\n }\n\n blur() {\n this.focused = false;\n this.cdr.markForCheck();\n }\n}\n","import { TemplateRef } from '@angular/core';\n\nexport interface SelectOption {\n label: string | TemplateRef<unknown>;\n labelContext?: unknown;\n}\n\nexport interface SelectFilterOption<T> extends SelectOption {\n value: T;\n}\n\nexport type OptionFilterFn<T> = (\n filter: string,\n option: SelectFilterOption<T>,\n) => boolean;\n\nexport type TrackFn<T, R = unknown> = (value: T) => R;\n\nexport type TagClassFn<\n V,\n T extends string | TemplateRef<unknown> = string | TemplateRef<unknown>\n> = (\n label: T,\n value: V,\n) => // tslint:disable-next-line: max-union-size\nstring | string[] | Set<string> | { [className: string]: unknown };\n\nexport enum SelectAllStatus {\n Empty = '',\n Checked = 'checked',\n Indeterminate = 'indeterminate',\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { BehaviorSubject, Observable, Subject, combineLatest, of } from 'rxjs';\nimport {\n map,\n publishReplay,\n refCount,\n startWith,\n switchMap,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { CommonFormControl } from '../form/public-api';\nimport { TooltipDirective } from '../tooltip/public-api';\nimport { ComponentSize } from '../types';\nimport {\n coerceAttrBoolean,\n coerceString,\n isTemplateRef,\n scrollIntoView,\n} from '../utils';\n\nimport { OptionContentDirective } from './helper-directives';\nimport { OptionComponent } from './option/option.component';\nimport { OptionFilterFn, SelectFilterOption, TrackFn } from './select.types';\n\n@Directive()\n// tslint:disable-next-line: directive-class-suffix\nexport abstract class BaseSelect<T, V = T>\n extends CommonFormControl<V>\n implements AfterContentInit, AfterViewInit, OnDestroy {\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n if (!val || this._size === val) {\n return;\n }\n this._size = val;\n this.size$$.next(val);\n }\n\n @Input()\n get filterable() {\n return this._filterable;\n }\n\n set filterable(val: boolean | '') {\n this._filterable = coerceAttrBoolean(val);\n }\n\n @Input()\n get clearable() {\n return this._clearable;\n }\n\n set clearable(val: boolean | '') {\n this._clearable = coerceAttrBoolean(val);\n }\n\n @Input()\n filterFn: OptionFilterFn<T> = this._filterFn.bind(this);\n\n @Input()\n trackFn: TrackFn<T> = this._trackFn;\n\n @Input()\n labelFn?: (value: T) => string;\n\n @Input()\n get allowCreate() {\n return this._allowCreate;\n }\n\n set allowCreate(val: boolean | '') {\n this._allowCreate = coerceAttrBoolean(val);\n }\n\n get allOptions() {\n return [\n ...(this.customOptions ? this.customOptions.toArray() : []),\n ...(this.contentOptions ? this.contentOptions.toArray() : []),\n ];\n }\n\n get opened() {\n return this.tooltipRef.isCreated;\n }\n\n get inputReadonly() {\n return !(this.filterable && this.opened);\n }\n\n get filterString() {\n return this._filterString;\n }\n\n set filterString(val) {\n if (val !== this._filterString) {\n this._filterString = val;\n this.filterString$$.next(val);\n this.filterChange.emit(val);\n }\n }\n\n @Input()\n loading = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n defaultFirstOption = true;\n\n @Input()\n lazy = true;\n\n @Output()\n filterChange = new EventEmitter<string>();\n\n @Output()\n show = new EventEmitter<void>();\n\n @Output()\n hide = new EventEmitter<void>();\n\n @ViewChild('selectRef', { static: true })\n protected selectRef: ElementRef<HTMLElement>;\n\n @ViewChild('tooltipRef', { static: true })\n protected tooltipRef: TooltipDirective;\n\n @ViewChild('optionListRef', { static: false })\n protected optionListRef: ElementRef;\n\n @ViewChild('inputtingOption', { static: false })\n protected inputtingOption: OptionComponent<T>;\n\n @ContentChild(OptionContentDirective)\n protected optionContent?: OptionContentDirective;\n\n @ViewChildren(OptionComponent)\n customOptions: QueryList<OptionComponent<T>>;\n\n @ContentChildren(OptionComponent, { descendants: true })\n contentOptions: QueryList<OptionComponent<T>>;\n\n isTemplateRef = isTemplateRef;\n\n /**\n * Utility field to make sure the users always see the value as type array\n */\n abstract readonly values$: Observable<T[]>;\n\n allOptions$: Observable<Array<OptionComponent<T>>>;\n\n protected focusedOption: OptionComponent<T>;\n\n private _size: ComponentSize = ComponentSize.Medium;\n private _filterable = true;\n private _clearable = false;\n private _allowCreate = false;\n private _filterString = '';\n\n protected destroy$$ = new Subject<void>();\n protected size$$ = new BehaviorSubject<ComponentSize>(this.size);\n private readonly filterString$$ = new BehaviorSubject<string>(\n this.filterString,\n );\n\n size$ = this.size$$.asObservable();\n filterString$ = this.filterString$$.asObservable();\n hasVisibleOption$: Observable<boolean>;\n hasMatchedOption$: Observable<boolean>;\n customCreatedOptions$: Observable<Array<SelectFilterOption<T>>>;\n containerWidth: string;\n\n ngAfterContentInit() {\n this.customCreatedOptions$ = combineLatest([\n this.values$,\n this.contentOptions.changes.pipe(\n startWith(this.contentOptions),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(options.map(option => option.value$))\n : of([] as T[]),\n ),\n ),\n ]).pipe(\n map(([values, optionValues]) =>\n values.reduce<Array<SelectFilterOption<T>>>((acc, value) => {\n const included = optionValues\n .map(value => this.trackFn(value))\n .includes(this.trackFn(value));\n if (!included) {\n const label =\n this.labelFn?.(value) || coerceString(this.trackFn(value));\n if (label) {\n acc.push({\n label,\n value,\n });\n }\n }\n return acc;\n }, []),\n ),\n publishReplay(1),\n refCount(),\n );\n }\n\n ngAfterViewInit() {\n this.allOptions$ = combineLatest([\n this.customOptions.changes.pipe(startWith(this.customOptions)),\n this.contentOptions.changes.pipe(startWith(this.contentOptions)),\n ]).pipe(\n map(\n ([customOptions, contentOptions]: [\n QueryList<OptionComponent<T>>,\n QueryList<OptionComponent<T>>,\n ]) => [...customOptions.toArray(), ...contentOptions.toArray()],\n ),\n publishReplay(1),\n refCount(),\n );\n\n // support dynamic options loading on filtering\n this.allOptions$.pipe(takeUntil(this.destroy$$)).subscribe(() => {\n if (this.opened) {\n requestAnimationFrame(() => {\n this.autoFocusFirstOption();\n });\n }\n });\n\n this.hasMatchedOption$ = combineLatest([\n this.allOptions$.pipe(\n map(customOptions =>\n customOptions.filter(option => option !== this.inputtingOption),\n ),\n // eslint-disable-next-line sonarjs/no-identical-functions\n switchMap(options =>\n options.length > 0\n ? combineLatest(options.map(option => option.value$))\n : of([] as T[]),\n ),\n ),\n this.filterString$,\n ]).pipe(\n map(([values, filterString]) =>\n values.some(value => this.trackFn(value) === filterString),\n ),\n publishReplay(1),\n refCount(),\n );\n\n this.hasVisibleOption$ = this.contentOptions.changes.pipe(\n startWith(this.contentOptions),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(options.map(option => option.visible$))\n : of([] as boolean[]),\n ),\n map(visible => visible.some(value => value)),\n publishReplay(1),\n refCount(),\n );\n }\n\n ngOnDestroy() {\n this.optionContent?.detach();\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n\n openOption() {\n this.tooltipRef.createTooltip();\n }\n\n closeOption() {\n this.tooltipRef.disposeTooltip();\n }\n\n onShowOptions() {\n const exec = () => {\n this.containerWidth = this.selectRef.nativeElement.offsetWidth + 'px';\n\n requestAnimationFrame(() => {\n this.autoFocusFirstOption();\n });\n\n this.show.emit();\n };\n\n if (this.optionContent) {\n requestAnimationFrame(() => {\n this.optionContent.attach();\n exec();\n });\n } else {\n exec();\n }\n }\n\n onHideOptions() {\n if (this.onTouched) {\n this.onTouched();\n }\n if (!this.lazy) {\n this.optionContent?.detach();\n }\n this.resetFocusedOption();\n this.filterString = '';\n this.hide.emit();\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.filterString = value;\n\n requestAnimationFrame(() => {\n this.autoFocusFirstOption();\n });\n\n this.cdr.markForCheck();\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n this.focusOptionDir('down');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.focusOptionDir('up');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Enter':\n this.selectFocusedOption();\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Escape':\n this.escSelect();\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n }\n\n onOptionClick(option: OptionComponent<T>) {\n this.resetFocusedOption(option);\n this.selectOption(option);\n }\n\n protected autoFocusFirstOption() {\n if (this.defaultFirstOption && this.allowCreate && this.filterString) {\n const matchedOption = this.contentOptions.find(\n option => this.trackFn(option.value) === this.filterString,\n );\n this.resetFocusedOption(matchedOption || this.customOptions.first);\n return;\n }\n\n const selectedOption = this.allOptions.find(\n option => option.selected && option.visible,\n );\n if (this.defaultFirstOption) {\n this.resetFocusedOption(\n selectedOption ||\n this.allOptions.find(option => option.visible && !option.disabled),\n );\n } else if (selectedOption) {\n this.scrollToOption(selectedOption);\n }\n }\n\n protected focusOptionDir(dir: 'down' | 'up') {\n if (!this.opened) {\n this.openOption();\n return;\n }\n const visibleOptions = this.allOptions.filter(\n option => option.visible && !option.disabled,\n );\n if (visibleOptions.length === 0) {\n return;\n }\n const step = dir === 'down' ? 1 : -1;\n let i = visibleOptions.indexOf(this.focusedOption);\n i = i + step;\n if (i >= visibleOptions.length) {\n i = 0;\n } else if (i < 0) {\n i = visibleOptions.length - 1;\n }\n this.resetFocusedOption(visibleOptions[i]);\n }\n\n protected resetFocusedOption(focusedOption?: OptionComponent<T>) {\n if (this.focusedOption === focusedOption) {\n return;\n }\n\n if (this.focusedOption) {\n this.focusedOption.blur();\n }\n\n this.focusedOption = focusedOption;\n\n if (this.focusedOption) {\n this.focusedOption.focus();\n this.scrollToOption(this.focusedOption);\n }\n }\n\n protected scrollToOption(option: OptionComponent<T>) {\n if (this.optionListRef) {\n scrollIntoView(\n this.optionListRef.nativeElement,\n option.elRef.nativeElement,\n );\n }\n }\n\n protected selectFocusedOption() {\n if (!this.opened) {\n this.openOption();\n return;\n }\n if (this.focusedOption) {\n this.selectOption(this.focusedOption);\n }\n }\n\n protected escSelect() {\n this.closeOption();\n }\n\n private _trackFn<T>(value: T) {\n return value;\n }\n\n private _filterFn(\n filterString: string,\n { label, value }: SelectFilterOption<T>,\n ) {\n return (\n (typeof label === 'string' && label) ||\n this.labelFn?.(value) ||\n coerceString(this.trackFn(value))\n )\n ?.toLowerCase()\n .includes(filterString?.toLowerCase() ?? '');\n }\n\n abstract selectOption(option: OptionComponent<T>): void;\n abstract clearValue(event: Event): void;\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport {\n map,\n publishReplay,\n refCount,\n startWith,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs/operators';\n\nimport { createWithMaxRowCount } from '../../input/tags-input/with-max-row-count';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem, coerceAttrBoolean, coerceString } from '../../utils';\nimport { BaseSelect } from '../base-select';\nimport { OptionComponent } from '../option/option.component';\nimport {\n SelectAllStatus,\n SelectFilterOption,\n TagClassFn,\n} from '../select.types';\n\n@Component({\n selector: 'aui-multi-select',\n templateUrl: './multi-select.component.html',\n styleUrls: [\n '../../input/input.component.scss',\n '../../tag/tag.component.scss',\n './multi-select.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true,\n },\n {\n provide: BaseSelect,\n useExisting: MultiSelectComponent,\n },\n ],\n})\nexport class MultiSelectComponent<T = unknown>\n extends BaseSelect<T, T[]>\n implements AfterContentInit, AfterViewInit {\n bem: Bem = buildBem('aui-multi-select');\n bemSelectAll: Bem = buildBem('aui-option');\n selectedOptions$: Observable<Array<SelectFilterOption<T>>>;\n selectAllStatus$: Observable<SelectAllStatus>;\n selectAllStatus: SelectAllStatus;\n hasEnabledOptions$: Observable<boolean>;\n\n private _allowSelectAll = false;\n selectedValues: T[] = [];\n values$ = this.value$$.asObservable();\n\n @Input()\n tagClassFn: TagClassFn<T>;\n\n @Input()\n maxRowCount = 0;\n\n @Input()\n customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight\n\n @Input()\n get allowSelectAll() {\n return this._allowSelectAll;\n }\n\n set allowSelectAll(val: boolean | '') {\n this._allowSelectAll = coerceAttrBoolean(val);\n }\n\n @ViewChild('inputRef', { static: true })\n inputRef: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputValueMirror', { static: true })\n inputValueMirror: ElementRef<HTMLElement>;\n\n @HostBinding('style.position')\n get hostPosition() {\n return this.withMaxRowCount.hostPosition();\n }\n\n @HostBinding('style.display')\n get hostDisplay() {\n return this.withMaxRowCount.hostDisplay();\n }\n\n inputValue = '';\n\n get rootClass() {\n const size = this.size || ComponentSize.Medium;\n return `aui-input ${this.bem.block(size)} ${\n this.disabled ? 'isDisabled' : ''\n } ${this.focused ? 'isFocused' : ''} ${\n this.displayClearBtn ? 'isClearable' : ''\n } ${this.maxRowCount > 0 ? 'withHeightLimit' : ''}`;\n }\n\n get tagSize() {\n return this.size === ComponentSize.Large\n ? ComponentSize.Medium\n : ComponentSize.Mini;\n }\n\n get inputClass() {\n return `${this.bem.element('input', {\n hidden: this.inputReadonly,\n })} aui-tag aui-tag--${this.tagSize}`;\n }\n\n get displayClearBtn() {\n return !this.disabled && this.clearable && this.selectedValues.length;\n }\n\n get maxHeight() {\n return this.withMaxRowCount.maxHeight();\n }\n\n private readonly withMaxRowCount = createWithMaxRowCount(this);\n\n focused = false;\n\n trackByValue = (_: number, item: SelectFilterOption<T>) =>\n this.trackFn(item.value);\n\n constructor(cdr: ChangeDetectorRef, private readonly renderer: Renderer2) {\n super(cdr);\n this.values$.pipe(takeUntil(this.destroy$$)).subscribe(values => {\n this.selectedValues = values;\n });\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.selectedOptions$ = combineLatest([\n this.value$,\n this.contentOptions.changes.pipe(\n startWith(this.contentOptions),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(\n options.map(option =>\n combineLatest([\n option.value$,\n option.label$,\n option.labelContext$,\n ]).pipe(\n map(([value, label, labelContext]) => ({\n value,\n label,\n labelContext,\n })),\n ),\n ),\n )\n : of([] as Array<SelectFilterOption<T>>),\n ),\n ),\n ]).pipe(\n map(([values, options]) =>\n values.map(value => {\n const option = options.find(\n option => this.trackFn(option.value) === this.trackFn(value),\n );\n return option\n ? {\n label: option.label || coerceString(this.trackFn(option.value)),\n labelContext: option.labelContext,\n value: option.value,\n }\n : {\n label:\n this.labelFn?.(value) || coerceString(this.trackFn(value)),\n value,\n };\n }),\n ),\n publishReplay(1),\n refCount(),\n );\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.selectAllStatus$ = combineLatest([\n this.allOptions$,\n this.filterString$,\n ]).pipe(\n switchMap(([allOptions]) =>\n combineLatest([\n ...allOptions\n .filter(({ visible, disabled }) => visible && !disabled)\n ?.map(({ selected$ }) => selected$),\n ]),\n ),\n map(statuses => {\n const selected = statuses.filter(i => i);\n return selected.length === 0\n ? SelectAllStatus.Empty\n : selected.length !== statuses.length\n ? SelectAllStatus.Indeterminate\n : SelectAllStatus.Checked;\n }),\n startWith(SelectAllStatus.Empty),\n tap(selectAllStatus => (this.selectAllStatus = selectAllStatus)),\n publishReplay(1),\n refCount(),\n );\n this.hasEnabledOptions$ = combineLatest([\n this.allOptions$,\n this.filterString$,\n ]).pipe(\n map(\n ([allOptions]) =>\n !!allOptions.filter(({ visible, disabled }) => visible && !disabled)\n .length,\n ),\n );\n }\n\n onShowOptions() {\n super.onShowOptions();\n this.inputRef.nativeElement.focus();\n }\n\n onHideOptions() {\n super.onHideOptions();\n this.inputRef.nativeElement.value = '';\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n }\n\n onInput(event: Event) {\n super.onInput(event);\n this.setInputWidth();\n this.tooltipRef.updatePosition();\n }\n\n onInputFocus() {\n this.focused = true;\n }\n\n onInputBlur() {\n this.focused = false;\n this.closeOption();\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (\n event.key === 'Backspace' &&\n this.filterString === '' &&\n this.selectedValues.length > 0\n ) {\n this.removeValue(this.selectedValues[this.selectedValues.length - 1]);\n event.stopPropagation();\n event.preventDefault();\n } else if (event.key === 'Enter') {\n if (\n this.selectedValues\n .map(value => this.trackFn(value))\n .includes((event.target as HTMLInputElement).value)\n ) {\n return;\n }\n this.selectFocusedOption();\n event.stopPropagation();\n event.preventDefault();\n } else {\n super.onKeyDown(event);\n }\n }\n\n writeValue(val: T[]) {\n this.value$$.next(val || []);\n this.resetInput();\n requestAnimationFrame(() => {\n this.tooltipRef.updatePosition();\n });\n }\n\n selectOption(option: OptionComponent<T>) {\n if (option.selected) {\n this.removeValue(option.value);\n } else {\n this.addValue(option.value);\n }\n const isCustom = !this.contentOptions.some(\n ({ value }) => value === option.value,\n );\n if (isCustom) {\n this.resetFocusedOption();\n }\n }\n\n addValue(value: T) {\n const values = this.selectedValues.concat(value);\n this.emitValueChange(values);\n if (this.onChange) {\n this.resetInput();\n requestAnimationFrame(() => {\n this.tooltipRef.updatePosition();\n });\n }\n }\n\n removeValue(value: T) {\n const values = this.selectedValues.filter(\n item => this.trackFn(item) !== this.trackFn(value),\n );\n this.emitValueChange(values);\n if (this.onChange) {\n this.resetInput();\n requestAnimationFrame(() => {\n this.tooltipRef.updatePosition();\n });\n }\n }\n\n clearValue(event: Event) {\n this.emitValueChange([]);\n event.stopPropagation();\n event.preventDefault();\n }\n\n onSelectAllClick() {\n if (this.disabled) {\n return;\n }\n const visibleOptionsValue = this.allOptions\n .filter(({ visible, disabled }) => visible && !disabled)\n .map(({ value }) => value);\n if (this.selectAllStatus === SelectAllStatus.Checked) {\n this.emitValueChange(\n this.snapshot.value.filter(\n value => !visibleOptionsValue.includes(value),\n ),\n );\n } else {\n this.emitValueChange([\n ...new Set(this.snapshot.value.concat(visibleOptionsValue)),\n ]);\n }\n }\n\n private resetInput() {\n this.inputRef.nativeElement.value = '';\n this.setInputWidth();\n this.filterString = '';\n }\n\n // calculate input element width according to its value\n private setInputWidth() {\n const { value } = this.inputRef.nativeElement;\n if (!value.length) {\n this.inputValue = '';\n requestAnimationFrame(() => {\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n });\n } else {\n this.inputValue = value;\n requestAnimationFrame(() => {\n this.renderer.setStyle(\n this.inputRef.nativeElement,\n 'width',\n `${this.inputValueMirror.nativeElement.scrollWidth}px`,\n );\n });\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport {\n map,\n publishReplay,\n refCount,\n startWith,\n switchMap,\n} from 'rxjs/operators';\n\nimport { OptionComponent } from '../option/option.component';\n\n@Component({\n selector: 'aui-option-group',\n templateUrl: './option-group.component.html',\n styleUrls: ['./option-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class OptionGroupComponent<T> implements AfterContentInit {\n @ContentChildren(forwardRef(() => OptionComponent))\n options: QueryList<OptionComponent<T>>;\n\n hasVisibleOption$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasVisibleOption$ = this.options.changes.pipe(\n startWith(this.options),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(options.map(node => node.visible$))\n : of([false]),\n ),\n map(visible => visible.some(value => value)),\n publishReplay(1),\n refCount(),\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-option-placeholder',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class OptionPlaceholderComponent {}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n publishReplay,\n refCount,\n startWith,\n switchMap,\n} from 'rxjs/operators';\n\nimport { InputComponent } from '../input/public-api';\nimport { coerceString } from '../utils';\n\nimport { BaseSelect } from './base-select';\nimport { OptionComponent } from './option/option.component';\nimport { SelectOption } from './select.types';\n\n@Component({\n selector: 'aui-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n {\n provide: BaseSelect,\n useExisting: SelectComponent,\n },\n ],\n})\nexport class SelectComponent<T = unknown>\n extends BaseSelect<T>\n implements AfterContentInit {\n @ViewChild('inputRef', { static: true })\n inputRef: InputComponent;\n\n values$ = this.value$$.asObservable().pipe(map(val => [val]));\n\n selectedOption$: Observable<SelectOption>;\n\n hasSelected$: Observable<boolean>;\n\n get rootClass() {\n return `aui-select aui-select--${this.size}`;\n }\n\n get containerClass() {\n return `aui-option-container aui-option-container--${this.size}`;\n }\n\n isClearable = (hasSelected: boolean) =>\n !this.disabled && this.clearable && hasSelected;\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.selectedOption$ = combineLatest([\n this.contentOptions.changes.pipe(\n startWith(this.contentOptions),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n combineLatest(options.map(option => option.selected$)).pipe(\n startWith(null as void),\n map(() => options.find(option => option.selected)),\n distinctUntilChanged(),\n switchMap(option =>\n option\n ? combineLatest([\n option.value$,\n option.label$,\n option.labelContext$,\n ]).pipe(\n map(([value, label, labelContext]) => ({\n value,\n label,\n labelContext,\n })),\n )\n : of(null as void),\n ),\n ),\n ),\n ),\n this.value$,\n ]).pipe(\n map(([option, value]) =>\n option\n ? {\n label:\n option.label ||\n this.labelFn?.(option.value) ||\n coerceString(this.trackFn(option.value)),\n // https://github.com/angular/angular/issues/24515\n labelContext: {\n ...(option.labelContext as Record<string, unknown>),\n },\n }\n : {\n label: this.labelFn?.(value) || coerceString(this.trackFn(value)),\n },\n ),\n publishReplay(1),\n refCount(),\n );\n\n this.hasSelected$ = this.selectedOption$.pipe(\n map(({ label }) => !!label),\n publishReplay(1),\n refCount(),\n );\n }\n\n onShowOptions() {\n super.onShowOptions();\n }\n\n onHideOptions() {\n super.onHideOptions();\n this.inputRef.elementRef.nativeElement.value = '';\n }\n\n writeValue(val: T) {\n this.value$$.next(val);\n this.closeOption();\n }\n\n selectOption(option: OptionComponent<T>) {\n this.emitValueChange(option.value);\n this.closeOption();\n }\n\n clearValue(event: Event) {\n this.emitValueChange(null);\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","import { AfterContentInit, Directive, Input, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n ValidatorFn,\n} from '@angular/forms';\n\nimport { coerceAttrBoolean } from '../utils';\n\nimport { SelectComponent } from './select.component';\nimport { TrackFn } from './select.types';\n\n// @dynamic\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class AuiSelectValidators {\n static includes<T>(\n options: T[],\n trackFn: TrackFn<T> = val => val,\n ): ValidatorFn {\n return (control: AbstractControl) =>\n options.some(option => trackFn(option) === trackFn(control.value))\n ? null\n : {\n includes: control.value,\n };\n }\n}\n\n@Directive({\n selector:\n // tslint:disable-next-line: directive-selector\n 'aui-select[ngModel][includes],aui-select[formControl][includes],aui-select[formControlName][includes]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => IncludesDirective),\n multi: true,\n },\n ],\n})\nexport class IncludesDirective<T> implements Validator, AfterContentInit {\n @Input()\n get includes() {\n return this._includes;\n }\n\n set includes(val: boolean | '') {\n this._includes = coerceAttrBoolean(val);\n if (this.onValidatorChange) {\n this.onValidatorChange();\n }\n }\n\n @Input()\n trackFn: TrackFn<T>;\n\n private _includes = false;\n\n onValidatorChange: () => void;\n\n constructor(private readonly selectRef: SelectComponent<T>) {}\n\n ngAfterContentInit() {\n this.selectRef.contentOptions.changes.subscribe(() => {\n if (this.onValidatorChange) {\n this.onValidatorChange();\n }\n });\n }\n\n registerOnValidatorChange(fn: () => void) {\n this.onValidatorChange = fn;\n }\n\n validate(control: AbstractControl): ValidationErrors {\n if (!this.selectRef.contentOptions || !control.value) {\n return;\n }\n return !this.includes\n ? null\n : AuiSelectValidators.includes(\n this.selectRef.contentOptions\n .filter(option => !option.disabled)\n .map(option => option.value),\n this.trackFn,\n )(control);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { I18nModule } from '../i18n/public-api';\nimport { IconModule } from '../icon/public-api';\nimport { InputModule } from '../input/public-api';\nimport { TagModule } from '../tag/public-api';\nimport { TooltipModule } from '../tooltip/public-api';\n\nimport {\n OptionContentDirective,\n OptionGroupTitleDirective,\n} from './helper-directives';\nimport { MultiSelectComponent } from './multi-select/multi-select.component';\nimport { OptionGroupComponent } from './option-group/option-group.component';\nimport { OptionPlaceholderComponent } from './option-placeholder.component';\nimport { OptionComponent } from './option/option.component';\nimport { SelectComponent } from './select.component';\nimport { IncludesDirective } from './validators';\n\n@NgModule({\n imports: [\n CommonModule,\n InputModule,\n I18nModule,\n IconModule,\n TooltipModule,\n TagModule,\n ],\n declarations: [\n SelectComponent,\n OptionComponent,\n OptionGroupComponent,\n OptionPlaceholderComponent,\n MultiSelectComponent,\n IncludesDirective,\n OptionGroupTitleDirective,\n OptionContentDirective,\n ],\n exports: [\n SelectComponent,\n OptionComponent,\n OptionGroupComponent,\n OptionPlaceholderComponent,\n MultiSelectComponent,\n IncludesDirective,\n OptionGroupTitleDirective,\n OptionContentDirective,\n ],\n})\nexport class SelectModule {}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/**\n * To modify the labels and text displayed, create a new instance of MatPaginatorIntl and\n * include it in a custom provider\n */\n@Injectable()\nexport class PaginatorIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n\n /** A label for the page size selector. */\n itemsPerPageLabel = 'perPage';\n\n jumperLabelPrefix = 'Goto';\n jumperLabelSuffix = '';\n\n getTotalLabel = (length: number) => `Total ${length}`;\n}\n\nexport function PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl: PaginatorIntl) {\n return parentIntl || new PaginatorIntl();\n}\n\nexport const PAGINATOR_INTL_PROVIDER = {\n // If there is already an PaginatorIntl available, use that. Otherwise, provide a new one.\n provide: PaginatorIntl,\n deps: [[new Optional(), new SkipSelf(), PaginatorIntl]],\n useFactory: PAGINATOR_INTL_PROVIDER_FACTORY,\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { PaginatorIntl } from './paginator-intl';\n\n/**\n * Change event object that is emitted when the user selects a\n * different page size or navigates to another page.\n * @deprecated use Output events directly instead\n */\nexport class PageEvent {\n /** The current page index. */\n pageIndex: number;\n\n /**\n * Index of the page that was selected previously.\n */\n previousPageIndex: number;\n\n /** The current page size */\n pageSize: number;\n\n /** The current total number of items being paged */\n length: number;\n}\n\n@Component({\n selector: 'aui-paginator',\n templateUrl: 'paginator.component.html',\n styleUrls: ['paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class PaginatorComponent implements OnDestroy {\n bem: Bem = buildBem('aui-paginator');\n\n @Input()\n get pageIndex() {\n return this.currentPage - 1;\n }\n\n set pageIndex(val) {\n this.currentPage = val + 1;\n }\n\n @Input()\n currentPage = 1;\n\n @Input()\n pageSize = 20;\n\n @Input()\n pageSizeOptions: number[] = [20, 50, 100];\n\n @Input()\n total = 0;\n\n /**\n * @deprecated use `total` instead\n */\n @Input()\n get length() {\n return this.total;\n }\n\n set length(val) {\n this.total = val;\n }\n\n @Input()\n layout: string | string[] = 'total,pager,sizes';\n\n @Input()\n disabled = false;\n\n @Output()\n readonly currentPageChange = new EventEmitter<number>();\n\n @Output()\n readonly pageSizeChange = new EventEmitter<number>();\n\n private readonly intlChangeSub: Subscription;\n\n get pageCount() {\n return Math.ceil(this.total / this.pageSize);\n }\n\n constructor(\n public intl: PaginatorIntl,\n private readonly cdr: ChangeDetectorRef,\n ) {\n this.intlChangeSub = intl.changes.subscribe(() => this.cdr.markForCheck());\n }\n\n ngOnDestroy() {\n this.intlChangeSub.unsubscribe();\n }\n\n getLayoutArr() {\n return typeof this.layout === 'string'\n ? this.layout.split(',').map(item => item.trim())\n : this.layout;\n }\n\n getCenterPages() {\n const start = Math.min(\n Math.max(0, this.currentPage - 4),\n Math.max(0, this.pageCount - 7),\n );\n return Array.from({ length: Math.max(this.pageCount - 2, 0) })\n .fill(null)\n .map((_, index) => index + 2)\n .slice(start, start + 5);\n }\n\n jumpTo(page: number) {\n if (page === this.currentPage) {\n return;\n }\n this.currentPageChange.emit(page);\n }\n\n navigate(step: number) {\n this.jumpTo(Math.min(Math.max(this.currentPage + step, 1), this.pageCount));\n }\n\n changePageSize(size: number) {\n if (size === this.pageSize) {\n return;\n }\n this.pageSizeChange.emit(size);\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n const inputEl = event.target as HTMLInputElement;\n const nextPage = parseInt(inputEl.value, 10);\n if (nextPage > 0 && nextPage <= this.pageCount) {\n this.jumpTo(nextPage);\n } else {\n inputEl.value = this.currentPage + '';\n }\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n trackByIndex(index: number) {\n return index;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button/public-api';\nimport { IconModule } from '../icon/public-api';\nimport { InputModule } from '../input/public-api';\nimport { SelectModule } from '../select/public-api';\n\nimport { PAGINATOR_INTL_PROVIDER } from './paginator-intl';\nimport { PaginatorComponent } from './paginator.component';\n\n@NgModule({\n imports: [CommonModule, ButtonModule, IconModule, SelectModule, InputModule],\n declarations: [PaginatorComponent],\n exports: [PaginatorComponent],\n providers: [PAGINATOR_INTL_PROVIDER],\n})\nexport class PaginatorModule {}\n","import { ValueOf } from '../types';\n\nexport const InlineAlertType = {\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Danger: 'danger',\n Error: 'error',\n Info: 'info',\n} as const;\n\nexport type InlineAlertType = ValueOf<typeof InlineAlertType>;\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiInlineAlertTitle]',\n exportAs: 'auiInlineAlertTitle',\n})\nexport class InlineAlertTitleDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { InlineAlertTitleDirective } from './helper-directives';\nimport { InlineAlertType } from './inline-alert.types';\n\n@Component({\n selector: 'aui-inline-alert',\n templateUrl: './inline-alert.component.html',\n styleUrls: ['./inline-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class InlineAlertComponent {\n bem: Bem = buildBem('aui-inline-alert');\n\n @Input()\n title: string;\n\n @Input()\n content: string;\n\n @Input()\n closable = false;\n\n @Input()\n type: InlineAlertType = InlineAlertType.Info;\n\n @Output()\n close = new EventEmitter<void>();\n\n @ContentChild(InlineAlertTitleDirective)\n titleRef: InlineAlertTitleDirective;\n\n visible = true;\n\n iconMap(type: InlineAlertType) {\n switch (type) {\n case InlineAlertType.Success:\n return 'check_circle_s';\n case InlineAlertType.Warning:\n return 'exclamation_circle_s';\n case InlineAlertType.Danger:\n case InlineAlertType.Error:\n return 'exclamation_triangle_s';\n case InlineAlertType.Primary:\n case InlineAlertType.Info:\n default:\n return 'info_circle_s';\n }\n }\n\n closeSelf() {\n this.visible = false;\n this.close.emit();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/public-api';\n\nimport { InlineAlertTitleDirective } from './helper-directives';\nimport { InlineAlertComponent } from './inline-alert.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [InlineAlertComponent, InlineAlertTitleDirective],\n exports: [InlineAlertComponent, InlineAlertTitleDirective],\n})\nexport class InlineAlertModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-breadcrumb-item',\n templateUrl: './breadcrumb-item.component.html',\n styleUrls: ['./breadcrumb-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class BreadcrumbItemComponent {\n get separator() {\n return this._separator;\n }\n\n set separator(val) {\n this._separator = val;\n this.cdr.markForCheck();\n }\n\n get separatorIcon() {\n return this._separatorIcon;\n }\n\n set separatorIcon(val) {\n this._separatorIcon = val;\n this.cdr.markForCheck();\n }\n\n private _separator = '/';\n private _separatorIcon = '';\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\n\n@Component({\n selector: 'aui-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class BreadcrumbComponent implements AfterContentInit {\n @Input()\n get separator() {\n return this._separator;\n }\n\n set separator(val) {\n if (val === this._separator) {\n return;\n }\n this._separator = val;\n if (this.items) {\n this.items.forEach(item => {\n item.separator = val;\n });\n }\n }\n\n @Input()\n get separatorIcon() {\n return this._separatorIcon;\n }\n\n set separatorIcon(val) {\n if (val === this._separatorIcon) {\n return;\n }\n this._separatorIcon = val;\n if (this.items) {\n this.items.forEach(item => {\n item.separatorIcon = val;\n });\n }\n }\n\n @ContentChildren(BreadcrumbItemComponent)\n items: QueryList<BreadcrumbItemComponent>;\n\n private _separator = '/';\n private _separatorIcon = '';\n\n ngAfterContentInit() {\n this.items.forEach(item => {\n item.separator = this.separator;\n item.separatorIcon = this.separatorIcon;\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/public-api';\n\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [BreadcrumbComponent, BreadcrumbItemComponent],\n exports: [BreadcrumbComponent, BreadcrumbItemComponent],\n})\nexport class BreadcrumbModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-message-wrapper',\n styleUrls: ['./message-wrapper.component.scss'],\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class MessageWrapperComponent {\n constructor(public elementRef: ElementRef) {}\n}\n","import { InjectionToken } from '@angular/core';\n\nexport enum MessageType {\n Error = 'error',\n Success = 'success',\n Warning = 'warning',\n Info = 'info',\n}\n\n/**\n * messageOptions: contains Basic configuration\n * Just for some containers like Message-Container\n * Detailed document: http://confluence.alaudatech.com/pages/viewpage.action?pageId=23383163\n */\n\nexport class MessageConfig {\n /**\n * the message type\n */\n type?: MessageType;\n\n /**\n * The id of this message, The same ID can only have one at the same time\n */\n id?: string | number;\n\n /**\n * automatically shut down after a few seconds, if <= 0 ,non automatic closure\n */\n duration?: number;\n\n /**\n * message content\n */\n content?: string;\n}\n\nexport interface MessageGlobalConfig {\n /**\n * max instance in one time\n */\n maxStack: number;\n duration: number | { [key in MessageType]: number };\n}\n\nexport const MESSAGE_CONFIG = new InjectionToken<MessageGlobalConfig>(\n 'MESSAGE_CONFIG',\n);\n\nexport const MESSAGE_DEFAULT_CONFIG = {\n duration: 3000,\n maxStack: 8,\n};\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const MessageAnimations: {\n readonly inOut: AnimationTriggerMetadata;\n} = {\n inOut: trigger('inOut', [\n state(\n 'flyRight, flyLeft',\n style({ opacity: 1, transform: 'translateX(0)' }),\n ),\n state('slideDown', style({ opacity: 1, transform: 'translateY(0)' })),\n transition('* => slideDown', [\n style({ opacity: 0, transform: 'translateY(-50%)' }),\n animate('100ms ease-in-out'),\n ]),\n state('slideUp', style({ opacity: 0, 'margin-top': '-50%' })),\n transition('* => slideUp', [\n style({ opacity: 1, 'margin-top': '0' }),\n animate('100ms 200ms ease-in-out'),\n ]),\n\n state('flyLeft', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('* => flyLeft', [\n style({ opacity: 0, transform: 'translateX(5%)' }),\n animate('100ms ease-in-out'),\n ]),\n state('flyUp', style({ opacity: 0, 'margin-top': '-30%' })),\n transition('* => flyUp', [\n style({ opacity: 1, 'margin-top': '0' }),\n animate('100ms 150ms ease-in-out'),\n ]),\n state('void', style({ opacity: 0 })),\n state('true', style({ opacity: 1 })),\n state('false', style({ opacity: 0 })),\n transition('* => true', animate('150ms cubic-bezier(0.0, 0.0, 0.2, 1)')),\n transition('* => void', animate('150ms cubic-bezier(0.4, 0.0, 1, 1)')),\n ]),\n};\n","import { AnimationEvent } from '@angular/animations';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { MessageAnimations } from './message-animations';\nimport { MessageConfig, MessageType } from './message.config';\n\nlet uniqueId = 0;\n\nconst typeIcon: { [key: string]: string } = {\n [MessageType.Error]: 'exclamation_triangle_s',\n [MessageType.Success]: 'check_circle_s',\n [MessageType.Warning]: 'exclamation_circle_s',\n [MessageType.Info]: 'info_circle_s',\n};\n\n@Component({\n selector: 'aui-message',\n templateUrl: './message.component.html',\n animations: [MessageAnimations.inOut],\n styleUrls: ['./message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class MessageComponent implements AfterViewInit {\n protected readonly animateStartState: string = 'slideDown';\n protected readonly animateStartEnd: string = 'slideUp';\n\n bem: Bem = buildBem('aui-message');\n animateState = this.animateStartState;\n uniqueId = `aui-message-${uniqueId++}`;\n beforeClosed: Subject<void> = new Subject();\n afterClosed: Subject<void> = new Subject();\n\n id: string | number;\n type: MessageType;\n content: string;\n duration: number;\n\n get icon(): string {\n return typeIcon[this.type];\n }\n\n protected timerId: number;\n\n constructor(\n protected viewContainerRef: ViewContainerRef,\n protected cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewInit(): void {\n if (this.duration > 0) {\n this.timerId = window.setTimeout(() => {\n this.remove();\n }, this.duration);\n }\n }\n\n setConfig(config: MessageConfig) {\n this.id = config.id;\n this.type = config.type;\n this.content = config.content;\n this.duration = config.duration;\n }\n\n remove() {\n clearTimeout(this.timerId);\n this.beforeClosed.next();\n this.beforeClosed.complete();\n this.animateState = this.animateStartEnd;\n this.cdr.markForCheck();\n }\n\n onAnimationEnd(event: AnimationEvent) {\n try {\n if (\n this.viewContainerRef.element &&\n event.toState === this.animateStartEnd\n ) {\n (this.viewContainerRef.element.nativeElement as HTMLElement).remove();\n this.afterClosed.next();\n this.afterClosed.complete();\n }\n } catch {\n throw new Error('No outer layer can be found!');\n }\n }\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n DomPortalOutlet,\n} from '@angular/cdk/portal';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n Injector,\n} from '@angular/core';\n\nimport { MessageWrapperComponent } from './message-wrapper.component';\nimport { MessageComponent } from './message.component';\nimport {\n MessageConfig,\n MessageGlobalConfig,\n MessageType,\n} from './message.config';\n\nexport abstract class BaseMessage<\n Wrapper extends MessageWrapperComponent,\n Component extends MessageComponent,\n Config extends MessageConfig\n> {\n wrapperInstance: { elementRef: ElementRef<HTMLElement> };\n componentRefs: Array<ComponentRef<Component>> = [];\n\n constructor(\n protected overlay: Overlay,\n protected injector: Injector,\n protected applicationRef: ApplicationRef,\n protected cfr: ComponentFactoryResolver,\n protected overlayPaneClassName: string,\n protected wrapperClass: ComponentType<Wrapper>,\n protected componentClass: ComponentType<Component>,\n protected globalConfig: MessageGlobalConfig,\n ) {\n this.initWrapperContainer();\n }\n\n create(config: Config): ComponentRef<Component>;\n create(config: MessageType, content: string): ComponentRef<Component>;\n create(config: Config | MessageType, content?: string) {\n const type = content ? (config as MessageType) : (config as Config).type;\n const mergedConfig = {\n duration:\n typeof this.globalConfig.duration === 'number'\n ? this.globalConfig.duration\n : this.globalConfig.duration[type],\n ...(content\n ? { type: config as MessageType, content }\n : (config as Config)),\n } as Config;\n\n this.removeNeedless(mergedConfig.id);\n\n const componentRef = this.initComponentRef(mergedConfig);\n componentRef.instance.afterClosed.subscribe(() => {\n componentRef.destroy();\n this.remove(componentRef.instance.uniqueId);\n });\n this.componentRefs.push(componentRef);\n return componentRef;\n }\n\n createType(type: MessageType, option: Config | string) {\n return typeof option === 'string'\n ? this.create(type, option)\n : this.create({ ...option, type } as Config);\n }\n\n success(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Success, option);\n }\n\n warning(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Warning, option);\n }\n\n error(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Error, option);\n }\n\n info(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Info, option);\n }\n\n remove(id: string | number) {\n const index = this.componentRefs.findIndex(\n ref => ref.instance.uniqueId === id || ref.instance.id === id,\n );\n if (index >= 0) {\n this.componentRefs[index].instance.remove();\n this.componentRefs.splice(index, 1);\n }\n }\n\n removeAll() {\n this.componentRefs.forEach(ref => {\n ref.instance.remove();\n });\n this.componentRefs = [];\n }\n\n protected initWrapperContainer() {\n this.wrapperInstance = this.overlay\n .create({\n panelClass: this.overlayPaneClassName,\n })\n .attach(new ComponentPortal(this.wrapperClass)).instance;\n }\n\n protected initComponentRef(config: Config): ComponentRef<Component> {\n const portalHost = new DomPortalOutlet(\n this.wrapperInstance.elementRef.nativeElement,\n this.cfr,\n this.applicationRef,\n this.injector,\n );\n const componentRef = portalHost.attachComponentPortal(\n new ComponentPortal(this.componentClass),\n );\n componentRef.instance.setConfig(config);\n return componentRef;\n }\n\n protected removeNeedless(id: string | number) {\n if (id) {\n this.remove(id);\n }\n if (\n this.globalConfig.maxStack &&\n this.componentRefs.length >= this.globalConfig.maxStack\n ) {\n this.componentRefs\n .slice(0, this.componentRefs.length - this.globalConfig.maxStack + 1)\n .forEach(ref => this.remove(ref.instance.uniqueId));\n }\n }\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n Inject,\n Injectable,\n Injector,\n Optional,\n} from '@angular/core';\n\nimport { BaseMessage } from './base-message';\nimport { MessageWrapperComponent } from './message-wrapper.component';\nimport { MessageComponent } from './message.component';\nimport {\n MESSAGE_CONFIG,\n MESSAGE_DEFAULT_CONFIG,\n MessageConfig,\n MessageGlobalConfig,\n} from './message.config';\n\n@Injectable()\nexport class MessageService extends BaseMessage<\n MessageWrapperComponent,\n MessageComponent,\n MessageConfig\n> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n applicationRef: ApplicationRef,\n cfr: ComponentFactoryResolver,\n @Optional()\n @Inject(MESSAGE_CONFIG)\n globalConfig: MessageGlobalConfig,\n ) {\n super(\n overlay,\n injector,\n applicationRef,\n cfr,\n 'aui-message-overlay-pane',\n MessageWrapperComponent,\n MessageComponent,\n {\n ...MESSAGE_DEFAULT_CONFIG,\n ...globalConfig,\n },\n );\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/icon.module';\n\nimport { MessageWrapperComponent } from './message-wrapper.component';\nimport { MessageComponent } from './message.component';\nimport { MessageService } from './message.service';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, IconModule],\n declarations: [MessageWrapperComponent, MessageComponent],\n entryComponents: [MessageWrapperComponent, MessageComponent],\n providers: [MessageService],\n})\nexport class MessageModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { MessageWrapperComponent } from '../message/message-wrapper.component';\n\n@Component({\n selector: 'aui-notification-wrapper',\n styleUrls: ['./notification-wrapper.component.scss'],\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class NotificationWrapperComponent extends MessageWrapperComponent {\n constructor(public elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n EmbeddedViewRef,\n HostListener,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { MessageAnimations } from '../message/message-animations';\nimport { MessageComponent } from '../message/message.component';\nimport { Bem, buildBem } from '../utils';\n\nimport { NotificationConfig } from './notification.config';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'aui-notification',\n templateUrl: './notification.component.html',\n animations: [MessageAnimations.inOut],\n styleUrls: ['./notification.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class NotificationComponent\n extends MessageComponent\n implements AfterViewInit {\n protected readonly animateStartState = 'flyLeft';\n protected readonly animateStartEnd = 'flyUp';\n\n bem: Bem = buildBem('aui-notification');\n animateState = this.animateStartState;\n uniqueId = `aui-notification-${uniqueId++}`;\n isHover = false;\n\n title: string;\n remains: number;\n childComponentInstance: unknown;\n customClass = '';\n footerPortal: TemplatePortal<unknown>;\n\n @ViewChild(CdkPortalOutlet, { static: true })\n private readonly portalOutlet: CdkPortalOutlet;\n\n @ViewChild('modalComponent', { read: ViewContainerRef, static: true })\n private readonly modalEl: ViewContainerRef;\n\n constructor(\n viewContainerRef: ViewContainerRef,\n cdr: ChangeDetectorRef,\n private readonly cfr: ComponentFactoryResolver,\n ) {\n super(viewContainerRef, cdr);\n }\n\n @HostListener('mouseenter')\n onMouseEnter() {\n if (this.duration <= 0) {\n return;\n }\n this.isHover = true;\n clearTimeout(this.timerId);\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (this.duration <= 0) {\n return;\n }\n this.isHover = false;\n this.countDown();\n }\n\n ngAfterViewInit() {\n if (this.remains > 0) {\n this.countDown();\n }\n }\n\n setConfig(config: NotificationConfig) {\n super.setConfig(config);\n this.title = config.title;\n this.remains = Math.ceil(this.duration / 1000);\n this.customClass = config.customClass || '';\n\n if (config.contentRef) {\n if (config.contentRef instanceof TemplateRef) {\n const portal = new TemplatePortal(config.contentRef, null, {\n $implicit: config.context,\n });\n this.attachTemplatePortal(portal);\n } else {\n this.attachComponentRef(\n this.cfr.resolveComponentFactory(config.contentRef),\n );\n }\n }\n\n if (config.footerRef && config.footerRef instanceof TemplateRef) {\n this.footerPortal = new TemplatePortal(config.footerRef, null, {\n $implicit: config.context,\n });\n }\n }\n\n /**\n * Attach a TemplatePortal as content to this modal container.\n * @param portal Portal to be attached as the modal content.\n */\n private attachTemplatePortal<C>(\n portal: TemplatePortal<C>,\n ): EmbeddedViewRef<C> {\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n private attachComponentRef(componentRef: ComponentFactory<unknown>) {\n this.childComponentInstance = this.modalEl.createComponent(\n componentRef,\n null,\n this.viewContainerRef.injector,\n ).instance;\n return this.childComponentInstance;\n }\n\n private countDown() {\n this.timerId = window.setTimeout(() => {\n this.remains -= 1;\n if (this.remains === 0) {\n this.remove();\n } else {\n this.countDown();\n }\n this.cdr.markForCheck();\n }, 1000);\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { InjectionToken, TemplateRef } from '@angular/core';\n\nimport { MessageConfig, MessageGlobalConfig } from '../message/public-api';\n\nexport interface NotificationConfig extends MessageConfig {\n title?: string;\n contentRef?: TemplateRef<any> | ComponentType<void>;\n footerRef?: TemplateRef<any>;\n context?: unknown;\n customClass?: string;\n}\n\nexport type NotificationGlobalConfig = MessageGlobalConfig;\n\nexport const NOTIFICATION_CONFIG = new InjectionToken<NotificationGlobalConfig>(\n 'NOTIFICATION_CONFIG',\n);\n\nexport const NOTIFICATION_DEFAULT_CONFIG = {\n duration: 6000,\n maxStack: 8,\n};\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n Inject,\n Injectable,\n Injector,\n Optional,\n} from '@angular/core';\n\nimport { BaseMessage } from '../message/base-message';\n\nimport { NotificationWrapperComponent } from './notification-wrapper.component';\nimport { NotificationComponent } from './notification.component';\nimport {\n NOTIFICATION_CONFIG,\n NOTIFICATION_DEFAULT_CONFIG,\n NotificationConfig,\n NotificationGlobalConfig,\n} from './notification.config';\n\n@Injectable()\nexport class NotificationService extends BaseMessage<\n NotificationWrapperComponent,\n NotificationComponent,\n NotificationConfig\n> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n applicationRef: ApplicationRef,\n cfr: ComponentFactoryResolver,\n @Optional()\n @Inject(NOTIFICATION_CONFIG)\n globalConfig: NotificationGlobalConfig,\n ) {\n super(\n overlay,\n injector,\n applicationRef,\n cfr,\n 'aui-notification-overlay-pane',\n NotificationWrapperComponent,\n NotificationComponent,\n {\n ...NOTIFICATION_DEFAULT_CONFIG,\n ...globalConfig,\n },\n );\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/public-api';\n\nimport { NotificationWrapperComponent } from './notification-wrapper.component';\nimport { NotificationComponent } from './notification.component';\nimport { NotificationService } from './notification.service';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, PortalModule, IconModule],\n declarations: [NotificationWrapperComponent, NotificationComponent],\n entryComponents: [NotificationWrapperComponent, NotificationComponent],\n providers: [NotificationService],\n})\nexport class NotificationModule {}\n","import { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'aui-tab-body',\n templateUrl: './tab-body.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TabBodyComponent implements OnDestroy {\n private _content: TemplatePortal;\n\n content$ = new BehaviorSubject<TemplatePortal>(null);\n\n /** The portal host inside of this container into which the tab body content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true })\n _portalOutlet: CdkPortalOutlet;\n\n /** The tab body content to display. */\n @Input()\n get content() {\n return this._content;\n }\n\n set content(content: TemplatePortal) {\n if (this._content !== content) {\n this.content$.next(content);\n }\n this._content = content;\n }\n\n ngOnDestroy() {\n this.content$.complete();\n }\n}\n","import { CdkPortal, CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { coerceAttrBoolean } from '../utils';\n\nimport { TabBodyComponent } from './tab-body.component';\n\n/** Used to flag tab labels for use with the portal directive */\n@Directive({\n selector: '[auiTabLabel]',\n})\nexport class TabLabelDirective extends CdkPortal {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Lazy load the embedded template for a tab content.\n */\n@Directive({\n selector: '[auiTabContent]',\n})\nexport class TabContentDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n\n/** Used to project additional template from host to the tab header. */\n@Directive({\n selector: '[auiTabHeaderAddon]',\n})\nexport class TabHeaderAddonDirective extends CdkPortal {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Used in the `aui-tab-group` view to display tab labels.\n */\n@Directive({\n selector: '[auiTabLabelWrapper]',\n host: {\n '[class.aui-tab-label]': 'true',\n '[class.aui-tab-label--disabled]': '!!disabled',\n },\n})\nexport class TabLabelWrapperDirective {\n private _disabled: boolean;\n\n /** Whether or not the tab is disabled */\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: boolean | '') {\n this._disabled = coerceAttrBoolean(value);\n }\n\n getOffsetLeft(): number {\n return this.elementRef.nativeElement.offsetLeft;\n }\n\n getOffsetWidth(): number {\n return this.elementRef.nativeElement.offsetWidth;\n }\n\n /** Sets focus on the wrapper element */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n}\n\n@Directive({\n selector: '[auiTabTitle]',\n})\nexport class TabTitleDirective extends CdkPortal {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * The portal host directive for the contents of the tab.\n */\n@Directive({\n selector: '[auiTabBodyHost]',\n})\nexport class TabBodyPortalDirective\n extends CdkPortalOutlet\n implements OnInit, OnDestroy {\n private _hostSubscription = Subscription.EMPTY;\n\n constructor(\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n private readonly _host: TabBodyComponent,\n ) {\n super(componentFactoryResolver, viewContainerRef);\n }\n\n /** Set initial visibility or set up subscription for changing visibility. */\n ngOnInit(): void {\n super.ngOnInit();\n this._hostSubscription = this._host.content$.subscribe(content => {\n if (this.hasAttached) {\n this.detach();\n }\n this.attach(content);\n });\n }\n\n ngOnDestroy() {\n this._hostSubscription.unsubscribe();\n }\n}\n","import { ValueOf } from '../types';\n\nexport const TabSize = {\n /** 卡片级尺寸 */\n Large: 'large',\n\n /** 页面级尺寸 */\n Medium: 'medium',\n\n /** 小尺寸 */\n Small: 'small',\n} as const;\n\nexport type TabSize = ValueOf<typeof TabSize>;\n\nexport const TabType = {\n Line: 'line',\n Card: 'card',\n} as const;\n\nexport type TabType = ValueOf<typeof TabType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { TabType } from './tabs.types';\n\n@Component({\n selector: 'aui-tab-header-active-indicator',\n templateUrl: './tab-header-active-indicator.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TabHeaderActiveIndicatorComponent {\n @Input()\n type: TabType = TabType.Line;\n\n bem: Bem = buildBem('aui-tab-header-active-indicator');\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _ngZone: NgZone,\n ) {}\n\n /**\n * Calculates the styles from the provided element in order to align the indicator to that element.\n * Shows the indicator if previously set as hidden.\n * @param element\n */\n alignToElement(element: HTMLElement) {\n if (typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this._setStyles(element));\n });\n } else {\n this._setStyles(element);\n }\n }\n\n /**\n * Sets the proper styles to the element.\n * @param element\n */\n private _setStyles(element: HTMLElement) {\n const positions = this._getElementPosition(element);\n const nativeEl = this._elementRef.nativeElement;\n nativeEl.style.left = positions.left;\n nativeEl.style.width = positions.width;\n }\n\n private _getElementPosition(element: HTMLElement) {\n return {\n left: element ? (element.offsetLeft || 0) + 'px' : '0',\n width: element ? (element.offsetWidth || 0) + 'px' : '0',\n };\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Bem, buildBem, coerceNumber } from '../utils';\n\nimport {\n TabHeaderAddonDirective,\n TabLabelWrapperDirective,\n TabTitleDirective,\n} from './tab-directives';\nimport { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';\nimport { TabSize, TabType } from './tabs.types';\n\n/**\n * The directions that scrolling can go in when the header's tabs exceed the header width. 'After'\n * will scroll the header towards the end of the tabs list and 'before' will scroll towards the\n * beginning of the list.\n */\nexport type ScrollDirection = 'after' | 'before';\n/**\n * The distance in pixels that will be overshot when scrolling a tab label into view. This helps\n * provide a small affordance to the label next to it.\n */\nconst EXAGGERATED_OVERSCROLL = 60;\n\n@Component({\n selector: 'aui-tab-header',\n templateUrl: './tab-header.component.html',\n styleUrls: ['./tab-header.component.scss'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabHeaderComponent\n implements OnDestroy, AfterContentChecked, AfterContentInit {\n bem: Bem = buildBem('aui-tab-header');\n\n _showAddon = false;\n\n /** Whether the controls for pagination should be displayed */\n _showPaginationControls = false;\n\n /** Whether the tab list can be scrolled more towards the end of the tab label list. */\n _disableScrollAfter = true;\n\n /** Whether the tab list can be scrolled more towards the beginning of the tab label list. */\n _disableScrollBefore = true;\n\n /** Whether the scroll distance has changed and should be applied after the view is checked. */\n private _scrollDistanceChanged: boolean;\n\n /** Whether the header should scroll to the selected index after the view has been checked. */\n private _selectedIndexChanged = false;\n\n /** The distance in pixels that the tab labels should be translated to the left. */\n private _scrollDistance = 0;\n\n private _selectedIndex = 0;\n\n /** Emits when the component is destroyed. */\n private readonly _destroyed = new Subject<void>();\n\n /** Used to manage focus between the tabs. */\n private _keyManager: FocusKeyManager<TabLabelWrapperDirective>;\n\n /**\n * The number of tab labels that are displayed on the header. When this changes, the header\n * should re-evaluate the scroll position.\n */\n private _tabLabelCount: number;\n\n @Input()\n type: TabType = TabType.Line;\n\n @Input()\n size: TabSize = TabSize.Medium;\n\n /** The index of the active tab. */\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n set selectedIndex(value: number) {\n value = coerceNumber(value);\n this._selectedIndexChanged = this._selectedIndex !== value;\n this._selectedIndex = value;\n\n if (this._keyManager) {\n this._keyManager.updateActiveItem(value);\n }\n }\n\n /** Event emitted when the option is selected. */\n @Output()\n readonly selectFocusedIndex = new EventEmitter<number>();\n\n /** Event emitted when a label is focused. */\n @Output()\n readonly indexFocused = new EventEmitter<number>();\n\n @ContentChild(TabHeaderAddonDirective, { static: false })\n _headerAddon: TabHeaderAddonDirective;\n\n @ContentChild(TabTitleDirective, { static: false })\n _title: TabTitleDirective;\n\n @ContentChildren(TabLabelWrapperDirective)\n /**\n * workaround for @link https://github.com/microsoft/TypeScript/pull/42425\n */\n _labelWrappers: QueryList<TabLabelWrapperDirective & { disabled?: boolean }>;\n\n @ViewChild('tabListContainer', { static: true })\n _tabListContainer: ElementRef<HTMLElement>;\n\n @ViewChild('tabList', { static: true })\n _tabList: ElementRef<HTMLElement>;\n\n @ViewChild('paginationWrapper', { static: true })\n _paginationWrapper: ElementRef<HTMLElement>;\n\n @ViewChild(TabHeaderActiveIndicatorComponent, { static: true })\n _activeIndicator: TabHeaderActiveIndicatorComponent;\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n ngAfterContentChecked(): void {\n // If the number of tab labels have changed, check if scrolling should be enabled\n if (this._tabLabelCount !== this._labelWrappers.length) {\n this._updatePagination();\n this._tabLabelCount = this._labelWrappers.length;\n this._changeDetectorRef.markForCheck();\n }\n\n // If the selected index has changed, scroll to the label and check if the scrolling controls\n // should be disabled.\n if (this._selectedIndexChanged) {\n this._scrollToLabel(this._selectedIndex);\n this._checkScrollingControls();\n this._alignActiveIndicatorToSelectedTab();\n this._selectedIndexChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n\n // If the scroll distance has been changed (tab selected, focused, scroll controls activated),\n // then translate the header to reflect this.\n if (this._scrollDistanceChanged) {\n this._updateTabScrollPosition();\n this._scrollDistanceChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n\n if (this._showAddon !== !!this._headerAddon) {\n this._showAddon = !!this._headerAddon;\n this._updatePagination();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Aligns the ink bar to the selected tab on load.\n */\n ngAfterContentInit() {\n const resize = this._viewportRuler.change(150);\n const realign = () => {\n this._updatePagination();\n this._alignActiveIndicatorToSelectedTab();\n };\n\n this._keyManager = new FocusKeyManager(this._labelWrappers)\n .withHorizontalOrientation('ltr')\n .withWrap();\n this._keyManager.updateActiveItem(0);\n\n // Defer the first call in order to allow for slower browsers to lay out the elements.\n // This helps in cases where the user lands directly on a page with paginated tabs.\n typeof requestAnimationFrame !== 'undefined'\n ? requestAnimationFrame(realign)\n : realign();\n\n // On window resize, realign the ink bar and update the orientation of\n // the key manager if the direction has changed.\n resize.pipe(takeUntil(this._destroyed)).subscribe(() => {\n realign();\n });\n\n // If there is a change in the focus key manager we need to emit the `indexFocused`\n // event in order to provide a public event that notifies about focus changes. Also we realign\n // the tabs container by scrolling the new focused tab into the visible section.\n this._keyManager.change\n .pipe(takeUntil(this._destroyed))\n .subscribe(newFocusIndex => {\n this.indexFocused.emit(newFocusIndex);\n this._setTabFocus(newFocusIndex);\n });\n }\n\n /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\n get scrollDistance(): number {\n return this._scrollDistance;\n }\n\n set scrollDistance(v: number) {\n this._scrollDistance = Math.max(\n 0,\n Math.min(this._getMaxScrollDistance(), v),\n );\n // Mark that the scroll distance has changed so that after the view is checked, the CSS\n // transformation can move the header.\n this._scrollDistanceChanged = true;\n this._checkScrollingControls();\n }\n\n /** Tracks which element has focus; used for keyboard navigation */\n get focusIndex(): number {\n return this._keyManager ? this._keyManager.activeItemIndex : 0;\n }\n\n /** When the focus index is set, we must manually send focus to the correct label */\n set focusIndex(value: number) {\n if (\n !this._isValidIndex(value) ||\n this.focusIndex === value ||\n !this._keyManager\n ) {\n return;\n }\n this._keyManager.setActiveItem(value);\n }\n\n /**\n * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is\n * providing a valid index and return true.\n */\n _isValidIndex(index: number): boolean {\n if (!this._labelWrappers) {\n return true;\n }\n const tab = this._labelWrappers\n ? this._labelWrappers.toArray()[index]\n : null;\n return !!tab && !tab.disabled;\n }\n\n _handleKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Home':\n this._keyManager.setFirstItemActive();\n event.preventDefault();\n break;\n case 'End':\n this._keyManager.setLastItemActive();\n event.preventDefault();\n break;\n case 'Enter':\n case 'Space':\n this.selectFocusedIndex.emit(this.focusIndex);\n event.preventDefault();\n break;\n default:\n this._keyManager.onKeydown(event);\n }\n }\n\n /**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n */\n _setTabFocus(tabIndex: number) {\n if (this._showPaginationControls) {\n this._scrollToLabel(tabIndex);\n }\n if (this._labelWrappers?.length > 0) {\n this._labelWrappers.toArray()[tabIndex].focus();\n // Do not let the browser manage scrolling to focus the element, this will be handled\n // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width\n // should be the full width minus the offset width.\n const containerEl = this._tabListContainer.nativeElement;\n containerEl.scrollLeft = 0;\n }\n }\n\n /**\n * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _scrollToLabel(labelIndex: number) {\n const selectedLabel = this._labelWrappers\n ? this._labelWrappers.toArray()[labelIndex]\n : null;\n if (!selectedLabel) {\n return;\n }\n // The view length is the visible width of the tab labels.\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n const labelBeforePos = selectedLabel.getOffsetLeft();\n const labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();\n const beforeVisiblePos = this.scrollDistance;\n const afterVisiblePos = this.scrollDistance + viewLength;\n if (labelBeforePos < beforeVisiblePos) {\n // Scroll header to move label to the before direction\n this.scrollDistance -=\n beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\n } else if (labelAfterPos > afterVisiblePos) {\n // Scroll header to move label to the after direction\n this.scrollDistance +=\n labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\n }\n }\n\n /**\n * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n * the end of the list, respectively). The distance to scroll is computed to be a third of the\n * length of the tab list view window.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _scrollHeader(scrollDir: ScrollDirection) {\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n // Move the scroll distance one-third the length of the tab list's viewport.\n this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * viewLength) / 3;\n }\n\n /**\n * Callback for when the MutationObserver detects that the content has changed.\n */\n _onContentChanges() {\n this._updatePagination();\n this._alignActiveIndicatorToSelectedTab();\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Updating the view whether pagination should be enabled or not\n */\n _updatePagination() {\n this._checkPaginationEnabled();\n this._checkScrollingControls();\n this._updateTabScrollPosition();\n }\n\n /**\n * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n * tab list is wider than the size of the header container, then the pagination controls should\n * be shown.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _checkPaginationEnabled() {\n const isEnabled =\n this._tabList.nativeElement.scrollWidth >\n this._paginationWrapper.nativeElement.offsetWidth + 2; // 2 is the border size\n if (!isEnabled) {\n this.scrollDistance = 0;\n }\n const detectChanges = isEnabled !== this._showPaginationControls;\n this._showPaginationControls = isEnabled;\n\n if (detectChanges) {\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Evaluate whether the before and after controls should be enabled or disabled.\n * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n * before button. If the header is at the end of the list (scroll distance is equal to the\n * maximum distance we can scroll), then disable the after button.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _checkScrollingControls() {\n // Check if the pagination arrows should be activated.\n this._disableScrollBefore = this.scrollDistance === 0;\n this._disableScrollAfter =\n this.scrollDistance === this._getMaxScrollDistance();\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n * is equal to the difference in width between the tab list container and tab header container.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _getMaxScrollDistance(): number {\n const lengthOfTabList = this._tabList.nativeElement.scrollWidth;\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n return lengthOfTabList - viewLength || 0;\n }\n\n /** Performs the CSS transformation on the tab list that will cause the list to scroll. */\n _updateTabScrollPosition() {\n const scrollDistance = this.scrollDistance;\n const translateX = -scrollDistance;\n // Don't use `translate3d` here because we don't want to create a new layer. A new layer\n // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar\n // and ripples will exceed the boundaries of the visible tab bar.\n // See: https://github.com/angular/material2/issues/10276\n this._tabList.nativeElement.style.transform = `translateX(${translateX}px)`;\n }\n\n /** Tells the active indicator to align itself to the current label wrapper */\n _alignActiveIndicatorToSelectedTab(): void {\n const selectedLabelWrapper =\n this._labelWrappers?.length > 0\n ? this._labelWrappers.toArray()[this.selectedIndex].elementRef\n .nativeElement\n : null;\n this._activeIndicator.alignToElement(selectedLabelWrapper);\n }\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _viewportRuler: ViewportRuler,\n ) {}\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\n@Injectable()\nexport class TabContextService {\n private readonly active$$ = new BehaviorSubject(false);\n\n /**\n * Whether the tab is currently active.\n */\n get isActive() {\n return this.active$$.value;\n }\n\n set isActive(isActive: boolean) {\n this.active$$.next(isActive);\n }\n\n readonly active$: Observable<boolean> = (this._parent\n ? combineLatest([this._parent.active$, this.active$$]).pipe(\n map(([a, b]) => a && b),\n )\n : this.active$$\n ).pipe(distinctUntilChanged());\n\n constructor(\n @Optional()\n @SkipSelf()\n private readonly _parent: TabContextService,\n ) {}\n}\n","/* eslint-disable no-prototype-builtins */\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { coerceAttrBoolean } from '../utils';\n\nimport { TabContextService } from './tab-context.service';\nimport { TabContentDirective, TabLabelDirective } from './tab-directives';\n\n@Component({\n selector: 'aui-tab',\n exportAs: 'auiTab',\n templateUrl: './tab.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n providers: [TabContextService],\n})\nexport class TabComponent implements AfterContentInit, OnDestroy, OnChanges {\n @Input()\n name: string;\n\n /** Plain text label for the tab, used when there is no template label. */\n @Input('label')\n textLabel = '';\n\n /** Whether or not to show the close button in the header */\n @Input()\n closeable = false;\n\n /** Whether or not the tab is disabled */\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: boolean | '') {\n this._disabled = coerceAttrBoolean(value);\n }\n\n @Output()\n close = new EventEmitter<void>();\n\n /** Content for the tab label given by `<ng-template [auiTabLabel]>`. */\n @ContentChild(TabLabelDirective, { static: false })\n templateLabel: TabLabelDirective;\n\n /**\n * Template provided in the tab content that will be used if present, used to enable lazy-loading\n */\n @ContentChild(TabContentDirective, { read: TemplateRef, static: false })\n _explicitContent: TemplateRef<any>;\n\n /** Template inside the AuiTab view that contains an `<ng-content>`. */\n @ViewChild(TemplateRef, { static: true })\n _implicitContent: TemplateRef<any>;\n\n get content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /**\n * The relatively indexed position where 0 represents the center, negative is left, and positive\n * represents the right.\n */\n position: number | null = null;\n\n /**\n * The initial relatively index origin of the tab if it was created and selected after there\n * was already a selected tab. Provides context of what position the tab should originate from.\n */\n origin: number | null = null;\n\n /** Emits whenever the internal state of the tab changes. */\n readonly _stateChanges = new Subject<void>();\n\n /** Portal that will be the hosted content of the tab */\n private _contentPortal: TemplatePortal | null = null;\n\n private _disabled = false;\n\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n public readonly tabContext: TabContextService,\n ) {}\n\n ngAfterContentInit(): void {\n this._contentPortal = new TemplatePortal(\n this._explicitContent || this._implicitContent,\n this._viewContainerRef,\n );\n }\n\n ngOnDestroy(): void {\n this._stateChanges.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.hasOwnProperty('textLabel') ||\n changes.hasOwnProperty('disabled') ||\n changes.hasOwnProperty('closeable')\n ) {\n this._stateChanges.next();\n }\n }\n}\n","/* eslint-disable no-prototype-builtins */\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, Subscription, merge } from 'rxjs';\n\nimport { Bem, buildBem, coerceNumber } from '../utils';\n\nimport { TabHeaderAddonDirective, TabTitleDirective } from './tab-directives';\nimport { TabHeaderComponent } from './tab-header.component';\nimport { TabComponent } from './tab.component';\nimport { TabSize, TabType } from './tabs.types';\n\n/** A simple change event emitted on focus or selection changes. */\nexport class TabChangeEvent {\n /** Index of the currently-selected tab. */\n index: number;\n /** Reference to the currently-selected tab. */\n tab: TabComponent;\n}\n\n@Component({\n selector: 'aui-tab-group',\n exportAs: 'auiTabGroup',\n templateUrl: './tab-group.component.html',\n styleUrls: ['./tab-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TabGroupComponent\n implements OnChanges, AfterContentChecked, AfterContentInit, OnDestroy {\n bem: Bem = buildBem('aui-tab-group');\n\n @ContentChildren(TabComponent)\n _tabs: QueryList<TabComponent>;\n\n @ContentChild(TabHeaderAddonDirective, { static: false })\n _headerAddon: TabHeaderAddonDirective;\n\n @ViewChild(TabHeaderComponent, { static: false })\n _tabHeader: TabHeaderComponent;\n\n @ContentChild(TabTitleDirective, { static: false })\n _tabTitle: TabTitleDirective;\n\n /** The tab index that should be selected after the content has been checked. */\n private _indexToSelect: number | null = 0;\n\n /** Subscription to tabs being added/removed. */\n private _tabsSubscription = Subscription.EMPTY;\n\n /** Subscription to changes in the tab labels. */\n private _tabLabelSubscription = Subscription.EMPTY;\n\n private _selectedIndex: number | null = null;\n private _tab: string = null;\n private _type: TabType = TabType.Line;\n private _size: TabSize = TabSize.Medium;\n\n /** true lazy mode for template ref children */\n private _lazy: boolean;\n\n private _previousHeaderAddon: TabHeaderAddonDirective;\n\n /** Emits whenever the type changes */\n readonly _typeChange = new Subject<void>();\n\n /** Emits whenever the size changes */\n readonly _sizeChange = new Subject<void>();\n\n /** The index of the active tab. */\n @Input()\n get selectedIndex(): number | null {\n return this._selectedIndex;\n }\n\n set selectedIndex(value: number | null) {\n this._indexToSelect = coerceNumber(value, null);\n this._changeActivatedTabs();\n }\n\n @Input()\n get tab(): string {\n return this._tab;\n }\n\n set tab(value: string) {\n this._tab = value;\n if (this._tabs) {\n this.selectedIndex = this._findIndexByTab(value);\n }\n }\n\n @Input()\n get type() {\n return this._type;\n }\n\n set type(type: TabType) {\n this._type = type;\n }\n\n @Input()\n title: string | TemplateRef<unknown>;\n\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n if (!val || this._size === val) {\n return;\n }\n this._size = val;\n }\n\n @Input()\n get lazy() {\n return this._lazy;\n }\n\n set lazy(lazy: boolean) {\n if (this._lazy === lazy) {\n return;\n }\n this._lazy = lazy;\n if (lazy) {\n this._changeActivatedTabs();\n } else {\n this.activatedTabs.length = 0;\n }\n }\n\n /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n @Output()\n readonly selectedIndexChange = new EventEmitter<number>();\n\n @Output()\n readonly tabChange = new EventEmitter<string>();\n\n /** Event emitted when the tab selection has changed. */\n @Output()\n readonly selectedTabChange = new EventEmitter<TabChangeEvent>(true);\n\n /** Event emitted when focus has changed within a tab group. */\n @Output()\n readonly focusChange: EventEmitter<TabChangeEvent> = new EventEmitter<TabChangeEvent>();\n\n constructor(private readonly _changeDetectorRef: ChangeDetectorRef) {}\n\n activatedTabs: TabComponent[] = [];\n\n get activeTab() {\n return this._tabs.length > 0 && this.selectedIndex !== null\n ? this._tabs.toArray()[this.selectedIndex]\n : null;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.hasOwnProperty('type')) {\n this._typeChange.next();\n }\n\n if (changes.hasOwnProperty('size')) {\n this._sizeChange.next();\n }\n }\n\n /**\n * After the content is checked, this component knows what tabs have been defined\n * and what the selected index should be. This is where we can know exactly what position\n * each tab should be in according to the new selected index.\n */\n ngAfterContentChecked(): void {\n // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n // the amount of tabs changes before the actual change detection runs.\n const indexToSelect = (this._indexToSelect = this._clampTabIndex(\n this._indexToSelect,\n ));\n\n // If there is a change in selected index, emit a change event. Should not trigger if\n // the selected index has not yet been initialized.\n if (this._selectedIndex !== indexToSelect && this._selectedIndex != null) {\n this._changeActivatedTabs();\n const tabChangeEvent = this._createChangeEvent(indexToSelect);\n this.selectedTabChange.emit(tabChangeEvent);\n // Emitting this value after change detection has run\n // since the checked content may contain this variable'\n Promise.resolve().then(() => {\n this.selectedIndexChange.emit(indexToSelect);\n this.tabChange.emit(this._tabs.get(indexToSelect).name);\n });\n }\n\n // Setup the position for each tab and optionally setup an origin on the next selected tab.\n this._tabs.forEach((tab: TabComponent, index: number) => {\n tab.position = index - indexToSelect;\n tab.tabContext.isActive = index === indexToSelect;\n // If there is already a selected tab, then set up an origin for the next selected tab\n // if it doesn't have one already.\n if (this._selectedIndex != null && tab.position === 0 && !tab.origin) {\n tab.origin = indexToSelect - this._selectedIndex;\n }\n });\n\n if (this._selectedIndex !== indexToSelect) {\n this._selectedIndex = indexToSelect;\n this._changeDetectorRef.markForCheck();\n }\n\n if (this._previousHeaderAddon !== this._headerAddon) {\n this._previousHeaderAddon = this._headerAddon;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n ngAfterContentInit() {\n if (this.tab) {\n this._indexToSelect = this._findIndexByTab(this.tab);\n }\n\n this._changeActivatedTabs();\n this._subscribeToTabLabels();\n // Subscribe to changes in the amount of tabs, in order to be\n // able to re-render the content as new tabs are added or removed.\n this._tabsSubscription = this._tabs.changes.subscribe(() => {\n const tabs = this._tabs.toArray();\n if (this._lazy) {\n this.activatedTabs = this.activatedTabs.filter(tab =>\n tabs.includes(tab),\n );\n }\n const indexToSelect = this._clampTabIndex(this._indexToSelect);\n // Maintain the previously-selected tab if a new tab is added or removed and there is no\n // explicit change that selects a different tab.\n if (indexToSelect === this._selectedIndex) {\n for (const [i, tab] of tabs.entries()) {\n if (tab.tabContext.isActive) {\n // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed\n // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n // adding a tab within the `selectedIndexChange` event.\n this._indexToSelect = this._selectedIndex = i;\n break;\n }\n }\n }\n this._changeActivatedTabs();\n this._subscribeToTabLabels();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this._tabsSubscription.unsubscribe();\n this._tabLabelSubscription.unsubscribe();\n\n this._typeChange.complete();\n this._sizeChange.complete();\n }\n\n /** Handle click events, setting new selected index if appropriate. */\n _handleClick(tab: TabComponent, idx: number) {\n if (!tab.disabled) {\n this.selectedIndex = this._tabHeader.focusIndex = idx;\n }\n }\n\n _focusChanged(index: number) {\n this.focusChange.emit(this._createChangeEvent(index));\n }\n\n /** Re-aligns the ink bar to the selected tab element. */\n realignActiveIndicator() {\n if (this._tabHeader) {\n this._tabHeader._alignActiveIndicatorToSelectedTab();\n }\n }\n\n private _changeActivatedTabs() {\n if (\n !this._lazy ||\n !this._tabs ||\n this._indexToSelect < 0 ||\n this._indexToSelect >= this._tabs.length\n ) {\n return;\n }\n const tab = this._tabs.find((_, index) => index === this._indexToSelect);\n if (tab && !this.activatedTabs.includes(tab)) {\n this.activatedTabs.push(tab);\n }\n }\n\n /** Clamps the given index to the bounds of 0 and the tabs length. */\n private _clampTabIndex(index: number | null): number {\n // Note the `|| 0`, which ensures that values like NaN can't get through\n // and which would otherwise throw the component into an infinite loop\n // (since Math.max(NaN, 0) === NaN).\n return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));\n }\n\n private _findIndexByTab(name: string) {\n return Math.max(\n this._tabs.toArray().findIndex(tab => tab.name === name),\n 0,\n );\n }\n\n private _createChangeEvent(index: number): TabChangeEvent {\n const event = new TabChangeEvent();\n event.index = index;\n if (this._tabs?.length > 0) {\n event.tab = this._tabs.toArray()[index];\n }\n return event;\n }\n\n /**\n * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is\n * on the Tab component, whereas the data binding is inside the TabGroup. In order for the\n * binding to be updated, we need to subscribe to changes in it and trigger change detection\n * manually.\n */\n private _subscribeToTabLabels() {\n if (this._tabLabelSubscription) {\n this._tabLabelSubscription.unsubscribe();\n }\n this._tabLabelSubscription = merge(\n ...this._tabs.map(tab => tab._stateChanges),\n this._typeChange,\n this._sizeChange,\n ).subscribe(() => {\n this.realignActiveIndicator();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /** Retrieves the tabindex for the tab. */\n _getTabIndex(tab: TabComponent, idx: number): number | null {\n if (tab.disabled) {\n return null;\n }\n return this.selectedIndex === idx ? 0 : -1;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button/public-api';\nimport { IconModule } from '../icon/public-api';\n\nimport { TabBodyComponent } from './tab-body.component';\nimport {\n TabBodyPortalDirective,\n TabContentDirective,\n TabHeaderAddonDirective,\n TabLabelDirective,\n TabLabelWrapperDirective,\n TabTitleDirective,\n} from './tab-directives';\nimport { TabGroupComponent } from './tab-group.component';\nimport { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';\nimport { TabHeaderComponent } from './tab-header.component';\nimport { TabComponent } from './tab.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PortalModule,\n ButtonModule,\n IconModule,\n A11yModule,\n ObserversModule,\n ],\n declarations: [\n TabGroupComponent,\n TabComponent,\n TabLabelDirective,\n TabContentDirective,\n TabHeaderAddonDirective,\n TabTitleDirective,\n TabHeaderComponent,\n TabBodyComponent,\n TabBodyPortalDirective,\n TabLabelWrapperDirective,\n TabHeaderActiveIndicatorComponent,\n ],\n exports: [\n TabGroupComponent,\n TabComponent,\n TabLabelDirective,\n TabContentDirective,\n TabHeaderAddonDirective,\n TabTitleDirective,\n TabLabelWrapperDirective,\n TabHeaderComponent,\n ],\n})\nexport class TabsModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-tree-node-placeholder',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TreeNodePlaceholderComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { CommonFormControl } from '../form/public-api';\nimport { InputComponent } from '../input/public-api';\nimport { TrackFn } from '../select/select.types';\nimport { TooltipDirective } from '../tooltip/public-api';\nimport { coerceAttrBoolean, coerceString } from '../utils';\n\nimport { TreeNodeComponent } from './tree-node/tree-node.component';\nimport { TreeNode } from './tree-select.types';\n\n@Component({\n selector: 'aui-tree-select',\n templateUrl: './tree-select.component.html',\n styleUrls: ['./tree-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TreeSelectComponent),\n multi: true,\n },\n ],\n})\nexport class TreeSelectComponent<T = unknown> extends CommonFormControl<T> {\n @Input()\n get nodesData() {\n return this._nodesData;\n }\n\n set nodesData(val) {\n if (!val || val === this._nodesData) {\n return;\n }\n this._nodesData = val;\n this.flattedNodes = this.flatNodesData(val);\n this.updateSelectDisplay(this.propValue);\n }\n\n @Input()\n loading = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n get filterable() {\n return this._filterable;\n }\n\n set filterable(val: boolean | '') {\n this._filterable = coerceAttrBoolean(val);\n }\n\n @Input()\n get clearable() {\n return this._clearable;\n }\n\n set clearable(val: boolean | '') {\n this._clearable = coerceAttrBoolean(val);\n }\n\n @Input()\n get leafOnly() {\n return this._leafOnly;\n }\n\n set leafOnly(val: boolean | '') {\n this._leafOnly = coerceAttrBoolean(val);\n }\n\n @Input()\n filterFn = this._filterFn;\n\n @Input()\n trackFn: TrackFn<T> = this._trackFn;\n\n @Input()\n labelFn?: (value: T) => string;\n\n @Output()\n filterChange = new EventEmitter<string>();\n\n @Output()\n show = new EventEmitter<void>();\n\n @Output()\n hide = new EventEmitter<void>();\n\n @ViewChild('selectRef', { static: true })\n protected selectRef: ElementRef<HTMLElement>;\n\n @ViewChild('tooltipRef', { static: true })\n protected tooltipRef: TooltipDirective;\n\n @ViewChild('nodeListRef', { static: true })\n nodeListRef: ElementRef;\n\n @ViewChild('inputRef', { static: true })\n inputRef: InputComponent;\n\n private _nodesData: Array<TreeNode<T>> = [];\n private _filterString = '';\n private _filterable = false;\n private _clearable = false;\n private _leafOnly = false;\n private readonly filterString$$ = new BehaviorSubject(this.filterString);\n\n filterString$: Observable<string> = this.filterString$$.asObservable();\n\n containerWidth: string;\n displayText = '';\n flattedNodes: Array<TreeNode<T>> = [];\n\n get isClearable() {\n return !this.disabled && this.clearable && this.getInputValue();\n }\n\n get opened() {\n return this.tooltipRef.isCreated;\n }\n\n get inputReadonly() {\n return !(this.filterable && this.opened);\n }\n\n get filterString() {\n return this._filterString;\n }\n\n set filterString(val) {\n if (val !== this._filterString) {\n this._filterString = val;\n this.filterString$$.next(val);\n this.filterChange.emit(val);\n }\n }\n\n openNodes() {\n this.tooltipRef.createTooltip();\n }\n\n closeNodes() {\n this.tooltipRef.disposeTooltip();\n }\n\n updatePosition() {\n this.tooltipRef.updatePosition();\n }\n\n onShowNodes() {\n this.containerWidth = this.selectRef.nativeElement.offsetWidth + 'px';\n this.show.emit();\n this.cdr.detectChanges();\n }\n\n onHideNodes() {\n if (this.onTouched) {\n this.onTouched();\n }\n this.filterString = '';\n this.hide.emit();\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.filterString = value;\n this.cdr.markForCheck();\n }\n\n onNodeClick(node: TreeNodeComponent<T>) {\n this.selectNode(node);\n }\n\n getVisibleNodeCount() {\n return this.flattedNodes.filter(node =>\n this.filterFn(this.filterString, node),\n ).length;\n }\n\n selectNode(node: TreeNodeComponent<T>) {\n if (!node.selected) {\n this.emitValueChange(node.nodeData.value);\n if (this.onChange) {\n this.closeNodes();\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.closeOption();\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n closeOption() {\n this.tooltipRef.disposeTooltip();\n }\n\n updateSelectDisplay(value: any) {\n const pickedNode = this.flattedNodes.find(\n node => this.trackFn(node.value) === this.trackFn(value),\n );\n if (pickedNode) {\n this.displayText = this.getLabelFromNode(pickedNode).toString();\n } else {\n this.displayText = coerceString(this.trackFn(value));\n }\n }\n\n clearValue(event: Event) {\n this.emitValueChange(null);\n event.stopPropagation();\n event.preventDefault();\n }\n\n writeValue(value: T) {\n this.value$$.next(value);\n this.updateSelectDisplay(value);\n this.closeNodes();\n }\n\n getPlaceholder() {\n return this.filterable && this.opened ? this.displayText : this.placeholder;\n }\n\n getInputValue() {\n return this.filterable && this.opened ? '' : this.displayText;\n }\n\n // `this` is not available in `trackBy`...\n trackByLabel = (_: number, node: TreeNode<T>) => this.getLabelFromNode(node);\n\n private flatNodesData(nodes: Array<TreeNode<T>> = []): Array<TreeNode<T>> {\n return nodes.reduce(\n (prevValue: Array<TreeNode<T>>, currentNode) =>\n prevValue.concat(currentNode, this.flatNodesData(currentNode.children)),\n [],\n );\n }\n\n private getLabelFromNode(node: TreeNode<T>) {\n return (\n node.label ||\n this.labelFn?.(node.value) ||\n coerceString(this.trackFn(node.value))\n );\n }\n\n private _filterFn(filterString: string, node: TreeNode<T>) {\n return this.getLabelFromNode(node)?.includes(filterString ?? '');\n }\n\n private _trackFn<T>(value: T) {\n return value;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { BehaviorSubject, Observable, Subject, combineLatest, of } from 'rxjs';\nimport {\n map,\n publishReplay,\n refCount,\n startWith,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs/operators';\n\nimport { Bem, buildBem, coerceAttrBoolean, scrollIntoView } from '../../utils';\nimport { TreeSelectComponent } from '../tree-select.component';\nimport { TreeNode } from '../tree-select.types';\n\n@Component({\n selector: 'aui-tree-node',\n templateUrl: './tree-node.component.html',\n styleUrls: ['./tree-node.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TreeNodeComponent<T> implements AfterViewInit, OnDestroy {\n bem: Bem = buildBem('aui-tree-node');\n\n private _nodeData: TreeNode<T>;\n private readonly nodeData$$ = new BehaviorSubject<TreeNode<T>>(this.nodeData);\n private readonly destroy$$ = new Subject<void>();\n\n @Input()\n get nodeData() {\n return this._nodeData;\n }\n\n set nodeData(val) {\n if (val === this._nodeData) {\n return;\n }\n this._nodeData = val;\n this.nodeData$$.next(val);\n }\n\n @Input()\n get leafOnly() {\n return this._leafOnly;\n }\n\n set leafOnly(val: boolean | '') {\n this._leafOnly = coerceAttrBoolean(val);\n }\n\n @ViewChild('titleRef', { static: true })\n titleRef: ElementRef;\n\n @ViewChildren(TreeNodeComponent)\n childNodes: QueryList<TreeNodeComponent<T>>;\n\n selected = false;\n visible = true;\n isLeaf = false;\n\n private _leafOnly = true;\n private readonly select: TreeSelectComponent<T>;\n selected$: Observable<boolean>;\n selfVisible$: Observable<boolean>;\n visible$: Observable<boolean>;\n\n constructor(\n @Inject(forwardRef(() => TreeSelectComponent))\n select: any, // FIXME: workaround temporarily\n private readonly cdr: ChangeDetectorRef,\n ) {\n this.select = select;\n this.selected$ = combineLatest([\n this.select.value$,\n this.nodeData$$.pipe(map(data => data.value)),\n ]).pipe(\n map(\n ([selectValue, selfValue]) =>\n selectValue &&\n this.select.trackFn(selectValue) === this.select.trackFn(selfValue),\n ),\n tap(selected => {\n this.selected = selected;\n }),\n publishReplay(1),\n refCount(),\n );\n this.selfVisible$ = combineLatest([\n this.select.filterString$,\n this.nodeData$$,\n ]).pipe(\n map(([filterString, nodeData]) =>\n this.select.filterFn(filterString, nodeData),\n ),\n publishReplay(1),\n refCount(),\n );\n }\n\n ngAfterViewInit() {\n const hasVisibleChildNodes$ = this.childNodes.changes.pipe(\n startWith(this.childNodes),\n switchMap((nodes: QueryList<TreeNodeComponent<T>>) =>\n nodes.length > 0\n ? combineLatest(nodes.map(node => node.visible$))\n : of([false]),\n ),\n map(visible => visible.some(value => value)),\n tap(hasVisibleChildren => (this.isLeaf = !hasVisibleChildren)),\n );\n this.visible$ = combineLatest([\n this.selfVisible$,\n hasVisibleChildNodes$,\n ]).pipe(\n map(visible => visible.some(value => value)),\n publishReplay(1),\n refCount(),\n );\n\n this.visible$.pipe(takeUntil(this.destroy$$)).subscribe(visible => {\n this.visible = visible;\n this.cdr.markForCheck();\n });\n this.selected$.pipe(takeUntil(this.destroy$$)).subscribe(selected => {\n this.selected = selected;\n this.cdr.markForCheck();\n });\n\n if (this.selected) {\n requestAnimationFrame(() => {\n this.scrollToNode(this);\n });\n }\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n\n onClick() {\n if (this.nodeData.disabled) {\n return;\n }\n if (this.leafOnly && !this.isLeaf) {\n this.switchExpanded();\n return;\n }\n this.select.onNodeClick(this);\n }\n\n switchExpanded() {\n this.nodeData.expanded = !this.nodeData.expanded;\n if (this.nodeData.expanded && this.childNodes.last) {\n requestAnimationFrame(() => {\n this.scrollToNode(this.childNodes.last);\n });\n }\n requestAnimationFrame(() => {\n this.select.updatePosition();\n });\n }\n\n getIcon() {\n return this.nodeData.expanded\n ? this.nodeData.expandedIcon || this.nodeData.icon\n : this.nodeData.icon;\n }\n\n trackByLabel(_: number, data: TreeNode<T>) {\n return data.label;\n }\n\n scrollToNode(node: TreeNodeComponent<T>) {\n if (this.select.nodeListRef) {\n scrollIntoView(\n this.select.nodeListRef.nativeElement,\n node.titleRef.nativeElement,\n );\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/public-api';\nimport { InputModule } from '../input/public-api';\nimport { TooltipModule } from '../tooltip/public-api';\n\nimport { TreeNodePlaceholderComponent } from './tree-node-placeholder.component';\nimport { TreeNodeComponent } from './tree-node/tree-node.component';\nimport { TreeSelectComponent } from './tree-select.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, IconModule, InputModule],\n declarations: [\n TreeSelectComponent,\n TreeNodeComponent,\n TreeNodePlaceholderComponent,\n ],\n exports: [\n TreeSelectComponent,\n TreeNodeComponent,\n TreeNodePlaceholderComponent,\n ],\n})\nexport class TreeSelectModule {}\n","// tslint:disable: no-output-rename\nimport { Overlay } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Host,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { BehaviorSubject, Observable, Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n BaseTooltip,\n TooltipTrigger,\n TooltipType,\n} from '../tooltip/public-api';\nimport { scrollIntoView } from '../utils';\n\nimport { AutocompleteComponent } from './autocomplete.component';\nimport { AutoCompleteContext, SuggestionFilterFn } from './autocomplete.types';\nimport { SuggestionComponent } from './suggestion/suggestion.component';\n\n@Directive({\n selector: 'input[auiAutocomplete],textarea[auiAutocomplete]',\n exportAs: 'auiAutocomplete',\n inputs: ['class:auiAutocompleteClass'],\n host: {\n autocomplete: 'off',\n },\n})\nexport class AutoCompleteDirective\n extends BaseTooltip<AutoCompleteContext>\n implements OnInit, OnDestroy, AfterViewInit {\n @Input('auiAutocomplete')\n get autocomplete() {\n return this._autocomplete;\n }\n\n set autocomplete(val) {\n if (val === this._autocomplete) {\n return;\n }\n val.directive$$.next(this);\n this._autocomplete = val;\n this.content = val.template;\n }\n\n @Input('auiAutocompleteFilterFn')\n @Input()\n get filterFn() {\n return this._filterFn;\n }\n\n set filterFn(val) {\n if (val !== this._filterFn) {\n this._filterFn = val;\n this.filterFn$$.next(val);\n }\n }\n\n @Input('auiAutocompleteDefaultFirstSuggestion')\n defaultFirstSuggestion = true;\n\n @Input('auiAutocompleteTrigger')\n suggestionTrigger: 'auto' | 'input' = 'auto';\n\n declare innerSelector: string;\n\n @Output('auiAutocompleteShow')\n show: EventEmitter<void>;\n\n @Output('auiAutocompleteHide')\n hide: EventEmitter<void>;\n\n @Output('auiAutocompleteSelected')\n selected = new EventEmitter<string>();\n\n private _autocomplete: AutocompleteComponent;\n private focusedSuggestion: SuggestionComponent;\n\n private readonly inputValue$$ = new BehaviorSubject<string>('');\n private readonly filterFn$$ = new BehaviorSubject<SuggestionFilterFn>(\n this.filterFn,\n );\n\n private readonly unsubscribe$ = new Subject<void>();\n\n inputValue$: Observable<string> = this.inputValue$$.asObservable();\n filterFn$: Observable<SuggestionFilterFn> = this.filterFn$$.asObservable();\n\n get input(): HTMLInputElement {\n const el = this.elRef.nativeElement;\n return this.innerSelector ? el.querySelector(this.innerSelector) : el;\n }\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n elRef: ElementRef<HTMLInputElement>,\n renderer: Renderer2,\n cdr: ChangeDetectorRef,\n ngZone: NgZone,\n @Optional()\n @Host()\n private readonly ngControl: NgControl,\n ) {\n super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);\n this.type = TooltipType.Plain;\n this.trigger = TooltipTrigger.Manual;\n this.position = 'bottom start';\n this.hideOnClick = true;\n }\n\n ngOnInit() {\n this.show.subscribe(() => {\n this.updateSuggestionsContext();\n });\n this.hide.subscribe(() => {\n this.resetFocusedSuggestion();\n });\n\n if (this.ngControl) {\n this.ngControl.valueChanges\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((value: string | string[]) => {\n if (!Array.isArray(value)) {\n this.inputValue$$.next(value);\n }\n });\n }\n }\n\n ngAfterViewInit() {\n const input = this.input;\n\n fromEvent(input, 'focus')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => this.onFocus());\n\n fromEvent(input, 'blur')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => this.onBlur());\n\n fromEvent(input, 'input')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(ev => this.onInput(ev));\n\n fromEvent(input, 'keydown')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((ev: KeyboardEvent) => this.onKeyDown(ev));\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n onFocus() {\n if (this.suggestionTrigger === 'auto') {\n super.onFocus();\n }\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.inputValue$$.next(value);\n this.createTooltip();\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n this.focusSuggestionDir('down');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.focusSuggestionDir('up');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Enter':\n if (this.focusedSuggestion) {\n this.selectFocusedOption();\n event.stopPropagation();\n event.preventDefault();\n }\n break;\n case 'Escape':\n this.disposeTooltip();\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n }\n\n updateSuggestionsContext() {\n this.context = {\n ...this.context,\n width: this.elRef.nativeElement.offsetWidth + 'px',\n };\n }\n\n onSuggestionClick(value: string) {\n let isArrCtrl = false;\n\n if (this.ngControl) {\n const { control } = this.ngControl;\n isArrCtrl = Array.isArray(control.value);\n control.patchValue(isArrCtrl ? [...control.value, value] : value);\n } else {\n this.input.value = value;\n }\n\n this.inputValue$$.next(isArrCtrl ? '' : value);\n\n this.selected.emit(value);\n this.disposeTooltip();\n }\n\n createTooltip() {\n super.createTooltip();\n this.autoFocusFirstSuggestion();\n }\n\n private autoFocusFirstSuggestion() {\n const selectedSuggestion = this.autocomplete.suggestions.find(\n suggestion => suggestion.selected,\n );\n if (selectedSuggestion) {\n this.resetFocusedSuggestion(selectedSuggestion);\n requestAnimationFrame(() => {\n this.scrollToSuggestion(selectedSuggestion);\n });\n } else if (this.defaultFirstSuggestion) {\n const firstFocusableSuggestion = this.autocomplete.suggestions.find(\n suggestion => suggestion.visible && !suggestion.disabled,\n );\n this.resetFocusedSuggestion(firstFocusableSuggestion);\n if (firstFocusableSuggestion) {\n requestAnimationFrame(() => {\n this.scrollToSuggestion(firstFocusableSuggestion);\n });\n }\n }\n }\n\n private focusSuggestionDir(dir: 'down' | 'up') {\n if (!this.isCreated) {\n this.createTooltip();\n return;\n }\n const visibleSuggestions = this.autocomplete.suggestions.filter(\n suggestion => suggestion.visible && !suggestion.disabled,\n );\n if (visibleSuggestions.length === 0) {\n return;\n }\n const step = dir === 'down' ? 1 : -1;\n let i = visibleSuggestions.indexOf(this.focusedSuggestion);\n i = i + step;\n if (i >= visibleSuggestions.length) {\n i = 0;\n } else if (i < 0) {\n i = visibleSuggestions.length - 1;\n }\n this.resetFocusedSuggestion(visibleSuggestions[i]);\n this.scrollToSuggestion(this.focusedSuggestion);\n }\n\n private resetFocusedSuggestion(\n focusedSuggestion: SuggestionComponent = null,\n ) {\n if (this.focusedSuggestion) {\n this.focusedSuggestion.blur();\n }\n this.focusedSuggestion = focusedSuggestion;\n if (this.focusedSuggestion) {\n this.focusedSuggestion.focus();\n }\n }\n\n private scrollToSuggestion(suggestion: SuggestionComponent) {\n if (this.autocomplete.suggestionListRef) {\n scrollIntoView(\n this.autocomplete.suggestionListRef.nativeElement,\n suggestion.elRef.nativeElement,\n );\n }\n }\n\n protected selectFocusedOption() {\n if (this.focusedSuggestion) {\n this.onSuggestionClick(this.focusedSuggestion.value);\n }\n }\n\n private _filterFn(inputValue: string, suggestion: string) {\n return suggestion?.toLowerCase().includes(inputValue?.toLowerCase() ?? '');\n }\n}\n\n@Directive({\n selector: '[auiAutocomplete]:not(input):not(textarea)',\n exportAs: 'auiAutocomplete',\n inputs: ['class:auiAutocompleteClass'],\n host: {\n autocomplete: 'off',\n },\n})\nexport class CustomAutoCompleteDirective extends AutoCompleteDirective {\n @Input('auiAutocompleteInnerSelector')\n innerSelector = 'input,textarea';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-autocomplete-placeholder',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class AutocompletePlaceholderComponent {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\nimport {\n map,\n publishReplay,\n refCount,\n switchMap,\n take,\n tap,\n} from 'rxjs/operators';\n\nimport { Bem, buildBem, coerceAttrBoolean } from '../../utils';\nimport { AutocompleteComponent } from '../autocomplete.component';\n\n@Component({\n selector: 'aui-suggestion',\n templateUrl: './suggestion.component.html',\n styleUrls: ['./suggestion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SuggestionComponent {\n bem: Bem = buildBem('aui-suggestion');\n\n private _disabled = false;\n private _value: string;\n private readonly value$$ = new BehaviorSubject<string>(this.value);\n\n @Input()\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n this.value$$.next(val);\n }\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n }\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef;\n\n selected = false;\n visible = true;\n focused = false;\n\n private readonly autocomplete: AutocompleteComponent;\n selected$: Observable<boolean>;\n visible$: Observable<boolean>;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Inject(forwardRef(() => AutocompleteComponent))\n autocomplete: any, // FIXME: workaround temporarily\n ) {\n this.autocomplete = autocomplete;\n this.selected$ = combineLatest([\n this.autocomplete.directive$$.pipe(\n switchMap(directive => directive.inputValue$),\n ),\n this.value$$,\n ]).pipe(\n map(([inputValue, selfValue]) => inputValue === selfValue),\n tap(selected => {\n this.selected = selected;\n }),\n publishReplay(1),\n refCount(),\n );\n this.visible$ = combineLatest([\n this.autocomplete.directive$$.pipe(\n switchMap(directive => directive.filterFn$),\n ),\n this.autocomplete.directive$$.pipe(\n switchMap(directive => directive.inputValue$),\n ),\n this.value$$,\n ]).pipe(\n map(([filterFn, filterString, suggestion]) =>\n filterFn(filterString, suggestion),\n ),\n tap(visible => {\n this.visible = visible;\n }),\n publishReplay(1),\n refCount(),\n );\n }\n\n onClick() {\n if (this.disabled) {\n return;\n }\n this.autocomplete.directive$$.pipe(take(1)).subscribe(directive => {\n directive.onSuggestionClick(this.value);\n });\n }\n\n focus() {\n this.focused = true;\n this.cdr.markForCheck();\n }\n\n blur() {\n this.focused = false;\n this.cdr.markForCheck();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable, ReplaySubject, combineLatest } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n map,\n publishReplay,\n refCount,\n startWith,\n switchMap,\n tap,\n} from 'rxjs/operators';\n\nimport { AutocompletePlaceholderComponent } from './autocomplete-placeholder.component';\nimport { AutoCompleteDirective } from './autocomplete.directive';\nimport { SuggestionComponent } from './suggestion/suggestion.component';\n\n@Component({\n selector: 'aui-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class AutocompleteComponent implements AfterContentInit {\n @ContentChildren(SuggestionComponent, { descendants: true })\n suggestions: QueryList<SuggestionComponent>;\n\n @ContentChildren(AutocompletePlaceholderComponent)\n placeholder: QueryList<AutocompletePlaceholderComponent>;\n\n @ViewChild(TemplateRef, { static: true })\n template: TemplateRef<any>;\n\n @ViewChild('suggestionListRef', { static: true })\n suggestionListRef: ElementRef;\n\n hasVisibleSuggestion$: Observable<boolean>;\n hasContent$: Observable<boolean>;\n\n directive$$ = new ReplaySubject<AutoCompleteDirective>(1);\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.hasVisibleSuggestion$ = this.suggestions.changes.pipe(\n startWith(this.suggestions),\n switchMap((suggestions: QueryList<SuggestionComponent>) =>\n combineLatest(suggestions.map(suggestion => suggestion.visible$)),\n ),\n map(visible => visible.some(value => value)),\n distinctUntilChanged(),\n debounceTime(0),\n tap(() => {\n this.cdr.markForCheck();\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.hasContent$ = combineLatest([\n this.hasVisibleSuggestion$,\n this.placeholder.changes.pipe(\n startWith(this.placeholder),\n map(\n (list: QueryList<AutocompletePlaceholderComponent>) => !!list.length,\n ),\n ),\n ]).pipe(\n map(\n ([hasVisibleSuggestion, hasPlaceholder]) =>\n hasVisibleSuggestion || hasPlaceholder,\n ),\n );\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport {\n map,\n publishReplay,\n refCount,\n startWith,\n switchMap,\n} from 'rxjs/operators';\n\nimport { SuggestionComponent } from '../suggestion/suggestion.component';\n\n@Component({\n selector: 'aui-suggestion-group',\n templateUrl: './suggestion-group.component.html',\n styleUrls: ['./suggestion-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SuggestionGroupComponent implements AfterContentInit {\n @ContentChildren(forwardRef(() => SuggestionComponent))\n suggestions: QueryList<SuggestionComponent>;\n\n hasVisibleSuggestion$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasVisibleSuggestion$ = this.suggestions.changes.pipe(\n startWith(this.suggestions),\n switchMap((options: QueryList<SuggestionComponent>) =>\n options.length > 0\n ? combineLatest(options.map(node => node.visible$))\n : of([false]),\n ),\n map(visible => visible.some(value => value)),\n publishReplay(1),\n refCount(),\n );\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiSuggestionGroupTitle]',\n exportAs: 'auiSuggestionGroupTitle',\n host: {\n '[class.aui-suggestion-group__title]': 'true',\n },\n})\nexport class SuggestionGroupTitleDirective {}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipModule } from '../tooltip/public-api';\n\nimport { AutocompletePlaceholderComponent } from './autocomplete-placeholder.component';\nimport { AutocompleteComponent } from './autocomplete.component';\nimport {\n AutoCompleteDirective,\n CustomAutoCompleteDirective,\n} from './autocomplete.directive';\nimport { SuggestionGroupTitleDirective } from './helper-directives';\nimport { SuggestionGroupComponent } from './suggestion-group/suggestion-group.component';\nimport { SuggestionComponent } from './suggestion/suggestion.component';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, TooltipModule],\n declarations: [\n AutoCompleteDirective,\n CustomAutoCompleteDirective,\n AutocompleteComponent,\n SuggestionComponent,\n AutocompletePlaceholderComponent,\n SuggestionGroupComponent,\n SuggestionGroupTitleDirective,\n ],\n exports: [\n AutoCompleteDirective,\n CustomAutoCompleteDirective,\n AutocompleteComponent,\n SuggestionComponent,\n AutocompletePlaceholderComponent,\n SuggestionGroupComponent,\n SuggestionGroupTitleDirective,\n ],\n})\nexport class AutocompleteModule {}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {\n EMPTY,\n Subject,\n Subscription,\n animationFrameScheduler,\n of,\n} from 'rxjs';\nimport {\n debounceTime,\n endWith,\n map,\n observeOn,\n repeat,\n startWith,\n switchMap,\n takeUntil,\n takeWhile,\n tap,\n} from 'rxjs/operators';\n\nimport { TocContentDirective } from './toc-content.directive';\n\n@Directive({\n selector: '[auiTocContainer]',\n exportAs: 'auiTocContainer',\n})\nexport class TocContainerDirective implements AfterContentInit, OnDestroy {\n @Output()\n activedChange = new EventEmitter<string>();\n\n private _contents: TocContentDirective[] = [];\n private readonly _scrollTop$ = new Subject<number>();\n private readonly _scrollTo$ = new Subject<string>();\n private readonly _onDestroy$ = new Subject<void>();\n private readonly _subs: Subscription[] = [];\n private _nativeElement: HTMLElement;\n\n get scrollTop(): number {\n return this._nativeElement.scrollTop || 0;\n }\n\n set scrollTop(value: number) {\n this._nativeElement.scrollTop = value;\n }\n\n get isScrollEnd() {\n return (\n this._nativeElement.scrollHeight - this._nativeElement.scrollTop ===\n this._nativeElement.clientHeight\n );\n }\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private readonly cdr: ChangeDetectorRef,\n ) {\n this._nativeElement = elementRef.nativeElement;\n }\n\n getOffsetTop(element: HTMLElement): number {\n if (element.parentElement === this._nativeElement) {\n return element.offsetTop;\n }\n return element.offsetTop + this.getOffsetTop(element.parentElement);\n }\n\n private getMinContent(scrollTop: number) {\n return (minContent: TocContentDirective, content: TocContentDirective) => {\n if (\n Math.abs(scrollTop - this.getOffsetTop(content.nativeElement)) <\n Math.abs(scrollTop - this.getOffsetTop(minContent.nativeElement))\n ) {\n minContent = content;\n }\n return minContent;\n };\n }\n\n private getMaxContent(\n maxContent: TocContentDirective,\n content: TocContentDirective,\n ) {\n if (\n this.getOffsetTop(content.nativeElement) >\n this.getOffsetTop(maxContent.nativeElement)\n ) {\n maxContent = content;\n }\n return maxContent;\n }\n\n @HostListener('scroll')\n onScroll() {\n this._scrollTop$.next(this.scrollTop);\n }\n\n ngAfterContentInit() {\n const actived$ = this._scrollTop$\n .pipe(\n startWith(this.scrollTop),\n debounceTime(200),\n map(scrollTop =>\n this._contents.reduce(\n this.isScrollEnd\n ? this.getMaxContent.bind(this)\n : this.getMinContent(scrollTop),\n ),\n ),\n map(actived => actived.auiTocContent),\n )\n .pipe(\n tap(actived => {\n this._contents.forEach(content => {\n content.active = actived === content.auiTocContent;\n });\n this.cdr.detectChanges();\n }),\n );\n\n const scrollTween$ = this._scrollTo$.pipe(\n switchMap(name => {\n const target = this._contents.find(\n content => content.auiTocContent === name,\n );\n\n if (!target) {\n return EMPTY;\n }\n const destination = this.getOffsetTop(target.nativeElement);\n\n const start = performance.now();\n const source = this.scrollTop;\n const duration = 500;\n\n return of(0).pipe(\n observeOn(animationFrameScheduler),\n repeat(),\n map(() => (performance.now() - start) / duration),\n takeWhile(t => t < 1),\n endWith(1),\n map(t => t * t * t),\n map(t => source * (1 - t) + destination * t),\n );\n }),\n takeUntil(this._onDestroy$),\n );\n\n this._subs.push(\n actived$.subscribe(this.activedChange),\n scrollTween$.subscribe(tweenValue => {\n this.scrollTop = tweenValue;\n }),\n );\n }\n\n ngOnDestroy() {\n this._subs.forEach(sub => sub.unsubscribe());\n this._onDestroy$.next();\n }\n\n scrollTo(content: string | string[]) {\n if (Array.isArray(content)) {\n this._scrollTo$.next(content[0]);\n } else {\n this._scrollTo$.next(content);\n }\n }\n\n registerContent(tocContent: TocContentDirective) {\n this._contents = [...this._contents, tocContent];\n }\n\n deregisterContent(tocContent: TocContentDirective) {\n this._contents = this._contents.filter(\n content => content.auiTocContent !== tocContent.auiTocContent,\n );\n }\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\n\nimport { TocContainerDirective } from './toc-container.directive';\n\n@Directive({\n selector: '[auiTocContent]',\n})\nexport class TocContentDirective implements OnInit, OnDestroy {\n @HostBinding('class.isActive')\n active: boolean;\n\n @Input()\n auiTocContent: string;\n\n nativeElement: HTMLElement;\n\n constructor(\n elemRef: ElementRef<HTMLElement>,\n @Optional() private readonly containerDirective: TocContainerDirective,\n ) {\n this.nativeElement = elemRef.nativeElement;\n }\n\n ngOnInit(): void {\n if (this.containerDirective) {\n this.containerDirective.registerContent(this);\n }\n }\n\n ngOnDestroy(): void {\n if (this.containerDirective) {\n this.containerDirective.deregisterContent(this);\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TocContainerDirective } from './toc-container.directive';\n\n@Directive({\n selector: '[auiTocLink]',\n})\nexport class TocLinkDirective implements OnInit, OnDestroy {\n @HostBinding('class.isActive')\n active: boolean;\n\n @Input()\n for: TocContainerDirective;\n\n @Input()\n auiTocLink: string | string[];\n\n private readonly _subs: Subscription[] = [];\n\n @HostListener('click')\n onClick() {\n this.for.scrollTo(this.auiTocLink);\n }\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n if (!this.for || !this.auiTocLink) {\n return;\n }\n this._subs.push(\n this.for.activedChange.subscribe((actived: string) => {\n if (Array.isArray(this.auiTocLink)) {\n this.active = this.auiTocLink.includes(actived);\n } else {\n this.active = actived === this.auiTocLink;\n }\n this.cdr.detectChanges();\n }),\n );\n }\n\n ngOnDestroy() {\n this._subs.forEach(sub => sub.unsubscribe());\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TocContainerDirective } from './toc-container.directive';\nimport { TocContentDirective } from './toc-content.directive';\nimport { TocLinkDirective } from './toc-link.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TocContentDirective, TocContainerDirective, TocLinkDirective],\n exports: [TocContentDirective, TocContainerDirective, TocLinkDirective],\n})\nexport class TableOfContentsModule {}\n","import { ValueOf } from '../types';\n\nexport interface Status {\n type?: StatusType;\n class?: string;\n scale: number;\n [key: string]: unknown;\n}\n\nexport const StatusType = {\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Error: 'error',\n Info: 'info',\n Pending: 'pending',\n} as const;\n\nexport type StatusType = ValueOf<typeof StatusType>;\n\nexport const StatusBarSize = {\n Medium: 'medium',\n Small: 'small',\n} as const;\n\nexport type StatusBarSize = ValueOf<typeof StatusBarSize>;\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { Status, StatusBarSize } from './status-bar.types';\n\n@Component({\n selector: 'aui-status-bar',\n templateUrl: './status-bar.component.html',\n styleUrls: ['./status-bar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class StatusBarComponent {\n bem: Bem = buildBem('aui-status-bar');\n\n @Input()\n status: Status[] = [];\n\n @Input()\n size: StatusBarSize = StatusBarSize.Medium;\n\n @Input()\n template: TemplateRef<any>;\n\n @Output()\n statusClick = new EventEmitter<Status>();\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipModule } from '../tooltip/public-api';\n\nimport { StatusBarComponent } from './status-bar.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StatusBarComponent],\n exports: [StatusBarComponent],\n})\nexport class StatusBarModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CommonFormControl } from '../form/public-api';\n\n@Component({\n selector: 'aui-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerComponent),\n multi: true,\n },\n ],\n})\nexport class ColorPickerComponent extends CommonFormControl<string> {\n writeValue(val: string) {\n this.value$$.next(val);\n }\n\n onInput(event: Event) {\n this.emitValueChange((event.target as HTMLInputElement).value);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ColorPickerComponent } from './color-picker.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [ColorPickerComponent],\n exports: [ColorPickerComponent],\n})\nexport class ColorPickerModule {}\n","import { CdkAccordion } from '@angular/cdk/accordion';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n Optional,\n SkipSelf,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class AccordionComponent extends CdkAccordion {\n @Input()\n background = true;\n\n @HostBinding('attr.accordion-depth')\n depth: number;\n\n constructor(\n @SkipSelf()\n @Optional()\n public parent: AccordionComponent,\n ) {\n super();\n this.depth = parent ? parent.depth + 1 : 0;\n }\n}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CdkAccordionItem } from '@angular/cdk/accordion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n Input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { filter, startWith, take } from 'rxjs/operators';\n\nimport { AccordionComponent } from '../accordion.component';\n\n@Directive({\n selector: '[auiAccordionItemHeader]',\n})\nexport class AccordionItemHeaderDirective {}\n@Directive({\n selector: '[auiAccordionContent]',\n})\nexport class AccordionItemContentDirective {}\n@Component({\n selector: 'aui-accordion-item',\n templateUrl: 'accordion-item.component.html',\n styleUrls: ['accordion-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n animations: [\n trigger('expand', [\n state('*', style({ height: 0 })),\n state('expanded', style({ height: '*' })),\n transition('* <=> expanded', [animate('0.1s ease-in-out')]),\n ]),\n ],\n viewProviders: [AccordionItemComponent],\n})\nexport class AccordionItemComponent\n extends CdkAccordionItem\n implements AfterContentInit {\n @Input()\n background = true;\n\n @ContentChild(AccordionItemContentDirective, {\n read: TemplateRef,\n static: true,\n })\n _lazyContentTpl: TemplateRef<unknown>;\n\n lazyContentTpl: TemplateRef<unknown>;\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n accordion: AccordionComponent,\n cdr: ChangeDetectorRef,\n uniqueSelectionDispatcher: UniqueSelectionDispatcher,\n ) {\n super(accordion, cdr, uniqueSelectionDispatcher);\n }\n\n ngAfterContentInit() {\n if (this._lazyContentTpl) {\n // Render the content as soon as the accordion becomes open.\n this.opened\n .pipe(\n startWith(null as void),\n filter(() => !!this.expanded),\n take(1),\n )\n .subscribe(() => {\n this.lazyContentTpl = this._lazyContentTpl;\n });\n }\n }\n}\n","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button/public-api';\nimport { IconModule } from '../icon/public-api';\n\nimport {\n AccordionItemComponent,\n AccordionItemContentDirective,\n AccordionItemHeaderDirective,\n} from './accordion-item/accordion-item.component';\nimport { AccordionComponent } from './accordion.component';\n\n@NgModule({\n declarations: [\n AccordionComponent,\n AccordionItemComponent,\n AccordionItemHeaderDirective,\n AccordionItemContentDirective,\n ],\n imports: [CommonModule, CdkAccordionModule, IconModule, ButtonModule],\n exports: [\n AccordionComponent,\n AccordionItemComponent,\n AccordionItemHeaderDirective,\n AccordionItemContentDirective,\n ],\n providers: [],\n})\nexport class AccordionModule {}\n","import { ListRange } from '@angular/cdk/collections';\nimport {\n CdkVirtualScrollViewport,\n VirtualScrollStrategy,\n} from '@angular/cdk/scrolling';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Injectable()\nexport class FixedSizeTableVirtualScrollStrategy\n implements VirtualScrollStrategy {\n private _rowHeight = 42;\n private _headerHeight = 42;\n private _bufferSize = 10;\n private readonly _indexChange = new Subject<number>();\n viewport: CdkVirtualScrollViewport;\n\n scrolledIndexChange = this._indexChange.pipe(distinctUntilChanged());\n stickyChange = new Subject<number>();\n\n renderedRangeStream = new BehaviorSubject<ListRange>({ start: 0, end: 0 });\n\n get dataLength(): number {\n return this._dataLength;\n }\n\n set dataLength(value: number) {\n if (value !== this._dataLength) {\n this._dataLength = value;\n this.onDataLengthChanged();\n }\n }\n\n private _dataLength = 0;\n\n attach(viewport: CdkVirtualScrollViewport): void {\n this.viewport = viewport;\n this.viewport.renderedRangeStream.subscribe(this.renderedRangeStream);\n this.onDataLengthChanged();\n }\n\n detach(): void {\n this._indexChange.complete();\n this.renderedRangeStream.complete();\n this.stickyChange.complete();\n }\n\n onContentScrolled(): void {\n this._updateContent();\n }\n\n onDataLengthChanged(): void {\n if (this.viewport) {\n this.viewport.setTotalContentSize(this._rowHeight * this.dataLength);\n }\n this._updateContent();\n }\n\n onContentRendered(): void {\n // no-op\n }\n\n onRenderedOffsetChanged(): void {\n // no-op\n }\n\n scrollToIndex(index: number, behavior: ScrollBehavior): void {\n if (!this.viewport || !this._rowHeight) {\n return;\n }\n this.viewport.scrollToOffset(\n (index - 1) * this._rowHeight + this._headerHeight,\n behavior,\n );\n }\n\n setConfig(rowHeight: number, headerHeight: number, bufferSize: number) {\n this._rowHeight = rowHeight;\n this._headerHeight = headerHeight;\n this._bufferSize = bufferSize;\n this.onDataLengthChanged();\n }\n\n private _updateContent() {\n if (!this.viewport) {\n return;\n }\n const newIndex =\n Math.round(\n (this.viewport.measureScrollOffset() - this._headerHeight) /\n this._rowHeight,\n ) + 1;\n const start = Math.max(0, newIndex - this._bufferSize);\n const end = Math.min(\n this._dataLength,\n newIndex +\n Math.ceil(this.viewport.getViewportSize() / this._rowHeight) +\n this._bufferSize,\n );\n const renderedOffset = start * this._rowHeight;\n this.viewport.setRenderedContentOffset(renderedOffset);\n this.viewport.setRenderedRange({ start, end });\n this.stickyChange.next(renderedOffset);\n this._indexChange.next(newIndex);\n }\n}\n","import { VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';\nimport { CdkHeaderRowDef } from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ContentChild,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n forwardRef,\n} from '@angular/core';\nimport { BehaviorSubject, Subject, combineLatest } from 'rxjs';\nimport { filter, map, takeUntil, tap } from 'rxjs/operators';\n\nimport { TableComponent } from '../table/public-api';\n\nimport { FixedSizeTableVirtualScrollStrategy } from './fixed-size-table-virtual-scroll-strategy';\n\nexport function _tableVirtualScrollDirectiveStrategyFactory(\n tableDir: FixedSizeTableVirtualScrollDirective,\n) {\n return tableDir.scrollStrategy;\n}\n\nconst stickyHeaderSelector = '.aui-table__header-row.aui-table-sticky';\n\nconst defaults = {\n rowHeight: 42,\n headerHeight: 42,\n buffer: 10,\n};\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: 'aui-virtual-scroll-viewport[fixedSize]',\n exportAs: 'viewPort',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _tableVirtualScrollDirectiveStrategyFactory,\n deps: [forwardRef(() => FixedSizeTableVirtualScrollDirective)],\n },\n ],\n})\nexport class FixedSizeTableVirtualScrollDirective<T = unknown>\n implements AfterContentInit, OnChanges, OnDestroy {\n private readonly onDestroy$ = new Subject();\n private readonly _dataSource$$ = new BehaviorSubject<T[]>([]);\n\n @Input()\n rowHeight: number = defaults.rowHeight;\n\n @Input()\n headerHeight: number = defaults.headerHeight;\n\n @Input()\n buffer: number = defaults.buffer;\n\n @Input()\n set dataSource(dataSource: T[]) {\n this._dataSource$$.next(dataSource);\n this.scrollStrategy.dataLength = dataSource?.length;\n }\n\n @ContentChild(TableComponent, { static: false })\n table: TableComponent<any>;\n\n scrollStrategy = new FixedSizeTableVirtualScrollStrategy();\n\n private stickyPositions: Map<HTMLElement, number>;\n\n ngAfterContentInit() {\n this.scrollStrategy.stickyChange\n .pipe(\n filter(() => this.isStickyEnabled()),\n tap(() => {\n if (!this.stickyPositions) {\n this.initStickyPositions();\n }\n }),\n takeUntil(this.onDestroy$),\n )\n .subscribe(stickyOffset => {\n this.setSticky(stickyOffset);\n });\n combineLatest([this.scrollStrategy.renderedRangeStream, this._dataSource$$])\n .pipe(\n map(([{ start, end }, dataSource]) =>\n typeof start !== 'number' || typeof end !== 'number'\n ? dataSource\n : dataSource?.slice(start, end),\n ),\n takeUntil(this.onDestroy$),\n )\n .subscribe(data => {\n this.table.dataSource = data;\n });\n }\n\n ngOnChanges({ rowHeight, headerHeight, buffer }: SimpleChanges) {\n if (rowHeight || headerHeight || buffer) {\n this.scrollStrategy.setConfig(\n this.rowHeight,\n this.headerHeight,\n this.buffer,\n );\n }\n }\n\n ngOnDestroy() {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n\n private isStickyEnabled(): boolean {\n return (\n !!this.scrollStrategy.viewport &&\n // @ts-expect-error\n (this.table._headerRowDefs as CdkHeaderRowDef[])\n .map(def => def.sticky)\n .reduce((prev, curr) => prev && curr, true)\n );\n }\n\n private initStickyPositions() {\n this.stickyPositions = new Map<HTMLElement, number>();\n this.scrollStrategy.viewport.elementRef.nativeElement\n .querySelectorAll(stickyHeaderSelector)\n .forEach(el => {\n const parent = el.parentElement;\n if (!this.stickyPositions.has(parent)) {\n this.stickyPositions.set(parent, parent.offsetTop);\n }\n });\n }\n\n private setSticky(offset: number) {\n this.scrollStrategy.viewport.elementRef.nativeElement\n .querySelectorAll(stickyHeaderSelector)\n .forEach((el: HTMLElement) => {\n const parent = el.parentElement;\n let baseOffset = 0;\n if (this.stickyPositions.has(parent)) {\n baseOffset = this.stickyPositions.get(parent);\n }\n el.style.top = `${baseOffset - offset}px`;\n });\n }\n}\n","import {\n CdkFixedSizeVirtualScroll,\n VIRTUAL_SCROLL_STRATEGY,\n _fixedSizeVirtualScrollStrategyFactory,\n} from '@angular/cdk/scrolling';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: 'aui-virtual-scroll-viewport[itemSize]',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => FixedSizeVirtualScrollDirective)],\n },\n ],\n})\nexport class FixedSizeVirtualScrollDirective extends CdkFixedSizeVirtualScroll {}\n","import { DataSource } from '@angular/cdk/collections';\nimport {\n CdkVirtualForOf,\n CdkVirtualForOfContext,\n} from '@angular/cdk/scrolling';\nimport {\n Directive,\n Input,\n NgIterable,\n TemplateRef,\n TrackByFunction,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Directive({\n selector: '[auiVirtualFor][auiVirtualForOf]',\n})\nexport class VirtualForOfDirective<T> extends CdkVirtualForOf<T> {\n @Input()\n set auiVirtualForOf(\n // tslint:disable-next-line: max-union-size\n value: DataSource<T> | Observable<T[]> | NgIterable<T> | null | undefined,\n ) {\n this.cdkVirtualForOf = value;\n }\n\n @Input()\n set auiVirtualForTrackBy(fn: TrackByFunction<T> | undefined) {\n this.cdkVirtualForTrackBy = fn;\n }\n\n @Input()\n set auiVirtualForTemplate(value: TemplateRef<CdkVirtualForOfContext<T>>) {\n this.cdkVirtualForTemplate = value;\n }\n\n @Input()\n set auiVirtualForTemplateCacheSize(size: number) {\n this.cdkVirtualForTemplateCacheSize = size;\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-virtual-scroll-viewport',\n templateUrl: 'virtual-scroll-viewport.component.html',\n styleUrls: ['virtual-scroll-viewport.component.scss'],\n host: {\n class: 'aui-virtual-scroll-viewport',\n '[class.aui-virtual-scroll-orientation-horizontal]':\n 'orientation === \"horizontal\"',\n '[class.aui-virtual-scroll-orientation-vertical]':\n 'orientation !== \"horizontal\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: CdkVirtualScrollViewport,\n useExisting: VirtualScrollViewportComponent,\n },\n ],\n})\nexport class VirtualScrollViewportComponent extends CdkVirtualScrollViewport {}\n","import { NgModule } from '@angular/core';\n\nimport { FixedSizeTableVirtualScrollDirective } from './fixed-size-table-virtual-scroll.directive';\nimport { FixedSizeVirtualScrollDirective } from './fixed-size-virtual-scroll.directive';\nimport { VirtualForOfDirective } from './virtual-for-of.directive';\nimport { VirtualScrollViewportComponent } from './virtual-scroll-viewport.component';\n\nconst EXPORTABLE_COMPONENTS = [VirtualScrollViewportComponent];\nconst EXPORTABLE_DIRECTIVES = [\n FixedSizeTableVirtualScrollDirective,\n FixedSizeVirtualScrollDirective,\n VirtualForOfDirective,\n];\n\nconst EXPORTABLE = [...EXPORTABLE_COMPONENTS, ...EXPORTABLE_DIRECTIVES];\n\n@NgModule({\n declarations: EXPORTABLE,\n exports: EXPORTABLE,\n})\nexport class ScrollingModule {}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ApplicationRef,\n ComponentFactoryResolver,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n} from '@angular/core';\nimport { Subject, fromEvent, merge } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { observeResizeOn } from '../utils';\n\nimport { AnchorComponent } from './anchor.component';\n\nlet uid = 0;\n\n@Directive()\n// tslint:disable-next-line: directive-class-suffix\nexport class AnchorDirectiveChild {\n readonly parent: AnchorDirective;\n\n constructor(protected injector: Injector) {\n this.parent = this.injector.get(AnchorDirective);\n }\n}\n\n@Directive({\n selector: '[auiAnchorLabel]',\n})\nexport class AnchorLabelDirective\n extends AnchorDirectiveChild\n implements OnInit, AfterContentChecked {\n @HostBinding('class.aui-anchor__label')\n @Input('auiAnchorLabel')\n get label() {\n return this._label || this.elRef.nativeElement.textContent;\n }\n\n set label(value) {\n this._label = value;\n this.labelChange.emit(value);\n }\n\n private _label: string | TemplateRef<unknown>;\n\n @Input('auiAnchorLabelContext')\n labelContext: unknown;\n\n get target() {\n return this.elRef.nativeElement;\n }\n\n @Input()\n set id(id) {\n if (this.parent.injectId && !this.id) {\n this.elRef.nativeElement.id = id;\n }\n this._id = id;\n }\n\n get id() {\n return this._id;\n }\n\n private _id: string = this.elRef.nativeElement.id;\n\n @Input()\n set level(value: number | '') {\n this._level = value === '' ? 1 : value;\n }\n\n get level() {\n return this._level;\n }\n\n private _level = 0;\n\n @Output()\n labelChange = new EventEmitter<string | TemplateRef<unknown>>();\n\n constructor(\n protected injector: Injector,\n public readonly elRef: ElementRef<HTMLElement>,\n ) {\n super(injector);\n }\n\n ngOnInit() {\n if (!this.id) {\n this.id = 'anchor-uid-' + uid++;\n }\n }\n\n ngAfterContentChecked() {\n if (!this._label) {\n this.labelChange.emit(this.label);\n }\n }\n}\n\n@Directive({\n selector: '[auiAnchor]',\n})\nexport class AnchorDirective implements AfterContentInit, OnDestroy {\n @Input()\n auiAnchor: HTMLElement | '';\n\n @Input()\n adaptPosition = true;\n\n @Input()\n padding = 20;\n\n @Input()\n minTop: number;\n\n @Input()\n injectId = window === window.top;\n\n @ContentChildren(AnchorLabelDirective, { descendants: true })\n anchorLabels: QueryList<AnchorLabelDirective>;\n\n get containerEl() {\n return this.elRef.nativeElement;\n }\n\n get scrollableEl() {\n const el = this.containerEl;\n return (\n this.auiAnchor ||\n this.cdkScrollable?.getElementRef().nativeElement ||\n (el.scrollHeight > el.offsetHeight ? el : window)\n );\n }\n\n anchorPortal: ComponentPortal<AnchorComponent>;\n\n destroy$$ = new Subject<void>();\n\n constructor(\n private readonly cfr: ComponentFactoryResolver,\n private readonly appRef: ApplicationRef,\n private readonly injector: Injector,\n public readonly elRef: ElementRef<HTMLElement>,\n @Optional() private readonly cdkScrollable: CdkScrollable,\n ) {}\n\n ngAfterContentInit() {\n const containerEl = this.containerEl;\n this.anchorPortal = new ComponentPortal(AnchorComponent);\n const portalOutlet = new DomPortalOutlet(\n document.body,\n this.cfr,\n this.appRef,\n this.injector,\n );\n const anchorComponentRef = this.anchorPortal.attach(portalOutlet);\n const anchorEl = anchorComponentRef.injector.get(ElementRef)\n .nativeElement as HTMLElement;\n\n requestAnimationFrame(() =>\n this.adaptAnchorPosition(containerEl, anchorEl),\n );\n\n this.anchorLabels.changes\n .pipe(startWith(this.anchorLabels), takeUntil(this.destroy$$))\n .subscribe((anchorLabels: QueryList<AnchorLabelDirective>) => {\n Object.assign(anchorComponentRef.instance, {\n items: anchorLabels.toArray(),\n });\n });\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n this.anchorPortal.detach();\n }\n\n adaptAnchorPosition(containerEl: HTMLElement, anchorEl: HTMLElement) {\n const pageContentEl = containerEl.closest('.aui-page__content');\n const anchorContentEl = anchorEl.querySelector('.aui-anchor');\n\n merge(observeResizeOn(containerEl), fromEvent(window, 'scroll'))\n .pipe(startWith(null as void), takeUntil(this.destroy$$))\n .subscribe(() => {\n const containerRect = containerEl.getBoundingClientRect();\n Object.assign(anchorEl.style, {\n display: !containerRect.width || !containerRect.height ? 'none' : '',\n left:\n containerRect.right -\n anchorContentEl.getBoundingClientRect().width +\n 'px',\n top:\n Math.max(\n containerRect.top,\n (this.minTop ??\n (pageContentEl &&\n +getComputedStyle(pageContentEl).paddingTop.slice(0, -2))) ||\n 0,\n ) + 'px',\n });\n });\n\n if (this.adaptPosition) {\n observeResizeOn(anchorContentEl)\n .pipe(takeUntil(this.destroy$$))\n .subscribe(el => {\n const width = el.getBoundingClientRect().width;\n const padding = width + this.padding;\n containerEl.style.paddingRight = padding + 'px';\n });\n }\n }\n}\n","import { last } from '../utils';\n\nimport { AnchorItem, AnchorTreeItem } from './types';\n\nexport const getAnchorTreeItems = (items: AnchorItem[], level = 0) => {\n const treeItems: AnchorTreeItem[] = [];\n const subItems: AnchorItem[] = [];\n for (const item of items) {\n if (item.level === level) {\n const lastTreeItem = last(treeItems);\n if (lastTreeItem) {\n const children = getAnchorTreeItems(subItems, level + 1);\n if (children.length) {\n lastTreeItem.children = children;\n }\n }\n treeItems.push(item);\n subItems.length = 0;\n } else {\n subItems.push(item);\n }\n }\n if (subItems.length) {\n last(treeItems).children = getAnchorTreeItems(subItems, level + 1);\n }\n return treeItems;\n};\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { EMPTY, Subject, combineLatest, fromEvent, of } from 'rxjs';\nimport { debounceTime, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { buildBem, isTemplateRef, last } from '../utils';\n\nimport { AnchorDirectiveChild } from './anchor.directive';\nimport { AnchorItem, AnchorTreeItem } from './types';\nimport { getAnchorTreeItems } from './utils';\n\nconst bem = buildBem('aui-anchor');\n\n@Component({\n selector: 'aui-anchor-tree',\n templateUrl: 'anchor-tree.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AnchorTreeComponent\n extends AnchorDirectiveChild\n implements OnDestroy {\n @Input()\n set treeItems(treeItems) {\n this._treeItems = treeItems;\n this.watchLabelsChange();\n }\n\n get treeItems() {\n return this._treeItems;\n }\n\n private _treeItems: AnchorTreeItem[];\n\n @Input()\n activeId: string;\n\n @Output()\n activeIdChange = new EventEmitter<string>();\n\n bem = bem;\n\n isTemplateRef = isTemplateRef;\n\n private readonly depose$$ = new Subject<void>();\n\n watchLabelsChange() {\n this.depose$$.next();\n const cdr = this.injector.get(ChangeDetectorRef);\n // FIXME: Is there any better way to achieve this?\n combineLatest(\n this.treeItems.map(({ labelChange }) => labelChange).filter(Boolean),\n )\n .pipe(debounceTime(0), takeUntil(this.depose$$))\n .subscribe(() => cdr.markForCheck());\n }\n\n ngOnDestroy() {\n this.depose$$.next();\n this.depose$$.complete();\n }\n\n isActive(item: AnchorTreeItem): boolean {\n return (\n item.id === this.activeId ||\n item.children?.some(subItem => this.isActive(subItem))\n );\n }\n\n onItemClick(e: Event, item: AnchorTreeItem) {\n e.preventDefault();\n\n if (this.parent.injectId) {\n const selector = '#' + item.id;\n\n if (location.hash === selector) {\n return;\n }\n\n history.pushState(\n null,\n null,\n location.pathname + location.search + selector,\n );\n }\n\n item.target.scrollIntoView({ behavior: 'smooth' });\n\n this.activeIdChange.emit(item.id);\n }\n\n trackById(_index: number, item: AnchorItem) {\n return item.id;\n }\n}\n\n@Component({\n selector: 'aui-anchor',\n templateUrl: 'anchor.component.html',\n styleUrls: ['anchor.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AnchorComponent\n extends AnchorDirectiveChild\n implements AfterViewInit, OnDestroy {\n @Input()\n get items() {\n return this._items;\n }\n\n set items(items) {\n this._items = items;\n this.treeItems = getAnchorTreeItems(items);\n const anchorId =\n (this.parent.injectId && location.hash.slice(1)) || this.activeId;\n const activeItem =\n (anchorId && items.find(({ id }) => id === anchorId)) || items[0];\n if (activeItem) {\n if (this.parent.injectId && this.parent.scrollableEl !== window) {\n activeItem.target.scrollIntoView();\n }\n this.activeId = activeItem.id;\n }\n }\n\n private _items: AnchorItem[];\n\n @Input()\n treeItems: AnchorTreeItem[];\n\n @Input()\n activeId: string;\n\n bem = bem;\n\n private readonly destroy$$ = new Subject<void>();\n\n constructor(\n protected injector: Injector,\n private readonly cdr: ChangeDetectorRef,\n ) {\n super(injector);\n }\n\n ngAfterViewInit() {\n const { injectId, containerEl, scrollableEl } = this.parent;\n const pageContentEl = containerEl.closest('.aui-page__content');\n const paddingTop = pageContentEl\n ? +getComputedStyle(pageContentEl).paddingTop.slice(0, -2)\n : 0;\n fromEvent(scrollableEl, 'scroll')\n .pipe(\n debounceTime(100),\n switchMap(() => {\n const { scrollTop } =\n scrollableEl === window\n ? document.documentElement\n : (scrollableEl as HTMLElement);\n const activedItem =\n this.items.find(\n ({ target }) =>\n target.offsetTop +\n target.offsetHeight / 2 +\n ((scrollableEl === window &&\n (target.offsetParent as HTMLElement)?.offsetTop) ||\n 0) >\n scrollTop + paddingTop,\n ) || last(this.items);\n return activedItem ? of(activedItem) : EMPTY;\n }),\n tap(activedItem => {\n if (activedItem.id) {\n this.activeId = activedItem.id;\n this.cdr.markForCheck();\n }\n }),\n debounceTime(100),\n tap(activedItem => {\n if (injectId && activedItem.id) {\n history.replaceState(\n null,\n null,\n location.pathname + location.search + '#' + activedItem.id,\n );\n }\n }),\n takeUntil(this.destroy$$),\n )\n .subscribe();\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n}\n","import { ConfigType, Dayjs } from 'dayjs';\n\nexport enum Side {\n Left = 'left',\n Right = 'right',\n}\n\nexport type DisabledTimeFn = (\n date?: ConfigType,\n) => {\n hours: () => number[];\n minutes: (hour?: number) => number[];\n seconds: (hour?: number, minute?: number) => number[];\n};\n\nexport interface CalendarHeaderRange {\n start: Dayjs;\n end?: Dayjs;\n}\n\nexport enum DateNavRange {\n Decade = 'decade',\n Year = 'year',\n Month = 'month',\n}\n\nexport type DisabledDateFn = (date: Dayjs, type: DateNavRange) => boolean;\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AnchorComponent, AnchorTreeComponent } from './anchor.component';\nimport { AnchorDirective, AnchorLabelDirective } from './anchor.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n AnchorComponent,\n AnchorTreeComponent,\n AnchorDirective,\n AnchorLabelDirective,\n ],\n exports: [\n AnchorComponent,\n AnchorTreeComponent,\n AnchorDirective,\n AnchorLabelDirective,\n ],\n entryComponents: [AnchorComponent],\n})\nexport class AnchorModule {}\n","import { DateNavRange } from '../date-picker.type';\n\nexport const DATE = 'date';\nexport const DAY = 'day';\nexport const MONTH = 'month';\nexport const YEAR = 'year';\nexport const HOUR = 'hour';\nexport const MINUTE = 'minute';\nexport const SECOND = 'second';\n\n// 根据日期类型,分为年,月,日\nexport enum DatePickerType {\n Day = 'date',\n Month = 'month',\n Year = 'year',\n}\n\nexport const MONTH_PANEL_COLUMN_COUNT = 3;\nexport const MONTH_PANEL_ROW_COUNT = 4;\n\nexport const YEAR_PANEL_COLUMN_COUNT = 3;\nexport const YEAR_PANEL_ROW_COUNT = 4;\n\nexport const DAY_PANEL_COLUMN_COUNT = 7;\nexport const DAY_PANEL_ROW_COUNT = 6;\n\nexport const DATE_TYPES = [\n DatePickerType.Year,\n DatePickerType.Month,\n DatePickerType.Day,\n];\n\nexport const DATE_NAV_RANGES = [\n DateNavRange.Decade,\n DateNavRange.Year,\n DateNavRange.Month,\n];\n","import { Dayjs, UnitType } from 'dayjs';\n\nimport { TimePickerModel } from '../../time-picker/time-picker.type';\nimport { DateNavRange, DisabledDateFn } from '../date-picker.type';\n\nimport {\n DATE_NAV_RANGES,\n DATE_TYPES,\n DAY,\n DAY_PANEL_COLUMN_COUNT,\n DAY_PANEL_ROW_COUNT,\n DatePickerType,\n MONTH,\n MONTH_PANEL_COLUMN_COUNT,\n MONTH_PANEL_ROW_COUNT,\n YEAR,\n YEAR_PANEL_COLUMN_COUNT,\n YEAR_PANEL_ROW_COUNT,\n} from './constant';\n\nexport class DateCell {\n isBackground?: boolean; // 面板中非本月日期\n inRange?: boolean; // 在范围组件的范围内\n isRangeStart?: boolean; // 范围组件的范围开始日期\n isRangeEnd?: boolean; // 范围组件的范围结束日期\n isDisabled?: boolean;\n\n constructor(public value: Dayjs, public label: string | number) {}\n}\n\nexport function getDatePanelIterable(\n date: Dayjs,\n navRange: DateNavRange,\n weekStartDay: number,\n): Iterable<Dayjs> & Iterator<Dayjs> {\n let firstData: Dayjs;\n let counts = 0;\n date = date.clone();\n if (navRange === DateNavRange.Month) {\n firstData = date.date(-1).day(weekStartDay);\n if (firstData.isAfter(date)) {\n firstData = firstData.subtract(1, 'week');\n }\n counts = DAY_PANEL_COLUMN_COUNT * DAY_PANEL_ROW_COUNT;\n } else if (navRange === DateNavRange.Year) {\n firstData = date.month(0);\n counts = MONTH_PANEL_COLUMN_COUNT * MONTH_PANEL_ROW_COUNT;\n } else if (navRange === DateNavRange.Decade) {\n firstData = date.subtract(1, YEAR);\n counts = YEAR_PANEL_COLUMN_COUNT * YEAR_PANEL_ROW_COUNT;\n }\n let i = 0;\n return {\n [Symbol.iterator]() {\n return this;\n },\n next: () => {\n if (i < counts) {\n return {\n value: firstData.add(\n i++,\n navRange === DateNavRange.Month\n ? DAY\n : navRange === DateNavRange.Year\n ? MONTH\n : YEAR,\n ),\n done: false,\n };\n }\n return {\n done: true,\n value: null,\n };\n },\n };\n}\n\nexport function formatDate(type: DateNavRange, dateValue: Dayjs, date: Dayjs) {\n if (!dateValue) {\n return null;\n }\n const label =\n type === DateNavRange.Decade\n ? dateValue.year()\n : type === DateNavRange.Year\n ? dateValue.month() + 1\n : dateValue.date();\n const cell = new DateCell(dateValue, label);\n if (type === DateNavRange.Month && date.month() !== dateValue.month()) {\n cell.isBackground = true;\n }\n return cell;\n}\n\nexport function nextDatePickerType(\n current: DatePickerType,\n guard?: DatePickerType,\n) {\n const guardIndex = guard ? DATE_TYPES.indexOf(guard) : DATE_TYPES.length - 1;\n const currentIndex = DATE_TYPES.indexOf(current);\n if (currentIndex < guardIndex) {\n return DATE_TYPES[currentIndex + 1];\n }\n return current;\n}\n\nexport function nextNavRangeType(current: DateNavRange, guard?: DateNavRange) {\n const guardIndex = guard\n ? DATE_NAV_RANGES.indexOf(guard)\n : DATE_NAV_RANGES.length - 1;\n const currentIndex = DATE_NAV_RANGES.indexOf(current);\n if (currentIndex < guardIndex) {\n return DATE_NAV_RANGES[currentIndex + 1];\n }\n return current;\n}\n\nexport function updateDate(\n sourceValue: Dayjs,\n newValue: Dayjs,\n type: DatePickerType,\n) {\n const updateTypes = DATE_TYPES.slice(0, DATE_TYPES.indexOf(type) + 1);\n return updateTypes.reduce(\n (acc, curr) => acc.set(curr, newValue.get(curr)),\n sourceValue.clone(),\n );\n}\n\nexport function calcRangeValue(type: DateNavRange, date: Dayjs) {\n date = date.clone();\n return [DateNavRange.Month, DatePickerType.Year].includes(type)\n ? {\n start: date,\n }\n : {\n start: date.subtract(date.year() % 10, YEAR),\n end: date.add(9 - (date.year() % 10), YEAR),\n };\n}\n\nexport function sortDates(dates: Dayjs[]) {\n return [...(dates || [])].sort((a, b) =>\n a.isBefore(b) ? -1 : a.isSame(b) ? 0 : 1,\n );\n}\n\nexport function getNavRangeByType(type: DatePickerType) {\n return {\n [DatePickerType.Day]: DateNavRange.Month,\n [DatePickerType.Month]: DateNavRange.Year,\n [DatePickerType.Year]: DateNavRange.Decade,\n }[type];\n}\n\nexport function getTypeByNavRange(navRange: DateNavRange) {\n return {\n [DateNavRange.Month]: DatePickerType.Day,\n [DateNavRange.Year]: DatePickerType.Month,\n [DateNavRange.Decade]: DatePickerType.Year,\n }[navRange];\n}\n\nexport function getTimePickerModel(date: Dayjs): TimePickerModel {\n return date\n ? {\n second: date.second(),\n minute: date.minute(),\n hour: date.hour(),\n }\n : null;\n}\n\nexport function updateDateByTimeModel(date: Dayjs, time: TimePickerModel) {\n return time\n ? date.hour(time.hour).minute(time.minute).second(time.second)\n : date;\n}\n\nexport const composeDisabledDateFn = (...fns: DisabledDateFn[]) => (\n date: Dayjs,\n navRange: DateNavRange,\n) => !fns.filter(i => !!i).every(fn => !fn(date, navRange));\n\nexport function minDate(a: Dayjs, b: Dayjs, unit: UnitType = 'date') {\n return !a ? b : !b ? a : a.isBefore(b, unit) ? a : b;\n}\n\nexport function maxDate(a: Dayjs, b: Dayjs, unit: UnitType = 'date') {\n return !a ? b : !b ? a : a.isAfter(b, unit) ? a : b;\n}\n","import { ConfigType } from 'dayjs';\n\nimport { _isNumberValue } from '../utils';\n\nexport enum TimePickerControlType {\n Hour = 'hour',\n Minute = 'minute',\n Second = 'second',\n}\n\nexport interface TimePickerModel {\n hour?: number;\n minute?: number;\n second?: number;\n}\n\nexport type TimePickerDataLike = ConfigType | TimePickerModel;\n\nexport function isTimePickerModel(item: any): item is TimePickerModel {\n return (\n _isNumberValue(item?.second) &&\n _isNumberValue(item?.minute) &&\n _isNumberValue(item?.hour)\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { Dayjs } from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { updateDateByTimeModel } from '../date-picker/calendar/util';\nimport { CommonFormControl } from '../form/common-form';\nimport { TooltipDirective } from '../tooltip/public-api';\nimport { ComponentSize } from '../types';\n\nimport {\n TimePickerDataLike,\n TimePickerModel,\n isTimePickerModel,\n} from './time-picker.type';\n\ndayjs.extend(customParseFormat);\n\n@Component({\n selector: 'aui-time-picker',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimePickerComponent),\n multi: true,\n },\n ],\n})\nexport class TimePickerComponent extends CommonFormControl<\n TimePickerDataLike,\n TimePickerModel\n> {\n @Input()\n format = 'HH:mm:ss';\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n placeholder = '';\n\n @Input()\n clearable = true;\n\n @Input()\n showIcon = true;\n\n @Input()\n disableHours: () => number[];\n\n @Input()\n disableMinutes: (hour?: number) => number[];\n\n @Input()\n disableSeconds: (hour?: number, minute?: number) => number[];\n\n @Input()\n hourStep = 1;\n\n @Input()\n minuteStep = 1;\n\n @Input()\n secondStep = 1;\n\n @Input()\n footerTemplate: TemplateRef<void>;\n\n @Output()\n readonly open = new EventEmitter<void>();\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n @ViewChild('tooltipRef')\n tooltipRef: TooltipDirective;\n\n timeValue: Dayjs = null;\n timeFormatValue = '';\n\n writeValue(value: TimePickerDataLike) {\n super.writeValue(value);\n if (!value) {\n return this.setValue(null);\n }\n let result: Dayjs;\n if (isTimePickerModel(value)) {\n result = updateDateByTimeModel(dayjs(), value);\n } else {\n result = dayjs(value);\n this.submit(false, result);\n }\n this.setValue(result);\n }\n\n setValue(value: Dayjs) {\n this.timeValue = value;\n this.timeFormatValue = value ? dayjs(value).format(this.format) : null;\n this.cdr.markForCheck();\n }\n\n changeFromPanel(value: Dayjs) {\n this.timeFormatValue = value?.format(this.format);\n }\n\n changeFromInput(source: string) {\n if (!source) {\n this.timeValue = null;\n } else {\n const afterParsed = dayjs(source, this.format);\n if (afterParsed.isValid()) {\n this.timeValue = afterParsed;\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n this.openPanel();\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Escape':\n this.closePanel();\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n }\n\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n this.setValue(this.timeValue);\n this.submit();\n }\n\n openPanel() {\n if (this.tooltipRef.isCreated) {\n return;\n }\n this.tooltipRef.createTooltip();\n this.open.next();\n }\n\n closePanel() {\n if (!this.tooltipRef.isCreated) {\n return;\n }\n this.tooltipRef.disposeTooltip();\n this.close.next();\n }\n\n clearValue(event: Event) {\n this.setValue(null);\n this.submit();\n event.stopPropagation();\n event.preventDefault();\n }\n\n submit(close = true, value?: Dayjs) {\n const refer = value ?? this.timeValue;\n this.emitValue(\n refer\n ? {\n second: refer.second(),\n minute: refer.minute(),\n hour: refer.hour(),\n }\n : null,\n );\n if (close) {\n this.closePanel();\n }\n }\n}\n","export const HOUR_ITEMS = Array.from({ length: 24 }).map((_, index) => index);\nexport const MINUTE_ITEMS = Array.from({ length: 60 }).map((_, index) => index);\nexport const SECOND_ITEMS = Array.from({ length: 60 }).map((_, index) => index);\n\nexport const CONTROL_ITEM_HEIGHT = 28;\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../form/common-form';\nimport { ComponentSize } from '../../types';\nimport { buildBem } from '../../utils';\nimport {\n CONTROL_ITEM_HEIGHT,\n HOUR_ITEMS,\n MINUTE_ITEMS,\n SECOND_ITEMS,\n} from '../constant';\nimport { TimePickerControlType } from '../time-picker.type';\n\nconst TIME_PICKER_COLUMN_WIDTH = 80;\nconst bem = buildBem('aui-time-picker-panel');\n\n@Component({\n selector: 'aui-time-picker-panel',\n templateUrl: './panel.template.html',\n styleUrls: ['./panel.style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimePickerPanelComponent),\n multi: true,\n },\n ],\n host: {\n mousedown: '$event.preventDefault()',\n },\n})\nexport class TimePickerPanelComponent\n extends CommonFormControl<Dayjs>\n implements OnChanges {\n @Input()\n set format(value: string) {\n if (value != null) {\n this._format = value;\n const charSet = new Set(value);\n this.hourEnabled = charSet.has('H') || charSet.has('h');\n this.minuteEnabled = charSet.has('m');\n this.secondEnabled = charSet.has('s');\n this.enabledColumns = [\n this.hourEnabled,\n this.minuteEnabled,\n this.secondEnabled,\n ].filter(i => i).length;\n }\n }\n\n get format(): string {\n return this._format;\n }\n\n private _format: string;\n\n get totalWidth() {\n return this.enabledColumns * TIME_PICKER_COLUMN_WIDTH;\n }\n\n @Input()\n hourStep = 1;\n\n @Input()\n minuteStep = 1;\n\n @Input()\n secondStep = 1;\n\n @Input()\n footerTemplate: TemplateRef<void>;\n\n @Output()\n confirm = new EventEmitter<void>();\n\n @Input()\n disableHours: () => number[];\n\n @Input()\n disableMinutes: (hour?: number) => number[];\n\n @Input()\n disableSeconds: (hour?: number, minute?: number) => number[];\n\n hourEnabled: boolean;\n minuteEnabled: boolean;\n secondEnabled: boolean;\n\n TimePickerControlType = TimePickerControlType;\n HOUR_ITEM_CONFIG = HOUR_ITEMS;\n MINUTE_ITEM_CONFIG = MINUTE_ITEMS;\n SECOND_ITEM_CONFIG = SECOND_ITEMS;\n\n CONTROL_ITEM_HEIGHT = CONTROL_ITEM_HEIGHT;\n ComponentSize = ComponentSize;\n bem = bem;\n\n @ViewChild('hourRef', { static: false })\n hourRef: ElementRef<HTMLElement>;\n\n @ViewChild('minuteRef', { static: false })\n minuteRef: ElementRef<HTMLElement>;\n\n @ViewChild('secondRef', { static: false })\n secondRef: ElementRef<HTMLElement>;\n\n enabledColumns = 0;\n\n // 用于控制初次滚动,是否展示滚动动画效果\n firstScrolled = false;\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n this.value$.subscribe(_ => {\n this.cdr.markForCheck();\n });\n }\n\n isDisabled(value: number, type: TimePickerControlType) {\n const currentValue = this.snapshot.value;\n if (this.disabled) {\n return true;\n }\n if (type === TimePickerControlType.Hour) {\n return (!this.disableHours ? [] : this.disableHours()).includes(value);\n }\n if (type === TimePickerControlType.Minute) {\n return (!this.disableMinutes\n ? []\n : this.disableMinutes(currentValue?.hour())\n ).includes(value);\n }\n if (type === TimePickerControlType.Second) {\n return (!this.disableSeconds\n ? []\n : this.disableSeconds(currentValue?.hour(), currentValue?.minute())\n ).includes(value);\n }\n }\n\n ngOnChanges({ hourStep, minuteStep, secondStep }: SimpleChanges): void {\n if (hourStep?.currentValue > 0) {\n this.HOUR_ITEM_CONFIG = HOUR_ITEMS.filter(\n i => i % hourStep.currentValue === 0,\n );\n }\n if (minuteStep?.currentValue > 0) {\n this.MINUTE_ITEM_CONFIG = MINUTE_ITEMS.filter(\n i => i % minuteStep.currentValue === 0,\n );\n }\n if (secondStep?.currentValue > 0) {\n this.SECOND_ITEM_CONFIG = SECOND_ITEMS.filter(\n i => i % secondStep.currentValue === 0,\n );\n }\n this.cdr.markForCheck();\n }\n\n writeValue(value: Dayjs) {\n super.writeValue(value);\n this.syncScrollOffset(!this.firstScrolled ? 0 : 120, value);\n }\n\n selectValue(value: number, type: TimePickerControlType): void {\n if (this.isDisabled(value, type)) {\n return;\n }\n this.firstScrolled = true;\n const result = this.syncValue(value, type, this.snapshot.value);\n this.syncScrollOffset(120, result);\n }\n\n syncValue(value: number, type: TimePickerControlType, currentValue: Dayjs) {\n if (!type) {\n return;\n }\n const result = (currentValue || dayjs()).set(type, value);\n this.emitValue(result);\n return result;\n }\n\n syncScrollOffset(duration: number, value: Dayjs) {\n const empty = !value;\n const config = [\n {\n ref: this.hourRef,\n enabled: this.hourEnabled,\n step: this.hourStep,\n type: 'hour',\n },\n {\n ref: this.minuteRef,\n enabled: this.minuteEnabled,\n step: this.minuteStep,\n type: 'minute',\n },\n {\n ref: this.secondRef,\n enabled: this.secondEnabled,\n step: this.secondStep,\n type: 'second',\n },\n ] as const;\n\n config.forEach(cf => {\n if (cf.enabled && cf.ref) {\n this.scrollByValue(\n cf.ref.nativeElement,\n empty ? 0 : value.get(cf.type),\n cf.step,\n empty ? 0 : duration,\n );\n }\n });\n if (!empty) {\n this.firstScrolled = true;\n }\n }\n\n private scrollByValue(\n element: HTMLElement,\n value: number,\n divideBy: number,\n duration: number,\n ) {\n const targetOffset = (value * CONTROL_ITEM_HEIGHT) / divideBy;\n const currentTop = element.scrollTop;\n if (currentTop === targetOffset) {\n return;\n }\n if (!duration) {\n element.scrollTop = targetOffset;\n } else {\n const difference = targetOffset - currentTop;\n // 每个tick滚动距离\n const perTick = (difference / duration) * 10;\n\n requestAnimationFrame(() => {\n element.scrollTop = currentTop + perTick;\n if (element.scrollTop === targetOffset) {\n return;\n }\n this.scrollByValue(element, value, divideBy, duration - 10);\n });\n }\n }\n\n matchValue(\n value: number,\n type: TimePickerControlType,\n currDate: Dayjs,\n ): boolean {\n return currDate?.get(type) === value;\n }\n\n getControlTypeConfig(type: TimePickerControlType): number[] {\n return {\n [TimePickerControlType.Hour]: this.HOUR_ITEM_CONFIG,\n [TimePickerControlType.Minute]: this.MINUTE_ITEM_CONFIG,\n [TimePickerControlType.Second]: this.SECOND_ITEM_CONFIG,\n }[type];\n }\n\n selectNow() {\n this.firstScrolled = true;\n this.emitValue(dayjs());\n }\n\n trackBy(_index: number, content: number) {\n return content;\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button/public-api';\nimport { I18nModule } from '../i18n/public-api';\nimport { IconModule } from '../icon/public-api';\nimport { InputModule } from '../input/public-api';\nimport { TooltipModule } from '../tooltip/public-api';\n\nimport { TimePickerComponent } from './component';\nimport { TimePickerPanelComponent } from './panel/panel.component';\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n PortalModule,\n OverlayModule,\n CommonModule,\n InputModule,\n TooltipModule,\n IconModule,\n ButtonModule,\n I18nModule,\n ],\n declarations: [TimePickerComponent, TimePickerPanelComponent],\n exports: [TimePickerComponent, TimePickerPanelComponent],\n})\nexport class TimePickerModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../../form/common-form';\nimport { TimePickerModel } from '../../../time-picker/time-picker.type';\nimport { DateNavRange, DisabledTimeFn } from '../../date-picker.type';\nimport { DatePickerType } from '../constant';\nimport {\n getNavRangeByType,\n getTimePickerModel,\n getTypeByNavRange,\n nextNavRangeType,\n updateDate,\n updateDateByTimeModel,\n} from '../util';\n\n@Component({\n selector: 'aui-date-picker-panel',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerPanelComponent),\n multi: true,\n },\n ],\n})\nexport class DatePickerPanelComponent extends CommonFormControl<Dayjs> {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n set type(type: DatePickerType) {\n this.navRange = getNavRangeByType(type);\n this._type = type;\n }\n\n get type() {\n return this._type;\n }\n\n private _type: DatePickerType;\n\n @Input()\n showTime = false;\n\n @Input()\n disabledDate: (date: Dayjs, type: DateNavRange) => boolean = () => false;\n\n @Input()\n disabledTime: DisabledTimeFn = () => null;\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n showFooter = true;\n\n @Input()\n footerTemplate: TemplateRef<unknown>;\n\n @Input()\n extraFooter: TemplateRef<unknown>;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Output()\n confirm = new EventEmitter<Dayjs>();\n\n @Output()\n clear = new EventEmitter<void>();\n\n private _cacheSelectedDate: Dayjs;\n private _cacheDisabledTimeFn: ReturnType<DisabledTimeFn>;\n\n getDisabledTimeFn(\n selectedDate: Dayjs,\n type: keyof ReturnType<DisabledTimeFn>,\n ) {\n if (selectedDate !== this._cacheSelectedDate) {\n this._cacheDisabledTimeFn = this.disabledTime(selectedDate);\n this._cacheSelectedDate = selectedDate;\n }\n return this._cacheDisabledTimeFn?.[type];\n }\n\n navRange: DateNavRange;\n\n get currentNavType() {\n return getTypeByNavRange(this.navRange);\n }\n\n anchor: Dayjs;\n\n selectedDate: Dayjs;\n\n selectedTime: TimePickerModel;\n\n DateNavRange = DateNavRange;\n DatePickerType = DatePickerType;\n\n writeValue(obj: Dayjs) {\n super.writeValue(obj);\n this.selectedDate = obj;\n this.selectedTime = getTimePickerModel(obj);\n this.anchor = obj || dayjs();\n this.cdr.markForCheck();\n }\n\n panelValueChange(value: Dayjs) {\n this.selectedDate = updateDate(\n this.selectedDate || dayjs(),\n value,\n this.currentNavType,\n );\n this.anchor = this.selectedDate;\n this.selectedDate = updateDateByTimeModel(\n this.selectedDate,\n this.selectedTime,\n );\n if (this.type === this.currentNavType) {\n this.confirmValue(this.selectedDate, !this.showTime);\n }\n const nextNavRange = nextNavRangeType(\n this.navRange,\n getNavRangeByType(this.type),\n );\n if (this.navRange !== nextNavRange) {\n this.navRange = nextNavRange;\n }\n }\n\n confirmValue(value?: ConfigType, closeAfterConfirm = true) {\n this.emitValueChange(value ? dayjs(value) : this.selectedDate);\n closeAfterConfirm && this.confirm.next();\n }\n\n timeDateChange(time: TimePickerModel) {\n if (!this.selectedDate) {\n return;\n }\n this.selectedDate = updateDateByTimeModel(this.selectedDate, time);\n this.emitValueChange(this.selectedDate);\n }\n\n setToday() {\n this.confirmValue(dayjs(), true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-calendar-footer',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarFooterComponent {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n customAction: TemplateRef<any>;\n\n @Output()\n confirm = new EventEmitter<void>();\n\n @Output()\n clear = new EventEmitter<void>();\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { buildBem } from '../../../utils';\nimport {\n CalendarHeaderRange,\n DateNavRange,\n Side,\n} from '../../date-picker.type';\nimport { MONTH, YEAR } from '../constant';\nimport { calcRangeValue } from '../util';\n\nconst bem = buildBem('aui-calendar-header');\n\n@Component({\n selector: 'aui-calendar-header',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarHeaderComponent {\n @Input()\n dateNavRange = DateNavRange.Month;\n\n @Input()\n anchor = dayjs();\n\n @Input()\n maxAvail?: ConfigType;\n\n private get _maxAvail() {\n return this.maxAvail ? dayjs(this.maxAvail) : null;\n }\n\n @Input()\n minAvail?: ConfigType;\n\n private get _minAvail() {\n return this.minAvail ? dayjs(this.minAvail) : null;\n }\n\n @Output()\n navRangeChange = new EventEmitter<DateNavRange>();\n\n @Output()\n anchorChange = new EventEmitter<Dayjs>();\n\n get headerRange(): CalendarHeaderRange {\n return calcRangeValue(this.dateNavRange, this.anchor);\n }\n\n bem = bem;\n\n DateNavRange = DateNavRange;\n\n // maxAvail > current date :right btn hide\n // minAvail > current date :left btn hide\n shouldShowNav(type: DateNavRange, side: Side) {\n const availValue = (side === Side.Left\n ? this._minAvail\n : this._maxAvail\n )?.clone();\n if (!availValue) {\n return true;\n }\n // 对于年的判别,2014-5-1至2015-6-1日,仍当展示按钮\n const constrainDate = [DateNavRange.Month, DateNavRange.Year].includes(type)\n ? availValue.add(side === Side.Left ? 1 : -1, type as 'month' | 'year')\n : availValue;\n return (\n this.compareNavValue(type, constrainDate, this.anchor) ===\n (side === Side.Left ? -1 : 1)\n );\n }\n\n // @return isBetween|isEqual:0, isBefore:-1,isAfter:1\n compareNavValue(type: DateNavRange, constrain: Dayjs, anchor: Dayjs) {\n const range = calcRangeValue(type, anchor);\n const constrainValue = constrain;\n if (type === DateNavRange.Decade) {\n if (constrainValue.isBetween(range.start, range.end, YEAR)) {\n return 0;\n }\n return constrainValue.isBefore(range.start) ? -1 : 1;\n }\n return constrainValue.isSame(range.start, MONTH)\n ? 0\n : constrainValue.isBefore(range.start, MONTH)\n ? -1\n : 1;\n }\n\n navHead(range: DateNavRange, value: number) {\n let anchor: Dayjs;\n switch (range) {\n case DateNavRange.Month: {\n anchor = this.anchor.add(value, MONTH);\n break;\n }\n case DateNavRange.Year: {\n anchor = this.anchor.add(value, YEAR);\n break;\n }\n case DateNavRange.Decade:\n anchor = this.anchor.add(value, YEAR);\n break;\n }\n this.anchorChange.next(anchor);\n }\n\n clickNav = (range: DateNavRange) => {\n if (![DateNavRange.Month, DateNavRange.Year].includes(range)) {\n return;\n }\n this.navRangeChange.next(\n range === DateNavRange.Month ? DateNavRange.Year : DateNavRange.Decade,\n );\n };\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport dayjs, { Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\n\nimport { buildBem } from '../../../utils';\nimport { DateNavRange } from '../../date-picker.type';\nimport {\n DAY,\n DAY_PANEL_COLUMN_COUNT,\n DAY_PANEL_ROW_COUNT,\n DatePickerType,\n MONTH,\n MONTH_PANEL_COLUMN_COUNT,\n MONTH_PANEL_ROW_COUNT,\n YEAR,\n YEAR_PANEL_COLUMN_COUNT,\n YEAR_PANEL_ROW_COUNT,\n} from '../constant';\nimport {\n DateCell,\n calcRangeValue,\n composeDisabledDateFn,\n formatDate,\n getDatePanelIterable,\n getNavRangeByType,\n getTypeByNavRange,\n sortDates,\n} from '../util';\n\ndayjs.extend(isBetween);\n\nconst bem = buildBem('aui-picker-panel');\n\n@Component({\n selector: 'aui-picker-panel',\n templateUrl: './picker-panel.template.html',\n styleUrls: ['./picker-panel.style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PickerPanelComponent implements OnChanges {\n @Input()\n navRange!: DateNavRange;\n\n @Input()\n type!: DatePickerType;\n\n @Input()\n anchor = dayjs();\n\n @Input()\n matchDates: Dayjs[];\n\n @Input()\n disabledDate: (date: Dayjs, navRange: DateNavRange) => boolean = () => false;\n\n @Input()\n set weekStartDay(day: number) {\n const normalized = Math.max(Math.min(Math.round(day), 6), 0);\n this.weekDefs = [\n ...this.weekDefs.slice(normalized),\n ...this.weekDefs.slice(0, normalized),\n ];\n this._weekStartDay = normalized;\n }\n\n get weekStartDay() {\n return this._weekStartDay;\n }\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n get disabledDateFn() {\n return composeDisabledDateFn(\n date => this.minDate && date.isBefore(this.minDate),\n date => this.maxDate && date.isAfter(this.maxDate),\n this.disabledDate,\n );\n }\n\n private _weekStartDay = 0;\n\n panelData: DateCell[][];\n\n @Output()\n select = new EventEmitter<Dayjs>();\n\n @Output()\n hovered = new EventEmitter<Dayjs>();\n\n bem = bem;\n DateNavRange = DateNavRange;\n\n weekDefs = [\n 'sunday',\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n ];\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n ngOnChanges() {\n // 如果 dateValue 是一个数组,必然是同一个面板上,否则应当给与不同的面板不同的dateValue值\n const headerRange = calcRangeValue(this.navRange, this.anchor);\n this.renderPanelData(headerRange.start, this.navRange);\n }\n\n // 根据当前数据,计算渲染表格\n // eslint-disable-next-line sonarjs/cognitive-complexity\n renderPanelData(date: Dayjs, navRange: DateNavRange) {\n const value = [];\n let colCounts = 0;\n let rowCounts = 0;\n if (!this.panelData) {\n this.panelData = [[]];\n }\n const [...values] = getDatePanelIterable(date, navRange, this.weekStartDay);\n if (navRange === DateNavRange.Month) {\n colCounts = DAY_PANEL_COLUMN_COUNT;\n rowCounts = DAY_PANEL_ROW_COUNT;\n } else if (navRange === DateNavRange.Decade) {\n colCounts = YEAR_PANEL_COLUMN_COUNT;\n rowCounts = YEAR_PANEL_ROW_COUNT;\n } else if (navRange === DateNavRange.Year) {\n colCounts = MONTH_PANEL_COLUMN_COUNT;\n rowCounts = MONTH_PANEL_ROW_COUNT;\n }\n for (let k = 0; k < rowCounts; k++) {\n const row = [];\n for (let i = 0; i < colCounts; i++) {\n const cell = formatDate(navRange, values[k * colCounts + i], date);\n cell.isDisabled = this.disabledDateFn(cell.value, navRange);\n const sortedDates = sortDates(this.matchDates);\n if (sortedDates?.length === 2 && navRange === DateNavRange.Month) {\n if (\n cell.value.isBetween(sortedDates[0], sortedDates[1]) &&\n !cell.isBackground\n ) {\n cell.inRange = true;\n }\n cell.isRangeStart =\n cell.value.isSame(sortedDates[0], DAY) && !cell.isBackground;\n cell.isRangeEnd =\n cell.value.isSame(sortedDates[1], DAY) && !cell.isBackground;\n if (cell.isRangeStart && cell.isRangeEnd) {\n cell.isRangeStart = false;\n cell.isRangeEnd = false;\n }\n }\n row.push(cell);\n }\n value.push(row);\n }\n this.panelData = value.slice();\n this.cdr.markForCheck();\n }\n\n match(value: Dayjs) {\n if (\n !this.matchDates?.filter(v => !!v)?.length ||\n getNavRangeByType(this.type) !== this.navRange\n ) {\n return false;\n }\n return this.matchDates?.some(dateValue =>\n this.navRange === DateNavRange.Decade\n ? value.isSame(dateValue, YEAR)\n : this.navRange === DateNavRange.Year\n ? value.isSame(dateValue, MONTH)\n : value.isSame(dateValue, DAY),\n );\n }\n\n matchToday(value: Dayjs) {\n return value.isSame(dayjs(), getTypeByNavRange(this.navRange));\n }\n\n selectValue(value: Dayjs) {\n this.select.next(value);\n }\n\n trackByFn() {\n return this.navRange;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../../form/common-form';\nimport { TimePickerModel } from '../../../time-picker/time-picker.type';\nimport { buildBem } from '../../../utils';\nimport { DateNavRange, DisabledTimeFn, Side } from '../../date-picker.type';\nimport { DatePickerType, MONTH, YEAR } from '../constant';\nimport {\n composeDisabledDateFn,\n getTimePickerModel,\n getTypeByNavRange,\n maxDate,\n minDate,\n nextNavRangeType,\n sortDates,\n updateDate,\n updateDateByTimeModel,\n} from '../util';\n\nconst bem = buildBem('aui-date-range-picker-panel');\n\n@Component({\n selector: 'aui-date-range-picker-panel',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateRangePickerPanelComponent),\n multi: true,\n },\n ],\n})\nexport class DateRangePickerPanelComponent extends CommonFormControl<Dayjs[]> {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n showTime = true;\n\n @Input()\n showFooter = true;\n\n @Input()\n disabledDate: (date: Dayjs, navRange: DateNavRange) => boolean = () => false;\n\n @Input()\n disabledTime: { left: DisabledTimeFn; right: DisabledTimeFn } = {\n left: () => null,\n right: () => null,\n };\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Output()\n clear = new EventEmitter<void>();\n\n @Output()\n confirm = new EventEmitter<void>();\n\n bem = bem;\n Side = Side;\n DatePickerType = DatePickerType;\n leftDateRange = DateNavRange.Month;\n rightDateRange = DateNavRange.Month;\n\n FOOTER_DATE_FORMAT = 'YYYY-MM-dd';\n\n leftAnchor = dayjs();\n rightAnchor = dayjs().add(1, MONTH);\n\n get maxHeaderAvail() {\n return minDate(this.rightAnchor, this.maxDate);\n }\n\n get minHeaderAvail() {\n return maxDate(this.minDate, this.leftAnchor);\n }\n\n // 用于存放 range data 序列,数量为 2 时清除\n rangeValue: Dayjs[] = [];\n\n // 用于组装匹配日期序列\n matchValues: Dayjs[];\n\n startTime: TimePickerModel;\n endTime: TimePickerModel;\n\n writeValue(obj: Dayjs[]) {\n super.writeValue(obj);\n this.rangeValue = obj || [];\n this.matchValues = [...this.rangeValue];\n this.startTime = getTimePickerModel(obj?.[0]);\n this.endTime = getTimePickerModel(obj?.[1]);\n if (obj?.length === 2) {\n this.reorder(sortDates(obj));\n }\n this.cdr.markForCheck();\n }\n\n calendarRangeChange(type: DateNavRange, side: Side) {\n if (side === Side.Left) {\n this.leftDateRange = type;\n } else {\n this.rightDateRange = type;\n }\n }\n\n // range 组件范围受控\n getDateDisabledFn(side: Side, constrainValue: Dayjs) {\n return composeDisabledDateFn((date: Dayjs, navRange: DateNavRange) => {\n if (navRange === DateNavRange.Month) {\n return false;\n }\n if (navRange === DateNavRange.Decade) {\n return date[side === Side.Left ? 'isAfter' : 'isBefore'](\n constrainValue,\n YEAR,\n );\n }\n return !date[side === Side.Left ? 'isBefore' : 'isAfter'](\n constrainValue,\n MONTH,\n );\n }, this.disabledDate);\n }\n\n private getDisabledTimeCachedFn(side: Side) {\n let cacheSelectedDate: Dayjs;\n let cacheDisabledTimeFn: ReturnType<DisabledTimeFn>;\n return (value: Dayjs, key: keyof ReturnType<DisabledTimeFn>) => {\n if (value !== cacheSelectedDate) {\n cacheDisabledTimeFn = (this.disabledTime?.[side] || (() => null))(\n value,\n );\n cacheSelectedDate = value;\n }\n return cacheDisabledTimeFn?.[key];\n };\n }\n\n leftDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Left);\n rightDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Right);\n\n selectPickerPanel(value: Dayjs, side: Side) {\n const navRange =\n side === Side.Left ? this.leftDateRange : this.rightDateRange;\n const type = getTypeByNavRange(navRange);\n const dateValue = updateDate(\n side === Side.Left ? this.leftAnchor : this.rightAnchor,\n value,\n type,\n );\n const nextRange = nextNavRangeType(navRange, DateNavRange.Month);\n\n if (side === Side.Left) {\n this.leftAnchor = dateValue;\n this.leftDateRange = nextRange;\n } else {\n this.rightAnchor = dateValue;\n this.rightDateRange = nextRange;\n }\n\n if (navRange !== DateNavRange.Month) {\n return;\n }\n\n if (this.leftAnchor.isSame(this.rightAnchor, MONTH)) {\n this.rightAnchor = this.rightAnchor.add(1, MONTH);\n }\n\n this.rangeValue =\n this.rangeValue.length === 2\n ? [dateValue]\n : sortDates([...this.rangeValue, dateValue]);\n this.matchValues = [...this.rangeValue];\n this.syncTime();\n if (this.rangeValue.length === 2) {\n this.reorder(this.rangeValue);\n this.confirmValue(this.rangeValue, !this.showTime);\n }\n }\n\n reorder(sortedDate: Dayjs[]) {\n if (!sortedDate[0].isSame(sortedDate[1], MONTH)) {\n this.leftAnchor = updateDate(\n this.leftAnchor,\n sortedDate[0],\n DatePickerType.Day,\n );\n this.rightAnchor = updateDate(\n this.leftAnchor,\n sortedDate[1],\n DatePickerType.Day,\n );\n }\n }\n\n hoverItem(date: Dayjs) {\n if (this.rangeValue.length === 1) {\n this.matchValues[1] = date;\n }\n }\n\n confirmValue(value: Dayjs[], closeThen = true) {\n this.emitValueChange(value);\n closeThen && this.confirm.next();\n }\n\n timeChange(time: TimePickerModel) {\n if (!time) {\n return;\n }\n this.syncTime();\n if (!this.rangeValue?.length) {\n const date = updateDateByTimeModel(dayjs(), time);\n this.rangeValue = [date, date];\n this.matchValues = [...this.rangeValue];\n this.startTime = this.endTime = time;\n }\n this.emitValueChange(this.rangeValue);\n }\n\n syncTime() {\n if (this.showTime && !!this.rangeValue?.length) {\n const startDate = this.rangeValue[0]\n ? updateDateByTimeModel(this.rangeValue[0], this.startTime)\n : null;\n const endDate = this.rangeValue[1]\n ? updateDateByTimeModel(this.rangeValue[1], this.endTime)\n : null;\n if (!this.startTime && startDate) {\n this.startTime = getTimePickerModel(this.rangeValue[0]);\n }\n if (!this.endTime && endDate) {\n this.endTime = getTimePickerModel(this.rangeValue[1]);\n }\n this.rangeValue = [startDate, endDate].filter(i => !!i);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../form/common-form';\nimport { ComponentSize } from '../../types';\nimport { DatePickerType } from '../calendar/constant';\nimport { DateNavRange, DisabledTimeFn } from '../date-picker.type';\n\n@Component({\n selector: 'aui-date-picker',\n templateUrl: './date-picker.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n // tslint:disable-next-line: validate-decorators\n encapsulation: ViewEncapsulation.Emulated,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true,\n },\n ],\n styleUrls: ['./date-picker.style.scss'],\n})\nexport class DatePickerComponent\n extends CommonFormControl<ConfigType, Dayjs>\n implements OnInit {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n format: string;\n\n @Input()\n showTime = false;\n\n @Input()\n type = DatePickerType.Day;\n\n @Input()\n size = ComponentSize.Medium;\n\n @Input()\n disabledDate: (date: Dayjs, type: DateNavRange) => boolean = () => false;\n\n @Input()\n disabledTime: DisabledTimeFn = () => null;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n showFooter = true;\n\n @Input()\n footerTemplate: TemplateRef<unknown>;\n\n @Input()\n extraFooter: TemplateRef<unknown>;\n\n @Input()\n placeholder: string;\n\n @Output()\n openChange = new EventEmitter<boolean>();\n\n value: Dayjs;\n DatePickerType = DatePickerType;\n\n ngOnInit() {\n if (!this.format) {\n this.format = this.getDefaultFormat(this.type);\n this.cdr.markForCheck();\n }\n }\n\n valueIn(obj: ConfigType) {\n return obj ? dayjs(obj) : null;\n }\n\n writeValue(obj: Dayjs) {\n super.writeValue(obj);\n this.value = obj;\n this.cdr.markForCheck();\n }\n\n private getDefaultFormat(type = DatePickerType.Day) {\n return type === DatePickerType.Year\n ? 'YYYY'\n : type === DatePickerType.Month\n ? 'YYYY-MM'\n : this.showTime\n ? 'YYYY-MM-DD HH:mm:ss'\n : 'YYYY-MM-DD';\n }\n\n clearValue() {\n this.value = null;\n this.emitValueChange(null);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../form/common-form';\nimport { ComponentSize } from '../../types';\nimport { DisabledDateFn, DisabledTimeFn } from '../date-picker.type';\n\n@Component({\n selector: 'aui-range-picker',\n templateUrl: './range-picker.template.html',\n // provide tooltip class\n // tslint:disable-next-line: validate-decorators\n encapsulation: ViewEncapsulation.Emulated,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangePickerComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./range-picker.style.scss'],\n})\nexport class RangePickerComponent extends CommonFormControl<\n ConfigType[],\n Dayjs[]\n> {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n format = 'YYYY-MM-DD';\n\n @Input()\n showFooter = true;\n\n @Input()\n showTime = true;\n\n @Input()\n disabledDate: DisabledDateFn = () => false;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Input()\n disabledTime: { left: DisabledTimeFn; right: DisabledTimeFn } = {\n left: () => null,\n right: () => null,\n };\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n size: ComponentSize;\n\n @Output()\n openChange = new EventEmitter<boolean>();\n\n value: [Dayjs, Dayjs];\n\n valueIn(obj: [ConfigType, ConfigType]) {\n return obj?.map(i => dayjs(i));\n }\n\n writeValue(obj: [Dayjs, Dayjs]) {\n super.writeValue(obj);\n this.value = obj;\n this.cdr.markForCheck();\n }\n\n clearValue() {\n this.value = null;\n this.emitValueChange(null);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Dayjs } from 'dayjs';\n\nimport { InputComponent } from '../../input/input.component';\nimport { ComponentSize } from '../../types';\nimport { buildBem } from '../../utils';\n\nconst bem = buildBem('aui-date-picker-trigger');\n\n@Component({\n selector: 'aui-date-picker-trigger',\n templateUrl: './trigger.template.html',\n // tslint:disable-next-line: validate-decorators\n encapsulation: ViewEncapsulation.Emulated,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./trigger.style.scss'],\n})\nexport class DatePickerTriggerComponent {\n @Input()\n format = 'YYYY-MM-DD';\n\n @Input()\n size: ComponentSize;\n\n @Input()\n isRange: boolean;\n\n @Input()\n value: Dayjs | Dayjs[];\n\n @Input()\n clearable = true;\n\n @Input()\n placeholder: string;\n\n @Input()\n startPlaceholder: string;\n\n @Input()\n endPlaceholder: string;\n\n @Input()\n disabled = false;\n\n @Output()\n blur = new EventEmitter<void>();\n\n @Output()\n clear = new EventEmitter<void>();\n\n @ViewChild('focusRef', { static: false })\n focusInputRef: InputComponent;\n\n centerFocus = false;\n leftFocus = false;\n rightFocus = false;\n hovered = false;\n bem = bem;\n\n get isFocus() {\n return this.isRange ? this.leftFocus || this.rightFocus : this.centerFocus;\n }\n\n get hasValue() {\n return !this.isRange\n ? !!this.value\n : (this.value as Dayjs[])?.[0] || (this.value as Dayjs[])?.[1];\n }\n\n get showClear() {\n return !this.disabled && this.clearable && this.hasValue && this.hovered;\n }\n\n constructor() {\n this.focusInput = this.focusInput.bind(this);\n }\n\n focusInput() {\n this.focusInputRef.elementRef.nativeElement.focus();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button/public-api';\nimport { I18nModule } from '../i18n/public-api';\nimport { IconModule } from '../icon/icon.module';\nimport { InputModule } from '../input/public-api';\nimport { TimePickerModule } from '../time-picker/public-api';\nimport { TooltipModule } from '../tooltip/public-api';\n\nimport { DatePickerPanelComponent } from './calendar/date-picker-panel/component';\nimport { CalendarFooterComponent } from './calendar/footer/component';\nimport { CalendarHeaderComponent } from './calendar/header/component';\nimport { PickerPanelComponent } from './calendar/panel/picker-panel';\nimport { DateRangePickerPanelComponent } from './calendar/range-picker-panel/component';\nimport { DatePickerComponent } from './date-picker/date-picker.component';\nimport { RangePickerComponent } from './range-picker/range-picker.component';\nimport { DatePickerTriggerComponent } from './trigger/trigger.component';\n\nconst COMPONENTS = [\n CalendarHeaderComponent,\n CalendarFooterComponent,\n DateRangePickerPanelComponent,\n PickerPanelComponent,\n RangePickerComponent,\n DatePickerPanelComponent,\n DatePickerComponent,\n DatePickerTriggerComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n InputModule,\n ButtonModule,\n TooltipModule,\n ReactiveFormsModule,\n FormsModule,\n TimePickerModule,\n IconModule,\n I18nModule,\n ],\n declarations: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class DatePickerModule {}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport enum DrawerSize {\n Small = 'small',\n Medium = 'medium',\n Big = 'big',\n}\n\nexport abstract class DrawerRef<T = ComponentType<any>, R = any> {\n abstract afterClosed: Observable<R>;\n abstract afterOpen: Observable<void>;\n abstract dispose(result?: R): void;\n abstract open(): void;\n abstract componentInstance: T | null;\n\n abstract title?: string | TemplateRef<unknown>;\n abstract footer?: string | TemplateRef<unknown>;\n abstract size?: DrawerSize;\n abstract offsetY?: string;\n abstract visible?: boolean;\n abstract hideOnClickOutside?: boolean;\n abstract showClose?: boolean;\n abstract drawerClass?: string;\n abstract mask?: boolean;\n abstract maskClosable?: boolean;\n abstract width?: number;\n abstract divider?: boolean;\n}\n","/**\n * @packageDocumentation\n * @module page-guard\n */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiDrawerHeader]',\n})\nexport class DrawerHeaderDirective {}\n\n@Directive({\n selector: '[auiDrawerContent]',\n})\nexport class DrawerContentDirective {}\n\n@Directive({\n selector: '[auiDrawerFooter]',\n})\nexport class DrawerFooterDirective {}\n","import {\n ComponentType,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n InjectionToken,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { isTemplateRef } from '../../utils';\n\nimport { DrawerRef, DrawerSize } from './drawer-ref';\nimport {\n DrawerContentDirective,\n DrawerFooterDirective,\n DrawerHeaderDirective,\n} from './helper-directives';\n\nexport const DATA = new InjectionToken('drawer-data');\n\nconst DRAWER_OVERLAY_CLASS = 'aui-drawer-overlay';\n\nconst SIZE_MAPPER = {\n [DrawerSize.Small]: 400,\n [DrawerSize.Medium]: 600,\n [DrawerSize.Big]: 800,\n};\n\n@Component({\n selector: 'aui-drawer',\n templateUrl: './drawer.component.html',\n styleUrls: ['./drawer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrawerComponent<\n T = ComponentType<unknown>,\n R = unknown,\n D = unknown\n >\n extends DrawerRef<T, R>\n implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n @Input()\n title: string | TemplateRef<unknown>;\n\n @Input()\n footer: string | TemplateRef<unknown>;\n\n @Input()\n size: DrawerSize = DrawerSize.Medium;\n\n @Input()\n offsetY = '0px';\n\n @Input() visible: boolean;\n\n @Input()\n content: TemplateRef<T> | ComponentType<T>;\n\n @Input()\n hideOnClickOutside = false;\n\n @Input()\n showClose = true;\n\n @Input()\n drawerClass: string;\n\n @Input()\n mask: boolean;\n\n @Input()\n maskClosable: boolean;\n\n @Input()\n divider = true;\n\n private _value = SIZE_MAPPER[DrawerSize.Medium];\n @Input()\n set width(value: number) {\n this._value = value;\n }\n\n get width() {\n return this._value;\n }\n\n get drawerClasses(): Record<string, boolean> {\n return {\n 'aui-drawer': true,\n hasDivider: this.divider,\n ...(!this.drawerClass ? null : { [this.drawerClass]: true }),\n };\n }\n\n private readonly afterClosed$ = new Subject<R>();\n\n get afterClosed(): Observable<R> {\n return this.afterClosed$.asObservable();\n }\n\n private readonly afterOpen$ = new Subject<void>();\n\n get afterOpen(): Observable<void> {\n return this.afterOpen$.asObservable();\n }\n\n @Output()\n drawerViewInit = new EventEmitter<void>();\n\n @Output() readonly close = new EventEmitter<MouseEvent>();\n\n @ViewChild('drawerTemplate', { static: true })\n drawerTemplate: TemplateRef<void>;\n\n @ViewChild(CdkPortalOutlet, { static: false })\n bodyPortalOutlet: CdkPortalOutlet;\n\n @ContentChild(DrawerHeaderDirective, { read: TemplateRef })\n titleTemplate: TemplateRef<T>;\n\n @ContentChild(DrawerContentDirective, { read: TemplateRef })\n contentTemplate: TemplateRef<T> | ComponentType<T>;\n\n @ContentChild(DrawerFooterDirective, { read: TemplateRef })\n footerTemplate: TemplateRef<T>;\n\n onDestroy$ = new Subject<void>();\n\n isTemplateRef = isTemplateRef;\n\n componentInstance: T | null = null;\n\n contentParams: D;\n overlayRef: OverlayRef;\n portal: TemplatePortal;\n templateContext: unknown = {};\n get transform() {\n return `translateX(${this.visible ? 0 : '100%'})`;\n }\n\n constructor(\n private readonly viewContainerRef: ViewContainerRef,\n private readonly overlay: Overlay,\n private readonly injector: Injector,\n private readonly cdr: ChangeDetectorRef,\n ) {\n super();\n }\n\n ngOnInit() {\n this.attachOverlay();\n this.updateBodyOverflow();\n this.templateContext = { $implicit: this.contentParams };\n this.cdr.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { visible } = changes;\n if (visible) {\n const value = visible.currentValue;\n if (value) {\n this.open();\n } else {\n this.dispose();\n }\n }\n }\n\n ngAfterViewInit() {\n this.attachBodyContent();\n setTimeout(() => {\n this.drawerViewInit.emit();\n }, 0);\n }\n\n private attachOverlay() {\n if (!this.overlayRef) {\n this.portal = new TemplatePortal(\n this.drawerTemplate,\n this.viewContainerRef,\n );\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n }\n if (this.overlayRef) {\n this.overlayRef.attach(this.portal);\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.onDestroy$))\n .subscribe(event => {\n // 判断鼠标点击事件的 target 是否为 overlay-container 的子节点,如果是,则不关闭 drawer。\n // 为了避免点击 drawer 里的 tooltip 后 drawer 被关闭。\n if (\n this.visible &&\n this.hideOnClickOutside &&\n event.target instanceof Node &&\n !this.overlayRef.hostElement?.parentNode?.contains(event.target)\n ) {\n event.stopPropagation();\n event.preventDefault();\n this.dispose();\n }\n });\n }\n }\n\n private getOverlayConfig(): OverlayConfig {\n return new OverlayConfig({\n panelClass: DRAWER_OVERLAY_CLASS,\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n }\n\n private attachBodyContent(): void {\n this.bodyPortalOutlet?.dispose();\n const content = this.content || this.contentTemplate;\n if (content instanceof Type) {\n const componentPortal = new ComponentPortal<T>(\n content,\n null,\n Injector.create({\n providers: [\n {\n provide: DATA,\n useValue: this.contentParams,\n },\n ],\n parent: this.injector,\n }),\n );\n const componentRef = this.bodyPortalOutlet?.attachComponentPortal(\n componentPortal,\n );\n this.componentInstance = componentRef.instance;\n Object.assign(componentRef.instance, this.contentParams);\n componentRef.changeDetectorRef.detectChanges();\n }\n }\n\n private updateBodyOverflow(): void {\n if (this.overlayRef) {\n if (this.visible) {\n this.overlayRef.getConfig().scrollStrategy.enable();\n } else {\n this.overlayRef.getConfig().scrollStrategy.disable();\n }\n }\n }\n\n open() {\n this.visible = true;\n this.afterOpen$.next();\n this.afterOpen$.complete();\n this.updateBodyOverflow();\n this.cdr.markForCheck();\n }\n\n dispose(result: R = null) {\n this.visible = false;\n this.close.emit();\n this.afterClosed$.next(result);\n this.afterClosed$.complete();\n this.updateBodyOverflow();\n this.cdr.markForCheck();\n }\n\n private disposeOverlay(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n }\n\n maskClick() {\n if (this.maskClosable && this.mask) {\n this.dispose();\n }\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.disposeOverlay();\n }\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, TemplateRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DrawerComponent } from './component/drawer.component';\nimport { DrawerSize } from './public-api';\n\nexport interface DrawerOptions<T = any, D = any> {\n title?: string | TemplateRef<unknown>;\n width?: number;\n content?: ComponentType<T> | TemplateRef<T>;\n contentParams?: D;\n footer?: string | TemplateRef<unknown>;\n offsetY?: string;\n divider?: boolean;\n drawerClass?: string;\n size?: DrawerSize;\n visible?: boolean;\n hideOnClickOutside?: boolean;\n showClose?: boolean;\n mask?: boolean;\n maskClosable?: boolean;\n}\n@Injectable()\nexport class DrawerService {\n private drawerRef: ComponentRef<DrawerComponent>;\n private overlayRef: OverlayRef;\n private readonly unsubscribe$ = new Subject<void>();\n\n constructor(private readonly overlay: Overlay) {}\n\n open<T = unknown>(options: DrawerOptions<T>) {\n this.drawerRef?.instance?.dispose();\n this.createDrawer();\n this.updateOptions(options);\n return this.drawerRef?.instance;\n }\n\n updateOptions(options: DrawerOptions): void {\n Object.assign(this.drawerRef.instance, options);\n }\n\n private createDrawer(): void {\n this.overlayRef = this.overlay.create();\n this.drawerRef = this.overlayRef.attach(\n new ComponentPortal(DrawerComponent),\n );\n this.drawerRef.instance.drawerViewInit\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.drawerRef.instance.open();\n });\n\n this.drawerRef.instance.afterClosed\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.overlayRef.dispose();\n this.drawerRef = null;\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n });\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/public-api';\n\nimport { DrawerComponent } from './component/drawer.component';\nimport {\n DrawerContentDirective,\n DrawerFooterDirective,\n DrawerHeaderDirective,\n} from './component/helper-directives';\nimport { DrawerService } from './drawer.service';\n\nconst COMMON = [\n DrawerComponent,\n DrawerHeaderDirective,\n DrawerContentDirective,\n DrawerFooterDirective,\n];\n\n@NgModule({\n imports: [CommonModule, IconModule, IconModule, OverlayModule, PortalModule],\n declarations: COMMON,\n exports: COMMON,\n entryComponents: [DrawerComponent],\n providers: [DrawerService],\n})\nexport class DrawerModule {}\n","import { ValueOf } from '../types';\n\nexport const StepState = {\n Default: 'default',\n Done: 'done',\n Error: 'error',\n Pending: 'pending',\n} as const;\n\nexport type StepState = ValueOf<typeof StepState>;\n\nexport interface StepItem {\n label: string;\n description?: string;\n state?: StepState;\n optional?: boolean;\n /**\n * @deprecated 每个步骤不再需要单独控制。通过组件参数 selectable 统一控制\n */\n editable?: boolean;\n}\n\nexport type StepsOrientation = 'horizontal' | 'vertical';\n\nexport type StepsType = 'step' | 'progress';\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { StepItem, StepState, StepsOrientation, StepsType } from './types';\n\nconst StepDefaultIcon = {\n [StepState.Default]: 'number',\n [StepState.Done]: 'check_circle',\n [StepState.Error]: 'close_circle',\n [StepState.Pending]: 'sync_circle',\n};\n\nconst StepSelectedIcon = {\n [StepState.Default]: 'number',\n [StepState.Done]: 'check_circle_s',\n [StepState.Error]: 'close_circle_s',\n [StepState.Pending]: 'sync_circle_s',\n};\n\n@Component({\n selector: 'aui-steps',\n exportAs: 'auiSteps',\n templateUrl: './steps.component.html',\n styleUrls: ['./steps.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class StepsComponent implements OnInit, OnDestroy {\n _currentIndex: number;\n private _steps: StepItem[] = [];\n @Input()\n get steps() {\n return this._steps;\n }\n\n set steps(val: StepItem[]) {\n this._steps = val;\n this.stepsChange$$.next(val);\n }\n\n /**\n * @deprecated type 为 step 时一般在使用上下文中控制是否可以进行下一步;type 为 progress 时强制按顺序执行\n */\n @Input()\n linear = false;\n\n @Input()\n get currentIndex() {\n return this._currentIndex;\n }\n\n set currentIndex(index: number) {\n this.currentIndexChange$$.next(index);\n }\n\n @Input()\n orientation: StepsOrientation = 'horizontal';\n\n @Input()\n type: StepsType = 'step';\n\n @Input()\n selectable = false;\n\n @Output()\n currentIndexChange = new EventEmitter<number>();\n\n @Output()\n selectedIndexChange = new EventEmitter<number>();\n\n currentIndexChange$$ = new BehaviorSubject<number>(0);\n stepsChange$$ = new BehaviorSubject<StepItem[]>([]);\n\n selectedIndex: number;\n\n private readonly destroy$$ = new Subject<void>();\n\n ngOnInit() {\n this.currentIndexChange$$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(index => {\n if (this.type === 'step') {\n this.setCurrentIndex(index);\n }\n });\n this.stepsChange$$.pipe(takeUntil(this.destroy$$)).subscribe(steps => {\n if (this.type === 'progress') {\n this.getProgressCurrentIndex(steps);\n }\n });\n }\n\n private setCurrentIndex(index: number) {\n if (this.linear) {\n if (this.steps?.length) {\n const ret = Math.min(Math.max(0, index), this.steps.length - 1);\n const reversedPrevSteps = this.steps.slice(0, ret).reverse();\n const doneIndex = reversedPrevSteps.findIndex(\n step => step.state === StepState.Done || step.optional,\n );\n const lastDoneStepIndex =\n doneIndex > -1 ? reversedPrevSteps.length - doneIndex : 0;\n this._currentIndex = this.selectedIndex = Math.min(\n lastDoneStepIndex,\n ret,\n );\n }\n } else {\n this._currentIndex = this.selectedIndex = index;\n }\n }\n\n private getProgressCurrentIndex(steps: StepItem[]) {\n if (!steps?.length) {\n if (this._currentIndex !== 0) {\n this.currentIndexChange.emit(0);\n }\n this._currentIndex = 0;\n } else {\n const reversedSteps = this.steps.slice(0).reverse();\n const doneStepIndex = reversedSteps.findIndex(\n step => step.state === StepState.Done,\n );\n const lastDoneStepIndex =\n doneStepIndex > -1 ? reversedSteps.length - doneStepIndex : 0;\n const newIndex = Math.min(lastDoneStepIndex, steps.length - 1);\n if (this._currentIndex !== newIndex) {\n this.currentIndexChange.emit(newIndex);\n }\n if (this._currentIndex === this.selectedIndex) {\n this._currentIndex = this.selectedIndex = newIndex;\n } else {\n this._currentIndex = newIndex;\n }\n }\n }\n\n get isVertical() {\n return this.orientation === 'vertical';\n }\n\n get isProgress() {\n return this.type === 'progress';\n }\n\n getIcon(i: number, state: StepState): string {\n if (!state) {\n return StepDefaultIcon.default;\n }\n return this.getActiveIndex() === i\n ? StepSelectedIcon[state]\n : StepDefaultIcon[state];\n }\n\n select(i: number) {\n if (this.isSelectable(i)) {\n if (this.isProgress) {\n this.selectedIndexChange.emit(i);\n this.selectedIndex = i;\n } else {\n this.currentIndexChange.emit(i);\n this._currentIndex = i;\n this.selectedIndex = i;\n }\n }\n }\n\n isSelectable(i: number) {\n const currentStep = this.steps[this._currentIndex];\n if (!this.selectable || this.selectedIndex === i) {\n return false;\n }\n const isLinear = this.isProgress ? true : this.linear;\n if (\n isLinear &&\n !currentStep.optional &&\n ((currentStep.state === StepState.Done && i > this._currentIndex + 1) ||\n (currentStep.state !== StepState.Done && i > this._currentIndex))\n ) {\n return false;\n }\n if (i < this._currentIndex && !this.selectable) {\n return false;\n }\n return true;\n }\n\n getActiveIndex() {\n return this.selectedIndex !== undefined\n ? this.selectedIndex\n : this._currentIndex;\n }\n\n isLastActive(i: number, steps: StepItem[]) {\n const firstDefaultIndex = steps.findIndex(\n step => !step.state || step.state === StepState.Default,\n );\n return i === this.selectedIndex\n ? true\n : firstDefaultIndex === 0\n ? false\n : firstDefaultIndex === i;\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/public-api';\n\nimport { StepsComponent } from './steps.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [StepsComponent],\n exports: [StepsComponent],\n})\nexport class StepsModule {}\n","import { I18NInterface } from '../i18n.type';\n\nexport const zh: I18NInterface = {\n locale: 'zh',\n translation: {\n start_date: '开始日期',\n end_date: '结束日期',\n select_time: '选择时间',\n select_date: '选择日期',\n clear: '清除',\n confirm: '确定',\n to: '至',\n year_suffix: '年',\n month_suffix: '月',\n monday: '一',\n tuesday: '二',\n wednesday: '三',\n thursday: '四',\n friday: '五',\n saturday: '六',\n sunday: '日',\n now: '此刻',\n select_all: '全选',\n today: '今天',\n },\n};\n"]}