@koobiq/components 16.0.0-beta.6 → 16.0.0-beta.7

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 (283) hide show
  1. package/autocomplete/autocomplete-trigger.directive.d.ts +5 -15
  2. package/button-toggle/button-toggle.component.d.ts +2 -2
  3. package/checkbox/_checkbox-theme.scss +10 -2
  4. package/checkbox/checkbox.d.ts +1 -1
  5. package/code-block/README.md +14 -14
  6. package/code-block/_code-block-theme.scss +8 -0
  7. package/code-block/code-block.component.d.ts +1 -1
  8. package/core/animation/index.d.ts +1 -1
  9. package/core/animation/select-animations.d.ts +1 -1
  10. package/core/formatters/index.d.ts +1 -1
  11. package/core/formatters/number/formatter.d.ts +56 -1
  12. package/core/forms/forms.directive.d.ts +2 -2
  13. package/core/locales/en-US.d.ts +19 -1
  14. package/core/locales/es-LA.d.ts +27 -0
  15. package/core/locales/fa-IR.d.ts +28 -0
  16. package/core/locales/locale-service.d.ts +148 -3
  17. package/core/locales/pt-BR.d.ts +27 -0
  18. package/core/locales/ru-RU.d.ts +20 -1
  19. package/core/locales/zh-CN.d.ts +26 -0
  20. package/core/option/action.d.ts +1 -1
  21. package/core/option/optgroup.d.ts +1 -1
  22. package/core/option/option.d.ts +37 -8
  23. package/core/overlay/overlay-position-map.d.ts +7 -1
  24. package/core/pop-up/constants.d.ts +2 -1
  25. package/core/public-api.d.ts +1 -0
  26. package/core/select/constants.d.ts +2 -2
  27. package/core/services/theme.service.d.ts +23 -0
  28. package/core/styles/_variables.scss +1 -0
  29. package/core/styles/common/_select.scss +24 -24
  30. package/core/styles/theming/_components-theming.scss +31 -5
  31. package/datepicker/calendar-body.component.d.ts +1 -1
  32. package/datepicker/calendar-header.component.d.ts +9 -3
  33. package/datepicker/calendar.component.d.ts +4 -5
  34. package/datepicker/datepicker-animations.d.ts +1 -1
  35. package/datepicker/datepicker-input.directive.d.ts +4 -4
  36. package/datepicker/datepicker-toggle.component.d.ts +3 -3
  37. package/datepicker/datepicker.component.d.ts +2 -2
  38. package/datepicker/month-view.component.d.ts +5 -6
  39. package/dl/_dl-theme.scss +2 -56
  40. package/dl/dl.component.d.ts +1 -2
  41. package/dl/dl.scss +10 -47
  42. package/dropdown/dropdown-animations.d.ts +1 -1
  43. package/dropdown/dropdown-content.directive.d.ts +1 -1
  44. package/dropdown/dropdown-item.component.d.ts +1 -1
  45. package/dropdown/dropdown-trigger.directive.d.ts +2 -2
  46. package/dropdown/dropdown.component.d.ts +1 -1
  47. package/dropdown/dropdown.types.d.ts +1 -1
  48. package/esm2022/alert/alert.component.mjs +2 -2
  49. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +24 -21
  50. package/esm2022/button-toggle/button-toggle.component.mjs +8 -8
  51. package/esm2022/checkbox/checkbox.mjs +3 -3
  52. package/esm2022/code-block/actionbar.component.mjs +1 -1
  53. package/esm2022/code-block/code-block.component.mjs +3 -3
  54. package/esm2022/core/animation/index.mjs +2 -2
  55. package/esm2022/core/animation/select-animations.mjs +4 -4
  56. package/esm2022/core/formatters/index.mjs +10 -2
  57. package/esm2022/core/formatters/number/formatter.mjs +224 -3
  58. package/esm2022/core/forms/forms.directive.mjs +5 -5
  59. package/esm2022/core/locales/en-US.mjs +22 -4
  60. package/esm2022/core/locales/es-LA.mjs +31 -2
  61. package/esm2022/core/locales/fa-IR.mjs +30 -2
  62. package/esm2022/core/locales/locale-service.mjs +4 -4
  63. package/esm2022/core/locales/pt-BR.mjs +29 -2
  64. package/esm2022/core/locales/ru-RU.mjs +23 -2
  65. package/esm2022/core/locales/zh-CN.mjs +28 -2
  66. package/esm2022/core/option/action.mjs +3 -3
  67. package/esm2022/core/option/optgroup.mjs +3 -3
  68. package/esm2022/core/option/option.mjs +47 -10
  69. package/esm2022/core/overlay/overlay-position-map.mjs +7 -1
  70. package/esm2022/core/pop-up/constants.mjs +2 -1
  71. package/esm2022/core/pop-up/pop-up-trigger.mjs +12 -3
  72. package/esm2022/core/public-api.mjs +2 -1
  73. package/esm2022/core/select/constants.mjs +3 -3
  74. package/esm2022/core/services/theme.service.mjs +60 -0
  75. package/esm2022/core/version.mjs +2 -2
  76. package/esm2022/datepicker/calendar-body.component.mjs +3 -3
  77. package/esm2022/datepicker/calendar-header.component.mjs +9 -8
  78. package/esm2022/datepicker/calendar.component.mjs +7 -16
  79. package/esm2022/datepicker/datepicker-animations.mjs +2 -2
  80. package/esm2022/datepicker/datepicker-input.directive.mjs +29 -20
  81. package/esm2022/datepicker/datepicker-toggle.component.mjs +6 -6
  82. package/esm2022/datepicker/datepicker.component.mjs +11 -11
  83. package/esm2022/datepicker/month-view.component.mjs +9 -18
  84. package/esm2022/dl/dl.component.mjs +3 -7
  85. package/esm2022/dropdown/dropdown-animations.mjs +4 -4
  86. package/esm2022/dropdown/dropdown-content.directive.mjs +3 -3
  87. package/esm2022/dropdown/dropdown-errors.mjs +6 -6
  88. package/esm2022/dropdown/dropdown-item.component.mjs +5 -5
  89. package/esm2022/dropdown/dropdown-trigger.directive.mjs +8 -8
  90. package/esm2022/dropdown/dropdown.component.mjs +8 -8
  91. package/esm2022/dropdown/dropdown.types.mjs +1 -1
  92. package/esm2022/file-upload/file-drop.mjs +4 -4
  93. package/esm2022/file-upload/multiple-file-upload.component.mjs +12 -8
  94. package/esm2022/file-upload/single-file-upload.component.mjs +12 -8
  95. package/esm2022/form-field/cleaner.mjs +3 -3
  96. package/esm2022/form-field/form-field.mjs +7 -7
  97. package/esm2022/form-field/hint.mjs +4 -4
  98. package/esm2022/form-field/password-hint.mjs +11 -11
  99. package/esm2022/form-field/password-toggle.mjs +21 -8
  100. package/esm2022/form-field/suffix.mjs +3 -3
  101. package/esm2022/form-field/validate.directive.mjs +4 -4
  102. package/esm2022/input/input-number.mjs +259 -43
  103. package/esm2022/link/link.component.mjs +3 -3
  104. package/esm2022/list/list-selection.component.mjs +6 -6
  105. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  106. package/esm2022/modal/modal-control.service.mjs +5 -5
  107. package/esm2022/modal/modal-ref.class.mjs +1 -1
  108. package/esm2022/modal/modal.component.mjs +124 -111
  109. package/esm2022/modal/modal.service.mjs +23 -23
  110. package/esm2022/modal/modal.type.mjs +1 -3
  111. package/esm2022/navbar/navbar-item.component.mjs +6 -6
  112. package/esm2022/navbar/navbar.component.mjs +18 -9
  113. package/esm2022/navbar/vertical-navbar.component.mjs +9 -6
  114. package/esm2022/popover/popover-animations.mjs +2 -2
  115. package/esm2022/popover/popover-confirm.component.mjs +9 -9
  116. package/esm2022/popover/popover.component.mjs +23 -23
  117. package/esm2022/radio/radio.component.mjs +10 -8
  118. package/esm2022/select/select.component.mjs +32 -17
  119. package/esm2022/sidebar/sidebar-animations.mjs +2 -2
  120. package/esm2022/sidebar/sidebar.component.mjs +9 -9
  121. package/esm2022/sidepanel/sidepanel-directives.mjs +2 -2
  122. package/esm2022/splitter/splitter.component.mjs +3 -3
  123. package/esm2022/table/table.component.mjs +3 -3
  124. package/esm2022/tabs/tab-body.component.mjs +7 -7
  125. package/esm2022/tabs/tab-content.directive.mjs +3 -3
  126. package/esm2022/tabs/tab-group.component.mjs +3 -3
  127. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +6 -6
  128. package/esm2022/tabs/tab.component.mjs +14 -5
  129. package/esm2022/tabs/tabs-animations.mjs +2 -2
  130. package/esm2022/tags/tag-input.mjs +3 -3
  131. package/esm2022/tags/tag-list.component.mjs +5 -5
  132. package/esm2022/tags/tag.component.mjs +10 -10
  133. package/esm2022/timepicker/timepicker.directive.mjs +10 -10
  134. package/esm2022/timezone/timezone-option.component.mjs +3 -3
  135. package/esm2022/timezone/timezone-select.component.mjs +5 -5
  136. package/esm2022/title/title.directive.mjs +5 -5
  137. package/esm2022/toast/toast.module.mjs +10 -4
  138. package/esm2022/toggle/toggle.component.mjs +3 -3
  139. package/esm2022/tooltip/tooltip.component.mjs +16 -16
  140. package/esm2022/tree/node.mjs +5 -5
  141. package/esm2022/tree/outlet.mjs +3 -3
  142. package/esm2022/tree/padding.directive.mjs +6 -6
  143. package/esm2022/tree/toggle.mjs +8 -8
  144. package/esm2022/tree/tree-base.mjs +3 -3
  145. package/esm2022/tree/tree-option.component.mjs +8 -5
  146. package/esm2022/tree/tree-selection.component.mjs +8 -6
  147. package/esm2022/tree/tree.mjs +3 -3
  148. package/esm2022/tree-select/tree-select.component.mjs +13 -13
  149. package/fesm2022/koobiq-components-alert.mjs +2 -2
  150. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-autocomplete.mjs +24 -21
  152. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-button-toggle.mjs +7 -7
  154. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  156. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-code-block.mjs +3 -3
  158. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-core.mjs +526 -39
  160. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-datepicker.mjs +66 -74
  162. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-dl.mjs +2 -6
  164. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-dropdown.mjs +28 -28
  166. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-file-upload.mjs +23 -15
  168. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-form-field.mjs +46 -34
  170. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-input.mjs +257 -43
  172. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-link.mjs +2 -2
  174. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-list.mjs +5 -5
  176. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  178. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  179. package/fesm2022/koobiq-components-modal.mjs +149 -140
  180. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  181. package/fesm2022/koobiq-components-navbar.mjs +28 -20
  182. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-popover.mjs +30 -30
  184. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-radio.mjs +9 -7
  186. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-select.mjs +31 -16
  188. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  189. package/fesm2022/koobiq-components-sidebar.mjs +8 -8
  190. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-sidepanel.mjs +1 -1
  192. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-splitter.mjs +2 -2
  194. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  195. package/fesm2022/koobiq-components-table.mjs +2 -2
  196. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-tabs.mjs +29 -20
  198. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  199. package/fesm2022/koobiq-components-tags.mjs +15 -15
  200. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-timepicker.mjs +9 -9
  202. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-timezone.mjs +6 -6
  204. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  205. package/fesm2022/koobiq-components-title.mjs +4 -4
  206. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-toast.mjs +8 -2
  208. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  209. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  210. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-tooltip.mjs +15 -15
  212. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-tree-select.mjs +12 -12
  214. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  215. package/fesm2022/koobiq-components-tree.mjs +36 -31
  216. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  217. package/file-upload/file-drop.d.ts +1 -1
  218. package/file-upload/multiple-file-upload.component.d.ts +4 -3
  219. package/file-upload/single-file-upload.component.d.ts +4 -3
  220. package/form-field/_hint-theme.scss +1 -1
  221. package/form-field/cleaner.d.ts +1 -1
  222. package/form-field/form-field.d.ts +2 -2
  223. package/form-field/form-field.scss +2 -2
  224. package/form-field/hint.d.ts +1 -1
  225. package/form-field/password-hint.d.ts +2 -1
  226. package/form-field/password-toggle.d.ts +11 -6
  227. package/form-field/suffix.d.ts +1 -1
  228. package/form-field/validate.directive.d.ts +1 -1
  229. package/icon/_icon-theme.scss +2 -1
  230. package/input/input-number.d.ts +61 -10
  231. package/link/_link-theme.scss +4 -0
  232. package/link/link.component.d.ts +1 -1
  233. package/list/list-selection.component.d.ts +1 -1
  234. package/loader-overlay/loader-overlay.scss +3 -0
  235. package/modal/README.md +5 -5
  236. package/modal/modal-ref.class.d.ts +2 -2
  237. package/modal/modal.component.d.ts +51 -47
  238. package/modal/modal.type.d.ts +35 -36
  239. package/navbar/navbar-item.component.d.ts +2 -2
  240. package/navbar/navbar.component.d.ts +5 -2
  241. package/navbar/vertical-navbar.component.d.ts +4 -2
  242. package/package.json +9 -11
  243. package/popover/README.md +14 -14
  244. package/popover/_popover-theme.scss +11 -11
  245. package/popover/popover-animations.d.ts +1 -1
  246. package/popover/popover-confirm.component.d.ts +1 -1
  247. package/popover/popover.component.d.ts +3 -3
  248. package/prebuilt-themes/dark-theme.css +1 -1
  249. package/prebuilt-themes/light-theme.css +1 -1
  250. package/radio/_radio-theme.scss +15 -2
  251. package/radio/radio.component.d.ts +2 -2
  252. package/radio/radio.scss +13 -0
  253. package/select/select.component.d.ts +14 -11
  254. package/sidebar/sidebar-animations.d.ts +1 -1
  255. package/sidebar/sidebar.component.d.ts +3 -3
  256. package/splitter/splitter.component.d.ts +1 -1
  257. package/table/table.component.d.ts +1 -1
  258. package/tabs/tab-body.component.d.ts +1 -1
  259. package/tabs/tab-content.directive.d.ts +1 -1
  260. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +2 -2
  261. package/tabs/tab.component.d.ts +1 -1
  262. package/tabs/tabs-animations.d.ts +1 -1
  263. package/tags/_tag-theme.scss +1 -1
  264. package/tags/tag-input.d.ts +2 -2
  265. package/tags/tag-list.component.d.ts +2 -2
  266. package/tags/tag-list.scss +2 -0
  267. package/tags/tag.component.d.ts +3 -3
  268. package/timepicker/timepicker.directive.d.ts +2 -2
  269. package/timezone/timezone-option.component.d.ts +1 -1
  270. package/timezone/timezone-select.component.d.ts +1 -1
  271. package/title/title.directive.d.ts +1 -1
  272. package/toggle/toggle.component.d.ts +1 -1
  273. package/tooltip/tooltip.component.d.ts +3 -3
  274. package/tree/node.d.ts +1 -1
  275. package/tree/outlet.d.ts +1 -1
  276. package/tree/padding.directive.d.ts +1 -1
  277. package/tree/toggle.d.ts +3 -3
  278. package/tree/tree-base.d.ts +1 -1
  279. package/tree/tree-option.component.d.ts +1 -1
  280. package/tree/tree-option.scss +2 -0
  281. package/tree/tree-selection.component.d.ts +1 -1
  282. package/tree/tree.d.ts +1 -1
  283. package/tree-select/tree-select.component.d.ts +1 -1
@@ -50,14 +50,14 @@ export class KbqPasswordHint {
50
50
  this.lastControlValue = this.control.value;
51
51
  this.changeDetectorRef.markForCheck();
52
52
  };
53
+ this.checkRegexRule = (value) => {
54
+ return !!this.regex?.test(value);
55
+ };
53
56
  }
54
57
  ngAfterContentInit() {
55
58
  this.formField = this.formField || this.viewFormField;
56
- if (this.rule === null) {
57
- throw Error('You should set [rule] name');
58
- }
59
- if (this.rule === PasswordRules.Custom && this.regex === undefined) {
60
- throw Error('You should set [regex] for PasswordRules.Custom');
59
+ if (this.rule === PasswordRules.Custom && this.regex === undefined && this.customCheckRule === undefined) {
60
+ throw Error('You should set [regex] or [checkRule] for PasswordRules.Custom');
61
61
  }
62
62
  if (this.rule === PasswordRules.Length && (this.min || this.max) === null) {
63
63
  throw Error('For [rule] "Length" need set [min] and [max]');
@@ -74,7 +74,7 @@ export class KbqPasswordHint {
74
74
  this.checkRule = this.checkSpecialSymbolsRegexRule;
75
75
  }
76
76
  else if (this.rule === PasswordRules.Custom) {
77
- this.checkRule = this.checkRegexRule;
77
+ this.checkRule = this.regex === undefined ? this.customCheckRule : this.checkRegexRule;
78
78
  }
79
79
  else {
80
80
  throw Error(`Unknown [rule]=${this.rule}`);
@@ -90,9 +90,6 @@ export class KbqPasswordHint {
90
90
  checkLengthRule(value) {
91
91
  return value.length >= this.min && value.length <= this.max;
92
92
  }
93
- checkRegexRule(value) {
94
- return !!this.regex?.test(value);
95
- }
96
93
  checkSpecialSymbolsRegexRule(value) {
97
94
  return !!value && !this.regex?.test(value);
98
95
  }
@@ -100,7 +97,7 @@ export class KbqPasswordHint {
100
97
  return this.lastControlValue !== this.formField.control.value;
101
98
  }
102
99
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPasswordHint, deps: [{ token: i0.ChangeDetectorRef }, { token: forwardRef(() => KBQ_FORM_FIELD_REF), optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
103
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqPasswordHint, selector: "kbq-password-hint", inputs: { id: "id", rule: "rule", min: "min", max: "max", regex: "regex", viewFormField: "viewFormField" }, host: { properties: { "class.kbq-password-hint_valid": "checked", "class.kbq-password-hint_invalid": "hasError", "attr.id": "id" }, classAttribute: "kbq-password-hint" }, ngImport: i0, template: `
100
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqPasswordHint, selector: "kbq-password-hint", inputs: { id: "id", rule: "rule", min: "min", max: "max", regex: "regex", customCheckRule: ["checkRule", "customCheckRule"], viewFormField: "viewFormField" }, host: { properties: { "class.kbq-password-hint_valid": "checked", "class.kbq-password-hint_invalid": "hasError", "attr.id": "id" }, classAttribute: "kbq-password-hint" }, ngImport: i0, template: `
104
101
  <i class="kbq-password-hint__icon"
105
102
  kbq-icon=""
106
103
  [class.kbq-success]="checked"
@@ -147,7 +144,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
147
144
  type: Input
148
145
  }], regex: [{
149
146
  type: Input
147
+ }], customCheckRule: [{
148
+ type: Input,
149
+ args: ['checkRule']
150
150
  }], viewFormField: [{
151
151
  type: Input
152
152
  }] } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaGludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9wYXNzd29yZC1oaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFBRSxRQUFRLEVBQ2YsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFHNUMsSUFBSSx3QkFBd0IsR0FBRyxDQUFDLENBQUM7QUFFakMsTUFBTSxDQUFOLElBQVksYUFPWDtBQVBELFdBQVksYUFBYTtJQUNyQixxREFBTSxDQUFBO0lBQ04sNkRBQVUsQ0FBQTtJQUNWLDZEQUFVLENBQUE7SUFDVixtREFBSyxDQUFBO0lBQ0wscUZBQXNCLENBQUE7SUFDdEIscURBQU0sQ0FBQTtBQUNWLENBQUMsRUFQVyxhQUFhLEtBQWIsYUFBYSxRQU94QjtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ25DLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDbkQsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUNuRCxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQzlDLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxDQUFDLGtEQUFrRCxDQUFDO0NBQ3JHLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLGFBQXlDLEVBQVcsRUFBRTtJQUMzRixP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QWMsQ0FBQyxLQUFhO1FBQ2hDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxLQUFhO1FBQzlDLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxjQUFjO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNsRSxDQUFDO2lJQXRHUSxlQUFlLG1EQTRCQSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7cUhBNUJuRCxlQUFlLGdWQXRCZDs7Ozs7Ozs7Ozs7S0FXVDs7MkZBV1EsZUFBZTtrQkF4QjNCLFNBQVM7K0JBQ0ksbUJBQW1CLFlBQ25COzs7Ozs7Ozs7OztLQVdULFFBRUs7d0JBQ0YsS0FBSyxFQUFFLG1CQUFtQjt3QkFDMUIsaUNBQWlDLEVBQUUsU0FBUzt3QkFDNUMsbUNBQW1DLEVBQUUsVUFBVTt3QkFDL0MsV0FBVyxFQUFFLElBQUk7cUJBQ3BCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkE4QmhDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDOzRDQTNCbkQsRUFBRTtzQkFBVixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtCUV9GT1JNX0ZJRUxEX1JFRiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgS2JxRm9ybUZpZWxkIH0gZnJvbSAnLi9mb3JtLWZpZWxkJztcblxuXG5sZXQgbmV4dFBhc3N3b3JkSGludFVuaXF1ZUlkID0gMDtcblxuZXhwb3J0IGVudW0gUGFzc3dvcmRSdWxlcyB7XG4gICAgTGVuZ3RoLFxuICAgIFVwcGVyTGF0aW4sXG4gICAgTG93ZXJMYXRpbixcbiAgICBEaWdpdCxcbiAgICBMYXRpbkFuZFNwZWNpYWxTeW1ib2xzLFxuICAgIEN1c3RvbVxufVxuXG5leHBvcnQgY29uc3QgcmVnRXhwUGFzc3dvcmRWYWxpZGF0b3IgPSB7XG4gICAgW1Bhc3N3b3JkUnVsZXMuTG93ZXJMYXRpbl06IFJlZ0V4cCgvXig/PS4qP1thLXpdKS8pLFxuICAgIFtQYXNzd29yZFJ1bGVzLlVwcGVyTGF0aW5dOiBSZWdFeHAoL14oPz0uKj9bQS1aXSkvKSxcbiAgICBbUGFzc3dvcmRSdWxlcy5EaWdpdF06IFJlZ0V4cCgvXig/PS4qP1swLTldKS8pLFxuICAgIFtQYXNzd29yZFJ1bGVzLkxhdGluQW5kU3BlY2lhbFN5bWJvbHNdOiBSZWdFeHAoL1teICFgXCInI+KEliQlJigpKissLS4vXFxcXDo7PD0+P0BbXFxdXl97fH1+QS1aYS16MC05XS8pXG59O1xuXG5leHBvcnQgY29uc3QgaGFzUGFzc3dvcmRTdHJlbmd0aEVycm9yID0gKHBhc3N3b3JkSGludHM6IFF1ZXJ5TGlzdDxLYnFQYXNzd29yZEhpbnQ+KTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIHBhc3N3b3JkSGludHMuc29tZSgoaGludCkgPT4gaGludC5oYXNFcnJvcik7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1wYXNzd29yZC1oaW50JyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8aSBjbGFzcz1cImticS1wYXNzd29yZC1oaW50X19pY29uXCJcbiAgICAgICAgICAga2JxLWljb249XCJcIlxuICAgICAgICAgICBbY2xhc3Mua2JxLXN1Y2Nlc3NdPVwiY2hlY2tlZFwiXG4gICAgICAgICAgIFtjbGFzcy5rYnEtZXJyb3JdPVwiaGFzRXJyb3JcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJpY29uXCI+XG4gICAgICAgIDwvaT5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cImticS1wYXNzd29yZC1oaW50X190ZXh0XCI+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvc3Bhbj5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWydwYXNzd29yZC1oaW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXBhc3N3b3JkLWhpbnQnLFxuICAgICAgICAnW2NsYXNzLmticS1wYXNzd29yZC1oaW50X3ZhbGlkXSc6ICdjaGVja2VkJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtcGFzc3dvcmQtaGludF9pbnZhbGlkXSc6ICdoYXNFcnJvcicsXG4gICAgICAgICdbYXR0ci5pZF0nOiAnaWQnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticVBhc3N3b3JkSGludCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSBga2JxLWhpbnQtJHtuZXh0UGFzc3dvcmRIaW50VW5pcXVlSWQrK31gO1xuXG4gICAgQElucHV0KCkgcnVsZTogUGFzc3dvcmRSdWxlcyB8IGFueTtcblxuICAgIEBJbnB1dCgpIG1pbjogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1heDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHJlZ2V4OiBSZWdFeHAgfCBudWxsO1xuXG4gICAgQElucHV0KCkgdmlld0Zvcm1GaWVsZD86IEticUZvcm1GaWVsZDtcblxuICAgIGhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gICAgY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tlZCA/ICdtYy1jaGVja18xNicgOiAnbWMtY2xvc2UtTV8xNic7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1J1bGU6ICh2YWx1ZTogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBnZXQgY29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUZpZWxkLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsYXN0Q29udHJvbFZhbHVlOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBLQlFfRk9STV9GSUVMRF9SRUYpKSBwcml2YXRlIGZvcm1GaWVsZDogYW55XG4gICAgKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1GaWVsZCA9IHRoaXMuZm9ybUZpZWxkIHx8IHRoaXMudmlld0Zvcm1GaWVsZDtcblxuICAgICAgICBpZiAodGhpcy5ydWxlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignWW91IHNob3VsZCBzZXQgW3J1bGVdIG5hbWUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJ1bGUgPT09IFBhc3N3b3JkUnVsZXMuQ3VzdG9tICYmIHRoaXMucmVnZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1lvdSBzaG91bGQgc2V0IFtyZWdleF0gZm9yIFBhc3N3b3JkUnVsZXMuQ3VzdG9tJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ydWxlID09PSBQYXNzd29yZFJ1bGVzLkxlbmd0aCAmJiAodGhpcy5taW4gfHwgdGhpcy5tYXgpID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignRm9yIFtydWxlXSBcIkxlbmd0aFwiIG5lZWQgc2V0IFttaW5dIGFuZCBbbWF4XScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucnVsZSA9PT0gUGFzc3dvcmRSdWxlcy5MZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tSdWxlID0gdGhpcy5jaGVja0xlbmd0aFJ1bGU7XG4gICAgICAgIH0gZWxzZSBpZiAoW1Bhc3N3b3JkUnVsZXMuVXBwZXJMYXRpbiwgUGFzc3dvcmRSdWxlcy5Mb3dlckxhdGluLCBQYXNzd29yZFJ1bGVzLkRpZ2l0XS5pbmNsdWRlcyh0aGlzLnJ1bGUpKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2V4ID0gcmVnRXhwUGFzc3dvcmRWYWxpZGF0b3JbdGhpcy5ydWxlXTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tSdWxlID0gdGhpcy5jaGVja1JlZ2V4UnVsZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJ1bGUgPT09IFBhc3N3b3JkUnVsZXMuTGF0aW5BbmRTcGVjaWFsU3ltYm9scykge1xuICAgICAgICAgICAgdGhpcy5yZWdleCA9IHJlZ0V4cFBhc3N3b3JkVmFsaWRhdG9yW3RoaXMucnVsZV07XG4gICAgICAgICAgICB0aGlzLmNoZWNrUnVsZSA9IHRoaXMuY2hlY2tTcGVjaWFsU3ltYm9sc1JlZ2V4UnVsZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJ1bGUgPT09IFBhc3N3b3JkUnVsZXMuQ3VzdG9tKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrUnVsZSA9IHRoaXMuY2hlY2tSZWdleFJ1bGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgVW5rbm93biBbcnVsZV09JHt0aGlzLnJ1bGV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm1GaWVsZC5jb250cm9sLnN0YXRlQ2hhbmdlc1xuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLmNoZWNrVmFsdWUpO1xuXG4gICAgICAgICh0aGlzLmZvcm1GaWVsZC5jb250cm9sIGFzIHVua25vd24gYXMgeyBjaGVja1J1bGU6IFN1YmplY3Q8YW55PiB9KS5jaGVja1J1bGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMuY2hlY2tSdWxlKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNFcnJvciA9ICF0aGlzLmNoZWNrUnVsZSh0aGlzLmNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGNoZWNrVmFsdWUgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuZm9jdXNlZCAmJiB0aGlzLmlzVmFsdWVDaGFuZ2VkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcblxuICAgICAgICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5jaGVja1J1bGUodGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5jb250cm9sLmZvY3VzZWQgJiYgIXRoaXMuaXNWYWx1ZUNoYW5nZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5oYXNFcnJvciA9ICF0aGlzLmNoZWNrUnVsZSh0aGlzLmNvbnRyb2wudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wucmVxdWlyZWQgJiYgIXRoaXMuY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXN0Q29udHJvbFZhbHVlID0gdGhpcy5jb250cm9sLnZhbHVlO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tMZW5ndGhSdWxlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+PSB0aGlzLm1pbiAmJiB2YWx1ZS5sZW5ndGggPD0gdGhpcy5tYXg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1JlZ2V4UnVsZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMucmVnZXg/LnRlc3QodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tTcGVjaWFsU3ltYm9sc1JlZ2V4UnVsZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXZhbHVlICYmICF0aGlzLnJlZ2V4Py50ZXN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsdWVDaGFuZ2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXN0Q29udHJvbFZhbHVlICE9PSB0aGlzLmZvcm1GaWVsZC5jb250cm9sLnZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaGludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9wYXNzd29yZC1oaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFBRSxRQUFRLEVBQ2YsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFHNUMsSUFBSSx3QkFBd0IsR0FBRyxDQUFDLENBQUM7QUFFakMsTUFBTSxDQUFOLElBQVksYUFPWDtBQVBELFdBQVksYUFBYTtJQUNyQixxREFBTSxDQUFBO0lBQ04sNkRBQVUsQ0FBQTtJQUNWLDZEQUFVLENBQUE7SUFDVixtREFBSyxDQUFBO0lBQ0wscUZBQXNCLENBQUE7SUFDdEIscURBQU0sQ0FBQTtBQUNWLENBQUMsRUFQVyxhQUFhLEtBQWIsYUFBYSxRQU94QjtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ25DLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDbkQsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUNuRCxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQzlDLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxDQUFDLGtEQUFrRCxDQUFDO0NBQ3JHLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLGFBQXlDLEVBQVcsRUFBRTtJQUMzRixP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cnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LCBPcHRpb25hbCwgUXVlcnlMaXN0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS0JRX0ZPUk1fRklFTERfUkVGIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBLYnFGb3JtRmllbGQgfSBmcm9tICcuL2Zvcm0tZmllbGQnO1xuXG5cbmxldCBuZXh0UGFzc3dvcmRIaW50VW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgZW51bSBQYXNzd29yZFJ1bGVzIHtcbiAgICBMZW5ndGgsXG4gICAgVXBwZXJMYXRpbixcbiAgICBMb3dlckxhdGluLFxuICAgIERpZ2l0LFxuICAgIExhdGluQW5kU3BlY2lhbFN5bWJvbHMsXG4gICAgQ3VzdG9tXG59XG5cbmV4cG9ydCBjb25zdCByZWdFeHBQYXNzd29yZFZhbGlkYXRvciA9IHtcbiAgICBbUGFzc3dvcmRSdWxlcy5Mb3dlckxhdGluXTogUmVnRXhwKC9eKD89Lio/W2Etel0pLyksXG4gICAgW1Bhc3N3b3JkUnVsZXMuVXBwZXJMYXRpbl06IFJlZ0V4cCgvXig/PS4qP1tBLVpdKS8pLFxuICAgIFtQYXNzd29yZFJ1bGVzLkRpZ2l0XTogUmVnRXhwKC9eKD89Lio/WzAtOV0pLyksXG4gICAgW1Bhc3N3b3JkUnVsZXMuTGF0aW5BbmRTcGVjaWFsU3ltYm9sc106IFJlZ0V4cCgvW14gIWBcIicj4oSWJCUmKCkqKywtLi9cXFxcOjs8PT4/QFtcXF1eX3t8fX5BLVphLXowLTldLylcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNQYXNzd29yZFN0cmVuZ3RoRXJyb3IgPSAocGFzc3dvcmRIaW50czogUXVlcnlMaXN0PEticVBhc3N3b3JkSGludD4pOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gcGFzc3dvcmRIaW50cy5zb21lKChoaW50KSA9PiBoaW50Lmhhc0Vycm9yKTtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLXBhc3N3b3JkLWhpbnQnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxpIGNsYXNzPVwia2JxLXBhc3N3b3JkLWhpbnRfX2ljb25cIlxuICAgICAgICAgICBrYnEtaWNvbj1cIlwiXG4gICAgICAgICAgIFtjbGFzcy5rYnEtc3VjY2Vzc109XCJjaGVja2VkXCJcbiAgICAgICAgICAgW2NsYXNzLmticS1lcnJvcl09XCJoYXNFcnJvclwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cImljb25cIj5cbiAgICAgICAgPC9pPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwia2JxLXBhc3N3b3JkLWhpbnRfX3RleHRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9zcGFuPlxuICAgIGAsXG4gICAgc3R5bGVVcmxzOiBbJ3Bhc3N3b3JkLWhpbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtcGFzc3dvcmQtaGludCcsXG4gICAgICAgICdbY2xhc3Mua2JxLXBhc3N3b3JkLWhpbnRfdmFsaWRdJzogJ2NoZWNrZWQnLFxuICAgICAgICAnW2NsYXNzLmticS1wYXNzd29yZC1oaW50X2ludmFsaWRdJzogJ2hhc0Vycm9yJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgS2JxUGFzc3dvcmRIaW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyA9IGBrYnEtaGludC0ke25leHRQYXNzd29yZEhpbnRVbmlxdWVJZCsrfWA7XG5cbiAgICBASW5wdXQoKSBydWxlOiBQYXNzd29yZFJ1bGVzIHwgYW55O1xuXG4gICAgQElucHV0KCkgbWluOiBudW1iZXI7XG4gICAgQElucHV0KCkgbWF4OiBudW1iZXI7XG4gICAgQElucHV0KCkgcmVnZXg6IFJlZ0V4cCB8IG51bGw7XG4gICAgQElucHV0KCdjaGVja1J1bGUnKSBjdXN0b21DaGVja1J1bGU6ICh2YWx1ZTogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgdmlld0Zvcm1GaWVsZD86IEticUZvcm1GaWVsZDtcblxuICAgIGhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gICAgY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tlZCA/ICdtYy1jaGVja18xNicgOiAnbWMtY2xvc2UtTV8xNic7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1J1bGU6ICh2YWx1ZTogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBnZXQgY29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUZpZWxkLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsYXN0Q29udHJvbFZhbHVlOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBLQlFfRk9STV9GSUVMRF9SRUYpKSBwcml2YXRlIGZvcm1GaWVsZDogYW55XG4gICAgKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1GaWVsZCA9IHRoaXMuZm9ybUZpZWxkIHx8IHRoaXMudmlld0Zvcm1GaWVsZDtcblxuICAgICAgICBpZiAodGhpcy5ydWxlID09PSBQYXNzd29yZFJ1bGVzLkN1c3RvbSAmJiB0aGlzLnJlZ2V4ID09PSB1bmRlZmluZWQgJiYgdGhpcy5jdXN0b21DaGVja1J1bGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1lvdSBzaG91bGQgc2V0IFtyZWdleF0gb3IgW2NoZWNrUnVsZV0gZm9yIFBhc3N3b3JkUnVsZXMuQ3VzdG9tJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ydWxlID09PSBQYXNzd29yZFJ1bGVzLkxlbmd0aCAmJiAodGhpcy5taW4gfHwgdGhpcy5tYXgpID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignRm9yIFtydWxlXSBcIkxlbmd0aFwiIG5lZWQgc2V0IFttaW5dIGFuZCBbbWF4XScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucnVsZSA9PT0gUGFzc3dvcmRSdWxlcy5MZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tSdWxlID0gdGhpcy5jaGVja0xlbmd0aFJ1bGU7XG4gICAgICAgIH0gZWxzZSBpZiAoW1Bhc3N3b3JkUnVsZXMuVXBwZXJMYXRpbiwgUGFzc3dvcmRSdWxlcy5Mb3dlckxhdGluLCBQYXNzd29yZFJ1bGVzLkRpZ2l0XS5pbmNsdWRlcyh0aGlzLnJ1bGUpKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2V4ID0gcmVnRXhwUGFzc3dvcmRWYWxpZGF0b3JbdGhpcy5ydWxlXTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tSdWxlID0gdGhpcy5jaGVja1JlZ2V4UnVsZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJ1bGUgPT09IFBhc3N3b3JkUnVsZXMuTGF0aW5BbmRTcGVjaWFsU3ltYm9scykge1xuICAgICAgICAgICAgdGhpcy5yZWdleCA9IHJlZ0V4cFBhc3N3b3JkVmFsaWRhdG9yW3RoaXMucnVsZV07XG4gICAgICAgICAgICB0aGlzLmNoZWNrUnVsZSA9IHRoaXMuY2hlY2tTcGVjaWFsU3ltYm9sc1JlZ2V4UnVsZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJ1bGUgPT09IFBhc3N3b3JkUnVsZXMuQ3VzdG9tKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrUnVsZSA9IHRoaXMucmVnZXggPT09IHVuZGVmaW5lZCA/IHRoaXMuY3VzdG9tQ2hlY2tSdWxlIDogdGhpcy5jaGVja1JlZ2V4UnVsZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBVbmtub3duIFtydWxlXT0ke3RoaXMucnVsZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybUZpZWxkLmNvbnRyb2wuc3RhdGVDaGFuZ2VzXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMuY2hlY2tWYWx1ZSk7XG5cbiAgICAgICAgKHRoaXMuZm9ybUZpZWxkLmNvbnRyb2wgYXMgdW5rbm93biBhcyB7IGNoZWNrUnVsZTogU3ViamVjdDxhbnk+IH0pLmNoZWNrUnVsZVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5jaGVja1J1bGUodGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc0Vycm9yID0gIXRoaXMuY2hlY2tSdWxlKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgY2hlY2tWYWx1ZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5mb2N1c2VkICYmIHRoaXMuaXNWYWx1ZUNoYW5nZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuXG4gICAgICAgICAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmNoZWNrUnVsZSh0aGlzLmNvbnRyb2wudmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmNvbnRyb2wuZm9jdXNlZCAmJiAhdGhpcy5pc1ZhbHVlQ2hhbmdlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmhhc0Vycm9yID0gIXRoaXMuY2hlY2tSdWxlKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbC5yZXF1aXJlZCAmJiAhdGhpcy5jb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxhc3RDb250cm9sVmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0xlbmd0aFJ1bGUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWUubGVuZ3RoID49IHRoaXMubWluICYmIHZhbHVlLmxlbmd0aCA8PSB0aGlzLm1heDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrUmVnZXhSdWxlID0gKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5yZWdleD8udGVzdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1NwZWNpYWxTeW1ib2xzUmVnZXhSdWxlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdmFsdWUgJiYgIXRoaXMucmVnZXg/LnRlc3QodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWx1ZUNoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhc3RDb250cm9sVmFsdWUgIT09IHRoaXMuZm9ybUZpZWxkLmNvbnRyb2wudmFsdWU7XG4gICAgfVxufVxuIl19
@@ -1,7 +1,8 @@
1
1
  import { Directionality } from '@angular/cdk/bidi';
2
2
  import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
3
- import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, Inject, Input, NgZone, Optional, ViewContainerRef, ViewEncapsulation } from '@angular/core';
3
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, Inject, Input, NgZone, Optional, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
4
4
  import { KBQ_FORM_FIELD_REF, PopUpTriggers } from '@koobiq/components/core';
5
+ import { KbqIconButton } from '@koobiq/components/icon';
5
6
  import { KBQ_TOOLTIP_SCROLL_STRATEGY, KbqTooltipTrigger } from '@koobiq/components/tooltip';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/cdk/overlay";
@@ -21,17 +22,26 @@ export class KbqPasswordToggle extends KbqTooltipTrigger {
21
22
  get hidden() {
22
23
  return this.formField.control.elementType === 'password';
23
24
  }
24
- get icon() {
25
+ get iconClass() {
25
26
  return this.hidden ? 'mc-eye_16' : 'mc-eye-crossed_16';
26
27
  }
27
28
  get visibility() {
28
29
  return this.disabled && this.formField.control.empty ? 'hidden' : 'visible';
29
30
  }
30
- constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, formField) {
31
+ constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, formField, changeDetector) {
31
32
  super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
32
33
  this.formField = formField;
34
+ this.changeDetector = changeDetector;
35
+ this.updateState = () => {
36
+ this.icon.hasError = this.formField.control.errorState;
37
+ this.changeDetector.markForCheck();
38
+ };
33
39
  this.trigger = `${PopUpTriggers.Hover}`;
34
40
  }
41
+ ngAfterViewInit() {
42
+ this.formField.control?.stateChanges
43
+ .subscribe(this.updateState);
44
+ }
35
45
  toggle(event) {
36
46
  this.hide();
37
47
  const input = this.formField.control;
@@ -39,12 +49,12 @@ export class KbqPasswordToggle extends KbqTooltipTrigger {
39
49
  this.updateData();
40
50
  event.preventDefault();
41
51
  }
42
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPasswordToggle, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i2.Directionality, optional: true }, { token: forwardRef(() => KBQ_FORM_FIELD_REF) }], target: i0.ɵɵFactoryTarget.Component }); }
43
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqPasswordToggle, selector: "kbq-password-toggle", inputs: { content: ["kbqTooltipNotHidden", "content"], kbqTooltipHidden: "kbqTooltipHidden" }, host: { listeners: { "click": "toggle($event)", "keydown.ENTER": "toggle($event)", "keydown.SPACE": "toggle($event)" }, properties: { "style.visibility": "visibility" }, classAttribute: "kbq-password-toggle" }, exportAs: ["mcPasswordToggle"], usesInheritance: true, ngImport: i0, template: '<i kbq-icon-button="" [ngClass]="icon" [autoColor]="true"></i>', isInline: true, styles: [".kbq-password-toggle{display:flex;align-items:center;justify-content:center;width:var(--kbq-form-field-size-icon-button-size, 24px);margin-right:var(--kbq-form-field-size-icon-button-margin-right, 4px);height:100%}.kbq-password-toggle::-moz-focus-inner{border:0}.kbq-password-toggle:focus{outline:none}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
52
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPasswordToggle, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i2.Directionality, optional: true }, { token: forwardRef(() => KBQ_FORM_FIELD_REF) }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
53
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqPasswordToggle, selector: "kbq-password-toggle", inputs: { content: ["kbqTooltipNotHidden", "content"], kbqTooltipHidden: "kbqTooltipHidden" }, host: { listeners: { "click": "toggle($event)", "keydown.ENTER": "toggle($event)", "keydown.SPACE": "toggle($event)" }, properties: { "style.visibility": "visibility" }, classAttribute: "kbq-password-toggle" }, viewQueries: [{ propertyName: "icon", first: true, predicate: KbqIconButton, descendants: true }], exportAs: ["kbqPasswordToggle"], usesInheritance: true, ngImport: i0, template: '<i kbq-icon-button="" [ngClass]="iconClass"></i>', isInline: true, styles: [".kbq-password-toggle{display:flex;align-items:center;justify-content:center;width:var(--kbq-form-field-size-icon-button-size, 24px);margin-right:var(--kbq-form-field-size-icon-button-margin-right, 4px);height:100%}.kbq-password-toggle::-moz-focus-inner{border:0}.kbq-password-toggle:focus{outline:none}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
44
54
  }
45
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPasswordToggle, decorators: [{
46
56
  type: Component,
47
- args: [{ selector: `kbq-password-toggle`, exportAs: 'mcPasswordToggle', template: '<i kbq-icon-button="" [ngClass]="icon" [autoColor]="true"></i>', host: {
57
+ args: [{ selector: `kbq-password-toggle`, exportAs: 'kbqPasswordToggle', template: '<i kbq-icon-button="" [ngClass]="iconClass"></i>', host: {
48
58
  class: 'kbq-password-toggle',
49
59
  '[style.visibility]': 'visibility',
50
60
  '(click)': 'toggle($event)',
@@ -59,10 +69,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
59
69
  }] }, { type: undefined, decorators: [{
60
70
  type: Inject,
61
71
  args: [forwardRef(() => KBQ_FORM_FIELD_REF)]
62
- }] }]; }, propDecorators: { content: [{
72
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { icon: [{
73
+ type: ViewChild,
74
+ args: [KbqIconButton]
75
+ }], content: [{
63
76
  type: Input,
64
77
  args: ['kbqTooltipNotHidden']
65
78
  }], kbqTooltipHidden: [{
66
79
  type: Input
67
80
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtdG9nZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3Bhc3N3b3JkLXRvZ2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFBRSxVQUFVLEVBQ3RCLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFFUixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBbUIsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQW9CNUYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGlCQUFpQjtJQUNwRCxJQUNJLE9BQU87UUFDUCxPQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBZSxDQUFDLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFrQztRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUV4QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUlELElBQUksTUFBTTtRQUNOLE9BQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFlLENBQUMsV0FBVyxLQUFLLFVBQVUsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRixDQUFDO0lBRUQsWUFDSSxPQUFnQixFQUNoQixVQUFzQixFQUN0QixNQUFjLEVBQ2QsZ0JBQWtDLEVBQ2xDLFFBQTBCLEVBQ1csY0FBYyxFQUN2QyxTQUF5QixFQUNpQixTQUEwQjtRQUVoRixLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUZwQyxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUloRixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBb0I7UUFDdkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVosTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFjLENBQUM7UUFFNUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztpSUFyRFEsaUJBQWlCLHlKQWtDZCwyQkFBMkIsMkRBRTNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztxSEFwQ3ZDLGlCQUFpQixvYUFkaEIsZ0VBQWdFOzsyRkFjakUsaUJBQWlCO2tCQWpCN0IsU0FBUzsrQkFDSSxxQkFBcUIsWUFDckIsa0JBQWtCLFlBQ2xCLGdFQUFnRSxRQUVwRTt3QkFDRixLQUFLLEVBQUUscUJBQXFCO3dCQUU1QixvQkFBb0IsRUFBRSxZQUFZO3dCQUVsQyxTQUFTLEVBQUUsZ0JBQWdCO3dCQUMzQixpQkFBaUIsRUFBRSxnQkFBZ0I7d0JBQ25DLGlCQUFpQixFQUFFLGdCQUFnQjtxQkFDdEMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQW9DaEMsTUFBTTsyQkFBQywyQkFBMkI7OzBCQUNsQyxRQUFROzswQkFDUixNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzs0Q0FsQzVDLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBYW5CLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgT3ZlcmxheSwgU2Nyb2xsRGlzcGF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPcHRpb25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS0JRX0ZPUk1fRklFTERfUkVGLCBLYnFGb3JtRmllbGRSZWYsIFBvcFVwVHJpZ2dlcnMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLQlFfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1ksIEticVRvb2x0aXBUcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3Rvb2x0aXAnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBga2JxLXBhc3N3b3JkLXRvZ2dsZWAsXG4gICAgZXhwb3J0QXM6ICdtY1Bhc3N3b3JkVG9nZ2xlJyxcbiAgICB0ZW1wbGF0ZTogJzxpIGticS1pY29uLWJ1dHRvbj1cIlwiIFtuZ0NsYXNzXT1cImljb25cIiBbYXV0b0NvbG9yXT1cInRydWVcIj48L2k+JyxcbiAgICBzdHlsZVVybHM6IFsncGFzc3dvcmQtdG9nZ2xlLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXBhc3N3b3JkLXRvZ2dsZScsXG5cbiAgICAgICAgJ1tzdHlsZS52aXNpYmlsaXR5XSc6ICd2aXNpYmlsaXR5JyxcblxuICAgICAgICAnKGNsaWNrKSc6ICd0b2dnbGUoJGV2ZW50KScsXG4gICAgICAgICcoa2V5ZG93bi5FTlRFUiknOiAndG9nZ2xlKCRldmVudCknLFxuICAgICAgICAnKGtleWRvd24uU1BBQ0UpJzogJ3RvZ2dsZSgkZXZlbnQpJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQYXNzd29yZFRvZ2dsZSBleHRlbmRzIEticVRvb2x0aXBUcmlnZ2VyIHtcbiAgICBASW5wdXQoJ2ticVRvb2x0aXBOb3RIaWRkZW4nKVxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gKHRoaXMuZm9ybUZpZWxkLmNvbnRyb2wgYXMgYW55KS5lbGVtZW50VHlwZSA9PT0gJ3Bhc3N3b3JkJyA/XG4gICAgICAgICAgICB0aGlzLmticVRvb2x0aXBIaWRkZW4gOlxuICAgICAgICAgICAgdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGticVRvb2x0aXBIaWRkZW46IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBnZXQgaGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKHRoaXMuZm9ybUZpZWxkLmNvbnRyb2wgYXMgYW55KS5lbGVtZW50VHlwZSA9PT0gJ3Bhc3N3b3JkJztcbiAgICB9XG5cbiAgICBnZXQgaWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5oaWRkZW4gPyAnbWMtZXllXzE2JyA6ICdtYy1leWUtY3Jvc3NlZF8xNic7XG4gICAgfVxuXG4gICAgZ2V0IHZpc2liaWxpdHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgJiYgdGhpcy5mb3JtRmllbGQuY29udHJvbC5lbXB0eSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgaG9zdFZpZXc6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoS0JRX1RPT0xUSVBfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneSxcbiAgICAgICAgQE9wdGlvbmFsKCkgZGlyZWN0aW9uOiBEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IEtCUV9GT1JNX0ZJRUxEX1JFRikpIHByaXZhdGUgZm9ybUZpZWxkOiBLYnFGb3JtRmllbGRSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIob3ZlcmxheSwgZWxlbWVudFJlZiwgbmdab25lLCBzY3JvbGxEaXNwYXRjaGVyLCBob3N0Vmlldywgc2Nyb2xsU3RyYXRlZ3ksIGRpcmVjdGlvbik7XG5cbiAgICAgICAgdGhpcy50cmlnZ2VyID0gYCR7UG9wVXBUcmlnZ2Vycy5Ib3Zlcn1gO1xuICAgIH1cblxuICAgIHRvZ2dsZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmhpZGUoKTtcblxuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuZm9ybUZpZWxkLmNvbnRyb2wgYXMgYW55O1xuXG4gICAgICAgIGlucHV0LnRvZ2dsZVR5cGUoKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtdG9nZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3Bhc3N3b3JkLXRvZ2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFFUixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBb0I1RixNQUFNLE9BQU8saUJBQWtCLFNBQVEsaUJBQWlCO0lBR3BELElBQ0ksT0FBTztRQUNQLE9BQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFlLENBQUMsV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQWtDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXhCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBSUQsSUFBSSxNQUFNO1FBQ04sT0FBUSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQWUsQ0FBQyxXQUFXLEtBQUssVUFBVSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxZQUNJLE9BQWdCLEVBQ2hCLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZCxnQkFBa0MsRUFDbEMsUUFBMEIsRUFDVyxjQUFjLEVBQ3ZDLFNBQXlCLEVBQ2lCLFNBQTBCLEVBQ3hFLGNBQWlDO1FBRXpDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBSHBDLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQ3hFLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQXdCckMsZ0JBQVcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBRXZELElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFBO1FBeEJHLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxZQUFZO2FBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFvQjtRQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFWixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQWMsQ0FBQztRQUU1QyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQixDQUFDO2lJQTdEUSxpQkFBaUIseUpBb0NkLDJCQUEyQiwyREFFM0IsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO3FIQXRDdkMsaUJBQWlCLG1aQUVmLGFBQWEsd0dBaEJkLGtEQUFrRDs7MkZBY25ELGlCQUFpQjtrQkFqQjdCLFNBQVM7K0JBQ0kscUJBQXFCLFlBQ3JCLG1CQUFtQixZQUNuQixrREFBa0QsUUFFdEQ7d0JBQ0YsS0FBSyxFQUFFLHFCQUFxQjt3QkFFNUIsb0JBQW9CLEVBQUUsWUFBWTt3QkFFbEMsU0FBUyxFQUFFLGdCQUFnQjt3QkFDM0IsaUJBQWlCLEVBQUUsZ0JBQWdCO3dCQUNuQyxpQkFBaUIsRUFBRSxnQkFBZ0I7cUJBQ3RDLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFzQ2hDLE1BQU07MkJBQUMsMkJBQTJCOzswQkFDbEMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7NEVBcEN0QixJQUFJO3NCQUE3QixTQUFTO3VCQUFDLGFBQWE7Z0JBRXBCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBYW5CLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgT3ZlcmxheSwgU2Nyb2xsRGlzcGF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLQlFfRk9STV9GSUVMRF9SRUYsIEticUZvcm1GaWVsZFJlZiwgUG9wVXBUcmlnZ2VycyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb25CdXR0b24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLQlFfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1ksIEticVRvb2x0aXBUcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3Rvb2x0aXAnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBga2JxLXBhc3N3b3JkLXRvZ2dsZWAsXG4gICAgZXhwb3J0QXM6ICdrYnFQYXNzd29yZFRvZ2dsZScsXG4gICAgdGVtcGxhdGU6ICc8aSBrYnEtaWNvbi1idXR0b249XCJcIiBbbmdDbGFzc109XCJpY29uQ2xhc3NcIj48L2k+JyxcbiAgICBzdHlsZVVybHM6IFsncGFzc3dvcmQtdG9nZ2xlLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXBhc3N3b3JkLXRvZ2dsZScsXG5cbiAgICAgICAgJ1tzdHlsZS52aXNpYmlsaXR5XSc6ICd2aXNpYmlsaXR5JyxcblxuICAgICAgICAnKGNsaWNrKSc6ICd0b2dnbGUoJGV2ZW50KScsXG4gICAgICAgICcoa2V5ZG93bi5FTlRFUiknOiAndG9nZ2xlKCRldmVudCknLFxuICAgICAgICAnKGtleWRvd24uU1BBQ0UpJzogJ3RvZ2dsZSgkZXZlbnQpJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQYXNzd29yZFRvZ2dsZSBleHRlbmRzIEticVRvb2x0aXBUcmlnZ2VyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBAVmlld0NoaWxkKEticUljb25CdXR0b24pIGljb246IEticUljb25CdXR0b247XG4gICAgQElucHV0KCdrYnFUb29sdGlwTm90SGlkZGVuJylcbiAgICBnZXQgY29udGVudCgpOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmZvcm1GaWVsZC5jb250cm9sIGFzIGFueSkuZWxlbWVudFR5cGUgPT09ICdwYXNzd29yZCcgP1xuICAgICAgICAgICAgdGhpcy5rYnFUb29sdGlwSGlkZGVuIDpcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnQ7XG4gICAgfVxuXG4gICAgc2V0IGNvbnRlbnQoY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBrYnFUb29sdGlwSGlkZGVuOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZ2V0IGhpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmZvcm1GaWVsZC5jb250cm9sIGFzIGFueSkuZWxlbWVudFR5cGUgPT09ICdwYXNzd29yZCc7XG4gICAgfVxuXG4gICAgZ2V0IGljb25DbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5oaWRkZW4gPyAnbWMtZXllXzE2JyA6ICdtYy1leWUtY3Jvc3NlZF8xNic7XG4gICAgfVxuXG4gICAgZ2V0IHZpc2liaWxpdHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgJiYgdGhpcy5mb3JtRmllbGQuY29udHJvbC5lbXB0eSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgaG9zdFZpZXc6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoS0JRX1RPT0xUSVBfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneSxcbiAgICAgICAgQE9wdGlvbmFsKCkgZGlyZWN0aW9uOiBEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IEtCUV9GT1JNX0ZJRUxEX1JFRikpIHByaXZhdGUgZm9ybUZpZWxkOiBLYnFGb3JtRmllbGRSZWYsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKG92ZXJsYXksIGVsZW1lbnRSZWYsIG5nWm9uZSwgc2Nyb2xsRGlzcGF0Y2hlciwgaG9zdFZpZXcsIHNjcm9sbFN0cmF0ZWd5LCBkaXJlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMudHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuSG92ZXJ9YDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUZpZWxkLmNvbnRyb2w/LnN0YXRlQ2hhbmdlc1xuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLnVwZGF0ZVN0YXRlKTtcbiAgICB9XG5cbiAgICB0b2dnbGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG5cbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmZvcm1GaWVsZC5jb250cm9sIGFzIGFueTtcblxuICAgICAgICBpbnB1dC50b2dnbGVUeXBlKCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0YXRlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmljb24uaGFzRXJyb3IgPSB0aGlzLmZvcm1GaWVsZC5jb250cm9sLmVycm9yU3RhdGU7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iXX0=
@@ -2,12 +2,12 @@ import { Directive } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class KbqSuffix {
4
4
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqSuffix, selector: "[mcSuffix]", ngImport: i0 }); }
5
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqSuffix, selector: "[kbqSuffix]", ngImport: i0 }); }
6
6
  }
7
7
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqSuffix, decorators: [{
8
8
  type: Directive,
9
9
  args: [{
10
- selector: '[mcSuffix]'
10
+ selector: '[kbqSuffix]'
11
11
  }]
12
12
  }] });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VmZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3N1ZmZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0xQyxNQUFNLE9BQU8sU0FBUztpSUFBVCxTQUFTO3FIQUFULFNBQVM7OzJGQUFULFNBQVM7a0JBSHJCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbWNTdWZmaXhdJ1xufSlcbmV4cG9ydCBjbGFzcyBLYnFTdWZmaXgge31cbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VmZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3N1ZmZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0xQyxNQUFNLE9BQU8sU0FBUztpSUFBVCxTQUFTO3FIQUFULFNBQVM7OzJGQUFULFNBQVM7a0JBSHJCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdba2JxU3VmZml4XSdcbn0pXG5leHBvcnQgY2xhc3MgS2JxU3VmZml4IHt9XG4iXX0=
@@ -114,7 +114,7 @@ export class KbqValidateDirective {
114
114
  });
115
115
  }
116
116
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqValidateDirective, deps: [{ token: forwardRef(() => KbqFormFieldControl) }, { token: NG_VALIDATORS, optional: true, self: true }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: KBQ_VALIDATION, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
117
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqValidateDirective, selector: "\n input[kbqInput],\n input[kbqInputPassword],\n input[mcTimepicker],\n input[mcDatepicker],\n textarea[kbqTextarea],\n kbq-select,\n kbq-tree-select,\n kbq-tag-list\n ", exportAs: ["KbqValidate"], ngImport: i0 }); }
117
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqValidateDirective, selector: "\n input[kbqInput],\n input[kbqInputPassword],\n input[kbqTimepicker],\n input[kbqDatepicker],\n textarea[kbqTextarea],\n kbq-select,\n kbq-tree-select,\n kbq-tag-list\n ", exportAs: ["KbqValidate"], ngImport: i0 }); }
118
118
  }
119
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqValidateDirective, decorators: [{
120
120
  type: Directive,
@@ -122,8 +122,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
122
122
  selector: `
123
123
  input[kbqInput],
124
124
  input[kbqInputPassword],
125
- input[mcTimepicker],
126
- input[mcDatepicker],
125
+ input[kbqTimepicker],
126
+ input[kbqDatepicker],
127
127
  textarea[kbqTextarea],
128
128
  kbq-select,
129
129
  kbq-tree-select,
@@ -155,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
155
155
  type: Inject,
156
156
  args: [KBQ_VALIDATION]
157
157
  }] }, { type: i0.ChangeDetectorRef }]; } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3ZhbGlkYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLFNBQVMsRUFDVCxNQUFNLEVBQ04sT0FBTyxFQUNQLGlCQUFpQixFQUlqQixvQkFBb0IsRUFDdkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBRUgsY0FBYyxFQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBZ0IzRCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsWUFBWSxPQUFPLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsWUFBWSxlQUFlLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsWUFBWSxvQkFBb0IsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUMs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QUUsYUFBYTtpQkFDMUI7OzBCQTJCUSxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzs7MEJBQzVDLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3hDLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTmdDb250cm9sLFxuICAgIE5nRm9ybSxcbiAgICBOZ01vZGVsLFxuICAgIFJlcXVpcmVkVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRvckZuLFxuICAgIEZvcm1Db250cm9sRGlyZWN0aXZlXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgS2JxVmFsaWRhdGlvbk9wdGlvbnMsXG4gICAgS0JRX1ZBTElEQVRJT05cbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuXG5cbmltcG9ydCB7IEticUZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuL2Zvcm0tZmllbGQtY29udHJvbCc7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IGBcbiAgICAgICAgaW5wdXRba2JxSW5wdXRdLFxuICAgICAgICBpbnB1dFtrYnFJbnB1dFBhc3N3b3JkXSxcbiAgICAgICAgaW5wdXRbbWNUaW1lcGlja2VyXSxcbiAgICAgICAgaW5wdXRbbWNEYXRlcGlja2VyXSxcbiAgICAgICAgdGV4dGFyZWFba2JxVGV4dGFyZWFdLFxuICAgICAgICBrYnEtc2VsZWN0LFxuICAgICAgICBrYnEtdHJlZS1zZWxlY3QsXG4gICAgICAgIGticS10YWctbGlzdFxuICAgIGAsXG4gICAgZXhwb3J0QXM6ICdLYnFWYWxpZGF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgS2JxVmFsaWRhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBnZXQgaXNOZ01vZGVsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsO1xuICAgIH1cblxuICAgIGdldCBpc0Zvcm1Db250cm9sTmFtZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xOYW1lO1xuICAgIH1cblxuICAgIGdldCBpc0Zvcm1Db250cm9sKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbERpcmVjdGl2ZTtcbiAgICB9XG5cbiAgICBnZXQgdmFsaWRhdGlvbkNvbnRyb2woKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sPy5jb250cm9sIHx8IHRoaXMubmdDb250cm9sO1xuICAgIH1cblxuICAgIGdldCBwYXJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudEZvcm0gfHwgdGhpcy5wYXJlbnRGb3JtR3JvdXA7XG4gICAgfVxuXG4gICAgZ2V0IGhhc05vdFN1Ym1pdHRlZFBhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50ICYmICF0aGlzLnBhcmVudC5zdWJtaXR0ZWQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBLYnFGb3JtRmllbGRDb250cm9sKSkgcHJpdmF0ZSBmb3JtRmllbGRDb250cm9sOiBLYnFGb3JtRmllbGRDb250cm9sPGFueT4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBwdWJsaWMgcmF3VmFsaWRhdG9yczogVmFsaWRhdG9yW10sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoS0JRX1ZBTElEQVRJT04pIHByaXZhdGUgbWNWYWxpZGF0aW9uOiBLYnFWYWxpZGF0aW9uT3B0aW9ucyxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5tY1ZhbGlkYXRpb24udXNlVmFsaWRhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRWYWxpZFN0YXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbik6IHZvaWQge1xuICAgICAgICBpZiAoIWNvbnRyb2wpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgY29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgLyoqIFRoaXMgZnVuY3Rpb24gZG8gbmV4dDpcbiAgICAgKiAtIHJ1biB2YWxpZGF0aW9uIG9uIHN1Ym1pdHRpbmcgcGFyZW50IGZvcm1cbiAgICAgKiAtIHByZXZlbnQgdmFsaWRhdGlvbiBpbiByZXF1aXJlZCB2YWxpZGF0b3IgaWYgZm9ybSBkb2Vzbid0IHN1Ym1pdHRlZFxuICAgICAqIC0gaWYgY29udHJvbCBoYXMgZm9jdXMgdmFsaWRhdGlvbiB3aWxsIGJlIHByZXZlbnRlZFxuICAgICAqL1xuICAgIHNldE1vc2FpY1ZhbGlkYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0aW9uQ29udHJvbCkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLnBhcmVudD8ubmdTdWJtaXRcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy52YWxpZGF0aW9uQ29udHJvbCEudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTmdNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uRm9yTW9kZWxDb250cm9sKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0Zvcm1Db250cm9sIHx8IHRoaXMuaXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0TW9zYWljVmFsaWRhdGlvbkZvckZvcm1Db250cm9sKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRNb3NhaWNWYWxpZGF0aW9uRm9yTW9kZWxDb250cm9sKCkge1xuICAgICAgICBpZiAoIXRoaXMucmF3VmFsaWRhdG9ycykgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLnJhd1ZhbGlkYXRvcnMuZm9yRWFjaCgodmFsaWRhdG9yOiBWYWxpZGF0b3IpID0+IHtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tdW5ib3VuZC1tZXRob2RcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVmFsaWRhdGUgPSB2YWxpZGF0b3IudmFsaWRhdGU7XG5cbiAgICAgICAgICAgIGlmICh2YWxpZGF0b3IgaW5zdGFuY2VvZiBSZXF1aXJlZFZhbGlkYXRvcikge1xuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgcmVxdWlyZWQgdmFsaWRhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvci52YWxpZGF0ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc05vdFN1Ym1pdHRlZFBhcmVudCkgeyByZXR1cm4gbnVsbDsgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbFZhbGlkYXRlLmNhbGwodmFsaWRhdG9yLCBjb250cm9sKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VkIGFsbCBvdGhlciB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yLnZhbGlkYXRlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUZpZWxkQ29udHJvbC5mb2N1c2VkKSB7IHJldHVybiBudWxsOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsVmFsaWRhdGUuY2FsbCh2YWxpZGF0b3IsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldE1vc2FpY1ZhbGlkYXRpb25Gb3JGb3JtQ29udHJvbCgpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxWYWxpZGF0b3IgPSB0aGlzLnZhbGlkYXRpb25Db250cm9sLnZhbGlkYXRvcjtcblxuICAgICAgICAvLyBjaGFuZ2VkIHJlcXVpcmVkIHZhbGlkYXRpb24gbG9naWMgYWZ0ZXIgaW5pdGlhbGl6YXRpb25cbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLnZhbGlkYXRpb25Db250cm9sLmVycm9ycyEucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCBvcmlnaW5hbFZhbGlkYXRvciEpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVjayBkeW5hbWljIHVwZGF0ZXNcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uQ29udHJvbC5zdGF0dXNDaGFuZ2VzIVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY2hhbmdlZCByZXF1aXJlZCB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuaW52YWxpZCAmJiAodGhpcy5oYXNOb3RTdWJtaXR0ZWRQYXJlbnQpICYmIHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuZXJyb3JzIS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkU3RhdGUodGhpcy52YWxpZGF0aW9uQ29udHJvbCwgb3JpZ2luYWxWYWxpZGF0b3IhKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VkIGFsbCBvdGhlciB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLmZvcm1GaWVsZENvbnRyb2wuZm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkU3RhdGUodGhpcy52YWxpZGF0aW9uQ29udHJvbCwgb3JpZ2luYWxWYWxpZGF0b3IhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3ZhbGlkYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLFNBQVMsRUFDVCxNQUFNLEVBQ04sT0FBTyxFQUNQLGlCQUFpQixFQUlqQixvQkFBb0IsRUFDdkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBRUgsY0FBYyxFQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBZ0IzRCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsWUFBWSxPQUFPLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsWUFBWSxlQUFlLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsWUFBWSxvQkFBb0IsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUMs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QUUsYUFBYTtpQkFDMUI7OzBCQTJCUSxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzs7MEJBQzVDLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3hDLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTmdDb250cm9sLFxuICAgIE5nRm9ybSxcbiAgICBOZ01vZGVsLFxuICAgIFJlcXVpcmVkVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRvckZuLFxuICAgIEZvcm1Db250cm9sRGlyZWN0aXZlXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgS2JxVmFsaWRhdGlvbk9wdGlvbnMsXG4gICAgS0JRX1ZBTElEQVRJT05cbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuXG5cbmltcG9ydCB7IEticUZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuL2Zvcm0tZmllbGQtY29udHJvbCc7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IGBcbiAgICAgICAgaW5wdXRba2JxSW5wdXRdLFxuICAgICAgICBpbnB1dFtrYnFJbnB1dFBhc3N3b3JkXSxcbiAgICAgICAgaW5wdXRba2JxVGltZXBpY2tlcl0sXG4gICAgICAgIGlucHV0W2ticURhdGVwaWNrZXJdLFxuICAgICAgICB0ZXh0YXJlYVtrYnFUZXh0YXJlYV0sXG4gICAgICAgIGticS1zZWxlY3QsXG4gICAgICAgIGticS10cmVlLXNlbGVjdCxcbiAgICAgICAga2JxLXRhZy1saXN0XG4gICAgYCxcbiAgICBleHBvcnRBczogJ0ticVZhbGlkYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBLYnFWYWxpZGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIGdldCBpc05nTW9kZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2xOYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2woKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sRGlyZWN0aXZlO1xuICAgIH1cblxuICAgIGdldCB2YWxpZGF0aW9uQ29udHJvbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgfHwgdGhpcy5uZ0NvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50Rm9ybSB8fCB0aGlzLnBhcmVudEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgaGFzTm90U3VibWl0dGVkUGFyZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQgJiYgIXRoaXMucGFyZW50LnN1Ym1pdHRlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IEticUZvcm1GaWVsZENvbnRyb2wpKSBwcml2YXRlIGZvcm1GaWVsZENvbnRyb2w6IEticUZvcm1GaWVsZENvbnRyb2w8YW55PixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIHB1YmxpYyByYXdWYWxpZGF0b3JzOiBWYWxpZGF0b3JbXSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChLQlFfVkFMSURBVElPTikgcHJpdmF0ZSBtY1ZhbGlkYXRpb246IEticVZhbGlkYXRpb25PcHRpb25zLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLm1jVmFsaWRhdGlvbi51c2VWYWxpZGF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNldE1vc2FpY1ZhbGlkYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFZhbGlkU3RhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCB2YWxpZGF0b3I6IFZhbGlkYXRvckZuKTogdm9pZCB7XG4gICAgICAgIGlmICghY29udHJvbCkgeyByZXR1cm47IH1cblxuICAgICAgICBjb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9yKTtcbiAgICB9XG5cbiAgICAvKiogVGhpcyBmdW5jdGlvbiBkbyBuZXh0OlxuICAgICAqIC0gcnVuIHZhbGlkYXRpb24gb24gc3VibWl0dGluZyBwYXJlbnQgZm9ybVxuICAgICAqIC0gcHJldmVudCB2YWxpZGF0aW9uIGluIHJlcXVpcmVkIHZhbGlkYXRvciBpZiBmb3JtIGRvZXNuJ3Qgc3VibWl0dGVkXG4gICAgICogLSBpZiBjb250cm9sIGhhcyBmb2N1cyB2YWxpZGF0aW9uIHdpbGwgYmUgcHJldmVudGVkXG4gICAgICovXG4gICAgc2V0TW9zYWljVmFsaWRhdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRpb25Db250cm9sKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMucGFyZW50Py5uZ1N1Ym1pdFxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnZhbGlkYXRpb25Db250cm9sIS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNOZ01vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNldE1vc2FpY1ZhbGlkYXRpb25Gb3JNb2RlbENvbnRyb2woKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRm9ybUNvbnRyb2wgfHwgdGhpcy5pc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uRm9yRm9ybUNvbnRyb2woKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldE1vc2FpY1ZhbGlkYXRpb25Gb3JNb2RlbENvbnRyb2woKSB7XG4gICAgICAgIGlmICghdGhpcy5yYXdWYWxpZGF0b3JzKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMucmF3VmFsaWRhdG9ycy5mb3JFYWNoKCh2YWxpZGF0b3I6IFZhbGlkYXRvcikgPT4ge1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11bmJvdW5kLW1ldGhvZFxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxWYWxpZGF0ZSA9IHZhbGlkYXRvci52YWxpZGF0ZTtcblxuICAgICAgICAgICAgaWYgKHZhbGlkYXRvciBpbnN0YW5jZW9mIFJlcXVpcmVkVmFsaWRhdG9yKSB7XG4gICAgICAgICAgICAgICAgLy8gY2hhbmdlZCByZXF1aXJlZCB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yLnZhbGlkYXRlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzTm90U3VibWl0dGVkUGFyZW50KSB7IHJldHVybiBudWxsOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsVmFsaWRhdGUuY2FsbCh2YWxpZGF0b3IsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgYWxsIG90aGVyIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3IudmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtRmllbGRDb250cm9sLmZvY3VzZWQpIHsgcmV0dXJuIG51bGw7IH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxWYWxpZGF0ZS5jYWxsKHZhbGlkYXRvciwgY29udHJvbCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0TW9zYWljVmFsaWRhdGlvbkZvckZvcm1Db250cm9sKCkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFZhbGlkYXRvciA9IHRoaXMudmFsaWRhdGlvbkNvbnRyb2wudmFsaWRhdG9yO1xuXG4gICAgICAgIC8vIGNoYW5nZWQgcmVxdWlyZWQgdmFsaWRhdGlvbiBsb2dpYyBhZnRlciBpbml0aWFsaXphdGlvblxuICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmIHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuZXJyb3JzIS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWxpZFN0YXRlKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wsIG9yaWdpbmFsVmFsaWRhdG9yISk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIGR5bmFtaWMgdXBkYXRlc1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sLnN0YXR1c0NoYW5nZXMhXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VkIHJlcXVpcmVkIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmICh0aGlzLmhhc05vdFN1Ym1pdHRlZFBhcmVudCkgJiYgdGhpcy52YWxpZGF0aW9uQ29udHJvbC5lcnJvcnMhLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCBvcmlnaW5hbFZhbGlkYXRvciEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgYWxsIG90aGVyIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmIHRoaXMuZm9ybUZpZWxkQ29udHJvbC5mb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCBvcmlnaW5hbFZhbGlkYXRvciEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==