@alauda/ui 8.0.1-beta.2 → 8.0.1-beta.21

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 (307) hide show
  1. package/anchor/anchor.directive.d.ts +2 -2
  2. package/button/button.types.d.ts +3 -0
  3. package/date-picker/calendar/panel/picker-panel.d.ts +1 -1
  4. package/date-picker/calendar/range-picker-panel/component.d.ts +1 -1
  5. package/dialog/dialog-container.component.d.ts +7 -0
  6. package/dialog/dialog-ref.d.ts +2 -4
  7. package/dialog/dialog.service.d.ts +3 -5
  8. package/fesm2022/alauda-ui.mjs +1091 -737
  9. package/fesm2022/alauda-ui.mjs.map +1 -1
  10. package/form/common-form.d.ts +5 -1
  11. package/input/autosize.directive.d.ts +4 -1
  12. package/internal/types/index.d.ts +3 -0
  13. package/message/message.config.d.ts +20 -0
  14. package/notification/notification.component.d.ts +4 -0
  15. package/package.json +2 -9
  16. package/paginator/paginator-intl.d.ts +9 -0
  17. package/radio/base-radio.d.ts +1 -1
  18. package/select/base-select.d.ts +3 -0
  19. package/select/validators.d.ts +1 -1
  20. package/sort/sort-errors.d.ts +4 -0
  21. package/table/table-cell-def.directive.d.ts +4 -0
  22. package/table/table-cell.directive.d.ts +1 -0
  23. package/table/table-column-def.directive.d.ts +4 -0
  24. package/table/table-header-cell-def.directive.d.ts +4 -0
  25. package/table/table-header-cell.directive.d.ts +1 -0
  26. package/table/table-header-row-def.directive.d.ts +4 -0
  27. package/table/table-header-row.component.d.ts +1 -0
  28. package/table/table-row-def.directive.d.ts +5 -0
  29. package/table/table-row.component.d.ts +1 -0
  30. package/table/table-scroll.directive.d.ts +1 -1
  31. package/tabs/tab-body.component.d.ts +16 -0
  32. package/tabs/tab-context.service.d.ts +3 -0
  33. package/tabs/tab-group.component.d.ts +28 -0
  34. package/tabs/tab-header-active-indicator.component.d.ts +9 -0
  35. package/tabs/tab-header.component.d.ts +79 -0
  36. package/tabs/tab.component.d.ts +18 -0
  37. package/tabs/tabs.types.d.ts +3 -0
  38. package/theme/style.css +10 -9
  39. package/tooltip/tooltip-intl.d.ts +3 -0
  40. package/tsconfig.lib.tsbuildinfo +1 -1
  41. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +0 -73
  42. package/esm2022/accordion/accordion.component.mjs +0 -27
  43. package/esm2022/accordion/accordion.module.mjs +0 -54
  44. package/esm2022/accordion/index.mjs +0 -4
  45. package/esm2022/alauda-ui.mjs +0 -2
  46. package/esm2022/anchor/anchor.component.mjs +0 -137
  47. package/esm2022/anchor/anchor.directive.mjs +0 -184
  48. package/esm2022/anchor/anchor.module.mjs +0 -42
  49. package/esm2022/anchor/index.mjs +0 -6
  50. package/esm2022/anchor/types.mjs +0 -2
  51. package/esm2022/anchor/utils.mjs +0 -26
  52. package/esm2022/autocomplete/autocomplete-placeholder.component.mjs +0 -18
  53. package/esm2022/autocomplete/autocomplete.component.mjs +0 -52
  54. package/esm2022/autocomplete/autocomplete.directive.mjs +0 -282
  55. package/esm2022/autocomplete/autocomplete.module.mjs +0 -69
  56. package/esm2022/autocomplete/autocomplete.types.mjs +0 -2
  57. package/esm2022/autocomplete/helper-directives.mjs +0 -18
  58. package/esm2022/autocomplete/index.mjs +0 -9
  59. package/esm2022/autocomplete/suggestion/suggestion.component.mjs +0 -74
  60. package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +0 -23
  61. package/esm2022/back-top/back-top.component.mjs +0 -84
  62. package/esm2022/back-top/back-top.module.mjs +0 -19
  63. package/esm2022/back-top/index.mjs +0 -3
  64. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +0 -32
  65. package/esm2022/breadcrumb/breadcrumb.component.mjs +0 -57
  66. package/esm2022/breadcrumb/breadcrumb.module.mjs +0 -32
  67. package/esm2022/breadcrumb/index.mjs +0 -4
  68. package/esm2022/button/button-group/button-group.component.mjs +0 -11
  69. package/esm2022/button/button.component.mjs +0 -121
  70. package/esm2022/button/button.module.mjs +0 -19
  71. package/esm2022/button/button.types.mjs +0 -11
  72. package/esm2022/button/index.mjs +0 -5
  73. package/esm2022/card/card.component.mjs +0 -16
  74. package/esm2022/card/card.module.mjs +0 -48
  75. package/esm2022/card/helper-directives.mjs +0 -45
  76. package/esm2022/card/index.mjs +0 -5
  77. package/esm2022/card/section.component.mjs +0 -11
  78. package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +0 -61
  79. package/esm2022/checkbox/checkbox.component.mjs +0 -112
  80. package/esm2022/checkbox/checkbox.module.mjs +0 -32
  81. package/esm2022/checkbox/index.mjs +0 -4
  82. package/esm2022/color-picker/color-picker.component.mjs +0 -28
  83. package/esm2022/color-picker/color-picker.module.mjs +0 -18
  84. package/esm2022/color-picker/index.mjs +0 -3
  85. package/esm2022/core/animation/animation-consts.mjs +0 -12
  86. package/esm2022/date-picker/calendar/constant.mjs +0 -31
  87. package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +0 -173
  88. package/esm2022/date-picker/calendar/footer/component.mjs +0 -29
  89. package/esm2022/date-picker/calendar/header/component.mjs +0 -136
  90. package/esm2022/date-picker/calendar/panel/picker-panel.mjs +0 -154
  91. package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +0 -218
  92. package/esm2022/date-picker/calendar/util.mjs +0 -145
  93. package/esm2022/date-picker/date-picker/date-picker.component.mjs +0 -100
  94. package/esm2022/date-picker/date-picker.module.mjs +0 -85
  95. package/esm2022/date-picker/date-picker.type.mjs +0 -12
  96. package/esm2022/date-picker/index.mjs +0 -12
  97. package/esm2022/date-picker/range-picker/range-picker.component.mjs +0 -90
  98. package/esm2022/date-picker/trigger/trigger.component.mjs +0 -122
  99. package/esm2022/dialog/confirm-dialog/confirm-dialog-config.mjs +0 -12
  100. package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +0 -95
  101. package/esm2022/dialog/dialog-animations.mjs +0 -57
  102. package/esm2022/dialog/dialog-config.mjs +0 -15
  103. package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +0 -39
  104. package/esm2022/dialog/dialog-content/dialog-content.component.mjs +0 -19
  105. package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +0 -15
  106. package/esm2022/dialog/dialog-content/dialog-header.component.mjs +0 -39
  107. package/esm2022/dialog/dialog-ref.mjs +0 -48
  108. package/esm2022/dialog/dialog.component.mjs +0 -154
  109. package/esm2022/dialog/dialog.module.mjs +0 -72
  110. package/esm2022/dialog/dialog.service.mjs +0 -120
  111. package/esm2022/dialog/dialog.types.mjs +0 -17
  112. package/esm2022/dialog/index.mjs +0 -12
  113. package/esm2022/dialog/utils/errors.mjs +0 -4
  114. package/esm2022/dialog/utils/index.mjs +0 -11
  115. package/esm2022/drawer/component/drawer.component.mjs +0 -88
  116. package/esm2022/drawer/component/internal/internal.component.mjs +0 -184
  117. package/esm2022/drawer/drawer-ref.mjs +0 -28
  118. package/esm2022/drawer/drawer.module.mjs +0 -41
  119. package/esm2022/drawer/drawer.service.mjs +0 -114
  120. package/esm2022/drawer/helper-directives.mjs +0 -36
  121. package/esm2022/drawer/index.mjs +0 -7
  122. package/esm2022/drawer/types.mjs +0 -6
  123. package/esm2022/dropdown/dropdown-active.directive.mjs +0 -22
  124. package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +0 -47
  125. package/esm2022/dropdown/dropdown.directive.mjs +0 -53
  126. package/esm2022/dropdown/dropdown.module.mjs +0 -80
  127. package/esm2022/dropdown/dropdown.types.mjs +0 -8
  128. package/esm2022/dropdown/helper-directives.mjs +0 -18
  129. package/esm2022/dropdown/index.mjs +0 -11
  130. package/esm2022/dropdown/menu/menu.component.mjs +0 -19
  131. package/esm2022/dropdown/menu-group/menu-group.component.mjs +0 -11
  132. package/esm2022/dropdown/menu-item/menu-item.component.mjs +0 -37
  133. package/esm2022/dropdown/submenu/submenu.component.mjs +0 -45
  134. package/esm2022/form/common-form.mjs +0 -87
  135. package/esm2022/form/form-item/form-item.component.mjs +0 -108
  136. package/esm2022/form/form.directive.mjs +0 -70
  137. package/esm2022/form/form.module.mjs +0 -58
  138. package/esm2022/form/form.types.mjs +0 -11
  139. package/esm2022/form/helper-directives.mjs +0 -77
  140. package/esm2022/form/index.mjs +0 -7
  141. package/esm2022/i18n/i18n.module.mjs +0 -16
  142. package/esm2022/i18n/i18n.pipe.mjs +0 -22
  143. package/esm2022/i18n/i18n.service.mjs +0 -40
  144. package/esm2022/i18n/i18n.type.mjs +0 -6
  145. package/esm2022/i18n/index.mjs +0 -7
  146. package/esm2022/i18n/language/en.mjs +0 -25
  147. package/esm2022/i18n/language/zh.mjs +0 -25
  148. package/esm2022/icon/icon-register.service.mjs +0 -63
  149. package/esm2022/icon/icon.component.mjs +0 -65
  150. package/esm2022/icon/icon.module.mjs +0 -18
  151. package/esm2022/icon/icons.mjs +0 -2
  152. package/esm2022/icon/index.mjs +0 -4
  153. package/esm2022/icon/utils.mjs +0 -7
  154. package/esm2022/index.mjs +0 -39
  155. package/esm2022/inline-alert/helper-directives.mjs +0 -15
  156. package/esm2022/inline-alert/index.mjs +0 -5
  157. package/esm2022/inline-alert/inline-alert.component.mjs +0 -57
  158. package/esm2022/inline-alert/inline-alert.module.mjs +0 -32
  159. package/esm2022/inline-alert/inline-alert.types.mjs +0 -9
  160. package/esm2022/input/autosize.directive.mjs +0 -55
  161. package/esm2022/input/helper-directives.mjs +0 -47
  162. package/esm2022/input/index.mjs +0 -9
  163. package/esm2022/input/input-group/input-group.component.mjs +0 -46
  164. package/esm2022/input/input.component.mjs +0 -57
  165. package/esm2022/input/input.module.mjs +0 -85
  166. package/esm2022/input/number-input/number-input.component.mjs +0 -130
  167. package/esm2022/input/search/search.component.mjs +0 -89
  168. package/esm2022/input/tags-input/tags-input.component.mjs +0 -255
  169. package/esm2022/input/tags-input/with-max-row-count.mjs +0 -50
  170. package/esm2022/input/utils/index.mjs +0 -67
  171. package/esm2022/internal/types/index.mjs +0 -8
  172. package/esm2022/internal/utils/animations.mjs +0 -2
  173. package/esm2022/internal/utils/async.mjs +0 -6
  174. package/esm2022/internal/utils/bem.mjs +0 -43
  175. package/esm2022/internal/utils/coercion.mjs +0 -5
  176. package/esm2022/internal/utils/fn.mjs +0 -16
  177. package/esm2022/internal/utils/index.mjs +0 -10
  178. package/esm2022/internal/utils/observe-dom.mjs +0 -23
  179. package/esm2022/internal/utils/operators.mjs +0 -15
  180. package/esm2022/internal/utils/scroll-into-view.mjs +0 -17
  181. package/esm2022/internal/utils/styles-renderer.mjs +0 -40
  182. package/esm2022/internal/utils/watch-content-exist.mjs +0 -6
  183. package/esm2022/message/base-message.mjs +0 -90
  184. package/esm2022/message/index.mjs +0 -4
  185. package/esm2022/message/message-animations.mjs +0 -32
  186. package/esm2022/message/message-wrapper.component.mjs +0 -14
  187. package/esm2022/message/message.component.mjs +0 -70
  188. package/esm2022/message/message.config.mjs +0 -16
  189. package/esm2022/message/message.module.mjs +0 -31
  190. package/esm2022/message/message.service.mjs +0 -29
  191. package/esm2022/notification/index.mjs +0 -5
  192. package/esm2022/notification/notification-wrapper.component.mjs +0 -16
  193. package/esm2022/notification/notification.component.mjs +0 -103
  194. package/esm2022/notification/notification.config.mjs +0 -7
  195. package/esm2022/notification/notification.module.mjs +0 -36
  196. package/esm2022/notification/notification.service.mjs +0 -29
  197. package/esm2022/paginator/index.mjs +0 -4
  198. package/esm2022/paginator/paginator-intl.mjs +0 -21
  199. package/esm2022/paginator/paginator.component.mjs +0 -134
  200. package/esm2022/paginator/paginator.module.mjs +0 -37
  201. package/esm2022/radio/base-radio.mjs +0 -67
  202. package/esm2022/radio/index.mjs +0 -6
  203. package/esm2022/radio/radio-button/radio-button.component.mjs +0 -41
  204. package/esm2022/radio/radio-group/radio-group.component.mjs +0 -68
  205. package/esm2022/radio/radio.component.mjs +0 -23
  206. package/esm2022/radio/radio.module.mjs +0 -36
  207. package/esm2022/radio/radio.types.mjs +0 -6
  208. package/esm2022/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +0 -81
  209. package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +0 -120
  210. package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +0 -28
  211. package/esm2022/scrolling/index.mjs +0 -7
  212. package/esm2022/scrolling/scrolling.module.mjs +0 -30
  213. package/esm2022/scrolling/virtual-for-of.directive.mjs +0 -35
  214. package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +0 -26
  215. package/esm2022/select/base-select.mjs +0 -327
  216. package/esm2022/select/helper-directives.mjs +0 -67
  217. package/esm2022/select/index.mjs +0 -10
  218. package/esm2022/select/multi-select/multi-select.component.mjs +0 -313
  219. package/esm2022/select/option/option.component.mjs +0 -113
  220. package/esm2022/select/option-group/option-group.component.mjs +0 -23
  221. package/esm2022/select/option-placeholder.component.mjs +0 -18
  222. package/esm2022/select/select.component.mjs +0 -116
  223. package/esm2022/select/select.module.mjs +0 -87
  224. package/esm2022/select/select.types.mjs +0 -7
  225. package/esm2022/select/validators.mjs +0 -79
  226. package/esm2022/shared/click-outside.directive.mjs +0 -29
  227. package/esm2022/shared/shared.module.mjs +0 -16
  228. package/esm2022/sort/index.mjs +0 -6
  229. package/esm2022/sort/sort-errors.mjs +0 -13
  230. package/esm2022/sort/sort-header.component.mjs +0 -68
  231. package/esm2022/sort/sort.directive.mjs +0 -75
  232. package/esm2022/sort/sort.module.mjs +0 -19
  233. package/esm2022/sort/sort.types.mjs +0 -2
  234. package/esm2022/status-bar/index.mjs +0 -4
  235. package/esm2022/status-bar/status-bar.component.mjs +0 -29
  236. package/esm2022/status-bar/status-bar.module.mjs +0 -18
  237. package/esm2022/status-bar/status-bar.types.mjs +0 -13
  238. package/esm2022/steps/index.mjs +0 -4
  239. package/esm2022/steps/steps.component.mjs +0 -173
  240. package/esm2022/steps/steps.module.mjs +0 -18
  241. package/esm2022/steps/types.mjs +0 -7
  242. package/esm2022/switch/index.mjs +0 -3
  243. package/esm2022/switch/switch.component.mjs +0 -46
  244. package/esm2022/switch/switch.module.mjs +0 -17
  245. package/esm2022/table/index.mjs +0 -16
  246. package/esm2022/table/table-cell-def.directive.mjs +0 -26
  247. package/esm2022/table/table-cell.component.mjs +0 -125
  248. package/esm2022/table/table-cell.directive.mjs +0 -29
  249. package/esm2022/table/table-column-def.directive.mjs +0 -32
  250. package/esm2022/table/table-column-resizable.directive.mjs +0 -150
  251. package/esm2022/table/table-header-cell-def.directive.mjs +0 -26
  252. package/esm2022/table/table-header-cell.directive.mjs +0 -25
  253. package/esm2022/table/table-header-row-def.directive.mjs +0 -42
  254. package/esm2022/table/table-header-row.component.mjs +0 -26
  255. package/esm2022/table/table-placeholder.directive.mjs +0 -32
  256. package/esm2022/table/table-row-def.directive.mjs +0 -38
  257. package/esm2022/table/table-row.component.mjs +0 -44
  258. package/esm2022/table/table-scroll.directive.mjs +0 -131
  259. package/esm2022/table/table.component.mjs +0 -83
  260. package/esm2022/table/table.module.mjs +0 -82
  261. package/esm2022/table-of-contents/index.mjs +0 -5
  262. package/esm2022/table-of-contents/table-of-contents.module.mjs +0 -32
  263. package/esm2022/table-of-contents/toc-container.directive.mjs +0 -110
  264. package/esm2022/table-of-contents/toc-content.directive.mjs +0 -36
  265. package/esm2022/table-of-contents/toc-link.directive.mjs +0 -45
  266. package/esm2022/tabs/index.mjs +0 -9
  267. package/esm2022/tabs/tab-body.component.mjs +0 -148
  268. package/esm2022/tabs/tab-context.service.mjs +0 -28
  269. package/esm2022/tabs/tab-group.component.mjs +0 -258
  270. package/esm2022/tabs/tab-header-active-indicator.component.mjs +0 -39
  271. package/esm2022/tabs/tab-header.component.mjs +0 -264
  272. package/esm2022/tabs/tab.component.mjs +0 -65
  273. package/esm2022/tabs/tabs.module.mjs +0 -97
  274. package/esm2022/tabs/tabs.types.mjs +0 -10
  275. package/esm2022/tag/check-tag/check-tag.component.mjs +0 -33
  276. package/esm2022/tag/index.mjs +0 -5
  277. package/esm2022/tag/tag.component.mjs +0 -65
  278. package/esm2022/tag/tag.module.mjs +0 -19
  279. package/esm2022/tag/tag.types.mjs +0 -8
  280. package/esm2022/theme/index.mjs +0 -6
  281. package/esm2022/theme/theme.module.mjs +0 -27
  282. package/esm2022/theme/theme.pipe.mjs +0 -85
  283. package/esm2022/theme/theme.service.mjs +0 -56
  284. package/esm2022/theme/theme.types.mjs +0 -2
  285. package/esm2022/theme/utils.mjs +0 -10
  286. package/esm2022/time-picker/component.mjs +0 -190
  287. package/esm2022/time-picker/constant.mjs +0 -5
  288. package/esm2022/time-picker/index.mjs +0 -6
  289. package/esm2022/time-picker/panel/panel.component.mjs +0 -236
  290. package/esm2022/time-picker/time-picker.module.mjs +0 -64
  291. package/esm2022/time-picker/time-picker.type.mjs +0 -13
  292. package/esm2022/tooltip/animations.mjs +0 -57
  293. package/esm2022/tooltip/base-tooltip.mjs +0 -325
  294. package/esm2022/tooltip/index.mjs +0 -9
  295. package/esm2022/tooltip/tooltip-active.directive.mjs +0 -50
  296. package/esm2022/tooltip/tooltip-copy.directive.mjs +0 -79
  297. package/esm2022/tooltip/tooltip-intl.mjs +0 -18
  298. package/esm2022/tooltip/tooltip.component.mjs +0 -75
  299. package/esm2022/tooltip/tooltip.directive.mjs +0 -48
  300. package/esm2022/tooltip/tooltip.module.mjs +0 -39
  301. package/esm2022/tooltip/tooltip.types.mjs +0 -19
  302. package/esm2022/tooltip/utils/index.mjs +0 -58
  303. package/esm2022/tree-select/index.mjs +0 -5
  304. package/esm2022/tree-select/tree-node-placeholder.component.mjs +0 -18
  305. package/esm2022/tree-select/tree-select.component.mjs +0 -324
  306. package/esm2022/tree-select/tree-select.module.mjs +0 -44
  307. package/esm2022/tree-select/tree-select.types.mjs +0 -2
@@ -1,313 +0,0 @@
1
- import { NgFor, NgClass, NgIf, NgTemplateOutlet, AsyncPipe, } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { combineLatest, of, map, startWith, switchMap, tap, } from 'rxjs';
5
- import { I18nPipe } from '../../i18n/i18n.pipe';
6
- import { IconComponent } from '../../icon/icon.component';
7
- import { createWithMaxRowCount } from '../../input/tags-input/with-max-row-count';
8
- import { ComponentSize } from '../../internal/types';
9
- import { buildBem, coerceAttrBoolean, coerceString, publishRef, } from '../../internal/utils';
10
- import { TagComponent } from '../../tag/tag.component';
11
- import { TooltipDirective } from '../../tooltip/tooltip.directive';
12
- import { BaseSelect } from '../base-select';
13
- import { OptionComponent } from '../option/option.component';
14
- import { SelectAllStatus, } from '../select.types';
15
- import * as i0 from "@angular/core";
16
- export class MultiSelectComponent extends BaseSelect {
17
- get hostPosition() {
18
- return this.withMaxRowCount.hostPosition();
19
- }
20
- get hostDisplay() {
21
- return this.withMaxRowCount.hostDisplay();
22
- }
23
- get rootClass() {
24
- const size = this.size || ComponentSize.Medium;
25
- return `aui-input ${this.bem.block(size)}`;
26
- }
27
- get tagSize() {
28
- return this.size === ComponentSize.Large
29
- ? ComponentSize.Medium
30
- : ComponentSize.Mini;
31
- }
32
- get inputClass() {
33
- return `${this.bem.element('input', {
34
- hidden: this.inaction,
35
- })} aui-tag aui-tag--${this.tagSize}`;
36
- }
37
- get displayClearBtn() {
38
- return !this.disabled && this.clearable && this.model.length;
39
- }
40
- get maxHeight() {
41
- return this.withMaxRowCount.maxHeight();
42
- }
43
- constructor(cdr, renderer) {
44
- super(cdr);
45
- this.renderer = renderer;
46
- this.bem = buildBem('aui-multi-select');
47
- this.bemSelectAll = buildBem('aui-option');
48
- this.isMulti = true;
49
- this.model = [];
50
- this.values$ = this.model$;
51
- this.maxRowCount = 0;
52
- this.customRowHeight = 0;
53
- this.inputValue = '';
54
- this.hasDisabledOption = false;
55
- this.withMaxRowCount = createWithMaxRowCount(this);
56
- this.focused = false;
57
- this.trackByValue = (_, item) => this.trackFn(item.value);
58
- }
59
- ngAfterContentInit() {
60
- super.ngAfterContentInit();
61
- this.selectedOptions$ = combineLatest([
62
- this.model$,
63
- this.contentOptions.changes.pipe(startWith(this.contentOptions), switchMap((options) => options.length > 0
64
- ? combineLatest(options.map(option => combineLatest([
65
- option.value$,
66
- option.label$,
67
- option.labelContext$,
68
- option.disabled$,
69
- ]).pipe(map(([value, label, labelContext, disabled]) => ({
70
- value,
71
- label,
72
- labelContext,
73
- disabled,
74
- })))))
75
- : of([]))),
76
- ]).pipe(map(([values, options]) => values
77
- .map(value => {
78
- const option = options.find(option => this.trackFn(option.value) === this.trackFn(value));
79
- return option
80
- ? {
81
- label: option.label || coerceString(this.trackFn(option.value)),
82
- labelContext: option.labelContext,
83
- value: option.value,
84
- disabled: option.disabled,
85
- }
86
- : {
87
- label: this.labelFn?.(value) || coerceString(this.trackFn(value)),
88
- value,
89
- };
90
- })
91
- .sort((a, b) => {
92
- if (a.disabled) {
93
- return -1;
94
- }
95
- if (b.disabled) {
96
- return 1;
97
- }
98
- return 0;
99
- })), tap(options => (this.hasDisabledOption = options.some(o => o.disabled))), publishRef());
100
- }
101
- ngAfterViewInit() {
102
- super.ngAfterViewInit();
103
- this.selectAllStatus$ = combineLatest([
104
- this.allOptions$,
105
- this.filterString$,
106
- ]).pipe(switchMap(([allOptions]) => combineLatest((allOptions ?? [])
107
- .filter(({ visible, disabled }) => visible && !disabled)
108
- .map(({ selected$ }) => selected$))), map(statuses => {
109
- const selected = statuses.filter(Boolean);
110
- return selected.length === 0
111
- ? SelectAllStatus.Empty
112
- : selected.length === statuses.length
113
- ? SelectAllStatus.Checked
114
- : SelectAllStatus.Indeterminate;
115
- }), startWith(SelectAllStatus.Empty), tap(selectAllStatus => (this.selectAllStatus = selectAllStatus)), publishRef());
116
- this.hasEnabledOptions$ = combineLatest([
117
- this.allOptions$,
118
- this.filterString$,
119
- ]).pipe(map(([allOptions]) => !!allOptions.filter(({ visible, disabled }) => visible && !disabled)
120
- .length));
121
- }
122
- onVisibleOptions(visible) {
123
- if (visible) {
124
- super.onShowOptions();
125
- this.inputRef.nativeElement.focus();
126
- }
127
- else {
128
- super.onHideOptions();
129
- this.inputRef.nativeElement.value = '';
130
- this.renderer.removeStyle(this.inputRef.nativeElement, 'width');
131
- }
132
- }
133
- onInput(event) {
134
- super.onInput(event);
135
- this.setInputWidth();
136
- this.tooltipRef.updatePosition();
137
- }
138
- onInputFocus() {
139
- this.focused = true;
140
- }
141
- onInputBlur() {
142
- this.focused = false;
143
- this.closeOption();
144
- }
145
- onKeyDown(event) {
146
- if (event.key === 'Backspace' &&
147
- this.filterString === '' &&
148
- this.model.length > 0 &&
149
- !this.hasDisabledOption) {
150
- this.removeValue(this.model.at(-1));
151
- event.stopPropagation();
152
- event.preventDefault();
153
- }
154
- else if (event.key === 'Enter') {
155
- if (this.model
156
- .map(value => this.trackFn(value))
157
- .includes(event.target.value)) {
158
- return;
159
- }
160
- this.selectFocusedOption();
161
- event.stopPropagation();
162
- event.preventDefault();
163
- }
164
- else {
165
- super.onKeyDown(event);
166
- }
167
- }
168
- selectOption(option) {
169
- if (option.selected) {
170
- this.removeValue(option.value);
171
- }
172
- else {
173
- this.addValue(option.value);
174
- }
175
- const isCustom = !this.contentOptions.some(({ value }) => value === option.value);
176
- if (isCustom) {
177
- this.resetFocusedOption();
178
- }
179
- }
180
- addValue(value) {
181
- const values = this.model.concat(value);
182
- this.emitValue(values);
183
- if (this.onChange) {
184
- this.resetInput();
185
- requestAnimationFrame(() => {
186
- this.tooltipRef.updatePosition();
187
- });
188
- }
189
- }
190
- removeValue(value) {
191
- const values = this.model.filter(item => this.trackFn(item) !== this.trackFn(value));
192
- this.emitValue(values);
193
- if (this.onChange) {
194
- this.resetInput();
195
- requestAnimationFrame(() => {
196
- this.tooltipRef.updatePosition();
197
- });
198
- }
199
- }
200
- clearValue(event) {
201
- this.emitValue([]);
202
- event.stopPropagation();
203
- event.preventDefault();
204
- }
205
- onSelectAllClick() {
206
- if (this.disabled) {
207
- return;
208
- }
209
- const visibleOptionsValue = this.allOptions
210
- .filter(({ visible, disabled }) => visible && !disabled)
211
- .map(({ value }) => value);
212
- if (this.selectAllStatus === SelectAllStatus.Checked) {
213
- this.emitValue(this.model.filter(value => !this.includes(visibleOptionsValue, value)));
214
- }
215
- else {
216
- this.emitValue(this.model.concat(visibleOptionsValue).reduce((acc, curr) => {
217
- if (!this.includes(acc, curr)) {
218
- acc.push(curr);
219
- }
220
- return acc;
221
- }, []));
222
- }
223
- }
224
- includes(values, value) {
225
- return values.some(v => this.trackFn(v) === this.trackFn(value));
226
- }
227
- valueIn(v) {
228
- this.resetInput();
229
- requestAnimationFrame(() => {
230
- this.tooltipRef.updatePosition();
231
- });
232
- return v || [];
233
- }
234
- resetInput() {
235
- this.inputRef.nativeElement.value = '';
236
- this.setInputWidth();
237
- this.filterString = '';
238
- }
239
- setInputWidth() {
240
- const { value } = this.inputRef.nativeElement;
241
- if (value.length) {
242
- this.inputValue = value;
243
- requestAnimationFrame(() => {
244
- this.renderer.setStyle(this.inputRef.nativeElement, 'width', `${this.inputValueMirror.nativeElement.scrollWidth}px`);
245
- });
246
- }
247
- else {
248
- this.inputValue = '';
249
- requestAnimationFrame(() => {
250
- this.renderer.removeStyle(this.inputRef.nativeElement, 'width');
251
- });
252
- }
253
- }
254
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
255
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.6", type: MultiSelectComponent, isStandalone: true, selector: "aui-multi-select", inputs: { tagClassFn: "tagClassFn", maxRowCount: "maxRowCount", customRowHeight: "customRowHeight", allowSelectAll: ["allowSelectAll", "allowSelectAll", coerceAttrBoolean] }, host: { properties: { "style.position": "this.hostPosition", "style.display": "this.hostDisplay" } }, providers: [
256
- {
257
- provide: NG_VALUE_ACCESSOR,
258
- useExisting: forwardRef(() => MultiSelectComponent),
259
- multi: true,
260
- },
261
- {
262
- provide: BaseSelect,
263
- useExisting: MultiSelectComponent,
264
- },
265
- ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }, { propertyName: "inputValueMirror", first: true, predicate: ["inputValueMirror"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n [ngClass]=\"{\n isDisabled: disabled,\n isFocused: focused,\n isClearable: displayClearBtn,\n withHeightLimit: maxRowCount > 0,\n isReadonly: readonly,\n }\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n auiTooltipAnimType=\"scaleY\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleOptions($event)\"\n (mousedown)=\"$event.preventDefault()\"\n [style.max-height]=\"maxHeight\"\n>\n <div class=\"aui-multi-select__suffix\">\n <span class=\"aui-multi-select__icon-container\">\n <aui-icon\n class=\"aui-multi-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-multi-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </div>\n <span\n [hidden]=\"model.length || inputRef.value.length\"\n [class]=\"bem.element('placeholder')\"\n >\n {{ placeholder }}\n </span>\n <aui-tag\n *ngFor=\"let option of selectedOptions$ | async; trackBy: trackByValue\"\n type=\"info\"\n [round]=\"true\"\n [border]=\"true\"\n [size]=\"tagSize\"\n [closeable]=\"!disabled && !option.disabled\"\n (close)=\"removeValue(option.value)\"\n [ngClass]=\"tagClassFn && tagClassFn(option.label, option.value)\"\n >\n <ng-container\n *ngIf=\"isTemplateRef(option.label); else label\"\n [ngTemplateOutlet]=\"option.label\"\n [ngTemplateOutletContext]=\"option.labelContext\"\n ></ng-container>\n <ng-template #label>\n {{ option.label }}\n </ng-template>\n </aui-tag>\n <input\n #inputRef\n autocomplete=\"off\"\n [readonly]=\"readonly\"\n [class]=\"inputClass\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur()\"\n (keydown)=\"onKeyDown($event)\"\n (input)=\"onInput($event)\"\n />\n <span\n #inputValueMirror\n [class]=\"bem.element('mirror')\"\n >\n {{ inputValue }}\n </span>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-option-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <ng-container\n *ngIf=\"\n allowSelectAll &&\n (hasEnabledOptions$ | async) &&\n ((hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString))\n \"\n >\n <div\n class=\"aui-option\"\n [class]=\"bemSelectAll.block(size$ | async)\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"!!(selectAllStatus$ | async)\"\n [class.isIndeterminate]=\"\n (selectAllStatus$ | async) === 'indeterminate'\n \"\n [class.isMulti]=\"true\"\n (click)=\"onSelectAllClick()\"\n >\n <i class=\"aui-option__pointer\">\n <aui-icon\n *ngIf=\"(selectAllStatus$ | async) === 'checked'\"\n icon=\"check\"\n ></aui-icon>\n </i>\n {{ 'select_all' | auiI18n }}\n </div>\n <div class=\"aui-option__divider\"></div>\n </ng-container>\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-input{display:inline-block;padding:0 var(--aui-inline-padding-xs);width:100%;min-width:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-main-bg));color:rgb(var(--aui-color-main-text));outline:none;text-overflow:ellipsis;font-weight:var(--aui-font-weight-normal)}@keyframes cdk-text-field-autofill-color-0{to{background:rgb(var(--aui-color-n-9));color:rgb(var(--aui-color-main-text))}}.aui-input:-webkit-autofill{animation:cdk-text-field-autofill-color-0 both}.aui-input.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms,cdk-text-field-autofill-color-0 both}.aui-input::-webkit-outer-spin-button,.aui-input::-webkit-inner-spin-button{appearance:none;margin:0}.aui-input[type=number]{appearance:textfield}.aui-input::placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-input:invalid,.aui-input:required{box-shadow:none}.aui-input:hover{border-color:rgb(var(--aui-color-primary))}.aui-input:focus,.aui-input.isFocused{border-color:rgb(var(--aui-color-primary))}:root .aui-input:focus,:root .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-input:focus,html[aui-theme-mode=light] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input:focus,html[aui-theme-mode=system] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-input:focus,html[aui-theme-mode=dark] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-input[disabled]{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;cursor:not-allowed}.aui-input[readonly]{color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7));cursor:default}.aui-input--large{height:var(--aui-inline-height-l);font-size:var(--aui-font-size-l)}.aui-input--medium{height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m)}.aui-input--small{height:var(--aui-inline-height-s);font-size:var(--aui-font-size-m)}.aui-input--mini{height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s)}textarea.aui-input{padding:var(--aui-inline-padding-xxs) var(--aui-inline-padding-xs);height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 3 + 2px);max-height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 6 + 2px);min-height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text));resize:vertical;overflow:auto}.aui-input.ng-invalid.ng-dirty,.ng-submitted .aui-input.ng-invalid{border-color:rgb(var(--aui-color-red))!important}:root .aui-input.ng-invalid.ng-dirty:focus,:root .aui-input.ng-invalid.ng-dirty.isFocused,:root .ng-submitted .aui-input.ng-invalid:focus,:root .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n", ".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n", ".aui-option{display:flex;align-items:center;color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-normal);cursor:pointer}.aui-option__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-option--large{padding:calc((var(--aui-inline-height-l) - var(--aui-line-height-l)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-l);font-size:var(--aui-font-size-l)}.aui-option--medium{padding:calc((var(--aui-inline-height-m) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-option--small{padding:calc((var(--aui-inline-height-s) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-option--mini{padding:calc((var(--aui-inline-height-xs) - var(--aui-line-height-s)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-s);font-size:var(--aui-font-size-s)}.aui-option:not(.isMulti).isSelected{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-option:hover,.aui-option.isFocused{background-color:rgb(var(--aui-color-p-6))}.aui-option.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-option__pointer{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);margin-right:var(--aui-spacing-m);border-radius:var(--aui-border-radius-m);border:1px solid rgb(var(--aui-color-n-7));color:#fff;background-color:rgb(var(--aui-color-main-bg));position:relative;vertical-align:middle;transition:all .3s ease}.aui-option.cdk-keyboard-focused .aui-option__pointer{border-color:rgb(var(--aui-color-primary))}:root .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-option.isSelected .aui-option__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-primary))}.aui-option.isIndeterminate .aui-option__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-main-bg))}.aui-option.isIndeterminate .aui-option__pointer:before{content:\"\";display:block;width:8px;height:8px;border-radius:1px;background-color:rgb(var(--aui-color-primary))}.aui-option.isSelected.isDisabled .aui-option__pointer{border-color:rgb(var(--aui-color-p-4));background-color:rgb(var(--aui-color-p-4))}.aui-option.isDisabled .aui-option__label{cursor:not-allowed}.aui-option.isDisabled .aui-option__pointer{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8))}.aui-option:not(.isDisabled):hover .aui-option__pointer,.aui-option:not(.isDisabled).isFocused .aui-option__pointer{border-color:rgb(var(--aui-color-primary))}.aui-option__divider{display:block;width:100%;height:1px;background-color:rgb(var(--aui-color-divider))}.aui-option-container{padding:8px 0;max-width:90vw}.aui-option-container__content{max-height:calc(var(--aui-inline-height-m) * 10);position:relative;overflow:auto}.aui-option-container__content::-webkit-scrollbar{width:8px;height:4px}.aui-option-container__content::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-option-container__content::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-option-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-option-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-option-container--small .aui-option-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-option-container--small .aui-option-container__placeholder{font-size:var(--aui-font-size-s)}.aui-multi-select{display:inline-block;position:relative;width:100%;color:rgb(var(--aui-color-main-text));vertical-align:middle}.aui-multi-select:hover{cursor:text}.aui-multi-select .aui-tag{max-width:100%}.aui-multi-select.isDisabled{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7));cursor:not-allowed}.aui-multi-select.isDisabled .aui-tag{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8))}.aui-multi-select__placeholder{display:inline-block;width:100%;color:rgb(var(--aui-color-placeholder-text));vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:absolute;right:0;left:0;padding-left:inherit;padding-right:inherit;margin-left:1px}.aui-multi-select__placeholder[hidden]{display:none}.aui-multi-select__mirror{opacity:0;left:0;z-index:-99;position:absolute;padding-left:1px}.aui-multi-select--large{min-height:var(--aui-inline-height-l);padding:calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-normal)}.aui-multi-select--large .aui-tag{margin:0 4px calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) 0}.aui-multi-select--medium{min-height:var(--aui-inline-height-m);padding:calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-multi-select--medium .aui-tag{margin:0 4px calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) 0}.aui-multi-select--small{min-height:var(--aui-inline-height-s);padding:calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-multi-select--small .aui-tag{margin:0 4px calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) 0}.aui-multi-select--mini{min-height:var(--aui-inline-height-xs);padding:calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-multi-select--mini .aui-tag{margin:0 4px calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) 0}.aui-multi-select__suffix{position:absolute;top:50%;right:var(--aui-inline-padding-xs);transform:translateY(-50%)}.aui-multi-select .aui-tag.aui-multi-select__input{margin-right:0;padding:0;width:1em;max-width:100%;border:none;outline:none;background:none;color:rgb(var(--aui-color-main-text));font-family:inherit;font-size:inherit}.aui-multi-select .aui-tag.aui-multi-select__input--hidden{opacity:0;width:0;padding:0;margin:0;position:absolute}aui-multi-select.ng-invalid.ng-dirty .aui-input,aui-multi-select.ng-invalid.ng-dirty .aui-tags-input,.ng-submitted aui-multi-select.ng-invalid .aui-input,.ng-submitted aui-multi-select.ng-invalid .aui-tags-input{border-color:rgb(var(--aui-color-red))!important}:root aui-multi-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-multi-select.ng-invalid.ng-dirty .aui-input.isFocused,:root aui-multi-select.ng-invalid.ng-dirty .aui-tags-input:focus,:root aui-multi-select.ng-invalid.ng-dirty .aui-tags-input.isFocused,:root .ng-submitted aui-multi-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-multi-select.ng-invalid .aui-input.isFocused,:root .ng-submitted aui-multi-select.ng-invalid .aui-tags-input:focus,:root .ng-submitted aui-multi-select.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-multi-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-multi-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=light] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-multi-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-multi-select.ng-invalid .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=light] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-multi-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-multi-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=system] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-multi-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-multi-select.ng-invalid .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=system] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-multi-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-multi-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=dark] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-multi-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-multi-select.ng-invalid .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}aui-multi-select.ng-invalid.ng-dirty .aui-input .aui-tags-input__input,aui-multi-select.ng-invalid.ng-dirty .aui-tags-input .aui-tags-input__input,.ng-submitted aui-multi-select.ng-invalid .aui-input .aui-tags-input__input,.ng-submitted aui-multi-select.ng-invalid .aui-tags-input .aui-tags-input__input{color:rgb(var(--aui-color-red))}.aui-multi-select--large{min-height:var(--aui-inline-height-l);font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);padding-right:calc(var(--aui-inline-padding-xs) * 2 + var(--aui-icon-size-l) + 1px)}.aui-multi-select--large .aui-multi-select__suffix{right:calc(var(--aui-inline-padding-xs) + 1px);font-size:var(--aui-icon-size-l)}.aui-multi-select--medium{min-height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);padding-right:calc(var(--aui-inline-padding-xs) * 2 + var(--aui-icon-size-m) + 1px)}.aui-multi-select--medium .aui-multi-select__suffix{right:calc(var(--aui-inline-padding-xs) + 1px);font-size:var(--aui-icon-size-m)}.aui-multi-select--small{min-height:var(--aui-inline-height-s);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);padding-right:calc(var(--aui-inline-padding-xs) * 2 + var(--aui-icon-size-m) + 1px)}.aui-multi-select--small .aui-multi-select__suffix{right:calc(var(--aui-inline-padding-xs) + 1px);font-size:var(--aui-icon-size-m)}.aui-multi-select--mini{min-height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);padding-right:calc(var(--aui-inline-padding-xs) * 2 + var(--aui-icon-size-s) + 1px)}.aui-multi-select--mini .aui-multi-select__suffix{right:calc(var(--aui-inline-padding-xs) + 1px);font-size:var(--aui-icon-size-s)}.aui-multi-select__suffix{position:absolute;top:50%;transform:translateY(-50%)}.aui-multi-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-multi-select__icon-container .aui-icon{margin:0!important}.aui-multi-select.isDisabled .aui-multi-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-multi-select__indicator{display:flex}.aui-multi-select__clear{display:none}.aui-multi-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-multi-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-multi-select.isClearable:not(.isDisabled):hover .aui-multi-select__indicator{display:none}.aui-multi-select.isClearable:not(.isDisabled):hover .aui-multi-select__clear{display:flex;pointer-events:auto}.aui-multi-select.withHeightLimit{overflow:auto;position:static}.aui-multi-select.withHeightLimit::-webkit-scrollbar{width:8px;height:4px}.aui-multi-select.withHeightLimit::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-multi-select.withHeightLimit::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-multi-select.withHeightLimit::-webkit-scrollbar-corner{background-color:transparent}.aui-multi-select .aui-tag--info{background-color:rgb(var(--aui-color-n-10))}.aui-multi-select.isReadonly{cursor:default}.aui-multi-select.isReadonly .aui-tag{color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-n-10))}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[auiTooltip]", inputs: ["auiTooltip", "auiTooltipContext", "auiTooltipClass", "auiTooltipType", "auiTooltipPosition", "auiTooltipTrigger", "auiTooltipDisabled", "auiTooltipHideOnClick", "auiTooltipAnimType"], outputs: ["auiTooltipVisibleChange"], exportAs: ["auiTooltip"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TagComponent, selector: "aui-tag", inputs: ["type", "size", "closeable", "border", "solid", "invalid", "round", "color", "allowClick"], outputs: ["close"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OptionComponent, selector: "aui-option", inputs: ["label", "labelContext", "value", "disabled"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
266
- }
267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: MultiSelectComponent, decorators: [{
268
- type: Component,
269
- args: [{ selector: 'aui-multi-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, providers: [
270
- {
271
- provide: NG_VALUE_ACCESSOR,
272
- useExisting: forwardRef(() => MultiSelectComponent),
273
- multi: true,
274
- },
275
- {
276
- provide: BaseSelect,
277
- useExisting: MultiSelectComponent,
278
- },
279
- ], standalone: true, imports: [
280
- TooltipDirective,
281
- IconComponent,
282
- NgFor,
283
- TagComponent,
284
- NgClass,
285
- NgIf,
286
- NgTemplateOutlet,
287
- OptionComponent,
288
- AsyncPipe,
289
- I18nPipe,
290
- ], template: "<div\n [class]=\"rootClass\"\n [ngClass]=\"{\n isDisabled: disabled,\n isFocused: focused,\n isClearable: displayClearBtn,\n withHeightLimit: maxRowCount > 0,\n isReadonly: readonly,\n }\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n auiTooltipAnimType=\"scaleY\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleOptions($event)\"\n (mousedown)=\"$event.preventDefault()\"\n [style.max-height]=\"maxHeight\"\n>\n <div class=\"aui-multi-select__suffix\">\n <span class=\"aui-multi-select__icon-container\">\n <aui-icon\n class=\"aui-multi-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-multi-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </div>\n <span\n [hidden]=\"model.length || inputRef.value.length\"\n [class]=\"bem.element('placeholder')\"\n >\n {{ placeholder }}\n </span>\n <aui-tag\n *ngFor=\"let option of selectedOptions$ | async; trackBy: trackByValue\"\n type=\"info\"\n [round]=\"true\"\n [border]=\"true\"\n [size]=\"tagSize\"\n [closeable]=\"!disabled && !option.disabled\"\n (close)=\"removeValue(option.value)\"\n [ngClass]=\"tagClassFn && tagClassFn(option.label, option.value)\"\n >\n <ng-container\n *ngIf=\"isTemplateRef(option.label); else label\"\n [ngTemplateOutlet]=\"option.label\"\n [ngTemplateOutletContext]=\"option.labelContext\"\n ></ng-container>\n <ng-template #label>\n {{ option.label }}\n </ng-template>\n </aui-tag>\n <input\n #inputRef\n autocomplete=\"off\"\n [readonly]=\"readonly\"\n [class]=\"inputClass\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur()\"\n (keydown)=\"onKeyDown($event)\"\n (input)=\"onInput($event)\"\n />\n <span\n #inputValueMirror\n [class]=\"bem.element('mirror')\"\n >\n {{ inputValue }}\n </span>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-option-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <ng-container\n *ngIf=\"\n allowSelectAll &&\n (hasEnabledOptions$ | async) &&\n ((hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString))\n \"\n >\n <div\n class=\"aui-option\"\n [class]=\"bemSelectAll.block(size$ | async)\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"!!(selectAllStatus$ | async)\"\n [class.isIndeterminate]=\"\n (selectAllStatus$ | async) === 'indeterminate'\n \"\n [class.isMulti]=\"true\"\n (click)=\"onSelectAllClick()\"\n >\n <i class=\"aui-option__pointer\">\n <aui-icon\n *ngIf=\"(selectAllStatus$ | async) === 'checked'\"\n icon=\"check\"\n ></aui-icon>\n </i>\n {{ 'select_all' | auiI18n }}\n </div>\n <div class=\"aui-option__divider\"></div>\n </ng-container>\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-input{display:inline-block;padding:0 var(--aui-inline-padding-xs);width:100%;min-width:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-main-bg));color:rgb(var(--aui-color-main-text));outline:none;text-overflow:ellipsis;font-weight:var(--aui-font-weight-normal)}@keyframes cdk-text-field-autofill-color-0{to{background:rgb(var(--aui-color-n-9));color:rgb(var(--aui-color-main-text))}}.aui-input:-webkit-autofill{animation:cdk-text-field-autofill-color-0 both}.aui-input.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms,cdk-text-field-autofill-color-0 both}.aui-input::-webkit-outer-spin-button,.aui-input::-webkit-inner-spin-button{appearance:none;margin:0}.aui-input[type=number]{appearance:textfield}.aui-input::placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-input:invalid,.aui-input:required{box-shadow:none}.aui-input:hover{border-color:rgb(var(--aui-color-primary))}.aui-input:focus,.aui-input.isFocused{border-color:rgb(var(--aui-color-primary))}:root .aui-input:focus,:root .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-input:focus,html[aui-theme-mode=light] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input:focus,html[aui-theme-mode=system] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-input:focus,html[aui-theme-mode=dark] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-input[disabled]{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;cursor:not-allowed}.aui-input[readonly]{color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7));cursor:default}.aui-input--large{height:var(--aui-inline-height-l);font-size:var(--aui-font-size-l)}.aui-input--medium{height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m)}.aui-input--small{height:var(--aui-inline-height-s);font-size:var(--aui-font-size-m)}.aui-input--mini{height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s)}textarea.aui-input{padding:var(--aui-inline-padding-xxs) var(--aui-inline-padding-xs);height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 3 + 2px);max-height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 6 + 2px);min-height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text));resize:vertical;overflow:auto}.aui-input.ng-invalid.ng-dirty,.ng-submitted .aui-input.ng-invalid{border-color:rgb(var(--aui-color-red))!important}:root .aui-input.ng-invalid.ng-dirty:focus,:root .aui-input.ng-invalid.ng-dirty.isFocused,:root .ng-submitted .aui-input.ng-invalid:focus,:root .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n", ".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n", ".aui-option{display:flex;align-items:center;color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-normal);cursor:pointer}.aui-option__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-option--large{padding:calc((var(--aui-inline-height-l) - var(--aui-line-height-l)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-l);font-size:var(--aui-font-size-l)}.aui-option--medium{padding:calc((var(--aui-inline-height-m) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-option--small{padding:calc((var(--aui-inline-height-s) - var(--aui-line-height-m)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-option--mini{padding:calc((var(--aui-inline-height-xs) - var(--aui-line-height-s)) / 2) calc(var(--aui-inline-padding-xs) + 1px);line-height:var(--aui-line-height-s);font-size:var(--aui-font-size-s)}.aui-option:not(.isMulti).isSelected{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-option:hover,.aui-option.isFocused{background-color:rgb(var(--aui-color-p-6))}.aui-option.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-option__pointer{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);margin-right:var(--aui-spacing-m);border-radius:var(--aui-border-radius-m);border:1px solid rgb(var(--aui-color-n-7));color:#fff;background-color:rgb(var(--aui-color-main-bg));position:relative;vertical-align:middle;transition:all .3s ease}.aui-option.cdk-keyboard-focused .aui-option__pointer{border-color:rgb(var(--aui-color-primary))}:root .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-option.isSelected .aui-option__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-primary))}.aui-option.isIndeterminate .aui-option__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-main-bg))}.aui-option.isIndeterminate .aui-option__pointer:before{content:\"\";display:block;width:8px;height:8px;border-radius:1px;background-color:rgb(var(--aui-color-primary))}.aui-option.isSelected.isDisabled .aui-option__pointer{border-color:rgb(var(--aui-color-p-4));background-color:rgb(var(--aui-color-p-4))}.aui-option.isDisabled .aui-option__label{cursor:not-allowed}.aui-option.isDisabled .aui-option__pointer{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8))}.aui-option:not(.isDisabled):hover .aui-option__pointer,.aui-option:not(.isDisabled).isFocused .aui-option__pointer{border-color:rgb(var(--aui-color-primary))}.aui-option__divider{display:block;width:100%;height:1px;background-color:rgb(var(--aui-color-divider))}.aui-option-container{padding:8px 0;max-width:90vw}.aui-option-container__content{max-height:calc(var(--aui-inline-height-m) * 10);position:relative;overflow:auto}.aui-option-container__content::-webkit-scrollbar{width:8px;height:4px}.aui-option-container__content::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-option-container__content::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-option-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-option-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-option-container--small .aui-option-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-option-container--small .aui-option-container__placeholder{font-size:var(--aui-font-size-s)}.aui-multi-select{display:inline-block;position:relative;width:100%;color:rgb(var(--aui-color-main-text));vertical-align:middle}.aui-multi-select:hover{cursor:text}.aui-multi-select .aui-tag{max-width:100%}.aui-multi-select.isDisabled{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7));cursor:not-allowed}.aui-multi-select.isDisabled .aui-tag{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8))}.aui-multi-select__placeholder{display:inline-block;width:100%;color:rgb(var(--aui-color-placeholder-text));vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:absolute;right:0;left:0;padding-left:inherit;padding-right:inherit;margin-left:1px}.aui-multi-select__placeholder[hidden]{display:none}.aui-multi-select__mirror{opacity:0;left:0;z-index:-99;position:absolute;padding-left:1px}.aui-multi-select--large{min-height:var(--aui-inline-height-l);padding:calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-normal)}.aui-multi-select--large .aui-tag{margin:0 4px calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) 0}.aui-multi-select--medium{min-height:var(--aui-inline-height-m);padding:calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-multi-select--medium .aui-tag{margin:0 4px calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) 0}.aui-multi-select--small{min-height:var(--aui-inline-height-s);padding:calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-multi-select--small .aui-tag{margin:0 4px calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) 0}.aui-multi-select--mini{min-height:var(--aui-inline-height-xs);padding:calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-multi-select--mini .aui-tag{margin:0 4px calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) 0}.aui-multi-select__suffix{position:absolute;top:50%;right:var(--aui-inline-padding-xs);transform:translateY(-50%)}.aui-multi-select .aui-tag.aui-multi-select__input{margin-right:0;padding:0;width:1em;max-width:100%;border:none;outline:none;background:none;color:rgb(var(--aui-color-main-text));font-family:inherit;font-size:inherit}.aui-multi-select .aui-tag.aui-multi-select__input--hidden{opacity:0;width:0;padding:0;margin:0;position:absolute}aui-multi-select.ng-invalid.ng-dirty .aui-input,aui-multi-select.ng-invalid.ng-dirty .aui-tags-input,.ng-submitted aui-multi-select.ng-invalid .aui-input,.ng-submitted aui-multi-select.ng-invalid .aui-tags-input{border-color:rgb(var(--aui-color-red))!important}:root aui-multi-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-multi-select.ng-invalid.ng-dirty .aui-input.isFocused,:root aui-multi-select.ng-invalid.ng-dirty .aui-tags-input:focus,:root aui-multi-select.ng-invalid.ng-dirty .aui-tags-input.isFocused,:root .ng-submitted aui-multi-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-multi-select.ng-invalid .aui-input.isFocused,:root .ng-submitted aui-multi-select.ng-invalid .aui-tags-input:focus,:root .ng-submitted aui-multi-select.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-multi-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-multi-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=light] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-multi-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-multi-select.ng-invalid .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=light] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-multi-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-multi-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=system] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-multi-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-multi-select.ng-invalid .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=system] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-multi-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-multi-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=dark] aui-multi-select.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-multi-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-multi-select.ng-invalid .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-multi-select.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}aui-multi-select.ng-invalid.ng-dirty .aui-input .aui-tags-input__input,aui-multi-select.ng-invalid.ng-dirty .aui-tags-input .aui-tags-input__input,.ng-submitted aui-multi-select.ng-invalid .aui-input .aui-tags-input__input,.ng-submitted aui-multi-select.ng-invalid .aui-tags-input .aui-tags-input__input{color:rgb(var(--aui-color-red))}.aui-multi-select--large{min-height:var(--aui-inline-height-l);font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);padding-right:calc(var(--aui-inline-padding-xs) * 2 + var(--aui-icon-size-l) + 1px)}.aui-multi-select--large .aui-multi-select__suffix{right:calc(var(--aui-inline-padding-xs) + 1px);font-size:var(--aui-icon-size-l)}.aui-multi-select--medium{min-height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);padding-right:calc(var(--aui-inline-padding-xs) * 2 + var(--aui-icon-size-m) + 1px)}.aui-multi-select--medium .aui-multi-select__suffix{right:calc(var(--aui-inline-padding-xs) + 1px);font-size:var(--aui-icon-size-m)}.aui-multi-select--small{min-height:var(--aui-inline-height-s);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);padding-right:calc(var(--aui-inline-padding-xs) * 2 + var(--aui-icon-size-m) + 1px)}.aui-multi-select--small .aui-multi-select__suffix{right:calc(var(--aui-inline-padding-xs) + 1px);font-size:var(--aui-icon-size-m)}.aui-multi-select--mini{min-height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);padding-right:calc(var(--aui-inline-padding-xs) * 2 + var(--aui-icon-size-s) + 1px)}.aui-multi-select--mini .aui-multi-select__suffix{right:calc(var(--aui-inline-padding-xs) + 1px);font-size:var(--aui-icon-size-s)}.aui-multi-select__suffix{position:absolute;top:50%;transform:translateY(-50%)}.aui-multi-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-multi-select__icon-container .aui-icon{margin:0!important}.aui-multi-select.isDisabled .aui-multi-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-multi-select__indicator{display:flex}.aui-multi-select__clear{display:none}.aui-multi-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-multi-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-multi-select.isClearable:not(.isDisabled):hover .aui-multi-select__indicator{display:none}.aui-multi-select.isClearable:not(.isDisabled):hover .aui-multi-select__clear{display:flex;pointer-events:auto}.aui-multi-select.withHeightLimit{overflow:auto;position:static}.aui-multi-select.withHeightLimit::-webkit-scrollbar{width:8px;height:4px}.aui-multi-select.withHeightLimit::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-multi-select.withHeightLimit::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-multi-select.withHeightLimit::-webkit-scrollbar-corner{background-color:transparent}.aui-multi-select .aui-tag--info{background-color:rgb(var(--aui-color-n-10))}.aui-multi-select.isReadonly{cursor:default}.aui-multi-select.isReadonly .aui-tag{color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-n-10))}\n"] }]
291
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }], propDecorators: { tagClassFn: [{
292
- type: Input
293
- }], maxRowCount: [{
294
- type: Input
295
- }], customRowHeight: [{
296
- type: Input
297
- }], allowSelectAll: [{
298
- type: Input,
299
- args: [{ transform: coerceAttrBoolean }]
300
- }], inputRef: [{
301
- type: ViewChild,
302
- args: ['inputRef', { static: true }]
303
- }], inputValueMirror: [{
304
- type: ViewChild,
305
- args: ['inputValueMirror', { static: true }]
306
- }], hostPosition: [{
307
- type: HostBinding,
308
- args: ['style.position']
309
- }], hostDisplay: [{
310
- type: HostBinding,
311
- args: ['style.display']
312
- }] } });
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLEtBQUssRUFDTCxPQUFPLEVBQ1AsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixTQUFTLEdBQ1YsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBR0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxhQUFhLEVBQ2IsRUFBRSxFQUNGLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFFTCxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixVQUFVLEdBQ1gsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUs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QVM7K0JBQ0Usa0JBQWtCLG1CQU9YLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksdUJBQ2hCLEtBQUssYUFDZjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLFVBQVU7NEJBQ25CLFdBQVcsc0JBQXNCO3lCQUNsQztxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsS0FBSzt3QkFDTCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxRQUFRO3FCQUNUOzhHQW1CRCxVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7Z0JBSXZDLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl2QyxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTNDLFlBQVk7c0JBRGYsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTXpCLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTmdGb3IsXG4gIE5nQ2xhc3MsXG4gIE5nSWYsXG4gIE5nVGVtcGxhdGVPdXRsZXQsXG4gIEFzeW5jUGlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgb2YsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEkxOG5QaXBlIH0gZnJvbSAnLi4vLi4vaTE4bi9pMThuLnBpcGUnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgY3JlYXRlV2l0aE1heFJvd0NvdW50IH0gZnJvbSAnLi4vLi4vaW5wdXQvdGFncy1pbnB1dC93aXRoLW1heC1yb3ctY291bnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50U2l6ZSB9IGZyb20gJy4uLy4uL2ludGVybmFsL3R5cGVzJztcbmltcG9ydCB7XG4gIEJlbSxcbiAgYnVpbGRCZW0sXG4gIGNvZXJjZUF0dHJCb29sZWFuLFxuICBjb2VyY2VTdHJpbmcsXG4gIHB1Ymxpc2hSZWYsXG59IGZyb20gJy4uLy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7IFRhZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RhZy90YWcuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhc2VTZWxlY3QgfSBmcm9tICcuLi9iYXNlLXNlbGVjdCc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBTZWxlY3RBbGxTdGF0dXMsXG4gIFNlbGVjdEZpbHRlck9wdGlvbixcbiAgVGFnQ2xhc3NGbixcbn0gZnJvbSAnLi4vc2VsZWN0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLW11bHRpLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi4vLi4vaW5wdXQvaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICAgICcuLi8uLi90YWcvdGFnLmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTXVsdGlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBCYXNlU2VsZWN0LFxuICAgICAgdXNlRXhpc3Rpbmc6IE11bHRpU2VsZWN0Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgIEljb25Db21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgVGFnQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgTmdJZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE9wdGlvbkNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgSTE4blBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duPlxuICBleHRlbmRzIEJhc2VTZWxlY3Q8VCwgVFtdPlxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXRcbntcbiAgYmVtOiBCZW0gPSBidWlsZEJlbSgnYXVpLW11bHRpLXNlbGVjdCcpO1xuICBiZW1TZWxlY3RBbGw6IEJlbSA9IGJ1aWxkQmVtKCdhdWktb3B0aW9uJyk7XG4gIHNlbGVjdGVkT3B0aW9ucyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0RmlsdGVyT3B0aW9uPFQ+Pj47XG4gIHNlbGVjdEFsbFN0YXR1cyQ6IE9ic2VydmFibGU8U2VsZWN0QWxsU3RhdHVzPjtcbiAgc2VsZWN0QWxsU3RhdHVzOiBTZWxlY3RBbGxTdGF0dXM7XG4gIGhhc0VuYWJsZWRPcHRpb25zJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBvdmVycmlkZSBpc011bHRpID0gdHJ1ZTtcbiAgb3ZlcnJpZGUgbW9kZWw6IFRbXSA9IFtdO1xuXG4gIHZhbHVlcyQgPSB0aGlzLm1vZGVsJDtcblxuICBASW5wdXQoKVxuICB0YWdDbGFzc0ZuOiBUYWdDbGFzc0ZuPFQ+O1xuXG4gIEBJbnB1dCgpXG4gIG1heFJvd0NvdW50ID0gMDtcblxuICBASW5wdXQoKVxuICBjdXN0b21Sb3dIZWlnaHQgPSAwOyAvLyAwOiB1c2UgZGVmYXVsdCBzdHlsZSBjb25zdCB2YWx1ZSwgPiAxOiBmb3IgYGBgdGFnQ2xhc3NGbmBgYCBtYXliZSBhZmZlY3QgbGluZUhlaWdodFxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgYWxsb3dTZWxlY3RBbGw6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBpbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdpbnB1dFZhbHVlTWlycm9yJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgaW5wdXRWYWx1ZU1pcnJvcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb3NpdGlvbicpXG4gIGdldCBob3N0UG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aE1heFJvd0NvdW50Lmhvc3RQb3NpdGlvbigpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcbiAgZ2V0IGhvc3REaXNwbGF5KCkge1xuICAgIHJldHVybiB0aGlzLndpdGhNYXhSb3dDb3VudC5ob3N0RGlzcGxheSgpO1xuICB9XG5cbiAgaW5wdXRWYWx1ZSA9ICcnO1xuICBoYXNEaXNhYmxlZE9wdGlvbiA9IGZhbHNlO1xuXG4gIGdldCByb290Q2xhc3MoKSB7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuc2l6ZSB8fCBDb21wb25lbnRTaXplLk1lZGl1bTtcbiAgICByZXR1cm4gYGF1aS1pbnB1dCAke3RoaXMuYmVtLmJsb2NrKHNpemUpfWA7XG4gIH1cblxuICBnZXQgdGFnU2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSBDb21wb25lbnRTaXplLkxhcmdlXG4gICAgICA/IENvbXBvbmVudFNpemUuTWVkaXVtXG4gICAgICA6IENvbXBvbmVudFNpemUuTWluaTtcbiAgfVxuXG4gIGdldCBpbnB1dENsYXNzKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmJlbS5lbGVtZW50KCdpbnB1dCcsIHtcbiAgICAgIGhpZGRlbjogdGhpcy5pbmFjdGlvbixcbiAgICB9KX0gYXVpLXRhZyBhdWktdGFnLS0ke3RoaXMudGFnU2l6ZX1gO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlDbGVhckJ0bigpIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5jbGVhcmFibGUgJiYgdGhpcy5tb2RlbC5sZW5ndGg7XG4gIH1cblxuICBnZXQgbWF4SGVpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLndpdGhNYXhSb3dDb3VudC5tYXhIZWlnaHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgd2l0aE1heFJvd0NvdW50ID0gY3JlYXRlV2l0aE1heFJvd0NvdW50KHRoaXMpO1xuXG4gIGZvY3VzZWQgPSBmYWxzZTtcblxuICB0cmFja0J5VmFsdWUgPSAoXzogbnVtYmVyLCBpdGVtOiBTZWxlY3RGaWx0ZXJPcHRpb248VD4pID0+XG4gICAgdGhpcy50cmFja0ZuKGl0ZW0udmFsdWUpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICApIHtcbiAgICBzdXBlcihjZHIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm1vZGVsJCxcbiAgICAgIChcbiAgICAgICAgdGhpcy5jb250ZW50T3B0aW9ucy5jaGFuZ2VzIGFzIE9ic2VydmFibGU8UXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj4+XG4gICAgICApLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmNvbnRlbnRPcHRpb25zKSxcbiAgICAgICAgc3dpdGNoTWFwKChvcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+PikgPT5cbiAgICAgICAgICBvcHRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1hcChvcHRpb24gPT5cbiAgICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICBvcHRpb24udmFsdWUkLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb24ubGFiZWwkLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb24ubGFiZWxDb250ZXh0JCxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkJCxcbiAgICAgICAgICAgICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoW3ZhbHVlLCBsYWJlbCwgbGFiZWxDb250ZXh0LCBkaXNhYmxlZF0pID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWxDb250ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogb2YoW10gYXMgQXJyYXk8U2VsZWN0RmlsdGVyT3B0aW9uPFQ+PiksXG4gICAgICAgICksXG4gICAgICApLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt2YWx1ZXMsIG9wdGlvbnNdKSA9PlxuICAgICAgICB2YWx1ZXNcbiAgICAgICAgICAubWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgb3B0aW9uID0+IHRoaXMudHJhY2tGbihvcHRpb24udmFsdWUpID09PSB0aGlzLnRyYWNrRm4odmFsdWUpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDpcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmxhYmVsIHx8IGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4ob3B0aW9uLnZhbHVlKSksXG4gICAgICAgICAgICAgICAgICBsYWJlbENvbnRleHQ6IG9wdGlvbi5sYWJlbENvbnRleHQsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFiZWxGbj8uKHZhbHVlKSB8fCBjb2VyY2VTdHJpbmcodGhpcy50cmFja0ZuKHZhbHVlKSksXG4gICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLy8gc29ydCBkaXNhYmxlZCBvcHRpb25zIGFzIGZpcnN0XG4gICAgICAgICAgLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGlmIChhLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIHRhcChvcHRpb25zID0+ICh0aGlzLmhhc0Rpc2FibGVkT3B0aW9uID0gb3B0aW9ucy5zb21lKG8gPT4gby5kaXNhYmxlZCkpKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIHRoaXMuc2VsZWN0QWxsU3RhdHVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5hbGxPcHRpb25zJCxcbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nJCxcbiAgICBdKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChbYWxsT3B0aW9uc10pID0+XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgKGFsbE9wdGlvbnMgPz8gW10pXG4gICAgICAgICAgICAuZmlsdGVyKCh7IHZpc2libGUsIGRpc2FibGVkIH0pID0+IHZpc2libGUgJiYgIWRpc2FibGVkKVxuICAgICAgICAgICAgLm1hcCgoeyBzZWxlY3RlZCQgfSkgPT4gc2VsZWN0ZWQkKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBtYXAoc3RhdHVzZXMgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHN0YXR1c2VzLmZpbHRlcihCb29sZWFuKTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkLmxlbmd0aCA9PT0gMFxuICAgICAgICAgID8gU2VsZWN0QWxsU3RhdHVzLkVtcHR5XG4gICAgICAgICAgOiBzZWxlY3RlZC5sZW5ndGggPT09IHN0YXR1c2VzLmxlbmd0aFxuICAgICAgICAgICAgPyBTZWxlY3RBbGxTdGF0dXMuQ2hlY2tlZFxuICAgICAgICAgICAgOiBTZWxlY3RBbGxTdGF0dXMuSW5kZXRlcm1pbmF0ZTtcbiAgICAgIH0pLFxuICAgICAgc3RhcnRXaXRoKFNlbGVjdEFsbFN0YXR1cy5FbXB0eSksXG4gICAgICB0YXAoc2VsZWN0QWxsU3RhdHVzID0+ICh0aGlzLnNlbGVjdEFsbFN0YXR1cyA9IHNlbGVjdEFsbFN0YXR1cykpLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gICAgdGhpcy5oYXNFbmFibGVkT3B0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuYWxsT3B0aW9ucyQsXG4gICAgICB0aGlzLmZpbHRlclN0cmluZyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFthbGxPcHRpb25zXSkgPT5cbiAgICAgICAgICAhIWFsbE9wdGlvbnMuZmlsdGVyKCh7IHZpc2libGUsIGRpc2FibGVkIH0pID0+IHZpc2libGUgJiYgIWRpc2FibGVkKVxuICAgICAgICAgICAgLmxlbmd0aCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIG9uVmlzaWJsZU9wdGlvbnModmlzaWJsZTogYm9vbGVhbikge1xuICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICBzdXBlci5vblNob3dPcHRpb25zKCk7XG4gICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIub25IaWRlT3B0aW9ucygpO1xuICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJyk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgb25JbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBzdXBlci5vbklucHV0KGV2ZW50KTtcbiAgICB0aGlzLnNldElucHV0V2lkdGgoKTtcbiAgICB0aGlzLnRvb2x0aXBSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgfVxuXG4gIG9uSW5wdXRGb2N1cygpIHtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICB9XG5cbiAgb25JbnB1dEJsdXIoKSB7XG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyAmJlxuICAgICAgdGhpcy5maWx0ZXJTdHJpbmcgPT09ICcnICYmXG4gICAgICB0aGlzLm1vZGVsLmxlbmd0aCA+IDAgJiZcbiAgICAgICF0aGlzLmhhc0Rpc2FibGVkT3B0aW9uIC8vIERpc2FibGVkIGJhY2tzcGFjZSB3aGVuIGFueSBvZiBzZWxlY3Qgb3B0aW9ucyBoYXZlIGRpc2FibGVkIHN0YXRlLlxuICAgICkge1xuICAgICAgdGhpcy5yZW1vdmVWYWx1ZSh0aGlzLm1vZGVsLmF0KC0xKSk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5tb2RlbFxuICAgICAgICAgIC5tYXAodmFsdWUgPT4gdGhpcy50cmFja0ZuKHZhbHVlKSlcbiAgICAgICAgICAuaW5jbHVkZXMoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNlbGVjdEZvY3VzZWRPcHRpb24oKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIub25LZXlEb3duKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RPcHRpb24ob3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD4pIHtcbiAgICBpZiAob3B0aW9uLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnJlbW92ZVZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkVmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgaXNDdXN0b20gPSAhdGhpcy5jb250ZW50T3B0aW9ucy5zb21lKFxuICAgICAgKHsgdmFsdWUgfSkgPT4gdmFsdWUgPT09IG9wdGlvbi52YWx1ZSxcbiAgICApO1xuICAgIGlmIChpc0N1c3RvbSkge1xuICAgICAgdGhpcy5yZXNldEZvY3VzZWRPcHRpb24oKTtcbiAgICB9XG4gIH1cblxuICBhZGRWYWx1ZSh2YWx1ZTogVCkge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMubW9kZWwuY29uY2F0KHZhbHVlKTtcbiAgICB0aGlzLmVtaXRWYWx1ZSh2YWx1ZXMpO1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLnJlc2V0SW5wdXQoKTtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudG9vbHRpcFJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlVmFsdWUodmFsdWU6IFQpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLm1vZGVsLmZpbHRlcihcbiAgICAgIGl0ZW0gPT4gdGhpcy50cmFja0ZuKGl0ZW0pICE9PSB0aGlzLnRyYWNrRm4odmFsdWUpLFxuICAgICk7XG4gICAgdGhpcy5lbWl0VmFsdWUodmFsdWVzKTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnRvb2x0aXBSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyVmFsdWUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5lbWl0VmFsdWUoW10pO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvblNlbGVjdEFsbENsaWNrKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHZpc2libGVPcHRpb25zVmFsdWUgPSB0aGlzLmFsbE9wdGlvbnNcbiAgICAgIC5maWx0ZXIoKHsgdmlzaWJsZSwgZGlzYWJsZWQgfSkgPT4gdmlzaWJsZSAmJiAhZGlzYWJsZWQpXG4gICAgICAubWFwKCh7IHZhbHVlIH0pID0+IHZhbHVlKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdEFsbFN0YXR1cyA9PT0gU2VsZWN0QWxsU3RhdHVzLkNoZWNrZWQpIHtcbiAgICAgIHRoaXMuZW1pdFZhbHVlKFxuICAgICAgICB0aGlzLm1vZGVsLmZpbHRlcih2YWx1ZSA9PiAhdGhpcy5pbmNsdWRlcyh2aXNpYmxlT3B0aW9uc1ZhbHVlLCB2YWx1ZSkpLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbWl0VmFsdWUoXG4gICAgICAgIHRoaXMubW9kZWwuY29uY2F0KHZpc2libGVPcHRpb25zVmFsdWUpLnJlZHVjZTxUW10+KChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuaW5jbHVkZXMoYWNjLCBjdXJyKSkge1xuICAgICAgICAgICAgYWNjLnB1c2goY3Vycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbmNsdWRlcyh2YWx1ZXM6IFRbXSwgdmFsdWU6IFQpIHtcbiAgICByZXR1cm4gdmFsdWVzLnNvbWUodiA9PiB0aGlzLnRyYWNrRm4odikgPT09IHRoaXMudHJhY2tGbih2YWx1ZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlSW4odjogVFtdKTogVFtdIHtcbiAgICB0aGlzLnJlc2V0SW5wdXQoKTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy50b29sdGlwUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHYgfHwgW107XG4gIH1cblxuICBwcml2YXRlIHJlc2V0SW5wdXQoKSB7XG4gICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5zZXRJbnB1dFdpZHRoKCk7XG4gICAgdGhpcy5maWx0ZXJTdHJpbmcgPSAnJztcbiAgfVxuXG4gIC8vIGNhbGN1bGF0ZSBpbnB1dCBlbGVtZW50IHdpZHRoIGFjY29yZGluZyB0byBpdHMgdmFsdWVcbiAgcHJpdmF0ZSBzZXRJbnB1dFdpZHRoKCkge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBpZiAodmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICd3aWR0aCcsXG4gICAgICAgICAgYCR7dGhpcy5pbnB1dFZhbHVlTWlycm9yLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGh9cHhgLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtjbGFzc109XCJyb290Q2xhc3NcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgaXNEaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgaXNGb2N1c2VkOiBmb2N1c2VkLFxuICAgIGlzQ2xlYXJhYmxlOiBkaXNwbGF5Q2xlYXJCdG4sXG4gICAgd2l0aEhlaWdodExpbWl0OiBtYXhSb3dDb3VudCA+IDAsXG4gICAgaXNSZWFkb25seTogcmVhZG9ubHksXG4gIH1cIlxuICAjc2VsZWN0UmVmXG4gICN0b29sdGlwUmVmPVwiYXVpVG9vbHRpcFwiXG4gIFthdWlUb29sdGlwXT1cInRlbXBsYXRlUmVmXCJcbiAgYXVpVG9vbHRpcEFuaW1UeXBlPVwic2NhbGVZXCJcbiAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIGF1aVRvb2x0aXBUcmlnZ2VyPVwiY2xpY2tcIlxuICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gc3RhcnRcIlxuICBhdWlUb29sdGlwVHlwZT1cInBsYWluXCJcbiAgKGF1aVRvb2x0aXBWaXNpYmxlQ2hhbmdlKT1cIm9uVmlzaWJsZU9wdGlvbnMoJGV2ZW50KVwiXG4gIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICBbc3R5bGUubWF4LWhlaWdodF09XCJtYXhIZWlnaHRcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYXVpLW11bHRpLXNlbGVjdF9fc3VmZml4XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJhdWktbXVsdGktc2VsZWN0X19pY29uLWNvbnRhaW5lclwiPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGNsYXNzPVwiYXVpLW11bHRpLXNlbGVjdF9faW5kaWNhdG9yXCJcbiAgICAgICAgW2ljb25dPVwibG9hZGluZyA/ICdzcGlubmVyJyA6ICdjYXJldF9kb3duX3MnXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGNsYXNzPVwiYXVpLW11bHRpLXNlbGVjdF9fY2xlYXJcIlxuICAgICAgICBpY29uPVwieG1hcmtfc21hbGxcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxzcGFuXG4gICAgW2hpZGRlbl09XCJtb2RlbC5sZW5ndGggfHwgaW5wdXRSZWYudmFsdWUubGVuZ3RoXCJcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3BsYWNlaG9sZGVyJylcIlxuICA+XG4gICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgPC9zcGFuPlxuICA8YXVpLXRhZ1xuICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja0J5VmFsdWVcIlxuICAgIHR5cGU9XCJpbmZvXCJcbiAgICBbcm91bmRdPVwidHJ1ZVwiXG4gICAgW2JvcmRlcl09XCJ0cnVlXCJcbiAgICBbc2l6ZV09XCJ0YWdTaXplXCJcbiAgICBbY2xvc2VhYmxlXT1cIiFkaXNhYmxlZCAmJiAhb3B0aW9uLmRpc2FibGVkXCJcbiAgICAoY2xvc2UpPVwicmVtb3ZlVmFsdWUob3B0aW9uLnZhbHVlKVwiXG4gICAgW25nQ2xhc3NdPVwidGFnQ2xhc3NGbiAmJiB0YWdDbGFzc0ZuKG9wdGlvbi5sYWJlbCwgb3B0aW9uLnZhbHVlKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImlzVGVtcGxhdGVSZWYob3B0aW9uLmxhYmVsKTsgZWxzZSBsYWJlbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIm9wdGlvbi5sYWJlbENvbnRleHRcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2xhYmVsPlxuICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9hdWktdGFnPlxuICA8aW5wdXRcbiAgICAjaW5wdXRSZWZcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2NsYXNzXT1cImlucHV0Q2xhc3NcIlxuICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoKVwiXG4gICAgKGJsdXIpPVwib25JbnB1dEJsdXIoKVwiXG4gICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAvPlxuICA8c3BhblxuICAgICNpbnB1dFZhbHVlTWlycm9yXG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdtaXJyb3InKVwiXG4gID5cbiAgICB7eyBpbnB1dFZhbHVlIH19XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlUmVmPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJhdWktb3B0aW9uLWNvbnRhaW5lclwiXG4gICAgW3N0eWxlLm1pbldpZHRoXT1cImNvbnRhaW5lcldpZHRoXCJcbiAgICAobW91c2Vkb3duKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgICNvcHRpb25MaXN0UmVmXG4gICAgICBjbGFzcz1cImF1aS1vcHRpb24tY29udGFpbmVyX19jb250ZW50XCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgYWxsb3dTZWxlY3RBbGwgJiZcbiAgICAgICAgICAoaGFzRW5hYmxlZE9wdGlvbnMkIHwgYXN5bmMpICYmXG4gICAgICAgICAgKChoYXNWaXNpYmxlT3B0aW9uJCB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgKGFsbG93Q3JlYXRlICYmIChjdXN0b21DcmVhdGVkT3B0aW9ucyQgfCBhc3luYykubGVuZ3RoKSB8fFxuICAgICAgICAgICAgKGFsbG93Q3JlYXRlICYmIGZpbHRlclN0cmluZykpXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImF1aS1vcHRpb25cIlxuICAgICAgICAgIFtjbGFzc109XCJiZW1TZWxlY3RBbGwuYmxvY2soc2l6ZSQgfCBhc3luYylcIlxuICAgICAgICAgIFtjbGFzcy5pc0Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbY2xhc3MuaXNTZWxlY3RlZF09XCIhIShzZWxlY3RBbGxTdGF0dXMkIHwgYXN5bmMpXCJcbiAgICAgICAgICBbY2xhc3MuaXNJbmRldGVybWluYXRlXT1cIlxuICAgICAgICAgICAgKHNlbGVjdEFsbFN0YXR1cyQgfCBhc3luYykgPT09ICdpbmRldGVybWluYXRlJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgW2NsYXNzLmlzTXVsdGldPVwidHJ1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0QWxsQ2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImF1aS1vcHRpb25fX3BvaW50ZXJcIj5cbiAgICAgICAgICAgIDxhdWktaWNvblxuICAgICAgICAgICAgICAqbmdJZj1cIihzZWxlY3RBbGxTdGF0dXMkIHwgYXN5bmMpID09PSAnY2hlY2tlZCdcIlxuICAgICAgICAgICAgICBpY29uPVwiY2hlY2tcIlxuICAgICAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgICAgPC9pPlxuICAgICAgICAgIHt7ICdzZWxlY3RfYWxsJyB8IGF1aUkxOG4gfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdWktb3B0aW9uX19kaXZpZGVyXCI+PC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICNpbnB1dHRpbmdPcHRpb25cbiAgICAgICAgKm5nSWY9XCJhbGxvd0NyZWF0ZSAmJiBmaWx0ZXJTdHJpbmcgJiYgIShoYXNNYXRjaGVkT3B0aW9uJCB8IGFzeW5jKVwiXG4gICAgICAgIFt2YWx1ZV09XCJmaWx0ZXJTdHJpbmdcIlxuICAgICAgPlxuICAgICAgICB7eyBmaWx0ZXJTdHJpbmcgfX1cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbGxvd0NyZWF0ZVwiPlxuICAgICAgICA8YXVpLW9wdGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgY3VzdG9tQ3JlYXRlZE9wdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgICEoXG4gICAgICAgICAgKGhhc1Zpc2libGVPcHRpb24kIHwgYXN5bmMpIHx8XG4gICAgICAgICAgKGFsbG93Q3JlYXRlICYmIChjdXN0b21DcmVhdGVkT3B0aW9ucyQgfCBhc3luYykubGVuZ3RoKSB8fFxuICAgICAgICAgIChhbGxvd0NyZWF0ZSAmJiBmaWx0ZXJTdHJpbmcpXG4gICAgICAgIClcbiAgICAgIFwiXG4gICAgICBjbGFzcz1cImF1aS1vcHRpb24tY29udGFpbmVyX19wbGFjZWhvbGRlclwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXVpLW9wdGlvbi1wbGFjZWhvbGRlclwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19