@acorex/components 5.6.0 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/esm2020/lib/action-sheet/action-sheet-item.component.mjs +4 -4
  2. package/esm2020/lib/action-sheet/action-sheet.component.mjs +4 -4
  3. package/esm2020/lib/action-sheet/action-sheet.module.mjs +5 -5
  4. package/esm2020/lib/alert/alert.component.mjs +27 -8
  5. package/esm2020/lib/alert/alert.module.mjs +5 -5
  6. package/esm2020/lib/avatar/avatar-group.component.mjs +3 -3
  7. package/esm2020/lib/avatar/avatar.component.mjs +3 -3
  8. package/esm2020/lib/avatar/avatar.module.mjs +5 -5
  9. package/esm2020/lib/badge/badge.component.mjs +3 -3
  10. package/esm2020/lib/badge/badge.module.mjs +5 -5
  11. package/esm2020/lib/base/auto-focus.directive.mjs +3 -3
  12. package/esm2020/lib/base/common.module.mjs +5 -5
  13. package/esm2020/lib/base/components.class.mjs +23 -16
  14. package/esm2020/lib/base/custom-cdk-overlay.service.mjs +6 -6
  15. package/esm2020/lib/base/events.class.mjs +1 -1
  16. package/esm2020/lib/base/hotkey.directive.mjs +3 -3
  17. package/esm2020/lib/base/infinite-scroll.directive.mjs +3 -3
  18. package/esm2020/lib/base/mixin/base-components.class.mjs +3 -3
  19. package/esm2020/lib/base/mixin/button-mixin.class.mjs +2 -2
  20. package/esm2020/lib/base/mixin/color-look-mixing.class.mjs +2 -2
  21. package/esm2020/lib/base/mixin/datalist-component.class.mjs +13 -13
  22. package/esm2020/lib/base/mixin/index.mjs +3 -1
  23. package/esm2020/lib/base/mixin/loading-mixin.class.mjs +1 -1
  24. package/esm2020/lib/base/mixin/mixin.class.mjs +2 -3
  25. package/esm2020/lib/base/mixin/selection-component.class.mjs +2 -2
  26. package/esm2020/lib/base/mixin/textbox-mixin.class.mjs +82 -26
  27. package/esm2020/lib/base/mixin/value-mixin.class.mjs +47 -59
  28. package/esm2020/lib/base/overlay.service.mjs +3 -3
  29. package/esm2020/lib/base/responsive.directive.mjs +3 -3
  30. package/esm2020/lib/breadcrumbs/breadcrumbs-item.component.mjs +3 -3
  31. package/esm2020/lib/breadcrumbs/breadcrumbs.component.mjs +3 -3
  32. package/esm2020/lib/breadcrumbs/breadcrumbs.module.mjs +5 -5
  33. package/esm2020/lib/button/button-group.component.mjs +23 -57
  34. package/esm2020/lib/button/button-item.component.mjs +4 -4
  35. package/esm2020/lib/button/button.component.mjs +6 -6
  36. package/esm2020/lib/button/button.module.mjs +5 -5
  37. package/esm2020/lib/calendar/calendar.class.mjs +3 -3
  38. package/esm2020/lib/calendar/calendar.component.mjs +10 -10
  39. package/esm2020/lib/calendar/calendar.module.mjs +5 -5
  40. package/esm2020/lib/carousel/carousel-arrows.component.mjs +4 -4
  41. package/esm2020/lib/carousel/carousel-item.component.mjs +3 -3
  42. package/esm2020/lib/carousel/carousel-pager.component.mjs +4 -4
  43. package/esm2020/lib/carousel/carousel.class.mjs +3 -3
  44. package/esm2020/lib/carousel/carousel.component.mjs +3 -3
  45. package/esm2020/lib/carousel/carousel.module.mjs +5 -5
  46. package/esm2020/lib/checkbox/checkbox.component.mjs +5 -5
  47. package/esm2020/lib/checkbox/checkbox.module.mjs +5 -5
  48. package/esm2020/lib/collapse/collapse-group.component.mjs +3 -3
  49. package/esm2020/lib/collapse/collapse.component.mjs +3 -3
  50. package/esm2020/lib/collapse/collapse.module.mjs +5 -5
  51. package/esm2020/lib/color-palette/color-palette-input.component.mjs +16 -13
  52. package/esm2020/lib/color-palette/color-palette-picker.component.mjs +75 -10
  53. package/esm2020/lib/color-palette/color-palette-preview.component.mjs +3 -3
  54. package/esm2020/lib/color-palette/color-palette-swatches.component.mjs +7 -6
  55. package/esm2020/lib/color-palette/color-palette.class.mjs +7 -7
  56. package/esm2020/lib/color-palette/color-palette.component.mjs +20 -20
  57. package/esm2020/lib/color-palette/color-palette.module.mjs +10 -7
  58. package/esm2020/lib/color-picker/color-picker.component.mjs +19 -10
  59. package/esm2020/lib/color-picker/color-picker.module.mjs +15 -17
  60. package/esm2020/lib/data-pager/data-pager-base.component.mjs +37 -0
  61. package/esm2020/lib/data-pager/data-pager-info.component.mjs +52 -0
  62. package/esm2020/lib/data-pager/data-pager-input-selector.component.mjs +50 -0
  63. package/esm2020/lib/data-pager/data-pager-next-buttons.components.mjs +60 -0
  64. package/esm2020/lib/data-pager/data-pager-numeric-selector.component.mjs +99 -0
  65. package/esm2020/lib/data-pager/data-pager-pagesize-dropdown.component.mjs +86 -0
  66. package/esm2020/lib/data-pager/data-pager-prev-buttons.component.mjs +58 -0
  67. package/esm2020/lib/data-pager/data-pager.component.mjs +132 -0
  68. package/esm2020/lib/data-pager/data-pager.module.mjs +51 -0
  69. package/esm2020/lib/data-pager/index.mjs +9 -0
  70. package/esm2020/lib/data-table/data-column-cell-template.directive.mjs +4 -4
  71. package/esm2020/lib/data-table/data-column.directive.mjs +9 -4
  72. package/esm2020/lib/data-table/data-table.component.mjs +46 -14
  73. package/esm2020/lib/data-table/data-table.module.mjs +10 -6
  74. package/esm2020/lib/datalist/datalist.component.mjs +5 -5
  75. package/esm2020/lib/datalist/datalist.module.mjs +5 -5
  76. package/esm2020/lib/datepicker/datepicker.component.mjs +15 -15
  77. package/esm2020/lib/datepicker/datepicker.module.mjs +5 -5
  78. package/esm2020/lib/decorators/addon.component.mjs +3 -3
  79. package/esm2020/lib/decorators/close-button.component.mjs +3 -3
  80. package/esm2020/lib/decorators/content.component.mjs +3 -3
  81. package/esm2020/lib/decorators/decorators.module.mjs +5 -5
  82. package/esm2020/lib/decorators/footer.component.mjs +6 -6
  83. package/esm2020/lib/decorators/header.component.mjs +6 -6
  84. package/esm2020/lib/decorators/icon.component.mjs +3 -3
  85. package/esm2020/lib/decorators/prefix.component.mjs +6 -8
  86. package/esm2020/lib/decorators/suffix.component.mjs +6 -8
  87. package/esm2020/lib/decorators/title.component.mjs +3 -3
  88. package/esm2020/lib/dialog/dialog.component.mjs +9 -9
  89. package/esm2020/lib/dialog/dialog.module.mjs +5 -5
  90. package/esm2020/lib/dialog/dialog.service.mjs +3 -3
  91. package/esm2020/lib/drawer/drawer-container.component.mjs +3 -3
  92. package/esm2020/lib/drawer/drawer.component.mjs +3 -3
  93. package/esm2020/lib/drawer/drawer.module.mjs +5 -5
  94. package/esm2020/lib/dropdown/dropdown-panel.component.mjs +30 -27
  95. package/esm2020/lib/dropdown/dropdown.module.mjs +5 -5
  96. package/esm2020/lib/form/form-field.component.mjs +3 -3
  97. package/esm2020/lib/form/form-field.module.mjs +5 -5
  98. package/esm2020/lib/form/form-hint.component.mjs +3 -3
  99. package/esm2020/lib/form/form.component.mjs +32 -9
  100. package/esm2020/lib/input-mask/input-mask.component.mjs +3 -3
  101. package/esm2020/lib/input-mask/input-mask.module.mjs +5 -5
  102. package/esm2020/lib/label/label.component.mjs +3 -3
  103. package/esm2020/lib/label/label.module.mjs +5 -5
  104. package/esm2020/lib/loading/loading-spinner.component.mjs +4 -4
  105. package/esm2020/lib/loading/loading.component.mjs +4 -4
  106. package/esm2020/lib/loading/loading.directive.mjs +5 -5
  107. package/esm2020/lib/loading/loading.module.mjs +5 -5
  108. package/esm2020/lib/loading/loading.service.mjs +3 -3
  109. package/esm2020/lib/menu/menu.component.mjs +7 -7
  110. package/esm2020/lib/menu/menu.module.mjs +7 -10
  111. package/esm2020/lib/number-box/number-box.component.mjs +14 -12
  112. package/esm2020/lib/number-box/number-box.module.mjs +5 -5
  113. package/esm2020/lib/page/base-page.class.mjs +3 -3
  114. package/esm2020/lib/page/page.component.mjs +3 -3
  115. package/esm2020/lib/page/page.module.mjs +5 -5
  116. package/esm2020/lib/password-box/password-box.component.mjs +7 -7
  117. package/esm2020/lib/password-box/password-box.module.mjs +5 -5
  118. package/esm2020/lib/picker/picker.component.mjs +4 -4
  119. package/esm2020/lib/picker/picker.module.mjs +5 -5
  120. package/esm2020/lib/popover/popover.component.mjs +3 -3
  121. package/esm2020/lib/popover/popover.module.mjs +5 -5
  122. package/esm2020/lib/popup/popup.component.mjs +10 -10
  123. package/esm2020/lib/popup/popup.module.mjs +5 -5
  124. package/esm2020/lib/popup/popup.service.mjs +3 -3
  125. package/esm2020/lib/progress-bar/progress-bar.component.mjs +3 -3
  126. package/esm2020/lib/progress-bar/progress-bar.module.mjs +5 -5
  127. package/esm2020/lib/radio/radio.component.mjs +4 -4
  128. package/esm2020/lib/radio/radio.module.mjs +5 -5
  129. package/esm2020/lib/range-slider/range-slider.component.mjs +100 -11
  130. package/esm2020/lib/range-slider/range-slider.module.mjs +7 -6
  131. package/esm2020/lib/rating/rating.component.mjs +3 -3
  132. package/esm2020/lib/rating/rating.component.module.mjs +5 -5
  133. package/esm2020/lib/result/result.component.mjs +5 -5
  134. package/esm2020/lib/result/result.module.mjs +5 -5
  135. package/esm2020/lib/searchbox/searchbox.component.mjs +8 -8
  136. package/esm2020/lib/searchbox/searchbox.module.mjs +5 -5
  137. package/esm2020/lib/selectbox/selectbox.component.mjs +18 -18
  138. package/esm2020/lib/selectbox/selectbox.module.mjs +16 -17
  139. package/esm2020/lib/selection-list/selection-list.component.mjs +3 -3
  140. package/esm2020/lib/selection-list/selection-list.module.mjs +5 -5
  141. package/esm2020/lib/switch/switch.component.mjs +6 -6
  142. package/esm2020/lib/switch/switch.module.mjs +5 -5
  143. package/esm2020/lib/tabs/tab-content.directive.mjs +3 -3
  144. package/esm2020/lib/tabs/tab-item.component.mjs +4 -4
  145. package/esm2020/lib/tabs/tabs.component.mjs +3 -3
  146. package/esm2020/lib/tabs/tabs.module.mjs +5 -5
  147. package/esm2020/lib/textarea/textarea.component.mjs +3 -3
  148. package/esm2020/lib/textarea/textarea.module.mjs +6 -8
  149. package/esm2020/lib/textbox/textbox.component.mjs +6 -6
  150. package/esm2020/lib/textbox/textbox.module.mjs +9 -11
  151. package/esm2020/lib/time-box/time-box.component.mjs +5 -5
  152. package/esm2020/lib/time-box/time-box.module.mjs +5 -5
  153. package/esm2020/lib/toast/toast.component.mjs +15 -12
  154. package/esm2020/lib/toast/toast.module.mjs +5 -5
  155. package/esm2020/lib/toast/toast.service.mjs +3 -3
  156. package/esm2020/lib/tooltip/tooltip.component.mjs +3 -3
  157. package/esm2020/lib/tooltip/tooltip.directive.mjs +3 -3
  158. package/esm2020/lib/tooltip/tooltip.module.mjs +5 -5
  159. package/esm2020/lib/treeview/tree-view.component.mjs +5 -5
  160. package/esm2020/lib/treeview/tree-view.module.mjs +5 -5
  161. package/esm2020/lib/validation/index.mjs +2 -1
  162. package/esm2020/lib/validation/validation-rule.widget.mjs +4 -23
  163. package/esm2020/lib/validation/validation-summary.component.mjs +102 -0
  164. package/esm2020/lib/validation/validation.class.mjs +1 -1
  165. package/esm2020/lib/validation/validation.module.mjs +31 -19
  166. package/esm2020/public-api.mjs +2 -2
  167. package/fesm2015/acorex-components.mjs +1946 -1038
  168. package/fesm2015/acorex-components.mjs.map +1 -1
  169. package/fesm2020/acorex-components.mjs +1920 -1045
  170. package/fesm2020/acorex-components.mjs.map +1 -1
  171. package/{acorex-components.d.ts → index.d.ts} +0 -0
  172. package/lib/action-sheet/action-sheet-item.component.d.ts +1 -1
  173. package/lib/action-sheet/action-sheet.component.d.ts +1 -1
  174. package/lib/alert/alert.component.d.ts +7 -5
  175. package/lib/avatar/avatar-group.component.d.ts +1 -1
  176. package/lib/avatar/avatar.component.d.ts +1 -1
  177. package/lib/badge/badge.component.d.ts +1 -1
  178. package/lib/base/auto-focus.directive.d.ts +1 -1
  179. package/lib/base/components.class.d.ts +14 -0
  180. package/lib/base/events.class.d.ts +1 -1
  181. package/lib/base/hotkey.directive.d.ts +1 -1
  182. package/lib/base/infinite-scroll.directive.d.ts +1 -1
  183. package/lib/base/mixin/index.d.ts +2 -0
  184. package/lib/base/mixin/mixin.class.d.ts +18 -10
  185. package/lib/base/mixin/textbox-mixin.class.d.ts +24 -5
  186. package/lib/base/mixin/value-mixin.class.d.ts +7 -8
  187. package/lib/base/responsive.directive.d.ts +1 -1
  188. package/lib/breadcrumbs/breadcrumbs-item.component.d.ts +1 -1
  189. package/lib/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  190. package/lib/button/button-group.component.d.ts +66 -17
  191. package/lib/button/button-item.component.d.ts +1 -1
  192. package/lib/button/button.component.d.ts +1 -1
  193. package/lib/calendar/calendar.component.d.ts +1 -1
  194. package/lib/carousel/carousel-arrows.component.d.ts +1 -1
  195. package/lib/carousel/carousel-item.component.d.ts +1 -1
  196. package/lib/carousel/carousel-pager.component.d.ts +1 -1
  197. package/lib/carousel/carousel.component.d.ts +1 -1
  198. package/lib/checkbox/checkbox.component.d.ts +2 -2
  199. package/lib/collapse/collapse-group.component.d.ts +1 -1
  200. package/lib/collapse/collapse.component.d.ts +1 -1
  201. package/lib/color-palette/color-palette-input.component.d.ts +1 -1
  202. package/lib/color-palette/color-palette-picker.component.d.ts +19 -6
  203. package/lib/color-palette/color-palette-preview.component.d.ts +1 -1
  204. package/lib/color-palette/color-palette-swatches.component.d.ts +1 -1
  205. package/lib/color-palette/color-palette.class.d.ts +6 -1
  206. package/lib/color-palette/color-palette.component.d.ts +5 -5
  207. package/lib/color-palette/color-palette.module.d.ts +2 -1
  208. package/lib/color-picker/color-picker.component.d.ts +22 -18
  209. package/lib/data-pager/data-pager-base.component.d.ts +48 -0
  210. package/lib/data-pager/data-pager-info.component.d.ts +15 -0
  211. package/lib/data-pager/data-pager-input-selector.component.d.ts +15 -0
  212. package/lib/data-pager/data-pager-next-buttons.components.d.ts +16 -0
  213. package/lib/data-pager/data-pager-numeric-selector.component.d.ts +18 -0
  214. package/lib/data-pager/data-pager-pagesize-dropdown.component.d.ts +19 -0
  215. package/lib/data-pager/data-pager-prev-buttons.component.d.ts +15 -0
  216. package/lib/data-pager/data-pager.component.d.ts +34 -0
  217. package/lib/data-pager/data-pager.module.d.ts +18 -0
  218. package/lib/data-pager/index.d.ts +8 -0
  219. package/lib/data-table/data-column-cell-template.directive.d.ts +1 -1
  220. package/lib/data-table/data-column.directive.d.ts +2 -1
  221. package/lib/data-table/data-table.component.d.ts +12 -6
  222. package/lib/data-table/data-table.module.d.ts +5 -1
  223. package/lib/datalist/datalist.component.d.ts +1 -1
  224. package/lib/datepicker/datepicker.component.d.ts +8 -8
  225. package/lib/decorators/addon.component.d.ts +1 -1
  226. package/lib/decorators/close-button.component.d.ts +1 -1
  227. package/lib/decorators/content.component.d.ts +1 -1
  228. package/lib/decorators/footer.component.d.ts +1 -1
  229. package/lib/decorators/header.component.d.ts +1 -1
  230. package/lib/decorators/icon.component.d.ts +1 -1
  231. package/lib/decorators/prefix.component.d.ts +1 -1
  232. package/lib/decorators/suffix.component.d.ts +1 -1
  233. package/lib/decorators/title.component.d.ts +1 -1
  234. package/lib/dialog/dialog.component.d.ts +1 -1
  235. package/lib/drawer/drawer-container.component.d.ts +1 -1
  236. package/lib/drawer/drawer.component.d.ts +1 -1
  237. package/lib/dropdown/dropdown-panel.component.d.ts +7 -8
  238. package/lib/form/form-field.component.d.ts +1 -1
  239. package/lib/form/form-hint.component.d.ts +1 -1
  240. package/lib/form/form.component.d.ts +15 -5
  241. package/lib/input-mask/input-mask.component.d.ts +1 -1
  242. package/lib/label/label.component.d.ts +1 -1
  243. package/lib/loading/loading-spinner.component.d.ts +1 -1
  244. package/lib/loading/loading.component.d.ts +1 -1
  245. package/lib/loading/loading.directive.d.ts +1 -1
  246. package/lib/menu/menu.component.d.ts +3 -3
  247. package/lib/number-box/number-box.component.d.ts +2 -2
  248. package/lib/password-box/password-box.component.d.ts +1 -1
  249. package/lib/picker/picker.component.d.ts +1 -1
  250. package/lib/popover/popover.component.d.ts +1 -1
  251. package/lib/popup/popup.component.d.ts +1 -1
  252. package/lib/progress-bar/progress-bar.component.d.ts +1 -1
  253. package/lib/radio/radio.component.d.ts +1 -1
  254. package/lib/range-slider/range-slider.component.d.ts +36 -5
  255. package/lib/range-slider/range-slider.module.d.ts +2 -1
  256. package/lib/rating/rating.component.d.ts +1 -1
  257. package/lib/result/result.component.d.ts +2 -2
  258. package/lib/searchbox/searchbox.component.d.ts +1 -1
  259. package/lib/selectbox/selectbox.component.d.ts +1 -1
  260. package/lib/selection-list/selection-list.component.d.ts +1 -1
  261. package/lib/switch/switch.component.d.ts +1 -1
  262. package/lib/tabs/tab-content.directive.d.ts +1 -1
  263. package/lib/tabs/tab-item.component.d.ts +1 -1
  264. package/lib/tabs/tabs.component.d.ts +1 -1
  265. package/lib/textarea/textarea.component.d.ts +1 -1
  266. package/lib/textbox/textbox.component.d.ts +1 -1
  267. package/lib/time-box/time-box.component.d.ts +1 -1
  268. package/lib/toast/toast.component.d.ts +1 -1
  269. package/lib/tooltip/tooltip.component.d.ts +1 -1
  270. package/lib/tooltip/tooltip.directive.d.ts +1 -1
  271. package/lib/treeview/tree-view.component.d.ts +1 -1
  272. package/lib/validation/index.d.ts +1 -0
  273. package/lib/validation/validation-rule.widget.d.ts +1 -9
  274. package/lib/validation/validation-summary.component.d.ts +20 -0
  275. package/lib/validation/validation.class.d.ts +3 -2
  276. package/lib/validation/validation.module.d.ts +6 -2
  277. package/package.json +3 -3
  278. package/public-api.d.ts +1 -0
@@ -5,12 +5,12 @@ import { AXBaseTextBoxMixin } from '../base';
5
5
  import { TEXTBOX_INPUTS, TEXTBOX_OUTPUT, } from '../base/mixin/textbox-mixin.class';
6
6
  import _ from 'lodash';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "../button/button.component";
9
- import * as i2 from "../decorators/prefix.component";
10
- import * as i3 from "../decorators/icon.component";
11
- import * as i4 from "@angular/forms";
12
- import * as i5 from "angular-imask";
13
- import * as i6 from "@angular/common";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "../button/button.component";
11
+ import * as i4 from "../decorators/prefix.component";
12
+ import * as i5 from "../decorators/icon.component";
13
+ import * as i6 from "angular-imask";
14
14
  /**
15
15
  * The NumberBox is a component which detects user interaction and triggers a corresponding event
16
16
  *
@@ -140,6 +140,7 @@ export class AXNumberBoxComponent extends AXBaseTextBoxMixin {
140
140
  e.preventDefault();
141
141
  e.stopPropagation();
142
142
  };
143
+ this._setUserInteraction();
143
144
  const input = e.target;
144
145
  const valStr = input.value;
145
146
  const decimalPointIndex = valStr.indexOf('.');
@@ -161,9 +162,10 @@ export class AXNumberBoxComponent extends AXBaseTextBoxMixin {
161
162
  _handleUpDownClick(e, v) {
162
163
  if (this.disabled || this.readonly)
163
164
  return;
165
+ this._setUserInteraction();
164
166
  v == 1 ? this.stepUp() : this.stepDown();
165
167
  }
166
- _onValueChanging(value) {
168
+ _setValue(value) {
167
169
  if (value == null && this.allowNull) {
168
170
  return null;
169
171
  }
@@ -187,9 +189,9 @@ export class AXNumberBoxComponent extends AXBaseTextBoxMixin {
187
189
  this.value -= _.toNumber(this.decimalStep == 'auto' ? (1 / Math.pow(10, this.decimals)) : this.decimalStep);
188
190
  }
189
191
  }
190
- AXNumberBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXNumberBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
191
- AXNumberBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-editor-container" }, viewQueries: [{ propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" \r\n [attr.placeholder]=\"placeholder\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" \r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" \r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [(ngModel)]=\"value\"\r\n (focus)=\"_emitOnFocusEvent($event)\" \r\n (blur)=\"_emitOnFocusEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\"\r\n [attr.autocomplete]=\"autoComplete\">\r\n\r\n<div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax-rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax--rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", components: [{ type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i2.AXDecoratorPrefixComponent, selector: "ax-prefix" }, { type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], directives: [{ type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
192
+ AXNumberBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXNumberBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
193
+ AXNumberBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-editor-container" }, viewQueries: [{ propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" \r\n [attr.placeholder]=\"placeholder\" \r\n [attr.autocomplete]=\"autoComplete\"\r\n [imask]=\"_maskObj\" \r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" \r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" \r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [ngModel]=\"value\" (ngModelChange)=\"_handleModleChange($event)\"\r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n (keyup)=\"_emitOnKeyupEvent($event)\"\r\n (keypress)=\"_emitOnKeypressEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n >\r\n\r\n<div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax-rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax--rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { kind: "component", type: i4.AXDecoratorPrefixComponent, selector: "ax-prefix" }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i6.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
193
195
  type: Component,
194
196
  args: [{ selector: 'ax-number-box', inputs: [
195
197
  'disabled',
@@ -204,7 +206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
204
206
  'onBlur',
205
207
  'onFocus',
206
208
  ...TEXTBOX_OUTPUT,
207
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-editor-container' }, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" \r\n [attr.placeholder]=\"placeholder\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" \r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" \r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [(ngModel)]=\"value\"\r\n (focus)=\"_emitOnFocusEvent($event)\" \r\n (blur)=\"_emitOnFocusEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\"\r\n [attr.autocomplete]=\"autoComplete\">\r\n\r\n<div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax-rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax--rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>" }]
209
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-editor-container' }, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" \r\n [attr.placeholder]=\"placeholder\" \r\n [attr.autocomplete]=\"autoComplete\"\r\n [imask]=\"_maskObj\" \r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" \r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" \r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [ngModel]=\"value\" (ngModelChange)=\"_handleModleChange($event)\"\r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n (keyup)=\"_emitOnKeyupEvent($event)\"\r\n (keypress)=\"_emitOnKeypressEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n >\r\n\r\n<div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax-rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax--rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>" }]
208
210
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { thousandsSeparator: [{
209
211
  type: Input
210
212
  }], padDecimalZeros: [{
@@ -225,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
225
227
  type: ViewChild,
226
228
  args: [IMaskDirective]
227
229
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQTBDLE1BQU0sU0FBUyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQUV2Qjs7OztHQUlHO0FBdUJILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBa0I7SUFpSDFEOztNQUVFO0lBQ0YsWUFDRSxVQUFzQixFQUNkLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWxHeEIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBa0IxQzs7U0FFQztRQUVELFNBQUksR0FBVyxDQUFDLENBQUM7UUFJVCxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBZ0I5Qjs7VUFFRTtRQUVGLGdCQUFXLEdBQW9CLE1BQU0sQ0FBQztRQUV0Qzs7VUFFRTtRQUVGLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBRXhCLGNBQVMsR0FBVyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFlNUMsY0FBUyxHQUFXLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQWdDcEQsQ0FBQztJQW5IRDs7TUFFRTtJQUNGLElBQ1csa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFXLGtCQUFrQixDQUFDLENBQVM7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNkLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFO1NBQ2YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUdEOztNQUVFO0lBQ0YsSUFDVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFXLGVBQWUsQ0FBQyxDQUFVO1FBQ25DLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDZCxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLEtBQUssRUFBRSxDQUFDO1NBQ1QsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQWNEOztNQUVFO0lBQ0YsSUFDVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsQ0FBUztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2QsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2QsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQWdCRDs7TUFFRTtJQUNGLElBQ1csUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLENBQVM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNkLElBQUksRUFBRSxVQUFVO1lBQ2hCLEtBQUssRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7U0FDdkQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUdEOztNQUVFO0lBQ0YsSUFDVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsQ0FBUztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2QsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtTQUN2RCxDQUFDLENBQUE7SUFDSixDQUFDO0lBc0JELFVBQVU7UUFDUixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxNQUFnQztRQUMvQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztnQkFDL0IsSUFBSSxFQUFFLE1BQU07Z0JBQ1osR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNsQixHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ2xCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO2dCQUNqRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3BCLEtBQUssRUFBRSxHQUFHO2dCQUNWLGtCQUFrQixFQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlO2FBQzlELENBQUMsQ0FBQztTQUNKO2FBQ0k7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztnQkFDMUIsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNsQixHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ2xCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO2dCQUNqRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3BCLEtBQUssRUFBRSxHQUFHO2dCQUNWLGtCQUFrQixFQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlO2FBQzlELENBQUMsQ0FBQTtTQUNIO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELHFCQUFxQixDQUFDLENBQWdCO1FBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUNoQyxPQUFPO1FBQ1QsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQTBCLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMzQixNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUV4QyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQ2hELElBQUksaUJBQWlCLEdBQUcsQ0FBQyxJQUFJLFVBQVUsR0FBRyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRTtnQkFDaEYsQ0FBQyxDQUFDLEdBQUcsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3ZFO2lCQUNJO2dCQUNILENBQUMsQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUN6RDtZQUNELE1BQU0sRUFBRSxDQUFDO1lBQ1QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2xELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO1FBQ0QsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFJRCxrQkFBa0IsQ0FBQyxDQUFlLEVBQUUsQ0FBUztRQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDaEMsT0FBTztRQUNULENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUTtZQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBR0QsTUFBTTtRQUNKLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlHLENBQUM7O2lIQWhPVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix5d0JBOEdwQixjQUFjLHVFQzdKM0IscTVDQW9DYTsyRkRXQSxvQkFBb0I7a0JBdEJoQyxTQUFTOytCQUNFLGVBQWUsVUFFakI7d0JBQ04sVUFBVTt3QkFDVixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsTUFBTTt3QkFDTixPQUFPO3dCQUNQLEdBQUcsY0FBYztxQkFDbEIsV0FDUTt3QkFDUCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixTQUFTO3dCQUNULEdBQUcsY0FBYztxQkFDbEIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUU7aUlBWTNCLGtCQUFrQjtzQkFENUIsS0FBSztnQkFnQkssZUFBZTtzQkFEekIsS0FBSztnQkFrQk4sSUFBSTtzQkFESCxLQUFLO2dCQVVLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZ0JOLFdBQVc7c0JBRFYsS0FBSztnQkFPTixlQUFlO3NCQURkLEtBQUs7Z0JBUUssUUFBUTtzQkFEbEIsS0FBSztnQkFnQkssUUFBUTtzQkFEbEIsS0FBSztnQkFrQkUsY0FBYztzQkFEckIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IElNYXNrIGZyb20gJ2ltYXNrJztcclxuaW1wb3J0IHsgSU1hc2tEaXJlY3RpdmUgfSBmcm9tICdhbmd1bGFyLWltYXNrJztcclxuaW1wb3J0IHsgQVhCYXNlVGV4dEJveE1peGluLCBBWENsaWNrRXZlbnQsIEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCB9IGZyb20gJy4uL2Jhc2UnO1xyXG5pbXBvcnQge1xyXG4gIFRFWFRCT1hfSU5QVVRTLFxyXG4gIFRFWFRCT1hfT1VUUFVULFxyXG59IGZyb20gJy4uL2Jhc2UvbWl4aW4vdGV4dGJveC1taXhpbi5jbGFzcyc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcblxyXG4vKipcclxuICogVGhlIE51bWJlckJveCBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1udW1iZXItYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgaW5wdXRzOiBbXHJcbiAgICAnZGlzYWJsZWQnLFxyXG4gICAgJ3JlYWRvbmx5JyxcclxuICAgICd0YWJJbmRleCcsXHJcbiAgICAnc2l6ZScsXHJcbiAgICAndmFsdWUnLFxyXG4gICAgLi4uVEVYVEJPWF9JTlBVVFMsXHJcbiAgXSxcclxuICBvdXRwdXRzOiBbXHJcbiAgICAndmFsdWVDaGFuZ2UnLFxyXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcclxuICAgICdvbkJsdXInLFxyXG4gICAgJ29uRm9jdXMnLFxyXG4gICAgLi4uVEVYVEJPWF9PVVRQVVQsXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGhvc3Q6IHsgY2xhc3M6ICdheC1lZGl0b3ItY29udGFpbmVyJyB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhOdW1iZXJCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VUZXh0Qm94TWl4aW4ge1xyXG5cclxuXHJcblxyXG5cclxuICBwcml2YXRlIF90aG91c2FuZHNTZXBhcmF0b3I6IHN0cmluZztcclxuICAvKipcclxuICAqICBBIGNoYXJhY3RlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgc2VwYXJhdG9yIGNoYXJhY3Rlci5cclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCB0aG91c2FuZHNTZXBhcmF0b3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90aG91c2FuZHNTZXBhcmF0b3I7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdGhvdXNhbmRzU2VwYXJhdG9yKHY6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogXCJ0aG91c2FuZHNTZXBhcmF0b3JcIixcclxuICAgICAgdmFsdWU6IHYgPz8gJycsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcGFkRGVjaW1hbFplcm9zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgKiAgQSBjaGFyYWN0ZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgcGFkRGVjaW1hbFplcm9zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhZERlY2ltYWxaZXJvcztcclxuICB9XHJcbiAgcHVibGljIHNldCBwYWREZWNpbWFsWmVyb3ModjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogXCJwYWREZWNpbWFsWmVyb3NcIixcclxuICAgICAgdmFsdWU6IHYsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAqICBTcGVjaWZpZXMgdGhlIHZhbHVlIHRoYXQgaXMgdXNlZCB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IHRoZSAqKkludGVnZXIqKiBwYXJ0IG9mIG51bWJlclxyXG4gKi9cclxuICBASW5wdXQoKVxyXG4gIHN0ZXA6IG51bWJlciA9IDE7XHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfZGVjaW1hbHM6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhhdCB0aGUgdXNlciBjYW4gZW50ZXJcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBkZWNpbWFscygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RlY2ltYWxzO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGRlY2ltYWxzKHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogXCJkZWNpbWFsc1wiLFxyXG4gICAgICB2YWx1ZTogdiA/PyAwLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAqICBTcGVjaWZpZXMgdGhlIHZhbHVlIHRoYXQgaXMgdXNlZCB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IHRoZSAqKkRlY2lhbWwqKiBwYXJ0IG9mIG51bWJlclxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBkZWNpbWFsU3RlcDogbnVtYmVyIHwgJ2F1dG8nID0gJ2F1dG8nO1xyXG5cclxuICAvKipcclxuICAqICBTcGVjaWZpZXMgd2hldGhlciB0aGUgVXAgYW5kIERvd24gc3BpbiBidXR0b25zIHdpbGwgYmUgcmVuZGVyZWQgb3Igbm90XHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNob3dTcGluQnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX21pblZhbHVlOiBudW1iZXIgPSBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUjtcclxuICAvKipcclxuICAqICBTcGVjaWZpZXMgdGhlIHNtYWxsZXN0IHZhbHVlIHRoYXQgaXMgdmFsaWRcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pblZhbHVlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IG1pblZhbHVlKHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogXCJtaW5WYWx1ZVwiLFxyXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbWF4VmFsdWU6IG51bWJlciA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xyXG4gIC8qKlxyXG4gICogIFNwZWNpZmllcyB0aGUgZ3JlYXRlc3QgdmFsdWUgdGhhdCBpcyB2YWxpZFxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4VmFsdWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbWF4VmFsdWUodjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiBcIm1heFZhbHVlXCIsXHJcbiAgICAgIHZhbHVlOiB2ICE9IG51bGwgPyBOdW1iZXIodikgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgKiAgQGlnbm9yZVxyXG4gICovXHJcbiAgX21hc2tPYmo6IElNYXNrLk1hc2tlZE51bWJlcjtcclxuXHJcbiAgQFZpZXdDaGlsZChJTWFza0RpcmVjdGl2ZSlcclxuICBwcml2YXRlIF9tYXNrRGlyZWN0aXZlOiBJTWFza0RpcmVjdGl2ZTxJTWFzay5NYXNrZWROdW1iZXI+O1xyXG5cclxuICAvKipcclxuICAqICBAaWdub3JlXHJcbiAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25WaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm9uVmlld0luaXQoKTtcclxuICAgIHRoaXMuX3VwZGF0ZU1hc2soKTtcclxuICB9XHJcblxyXG5cclxuICBfb25PcHRpb25DaGFuZ2VkKG9wdGlvbjogQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkKTogdm9pZCB7XHJcbiAgICBzdXBlci5fb25PcHRpb25DaGFuZ2VkKG9wdGlvbik7XHJcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVNYXNrKCkge1xyXG4gICAgaWYgKCF0aGlzLl9tYXNrT2JqKSB7XHJcbiAgICAgIHRoaXMuX21hc2tPYmogPSBJTWFzay5jcmVhdGVNYXNrKHtcclxuICAgICAgICBtYXNrOiBOdW1iZXIsXHJcbiAgICAgICAgbWluOiB0aGlzLm1pblZhbHVlLFxyXG4gICAgICAgIG1heDogdGhpcy5tYXhWYWx1ZSxcclxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnLFxyXG4gICAgICAgIHNjYWxlOiB0aGlzLmRlY2ltYWxzLFxyXG4gICAgICAgIHJhZGl4OiAnLicsXHJcbiAgICAgICAgcGFkRnJhY3Rpb25hbFplcm9zOiB0aGlzLmRlY2ltYWxzID4gMCAmJiB0aGlzLnBhZERlY2ltYWxaZXJvc1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLl9tYXNrT2JqLnVwZGF0ZU9wdGlvbnMoe1xyXG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcclxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXHJcbiAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciB8fCAnJyxcclxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcclxuICAgICAgICByYWRpeDogJy4nLFxyXG4gICAgICAgIHBhZEZyYWN0aW9uYWxaZXJvczogdGhpcy5kZWNpbWFscyA+IDAgJiYgdGhpcy5wYWREZWNpbWFsWmVyb3NcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZVZhbHVlKCk7XHJcbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVDb250cm9sKCk7XHJcbiAgfVxyXG5cclxuICBfaGFuZGxlT25LZXlkb3duRXZlbnQoZTogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgdmFsU3RyID0gaW5wdXQudmFsdWU7XHJcbiAgICBjb25zdCBkZWNpbWFsUG9pbnRJbmRleCA9IHZhbFN0ci5pbmRleE9mKCcuJyk7XHJcbiAgICBjb25zdCBfY3Vyc29yUG9zID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQ7XHJcblxyXG4gICAgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIGlmIChkZWNpbWFsUG9pbnRJbmRleCA+IDAgJiYgX2N1cnNvclBvcyA+IGRlY2ltYWxQb2ludEluZGV4ICYmIHRoaXMuZGVjaW1hbHMgPiAwKSB7XHJcbiAgICAgICAgZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gdGhpcy5kZWNpbWFsU3RlcERvd24oKSA6IHRoaXMuZGVjaW1hbFN0ZXBVcCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGUua2V5ID09PSAnQXJyb3dEb3duJyA/IHRoaXMuc3RlcERvd24oKSA6IHRoaXMuc3RlcFVwKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWdub3JlKCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKF9jdXJzb3JQb3MsIF9jdXJzb3JQb3MpO1xyXG4gICAgICB9LCA1KTtcclxuICAgIH1cclxuICAgIHN1cGVyLl9lbWl0T25LZXlkb3duRXZlbnQoZSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIF9oYW5kbGVVcERvd25DbGljayhlOiBBWENsaWNrRXZlbnQsIHY6IC0xIHwgMSkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdiA9PSAxID8gdGhpcy5zdGVwVXAoKSA6IHRoaXMuc3RlcERvd24oKTtcclxuICB9XHJcblxyXG5cclxuICBfb25WYWx1ZUNoYW5naW5nKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSA9PSBudWxsICYmIHRoaXMuYWxsb3dOdWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdiA9IF8udG9OdW1iZXIodmFsdWUpO1xyXG4gICAgaWYgKHYgPCB0aGlzLm1pblZhbHVlKVxyXG4gICAgICByZXR1cm4gdGhpcy5taW5WYWx1ZTtcclxuICAgIGlmICh2ID4gdGhpcy5tYXhWYWx1ZSlcclxuICAgICAgcmV0dXJuIHRoaXMubWF4VmFsdWU7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG5cclxuICBzdGVwVXAoKSB7XHJcbiAgICB0aGlzLnZhbHVlICs9IF8udG9OdW1iZXIodGhpcy5zdGVwKTtcclxuICB9XHJcblxyXG4gIHN0ZXBEb3duKCkge1xyXG4gICAgdGhpcy52YWx1ZSAtPSBfLnRvTnVtYmVyKHRoaXMuc3RlcCk7XHJcbiAgfVxyXG5cclxuICBkZWNpbWFsU3RlcFVwKCkge1xyXG4gICAgdGhpcy52YWx1ZSArPSBfLnRvTnVtYmVyKHRoaXMuZGVjaW1hbFN0ZXAgPT0gJ2F1dG8nID8gKDEgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFscykpIDogdGhpcy5kZWNpbWFsU3RlcCk7XHJcbiAgfVxyXG5cclxuICBkZWNpbWFsU3RlcERvd24oKSB7XHJcbiAgICB0aGlzLnZhbHVlIC09IF8udG9OdW1iZXIodGhpcy5kZWNpbWFsU3RlcCA9PSAnYXV0bycgPyAoMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSkgOiB0aGlzLmRlY2ltYWxTdGVwKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPlxyXG48L25nLWNvbnRlbnQ+XHJcbjxpbnB1dCBjbGFzcz1cImF4LWlucHV0XCIgdHlwZT1cInRleHRcIiAgXHJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFxyXG4gICAgW2ltYXNrXT1cIl9tYXNrT2JqXCIgXHJcbiAgICBbdW5tYXNrXT1cIid0eXBlZCdcIlxyXG4gICAgW2F0dHIubWluXT1cIm1pblZhbHVlXCJcclxuICAgIFthdHRyLm1heF09XCJtYXhWYWx1ZVwiIFxyXG4gICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCIgXHJcbiAgICBbY2xhc3MuYXgtc3RhdGUtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgXHJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBcclxuICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiIFxyXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAoZm9jdXMpPVwiX2VtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIFxyXG4gICAgKGJsdXIpPVwiX2VtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIFxyXG4gICAgKGtleWRvd24pPVwiX2hhbmRsZU9uS2V5ZG93bkV2ZW50KCRldmVudClcIlxyXG4gICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9Db21wbGV0ZVwiPlxyXG5cclxuPGRpdiBjbGFzcz1cImF4LW51bWJlci1ib3gtYXJyb3dzXCIgKm5nSWY9XCJzaG93U3BpbkJ1dHRvbnMgJiYgIShkaXNhYmxlZCB8fCByZWFkb25seSlcIj5cclxuICAgIDxheC1idXR0b24gY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cIl9oYW5kbGVVcERvd25DbGljaygkZXZlbnQsMSlcIiBbdGFiSW5kZXhdPVwiLTFcIj5cclxuICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljLWFycm93LWZpbGwgYXgtcm90YXRlLTkwXCI+XHJcbiAgICAgICAgICAgIDwvYXgtaWNvbj5cclxuICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgPGF4LWJ1dHRvbiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKCRldmVudCwtMSlcIiBbdGFiSW5kZXhdPVwiLTFcIj5cclxuICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljLWFycm93LWZpbGwgYXgtLXJvdGF0ZS05MFwiPlxyXG4gICAgICAgICAgICA8L2F4LWljb24+XHJcbiAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICA8L2F4LWJ1dHRvbj5cclxuPC9kaXY+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPlxyXG48L25nLWNvbnRlbnQ+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPlxyXG48L25nLWNvbnRlbnQ+Il19
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQTBDLE1BQU0sU0FBUyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQUV2Qjs7OztHQUlHO0FBdUJILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBa0I7SUFpSDFEOztNQUVFO0lBQ0YsWUFDRSxVQUFzQixFQUNkLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWxHeEIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBa0IxQzs7U0FFQztRQUVELFNBQUksR0FBVyxDQUFDLENBQUM7UUFJVCxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBZ0I5Qjs7VUFFRTtRQUVGLGdCQUFXLEdBQW9CLE1BQU0sQ0FBQztRQUV0Qzs7VUFFRTtRQUVGLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FB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Q2hCLFFBQVE7d0JBQ1IsU0FBUzt3QkFDVCxHQUFHLGNBQWM7cUJBQ2xCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFO2lJQVkzQixrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBZ0JLLGVBQWU7c0JBRHpCLEtBQUs7Z0JBa0JOLElBQUk7c0JBREgsS0FBSztnQkFVSyxRQUFRO3NCQURsQixLQUFLO2dCQWdCTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZ0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBa0JFLGNBQWM7c0JBRHJCLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgSU1hc2sgZnJvbSAnaW1hc2snO1xyXG5pbXBvcnQgeyBJTWFza0RpcmVjdGl2ZSB9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xyXG5pbXBvcnQgeyBBWEJhc2VUZXh0Qm94TWl4aW4sIEFYQ2xpY2tFdmVudCwgQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkIH0gZnJvbSAnLi4vYmFzZSc7XHJcbmltcG9ydCB7XHJcbiAgVEVYVEJPWF9JTlBVVFMsXHJcbiAgVEVYVEJPWF9PVVRQVVQsXHJcbn0gZnJvbSAnLi4vYmFzZS9taXhpbi90ZXh0Ym94LW1peGluLmNsYXNzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgTnVtYmVyQm94IGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LW51bWJlci1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBpbnB1dHM6IFtcclxuICAgICdkaXNhYmxlZCcsXHJcbiAgICAncmVhZG9ubHknLFxyXG4gICAgJ3RhYkluZGV4JyxcclxuICAgICdzaXplJyxcclxuICAgICd2YWx1ZScsXHJcbiAgICAuLi5URVhUQk9YX0lOUFVUUyxcclxuICBdLFxyXG4gIG91dHB1dHM6IFtcclxuICAgICd2YWx1ZUNoYW5nZScsXHJcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxyXG4gICAgJ29uQmx1cicsXHJcbiAgICAnb25Gb2N1cycsXHJcbiAgICAuLi5URVhUQk9YX09VVFBVVCxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDogeyBjbGFzczogJ2F4LWVkaXRvci1jb250YWluZXInIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWE51bWJlckJveENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVRleHRCb3hNaXhpbiB7XHJcblxyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgX3Rob3VzYW5kc1NlcGFyYXRvcjogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHRob3VzYW5kc1NlcGFyYXRvcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Rob3VzYW5kc1NlcGFyYXRvcjtcclxuICB9XHJcbiAgcHVibGljIHNldCB0aG91c2FuZHNTZXBhcmF0b3Iodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiBcInRob3VzYW5kc1NlcGFyYXRvclwiLFxyXG4gICAgICB2YWx1ZTogdiA/PyAnJyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wYWREZWNpbWFsWmVyb3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAqICBBIGNoYXJhY3RlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgc2VwYXJhdG9yIGNoYXJhY3Rlci5cclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBwYWREZWNpbWFsWmVyb3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFkRGVjaW1hbFplcm9zO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHBhZERlY2ltYWxaZXJvcyh2OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiBcInBhZERlY2ltYWxaZXJvc1wiLFxyXG4gICAgICB2YWx1ZTogdixcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKipcclxuICogIFNwZWNpZmllcyB0aGUgdmFsdWUgdGhhdCBpcyB1c2VkIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgdGhlICoqSW50ZWdlcioqIHBhcnQgb2YgbnVtYmVyXHJcbiAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc3RlcDogbnVtYmVyID0gMTtcclxuXHJcblxyXG5cclxuICBwcml2YXRlIF9kZWNpbWFsczogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAqICBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBkZWNpbWFscyB0aGF0IHRoZSB1c2VyIGNhbiBlbnRlclxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IGRlY2ltYWxzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVjaW1hbHM7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZGVjaW1hbHModjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiBcImRlY2ltYWxzXCIsXHJcbiAgICAgIHZhbHVlOiB2ID8/IDAsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICogIFNwZWNpZmllcyB0aGUgdmFsdWUgdGhhdCBpcyB1c2VkIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgdGhlICoqRGVjaWFtbCoqIHBhcnQgb2YgbnVtYmVyXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIGRlY2ltYWxTdGVwOiBudW1iZXIgfCAnYXV0bycgPSAnYXV0byc7XHJcblxyXG4gIC8qKlxyXG4gICogIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBVcCBhbmQgRG93biBzcGluIGJ1dHRvbnMgd2lsbCBiZSByZW5kZXJlZCBvciBub3RcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1NwaW5CdXR0b25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfbWluVmFsdWU6IG51bWJlciA9IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSO1xyXG4gIC8qKlxyXG4gICogIFNwZWNpZmllcyB0aGUgc21hbGxlc3QgdmFsdWUgdGhhdCBpcyB2YWxpZFxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IG1pblZhbHVlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWluVmFsdWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbWluVmFsdWUodjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiBcIm1pblZhbHVlXCIsXHJcbiAgICAgIHZhbHVlOiB2ICE9IG51bGwgPyBOdW1iZXIodikgOiBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUixcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tYXhWYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSBncmVhdGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWF4VmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9tYXhWYWx1ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBtYXhWYWx1ZSh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwibWF4VmFsdWVcIixcclxuICAgICAgdmFsdWU6IHYgIT0gbnVsbCA/IE51bWJlcih2KSA6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAqICBAaWdub3JlXHJcbiAgKi9cclxuICBfbWFza09iajogSU1hc2suTWFza2VkTnVtYmVyO1xyXG5cclxuICBAVmlld0NoaWxkKElNYXNrRGlyZWN0aXZlKVxyXG4gIHByaXZhdGUgX21hc2tEaXJlY3RpdmU6IElNYXNrRGlyZWN0aXZlPElNYXNrLk1hc2tlZE51bWJlcj47XHJcblxyXG4gIC8qKlxyXG4gICogIEBpZ25vcmVcclxuICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuICB9XHJcblxyXG5cclxuICBvblZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25WaWV3SW5pdCgpO1xyXG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xyXG4gIH1cclxuXHJcblxyXG4gIF9vbk9wdGlvbkNoYW5nZWQob3B0aW9uOiBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQpOiB2b2lkIHtcclxuICAgIHN1cGVyLl9vbk9wdGlvbkNoYW5nZWQob3B0aW9uKTtcclxuICAgIHRoaXMuX3VwZGF0ZU1hc2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZU1hc2soKSB7XHJcbiAgICBpZiAoIXRoaXMuX21hc2tPYmopIHtcclxuICAgICAgdGhpcy5fbWFza09iaiA9IElNYXNrLmNyZWF0ZU1hc2soe1xyXG4gICAgICAgIG1hc2s6IE51bWJlcixcclxuICAgICAgICBtaW46IHRoaXMubWluVmFsdWUsXHJcbiAgICAgICAgbWF4OiB0aGlzLm1heFZhbHVlLFxyXG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgfHwgJycsXHJcbiAgICAgICAgc2NhbGU6IHRoaXMuZGVjaW1hbHMsXHJcbiAgICAgICAgcmFkaXg6ICcuJyxcclxuICAgICAgICBwYWRGcmFjdGlvbmFsWmVyb3M6IHRoaXMuZGVjaW1hbHMgPiAwICYmIHRoaXMucGFkRGVjaW1hbFplcm9zXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX21hc2tPYmoudXBkYXRlT3B0aW9ucyh7XHJcbiAgICAgICAgbWluOiB0aGlzLm1pblZhbHVlLFxyXG4gICAgICAgIG1heDogdGhpcy5tYXhWYWx1ZSxcclxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnLFxyXG4gICAgICAgIHNjYWxlOiB0aGlzLmRlY2ltYWxzLFxyXG4gICAgICAgIHJhZGl4OiAnLicsXHJcbiAgICAgICAgcGFkRnJhY3Rpb25hbFplcm9zOiB0aGlzLmRlY2ltYWxzID4gMCAmJiB0aGlzLnBhZERlY2ltYWxaZXJvc1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlVmFsdWUoKTtcclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVPbktleWRvd25FdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KVxyXG4gICAgICByZXR1cm47XHJcbiAgICBjb25zdCBpZ25vcmUgPSAoKSA9PiB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH07XHJcbiAgICB0aGlzLl9zZXRVc2VySW50ZXJhY3Rpb24oKTtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHZhbFN0ciA9IGlucHV0LnZhbHVlO1xyXG4gICAgY29uc3QgZGVjaW1hbFBvaW50SW5kZXggPSB2YWxTdHIuaW5kZXhPZignLicpO1xyXG4gICAgY29uc3QgX2N1cnNvclBvcyA9IGlucHV0LnNlbGVjdGlvblN0YXJ0O1xyXG5cclxuICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICBpZiAoZGVjaW1hbFBvaW50SW5kZXggPiAwICYmIF9jdXJzb3JQb3MgPiBkZWNpbWFsUG9pbnRJbmRleCAmJiB0aGlzLmRlY2ltYWxzID4gMCkge1xyXG4gICAgICAgIGUua2V5ID09PSAnQXJyb3dEb3duJyA/IHRoaXMuZGVjaW1hbFN0ZXBEb3duKCkgOiB0aGlzLmRlY2ltYWxTdGVwVXAoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBlLmtleSA9PT0gJ0Fycm93RG93bicgPyB0aGlzLnN0ZXBEb3duKCkgOiB0aGlzLnN0ZXBVcCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShfY3Vyc29yUG9zLCBfY3Vyc29yUG9zKTtcclxuICAgICAgfSwgNSk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5fZW1pdE9uS2V5ZG93bkV2ZW50KGUpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBfaGFuZGxlVXBEb3duQ2xpY2soZTogQVhDbGlja0V2ZW50LCB2OiAtMSB8IDEpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMuX3NldFVzZXJJbnRlcmFjdGlvbigpO1xyXG4gICAgdiA9PSAxID8gdGhpcy5zdGVwVXAoKSA6IHRoaXMuc3RlcERvd24oKTtcclxuICB9XHJcblxyXG5cclxuICBfc2V0VmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgdGhpcy5hbGxvd051bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2ID0gXy50b051bWJlcih2YWx1ZSk7XHJcbiAgICBpZiAodiA8IHRoaXMubWluVmFsdWUpXHJcbiAgICAgIHJldHVybiB0aGlzLm1pblZhbHVlO1xyXG4gICAgaWYgKHYgPiB0aGlzLm1heFZhbHVlKVxyXG4gICAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxuXHJcblxyXG4gIHN0ZXBVcCgpIHtcclxuICAgIHRoaXMudmFsdWUgKz0gXy50b051bWJlcih0aGlzLnN0ZXApO1xyXG4gIH1cclxuXHJcbiAgc3RlcERvd24oKSB7XHJcbiAgICB0aGlzLnZhbHVlIC09IF8udG9OdW1iZXIodGhpcy5zdGVwKTtcclxuICB9XHJcblxyXG4gIGRlY2ltYWxTdGVwVXAoKSB7XHJcbiAgICB0aGlzLnZhbHVlICs9IF8udG9OdW1iZXIodGhpcy5kZWNpbWFsU3RlcCA9PSAnYXV0bycgPyAoMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSkgOiB0aGlzLmRlY2ltYWxTdGVwKTtcclxuICB9XHJcblxyXG4gIGRlY2ltYWxTdGVwRG93bigpIHtcclxuICAgIHRoaXMudmFsdWUgLT0gXy50b051bWJlcih0aGlzLmRlY2ltYWxTdGVwID09ICdhdXRvJyA/ICgxIC8gTWF0aC5wb3coMTAsIHRoaXMuZGVjaW1hbHMpKSA6IHRoaXMuZGVjaW1hbFN0ZXApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPGlucHV0IGNsYXNzPVwiYXgtaW5wdXRcIiB0eXBlPVwidGV4dFwiICBcclxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgXHJcbiAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b0NvbXBsZXRlXCJcclxuICAgIFtpbWFza109XCJfbWFza09ialwiIFxyXG4gICAgW3VubWFza109XCIndHlwZWQnXCJcclxuICAgIFthdHRyLm1pbl09XCJtaW5WYWx1ZVwiXHJcbiAgICBbYXR0ci5tYXhdPVwibWF4VmFsdWVcIiBcclxuICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFxyXG4gICAgW2NsYXNzLmF4LXN0YXRlLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFxyXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgXHJcbiAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiBcclxuICAgIFtuZ01vZGVsXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiX2hhbmRsZU1vZGxlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKGtleWRvd24pPVwiX2hhbmRsZU9uS2V5ZG93bkV2ZW50KCRldmVudClcIiBcclxuICAgIChrZXl1cCk9XCJfZW1pdE9uS2V5dXBFdmVudCgkZXZlbnQpXCJcclxuICAgIChrZXlwcmVzcyk9XCJfZW1pdE9uS2V5cHJlc3NFdmVudCgkZXZlbnQpXCJcclxuICAgIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCJcclxuICAgIChibHVyKT1cIl9lbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiXHJcbiAgICA+XHJcblxyXG48ZGl2IGNsYXNzPVwiYXgtbnVtYmVyLWJveC1hcnJvd3NcIiAqbmdJZj1cInNob3dTcGluQnV0dG9ucyAmJiAhKGRpc2FibGVkIHx8IHJlYWRvbmx5KVwiPlxyXG4gICAgPGF4LWJ1dHRvbiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKCRldmVudCwxKVwiIFt0YWJJbmRleF09XCItMVwiPlxyXG4gICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWMtYXJyb3ctZmlsbCBheC1yb3RhdGUtOTBcIj5cclxuICAgICAgICAgICAgPC9heC1pY29uPlxyXG4gICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgPC9heC1idXR0b24+XHJcbiAgICA8YXgtYnV0dG9uIGNvbG9yPVwibGlnaHRcIiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJfaGFuZGxlVXBEb3duQ2xpY2soJGV2ZW50LC0xKVwiIFt0YWJJbmRleF09XCItMVwiPlxyXG4gICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWMtYXJyb3ctZmlsbCBheC0tcm90YXRlLTkwXCI+XHJcbiAgICAgICAgICAgIDwvYXgtaWNvbj5cclxuICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgIDwvYXgtYnV0dG9uPlxyXG48L2Rpdj5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD4iXX0=
@@ -16,14 +16,14 @@ const MODULES = [
16
16
  ];
17
17
  export class AXNumberBoxModule {
18
18
  }
19
- AXNumberBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXNumberBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
- AXNumberBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXNumberBoxModule, declarations: [AXNumberBoxComponent], imports: [CommonModule,
19
+ AXNumberBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXNumberBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ AXNumberBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: AXNumberBoxModule, declarations: [AXNumberBoxComponent], imports: [CommonModule,
21
21
  FormsModule,
22
22
  AXButtonModule,
23
23
  AXDecoratorModule,
24
24
  IMaskModule], exports: [AXNumberBoxComponent] });
25
- AXNumberBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXNumberBoxModule, providers: [], imports: [[...MODULES]] });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXNumberBoxModule, decorators: [{
25
+ AXNumberBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXNumberBoxModule, providers: [], imports: [MODULES] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXNumberBoxModule, decorators: [{
27
27
  type: NgModule,
28
28
  args: [{
29
29
  declarations: [...COMPONENT],
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
32
32
  providers: [],
33
33
  }]
34
34
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRWxELE1BQU0sU0FBUyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUN6QyxNQUFNLE9BQU8sR0FBRztJQUNaLFlBQVk7SUFDWixXQUFXO0lBQ1gsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixXQUFXO0NBQ2QsQ0FBQztBQVFGLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFmWCxvQkFBb0IsYUFFbkMsWUFBWTtRQUNaLFdBQVc7UUFDWCxjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLFdBQVcsYUFOSSxvQkFBb0I7K0dBZTFCLGlCQUFpQixhQUZmLEVBQUUsWUFGSixDQUFDLEdBQUcsT0FBTyxDQUFDOzJGQUlaLGlCQUFpQjtrQkFON0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBWE51bWJlckJveENvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLWJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xyXG5pbXBvcnQge0lNYXNrTW9kdWxlfSBmcm9tICdhbmd1bGFyLWltYXNrJztcclxuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzJztcclxuXHJcbmNvbnN0IENPTVBPTkVOVCA9IFtBWE51bWJlckJveENvbXBvbmVudF07XHJcbmNvbnN0IE1PRFVMRVMgPSBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEFYQnV0dG9uTW9kdWxlLFxyXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXHJcbiAgICBJTWFza01vZHVsZVxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXHJcbiAgICBpbXBvcnRzOiBbLi4uTU9EVUxFU10sXHJcbiAgICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWE51bWJlckJveE1vZHVsZSB7IH1cclxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRWxELE1BQU0sU0FBUyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUN6QyxNQUFNLE9BQU8sR0FBRztJQUNaLFlBQVk7SUFDWixXQUFXO0lBQ1gsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixXQUFXO0NBQ2QsQ0FBQztBQVFGLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFmWCxvQkFBb0IsYUFFbkMsWUFBWTtRQUNaLFdBQVc7UUFDWCxjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLFdBQVcsYUFOSSxvQkFBb0I7K0dBZTFCLGlCQUFpQixhQUZmLEVBQUUsWUFGQSxPQUFPOzJGQUlYLGlCQUFpQjtrQkFON0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBWE51bWJlckJveENvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLWJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xyXG5pbXBvcnQge0lNYXNrTW9kdWxlfSBmcm9tICdhbmd1bGFyLWltYXNrJztcclxuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzJztcclxuXHJcbmNvbnN0IENPTVBPTkVOVCA9IFtBWE51bWJlckJveENvbXBvbmVudF07XHJcbmNvbnN0IE1PRFVMRVMgPSBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEFYQnV0dG9uTW9kdWxlLFxyXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXHJcbiAgICBJTWFza01vZHVsZVxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXHJcbiAgICBpbXBvcnRzOiBbLi4uTU9EVUxFU10sXHJcbiAgICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWE51bWJlckJveE1vZHVsZSB7IH1cclxuIl19
@@ -68,9 +68,9 @@ export class AXBasePageComponent extends AXBaseComponentMixin {
68
68
  this.onClosed.unsubscribe();
69
69
  }
70
70
  }
71
- AXBasePageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXBasePageComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
72
- AXBasePageComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXBasePageComponent });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXBasePageComponent, decorators: [{
71
+ AXBasePageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXBasePageComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
72
+ AXBasePageComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXBasePageComponent });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXBasePageComponent, decorators: [{
74
74
  type: Injectable
75
75
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { pageContainer: [{
76
76
  type: ViewChild,
@@ -43,9 +43,9 @@ export class AXPageComponent extends AXBaseComponentMixin {
43
43
  });
44
44
  }
45
45
  }
46
- AXPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPageComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: AXLoadingService }], target: i0.ɵɵFactoryTarget.Injectable });
47
- AXPageComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPageComponent });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPageComponent, decorators: [{
46
+ AXPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPageComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: AXLoadingService }], target: i0.ɵɵFactoryTarget.Injectable });
47
+ AXPageComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPageComponent });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPageComponent, decorators: [{
49
49
  type: Injectable
50
50
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
51
51
  type: Inject,
@@ -2,10 +2,10 @@ import { NgModule } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class AXPageModule {
4
4
  }
5
- AXPageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
- AXPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPageModule });
7
- AXPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPageModule, providers: [], imports: [[]] });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPageModule, decorators: [{
5
+ AXPageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
+ AXPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: AXPageModule });
7
+ AXPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPageModule, providers: [] });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPageModule, decorators: [{
9
9
  type: NgModule,
10
10
  args: [{
11
11
  imports: [],
@@ -14,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
14
14
  providers: [],
15
15
  }]
16
16
  }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3BhZ2UvcGFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTekMsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWTswR0FBWixZQUFZLGFBRlYsRUFBRSxZQUhKLEVBQUU7MkZBS0YsWUFBWTtrQkFOeEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsU0FBUyxFQUFFLEVBQUU7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW10sXHJcbiAgICBleHBvcnRzOiBbXSxcclxuICAgIGRlY2xhcmF0aW9uczogW10sXHJcbiAgICBwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhQYWdlTW9kdWxlIHsgfVxyXG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3BhZ2UvcGFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTekMsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWTswR0FBWixZQUFZLGFBRlYsRUFBRTsyRkFFSixZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxFQUFFO29CQUNoQixTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXSxcclxuICAgIGV4cG9ydHM6IFtdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBhZ2VNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -2,10 +2,10 @@ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, } from '@
2
2
  import { AXBaseTextBoxMixin } from '../base/mixin/mixin.class';
3
3
  import { TEXTBOX_INPUTS, TEXTBOX_OUTPUT, } from '../base/mixin/textbox-mixin.class';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../button/button.component";
6
- import * as i2 from "../decorators/icon.component";
7
- import * as i3 from "@angular/forms";
8
- import * as i4 from "@angular/common";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "../button/button.component";
8
+ import * as i4 from "../decorators/icon.component";
9
9
  /**
10
10
  * The Textbox is a component which detects user interaction and triggers a corresponding event
11
11
  *
@@ -35,9 +35,9 @@ export class AXPasswordBoxComponent extends AXBaseTextBoxMixin {
35
35
  }
36
36
  }
37
37
  }
38
- AXPasswordBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPasswordBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
39
- AXPasswordBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: AXPasswordBoxComponent, selector: "ax-password-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", cssClass: "cssClass", size: "size", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", type: "type", autoComplete: "autoComplete", value: "value", name: "name", checked: "checked", showToggleButton: "showToggleButton" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-password-box ax-editor-container" }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [attr.name]=\"name\" [type]=\"_type\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n [(ngModel)]=\"value\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" [attr.autocomplete]=\"autoComplete\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-input-mask\">\r\n</ng-content>\r\n<ax-button color=\"light\" look=\"blank\" [size]=\"size\" (onClick)=\"toggleType()\" [tabIndex]=\"-1\" *ngIf=\"showToggleButton\">\r\n <ax-icon [icon]=\"_icon\"></ax-icon>\r\n</ax-button>", components: [{ type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], directives: [{ type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPasswordBoxComponent, decorators: [{
38
+ AXPasswordBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPasswordBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
39
+ AXPasswordBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: AXPasswordBoxComponent, selector: "ax-password-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", cssClass: "cssClass", size: "size", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", type: "type", autoComplete: "autoComplete", value: "value", name: "name", checked: "checked", showToggleButton: "showToggleButton" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-password-box ax-editor-container" }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [attr.name]=\"name\" [type]=\"_type\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n [(ngModel)]=\"value\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" [attr.autocomplete]=\"autoComplete\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-input-mask\">\r\n</ng-content>\r\n<ax-button color=\"light\" look=\"blank\" [size]=\"size\" (onClick)=\"toggleType()\" [tabIndex]=\"-1\" *ngIf=\"showToggleButton\">\r\n <ax-icon [icon]=\"_icon\"></ax-icon>\r\n</ax-button>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPasswordBoxComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ selector: 'ax-password-box', inputs: [
43
43
  'disabled',
@@ -14,13 +14,13 @@ const MODULES = [
14
14
  ];
15
15
  export class AXPasswordBoxModule {
16
16
  }
17
- AXPasswordBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPasswordBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
- AXPasswordBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPasswordBoxModule, declarations: [AXPasswordBoxComponent], imports: [CommonModule,
17
+ AXPasswordBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPasswordBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
+ AXPasswordBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: AXPasswordBoxModule, declarations: [AXPasswordBoxComponent], imports: [CommonModule,
19
19
  FormsModule,
20
20
  AXButtonModule,
21
21
  AXDecoratorModule], exports: [AXPasswordBoxComponent] });
22
- AXPasswordBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPasswordBoxModule, providers: [], imports: [[...MODULES]] });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPasswordBoxModule, decorators: [{
22
+ AXPasswordBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPasswordBoxModule, providers: [], imports: [MODULES] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPasswordBoxModule, decorators: [{
24
24
  type: NgModule,
25
25
  args: [{
26
26
  declarations: [...COMPONENT],
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
29
29
  providers: [],
30
30
  }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcGFzc3dvcmQtYm94L3Bhc3N3b3JkLWJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVsRCxNQUFNLFNBQVMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDM0MsTUFBTSxPQUFPLEdBQUc7SUFDWixZQUFZO0lBQ1osV0FBVztJQUNYLGNBQWM7SUFDZCxpQkFBaUI7Q0FDcEIsQ0FBQztBQVFGLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkFkYixzQkFBc0IsYUFFckMsWUFBWTtRQUNaLFdBQVc7UUFDWCxjQUFjO1FBQ2QsaUJBQWlCLGFBTEYsc0JBQXNCO2lIQWM1QixtQkFBbUIsYUFGakIsRUFBRSxZQUZKLENBQUMsR0FBRyxPQUFPLENBQUM7MkZBSVosbUJBQW1CO2tCQU4vQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYUGFzc3dvcmRCb3hDb21wb25lbnQgfSBmcm9tICcuL3Bhc3N3b3JkLWJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xyXG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJy4uL2RlY29yYXRvcnMnO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UID0gW0FYUGFzc3dvcmRCb3hDb21wb25lbnRdO1xyXG5jb25zdCBNT0RVTEVTID0gW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBBWEJ1dHRvbk1vZHVsZSxcclxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXHJcbiAgICBpbXBvcnRzOiBbLi4uTU9EVUxFU10sXHJcbiAgICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBhc3N3b3JkQm94TW9kdWxlIHsgfVxyXG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcGFzc3dvcmQtYm94L3Bhc3N3b3JkLWJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVsRCxNQUFNLFNBQVMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDM0MsTUFBTSxPQUFPLEdBQUc7SUFDWixZQUFZO0lBQ1osV0FBVztJQUNYLGNBQWM7SUFDZCxpQkFBaUI7Q0FDcEIsQ0FBQztBQVFGLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkFkYixzQkFBc0IsYUFFckMsWUFBWTtRQUNaLFdBQVc7UUFDWCxjQUFjO1FBQ2QsaUJBQWlCLGFBTEYsc0JBQXNCO2lIQWM1QixtQkFBbUIsYUFGakIsRUFBRSxZQUZBLE9BQU87MkZBSVgsbUJBQW1CO2tCQU4vQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYUGFzc3dvcmRCb3hDb21wb25lbnQgfSBmcm9tICcuL3Bhc3N3b3JkLWJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xyXG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJy4uL2RlY29yYXRvcnMnO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UID0gW0FYUGFzc3dvcmRCb3hDb21wb25lbnRdO1xyXG5jb25zdCBNT0RVTEVTID0gW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBBWEJ1dHRvbk1vZHVsZSxcclxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXHJcbiAgICBpbXBvcnRzOiBbLi4uTU9EVUxFU10sXHJcbiAgICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBhc3N3b3JkQm94TW9kdWxlIHsgfVxyXG4iXX0=
@@ -261,9 +261,9 @@ export class AXPickerComponent extends AXBaseValueComponentMixin {
261
261
  }
262
262
  }
263
263
  }
264
- AXPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
265
- AXPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: AXPickerComponent, selector: "ax-picker", inputs: { readonly: "readonly", allowNull: "allowNull", value: "value", debounceTime: "debounceTime", name: "name", checked: "checked", items: "items" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", OnChange: "OnChange" }, host: { classAttribute: "ax-picker" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "pickerHandleLayer", first: true, predicate: ["pickerHandleLayer"], descendants: true, static: true }, { propertyName: "pickerGroupLayer", predicate: ["pickerGroupLayer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- <ax-carousel [width]=\"width\" [height]=\"height\" [fixedWidth]=\"width\" [fixedHeight]=\"itemHeight\" [centered]=\"true\" [vertical]=\"true\" [loop]=\"false\" [wheel]=\"true\" (onSlideChanged)=\"_handleMoveChange($event)\">\r\n <ax-carousel-item class=\"ax-picker-item\" *ngFor=\"let item of items\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </ax-carousel-item>\r\n</ax-carousel> -->\r\n<div class=\"ng-data-picker flex-box\">\r\n\r\n <!-- picker-group-layer -->\r\n <div #pickerGroupLayer *ngFor=\"let group of items; let gI = index\" class=\"picker-group\" [ngClass]=\"getGroupClass(gI)\">\r\n\r\n <div class=\"picker-list\">\r\n <div *ngIf=\"group.divider else ngIfElse\" class=\"picker-item divider\" [ngClass]=\"getItemClass(gI, i, true)\">\r\n {{ group.text }}\r\n </div>\r\n\r\n <div #ngIfElse *ngFor=\"let item of group.list; let i = index\" class=\"picker-item\" [ngClass]=\"getItemClass(gI, i)\"\r\n [ngStyle]=\"getItemStyle(gI, i)\">\r\n {{ item.value || item }}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div #pickerHandleLayer class=\"picker-handle-layer flex-box dir-column\">\r\n <div data-type=\"top\" class=\"picker-top weight-1\"></div>\r\n <div data-type=\"middle\" class=\"picker-middle\"></div>\r\n <div data-type=\"bottom\" class=\"picker-bottom weight-1\"></div>\r\n </div>\r\n\r\n</div>", directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPickerComponent, decorators: [{
264
+ AXPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
265
+ AXPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: AXPickerComponent, selector: "ax-picker", inputs: { readonly: "readonly", allowNull: "allowNull", value: "value", name: "name", checked: "checked", items: "items" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", OnChange: "OnChange" }, host: { classAttribute: "ax-picker" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "pickerHandleLayer", first: true, predicate: ["pickerHandleLayer"], descendants: true, static: true }, { propertyName: "pickerGroupLayer", predicate: ["pickerGroupLayer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- <ax-carousel [width]=\"width\" [height]=\"height\" [fixedWidth]=\"width\" [fixedHeight]=\"itemHeight\" [centered]=\"true\" [vertical]=\"true\" [loop]=\"false\" [wheel]=\"true\" (onSlideChanged)=\"_handleMoveChange($event)\">\r\n <ax-carousel-item class=\"ax-picker-item\" *ngFor=\"let item of items\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </ax-carousel-item>\r\n</ax-carousel> -->\r\n<div class=\"ng-data-picker flex-box\">\r\n\r\n <!-- picker-group-layer -->\r\n <div #pickerGroupLayer *ngFor=\"let group of items; let gI = index\" class=\"picker-group\" [ngClass]=\"getGroupClass(gI)\">\r\n\r\n <div class=\"picker-list\">\r\n <div *ngIf=\"group.divider else ngIfElse\" class=\"picker-item divider\" [ngClass]=\"getItemClass(gI, i, true)\">\r\n {{ group.text }}\r\n </div>\r\n\r\n <div #ngIfElse *ngFor=\"let item of group.list; let i = index\" class=\"picker-item\" [ngClass]=\"getItemClass(gI, i)\"\r\n [ngStyle]=\"getItemStyle(gI, i)\">\r\n {{ item.value || item }}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div #pickerHandleLayer class=\"picker-handle-layer flex-box dir-column\">\r\n <div data-type=\"top\" class=\"picker-top weight-1\"></div>\r\n <div data-type=\"middle\" class=\"picker-middle\"></div>\r\n <div data-type=\"bottom\" class=\"picker-bottom weight-1\"></div>\r\n </div>\r\n\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPickerComponent, decorators: [{
267
267
  type: Component,
268
268
  args: [{ selector: 'ax-picker', host: { class: 'ax-picker' }, inputs: [...VALUE_INPUTS], outputs: [...VALUE_OUTPUT], template: "<!-- <ax-carousel [width]=\"width\" [height]=\"height\" [fixedWidth]=\"width\" [fixedHeight]=\"itemHeight\" [centered]=\"true\" [vertical]=\"true\" [loop]=\"false\" [wheel]=\"true\" (onSlideChanged)=\"_handleMoveChange($event)\">\r\n <ax-carousel-item class=\"ax-picker-item\" *ngFor=\"let item of items\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </ax-carousel-item>\r\n</ax-carousel> -->\r\n<div class=\"ng-data-picker flex-box\">\r\n\r\n <!-- picker-group-layer -->\r\n <div #pickerGroupLayer *ngFor=\"let group of items; let gI = index\" class=\"picker-group\" [ngClass]=\"getGroupClass(gI)\">\r\n\r\n <div class=\"picker-list\">\r\n <div *ngIf=\"group.divider else ngIfElse\" class=\"picker-item divider\" [ngClass]=\"getItemClass(gI, i, true)\">\r\n {{ group.text }}\r\n </div>\r\n\r\n <div #ngIfElse *ngFor=\"let item of group.list; let i = index\" class=\"picker-item\" [ngClass]=\"getItemClass(gI, i)\"\r\n [ngStyle]=\"getItemStyle(gI, i)\">\r\n {{ item.value || item }}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div #pickerHandleLayer class=\"picker-handle-layer flex-box dir-column\">\r\n <div data-type=\"top\" class=\"picker-top weight-1\"></div>\r\n <div data-type=\"middle\" class=\"picker-middle\"></div>\r\n <div data-type=\"bottom\" class=\"picker-bottom weight-1\"></div>\r\n </div>\r\n\r\n</div>" }]
269
269
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { pickerGroupLayer: [{
@@ -280,4 +280,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
280
280
  }], OnChange: [{
281
281
  type: Output
282
282
  }] } });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcGlja2VyL3BpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3BpY2tlci9waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFKLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFTN0UsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHlCQUF5QjtJQXlCNUQsWUFBWSxVQUFzQixFQUFVLEdBQXNCO1FBQzlELEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFEaUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqQnpELFVBQUssR0FBaUIsRUFBRSxDQUFBO1FBQ3ZCLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQTtRQUsvRCxpQkFBWSxHQUFHO1lBQ1gsV0FBVyxFQUFFLGNBQWMsSUFBSSxNQUFNO1lBQ3JDLFdBQVcsRUFBRSxLQUFLO1NBQ3JCLENBQUE7UUFDRCxpQkFBWSxHQUFHO1lBQ1gsVUFBVSxFQUFFLEtBQUs7WUFDakIsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLElBQUk7U0FDbkIsQ0FBQTtRQUNELGtCQUFhLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLG9CQUFlLEdBQVEsSUFBSSxDQUFBO0lBRzNCLENBQUM7SUFH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QkFBMEIsQ0FBQTthQUN6RDtZQUNELE9BQU8sV0FBVyxDQUFBO1NBQ3JCO1FBQ0QsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSwyQ0FBMkMsRUFBRSxDQUFBO1NBQ3BFO2FBQU07WUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLDRDQUE0QyxFQUFFLENBQUE7U0FDckU7SUFDTCxDQUFDOzs4R0F2U1EsaUJBQWlCO2tHQUFqQixpQkFBaUIsNlhBS1osV0FBVyx1U0NoQjdCLDA5Q0E4Qk07MkZEbkJPLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDSSxXQUFXLFFBRWYsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQ3BCLENBQUMsR0FBRyxZQUFZLENBQUMsV0FDaEIsQ0FBQyxHQUFHLFlBQVksQ0FBQztpSUFJUSxnQkFBZ0I7c0JBQWpELFlBQVk7dUJBQUMsa0JBQWtCO2dCQUNrQixpQkFBaUI7c0JBQWxFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUdoRCxZQUFZO3NCQURYLFlBQVk7dUJBQUMsV0FBVztnQkFHaEIsS0FBSztzQkFBYixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYQmFzZVZhbHVlQ29tcG9uZW50TWl4aW4gfSBmcm9tICcuLi9iYXNlJztcclxuaW1wb3J0IHsgVkFMVUVfSU5QVVRTLCBWQUxVRV9PVVRQVVQgfSBmcm9tICcuLi9iYXNlL21peGluL3ZhbHVlLW1peGluLmNsYXNzJztcclxuaW1wb3J0IHsgUGlja2VySXRlbSB9IGZyb20gJy4vcGlja2VyLm1vZGVsLmNsYXNzJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F4LXBpY2tlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGhvc3Q6IHsgY2xhc3M6ICdheC1waWNrZXInIH0sXHJcbiAgICBpbnB1dHM6IFsuLi5WQUxVRV9JTlBVVFNdLFxyXG4gICAgb3V0cHV0czogWy4uLlZBTFVFX09VVFBVVF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVmFsdWVDb21wb25lbnRNaXhpbiB7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbigncGlja2VyR3JvdXBMYXllcicpIHBpY2tlckdyb3VwTGF5ZXJcclxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlckhhbmRsZUxheWVyJywgeyBzdGF0aWM6IHRydWUgfSkgcGlja2VySGFuZGxlTGF5ZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZilcclxuICAgIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PlxyXG5cclxuICAgIEBJbnB1dCgpIGl0ZW1zOiBQaWNrZXJJdGVtW10gPSBbXVxyXG4gICAgQE91dHB1dCgpIE9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXHJcblxyXG4gICAgY3VycmVudEluZGV4TGlzdDogbnVtYmVyW11cclxuICAgIGxhc3RDdXJyZW50SW5kZXhMaXN0OiBudW1iZXJbXVxyXG4gICAgZ3JvdXBzUmVjdExpc3Q6IGFueVtdXHJcbiAgICB0b3VjaE9yTW91c2UgPSB7XHJcbiAgICAgICAgaXNUb3VjaGFibGU6ICdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdyxcclxuICAgICAgICBpc01vdXNlRG93bjogZmFsc2VcclxuICAgIH1cclxuICAgIGRyYWdnaW5nSW5mbyA9IHtcclxuICAgICAgICBpc0RyYWdnaW5nOiBmYWxzZSxcclxuICAgICAgICBncm91cEluZGV4OiBudWxsLFxyXG4gICAgICAgIHN0YXJ0UGFnZVk6IG51bGxcclxuICAgIH1cclxuICAgIGl0ZW1QZXJEZWdyZWUgPSAyM1xyXG4gICAgc2FmZURvVGltZW91dElkOiBhbnkgPSBudWxsXHJcbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleExpc3QgPSB0aGlzLmdldEluaXRpYWxDdXJyZW50SW5kZXhMaXN0KClcclxuICAgICAgICB0aGlzLmxhc3RDdXJyZW50SW5kZXhMaXN0ID0gW10uY29uY2F0KHRoaXMuY3VycmVudEluZGV4TGlzdClcclxuXHJcbiAgICAgICAgdGhpcy5ncm91cHNSZWN0TGlzdCA9IG5ldyBBcnJheSh0aGlzLml0ZW1zLmxlbmd0aClcclxuXHJcbiAgICAgICAgdGhpcy5ldmVudHNSZWdpc3RlcigpXHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc2FmZUdldFJlY3RzQmluZEV2ZW50cy5iaW5kKHRoaXMpKVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmdldEdyb3Vwc1JlY3RMaXN0KClcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5zYWZlR2V0UmVjdHNCaW5kRXZlbnRzLmJpbmQodGhpcykpXHJcbiAgICB9XHJcblxyXG4gICAgc2V0R3JvdXBEYXRhKGdJbmRleCwgZ3JvdXBEYXRhKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRJbmRleExpc3QpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXhMaXN0ID0gdGhpcy5nZXRJbml0aWFsQ3VycmVudEluZGV4TGlzdCgpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXRlbXNbZ0luZGV4XSA9IGdyb3VwRGF0YVxyXG4gICAgICAgIGNvbnN0IGlDSSA9IGdyb3VwRGF0YS5jdXJyZW50SW5kZXhcclxuICAgICAgICBsZXQgbW92ZWRJbmRleCA9IDBcclxuICAgICAgICBpZiAodHlwZW9mIGlDSSA9PT0gJ251bWJlcicgJiYgaUNJID49IDAgJiYgZ3JvdXBEYXRhLmxpc3QgJiYgZ3JvdXBEYXRhLmxpc3QubGVuZ3RoICYmIGlDSSA8PSBncm91cERhdGEubGlzdC5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgIG1vdmVkSW5kZXggPSBNYXRoLnJvdW5kKGlDSSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0gPSBtb3ZlZEluZGV4XHJcbiAgICAgICAgdGhpcy5sYXN0Q3VycmVudEluZGV4TGlzdCA9IFtdLmNvbmNhdCh0aGlzLmN1cnJlbnRJbmRleExpc3QpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SW5pdGlhbEN1cnJlbnRJbmRleExpc3QoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpQ0kgPSBpdGVtLmN1cnJlbnRJbmRleFxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGlDSSA9PT0gJ251bWJlcicgJiYgaUNJID49IDAgJiYgaXRlbS5saXN0ICYmIGl0ZW0ubGlzdC5sZW5ndGggJiYgaUNJIDw9IGl0ZW0ubGlzdC5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChpQ0kpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDBcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHNhZmVHZXRSZWN0c0JpbmRFdmVudHMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2FmZURvVGltZW91dElkKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNhZmVEb1RpbWVvdXRJZClcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zYWZlRG9UaW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZXRHcm91cHNSZWN0TGlzdCgpXHJcbiAgICAgICAgfSwgMjAwKVxyXG4gICAgfVxyXG5cclxuICAgIGdldEdyb3Vwc1JlY3RMaXN0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnBpY2tlckdyb3VwTGF5ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJHcm91cExheWVyLnRvQXJyYXkoKS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cHNSZWN0TGlzdFtpbmRleF0gPSBpdGVtLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXZlbnRzUmVnaXN0ZXIoKSB7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlRXZlbnRMYXllciA9IHRoaXMucGlja2VySGFuZGxlTGF5ZXIubmF0aXZlRWxlbWVudFxyXG4gICAgICAgIGlmIChoYW5kbGVFdmVudExheWVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkRXZlbnRzRm9yRWxlbWVudChoYW5kbGVFdmVudExheWVyKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZGRFdmVudHNGb3JFbGVtZW50KGVsKSB7XHJcbiAgICAgICAgY29uc3QgXyA9IHRoaXMudG91Y2hPck1vdXNlLmlzVG91Y2hhYmxlXHJcbiAgICAgICAgY29uc3QgZXZlbnRIYW5kbGVyTGlzdCA9IFtcclxuICAgICAgICAgICAgeyBuYW1lOiBfID8gJ3RvdWNoc3RhcnQnIDogJ21vdXNlZG93bicsIGhhbmRsZXI6IHRoaXMuaGFuZGxlU3RhcnQgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiBfID8gJ3RvdWNobW92ZScgOiAnbW91c2Vtb3ZlJywgaGFuZGxlcjogdGhpcy5oYW5kbGVNb3ZlIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogXyA/ICd0b3VjaGVuZCcgOiAnbW91c2V1cCcsIGhhbmRsZXI6IHRoaXMuaGFuZGxlRW5kIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogXyA/ICd0b3VjaGNhbmNlbCcgOiAnbW91c2VsZWF2ZScsIGhhbmRsZXI6IHRoaXMuaGFuZGxlQ2FuY2VsIH1cclxuICAgICAgICBdXHJcbiAgICAgICAgZXZlbnRIYW5kbGVyTGlzdC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKGl0ZW0ubmFtZSwgaXRlbS5oYW5kbGVyLCBmYWxzZSlcclxuICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihpdGVtLm5hbWUsIGl0ZW0uaGFuZGxlci5iaW5kKHRoaXMpLCBmYWxzZSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHRyaWdnZXJNaWRkbGVMYXllckdyb3VwQ2xpY2soZ0luZGV4KSB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuaXRlbXNcclxuICAgICAgICBpZiAodHlwZW9mIGdJbmRleCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGRhdGFbZ0luZGV4XS5vbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGRhdGFbZ0luZGV4XS5vbkNsaWNrKGdJbmRleCwgdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0pXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRyaWdnZXJBYm92ZUxheWVyQ2xpY2soZXYsIGdJbmRleCkge1xyXG4gICAgICAgIGNvbnN0IG1vdmVkSW5kZXggPSB0aGlzLmN1cnJlbnRJbmRleExpc3RbZ0luZGV4XSArIDFcclxuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleExpc3RbZ0luZGV4XSA9IG1vdmVkSW5kZXhcclxuICAgICAgICB0aGlzLmNvcnJlY3Rpb25DdXJyZW50SW5kZXgoZXYsIGdJbmRleClcclxuICAgIH1cclxuXHJcbiAgICB0cmlnZ2VyTWlkZGxlTGF5ZXJDbGljayhldiwgZ0luZGV4KSB7XHJcbiAgICAgICAgdGhpcy50cmlnZ2VyTWlkZGxlTGF5ZXJHcm91cENsaWNrKGdJbmRleClcclxuICAgIH1cclxuXHJcbiAgICB0cmlnZ2VyQmVsb3dMYXllckNsaWNrKGV2LCBnSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBtb3ZlZEluZGV4ID0gdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0gLSAxXHJcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0gPSBtb3ZlZEluZGV4XHJcbiAgICAgICAgdGhpcy5jb3JyZWN0aW9uQ3VycmVudEluZGV4KGV2LCBnSW5kZXgpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VG91Y2hJbmZvKGV2KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG91Y2hPck1vdXNlLmlzVG91Y2hhYmxlID8gZXYuY2hhbmdlZFRvdWNoZXNbMF0gfHwgZXYudG91Y2hlc1swXSA6IGV2XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0R3JvdXBJbmRleEJlbG9uZ3NFdmVudChldikge1xyXG4gICAgICAgIGNvbnN0IHRvdWNoSW5mbyA9IHRoaXMuZ2V0VG91Y2hJbmZvKGV2KVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ncm91cHNSZWN0TGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5ncm91cHNSZWN0TGlzdFtpXVxyXG4gICAgICAgICAgICBpZiAoaXRlbS5sZWZ0IDwgdG91Y2hJbmZvLnBhZ2VYICYmIHRvdWNoSW5mby5wYWdlWCA8IGl0ZW0ucmlnaHQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVFdmVudENsaWNrKGV2KSB7XHJcbiAgICAgICAgY29uc3QgZ0luZGV4ID0gdGhpcy5nZXRHcm91cEluZGV4QmVsb25nc0V2ZW50KGV2KVxyXG4gICAgICAgIHN3aXRjaCAoZXYudGFyZ2V0LmRhdGFzZXQudHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyQWJvdmVMYXllckNsaWNrKGV2LCBnSW5kZXgpXHJcbiAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICBjYXNlICdtaWRkbGUnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTWlkZGxlTGF5ZXJDbGljayhldiwgZ0luZGV4KVxyXG4gICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlckJlbG93TGF5ZXJDbGljayhldiwgZ0luZGV4KVxyXG4gICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlU3RhcnQoZXYpIHtcclxuICAgICAgICBpZiAoZXYuY2FuY2VsYWJsZSkge1xyXG4gICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRvdWNoSW5mbyA9IHRoaXMuZ2V0VG91Y2hJbmZvKGV2KVxyXG4gICAgICAgIHRoaXMuZHJhZ2dpbmdJbmZvLnN0YXJ0UGFnZVkgPSB0b3VjaEluZm8ucGFnZVlcclxuICAgICAgICBpZiAoIXRoaXMudG91Y2hPck1vdXNlLmlzVG91Y2hhYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG91Y2hPck1vdXNlLmlzTW91c2VEb3duID0gdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVNb3ZlKGV2KSB7XHJcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKVxyXG4gICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpXHJcbiAgICAgICAgaWYgKHRoaXMudG91Y2hPck1vdXNlLmlzVG91Y2hhYmxlIHx8IHRoaXMudG91Y2hPck1vdXNlLmlzTW91c2VEb3duKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmdJbmZvLmlzRHJhZ2dpbmcgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudEluZGV4T25Nb3ZlKGV2KVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVFbmQoZXYpIHtcclxuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgICAgICBpZiAoIXRoaXMuZHJhZ2dpbmdJbmZvLmlzRHJhZ2dpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVFdmVudENsaWNrKGV2KVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRyYWdnaW5nSW5mby5pc0RyYWdnaW5nID0gZmFsc2VcclxuICAgICAgICB0aGlzLnRvdWNoT3JNb3VzZS5pc01vdXNlRG93biA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jb3JyZWN0aW9uQWZ0ZXJEcmFnZ2luZyhldilcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVDYW5jZWwoZXYpIHtcclxuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgICAgICBpZiAodGhpcy50b3VjaE9yTW91c2UuaXNUb3VjaGFibGUgfHwgdGhpcy50b3VjaE9yTW91c2UuaXNNb3VzZURvd24pIHtcclxuICAgICAgICAgICAgdGhpcy5jb3JyZWN0aW9uQWZ0ZXJEcmFnZ2luZyhldilcclxuICAgICAgICAgICAgdGhpcy50b3VjaE9yTW91c2UuaXNNb3VzZURvd24gPSBmYWxzZVxyXG4gICAgICAgICAgICB0aGlzLmRyYWdnaW5nSW5mby5pc0RyYWdnaW5nID0gZmFsc2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q3VycmVudEluZGV4T25Nb3ZlKGV2KSB7XHJcbiAgICAgICAgY29uc3QgdG91Y2hJbmZvID0gdGhpcy5nZXRUb3VjaEluZm8oZXYpXHJcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2dpbmdJbmZvLmdyb3VwSW5kZXggPT09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZ0luZm8uZ3JvdXBJbmRleCA9IHRoaXMuZ2V0R3JvdXBJbmRleEJlbG9uZ3NFdmVudChldilcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZ0luZGV4ID0gdGhpcy5kcmFnZ2luZ0luZm8uZ3JvdXBJbmRleFxyXG4gICAgICAgIGlmICh0eXBlb2YgZ0luZGV4ID09PSAnbnVtYmVyJyAmJiAodGhpcy5pdGVtc1tnSW5kZXhdLmRpdmlkZXIgfHwgIXRoaXMuaXRlbXNbZ0luZGV4XS5saXN0KSkge1xyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbW92ZUNvdW50ID0gKHRoaXMuZHJhZ2dpbmdJbmZvLnN0YXJ0UGFnZVkgLSB0b3VjaEluZm8ucGFnZVkpIC8gMzJcclxuICAgICAgICBjb25zdCBtb3ZlZEluZGV4ID0gdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0gKyBtb3ZlQ291bnRcclxuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleExpc3RbZ0luZGV4XSA9IG1vdmVkSW5kZXhcclxuICAgICAgICB0aGlzLmRyYWdnaW5nSW5mby5zdGFydFBhZ2VZID0gdG91Y2hJbmZvLnBhZ2VZXHJcbiAgICB9XHJcblxyXG4gICAgY29ycmVjdGlvbkFmdGVyRHJhZ2dpbmcoZXYpIHtcclxuICAgICAgICBjb25zdCBnSW5kZXggPSB0aGlzLmRyYWdnaW5nSW5mby5ncm91cEluZGV4XHJcbiAgICAgICAgdGhpcy5jb3JyZWN0aW9uQ3VycmVudEluZGV4KGV2LCBnSW5kZXgpXHJcbiAgICAgICAgdGhpcy5kcmFnZ2luZ0luZm8uZ3JvdXBJbmRleCA9IG51bGxcclxuICAgICAgICB0aGlzLmRyYWdnaW5nSW5mby5zdGFydFBhZ2VZID0gbnVsbFxyXG4gICAgfVxyXG5cclxuICAgIGNvcnJlY3Rpb25DdXJyZW50SW5kZXgoZXYsIGdJbmRleCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGdJbmRleCA9PT0gJ251bWJlcicgJiYgdGhpcy5pdGVtc1tnSW5kZXhdLmRpdmlkZXIgIT09IHRydWUgJiYgdGhpcy5pdGVtc1tnSW5kZXhdLmxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdW5zYWZlR3JvdXBJbmRleCA9IHRoaXMuY3VycmVudEluZGV4TGlzdFtnSW5kZXhdXHJcbiAgICAgICAgICAgICAgICBsZXQgbW92ZWRJbmRleCA9IHVuc2FmZUdyb3VwSW5kZXhcclxuICAgICAgICAgICAgICAgIGlmICh1bnNhZmVHcm91cEluZGV4ID4gdGhpcy5pdGVtc1tnSW5kZXhdLmxpc3QubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vdmVkSW5kZXggPSB0aGlzLml0ZW1zW2dJbmRleF0ubGlzdC5sZW5ndGggLSAxXHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVuc2FmZUdyb3VwSW5kZXggPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW92ZWRJbmRleCA9IDBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG1vdmVkSW5kZXggPSBNYXRoLnJvdW5kKG1vdmVkSW5kZXgpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleExpc3RbZ0luZGV4XSA9IG1vdmVkSW5kZXhcclxuICAgICAgICAgICAgICAgIGlmIChtb3ZlZEluZGV4ICE9PSB0aGlzLmxhc3RDdXJyZW50SW5kZXhMaXN0W2dJbmRleF0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLk9uQ2hhbmdlLmVtaXQoeyBnSW5kZXgsIGlJbmRleDogbW92ZWRJbmRleCB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0Q3VycmVudEluZGV4TGlzdCA9IFtdLmNvbmNhdCh0aGlzLmN1cnJlbnRJbmRleExpc3QpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCAxMDApXHJcbiAgICB9XHJcblxyXG4gICAgaXNDdXJyZW50SXRlbShnSW5kZXgsIGlJbmRleCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbmRleExpc3RbZ0luZGV4XSA9PT0gaUluZGV4XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q3VycmVudEluZGV4TGlzdCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50SW5kZXhMaXN0XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0R3JvdXBDbGFzcyhnSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuaXRlbXNbZ0luZGV4XVxyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRXZWlnaHRDbGFzcyA9ICd3ZWlnaHQtJyArIChncm91cC53ZWlnaHQgfHwgMSlcclxuICAgICAgICBjb25zdCBncm91cENsYXNzID0gW2RlZmF1bHRXZWlnaHRDbGFzc11cclxuICAgICAgICBpZiAoZ3JvdXAuY2xhc3NOYW1lKSB7XHJcbiAgICAgICAgICAgIGdyb3VwQ2xhc3MucHVzaChncm91cC5jbGFzc05hbWUpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBncm91cENsYXNzXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbUNsYXNzKGdJbmRleCwgaUluZGV4LCBpc0RpdmlkZXIgPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5pdGVtc1tnSW5kZXhdXHJcbiAgICAgICAgY29uc3QgaXRlbUNsYXNzID0gW11cclxuICAgICAgICBpZiAoIWlzRGl2aWRlciAmJiB0aGlzLmlzQ3VycmVudEl0ZW0oZ0luZGV4LCBpSW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGl0ZW1DbGFzcy5wdXNoKCdzbW9vdGgtaXRlbS1zZWxlY3RlZCcpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChncm91cC50ZXh0QWxpZ24pIHtcclxuICAgICAgICAgICAgaXRlbUNsYXNzLnB1c2goJ3RleHQtJyArIGdyb3VwLnRleHRBbGlnbilcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1DbGFzc1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1TdHlsZShnSW5kZXgsIGlJbmRleCkge1xyXG4gICAgICAgIGNvbnN0IGdhcENvdW50ID0gdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0gLSBpSW5kZXhcclxuICAgICAgICBpZiAoTWF0aC5hYnMoZ2FwQ291bnQpIDwgKDkwIC8gdGhpcy5pdGVtUGVyRGVncmVlKSkge1xyXG4gICAgICAgICAgICBjb25zdCByb3RhdGVTdHlsZSA9IHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZVgoJyArIGdhcENvdW50ICogdGhpcy5pdGVtUGVyRGVncmVlICsgJ2RlZykgdHJhbnNsYXRlM2QoMCwgMCwgNS42MjVlbSknLFxyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogKDEgLSBNYXRoLmFicyhnYXBDb3VudCkgLyAoOTAgLyB0aGlzLml0ZW1QZXJEZWdyZWUpKS50b1N0cmluZygpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmRyYWdnaW5nSW5mby5pc0RyYWdnaW5nKSB7XHJcbiAgICAgICAgICAgICAgICByb3RhdGVTdHlsZVsndHJhbnNpdGlvbiddID0gJ3RyYW5zZm9ybSAxNTBtcyBlYXNlLW91dCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcm90YXRlU3R5bGVcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGdhcENvdW50ID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4geyB0cmFuc2Zvcm06ICdyb3RhdGVYKDkwZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCA1LjYyNWVtKScgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHRyYW5zZm9ybTogJ3JvdGF0ZVgoLTkwZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCA1LjYyNWVtKScgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8IS0tIDxheC1jYXJvdXNlbCBbd2lkdGhdPVwid2lkdGhcIiBbaGVpZ2h0XT1cImhlaWdodFwiIFtmaXhlZFdpZHRoXT1cIndpZHRoXCIgW2ZpeGVkSGVpZ2h0XT1cIml0ZW1IZWlnaHRcIiAgW2NlbnRlcmVkXT1cInRydWVcIiBbdmVydGljYWxdPVwidHJ1ZVwiIFtsb29wXT1cImZhbHNlXCIgW3doZWVsXT1cInRydWVcIiAob25TbGlkZUNoYW5nZWQpPVwiX2hhbmRsZU1vdmVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPGF4LWNhcm91c2VsLWl0ZW0gY2xhc3M9XCJheC1waWNrZXItaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvYXgtY2Fyb3VzZWwtaXRlbT5cclxuPC9heC1jYXJvdXNlbD4gLS0+XHJcbjxkaXYgY2xhc3M9XCJuZy1kYXRhLXBpY2tlciBmbGV4LWJveFwiPlxyXG5cclxuICA8IS0tIHBpY2tlci1ncm91cC1sYXllciAtLT5cclxuICA8ZGl2ICNwaWNrZXJHcm91cExheWVyICpuZ0Zvcj1cImxldCBncm91cCBvZiBpdGVtczsgbGV0IGdJID0gaW5kZXhcIiBjbGFzcz1cInBpY2tlci1ncm91cFwiIFtuZ0NsYXNzXT1cImdldEdyb3VwQ2xhc3MoZ0kpXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBpY2tlci1saXN0XCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJncm91cC5kaXZpZGVyIGVsc2UgbmdJZkVsc2VcIiBjbGFzcz1cInBpY2tlci1pdGVtIGRpdmlkZXJcIiBbbmdDbGFzc109XCJnZXRJdGVtQ2xhc3MoZ0ksIGksIHRydWUpXCI+XHJcbiAgICAgICAge3sgZ3JvdXAudGV4dCB9fVxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgI25nSWZFbHNlICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwLmxpc3Q7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInBpY2tlci1pdGVtXCIgW25nQ2xhc3NdPVwiZ2V0SXRlbUNsYXNzKGdJLCBpKVwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0SXRlbVN0eWxlKGdJLCBpKVwiPlxyXG4gICAgICAgIHt7IGl0ZW0udmFsdWUgfHwgaXRlbSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAjcGlja2VySGFuZGxlTGF5ZXIgY2xhc3M9XCJwaWNrZXItaGFuZGxlLWxheWVyIGZsZXgtYm94IGRpci1jb2x1bW5cIj5cclxuICAgIDxkaXYgZGF0YS10eXBlPVwidG9wXCIgY2xhc3M9XCJwaWNrZXItdG9wIHdlaWdodC0xXCI+PC9kaXY+XHJcbiAgICA8ZGl2IGRhdGEtdHlwZT1cIm1pZGRsZVwiIGNsYXNzPVwicGlja2VyLW1pZGRsZVwiPjwvZGl2PlxyXG4gICAgPGRpdiBkYXRhLXR5cGU9XCJib3R0b21cIiBjbGFzcz1cInBpY2tlci1ib3R0b20gd2VpZ2h0LTFcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PiJdfQ==
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcGlja2VyL3BpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3BpY2tlci9waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFKLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFTN0UsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHlCQUF5QjtJQXlCNUQsWUFBWSxVQUFzQixFQUFVLEdBQXNCO1FBQzlELEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFEaUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqQnpELFVBQUssR0FBaUIsRUFBRSxDQUFBO1FBQ3ZCLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQTtRQUsvRCxpQkFBWSxHQUFHO1lBQ1gsV0FBVyxFQUFFLGNBQWMsSUFBSSxNQUFNO1lBQ3JDLFdBQVcsRUFBRSxLQUFLO1NBQ3JCLENBQUE7UUFDRCxpQkFBWSxHQUFHO1lBQ1gsVUFBVSxFQUFFLEtBQUs7WUFDakIsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLElBQUk7U0FDbkIsQ0FBQTtRQUNELGtCQUFhLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLG9CQUFlLEdBQVEsSUFBSSxDQUFBO0lBRzNCLENBQUM7SUFH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QkFBMEIsQ0FBQTthQUN6RDtZQUNELE9BQU8sV0FBVyxDQUFBO1NBQ3JCO1FBQ0QsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSwyQ0FBMkMsRUFBRSxDQUFBO1NBQ3BFO2FBQU07WUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLDRDQUE0QyxFQUFFLENBQUE7U0FDckU7SUFDTCxDQUFDOzs4R0F2U1EsaUJBQWlCO2tHQUFqQixpQkFBaUIsK1ZBS1osV0FBVyx1U0NoQjdCLDA5Q0E4Qk07MkZEbkJPLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDSSxXQUFXLFFBRWYsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQ3BCLENBQUMsR0FBRyxZQUFZLENBQUMsV0FDaEIsQ0FBQyxHQUFHLFlBQVksQ0FBQztpSUFJUSxnQkFBZ0I7c0JBQWpELFlBQVk7dUJBQUMsa0JBQWtCO2dCQUNrQixpQkFBaUI7c0JBQWxFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUdoRCxZQUFZO3NCQURYLFlBQVk7dUJBQUMsV0FBVztnQkFHaEIsS0FBSztzQkFBYixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYQmFzZVZhbHVlQ29tcG9uZW50TWl4aW4gfSBmcm9tICcuLi9iYXNlJztcclxuaW1wb3J0IHsgVkFMVUVfSU5QVVRTLCBWQUxVRV9PVVRQVVQgfSBmcm9tICcuLi9iYXNlL21peGluL3ZhbHVlLW1peGluLmNsYXNzJztcclxuaW1wb3J0IHsgUGlja2VySXRlbSB9IGZyb20gJy4vcGlja2VyLm1vZGVsLmNsYXNzJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F4LXBpY2tlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGhvc3Q6IHsgY2xhc3M6ICdheC1waWNrZXInIH0sXHJcbiAgICBpbnB1dHM6IFsuLi5WQUxVRV9JTlBVVFNdLFxyXG4gICAgb3V0cHV0czogWy4uLlZBTFVFX09VVFBVVF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVmFsdWVDb21wb25lbnRNaXhpbiB7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbigncGlja2VyR3JvdXBMYXllcicpIHBpY2tlckdyb3VwTGF5ZXJcclxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlckhhbmRsZUxheWVyJywgeyBzdGF0aWM6IHRydWUgfSkgcGlja2VySGFuZGxlTGF5ZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZilcclxuICAgIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PlxyXG5cclxuICAgIEBJbnB1dCgpIGl0ZW1zOiBQaWNrZXJJdGVtW10gPSBbXVxyXG4gICAgQE91dHB1dCgpIE9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXHJcblxyXG4gICAgY3VycmVudEluZGV4TGlzdDogbnVtYmVyW11cclxuICAgIGxhc3RDdXJyZW50SW5kZXhMaXN0OiBudW1iZXJbXVxyXG4gICAgZ3JvdXBzUmVjdExpc3Q6IGFueVtdXHJcbiAgICB0b3VjaE9yTW91c2UgPSB7XHJcbiAgICAgICAgaXNUb3VjaGFibGU6ICdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdyxcclxuICAgICAgICBpc01vdXNlRG93bjogZmFsc2VcclxuICAgIH1cclxuICAgIGRyYWdnaW5nSW5mbyA9IHtcclxuICAgICAgICBpc0RyYWdnaW5nOiBmYWxzZSxcclxuICAgICAgICBncm91cEluZGV4OiBudWxsLFxyXG4gICAgICAgIHN0YXJ0UGFnZVk6IG51bGxcclxuICAgIH1cclxuICAgIGl0ZW1QZXJEZWdyZWUgPSAyM1xyXG4gICAgc2FmZURvVGltZW91dElkOiBhbnkgPSBudWxsXHJcbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleExpc3QgPSB0aGlzLmdldEluaXRpYWxDdXJyZW50SW5kZXhMaXN0KClcclxuICAgICAgICB0aGlzLmxhc3RDdXJyZW50SW5kZXhMaXN0ID0gW10uY29uY2F0KHRoaXMuY3VycmVudEluZGV4TGlzdClcclxuXHJcbiAgICAgICAgdGhpcy5ncm91cHNSZWN0TGlzdCA9IG5ldyBBcnJheSh0aGlzLml0ZW1zLmxlbmd0aClcclxuXHJcbiAgICAgICAgdGhpcy5ldmVudHNSZWdpc3RlcigpXHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc2FmZUdldFJlY3RzQmluZEV2ZW50cy5iaW5kKHRoaXMpKVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmdldEdyb3Vwc1JlY3RMaXN0KClcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5zYWZlR2V0UmVjdHNCaW5kRXZlbnRzLmJpbmQodGhpcykpXHJcbiAgICB9XHJcblxyXG4gICAgc2V0R3JvdXBEYXRhKGdJbmRleCwgZ3JvdXBEYXRhKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRJbmRleExpc3QpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXhMaXN0ID0gdGhpcy5nZXRJbml0aWFsQ3VycmVudEluZGV4TGlzdCgpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXRlbXNbZ0luZGV4XSA9IGdyb3VwRGF0YVxyXG4gICAgICAgIGNvbnN0IGlDSSA9IGdyb3VwRGF0YS5jdXJyZW50SW5kZXhcclxuICAgICAgICBsZXQgbW92ZWRJbmRleCA9IDBcclxuICAgICAgICBpZiAodHlwZW9mIGlDSSA9PT0gJ251bWJlcicgJiYgaUNJID49IDAgJiYgZ3JvdXBEYXRhLmxpc3QgJiYgZ3JvdXBEYXRhLmxpc3QubGVuZ3RoICYmIGlDSSA8PSBncm91cERhdGEubGlzdC5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgIG1vdmVkSW5kZXggPSBNYXRoLnJvdW5kKGlDSSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0gPSBtb3ZlZEluZGV4XHJcbiAgICAgICAgdGhpcy5sYXN0Q3VycmVudEluZGV4TGlzdCA9IFtdLmNvbmNhdCh0aGlzLmN1cnJlbnRJbmRleExpc3QpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SW5pdGlhbEN1cnJlbnRJbmRleExpc3QoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpQ0kgPSBpdGVtLmN1cnJlbnRJbmRleFxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGlDSSA9PT0gJ251bWJlcicgJiYgaUNJID49IDAgJiYgaXRlbS5saXN0ICYmIGl0ZW0ubGlzdC5sZW5ndGggJiYgaUNJIDw9IGl0ZW0ubGlzdC5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChpQ0kpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDBcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHNhZmVHZXRSZWN0c0JpbmRFdmVudHMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2FmZURvVGltZW91dElkKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNhZmVEb1RpbWVvdXRJZClcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zYWZlRG9UaW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZXRHcm91cHNSZWN0TGlzdCgpXHJcbiAgICAgICAgfSwgMjAwKVxyXG4gICAgfVxyXG5cclxuICAgIGdldEdyb3Vwc1JlY3RMaXN0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnBpY2tlckdyb3VwTGF5ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJHcm91cExheWVyLnRvQXJyYXkoKS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cHNSZWN0TGlzdFtpbmRleF0gPSBpdGVtLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXZlbnRzUmVnaXN0ZXIoKSB7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlRXZlbnRMYXllciA9IHRoaXMucGlja2VySGFuZGxlTGF5ZXIubmF0aXZlRWxlbWVudFxyXG4gICAgICAgIGlmIChoYW5kbGVFdmVudExheWVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkRXZlbnRzRm9yRWxlbWVudChoYW5kbGVFdmVudExheWVyKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZGRFdmVudHNGb3JFbGVtZW50KGVsKSB7XHJcbiAgICAgICAgY29uc3QgXyA9IHRoaXMudG91Y2hPck1vdXNlLmlzVG91Y2hhYmxlXHJcbiAgICAgICAgY29uc3QgZXZlbnRIYW5kbGVyTGlzdCA9IFtcclxuICAgICAgICAgICAgeyBuYW1lOiBfID8gJ3RvdWNoc3RhcnQnIDogJ21vdXNlZG93bicsIGhhbmRsZXI6IHRoaXMuaGFuZGxlU3RhcnQgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiBfID8gJ3RvdWNobW92ZScgOiAnbW91c2Vtb3ZlJywgaGFuZGxlcjogdGhpcy5oYW5kbGVNb3ZlIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogXyA/ICd0b3VjaGVuZCcgOiAnbW91c2V1cCcsIGhhbmRsZXI6IHRoaXMuaGFuZGxlRW5kIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogXyA/ICd0b3VjaGNhbmNlbCcgOiAnbW91c2VsZWF2ZScsIGhhbmRsZXI6IHRoaXMuaGFuZGxlQ2FuY2VsIH1cclxuICAgICAgICBdXHJcbiAgICAgICAgZXZlbnRIYW5kbGVyTGlzdC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKGl0ZW0ubmFtZSwgaXRlbS5oYW5kbGVyLCBmYWxzZSlcclxuICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihpdGVtLm5hbWUsIGl0ZW0uaGFuZGxlci5iaW5kKHRoaXMpLCBmYWxzZSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHRyaWdnZXJNaWRkbGVMYXllckdyb3VwQ2xpY2soZ0luZGV4KSB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuaXRlbXNcclxuICAgICAgICBpZiAodHlwZW9mIGdJbmRleCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGRhdGFbZ0luZGV4XS5vbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGRhdGFbZ0luZGV4XS5vbkNsaWNrKGdJbmRleCwgdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0pXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRyaWdnZXJBYm92ZUxheWVyQ2xpY2soZXYsIGdJbmRleCkge1xyXG4gICAgICAgIGNvbnN0IG1vdmVkSW5kZXggPSB0aGlzLmN1cnJlbnRJbmRleExpc3RbZ0luZGV4XSArIDFcclxuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleExpc3RbZ0luZGV4XSA9IG1vdmVkSW5kZXhcclxuICAgICAgICB0aGlzLmNvcnJlY3Rpb25DdXJyZW50SW5kZXgoZXYsIGdJbmRleClcclxuICAgIH1cclxuXHJcbiAgICB0cmlnZ2VyTWlkZGxlTGF5ZXJDbGljayhldiwgZ0luZGV4KSB7XHJcbiAgICAgICAgdGhpcy50cmlnZ2VyTWlkZGxlTGF5ZXJHcm91cENsaWNrKGdJbmRleClcclxuICAgIH1cclxuXHJcbiAgICB0cmlnZ2VyQmVsb3dMYXllckNsaWNrKGV2LCBnSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBtb3ZlZEluZGV4ID0gdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0gLSAxXHJcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0gPSBtb3ZlZEluZGV4XHJcbiAgICAgICAgdGhpcy5jb3JyZWN0aW9uQ3VycmVudEluZGV4KGV2LCBnSW5kZXgpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VG91Y2hJbmZvKGV2KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG91Y2hPck1vdXNlLmlzVG91Y2hhYmxlID8gZXYuY2hhbmdlZFRvdWNoZXNbMF0gfHwgZXYudG91Y2hlc1swXSA6IGV2XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0R3JvdXBJbmRleEJlbG9uZ3NFdmVudChldikge1xyXG4gICAgICAgIGNvbnN0IHRvdWNoSW5mbyA9IHRoaXMuZ2V0VG91Y2hJbmZvKGV2KVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ncm91cHNSZWN0TGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5ncm91cHNSZWN0TGlzdFtpXVxyXG4gICAgICAgICAgICBpZiAoaXRlbS5sZWZ0IDwgdG91Y2hJbmZvLnBhZ2VYICYmIHRvdWNoSW5mby5wYWdlWCA8IGl0ZW0ucmlnaHQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVFdmVudENsaWNrKGV2KSB7XHJcbiAgICAgICAgY29uc3QgZ0luZGV4ID0gdGhpcy5nZXRHcm91cEluZGV4QmVsb25nc0V2ZW50KGV2KVxyXG4gICAgICAgIHN3aXRjaCAoZXYudGFyZ2V0LmRhdGFzZXQudHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyQWJvdmVMYXllckNsaWNrKGV2LCBnSW5kZXgpXHJcbiAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICBjYXNlICdtaWRkbGUnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTWlkZGxlTGF5ZXJDbGljayhldiwgZ0luZGV4KVxyXG4gICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlckJlbG93TGF5ZXJDbGljayhldiwgZ0luZGV4KVxyXG4gICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlU3RhcnQoZXYpIHtcclxuICAgICAgICBpZiAoZXYuY2FuY2VsYWJsZSkge1xyXG4gICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRvdWNoSW5mbyA9IHRoaXMuZ2V0VG91Y2hJbmZvKGV2KVxyXG4gICAgICAgIHRoaXMuZHJhZ2dpbmdJbmZvLnN0YXJ0UGFnZVkgPSB0b3VjaEluZm8ucGFnZVlcclxuICAgICAgICBpZiAoIXRoaXMudG91Y2hPck1vdXNlLmlzVG91Y2hhYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG91Y2hPck1vdXNlLmlzTW91c2VEb3duID0gdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVNb3ZlKGV2KSB7XHJcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKVxyXG4gICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpXHJcbiAgICAgICAgaWYgKHRoaXMudG91Y2hPck1vdXNlLmlzVG91Y2hhYmxlIHx8IHRoaXMudG91Y2hPck1vdXNlLmlzTW91c2VEb3duKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmdJbmZvLmlzRHJhZ2dpbmcgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudEluZGV4T25Nb3ZlKGV2KVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVFbmQoZXYpIHtcclxuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgICAgICBpZiAoIXRoaXMuZHJhZ2dpbmdJbmZvLmlzRHJhZ2dpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVFdmVudENsaWNrKGV2KVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRyYWdnaW5nSW5mby5pc0RyYWdnaW5nID0gZmFsc2VcclxuICAgICAgICB0aGlzLnRvdWNoT3JNb3VzZS5pc01vdXNlRG93biA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jb3JyZWN0aW9uQWZ0ZXJEcmFnZ2luZyhldilcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVDYW5jZWwoZXYpIHtcclxuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgICAgICBpZiAodGhpcy50b3VjaE9yTW91c2UuaXNUb3VjaGFibGUgfHwgdGhpcy50b3VjaE9yTW91c2UuaXNNb3VzZURvd24pIHtcclxuICAgICAgICAgICAgdGhpcy5jb3JyZWN0aW9uQWZ0ZXJEcmFnZ2luZyhldilcclxuICAgICAgICAgICAgdGhpcy50b3VjaE9yTW91c2UuaXNNb3VzZURvd24gPSBmYWxzZVxyXG4gICAgICAgICAgICB0aGlzLmRyYWdnaW5nSW5mby5pc0RyYWdnaW5nID0gZmFsc2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q3VycmVudEluZGV4T25Nb3ZlKGV2KSB7XHJcbiAgICAgICAgY29uc3QgdG91Y2hJbmZvID0gdGhpcy5nZXRUb3VjaEluZm8oZXYpXHJcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2dpbmdJbmZvLmdyb3VwSW5kZXggPT09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZ0luZm8uZ3JvdXBJbmRleCA9IHRoaXMuZ2V0R3JvdXBJbmRleEJlbG9uZ3NFdmVudChldilcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZ0luZGV4ID0gdGhpcy5kcmFnZ2luZ0luZm8uZ3JvdXBJbmRleFxyXG4gICAgICAgIGlmICh0eXBlb2YgZ0luZGV4ID09PSAnbnVtYmVyJyAmJiAodGhpcy5pdGVtc1tnSW5kZXhdLmRpdmlkZXIgfHwgIXRoaXMuaXRlbXNbZ0luZGV4XS5saXN0KSkge1xyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbW92ZUNvdW50ID0gKHRoaXMuZHJhZ2dpbmdJbmZvLnN0YXJ0UGFnZVkgLSB0b3VjaEluZm8ucGFnZVkpIC8gMzJcclxuICAgICAgICBjb25zdCBtb3ZlZEluZGV4ID0gdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0gKyBtb3ZlQ291bnRcclxuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleExpc3RbZ0luZGV4XSA9IG1vdmVkSW5kZXhcclxuICAgICAgICB0aGlzLmRyYWdnaW5nSW5mby5zdGFydFBhZ2VZID0gdG91Y2hJbmZvLnBhZ2VZXHJcbiAgICB9XHJcblxyXG4gICAgY29ycmVjdGlvbkFmdGVyRHJhZ2dpbmcoZXYpIHtcclxuICAgICAgICBjb25zdCBnSW5kZXggPSB0aGlzLmRyYWdnaW5nSW5mby5ncm91cEluZGV4XHJcbiAgICAgICAgdGhpcy5jb3JyZWN0aW9uQ3VycmVudEluZGV4KGV2LCBnSW5kZXgpXHJcbiAgICAgICAgdGhpcy5kcmFnZ2luZ0luZm8uZ3JvdXBJbmRleCA9IG51bGxcclxuICAgICAgICB0aGlzLmRyYWdnaW5nSW5mby5zdGFydFBhZ2VZID0gbnVsbFxyXG4gICAgfVxyXG5cclxuICAgIGNvcnJlY3Rpb25DdXJyZW50SW5kZXgoZXYsIGdJbmRleCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGdJbmRleCA9PT0gJ251bWJlcicgJiYgdGhpcy5pdGVtc1tnSW5kZXhdLmRpdmlkZXIgIT09IHRydWUgJiYgdGhpcy5pdGVtc1tnSW5kZXhdLmxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdW5zYWZlR3JvdXBJbmRleCA9IHRoaXMuY3VycmVudEluZGV4TGlzdFtnSW5kZXhdXHJcbiAgICAgICAgICAgICAgICBsZXQgbW92ZWRJbmRleCA9IHVuc2FmZUdyb3VwSW5kZXhcclxuICAgICAgICAgICAgICAgIGlmICh1bnNhZmVHcm91cEluZGV4ID4gdGhpcy5pdGVtc1tnSW5kZXhdLmxpc3QubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vdmVkSW5kZXggPSB0aGlzLml0ZW1zW2dJbmRleF0ubGlzdC5sZW5ndGggLSAxXHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVuc2FmZUdyb3VwSW5kZXggPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW92ZWRJbmRleCA9IDBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG1vdmVkSW5kZXggPSBNYXRoLnJvdW5kKG1vdmVkSW5kZXgpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleExpc3RbZ0luZGV4XSA9IG1vdmVkSW5kZXhcclxuICAgICAgICAgICAgICAgIGlmIChtb3ZlZEluZGV4ICE9PSB0aGlzLmxhc3RDdXJyZW50SW5kZXhMaXN0W2dJbmRleF0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLk9uQ2hhbmdlLmVtaXQoeyBnSW5kZXgsIGlJbmRleDogbW92ZWRJbmRleCB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0Q3VycmVudEluZGV4TGlzdCA9IFtdLmNvbmNhdCh0aGlzLmN1cnJlbnRJbmRleExpc3QpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCAxMDApXHJcbiAgICB9XHJcblxyXG4gICAgaXNDdXJyZW50SXRlbShnSW5kZXgsIGlJbmRleCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbmRleExpc3RbZ0luZGV4XSA9PT0gaUluZGV4XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q3VycmVudEluZGV4TGlzdCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50SW5kZXhMaXN0XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0R3JvdXBDbGFzcyhnSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuaXRlbXNbZ0luZGV4XVxyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRXZWlnaHRDbGFzcyA9ICd3ZWlnaHQtJyArIChncm91cC53ZWlnaHQgfHwgMSlcclxuICAgICAgICBjb25zdCBncm91cENsYXNzID0gW2RlZmF1bHRXZWlnaHRDbGFzc11cclxuICAgICAgICBpZiAoZ3JvdXAuY2xhc3NOYW1lKSB7XHJcbiAgICAgICAgICAgIGdyb3VwQ2xhc3MucHVzaChncm91cC5jbGFzc05hbWUpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBncm91cENsYXNzXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbUNsYXNzKGdJbmRleCwgaUluZGV4LCBpc0RpdmlkZXIgPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5pdGVtc1tnSW5kZXhdXHJcbiAgICAgICAgY29uc3QgaXRlbUNsYXNzID0gW11cclxuICAgICAgICBpZiAoIWlzRGl2aWRlciAmJiB0aGlzLmlzQ3VycmVudEl0ZW0oZ0luZGV4LCBpSW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGl0ZW1DbGFzcy5wdXNoKCdzbW9vdGgtaXRlbS1zZWxlY3RlZCcpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChncm91cC50ZXh0QWxpZ24pIHtcclxuICAgICAgICAgICAgaXRlbUNsYXNzLnB1c2goJ3RleHQtJyArIGdyb3VwLnRleHRBbGlnbilcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1DbGFzc1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1TdHlsZShnSW5kZXgsIGlJbmRleCkge1xyXG4gICAgICAgIGNvbnN0IGdhcENvdW50ID0gdGhpcy5jdXJyZW50SW5kZXhMaXN0W2dJbmRleF0gLSBpSW5kZXhcclxuICAgICAgICBpZiAoTWF0aC5hYnMoZ2FwQ291bnQpIDwgKDkwIC8gdGhpcy5pdGVtUGVyRGVncmVlKSkge1xyXG4gICAgICAgICAgICBjb25zdCByb3RhdGVTdHlsZSA9IHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZVgoJyArIGdhcENvdW50ICogdGhpcy5pdGVtUGVyRGVncmVlICsgJ2RlZykgdHJhbnNsYXRlM2QoMCwgMCwgNS42MjVlbSknLFxyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogKDEgLSBNYXRoLmFicyhnYXBDb3VudCkgLyAoOTAgLyB0aGlzLml0ZW1QZXJEZWdyZWUpKS50b1N0cmluZygpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmRyYWdnaW5nSW5mby5pc0RyYWdnaW5nKSB7XHJcbiAgICAgICAgICAgICAgICByb3RhdGVTdHlsZVsndHJhbnNpdGlvbiddID0gJ3RyYW5zZm9ybSAxNTBtcyBlYXNlLW91dCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcm90YXRlU3R5bGVcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGdhcENvdW50ID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4geyB0cmFuc2Zvcm06ICdyb3RhdGVYKDkwZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCA1LjYyNWVtKScgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHRyYW5zZm9ybTogJ3JvdGF0ZVgoLTkwZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCA1LjYyNWVtKScgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8IS0tIDxheC1jYXJvdXNlbCBbd2lkdGhdPVwid2lkdGhcIiBbaGVpZ2h0XT1cImhlaWdodFwiIFtmaXhlZFdpZHRoXT1cIndpZHRoXCIgW2ZpeGVkSGVpZ2h0XT1cIml0ZW1IZWlnaHRcIiAgW2NlbnRlcmVkXT1cInRydWVcIiBbdmVydGljYWxdPVwidHJ1ZVwiIFtsb29wXT1cImZhbHNlXCIgW3doZWVsXT1cInRydWVcIiAob25TbGlkZUNoYW5nZWQpPVwiX2hhbmRsZU1vdmVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPGF4LWNhcm91c2VsLWl0ZW0gY2xhc3M9XCJheC1waWNrZXItaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvYXgtY2Fyb3VzZWwtaXRlbT5cclxuPC9heC1jYXJvdXNlbD4gLS0+XHJcbjxkaXYgY2xhc3M9XCJuZy1kYXRhLXBpY2tlciBmbGV4LWJveFwiPlxyXG5cclxuICA8IS0tIHBpY2tlci1ncm91cC1sYXllciAtLT5cclxuICA8ZGl2ICNwaWNrZXJHcm91cExheWVyICpuZ0Zvcj1cImxldCBncm91cCBvZiBpdGVtczsgbGV0IGdJID0gaW5kZXhcIiBjbGFzcz1cInBpY2tlci1ncm91cFwiIFtuZ0NsYXNzXT1cImdldEdyb3VwQ2xhc3MoZ0kpXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBpY2tlci1saXN0XCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJncm91cC5kaXZpZGVyIGVsc2UgbmdJZkVsc2VcIiBjbGFzcz1cInBpY2tlci1pdGVtIGRpdmlkZXJcIiBbbmdDbGFzc109XCJnZXRJdGVtQ2xhc3MoZ0ksIGksIHRydWUpXCI+XHJcbiAgICAgICAge3sgZ3JvdXAudGV4dCB9fVxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgI25nSWZFbHNlICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwLmxpc3Q7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInBpY2tlci1pdGVtXCIgW25nQ2xhc3NdPVwiZ2V0SXRlbUNsYXNzKGdJLCBpKVwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0SXRlbVN0eWxlKGdJLCBpKVwiPlxyXG4gICAgICAgIHt7IGl0ZW0udmFsdWUgfHwgaXRlbSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAjcGlja2VySGFuZGxlTGF5ZXIgY2xhc3M9XCJwaWNrZXItaGFuZGxlLWxheWVyIGZsZXgtYm94IGRpci1jb2x1bW5cIj5cclxuICAgIDxkaXYgZGF0YS10eXBlPVwidG9wXCIgY2xhc3M9XCJwaWNrZXItdG9wIHdlaWdodC0xXCI+PC9kaXY+XHJcbiAgICA8ZGl2IGRhdGEtdHlwZT1cIm1pZGRsZVwiIGNsYXNzPVwicGlja2VyLW1pZGRsZVwiPjwvZGl2PlxyXG4gICAgPGRpdiBkYXRhLXR5cGU9XCJib3R0b21cIiBjbGFzcz1cInBpY2tlci1ib3R0b20gd2VpZ2h0LTFcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PiJdfQ==
@@ -5,10 +5,10 @@ import { AXCarouselModule } from '../carousel';
5
5
  import * as i0 from "@angular/core";
6
6
  export class AXPickerModule {
7
7
  }
8
- AXPickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- AXPickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPickerModule, declarations: [AXPickerComponent], imports: [CommonModule, AXCarouselModule], exports: [AXPickerComponent] });
10
- AXPickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPickerModule, providers: [], imports: [[CommonModule, AXCarouselModule]] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AXPickerModule, decorators: [{
8
+ AXPickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ AXPickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: AXPickerModule, declarations: [AXPickerComponent], imports: [CommonModule, AXCarouselModule], exports: [AXPickerComponent] });
10
+ AXPickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPickerModule, providers: [], imports: [CommonModule, AXCarouselModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AXPickerModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [AXPickerComponent],
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
17
17
  providers: [],
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcGlja2VyL3BpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVEvQyxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQUxSLGlCQUFpQixhQUN0QixZQUFZLEVBQUUsZ0JBQWdCLGFBQzlCLGlCQUFpQjs0R0FHbEIsY0FBYyxhQUZaLEVBQUUsWUFGSixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQzsyRkFJaEMsY0FBYztrQkFOMUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO29CQUN6QyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDNUIsU0FBUyxFQUFFLEVBQUU7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQVhQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL3BpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWENhcm91c2VsTW9kdWxlIH0gZnJvbSAnLi4vY2Fyb3VzZWwnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW0FYUGlja2VyQ29tcG9uZW50XSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYQ2Fyb3VzZWxNb2R1bGVdLFxyXG4gICAgZXhwb3J0czogW0FYUGlja2VyQ29tcG9uZW50XSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBpY2tlck1vZHVsZSB7IH0iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcGlja2VyL3BpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVEvQyxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQUxSLGlCQUFpQixhQUN0QixZQUFZLEVBQUUsZ0JBQWdCLGFBQzlCLGlCQUFpQjs0R0FHbEIsY0FBYyxhQUZaLEVBQUUsWUFGSCxZQUFZLEVBQUUsZ0JBQWdCOzJGQUkvQixjQUFjO2tCQU4xQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYQ2Fyb3VzZWxNb2R1bGUgfSBmcm9tICcuLi9jYXJvdXNlbCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbQVhQaWNrZXJDb21wb25lbnRdLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhDYXJvdXNlbE1vZHVsZV0sXHJcbiAgICBleHBvcnRzOiBbQVhQaWNrZXJDb21wb25lbnRdLFxyXG4gICAgcHJvdmlkZXJzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUGlja2VyTW9kdWxlIHsgfSJdfQ==