@acorex/components 5.0.2 → 5.0.4

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 (316) hide show
  1. package/README.md +24 -24
  2. package/acorex-components.d.ts +5 -5
  3. package/bundles/acorex-components.umd.js +6719 -6658
  4. package/bundles/acorex-components.umd.js.map +1 -1
  5. package/esm2015/acorex-components.js +4 -4
  6. package/esm2015/lib/alert/alert-button.component.js +52 -52
  7. package/esm2015/lib/alert/alert-contnet.component.js +21 -21
  8. package/esm2015/lib/alert/alert-footer.component.js +27 -27
  9. package/esm2015/lib/alert/alert-suffix.component.js +27 -27
  10. package/esm2015/lib/alert/alert-title.component.js +23 -23
  11. package/esm2015/lib/alert/alert.component.js +131 -130
  12. package/esm2015/lib/alert/alert.module.js +43 -43
  13. package/esm2015/lib/alert/index.js +8 -8
  14. package/esm2015/lib/avatar/avatar.component.js +55 -55
  15. package/esm2015/lib/avatar/avatar.module.js +21 -21
  16. package/esm2015/lib/avatar/index.js +3 -3
  17. package/esm2015/lib/base/common.module.js +18 -18
  18. package/esm2015/lib/base/custom-cdk-overlay.service.js +47 -47
  19. package/esm2015/lib/base/drawing.class.js +11 -11
  20. package/esm2015/lib/base/events.class.js +53 -47
  21. package/esm2015/lib/base/index.js +7 -7
  22. package/esm2015/lib/base/mixin/base-components.class.js +83 -83
  23. package/esm2015/lib/base/mixin/button-mixin.class.js +129 -129
  24. package/esm2015/lib/base/mixin/clickable-mixin.class.js +24 -24
  25. package/esm2015/lib/base/mixin/constratctor.js +2 -2
  26. package/esm2015/lib/base/mixin/datalist-component.class.js +97 -97
  27. package/esm2015/lib/base/mixin/dropdown-mixin.class.js +36 -36
  28. package/esm2015/lib/base/mixin/index.js +3 -3
  29. package/esm2015/lib/base/mixin/interactive-mixin.class.js +72 -72
  30. package/esm2015/lib/base/mixin/loading-mixin.class.js +18 -18
  31. package/esm2015/lib/base/mixin/mixin.class.js +23 -23
  32. package/esm2015/lib/base/mixin/selection-component.class.js +158 -158
  33. package/esm2015/lib/base/mixin/sizable-mixin.class.js +18 -18
  34. package/esm2015/lib/base/mixin/textbox-mixin.class.js +38 -38
  35. package/esm2015/lib/base/mixin/value-mixin.class.js +190 -190
  36. package/esm2015/lib/base/overlay.service.js +91 -91
  37. package/esm2015/lib/base/responsive.directive.js +34 -34
  38. package/esm2015/lib/base/styles.class.js +4 -4
  39. package/esm2015/lib/button/button-group.component.js +131 -131
  40. package/esm2015/lib/button/button-item.class.js +2 -2
  41. package/esm2015/lib/button/button-item.component.js +81 -81
  42. package/esm2015/lib/button/button.component.js +51 -52
  43. package/esm2015/lib/button/button.module.js +37 -37
  44. package/esm2015/lib/button/dropdown-button.component.js +200 -200
  45. package/esm2015/lib/button/index.js +7 -7
  46. package/esm2015/lib/calendar/calendar.component.js +59 -59
  47. package/esm2015/lib/calendar/calendar.module.js +24 -24
  48. package/esm2015/lib/calendar/index.js +3 -3
  49. package/esm2015/lib/carousel/carousel-arrows.component.js +53 -53
  50. package/esm2015/lib/carousel/carousel-item.component.js +21 -21
  51. package/esm2015/lib/carousel/carousel-pager.component.js +74 -74
  52. package/esm2015/lib/carousel/carousel-splidejs.class.js +82 -82
  53. package/esm2015/lib/carousel/carousel.class.js +10 -10
  54. package/esm2015/lib/carousel/carousel.component.js +246 -246
  55. package/esm2015/lib/carousel/carousel.module.js +24 -24
  56. package/esm2015/lib/carousel/index.js +7 -7
  57. package/esm2015/lib/checkbox/checkbox.component.js +40 -40
  58. package/esm2015/lib/checkbox/checkbox.module.js +20 -20
  59. package/esm2015/lib/checkbox/index.js +3 -3
  60. package/esm2015/lib/datalist/datalist.component.js +81 -81
  61. package/esm2015/lib/datalist/datalist.module.js +22 -22
  62. package/esm2015/lib/datalist/index.js +3 -3
  63. package/esm2015/lib/datepicker/datepicker.component.js +64 -64
  64. package/esm2015/lib/datepicker/datepicker.module.js +23 -23
  65. package/esm2015/lib/datepicker/index.js +3 -3
  66. package/esm2015/lib/decorators/decorators.module.js +22 -22
  67. package/esm2015/lib/decorators/index.js +4 -4
  68. package/esm2015/lib/decorators/prefix.component.js +27 -27
  69. package/esm2015/lib/decorators/suffix.component.js +35 -35
  70. package/esm2015/lib/dialog/dialog.class.js +2 -2
  71. package/esm2015/lib/dialog/dialog.component.js +45 -45
  72. package/esm2015/lib/dialog/dialog.module.js +26 -26
  73. package/esm2015/lib/dialog/dialog.service.js +127 -127
  74. package/esm2015/lib/dialog/index.js +5 -5
  75. package/esm2015/lib/drawer/drawer-container.component.js +73 -73
  76. package/esm2015/lib/drawer/drawer-content.component.js +27 -27
  77. package/esm2015/lib/drawer/drawer.component.js +145 -145
  78. package/esm2015/lib/drawer/drawer.module.js +23 -23
  79. package/esm2015/lib/drawer/index.js +5 -5
  80. package/esm2015/lib/dropdown/dropdown-panel.component.js +194 -191
  81. package/esm2015/lib/dropdown/dropdown.component.js +139 -139
  82. package/esm2015/lib/dropdown/dropdown.module.js +24 -24
  83. package/esm2015/lib/dropdown/index.js +4 -4
  84. package/esm2015/lib/form/form-field.component.js +20 -20
  85. package/esm2015/lib/form/form-field.module.js +21 -21
  86. package/esm2015/lib/form/form-hint.component.js +20 -20
  87. package/esm2015/lib/form/form.component.js +51 -51
  88. package/esm2015/lib/form/index.js +5 -5
  89. package/esm2015/lib/icon/icon.component.js +28 -28
  90. package/esm2015/lib/icon/icon.module.js +21 -21
  91. package/esm2015/lib/icon/index.js +3 -3
  92. package/esm2015/lib/input-mask/index.js +3 -3
  93. package/esm2015/lib/input-mask/input-mask.component.js +42 -42
  94. package/esm2015/lib/input-mask/input-mask.module.js +23 -23
  95. package/esm2015/lib/label/index.js +3 -3
  96. package/esm2015/lib/label/label.component.js +20 -20
  97. package/esm2015/lib/label/label.module.js +21 -21
  98. package/esm2015/lib/loading/index.js +6 -6
  99. package/esm2015/lib/loading/loading-spinner.component.js +32 -32
  100. package/esm2015/lib/loading/loading.component.js +54 -54
  101. package/esm2015/lib/loading/loading.directive.js +67 -67
  102. package/esm2015/lib/loading/loading.module.js +35 -35
  103. package/esm2015/lib/loading/loading.service.js +155 -155
  104. package/esm2015/lib/number-box/index.js +3 -3
  105. package/esm2015/lib/number-box/number-box.component.js +289 -289
  106. package/esm2015/lib/number-box/number-box.module.js +32 -32
  107. package/esm2015/lib/page/base-page.class.js +66 -66
  108. package/esm2015/lib/page/index.js +5 -5
  109. package/esm2015/lib/page/page-footer.component.js +32 -32
  110. package/esm2015/lib/page/page.component.js +33 -33
  111. package/esm2015/lib/page/page.module.js +18 -18
  112. package/esm2015/lib/popover/index.js +3 -3
  113. package/esm2015/lib/popover/popover.component.js +119 -119
  114. package/esm2015/lib/popover/popover.module.js +19 -19
  115. package/esm2015/lib/popup/index.js +4 -4
  116. package/esm2015/lib/popup/popup.component.js +97 -97
  117. package/esm2015/lib/popup/popup.module.js +26 -26
  118. package/esm2015/lib/popup/popup.service.js +94 -94
  119. package/esm2015/lib/range-slider/index.js +3 -0
  120. package/esm2015/lib/range-slider/range-slider.component.js +22 -0
  121. package/esm2015/lib/range-slider/range-slider.module.js +21 -0
  122. package/esm2015/lib/selectbox/index.js +3 -3
  123. package/esm2015/lib/selectbox/selectbox.component.js +193 -193
  124. package/esm2015/lib/selectbox/selectbox.module.js +21 -21
  125. package/esm2015/lib/selection-list/index.js +3 -3
  126. package/esm2015/lib/selection-list/selection-list.component.js +46 -46
  127. package/esm2015/lib/selection-list/selection-list.module.js +21 -21
  128. package/esm2015/lib/side-menu/index.js +3 -3
  129. package/esm2015/lib/side-menu/side-menu.component.js +21 -21
  130. package/esm2015/lib/side-menu/side-menu.module.js +21 -21
  131. package/esm2015/lib/switch/index.js +3 -3
  132. package/esm2015/lib/switch/switch.component.js +30 -30
  133. package/esm2015/lib/switch/switch.module.js +21 -21
  134. package/esm2015/lib/tabs/index.js +6 -6
  135. package/esm2015/lib/tabs/tab-strip.component.js +61 -61
  136. package/esm2015/lib/tabs/tab-view.component.js +46 -46
  137. package/esm2015/lib/tabs/tab.component.js +59 -59
  138. package/esm2015/lib/tabs/tabs.class.js +4 -4
  139. package/esm2015/lib/tabs/tabs.module.js +23 -23
  140. package/esm2015/lib/textbox/index.js +3 -3
  141. package/esm2015/lib/textbox/textbox.component.js +62 -60
  142. package/esm2015/lib/textbox/textbox.module.js +43 -39
  143. package/esm2015/lib/time-box/index.js +3 -3
  144. package/esm2015/lib/time-box/time-box.component.js +134 -134
  145. package/esm2015/lib/time-box/time-box.module.js +32 -32
  146. package/esm2015/lib/toast/index.js +5 -5
  147. package/esm2015/lib/toast/toast.class.js +2 -2
  148. package/esm2015/lib/toast/toast.component.js +50 -50
  149. package/esm2015/lib/toast/toast.module.js +22 -22
  150. package/esm2015/lib/toast/toast.service.js +114 -114
  151. package/esm2015/lib/tooltip/index.js +4 -4
  152. package/esm2015/lib/tooltip/tooltip.component.js +45 -45
  153. package/esm2015/lib/tooltip/tooltip.directive.js +86 -86
  154. package/esm2015/lib/tooltip/tooltip.module.js +23 -23
  155. package/esm2015/lib/validation/index.js +3 -3
  156. package/esm2015/lib/validation/validation-rule.widget.js +113 -113
  157. package/esm2015/lib/validation/validation.class.js +2 -2
  158. package/esm2015/lib/validation/validation.module.js +32 -32
  159. package/esm2015/public-api.js +39 -38
  160. package/fesm2015/acorex-components.js +5811 -5763
  161. package/fesm2015/acorex-components.js.map +1 -1
  162. package/lib/alert/alert-button.component.d.ts +13 -13
  163. package/lib/alert/alert-contnet.component.d.ts +5 -5
  164. package/lib/alert/alert-footer.component.d.ts +5 -5
  165. package/lib/alert/alert-suffix.component.d.ts +5 -5
  166. package/lib/alert/alert-title.component.d.ts +5 -5
  167. package/lib/alert/alert.component.d.ts +46 -46
  168. package/lib/alert/alert.module.d.ts +13 -13
  169. package/lib/alert/index.d.ts +7 -7
  170. package/lib/avatar/avatar.component.d.ts +20 -20
  171. package/lib/avatar/avatar.module.d.ts +8 -8
  172. package/lib/avatar/index.d.ts +2 -2
  173. package/lib/base/common.module.d.ts +7 -7
  174. package/lib/base/custom-cdk-overlay.service.d.ts +19 -19
  175. package/lib/base/drawing.class.d.ts +9 -9
  176. package/lib/base/events.class.d.ts +72 -65
  177. package/lib/base/index.d.ts +6 -6
  178. package/lib/base/mixin/base-components.class.d.ts +84 -84
  179. package/lib/base/mixin/button-mixin.class.d.ts +79 -79
  180. package/lib/base/mixin/clickable-mixin.class.d.ts +42 -42
  181. package/lib/base/mixin/constratctor.d.ts +4 -4
  182. package/lib/base/mixin/datalist-component.class.d.ts +54 -54
  183. package/lib/base/mixin/dropdown-mixin.class.d.ts +47 -47
  184. package/lib/base/mixin/index.d.ts +2 -2
  185. package/lib/base/mixin/interactive-mixin.class.d.ts +60 -63
  186. package/lib/base/mixin/loading-mixin.class.d.ts +46 -48
  187. package/lib/base/mixin/mixin.class.d.ts +814 -814
  188. package/lib/base/mixin/selection-component.class.d.ts +55 -55
  189. package/lib/base/mixin/sizable-mixin.class.d.ts +40 -40
  190. package/lib/base/mixin/textbox-mixin.class.d.ts +59 -61
  191. package/lib/base/mixin/value-mixin.class.d.ts +68 -71
  192. package/lib/base/overlay.service.d.ts +31 -31
  193. package/lib/base/responsive.directive.d.ts +10 -10
  194. package/lib/base/styles.class.d.ts +17 -17
  195. package/lib/button/button-group.component.d.ts +36 -35
  196. package/lib/button/button-item.class.d.ts +22 -22
  197. package/lib/button/button-item.component.d.ts +92 -92
  198. package/lib/button/button.component.d.ts +18 -18
  199. package/lib/button/button.module.d.ts +13 -13
  200. package/lib/button/dropdown-button.component.d.ts +234 -234
  201. package/lib/button/index.d.ts +6 -6
  202. package/lib/calendar/calendar.component.d.ts +16 -16
  203. package/lib/calendar/calendar.module.d.ts +11 -11
  204. package/lib/calendar/index.d.ts +2 -2
  205. package/lib/carousel/carousel-arrows.component.d.ts +14 -14
  206. package/lib/carousel/carousel-item.component.d.ts +8 -8
  207. package/lib/carousel/carousel-pager.component.d.ts +22 -22
  208. package/lib/carousel/carousel-splidejs.class.d.ts +18 -18
  209. package/lib/carousel/carousel.class.d.ts +48 -48
  210. package/lib/carousel/carousel.component.d.ts +62 -62
  211. package/lib/carousel/carousel.module.d.ts +11 -11
  212. package/lib/carousel/index.d.ts +6 -6
  213. package/lib/checkbox/checkbox.component.d.ts +12 -12
  214. package/lib/checkbox/checkbox.module.d.ts +9 -9
  215. package/lib/checkbox/index.d.ts +2 -2
  216. package/lib/datalist/datalist.component.d.ts +25 -25
  217. package/lib/datalist/datalist.module.d.ts +9 -9
  218. package/lib/datalist/index.d.ts +2 -2
  219. package/lib/datepicker/datepicker.component.d.ts +18 -18
  220. package/lib/datepicker/datepicker.module.d.ts +10 -10
  221. package/lib/datepicker/index.d.ts +2 -2
  222. package/lib/decorators/decorators.module.d.ts +9 -9
  223. package/lib/decorators/index.d.ts +3 -3
  224. package/lib/decorators/prefix.component.d.ts +8 -8
  225. package/lib/decorators/suffix.component.d.ts +8 -8
  226. package/lib/dialog/dialog.class.d.ts +12 -12
  227. package/lib/dialog/dialog.component.d.ts +15 -15
  228. package/lib/dialog/dialog.module.d.ts +13 -13
  229. package/lib/dialog/dialog.service.d.ts +18 -18
  230. package/lib/dialog/index.d.ts +4 -4
  231. package/lib/drawer/drawer-container.component.d.ts +13 -13
  232. package/lib/drawer/drawer-content.component.d.ts +8 -8
  233. package/lib/drawer/drawer.component.d.ts +30 -30
  234. package/lib/drawer/drawer.module.d.ts +10 -10
  235. package/lib/drawer/index.d.ts +4 -4
  236. package/lib/dropdown/dropdown-panel.component.d.ts +117 -116
  237. package/lib/dropdown/dropdown.component.d.ts +31 -31
  238. package/lib/dropdown/dropdown.module.d.ts +13 -13
  239. package/lib/dropdown/index.d.ts +3 -3
  240. package/lib/form/form-field.component.d.ts +8 -8
  241. package/lib/form/form-field.module.d.ts +10 -10
  242. package/lib/form/form-hint.component.d.ts +8 -8
  243. package/lib/form/form.component.d.ts +13 -13
  244. package/lib/form/index.d.ts +4 -4
  245. package/lib/icon/icon.component.d.ts +10 -10
  246. package/lib/icon/icon.module.d.ts +8 -8
  247. package/lib/icon/index.d.ts +2 -2
  248. package/lib/input-mask/index.d.ts +2 -2
  249. package/lib/input-mask/input-mask.component.d.ts +14 -14
  250. package/lib/input-mask/input-mask.module.d.ts +9 -9
  251. package/lib/label/index.d.ts +2 -2
  252. package/lib/label/label.component.d.ts +8 -8
  253. package/lib/label/label.module.d.ts +8 -8
  254. package/lib/loading/index.d.ts +5 -5
  255. package/lib/loading/loading-spinner.component.d.ts +5 -5
  256. package/lib/loading/loading.component.d.ts +19 -19
  257. package/lib/loading/loading.directive.d.ts +22 -22
  258. package/lib/loading/loading.module.d.ts +13 -13
  259. package/lib/loading/loading.service.d.ts +48 -48
  260. package/lib/number-box/index.d.ts +2 -2
  261. package/lib/number-box/number-box.component.d.ts +69 -69
  262. package/lib/number-box/number-box.module.d.ts +11 -11
  263. package/lib/page/base-page.class.d.ts +37 -37
  264. package/lib/page/index.d.ts +4 -4
  265. package/lib/page/page-footer.component.d.ts +7 -7
  266. package/lib/page/page.component.d.ts +13 -13
  267. package/lib/page/page.module.d.ts +7 -7
  268. package/lib/popover/index.d.ts +2 -2
  269. package/lib/popover/popover.component.d.ts +30 -30
  270. package/lib/popover/popover.module.d.ts +8 -8
  271. package/lib/popup/index.d.ts +3 -3
  272. package/lib/popup/popup.component.d.ts +33 -33
  273. package/lib/popup/popup.module.d.ts +12 -12
  274. package/lib/popup/popup.service.d.ts +37 -37
  275. package/lib/range-slider/index.d.ts +2 -0
  276. package/lib/range-slider/range-slider.component.d.ts +8 -0
  277. package/lib/range-slider/range-slider.module.d.ts +8 -0
  278. package/lib/selectbox/index.d.ts +2 -2
  279. package/lib/selectbox/selectbox.component.d.ts +28 -28
  280. package/lib/selectbox/selectbox.module.d.ts +10 -10
  281. package/lib/selection-list/index.d.ts +2 -2
  282. package/lib/selection-list/selection-list.component.d.ts +10 -10
  283. package/lib/selection-list/selection-list.module.d.ts +10 -10
  284. package/lib/side-menu/index.d.ts +2 -2
  285. package/lib/side-menu/side-menu.component.d.ts +8 -8
  286. package/lib/side-menu/side-menu.module.d.ts +8 -8
  287. package/lib/switch/index.d.ts +2 -2
  288. package/lib/switch/switch.component.d.ts +9 -9
  289. package/lib/switch/switch.module.d.ts +9 -9
  290. package/lib/tabs/index.d.ts +5 -5
  291. package/lib/tabs/tab-strip.component.d.ts +17 -17
  292. package/lib/tabs/tab-view.component.d.ts +14 -14
  293. package/lib/tabs/tab.component.d.ts +18 -18
  294. package/lib/tabs/tabs.class.d.ts +18 -18
  295. package/lib/tabs/tabs.module.d.ts +10 -10
  296. package/lib/textbox/index.d.ts +2 -2
  297. package/lib/textbox/textbox.component.d.ts +19 -19
  298. package/lib/textbox/textbox.module.d.ts +13 -12
  299. package/lib/time-box/index.d.ts +2 -2
  300. package/lib/time-box/time-box.component.d.ts +29 -29
  301. package/lib/time-box/time-box.module.d.ts +11 -11
  302. package/lib/toast/index.d.ts +4 -4
  303. package/lib/toast/toast.class.d.ts +14 -14
  304. package/lib/toast/toast.component.d.ts +16 -16
  305. package/lib/toast/toast.module.d.ts +9 -9
  306. package/lib/toast/toast.service.d.ts +18 -18
  307. package/lib/tooltip/index.d.ts +3 -3
  308. package/lib/tooltip/tooltip.component.d.ts +10 -10
  309. package/lib/tooltip/tooltip.directive.d.ts +18 -18
  310. package/lib/tooltip/tooltip.module.d.ts +10 -10
  311. package/lib/validation/index.d.ts +2 -2
  312. package/lib/validation/validation-rule.widget.d.ts +25 -25
  313. package/lib/validation/validation.class.d.ts +17 -17
  314. package/lib/validation/validation.module.d.ts +9 -9
  315. package/package.json +18 -18
  316. package/public-api.d.ts +37 -36
@@ -1,193 +1,193 @@
1
- import { ChangeDetectionStrategy, Component, HostListener, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { AXBaseSelectionDropdownMixin } from '../base';
3
- import { AXDropdownComponent } from '../dropdown';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../dropdown/dropdown.component";
6
- import * as i2 from "@angular/common";
7
- export class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {
8
- constructor(elementRef, cdr, zone) {
9
- super(elementRef, cdr);
10
- this.zone = zone;
11
- this._currentfocusedIndex = -1;
12
- }
13
- open() {
14
- this.dropdown.open();
15
- }
16
- close() {
17
- this.dropdown.close();
18
- }
19
- toggle() {
20
- this.dropdown.toggle();
21
- }
22
- onViewInit() {
23
- this.dropdown.onOpened.subscribe(() => {
24
- this._focusSelectedItem();
25
- });
26
- }
27
- get isOpen() {
28
- return this.dropdown.isOpen;
29
- }
30
- _handleOnItemClick(e, item) {
31
- this.close();
32
- this.toggleSelect(item);
33
- }
34
- _handleListScroll(e) {
35
- const list = e.target;
36
- if ((list.scrollTop < list.scrollHeight - list.clientHeight)) {
37
- return;
38
- }
39
- this._fetchData();
40
- }
41
- _checkForLoadData() {
42
- const list = this.listContainer.nativeElement;
43
- if (this.loadedCount < this.totalCount && list.clientHeight < list.parentElement.clientHeight) {
44
- this._fetchData();
45
- }
46
- }
47
- _onDataLoaded() {
48
- setTimeout(() => {
49
- this._checkForLoadData();
50
- }, 100);
51
- }
52
- _handleOnRemoveItemClick(e, item) {
53
- this.unselectItems(item);
54
- e.stopPropagation();
55
- }
56
- _handleKeydown(e) {
57
- if (!(this._getHostElement() == document.activeElement ||
58
- this._getHostElement().contains(document.activeElement) ||
59
- this.listContainer.nativeElement.contains(document.activeElement))) {
60
- return;
61
- }
62
- if (e.key === 'Escape' || this.disabled || this.readonly) {
63
- this.close();
64
- e.preventDefault();
65
- return;
66
- }
67
- const isLetter = new RegExp(/[a-zA-Z0-9\-]/).test(String.fromCharCode(e.keyCode));
68
- if (e.key === 'Backspace' && e.type === 'keydown' &&
69
- ((this.allowNull === true && this.selectedItems.length > 0) ||
70
- (this.allowNull !== true && this.selectedItems.length > 1))) {
71
- this.isUserInput = true;
72
- this.unselectItems(this.selectedItems.pop());
73
- e.preventDefault();
74
- return;
75
- }
76
- else if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.displayItems.length > 0 && !this.dropdown.isOpen && e.type === 'keydown') {
77
- if (this.multiple) {
78
- this.open();
79
- }
80
- else {
81
- this.isUserInput = true;
82
- if (e.ctrlKey) {
83
- this.open();
84
- }
85
- else {
86
- this._selectedItemByIndex(this._currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1));
87
- }
88
- }
89
- e.preventDefault();
90
- return;
91
- }
92
- else if (isLetter) {
93
- this.text = e.key;
94
- this.open();
95
- e.preventDefault();
96
- return;
97
- }
98
- if (this.dropdown.isOpen) {
99
- if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.displayItems.length > 0) {
100
- this.isUserInput = true;
101
- this._focusItemByNav((e.key === 'ArrowDown' ? 1 : -1));
102
- if (!this.multiple) {
103
- this.selectItems(this.displayItems[this._currentfocusedIndex]);
104
- }
105
- e.preventDefault();
106
- return;
107
- }
108
- if ((e.key === 'Enter' || e.code === 'Space')) {
109
- const focusedItem = this.displayItems[this._currentfocusedIndex];
110
- if (focusedItem) {
111
- if (this.multiple) {
112
- this.isUserInput = true;
113
- this.toggleSelect(focusedItem);
114
- }
115
- else {
116
- this.isUserInput = true;
117
- this.selectItems(focusedItem);
118
- this.close();
119
- }
120
- }
121
- e.preventDefault();
122
- return;
123
- }
124
- }
125
- }
126
- _focusItemByNav(sign = null) {
127
- if (sign == null) {
128
- const lastSelectedItem = this.selectedItems[this.selectedItems.length - 1];
129
- this._currentfocusedIndex = lastSelectedItem ? this.displayItems.findIndex(c => c[this.valueField] == lastSelectedItem[this.valueField]) : 0;
130
- }
131
- else {
132
- sign === -1 ? this._currentfocusedIndex-- : this._currentfocusedIndex++;
133
- }
134
- if (this._currentfocusedIndex < 0) {
135
- this._currentfocusedIndex = 0;
136
- }
137
- if (this._currentfocusedIndex > this.displayItems.length - 1) {
138
- this._currentfocusedIndex = this.displayItems.length - 1;
139
- }
140
- // set scroll
141
- this._focusItemByIndex(this._currentfocusedIndex);
142
- }
143
- _focusItemByIndex(inedx) {
144
- if (this.listContainer) {
145
- this.zone.runOutsideAngular(() => {
146
- const itemDiv = this.listContainer.nativeElement.querySelector(`.ax-list-item:nth-child(${inedx + 1})`);
147
- if (itemDiv) {
148
- itemDiv.focus();
149
- itemDiv.scrollIntoView({ behavior: 'auto' });
150
- }
151
- });
152
- }
153
- }
154
- _focusSelectedItem() {
155
- const lastSelectedItem = this.selectedItems[this.selectedItems.length - 1];
156
- this._currentfocusedIndex = lastSelectedItem ? this.displayItems.findIndex(c => c[this.valueField] == lastSelectedItem[this.valueField]) : 0;
157
- this._focusItemByIndex(this._currentfocusedIndex);
158
- }
159
- _selectedItemByIndex(index) {
160
- if (index < 0) {
161
- index = 0;
162
- }
163
- if (index > this.displayItems.length - 1) {
164
- index = this.displayItems.length - 1;
165
- }
166
- this.selectItems(this.displayItems[index]);
167
- this._currentfocusedIndex = index;
168
- }
169
- }
170
- AXSelectBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
171
- AXSelectBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", fitParent: "fitParent", value: "value", items: "items", multiple: "multiple", allowNull: "allowNull", valueField: "valueField", textField: "textField" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { listeners: { "document:keydown": "_handleKeydown($event)" }, classAttribute: "ax-select-box" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: AXDropdownComponent, descendants: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-drop-down (onOpened)=\"_emitOnOpenedEvent()\" (onClosed)=\"_emitOnClosedEvent()\">\r\n <ng-container input>\r\n <ng-content select=\"ax-prefix\">\r\n </ng-content>\r\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\r\n <div class=\"ax-dropdown-chips\">\r\n <div *ngFor=\"let item of selectedItems\" [ngClass]=\"{'ax-badge ax-primary ax-m-1': multiple,'ax-badge':!multiple}\" [title]=\"_getItemDisplayTextTemplte(item)\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <i class=\"ax-ic ax-ic-close ax-text-base\" (click)=\"_handleOnRemoveItemClick($event,item)\" *ngIf=\" (readonly!=true) && multiple && disabled!=true && (allowNull==true || (selectedItems.length> 1))\">\r\n </i>\r\n\r\n </div>\r\n </div>\r\n <!-- <div class=\"ax-selectbox-input\">\r\n <input type=\"text\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" (keydown)=\"_handleKeydown($event)\">\r\n </div> -->\r\n <ng-content select=\"ax-suffix\">\r\n </ng-content>\r\n </div>\r\n </ng-container>\r\n <ng-container panel>\r\n <div class=\"ax-list ax-list-container\">\r\n <div class=\"ax-list-items-container ax-vertical ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index;trackBy : _trackByFunction\">\r\n <ng-container *ngIf=\"itemTemplate; else elseTemplate\">\r\n <div class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\" [attr.tabindex]=\"i\" (click)=\"_handleOnItemClick($event,item)\">\r\n {{ _getItemDisplayTextTemplte(item) }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"(displayItems==null || displayItems.length==0) && !isLoading\">\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"elseEmptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n Empty!\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"isLoading\">\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-list-loading-container\">\r\n <div><i class=\"fas fa-spinner ax-animate-spin\"></i> Loading ...</div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</ax-drop-down>", components: [{ type: i1.AXDropdownComponent, selector: "ax-drop-down", inputs: ["disabled", "readonly", "tabIndex", "size", "fitParent"], outputs: ["onOpened", "onClosed"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
173
- type: Component,
174
- args: [{
175
- selector: 'ax-select-box',
176
- templateUrl: 'selectbox.component.html',
177
- inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'fitParent', 'value', 'items', 'multiple', 'allowNull', 'valueField', 'textField'],
178
- outputs: ['onOpened', 'onClosed', 'valueChange', 'onValueChanged', 'onBlur', 'onFocus'],
179
- encapsulation: ViewEncapsulation.None,
180
- changeDetection: ChangeDetectionStrategy.OnPush,
181
- host: { 'class': 'ax-select-box' }
182
- }]
183
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { dropdown: [{
184
- type: ViewChild,
185
- args: [AXDropdownComponent]
186
- }], listContainer: [{
187
- type: ViewChild,
188
- args: ['listContainer', { static: true }]
189
- }], _handleKeydown: [{
190
- type: HostListener,
191
- args: ['document:keydown', ['$event']]
192
- }] } });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvc2VsZWN0Ym94L3NlbGVjdGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlbGVjdGJveC9zZWxlY3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFVLFNBQVMsRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEssT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQVdsRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsNEJBQTRCO0lBV2xFLFlBQ0ksVUFBc0IsRUFDdEIsR0FBc0IsRUFDZCxJQUFZO1FBRXBCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixTQUFJLEdBQUosSUFBSSxDQUFRO1FBTHhCLHlCQUFvQixHQUFXLENBQUMsQ0FBQyxDQUFDO0lBUWxDLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsS0FBSztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELE1BQU07UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsa0JB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VSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDdkksT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztvQkFDdkYsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFO2lCQUNyQztzSkFJVyxRQUFRO3NCQURmLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUl0QixhQUFhO3NCQURwQixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBb0U1QyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBOZ1pvbmUsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhCYXNlU2VsZWN0aW9uRHJvcGRvd25NaXhpbiB9IGZyb20gJy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vZHJvcGRvd24tbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBBWERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F4LXNlbGVjdC1ib3gnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdzZWxlY3Rib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ3RhYkluZGV4JywgJ3NpemUnLCAnZml0UGFyZW50JywgJ3ZhbHVlJywgJ2l0ZW1zJywgJ211bHRpcGxlJywgJ2FsbG93TnVsbCcsICd2YWx1ZUZpZWxkJywgJ3RleHRGaWVsZCddLFxyXG4gICAgb3V0cHV0czogWydvbk9wZW5lZCcsICdvbkNsb3NlZCcsICd2YWx1ZUNoYW5nZScsICdvblZhbHVlQ2hhbmdlZCcsICdvbkJsdXInLCAnb25Gb2N1cyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgaG9zdDogeyAnY2xhc3MnOiAnYXgtc2VsZWN0LWJveCcgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhTZWxlY3RCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VTZWxlY3Rpb25Ecm9wZG93bk1peGluIGltcGxlbWVudHMgRHJvcGRvd25Db21wb25lbnRJbnRlcmZhY2Uge1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoQVhEcm9wZG93bkNvbXBvbmVudClcclxuICAgIHByaXZhdGUgZHJvcGRvd246IEFYRHJvcGRvd25Db21wb25lbnQ7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbGlzdENvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwcml2YXRlIGxpc3RDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuXHJcbiAgICBfY3VycmVudGZvY3VzZWRJbmRleDogbnVtYmVyID0gLTE7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgem9uZTogTmdab25lXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93bi5vcGVuKCk7XHJcbiAgICB9XHJcbiAgICBjbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgICB0b2dnbGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93bi50b2dnbGUoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgb25WaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duLm9uT3BlbmVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzU2VsZWN0ZWRJdGVtKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kcm9wZG93bi5pc09wZW47XHJcbiAgICB9XHJcblxyXG5cclxuICAgIF9oYW5kbGVPbkl0ZW1DbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZUxpc3RTY3JvbGwoZTogRXZlbnQpIHtcclxuICAgICAgICBjb25zdCBsaXN0ID0gZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKChsaXN0LnNjcm9sbFRvcCA8IGxpc3Quc2Nyb2xsSGVpZ2h0IC0gbGlzdC5jbGllbnRIZWlnaHQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fZmV0Y2hEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2hlY2tGb3JMb2FkRGF0YSgpIHtcclxuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5saXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKHRoaXMubG9hZGVkQ291bnQgPCB0aGlzLnRvdGFsQ291bnQgJiYgbGlzdC5jbGllbnRIZWlnaHQgPCBsaXN0LnBhcmVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZldGNoRGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBfb25EYXRhTG9hZGVkKCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9jaGVja0ZvckxvYWREYXRhKCk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgIH1cclxuXHJcbiAgICBfaGFuZGxlT25SZW1vdmVJdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XHJcbiAgICAgICAgdGhpcy51bnNlbGVjdEl0ZW1zKGl0ZW0pXHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICAgIF9oYW5kbGVLZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBpZiAoIShcclxuICAgICAgICAgICAgdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSA9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IHx8XHJcbiAgICAgICAgICAgIHRoaXMuX2dldEhvc3RFbGVtZW50KCkuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkgfHxcclxuICAgICAgICAgICAgdGhpcy5saXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudClcclxuICAgICAgICApKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGlzTGV0dGVyID0gbmV3IFJlZ0V4cCgvW2EtekEtWjAtOVxcLV0vKS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZS5rZXlDb2RlKSk7XHJcbiAgICAgICAgaWYgKGUua2V5ID09PSAnQmFja3NwYWNlJyAmJiBlLnR5cGUgPT09ICdrZXlkb3duJyAmJlxyXG4gICAgICAgICAgICAoKHRoaXMuYWxsb3dOdWxsID09PSB0cnVlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAgICAgICAgICAgKHRoaXMuYWxsb3dOdWxsICE9PSB0cnVlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAxKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5pc1VzZXJJbnB1dCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMucG9wKCkpO1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKGUua2V5ID09PSAnQXJyb3dEb3duJyB8fCBlLmtleSA9PT0gJ0Fycm93VXAnKSAmJiB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggPiAwICYmICF0aGlzLmRyb3Bkb3duLmlzT3BlbiAmJiBlLnR5cGUgPT09ICdrZXlkb3duJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmIChlLmN0cmxLZXkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW4oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbUJ5SW5kZXgodGhpcy5fY3VycmVudGZvY3VzZWRJbmRleCArIChlLmtleSA9PT0gJ0Fycm93RG93bicgPyAxIDogLTEpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaXNMZXR0ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy50ZXh0ID0gZS5rZXk7XHJcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd24uaXNPcGVuKSB7XHJcbiAgICAgICAgICAgIGlmICgoZS5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGUua2V5ID09PSAnQXJyb3dVcCcpICYmIHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNVc2VySW5wdXQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNJdGVtQnlOYXYoKGUua2V5ID09PSAnQXJyb3dEb3duJyA/IDEgOiAtMSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtcyh0aGlzLmRpc3BsYXlJdGVtc1t0aGlzLl9jdXJyZW50Zm9jdXNlZEluZGV4XSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmNvZGUgPT09ICdTcGFjZScpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmb2N1c2VkSXRlbSA9IHRoaXMuZGlzcGxheUl0ZW1zW3RoaXMuX2N1cnJlbnRmb2N1c2VkSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZvY3VzZWRJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1VzZXJJbnB1dCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlU2VsZWN0KGZvY3VzZWRJdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNVc2VySW5wdXQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW1zKGZvY3VzZWRJdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfZm9jdXNJdGVtQnlOYXYoc2lnbjogLTEgfCAxIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICBpZiAoc2lnbiA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhc3RTZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbXNbdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50Zm9jdXNlZEluZGV4ID0gbGFzdFNlbGVjdGVkSXRlbSA/IHRoaXMuZGlzcGxheUl0ZW1zLmZpbmRJbmRleChjID0+IGNbdGhpcy52YWx1ZUZpZWxkXSA9PSBsYXN0U2VsZWN0ZWRJdGVtW3RoaXMudmFsdWVGaWVsZF0pIDogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHNpZ24gPT09IC0xID8gdGhpcy5fY3VycmVudGZvY3VzZWRJbmRleC0tIDogdGhpcy5fY3VycmVudGZvY3VzZWRJbmRleCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fY3VycmVudGZvY3VzZWRJbmRleCA8IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fY3VycmVudGZvY3VzZWRJbmRleCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50Zm9jdXNlZEluZGV4ID4gdGhpcy5kaXNwbGF5SXRlbXMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50Zm9jdXNlZEluZGV4ID0gdGhpcy5kaXNwbGF5SXRlbXMubGVuZ3RoIC0gMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHNldCBzY3JvbGxcclxuICAgICAgICB0aGlzLl9mb2N1c0l0ZW1CeUluZGV4KHRoaXMuX2N1cnJlbnRmb2N1c2VkSW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2ZvY3VzSXRlbUJ5SW5kZXgoaW5lZHg6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3RDb250YWluZXIpIHtcclxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1EaXYgPSB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihgLmF4LWxpc3QtaXRlbTpudGgtY2hpbGQoJHtpbmVkeCArIDF9KWApO1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1EaXYpIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtRGl2LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbURpdi5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnYXV0bycgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9mb2N1c1NlbGVjdGVkSXRlbSgpIHtcclxuICAgICAgICBjb25zdCBsYXN0U2VsZWN0ZWRJdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggLSAxXTtcclxuICAgICAgICB0aGlzLl9jdXJyZW50Zm9jdXNlZEluZGV4ID0gbGFzdFNlbGVjdGVkSXRlbSA/IHRoaXMuZGlzcGxheUl0ZW1zLmZpbmRJbmRleChjID0+IGNbdGhpcy52YWx1ZUZpZWxkXSA9PSBsYXN0U2VsZWN0ZWRJdGVtW3RoaXMudmFsdWVGaWVsZF0pIDogMDtcclxuICAgICAgICB0aGlzLl9mb2N1c0l0ZW1CeUluZGV4KHRoaXMuX2N1cnJlbnRmb2N1c2VkSW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkSXRlbUJ5SW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIGlmIChpbmRleCA8IDApIHtcclxuICAgICAgICAgICAgaW5kZXggPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kZXggPiB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5kaXNwbGF5SXRlbXMubGVuZ3RoIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RJdGVtcyh0aGlzLmRpc3BsYXlJdGVtc1tpbmRleF0pO1xyXG4gICAgICAgIHRoaXMuX2N1cnJlbnRmb2N1c2VkSW5kZXggPSBpbmRleDtcclxuICAgIH1cclxufSIsIjxheC1kcm9wLWRvd24gKG9uT3BlbmVkKT1cIl9lbWl0T25PcGVuZWRFdmVudCgpXCIgKG9uQ2xvc2VkKT1cIl9lbWl0T25DbG9zZWRFdmVudCgpXCI+XHJcbiAgICA8bmctY29udGFpbmVyIGlucHV0PlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPlxyXG4gICAgICAgIDwvbmctY29udGVudD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1zZWxlY3Rpb25cIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiAoZm9jdXMpPVwiX2VtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cIl9lbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZHJvcGRvd24tY2hpcHNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0ZWRJdGVtc1wiIFtuZ0NsYXNzXT1cInsnYXgtYmFkZ2UgYXgtcHJpbWFyeSBheC1tLTEnOiBtdWx0aXBsZSwnYXgtYmFkZ2UnOiFtdWx0aXBsZX1cIiBbdGl0bGVdPVwiX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJheC1pYyBheC1pYy1jbG9zZSBheC10ZXh0LWJhc2VcIiAoY2xpY2spPVwiX2hhbmRsZU9uUmVtb3ZlSXRlbUNsaWNrKCRldmVudCxpdGVtKVwiICpuZ0lmPVwiIChyZWFkb25seSE9dHJ1ZSkgJiYgbXVsdGlwbGUgJiYgZGlzYWJsZWQhPXRydWUgJiYgKGFsbG93TnVsbD09dHJ1ZSB8fCAoc2VsZWN0ZWRJdGVtcy5sZW5ndGg+IDEpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImF4LXNlbGVjdGJveC1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgKGZvY3VzKT1cIl9lbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIiAoYmx1cik9XCJfZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIiAoa2V5ZG93bik9XCJfaGFuZGxlS2V5ZG93bigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciBwYW5lbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbGlzdCBheC1saXN0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbGlzdC1pdGVtcy1jb250YWluZXIgYXgtdmVydGljYWwgYXgtZGVmYXVsdFwiIChzY3JvbGwpPVwiX2hhbmRsZUxpc3RTY3JvbGwoJGV2ZW50KVwiICNsaXN0Q29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkaXNwbGF5SXRlbXM7bGV0IGkgPSBpbmRleDt0cmFja0J5IDogX3RyYWNrQnlGdW5jdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtVGVtcGxhdGU7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1saXN0LWl0ZW1cIiAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCxpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sZGlyZWN0aW9uOmRpcmVjdGlvbn1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWxpc3QtaXRlbVwiIFtjbGFzcy5heC1zdGF0ZS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiIFthdHRyLnRhYmluZGV4XT1cImlcIiAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCxpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSkgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihkaXNwbGF5SXRlbXM9PW51bGwgfHwgZGlzcGxheUl0ZW1zLmxlbmd0aD09MCkgJiYgIWlzTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbXB0eVRlbXBsYXRlOyBlbHNlIGVsc2VFbXB0eVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbHNlRW1wdHlUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHkhXHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nVGVtcGxhdGU7IGVsc2UgZWxzZUxvYWRpbmdUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1RlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUxvYWRpbmdUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWxpc3QtbG9hZGluZy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGkgY2xhc3M9XCJmYXMgZmEtc3Bpbm5lciBheC1hbmltYXRlLXNwaW5cIj48L2k+IExvYWRpbmcgLi4uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9heC1kcm9wLWRvd24+Il19
1
+ import { ChangeDetectionStrategy, Component, HostListener, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { AXBaseSelectionDropdownMixin } from '../base';
3
+ import { AXDropdownComponent } from '../dropdown';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../dropdown/dropdown.component";
6
+ import * as i2 from "@angular/common";
7
+ export class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {
8
+ constructor(elementRef, cdr, zone) {
9
+ super(elementRef, cdr);
10
+ this.zone = zone;
11
+ this._currentfocusedIndex = -1;
12
+ }
13
+ open() {
14
+ this.dropdown.open();
15
+ }
16
+ close() {
17
+ this.dropdown.close();
18
+ }
19
+ toggle() {
20
+ this.dropdown.toggle();
21
+ }
22
+ onViewInit() {
23
+ this.dropdown.onOpened.subscribe(() => {
24
+ this._focusSelectedItem();
25
+ });
26
+ }
27
+ get isOpen() {
28
+ return this.dropdown.isOpen;
29
+ }
30
+ _handleOnItemClick(e, item) {
31
+ this.close();
32
+ this.toggleSelect(item);
33
+ }
34
+ _handleListScroll(e) {
35
+ const list = e.target;
36
+ if ((list.scrollTop < list.scrollHeight - list.clientHeight)) {
37
+ return;
38
+ }
39
+ this._fetchData();
40
+ }
41
+ _checkForLoadData() {
42
+ const list = this.listContainer.nativeElement;
43
+ if (this.loadedCount < this.totalCount && list.clientHeight < list.parentElement.clientHeight) {
44
+ this._fetchData();
45
+ }
46
+ }
47
+ _onDataLoaded() {
48
+ setTimeout(() => {
49
+ this._checkForLoadData();
50
+ }, 100);
51
+ }
52
+ _handleOnRemoveItemClick(e, item) {
53
+ this.unselectItems(item);
54
+ e.stopPropagation();
55
+ }
56
+ _handleKeydown(e) {
57
+ if (!(this._getHostElement() == document.activeElement ||
58
+ this._getHostElement().contains(document.activeElement) ||
59
+ this.listContainer.nativeElement.contains(document.activeElement))) {
60
+ return;
61
+ }
62
+ if (e.key === 'Escape' || this.disabled || this.readonly) {
63
+ this.close();
64
+ e.preventDefault();
65
+ return;
66
+ }
67
+ const isLetter = new RegExp(/[a-zA-Z0-9\-]/).test(String.fromCharCode(e.keyCode));
68
+ if (e.key === 'Backspace' && e.type === 'keydown' &&
69
+ ((this.allowNull === true && this.selectedItems.length > 0) ||
70
+ (this.allowNull !== true && this.selectedItems.length > 1))) {
71
+ this.isUserInput = true;
72
+ this.unselectItems(this.selectedItems.pop());
73
+ e.preventDefault();
74
+ return;
75
+ }
76
+ else if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.displayItems.length > 0 && !this.dropdown.isOpen && e.type === 'keydown') {
77
+ if (this.multiple) {
78
+ this.open();
79
+ }
80
+ else {
81
+ this.isUserInput = true;
82
+ if (e.ctrlKey) {
83
+ this.open();
84
+ }
85
+ else {
86
+ this._selectedItemByIndex(this._currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1));
87
+ }
88
+ }
89
+ e.preventDefault();
90
+ return;
91
+ }
92
+ else if (isLetter) {
93
+ this.text = e.key;
94
+ this.open();
95
+ e.preventDefault();
96
+ return;
97
+ }
98
+ if (this.dropdown.isOpen) {
99
+ if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.displayItems.length > 0) {
100
+ this.isUserInput = true;
101
+ this._focusItemByNav((e.key === 'ArrowDown' ? 1 : -1));
102
+ if (!this.multiple) {
103
+ this.selectItems(this.displayItems[this._currentfocusedIndex]);
104
+ }
105
+ e.preventDefault();
106
+ return;
107
+ }
108
+ if ((e.key === 'Enter' || e.code === 'Space')) {
109
+ const focusedItem = this.displayItems[this._currentfocusedIndex];
110
+ if (focusedItem) {
111
+ if (this.multiple) {
112
+ this.isUserInput = true;
113
+ this.toggleSelect(focusedItem);
114
+ }
115
+ else {
116
+ this.isUserInput = true;
117
+ this.selectItems(focusedItem);
118
+ this.close();
119
+ }
120
+ }
121
+ e.preventDefault();
122
+ return;
123
+ }
124
+ }
125
+ }
126
+ _focusItemByNav(sign = null) {
127
+ if (sign == null) {
128
+ const lastSelectedItem = this.selectedItems[this.selectedItems.length - 1];
129
+ this._currentfocusedIndex = lastSelectedItem ? this.displayItems.findIndex(c => c[this.valueField] == lastSelectedItem[this.valueField]) : 0;
130
+ }
131
+ else {
132
+ sign === -1 ? this._currentfocusedIndex-- : this._currentfocusedIndex++;
133
+ }
134
+ if (this._currentfocusedIndex < 0) {
135
+ this._currentfocusedIndex = 0;
136
+ }
137
+ if (this._currentfocusedIndex > this.displayItems.length - 1) {
138
+ this._currentfocusedIndex = this.displayItems.length - 1;
139
+ }
140
+ // set scroll
141
+ this._focusItemByIndex(this._currentfocusedIndex);
142
+ }
143
+ _focusItemByIndex(inedx) {
144
+ if (this.listContainer) {
145
+ this.zone.runOutsideAngular(() => {
146
+ const itemDiv = this.listContainer.nativeElement.querySelector(`.ax-list-item:nth-child(${inedx + 1})`);
147
+ if (itemDiv) {
148
+ itemDiv.focus();
149
+ itemDiv.scrollIntoView({ behavior: 'auto' });
150
+ }
151
+ });
152
+ }
153
+ }
154
+ _focusSelectedItem() {
155
+ const lastSelectedItem = this.selectedItems[this.selectedItems.length - 1];
156
+ this._currentfocusedIndex = lastSelectedItem ? this.displayItems.findIndex(c => c[this.valueField] == lastSelectedItem[this.valueField]) : 0;
157
+ this._focusItemByIndex(this._currentfocusedIndex);
158
+ }
159
+ _selectedItemByIndex(index) {
160
+ if (index < 0) {
161
+ index = 0;
162
+ }
163
+ if (index > this.displayItems.length - 1) {
164
+ index = this.displayItems.length - 1;
165
+ }
166
+ this.selectItems(this.displayItems[index]);
167
+ this._currentfocusedIndex = index;
168
+ }
169
+ }
170
+ AXSelectBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
171
+ AXSelectBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", fitParent: "fitParent", value: "value", items: "items", multiple: "multiple", allowNull: "allowNull", valueField: "valueField", textField: "textField" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { listeners: { "document:keydown": "_handleKeydown($event)" }, classAttribute: "ax-select-box" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: AXDropdownComponent, descendants: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-drop-down (onOpened)=\"_emitOnOpenedEvent()\" (onClosed)=\"_emitOnClosedEvent()\">\n <ng-container input>\n <ng-content select=\"ax-prefix\">\n </ng-content>\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\n <div class=\"ax-dropdown-chips\">\n <div *ngFor=\"let item of selectedItems\" [ngClass]=\"{'ax-badge ax-primary ax-m-1': multiple,'ax-badge':!multiple}\" [title]=\"_getItemDisplayTextTemplte(item)\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <i class=\"ax-ic ax-ic-close ax-text-base\" (click)=\"_handleOnRemoveItemClick($event,item)\" *ngIf=\" (readonly!=true) && multiple && disabled!=true && (allowNull==true || (selectedItems.length> 1))\">\n </i>\n\n </div>\n </div>\n <!-- <div class=\"ax-selectbox-input\">\n <input type=\"text\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" (keydown)=\"_handleKeydown($event)\">\n </div> -->\n <ng-content select=\"ax-suffix\">\n </ng-content>\n </div>\n </ng-container>\n <ng-container panel>\n <div class=\"ax-list ax-list-container\">\n <div class=\"ax-list-items-container ax-vertical ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngFor=\"let item of displayItems;let i = index;trackBy : _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else elseTemplate\">\n <div class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction}\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #elseTemplate>\n <div class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\" [attr.tabindex]=\"i\" (click)=\"_handleOnItemClick($event,item)\">\n {{ _getItemDisplayTextTemplte(item) }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"(displayItems==null || displayItems.length==0) && !isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"elseEmptyTemplate\">\n </ng-container>\n </ng-container>\n <ng-template #elseTemplate>\n Empty!\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-list-loading-container\">\n <div><i class=\"fas fa-spinner ax-animate-spin\"></i> Loading ...</div>\n </div>\n </ng-template>\n </ng-container>\n </div>\n </div>\n </ng-container>\n</ax-drop-down>", components: [{ type: i1.AXDropdownComponent, selector: "ax-drop-down", inputs: ["disabled", "readonly", "tabIndex", "size", "fitParent"], outputs: ["onOpened", "onClosed"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
173
+ type: Component,
174
+ args: [{
175
+ selector: 'ax-select-box',
176
+ templateUrl: 'selectbox.component.html',
177
+ inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'fitParent', 'value', 'items', 'multiple', 'allowNull', 'valueField', 'textField'],
178
+ outputs: ['onOpened', 'onClosed', 'valueChange', 'onValueChanged', 'onBlur', 'onFocus'],
179
+ encapsulation: ViewEncapsulation.None,
180
+ changeDetection: ChangeDetectionStrategy.OnPush,
181
+ host: { 'class': 'ax-select-box' }
182
+ }]
183
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { dropdown: [{
184
+ type: ViewChild,
185
+ args: [AXDropdownComponent]
186
+ }], listContainer: [{
187
+ type: ViewChild,
188
+ args: ['listContainer', { static: true }]
189
+ }], _handleKeydown: [{
190
+ type: HostListener,
191
+ args: ['document:keydown', ['$event']]
192
+ }] } });
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvc2VsZWN0Ym94L3NlbGVjdGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlbGVjdGJveC9zZWxlY3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFVLFNBQVMsRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEssT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQVdsRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsNEJBQTRCO0lBV2xFLFlBQ0ksVUFBc0IsRUFDdEIsR0FBc0IsRUFDZCxJQUFZO1FBRXBCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixTQUFJLEdBQUosSUFBSSxDQUFRO1FBTHhCLHlCQUFvQixHQUFXLENBQUMsQ0FBQyxDQUFDO0lBUWxDLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsS0FBSztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELE1BQU07UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsa0JB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VSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDdkksT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztvQkFDdkYsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFO2lCQUNyQztzSkFJVyxRQUFRO3NCQURmLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUl0QixhQUFhO3NCQURwQixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBb0U1QyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgTmdab25lLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEJhc2VTZWxlY3Rpb25Ecm9wZG93bk1peGluIH0gZnJvbSAnLi4vYmFzZSc7XG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vZHJvcGRvd24tbWl4aW4uY2xhc3MnO1xuaW1wb3J0IHsgQVhEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2Ryb3Bkb3duJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheC1zZWxlY3QtYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJ3NlbGVjdGJveC5jb21wb25lbnQuaHRtbCcsXG4gICAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ3RhYkluZGV4JywgJ3NpemUnLCAnZml0UGFyZW50JywgJ3ZhbHVlJywgJ2l0ZW1zJywgJ211bHRpcGxlJywgJ2FsbG93TnVsbCcsICd2YWx1ZUZpZWxkJywgJ3RleHRGaWVsZCddLFxuICAgIG91dHB1dHM6IFsnb25PcGVuZWQnLCAnb25DbG9zZWQnLCAndmFsdWVDaGFuZ2UnLCAnb25WYWx1ZUNoYW5nZWQnLCAnb25CbHVyJywgJ29uRm9jdXMnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHsgJ2NsYXNzJzogJ2F4LXNlbGVjdC1ib3gnIH1cbn0pXG5leHBvcnQgY2xhc3MgQVhTZWxlY3RCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VTZWxlY3Rpb25Ecm9wZG93bk1peGluIGltcGxlbWVudHMgRHJvcGRvd25Db21wb25lbnRJbnRlcmZhY2Uge1xuXG4gICAgQFZpZXdDaGlsZChBWERyb3Bkb3duQ29tcG9uZW50KVxuICAgIHByaXZhdGUgZHJvcGRvd246IEFYRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdsaXN0Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcml2YXRlIGxpc3RDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG5cbiAgICBfY3VycmVudGZvY3VzZWRJbmRleDogbnVtYmVyID0gLTE7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcbiAgICB9XG5cbiAgICBvcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3Bkb3duLm9wZW4oKTtcbiAgICB9XG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJvcGRvd24uY2xvc2UoKTtcbiAgICB9XG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgIH1cblxuXG4gICAgb25WaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5vbk9wZW5lZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNTZWxlY3RlZEl0ZW0oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcGRvd24uaXNPcGVuO1xuICAgIH1cblxuXG4gICAgX2hhbmRsZU9uSXRlbUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMudG9nZ2xlU2VsZWN0KGl0ZW0pO1xuICAgIH1cblxuICAgIF9oYW5kbGVMaXN0U2Nyb2xsKGU6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgICAgaWYgKChsaXN0LnNjcm9sbFRvcCA8IGxpc3Quc2Nyb2xsSGVpZ2h0IC0gbGlzdC5jbGllbnRIZWlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmV0Y2hEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tGb3JMb2FkRGF0YSgpIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMubGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5sb2FkZWRDb3VudCA8IHRoaXMudG90YWxDb3VudCAmJiBsaXN0LmNsaWVudEhlaWdodCA8IGxpc3QucGFyZW50RWxlbWVudC5jbGllbnRIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZldGNoRGF0YSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX29uRGF0YUxvYWRlZCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jaGVja0ZvckxvYWREYXRhKCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfVxuXG4gICAgX2hhbmRsZU9uUmVtb3ZlSXRlbUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSkge1xuICAgICAgICB0aGlzLnVuc2VsZWN0SXRlbXMoaXRlbSlcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBfaGFuZGxlS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICghKFxuICAgICAgICAgICAgdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSA9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IHx8XG4gICAgICAgICAgICB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KVxuICAgICAgICApKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZS5rZXkgPT09ICdFc2NhcGUnIHx8IHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzTGV0dGVyID0gbmV3IFJlZ0V4cCgvW2EtekEtWjAtOVxcLV0vKS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZS5rZXlDb2RlKSk7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgZS50eXBlID09PSAna2V5ZG93bicgJiZcbiAgICAgICAgICAgICgodGhpcy5hbGxvd051bGwgPT09IHRydWUgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMuYWxsb3dOdWxsICE9PSB0cnVlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAxKSkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNVc2VySW5wdXQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy51bnNlbGVjdEl0ZW1zKHRoaXMuc2VsZWN0ZWRJdGVtcy5wb3AoKSk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKGUua2V5ID09PSAnQXJyb3dEb3duJyB8fCBlLmtleSA9PT0gJ0Fycm93VXAnKSAmJiB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggPiAwICYmICF0aGlzLmRyb3Bkb3duLmlzT3BlbiAmJiBlLnR5cGUgPT09ICdrZXlkb3duJykge1xuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNVc2VySW5wdXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChlLmN0cmxLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1CeUluZGV4KHRoaXMuX2N1cnJlbnRmb2N1c2VkSW5kZXggKyAoZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gMSA6IC0xKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzTGV0dGVyKSB7XG4gICAgICAgICAgICB0aGlzLnRleHQgPSBlLmtleTtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duLmlzT3Blbikge1xuICAgICAgICAgICAgaWYgKChlLmtleSA9PT0gJ0Fycm93RG93bicgfHwgZS5rZXkgPT09ICdBcnJvd1VwJykgJiYgdGhpcy5kaXNwbGF5SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNVc2VySW5wdXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzSXRlbUJ5TmF2KChlLmtleSA9PT0gJ0Fycm93RG93bicgPyAxIDogLTEpKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtcyh0aGlzLmRpc3BsYXlJdGVtc1t0aGlzLl9jdXJyZW50Zm9jdXNlZEluZGV4XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKGUua2V5ID09PSAnRW50ZXInIHx8IGUuY29kZSA9PT0gJ1NwYWNlJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2N1c2VkSXRlbSA9IHRoaXMuZGlzcGxheUl0ZW1zW3RoaXMuX2N1cnJlbnRmb2N1c2VkSW5kZXhdO1xuICAgICAgICAgICAgICAgIGlmIChmb2N1c2VkSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1VzZXJJbnB1dCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdChmb2N1c2VkSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbXMoZm9jdXNlZEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHByaXZhdGUgX2ZvY3VzSXRlbUJ5TmF2KHNpZ246IC0xIHwgMSB8IG51bGwgPSBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmIChzaWduID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RTZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbXNbdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGZvY3VzZWRJbmRleCA9IGxhc3RTZWxlY3RlZEl0ZW0gPyB0aGlzLmRpc3BsYXlJdGVtcy5maW5kSW5kZXgoYyA9PiBjW3RoaXMudmFsdWVGaWVsZF0gPT0gbGFzdFNlbGVjdGVkSXRlbVt0aGlzLnZhbHVlRmllbGRdKSA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzaWduID09PSAtMSA/IHRoaXMuX2N1cnJlbnRmb2N1c2VkSW5kZXgtLSA6IHRoaXMuX2N1cnJlbnRmb2N1c2VkSW5kZXgrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fY3VycmVudGZvY3VzZWRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRmb2N1c2VkSW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50Zm9jdXNlZEluZGV4ID4gdGhpcy5kaXNwbGF5SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGZvY3VzZWRJbmRleCA9IHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2Nyb2xsXG4gICAgICAgIHRoaXMuX2ZvY3VzSXRlbUJ5SW5kZXgodGhpcy5fY3VycmVudGZvY3VzZWRJbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZm9jdXNJdGVtQnlJbmRleChpbmVkeDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmxpc3RDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbURpdiA9IHRoaXMubGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KGAuYXgtbGlzdC1pdGVtOm50aC1jaGlsZCgke2luZWR4ICsgMX0pYCk7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1EaXYpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbURpdi5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICBpdGVtRGl2LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdhdXRvJyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2ZvY3VzU2VsZWN0ZWRJdGVtKCkge1xuICAgICAgICBjb25zdCBsYXN0U2VsZWN0ZWRJdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgdGhpcy5fY3VycmVudGZvY3VzZWRJbmRleCA9IGxhc3RTZWxlY3RlZEl0ZW0gPyB0aGlzLmRpc3BsYXlJdGVtcy5maW5kSW5kZXgoYyA9PiBjW3RoaXMudmFsdWVGaWVsZF0gPT0gbGFzdFNlbGVjdGVkSXRlbVt0aGlzLnZhbHVlRmllbGRdKSA6IDA7XG4gICAgICAgIHRoaXMuX2ZvY3VzSXRlbUJ5SW5kZXgodGhpcy5fY3VycmVudGZvY3VzZWRJbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtQnlJbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggPiB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBpbmRleCA9IHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RJdGVtcyh0aGlzLmRpc3BsYXlJdGVtc1tpbmRleF0pO1xuICAgICAgICB0aGlzLl9jdXJyZW50Zm9jdXNlZEluZGV4ID0gaW5kZXg7XG4gICAgfVxufSIsIjxheC1kcm9wLWRvd24gKG9uT3BlbmVkKT1cIl9lbWl0T25PcGVuZWRFdmVudCgpXCIgKG9uQ2xvc2VkKT1cIl9lbWl0T25DbG9zZWRFdmVudCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciBpbnB1dD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+XG4gICAgICAgIDwvbmctY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXNlbGVjdC1ib3gtc2VsZWN0aW9uXCIgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgKGZvY3VzKT1cIl9lbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIiAoYmx1cik9XCJfZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1kcm9wZG93bi1jaGlwc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0ZWRJdGVtc1wiIFtuZ0NsYXNzXT1cInsnYXgtYmFkZ2UgYXgtcHJpbWFyeSBheC1tLTEnOiBtdWx0aXBsZSwnYXgtYmFkZ2UnOiFtdWx0aXBsZX1cIiBbdGl0bGVdPVwiX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImF4LWljIGF4LWljLWNsb3NlIGF4LXRleHQtYmFzZVwiIChjbGljayk9XCJfaGFuZGxlT25SZW1vdmVJdGVtQ2xpY2soJGV2ZW50LGl0ZW0pXCIgKm5nSWY9XCIgKHJlYWRvbmx5IT10cnVlKSAmJiBtdWx0aXBsZSAmJiBkaXNhYmxlZCE9dHJ1ZSAmJiAoYWxsb3dOdWxsPT10cnVlIHx8IChzZWxlY3RlZEl0ZW1zLmxlbmd0aD4gMSkpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvaT5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJheC1zZWxlY3Rib3gtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiAoZm9jdXMpPVwiX2VtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cIl9lbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiIChrZXlkb3duKT1cIl9oYW5kbGVLZXlkb3duKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPlxuICAgICAgICAgICAgPC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIHBhbmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbGlzdCBheC1saXN0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWxpc3QtaXRlbXMtY29udGFpbmVyIGF4LXZlcnRpY2FsIGF4LWRlZmF1bHRcIiAoc2Nyb2xsKT1cIl9oYW5kbGVMaXN0U2Nyb2xsKCRldmVudClcIiAjbGlzdENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlJdGVtcztsZXQgaSA9IGluZGV4O3RyYWNrQnkgOiBfdHJhY2tCeUZ1bmN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtVGVtcGxhdGU7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbGlzdC1pdGVtXCIgKGNsaWNrKT1cIl9oYW5kbGVPbkl0ZW1DbGljaygkZXZlbnQsaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSxkaXJlY3Rpb246ZGlyZWN0aW9ufVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1saXN0LWl0ZW1cIiBbY2xhc3MuYXgtc3RhdGUtc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiBbYXR0ci50YWJpbmRleF09XCJpXCIgKGNsaWNrKT1cIl9oYW5kbGVPbkl0ZW1DbGljaygkZXZlbnQsaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihkaXNwbGF5SXRlbXM9PW51bGwgfHwgZGlzcGxheUl0ZW1zLmxlbmd0aD09MCkgJiYgIWlzTG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZTsgZWxzZSBlbHNlRW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVsc2VFbXB0eVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHkhXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1RlbXBsYXRlOyBlbHNlIGVsc2VMb2FkaW5nVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbHNlTG9hZGluZ1RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWxpc3QtbG9hZGluZy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpIGNsYXNzPVwiZmFzIGZhLXNwaW5uZXIgYXgtYW5pbWF0ZS1zcGluXCI+PC9pPiBMb2FkaW5nIC4uLjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2F4LWRyb3AtZG93bj4iXX0=
@@ -1,21 +1,21 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { AXDropdownModule } from '../dropdown';
5
- import { AXSelectBoxComponent } from './selectbox.component';
6
- import * as i0 from "@angular/core";
7
- export class AXSelectBoxModule {
8
- }
9
- AXSelectBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- AXSelectBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxModule, declarations: [AXSelectBoxComponent], imports: [CommonModule, AXDropdownModule, FormsModule], exports: [AXSelectBoxComponent] });
11
- AXSelectBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxModule, providers: [], imports: [[CommonModule, AXDropdownModule, FormsModule]] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxModule, decorators: [{
13
- type: NgModule,
14
- args: [{
15
- imports: [CommonModule, AXDropdownModule, FormsModule],
16
- exports: [AXSelectBoxComponent],
17
- declarations: [AXSelectBoxComponent],
18
- providers: [],
19
- }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvc2VsZWN0Ym94L3NlbGVjdGJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFRN0QsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQUhYLG9CQUFvQixhQUZ6QixZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxhQUMzQyxvQkFBb0I7K0dBSXJCLGlCQUFpQixhQUZmLEVBQUUsWUFISixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7MkZBSzdDLGlCQUFpQjtrQkFON0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDL0IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbic7XHJcbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICcuLi9kcm9wZG93bic7XHJcblxyXG5pbXBvcnQgeyBBWFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0Ym94LmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhEcm9wZG93bk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gICAgZXhwb3J0czogW0FYU2VsZWN0Qm94Q29tcG9uZW50XSxcclxuICAgIGRlY2xhcmF0aW9uczogW0FYU2VsZWN0Qm94Q29tcG9uZW50XSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFNlbGVjdEJveE1vZHVsZSB7IH1cclxuIl19
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { AXDropdownModule } from '../dropdown';
5
+ import { AXSelectBoxComponent } from './selectbox.component';
6
+ import * as i0 from "@angular/core";
7
+ export class AXSelectBoxModule {
8
+ }
9
+ AXSelectBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ AXSelectBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxModule, declarations: [AXSelectBoxComponent], imports: [CommonModule, AXDropdownModule, FormsModule], exports: [AXSelectBoxComponent] });
11
+ AXSelectBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxModule, providers: [], imports: [[CommonModule, AXDropdownModule, FormsModule]] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSelectBoxModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [CommonModule, AXDropdownModule, FormsModule],
16
+ exports: [AXSelectBoxComponent],
17
+ declarations: [AXSelectBoxComponent],
18
+ providers: [],
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvc2VsZWN0Ym94L3NlbGVjdGJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFRN0QsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQUhYLG9CQUFvQixhQUZ6QixZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxhQUMzQyxvQkFBb0I7K0dBSXJCLGlCQUFpQixhQUZmLEVBQUUsWUFISixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7MkZBSzdDLGlCQUFpQjtrQkFON0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDL0IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnLi4vZHJvcGRvd24nO1xuXG5pbXBvcnQgeyBBWFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0Ym94LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhEcm9wZG93bk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtBWFNlbGVjdEJveENvbXBvbmVudF0sXG4gICAgZGVjbGFyYXRpb25zOiBbQVhTZWxlY3RCb3hDb21wb25lbnRdLFxuICAgIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2VsZWN0Qm94TW9kdWxlIHsgfVxuIl19
@@ -1,3 +1,3 @@
1
- export * from './selection-list.component';
2
- export * from './selection-list.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlbGVjdGlvbi1saXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24tbGlzdC5tb2R1bGUnOyJdfQ==
1
+ export * from './selection-list.component';
2
+ export * from './selection-list.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlbGVjdGlvbi1saXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0aW9uLWxpc3QubW9kdWxlJzsiXX0=