@koobiq/components 18.31.0 → 18.33.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 (305) hide show
  1. package/accordion/accordion-trigger.component.scss +2 -0
  2. package/actions-panel/actions-panel-config.d.ts +2 -0
  3. package/actions-panel/actions-panel.d.ts +3 -57
  4. package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
  5. package/autocomplete/autocomplete.component.d.ts +1 -0
  6. package/autocomplete/autocomplete.module.d.ts +1 -1
  7. package/button-toggle/button-toggle.module.d.ts +3 -4
  8. package/code-block/code-block-highlight.d.ts +1 -2
  9. package/code-block/code-block.d.ts +57 -10
  10. package/core/common-behaviors/color.d.ts +3 -0
  11. package/core/common-behaviors/common-module.d.ts +16 -3
  12. package/core/form-field/form-field-ref.d.ts +5 -3
  13. package/core/option/action-container.d.ts +5 -0
  14. package/core/option/action-container.scss +45 -0
  15. package/core/option/action.d.ts +1 -4
  16. package/core/option/action.scss +13 -12
  17. package/core/option/index.d.ts +1 -0
  18. package/core/option/option.d.ts +6 -5
  19. package/core/public-api.d.ts +1 -0
  20. package/core/styles/common/_select.scss +60 -37
  21. package/core/styles/common/_tokens.scss +2 -0
  22. package/core/styles/theming/_theming.scss +0 -4
  23. package/core/tokens/index.d.ts +1 -0
  24. package/core/tokens/window.d.ts +5 -0
  25. package/core/validation/validation.d.ts +23 -2
  26. package/datepicker/datepicker-input.scss +1 -5
  27. package/dropdown/dropdown-trigger.directive.d.ts +1 -0
  28. package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
  29. package/esm2022/accordion/accordion-trigger.component.mjs +2 -2
  30. package/esm2022/accordion/accordion.component.mjs +2 -2
  31. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  32. package/esm2022/actions-panel/actions-panel.mjs +16 -113
  33. package/esm2022/alert/alert.component.mjs +2 -2
  34. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
  35. package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
  36. package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
  37. package/esm2022/badge/badge.component.mjs +2 -2
  38. package/esm2022/breadcrumbs/breadcrumbs.mjs +3 -6
  39. package/esm2022/button/button.component.mjs +4 -3
  40. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  41. package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
  42. package/esm2022/checkbox/checkbox.mjs +2 -2
  43. package/esm2022/code-block/code-block-highlight.mjs +8 -12
  44. package/esm2022/code-block/code-block.mjs +60 -18
  45. package/esm2022/core/common-behaviors/color.mjs +4 -1
  46. package/esm2022/core/common-behaviors/common-module.mjs +19 -26
  47. package/esm2022/core/form-field/form-field-ref.mjs +3 -4
  48. package/esm2022/core/option/action-container.mjs +23 -0
  49. package/esm2022/core/option/action.mjs +16 -30
  50. package/esm2022/core/option/index.mjs +2 -1
  51. package/esm2022/core/option/optgroup.mjs +2 -2
  52. package/esm2022/core/option/option.mjs +10 -8
  53. package/esm2022/core/public-api.mjs +2 -1
  54. package/esm2022/core/tokens/index.mjs +2 -0
  55. package/esm2022/core/tokens/window.mjs +19 -0
  56. package/esm2022/core/utils/utils.mjs +2 -1
  57. package/esm2022/core/validation/validation.mjs +21 -2
  58. package/esm2022/core/version.mjs +2 -2
  59. package/esm2022/datepicker/calendar-body.component.mjs +3 -3
  60. package/esm2022/datepicker/calendar-header.component.mjs +3 -3
  61. package/esm2022/datepicker/datepicker-input.directive.mjs +5 -1
  62. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  63. package/esm2022/dl/dl.component.mjs +2 -2
  64. package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
  65. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  66. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
  67. package/esm2022/empty-state/empty-state.component.mjs +2 -2
  68. package/esm2022/file-upload/multiple-file-upload.component.mjs +4 -4
  69. package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
  70. package/esm2022/filter-bar/filter-bar.mjs +21 -5
  71. package/esm2022/filter-bar/filter-bar.types.mjs +1 -1
  72. package/esm2022/filter-bar/filter-reset.mjs +2 -1
  73. package/esm2022/filter-bar/filter-search.mjs +2 -2
  74. package/esm2022/filter-bar/filters.mjs +4 -3
  75. package/esm2022/filter-bar/pipe-add.mjs +2 -2
  76. package/esm2022/filter-bar/pipes/base-pipe.mjs +7 -2
  77. package/esm2022/filter-bar/pipes/pipe-date.mjs +6 -12
  78. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +6 -12
  79. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +2 -2
  80. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
  81. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  82. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  83. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
  84. package/esm2022/form-field/cleaner.mjs +11 -6
  85. package/esm2022/form-field/error.mjs +20 -0
  86. package/esm2022/form-field/fieldset.mjs +84 -0
  87. package/esm2022/form-field/form-field-control.mjs +2 -2
  88. package/esm2022/form-field/form-field.mjs +247 -74
  89. package/esm2022/form-field/form-field.module.mjs +59 -47
  90. package/esm2022/form-field/hint.mjs +10 -18
  91. package/esm2022/form-field/label.mjs +19 -0
  92. package/esm2022/form-field/password-hint.mjs +7 -6
  93. package/esm2022/form-field/password-toggle.mjs +52 -27
  94. package/esm2022/form-field/prefix.mjs +9 -3
  95. package/esm2022/form-field/public-api.mjs +5 -2
  96. package/esm2022/form-field/reactive-password-hint.mjs +65 -0
  97. package/esm2022/form-field/stepper.mjs +34 -16
  98. package/esm2022/form-field/suffix.mjs +8 -3
  99. package/esm2022/form-field/validate.directive.mjs +16 -19
  100. package/esm2022/input/input-number.mjs +7 -2
  101. package/esm2022/input/input-password.mjs +2 -2
  102. package/esm2022/input/input.module.mjs +1 -5
  103. package/esm2022/list/list-selection.component.mjs +5 -5
  104. package/esm2022/list/list.component.mjs +2 -2
  105. package/esm2022/list/list.module.mjs +12 -5
  106. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  107. package/esm2022/modal/modal-util.mjs +2 -1
  108. package/esm2022/modal/modal.component.mjs +2 -2
  109. package/esm2022/navbar/navbar-item.component.mjs +12 -13
  110. package/esm2022/navbar/navbar.component.mjs +2 -2
  111. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  112. package/esm2022/overflow-items/overflow-items.mjs +27 -10
  113. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  114. package/esm2022/popover/popover.component.mjs +3 -3
  115. package/esm2022/progress-bar/progress-bar.component.mjs +2 -2
  116. package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
  117. package/esm2022/radio/radio.component.mjs +2 -2
  118. package/esm2022/radio/radio.module.mjs +4 -5
  119. package/esm2022/risk-level/risk-level.component.mjs +2 -2
  120. package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
  121. package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
  122. package/esm2022/select/select.component.mjs +42 -22
  123. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  124. package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
  125. package/esm2022/splitter/splitter.component.mjs +5 -3
  126. package/esm2022/table/table.component.mjs +2 -2
  127. package/esm2022/tabs/paginated-tab-header.mjs +6 -2
  128. package/esm2022/tabs/tabs.module.mjs +1 -5
  129. package/esm2022/tags/tag-list.component.mjs +2 -2
  130. package/esm2022/textarea/textarea.component.mjs +7 -6
  131. package/esm2022/textarea/textarea.module.mjs +4 -5
  132. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  133. package/esm2022/timezone/timezone-select.component.mjs +6 -4
  134. package/esm2022/toast/toast-animations.mjs +2 -2
  135. package/esm2022/toast/toast.component.mjs +3 -3
  136. package/esm2022/toggle/toggle.component.mjs +3 -3
  137. package/esm2022/toggle/toggle.module.mjs +4 -5
  138. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  139. package/esm2022/top-bar/top-bar.mjs +2 -2
  140. package/esm2022/tree/padding.directive.mjs +8 -6
  141. package/esm2022/tree/toggle.mjs +2 -2
  142. package/esm2022/tree/tree-option.component.mjs +3 -3
  143. package/esm2022/tree/tree-selection.component.mjs +2 -2
  144. package/esm2022/tree/tree.mjs +2 -2
  145. package/esm2022/tree/tree.module.mjs +8 -5
  146. package/esm2022/tree-select/tree-select.component.mjs +50 -31
  147. package/fesm2022/koobiq-components-accordion.mjs +4 -4
  148. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
  150. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-alert.mjs +2 -2
  152. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
  154. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-badge.mjs +2 -2
  156. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-breadcrumbs.mjs +2 -5
  158. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-button-toggle.mjs +7 -7
  160. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-button.mjs +3 -2
  162. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  164. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-code-block.mjs +65 -28
  166. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-core.mjs +109 -69
  168. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-datepicker.mjs +10 -6
  170. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-dl.mjs +2 -2
  172. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-dropdown.mjs +5 -4
  174. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
  176. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-empty-state.mjs +2 -2
  178. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  179. package/fesm2022/koobiq-components-file-upload.mjs +5 -5
  180. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  181. package/fesm2022/koobiq-components-filter-bar.mjs +45 -35
  182. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-form-field.mjs +611 -220
  184. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-input.mjs +8 -6
  186. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-list.mjs +17 -10
  188. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  189. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  190. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-modal.mjs +3 -2
  192. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-navbar.mjs +15 -16
  194. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  195. package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
  196. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-popover.mjs +4 -4
  198. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  199. package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
  200. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
  202. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-radio.mjs +6 -6
  204. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  205. package/fesm2022/koobiq-components-risk-level.mjs +2 -2
  206. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
  208. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  209. package/fesm2022/koobiq-components-select.mjs +42 -22
  210. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-sidepanel.mjs +3 -6
  212. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-splitter.mjs +4 -2
  214. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  215. package/fesm2022/koobiq-components-table.mjs +2 -2
  216. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  217. package/fesm2022/koobiq-components-tabs.mjs +5 -5
  218. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  219. package/fesm2022/koobiq-components-tags.mjs +2 -2
  220. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  221. package/fesm2022/koobiq-components-textarea.mjs +9 -8
  222. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  223. package/fesm2022/koobiq-components-timezone.mjs +7 -5
  224. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  225. package/fesm2022/koobiq-components-toast.mjs +3 -3
  226. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  227. package/fesm2022/koobiq-components-toggle.mjs +6 -6
  228. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  230. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-top-bar.mjs +2 -2
  232. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-tree-select.mjs +50 -31
  234. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  235. package/fesm2022/koobiq-components-tree.mjs +22 -17
  236. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  237. package/file-upload/_file-upload-theme.scss +9 -0
  238. package/file-upload/multiple-file-upload.component.d.ts +1 -1
  239. package/filter-bar/filter-bar.d.ts +2 -0
  240. package/filter-bar/filter-bar.types.d.ts +2 -2
  241. package/form-field/_fiedset-theme.scss +13 -0
  242. package/form-field/_form-field-theme.scss +29 -13
  243. package/form-field/_hint-theme.scss +21 -22
  244. package/form-field/cleaner.d.ts +5 -1
  245. package/form-field/cleaner.scss +1 -4
  246. package/form-field/error.d.ts +8 -0
  247. package/form-field/fieldset-tokens.scss +5 -0
  248. package/form-field/fieldset.d.ts +27 -0
  249. package/form-field/fieldset.scss +93 -0
  250. package/form-field/form-field-control.d.ts +1 -1
  251. package/form-field/form-field-tokens.scss +13 -3
  252. package/form-field/form-field.d.ts +210 -22
  253. package/form-field/form-field.module.d.ts +14 -12
  254. package/form-field/form-field.scss +58 -78
  255. package/form-field/hint.d.ts +5 -1
  256. package/form-field/hint.scss +3 -5
  257. package/form-field/label.d.ts +6 -0
  258. package/form-field/password-hint.d.ts +1 -1
  259. package/form-field/password-toggle.d.ts +25 -11
  260. package/form-field/password-toggle.scss +1 -2
  261. package/form-field/prefix.d.ts +2 -1
  262. package/form-field/public-api.d.ts +4 -1
  263. package/form-field/reactive-password-hint.d.ts +19 -0
  264. package/form-field/stepper.d.ts +20 -8
  265. package/form-field/stepper.scss +12 -11
  266. package/form-field/suffix.d.ts +2 -1
  267. package/form-field/validate.directive.d.ts +10 -12
  268. package/input/input-tokens.scss +2 -2
  269. package/input/input.module.d.ts +3 -4
  270. package/input/input.scss +1 -2
  271. package/list/_list-theme.scss +4 -1
  272. package/list/list.module.d.ts +2 -1
  273. package/list/list.scss +6 -12
  274. package/navbar/navbar-item.component.d.ts +3 -1
  275. package/overflow-items/overflow-items.d.ts +12 -5
  276. package/package.json +4 -4
  277. package/prebuilt-themes/dark-theme.css +1 -1
  278. package/prebuilt-themes/light-theme.css +1 -1
  279. package/prebuilt-themes/theme.css +1 -1
  280. package/radio/radio.module.d.ts +1 -2
  281. package/schematics/ng-add/index.js +3 -3
  282. package/scrollbar/scrollbar.component.d.ts +1 -0
  283. package/select/select-tokens.scss +5 -4
  284. package/select/select.component.d.ts +12 -3
  285. package/sidepanel/sidepanel.module.d.ts +5 -6
  286. package/splitter/splitter.component.d.ts +1 -0
  287. package/tabs/paginated-tab-header.d.ts +1 -0
  288. package/tabs/tabs.module.d.ts +5 -6
  289. package/tags/tag-list.scss +8 -4
  290. package/textarea/textarea.component.d.ts +1 -0
  291. package/textarea/textarea.module.d.ts +2 -3
  292. package/timepicker/timepicker.scss +1 -1
  293. package/toast/toast.component.scss +2 -0
  294. package/toggle/_toggle-theme.scss +10 -2
  295. package/toggle/toggle-tokens.scss +7 -1
  296. package/toggle/toggle.module.d.ts +1 -2
  297. package/toggle/toggle.scss +6 -6
  298. package/top-bar/top-bar.scss +48 -32
  299. package/tree/_tree-theme.scss +13 -2
  300. package/tree/padding.directive.d.ts +1 -1
  301. package/tree/tree-option.scss +12 -17
  302. package/tree/tree.module.d.ts +1 -1
  303. package/tree-select/tree-select.component.d.ts +10 -1
  304. package/esm2022/form-field/form-field-errors.mjs +0 -7
  305. package/form-field/form-field-errors.d.ts +0 -2
@@ -1,13 +1,19 @@
1
1
  import { Directive } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ /** Element to be placed in front of the form field. */
3
4
  export class KbqPrefix {
4
5
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqPrefix, selector: "[kbqPrefix]", ngImport: i0 }); }
6
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqPrefix, isStandalone: true, selector: "[kbqPrefix]", host: { classAttribute: "kbq-prefix" }, exportAs: ["kbqPrefix"], ngImport: i0 }); }
6
7
  }
7
8
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqPrefix, decorators: [{
8
9
  type: Directive,
9
10
  args: [{
10
- selector: '[kbqPrefix]'
11
+ standalone: true,
12
+ selector: '[kbqPrefix]',
13
+ exportAs: 'kbqPrefix',
14
+ host: {
15
+ class: 'kbq-prefix'
16
+ }
11
17
  }]
12
18
  }] });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3ByZWZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUsxQyxNQUFNLE9BQU8sU0FBUztrSUFBVCxTQUFTO3NIQUFULFNBQVM7OzRGQUFULFNBQVM7a0JBSHJCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ticVByZWZpeF0nXG59KVxuZXhwb3J0IGNsYXNzIEticVByZWZpeCB7fVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3ByZWZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQyx1REFBdUQ7QUFTdkQsTUFBTSxPQUFPLFNBQVM7a0lBQVQsU0FBUztzSEFBVCxTQUFTOzs0RkFBVCxTQUFTO2tCQVJyQixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsWUFBWTtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqIEVsZW1lbnQgdG8gYmUgcGxhY2VkIGluIGZyb250IG9mIHRoZSBmb3JtIGZpZWxkLiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFQcmVmaXhdJyxcbiAgICBleHBvcnRBczogJ2ticVByZWZpeCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1wcmVmaXgnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQcmVmaXgge31cbiJdfQ==
@@ -1,13 +1,16 @@
1
1
  export * from './cleaner';
2
+ export * from './error';
3
+ export * from './fieldset';
2
4
  export * from './form-field';
3
5
  export * from './form-field-control';
4
- export * from './form-field-errors';
5
6
  export * from './form-field.module';
6
7
  export * from './hint';
8
+ export * from './label';
7
9
  export * from './password-hint';
8
10
  export * from './password-toggle';
9
11
  export * from './prefix';
12
+ export * from './reactive-password-hint';
10
13
  export * from './stepper';
11
14
  export * from './suffix';
12
15
  export * from './validate.directive';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGVhbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtY29udHJvbCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtZXJyb3JzJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9oaW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFzc3dvcmQtaGludCc7XG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkLXRvZ2dsZSc7XG5leHBvcnQgKiBmcm9tICcuL3ByZWZpeCc7XG5leHBvcnQgKiBmcm9tICcuL3N0ZXBwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zdWZmaXgnO1xuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0ZS5kaXJlY3RpdmUnO1xuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGVhbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZHNldCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2hpbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbCc7XG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkLWhpbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZC10b2dnbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmVmaXgnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWFjdGl2ZS1wYXNzd29yZC1oaW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3RlcHBlcic7XG5leHBvcnQgKiBmcm9tICcuL3N1ZmZpeCc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRlLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,65 @@
1
+ import { NgClass } from '@angular/common';
2
+ import { afterNextRender, booleanAttribute, ChangeDetectionStrategy, Component, computed, DestroyRef, inject, input, ViewEncapsulation } from '@angular/core';
3
+ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
4
+ import { KBQ_FORM_FIELD_REF, KbqComponentColors } from '@koobiq/components/core';
5
+ import { KbqIconModule } from '@koobiq/components/icon';
6
+ import { EMPTY, merge } from 'rxjs';
7
+ import { KbqHint } from './hint';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@koobiq/components/icon";
10
+ /** Password hint to be shown below the password form field control. */
11
+ export class KbqReactivePasswordHint extends KbqHint {
12
+ constructor() {
13
+ super();
14
+ // @TODO fix types (#DS-2915)
15
+ this.formField = inject(KBQ_FORM_FIELD_REF, { optional: true });
16
+ this.destroyRef = inject(DestroyRef);
17
+ /** Whether the form field control has an error. */
18
+ this.hasError = input(false, { transform: booleanAttribute });
19
+ /**
20
+ * The form field hint icon.
21
+ *
22
+ * @docs-private
23
+ */
24
+ this.icon = computed(() => (this.hasError() ? 'kbq-xmark-s_16' : 'kbq-check-s_16'));
25
+ this.fillTextOff = true;
26
+ this.compact = false;
27
+ this.color = KbqComponentColors.ContrastFade;
28
+ const hasError = toObservable(this.hasError);
29
+ afterNextRender(() => {
30
+ merge(this.formField?.control?.stateChanges || EMPTY, hasError)
31
+ .pipe(takeUntilDestroyed(this.destroyRef))
32
+ .subscribe(() => (this.color = this.makeColor()));
33
+ });
34
+ }
35
+ makeColor() {
36
+ const invalid = this.formField?.invalid;
37
+ const hasError = this.hasError();
38
+ if (invalid && hasError)
39
+ return KbqComponentColors.Error;
40
+ if ((!invalid && !hasError) || !hasError)
41
+ return KbqComponentColors.Success;
42
+ return KbqComponentColors.ContrastFade;
43
+ }
44
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqReactivePasswordHint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: KbqReactivePasswordHint, isStandalone: true, selector: "kbq-reactive-password-hint", inputs: { hasError: { classPropertyName: "hasError", publicName: "hasError", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "kbq-reactive-password-hint" }, exportAs: ["kbqReactivePasswordHint"], usesInheritance: true, ngImport: i0, template: `
46
+ <i [ngClass]="icon()" kbq-icon=""></i>
47
+
48
+ <span class="kbq-hint__text">
49
+ <ng-content />
50
+ </span>
51
+ `, isInline: true, styles: [".kbq-hint{display:flex}.kbq-hint .kbq-icon{margin-top:var(--kbq-hint-size-normal-margin-top);margin-right:var(--kbq-hint-size-normal-content-padding)}.kbq-hint.kbq-hint_compact .kbq-icon{margin-top:var(--kbq-hint-size-compact-margin-top);margin-right:var(--kbq-hint-size-compact-content-padding)}.kbq-hint.kbq-contrast-fade{color:var(--kbq-hint-fill-text-on-fade-contrast-text)}.kbq-hint.kbq-contrast-fade .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-fade-contrast-icon)!important}.kbq-hint.kbq-success{color:var(--kbq-hint-fill-text-on-success-text)}.kbq-hint.kbq-success .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-success-icon)!important}.kbq-hint.kbq-warning{color:var(--kbq-hint-fill-text-on-warning-text)}.kbq-hint.kbq-warning .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-warning-icon)!important}.kbq-hint.kbq-error{color:var(--kbq-hint-fill-text-on-error-text)}.kbq-hint.kbq-error .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-error-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-contrast-fade{color:var(--kbq-hint-fill-text-off-fade-contrast-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-contrast-fade .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-fade-contrast-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-success{color:var(--kbq-hint-fill-text-off-success-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-success .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-success-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-warning{color:var(--kbq-hint-fill-text-off-warning-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-warning .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-warning-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-error{color:var(--kbq-hint-fill-text-off-error-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-error .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-error-icon)!important}.kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-hint.kbq-hint_compact .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-hint{--kbq-hint-size-normal-margin-top: var(--kbq-size-3xs);--kbq-hint-size-normal-content-padding: var(--kbq-size-xxs);--kbq-hint-size-compact-margin-top: 0;--kbq-hint-size-compact-content-padding: var(--kbq-size-xxs);--kbq-hint-fill-text-off-fade-contrast-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-fade-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-hint-fill-text-off-success-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-success-icon: var(--kbq-icon-success);--kbq-hint-fill-text-off-warning-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-warning-icon: var(--kbq-icon-warning);--kbq-hint-fill-text-off-error-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-error-icon: var(--kbq-icon-error);--kbq-hint-fill-text-on-fade-contrast-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-on-fade-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-hint-fill-text-on-success-text: var(--kbq-foreground-success);--kbq-hint-fill-text-on-success-icon: var(--kbq-icon-success);--kbq-hint-fill-text-on-warning-text: var(--kbq-foreground-warning);--kbq-hint-fill-text-on-warning-icon: var(--kbq-icon-warning);--kbq-hint-fill-text-on-error-text: var(--kbq-foreground-error);--kbq-hint-fill-text-on-error-icon: var(--kbq-icon-error)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqReactivePasswordHint, decorators: [{
54
+ type: Component,
55
+ args: [{ standalone: true, imports: [NgClass, KbqIconModule], selector: 'kbq-reactive-password-hint', exportAs: 'kbqReactivePasswordHint', template: `
56
+ <i [ngClass]="icon()" kbq-icon=""></i>
57
+
58
+ <span class="kbq-hint__text">
59
+ <ng-content />
60
+ </span>
61
+ `, host: {
62
+ class: 'kbq-reactive-password-hint'
63
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".kbq-hint{display:flex}.kbq-hint .kbq-icon{margin-top:var(--kbq-hint-size-normal-margin-top);margin-right:var(--kbq-hint-size-normal-content-padding)}.kbq-hint.kbq-hint_compact .kbq-icon{margin-top:var(--kbq-hint-size-compact-margin-top);margin-right:var(--kbq-hint-size-compact-content-padding)}.kbq-hint.kbq-contrast-fade{color:var(--kbq-hint-fill-text-on-fade-contrast-text)}.kbq-hint.kbq-contrast-fade .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-fade-contrast-icon)!important}.kbq-hint.kbq-success{color:var(--kbq-hint-fill-text-on-success-text)}.kbq-hint.kbq-success .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-success-icon)!important}.kbq-hint.kbq-warning{color:var(--kbq-hint-fill-text-on-warning-text)}.kbq-hint.kbq-warning .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-warning-icon)!important}.kbq-hint.kbq-error{color:var(--kbq-hint-fill-text-on-error-text)}.kbq-hint.kbq-error .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-error-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-contrast-fade{color:var(--kbq-hint-fill-text-off-fade-contrast-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-contrast-fade .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-fade-contrast-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-success{color:var(--kbq-hint-fill-text-off-success-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-success .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-success-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-warning{color:var(--kbq-hint-fill-text-off-warning-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-warning .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-warning-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-error{color:var(--kbq-hint-fill-text-off-error-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-error .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-error-icon)!important}.kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-hint.kbq-hint_compact .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-hint{--kbq-hint-size-normal-margin-top: var(--kbq-size-3xs);--kbq-hint-size-normal-content-padding: var(--kbq-size-xxs);--kbq-hint-size-compact-margin-top: 0;--kbq-hint-size-compact-content-padding: var(--kbq-size-xxs);--kbq-hint-fill-text-off-fade-contrast-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-fade-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-hint-fill-text-off-success-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-success-icon: var(--kbq-icon-success);--kbq-hint-fill-text-off-warning-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-warning-icon: var(--kbq-icon-warning);--kbq-hint-fill-text-off-error-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-error-icon: var(--kbq-icon-error);--kbq-hint-fill-text-on-fade-contrast-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-on-fade-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-hint-fill-text-on-success-text: var(--kbq-foreground-success);--kbq-hint-fill-text-on-success-icon: var(--kbq-icon-success);--kbq-hint-fill-text-on-warning-text: var(--kbq-foreground-warning);--kbq-hint-fill-text-on-warning-icon: var(--kbq-icon-warning);--kbq-hint-fill-text-on-error-text: var(--kbq-foreground-error);--kbq-hint-fill-text-on-error-icon: var(--kbq-icon-error)}\n"] }]
64
+ }], ctorParameters: () => [] });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtcGFzc3dvcmQtaGludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9yZWFjdGl2ZS1wYXNzd29yZC1oaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7QUFFakMsdUVBQXVFO0FBdUJ2RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsT0FBTztJQWVoRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBZlosNkJBQTZCO1FBQ1osY0FBUyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBd0MsQ0FBQztRQUNsRyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpELG1EQUFtRDtRQUMxQyxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFFbEU7Ozs7V0FJRztRQUNnQixTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBSzlGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDO1FBRTdDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0MsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsWUFBWSxJQUFJLEtBQUssRUFBRSxRQUFRLENBQUM7aUJBQzFELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxTQUFTO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpDLElBQUksT0FBTyxJQUFJLFFBQVE7WUFBRSxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQUV6RCxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztRQUU1RSxPQUFPLGtCQUFrQixDQUFDLFlBQVksQ0FBQztJQUMzQyxDQUFDO2tJQXhDUSx1QkFBdUI7c0hBQXZCLHVCQUF1Qix5VkFqQnRCOzs7Ozs7S0FNVCw4dElBVFMsT0FBTyxtRkFBRSxhQUFhOzs0RkFvQnZCLHVCQUF1QjtrQkF0Qm5DLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxZQUN2Qiw0QkFBNEIsWUFDNUIseUJBQXlCLFlBQ3pCOzs7Ozs7S0FNVCxRQUtLO3dCQUNGLEtBQUssRUFBRSw0QkFBNEI7cUJBQ3RDLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBLQlFfRk9STV9GSUVMRF9SRUYsIEticUNvbXBvbmVudENvbG9ycyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBFTVBUWSwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEticUZvcm1GaWVsZCB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFIaW50IH0gZnJvbSAnLi9oaW50JztcblxuLyoqIFBhc3N3b3JkIGhpbnQgdG8gYmUgc2hvd24gYmVsb3cgdGhlIHBhc3N3b3JkIGZvcm0gZmllbGQgY29udHJvbC4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIEticUljb25Nb2R1bGVdLFxuICAgIHNlbGVjdG9yOiAna2JxLXJlYWN0aXZlLXBhc3N3b3JkLWhpbnQnLFxuICAgIGV4cG9ydEFzOiAna2JxUmVhY3RpdmVQYXNzd29yZEhpbnQnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxpIFtuZ0NsYXNzXT1cImljb24oKVwiIGticS1pY29uPVwiXCI+PC9pPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwia2JxLWhpbnRfX3RleHRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogW1xuICAgICAgICAnLi9oaW50LnNjc3MnLFxuICAgICAgICAnLi9oaW50LXRva2Vucy5zY3NzJ1xuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1yZWFjdGl2ZS1wYXNzd29yZC1oaW50J1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBLYnFSZWFjdGl2ZVBhc3N3b3JkSGludCBleHRlbmRzIEticUhpbnQge1xuICAgIC8vIEBUT0RPIGZpeCB0eXBlcyAoI0RTLTI5MTUpXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtRmllbGQgPSBpbmplY3QoS0JRX0ZPUk1fRklFTERfUkVGLCB7IG9wdGlvbmFsOiB0cnVlIH0pIGFzIHVua25vd24gYXMgS2JxRm9ybUZpZWxkIHwgdW5kZWZpbmVkO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaGFzIGFuIGVycm9yLiAqL1xuICAgIHJlYWRvbmx5IGhhc0Vycm9yID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGZvcm0gZmllbGQgaGludCBpY29uLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29uID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaGFzRXJyb3IoKSA/ICdrYnEteG1hcmstc18xNicgOiAna2JxLWNoZWNrLXNfMTYnKSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmZpbGxUZXh0T2ZmID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb21wYWN0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29sb3IgPSBLYnFDb21wb25lbnRDb2xvcnMuQ29udHJhc3RGYWRlO1xuXG4gICAgICAgIGNvbnN0IGhhc0Vycm9yID0gdG9PYnNlcnZhYmxlKHRoaXMuaGFzRXJyb3IpO1xuXG4gICAgICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICBtZXJnZSh0aGlzLmZvcm1GaWVsZD8uY29udHJvbD8uc3RhdGVDaGFuZ2VzIHx8IEVNUFRZLCBoYXNFcnJvcilcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+ICh0aGlzLmNvbG9yID0gdGhpcy5tYWtlQ29sb3IoKSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1ha2VDb2xvcigpOiBLYnFDb21wb25lbnRDb2xvcnMge1xuICAgICAgICBjb25zdCBpbnZhbGlkID0gdGhpcy5mb3JtRmllbGQ/LmludmFsaWQ7XG4gICAgICAgIGNvbnN0IGhhc0Vycm9yID0gdGhpcy5oYXNFcnJvcigpO1xuXG4gICAgICAgIGlmIChpbnZhbGlkICYmIGhhc0Vycm9yKSByZXR1cm4gS2JxQ29tcG9uZW50Q29sb3JzLkVycm9yO1xuXG4gICAgICAgIGlmICgoIWludmFsaWQgJiYgIWhhc0Vycm9yKSB8fCAhaGFzRXJyb3IpIHJldHVybiBLYnFDb21wb25lbnRDb2xvcnMuU3VjY2VzcztcblxuICAgICAgICByZXR1cm4gS2JxQ29tcG9uZW50Q29sb3JzLkNvbnRyYXN0RmFkZTtcbiAgICB9XG59XG4iXX0=
@@ -1,24 +1,40 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, inject, Output, ViewEncapsulation } from '@angular/core';
2
2
  import { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';
3
+ import { KbqIconModule } from '@koobiq/components/icon';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@koobiq/components/icon";
6
+ // @TODO Temporary solution to resolve circular dependency (#DS-3893)
7
+ const isNumberInput = (control) => {
8
+ return 'stepUp' in control && 'stepDown' in control;
9
+ };
5
10
  const getKbqStepperToggleMissingControlError = () => {
6
11
  return Error('kbq-stepper should use with kbqNumberInput');
7
12
  };
13
+ /** Component which allow to increment or decrement number value. */
8
14
  export class KbqStepper {
9
15
  constructor() {
10
16
  this.formField = inject(KBQ_FORM_FIELD_REF, { optional: true });
17
+ /** Emitted when the stepper is incremented. */
11
18
  this.stepUp = new EventEmitter();
19
+ /** Emitted when the stepper is decremented. */
12
20
  this.stepDown = new EventEmitter();
13
21
  }
14
- /** Form field number control. */
22
+ /**
23
+ * Form field number control.
24
+ *
25
+ * @docs-private
26
+ */
15
27
  get control() {
16
28
  const control = this.formField?.control;
17
- if (!control?.numberInput) {
29
+ const input = control.numberInput;
30
+ if (!isNumberInput(input)) {
18
31
  throw getKbqStepperToggleMissingControlError();
19
32
  }
20
- return control.numberInput;
33
+ return input;
21
34
  }
35
+ /**
36
+ * @docs-private
37
+ */
22
38
  connectTo(numberInput) {
23
39
  if (!numberInput)
24
40
  return;
@@ -29,67 +45,69 @@ export class KbqStepper {
29
45
  numberInput.stepDown(numberInput.step);
30
46
  });
31
47
  }
48
+ /**
49
+ * @docs-private
50
+ */
32
51
  onStepUp($event) {
33
52
  this.stepUp.emit();
34
53
  $event.preventDefault();
35
54
  }
55
+ /**
56
+ * @docs-private
57
+ */
36
58
  onStepDown($event) {
37
59
  this.stepDown.emit();
38
60
  $event.preventDefault();
39
61
  }
40
62
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqStepper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KbqStepper, selector: "kbq-stepper", outputs: { stepUp: "stepUp", stepDown: "stepDown" }, host: { classAttribute: "kbq-stepper" }, ngImport: i0, template: `
63
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KbqStepper, isStandalone: true, selector: "kbq-stepper", outputs: { stepUp: "stepUp", stepDown: "stepDown" }, host: { classAttribute: "kbq-stepper" }, exportAs: ["kbqStepper"], ngImport: i0, template: `
42
64
  <i
43
65
  class="kbq-stepper-step-up"
44
- [small]="true"
45
66
  [tabindex]="-1"
46
67
  [autoColor]="true"
47
68
  [disabled]="control.disabled"
48
69
  (mousedown)="onStepUp($event)"
49
70
  color="contrast-fade"
50
- kbq-icon-button="kbq-chevron-down_16"
71
+ kbq-icon-button="kbq-chevron-up-s_16"
51
72
  ></i>
52
73
  <i
53
74
  class="kbq-stepper-step-down"
54
- [small]="true"
55
75
  [tabindex]="-1"
56
76
  [autoColor]="true"
57
77
  [disabled]="control.disabled"
58
78
  (mousedown)="onStepDown($event)"
59
79
  color="contrast-fade"
60
- kbq-icon-button="kbq-chevron-down_16"
80
+ kbq-icon-button="kbq-chevron-down-s_16"
61
81
  ></i>
62
- `, isInline: true, styles: [".kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-icon-button-size);margin-right:var(--kbq-form-field-size-icon-button-margin-right);height:100%}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-icon-button-size);text-align:center}.kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}.kbq-stepper .kbq-icon-button.kbq-icon-button_small{padding:0}\n"], dependencies: [{ kind: "component", type: i1.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["small", "kbq-icon-button", "tabindex", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
82
+ `, isInline: true, styles: [".kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-addon-width);height:100%}.kbq-stepper .kbq-stepper-step-up{margin-bottom:-2px}.kbq-stepper .kbq-stepper-step-down{margin-top:-2px}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{width:100%;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["small", "kbq-icon-button", "tabindex", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
63
83
  }
64
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqStepper, decorators: [{
65
85
  type: Component,
66
- args: [{ selector: 'kbq-stepper', template: `
86
+ args: [{ standalone: true, selector: 'kbq-stepper', exportAs: 'kbqStepper', imports: [KbqIconModule], template: `
67
87
  <i
68
88
  class="kbq-stepper-step-up"
69
- [small]="true"
70
89
  [tabindex]="-1"
71
90
  [autoColor]="true"
72
91
  [disabled]="control.disabled"
73
92
  (mousedown)="onStepUp($event)"
74
93
  color="contrast-fade"
75
- kbq-icon-button="kbq-chevron-down_16"
94
+ kbq-icon-button="kbq-chevron-up-s_16"
76
95
  ></i>
77
96
  <i
78
97
  class="kbq-stepper-step-down"
79
- [small]="true"
80
98
  [tabindex]="-1"
81
99
  [autoColor]="true"
82
100
  [disabled]="control.disabled"
83
101
  (mousedown)="onStepDown($event)"
84
102
  color="contrast-fade"
85
- kbq-icon-button="kbq-chevron-down_16"
103
+ kbq-icon-button="kbq-chevron-down-s_16"
86
104
  ></i>
87
105
  `, host: {
88
106
  class: 'kbq-stepper'
89
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-icon-button-size);margin-right:var(--kbq-form-field-size-icon-button-margin-right);height:100%}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-icon-button-size);text-align:center}.kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}.kbq-stepper .kbq-icon-button.kbq-icon-button_small{padding:0}\n"] }]
107
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-addon-width);height:100%}.kbq-stepper .kbq-stepper-step-up{margin-bottom:-2px}.kbq-stepper .kbq-stepper-step-down{margin-top:-2px}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{width:100%;text-align:center}\n"] }]
90
108
  }], propDecorators: { stepUp: [{
91
109
  type: Output
92
110
  }], stepDown: [{
93
111
  type: Output
94
112
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9zdGVwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUc3RCxNQUFNLHNDQUFzQyxHQUFHLEdBQVUsRUFBRTtJQUN2RCxPQUFPLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQztBQTJDRixNQUFNLE9BQU8sVUFBVTtJQS9CdkI7UUFnQ3FCLGNBQVMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUduRSxXQUFNLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEQsYUFBUSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0tBa0NwRTtJQWhDRyxpQ0FBaUM7SUFDakMsSUFBYyxPQUFPO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDO1FBRXhDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDeEIsTUFBTSxzQ0FBc0MsRUFBRSxDQUFDO1FBQ25ELENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxXQUEyQjtRQUNqQyxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFFekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3pCLFdBQVcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFrQjtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWtCO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzVCLENBQUM7a0lBdkNRLFVBQVU7c0hBQVYsVUFBVSxpSkE3QlQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXFCVDs7NEZBUVEsVUFBVTtrQkEvQnRCLFNBQVM7K0JBQ0ksYUFBYSxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FxQlQsUUFFSzt3QkFDRixLQUFLLEVBQUUsYUFBYTtxQkFDdkIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBTTVCLE1BQU07c0JBRGQsTUFBTTtnQkFHRSxRQUFRO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtCUV9GT1JNX0ZJRUxEX1JFRiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuL2Zvcm0tZmllbGQtY29udHJvbCc7XG5cbmNvbnN0IGdldEticVN0ZXBwZXJUb2dnbGVNaXNzaW5nQ29udHJvbEVycm9yID0gKCk6IEVycm9yID0+IHtcbiAgICByZXR1cm4gRXJyb3IoJ2ticS1zdGVwcGVyIHNob3VsZCB1c2Ugd2l0aCBrYnFOdW1iZXJJbnB1dCcpO1xufTtcblxuLyoqXG4gKiBVc2VkIGFzIHRlbXBvcmFyeSBzb2x1dGlvbiB0byByZXNvbHZlIGNpcmN1bGFyIGRlcGVuZGVuY3kuXG4gKiBNb3ZpbmcgYEticVN0ZXBwZXJgIHRvIHN0YW5kYWxvbmUgd2lsbCByZXNvbHZlIHRoZSBpc3N1ZVxuICovXG50eXBlIEticU51bWJlcklucHV0ID0gS2JxRm9ybUZpZWxkQ29udHJvbDx1bmtub3duPiAmIHtcbiAgICBzdGVwVXA6ICh2YWw6IG51bWJlcikgPT4gdm9pZDtcbiAgICBzdGVwRG93bjogKHZhbDogbnVtYmVyKSA9PiB2b2lkO1xuICAgIHN0ZXA6IG51bWJlcjtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLXN0ZXBwZXInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImticS1zdGVwcGVyLXN0ZXAtdXBcIlxuICAgICAgICAgICAgW3NtYWxsXT1cInRydWVcIlxuICAgICAgICAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgICAgIFthdXRvQ29sb3JdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29udHJvbC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uU3RlcFVwKCRldmVudClcIlxuICAgICAgICAgICAgY29sb3I9XCJjb250cmFzdC1mYWRlXCJcbiAgICAgICAgICAgIGticS1pY29uLWJ1dHRvbj1cImticS1jaGV2cm9uLWRvd25fMTZcIlxuICAgICAgICA+PC9pPlxuICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJrYnEtc3RlcHBlci1zdGVwLWRvd25cIlxuICAgICAgICAgICAgW3NtYWxsXT1cInRydWVcIlxuICAgICAgICAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgICAgIFthdXRvQ29sb3JdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29udHJvbC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uU3RlcERvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICBjb2xvcj1cImNvbnRyYXN0LWZhZGVcIlxuICAgICAgICAgICAga2JxLWljb24tYnV0dG9uPVwia2JxLWNoZXZyb24tZG93bl8xNlwiXG4gICAgICAgID48L2k+XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFsnc3RlcHBlci5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1zdGVwcGVyJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFTdGVwcGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdChLQlFfRk9STV9GSUVMRF9SRUYsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzdGVwVXA6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzdGVwRG93bjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEZvcm0gZmllbGQgbnVtYmVyIGNvbnRyb2wuICovXG4gICAgcHJvdGVjdGVkIGdldCBjb250cm9sKCk6IEticU51bWJlcklucHV0IHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUZpZWxkPy5jb250cm9sO1xuXG4gICAgICAgIGlmICghY29udHJvbD8ubnVtYmVySW5wdXQpIHtcbiAgICAgICAgICAgIHRocm93IGdldEticVN0ZXBwZXJUb2dnbGVNaXNzaW5nQ29udHJvbEVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udHJvbC5udW1iZXJJbnB1dDtcbiAgICB9XG5cbiAgICBjb25uZWN0VG8obnVtYmVySW5wdXQ6IEticU51bWJlcklucHV0KSB7XG4gICAgICAgIGlmICghbnVtYmVySW5wdXQpIHJldHVybjtcblxuICAgICAgICB0aGlzLnN0ZXBVcC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgbnVtYmVySW5wdXQuc3RlcFVwKG51bWJlcklucHV0LnN0ZXApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnN0ZXBEb3duLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBudW1iZXJJbnB1dC5zdGVwRG93bihudW1iZXJJbnB1dC5zdGVwKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TdGVwVXAoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuc3RlcFVwLmVtaXQoKTtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25TdGVwRG93bigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zdGVwRG93bi5lbWl0KCk7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbn1cbiJdfQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9zdGVwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFVeEQscUVBQXFFO0FBQ3JFLE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBcUMsRUFBNkIsRUFBRTtJQUN2RixPQUFPLFFBQVEsSUFBSSxPQUFPLElBQUksVUFBVSxJQUFJLE9BQU8sQ0FBQztBQUN4RCxDQUFDLENBQUM7QUFFRixNQUFNLHNDQUFzQyxHQUFHLEdBQVUsRUFBRTtJQUN2RCxPQUFPLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQztBQUVGLG9FQUFvRTtBQWlDcEUsTUFBTSxPQUFPLFVBQVU7SUFoQ3ZCO1FBaUNxQixjQUFTLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFNUUsK0NBQStDO1FBQzVCLFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RSwrQ0FBK0M7UUFDNUIsYUFBUSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0tBZ0Q5RTtJQTlDRzs7OztPQUlHO0lBQ0gsSUFBYyxPQUFPO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFFbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sc0NBQXNDLEVBQUUsQ0FBQztRQUNuRCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFdBQTJCO1FBQ2pDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUV6QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekIsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsTUFBa0I7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUFDLE1BQWtCO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzVCLENBQUM7a0lBdERRLFVBQVU7c0hBQVYsVUFBVSwrTEEzQlQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FtQlQsMGFBcEJTLGFBQWE7OzRGQTRCZCxVQUFVO2tCQWhDdEIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sYUFBYSxZQUNiLFlBQVksV0FDYixDQUFDLGFBQWEsQ0FBQyxZQUNkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBbUJULFFBRUs7d0JBQ0YsS0FBSyxFQUFFLGFBQWE7cUJBQ3ZCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQU1sQixNQUFNO3NCQUF4QixNQUFNO2dCQUdZLFFBQVE7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS0JRX0ZPUk1fRklFTERfUkVGIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxSWNvbk1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticUZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuL2Zvcm0tZmllbGQtY29udHJvbCc7XG5cbi8vIEBUT0RPIFRlbXBvcmFyeSBzb2x1dGlvbiB0byByZXNvbHZlIGNpcmN1bGFyIGRlcGVuZGVuY3kgKCNEUy0zODkzKVxudHlwZSBLYnFOdW1iZXJJbnB1dCA9IEticUZvcm1GaWVsZENvbnRyb2w8dW5rbm93bj4gJiB7XG4gICAgc3RlcFVwOiAoc3RlcDogbnVtYmVyKSA9PiB2b2lkO1xuICAgIHN0ZXBEb3duOiAoc3RlcDogbnVtYmVyKSA9PiB2b2lkO1xuICAgIHN0ZXA6IG51bWJlcjtcbn07XG5cbi8vIEBUT0RPIFRlbXBvcmFyeSBzb2x1dGlvbiB0byByZXNvbHZlIGNpcmN1bGFyIGRlcGVuZGVuY3kgKCNEUy0zODkzKVxuY29uc3QgaXNOdW1iZXJJbnB1dCA9IChjb250cm9sOiBLYnFGb3JtRmllbGRDb250cm9sPHVua25vd24+KTogY29udHJvbCBpcyBLYnFOdW1iZXJJbnB1dCA9PiB7XG4gICAgcmV0dXJuICdzdGVwVXAnIGluIGNvbnRyb2wgJiYgJ3N0ZXBEb3duJyBpbiBjb250cm9sO1xufTtcblxuY29uc3QgZ2V0S2JxU3RlcHBlclRvZ2dsZU1pc3NpbmdDb250cm9sRXJyb3IgPSAoKTogRXJyb3IgPT4ge1xuICAgIHJldHVybiBFcnJvcigna2JxLXN0ZXBwZXIgc2hvdWxkIHVzZSB3aXRoIGticU51bWJlcklucHV0Jyk7XG59O1xuXG4vKiogQ29tcG9uZW50IHdoaWNoIGFsbG93IHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgbnVtYmVyIHZhbHVlLiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1zdGVwcGVyJyxcbiAgICBleHBvcnRBczogJ2ticVN0ZXBwZXInLFxuICAgIGltcG9ydHM6IFtLYnFJY29uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJrYnEtc3RlcHBlci1zdGVwLXVwXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICBbYXV0b0NvbG9yXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvblN0ZXBVcCgkZXZlbnQpXCJcbiAgICAgICAgICAgIGNvbG9yPVwiY29udHJhc3QtZmFkZVwiXG4gICAgICAgICAgICBrYnEtaWNvbi1idXR0b249XCJrYnEtY2hldnJvbi11cC1zXzE2XCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwia2JxLXN0ZXBwZXItc3RlcC1kb3duXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICBbYXV0b0NvbG9yXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvblN0ZXBEb3duKCRldmVudClcIlxuICAgICAgICAgICAgY29sb3I9XCJjb250cmFzdC1mYWRlXCJcbiAgICAgICAgICAgIGticS1pY29uLWJ1dHRvbj1cImticS1jaGV2cm9uLWRvd24tc18xNlwiXG4gICAgICAgID48L2k+XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFsnc3RlcHBlci5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1zdGVwcGVyJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFTdGVwcGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdChLQlFfRk9STV9GSUVMRF9SRUYsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBzdGVwcGVyIGlzIGluY3JlbWVudGVkLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzdGVwVXA6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHN0ZXBwZXIgaXMgZGVjcmVtZW50ZWQuICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHN0ZXBEb3duOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGZpZWxkIG51bWJlciBjb250cm9sLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgY29udHJvbCgpOiBLYnFOdW1iZXJJbnB1dCB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1GaWVsZD8uY29udHJvbDtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBjb250cm9sLm51bWJlcklucHV0O1xuXG4gICAgICAgIGlmICghaXNOdW1iZXJJbnB1dChpbnB1dCkpIHtcbiAgICAgICAgICAgIHRocm93IGdldEticVN0ZXBwZXJUb2dnbGVNaXNzaW5nQ29udHJvbEVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIGNvbm5lY3RUbyhudW1iZXJJbnB1dDogS2JxTnVtYmVySW5wdXQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFudW1iZXJJbnB1dCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuc3RlcFVwLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBudW1iZXJJbnB1dC5zdGVwVXAobnVtYmVySW5wdXQuc3RlcCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3RlcERvd24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIG51bWJlcklucHV0LnN0ZXBEb3duKG51bWJlcklucHV0LnN0ZXApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgb25TdGVwVXAoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RlcFVwLmVtaXQoKTtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uU3RlcERvd24oJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RlcERvd24uZW1pdCgpO1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,13 +1,18 @@
1
1
  import { Directive } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ /** Element to be placed at the end of the form field. */
3
4
  export class KbqSuffix {
4
5
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqSuffix, selector: "[kbqSuffix]", ngImport: i0 }); }
6
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqSuffix, isStandalone: true, selector: "[kbqSuffix]", host: { classAttribute: "kbq-suffix" }, ngImport: i0 }); }
6
7
  }
7
8
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqSuffix, decorators: [{
8
9
  type: Directive,
9
10
  args: [{
10
- selector: '[kbqSuffix]'
11
+ standalone: true,
12
+ selector: '[kbqSuffix]',
13
+ host: {
14
+ class: 'kbq-suffix'
15
+ }
11
16
  }]
12
17
  }] });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VmZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3N1ZmZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUsxQyxNQUFNLE9BQU8sU0FBUztrSUFBVCxTQUFTO3NIQUFULFNBQVM7OzRGQUFULFNBQVM7a0JBSHJCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ticVN1ZmZpeF0nXG59KVxuZXhwb3J0IGNsYXNzIEticVN1ZmZpeCB7fVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VmZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3N1ZmZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQyx5REFBeUQ7QUFRekQsTUFBTSxPQUFPLFNBQVM7a0lBQVQsU0FBUztzSEFBVCxTQUFTOzs0RkFBVCxTQUFTO2tCQVByQixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxZQUFZO3FCQUN0QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiogRWxlbWVudCB0byBiZSBwbGFjZWQgYXQgdGhlIGVuZCBvZiB0aGUgZm9ybSBmaWVsZC4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxU3VmZml4XScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1zdWZmaXgnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFTdWZmaXgge31cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, Directive, forwardRef, Host, Inject, Optional, Self } from '@angular/core';
1
+ import { ChangeDetectorRef, Directive, ElementRef, forwardRef, Host, Inject, Optional, Self } from '@angular/core';
2
2
  import { FormControlDirective, FormControlName, FormGroupDirective, NG_VALIDATORS, NgControl, NgForm, NgModel, RequiredValidator } from '@angular/forms';
3
3
  import { KBQ_VALIDATION } from '@koobiq/components/core';
4
4
  import { KbqFormFieldControl } from './form-field-control';
@@ -9,22 +9,19 @@ import * as i3 from "./form-field-control";
9
9
  /**
10
10
  * @deprecated Will be removed in next major release (#DS-2838)
11
11
  *
12
- * Legacy mosaic validation
12
+ * Legacy validation directive.
13
13
  *
14
14
  * ### How to disable?
15
15
  *
16
16
  * ```typescript
17
- * import { KBQ_VALIDATION, KbqValidationOptions } from '@koobiq/components/core';
17
+ * import { kbqDisableLegacyValidationDirectiveProvider } from '@koobiq/components/core';
18
18
  *
19
19
  * @NgModule({
20
- * providers: [
21
- * {
22
- * provide: KBQ_VALIDATION,
23
- * useValue: { useValidation: false } satisfies KbqValidationOptions
24
- * }
25
- * ]
20
+ * providers: [kbqDisableLegacyValidationDirectiveProvider()]
26
21
  * })
27
22
  * ```
23
+ *
24
+ * @docs-private
28
25
  */
29
26
  export class KbqValidateDirective {
30
27
  get isNgModel() {
@@ -45,7 +42,7 @@ export class KbqValidateDirective {
45
42
  get hasNotSubmittedParent() {
46
43
  return this.parent && !this.parent.submitted;
47
44
  }
48
- constructor(formFieldControl, rawValidators, ngControl, parentForm, parentFormGroup, mcValidation, cdr, parentFormField) {
45
+ constructor(formFieldControl, rawValidators, ngControl, parentForm, parentFormGroup, mcValidation, cdr, parentFormField, elementRef) {
49
46
  this.formFieldControl = formFieldControl;
50
47
  this.rawValidators = rawValidators;
51
48
  this.ngControl = ngControl;
@@ -54,10 +51,12 @@ export class KbqValidateDirective {
54
51
  this.mcValidation = mcValidation;
55
52
  this.cdr = cdr;
56
53
  this.parentFormField = parentFormField;
57
- this.parentFormField?.elementRef.nativeElement.classList.add('kbq-form-field_has-validate-directive');
54
+ this.elementRef = elementRef;
58
55
  }
59
56
  ngAfterContentInit() {
60
57
  if (this.mcValidation.useValidation) {
58
+ this.parentFormField?.elementRef.nativeElement.classList.add('kbq-form-field_has-validate-directive');
59
+ this.elementRef.nativeElement.classList.add('kbq-control_has-validate-directive');
61
60
  this.setMosaicValidation();
62
61
  }
63
62
  }
@@ -140,12 +139,13 @@ export class KbqValidateDirective {
140
139
  }
141
140
  });
142
141
  }
143
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", 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 }, { token: i2.KbqFormField, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
144
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqValidateDirective, selector: "\n input[kbqInput],\n input[kbqNumberInput],\n input[kbqInputPassword],\n input[kbqTimepicker],\n input[kbqDatepicker],\n textarea[kbqTextarea],\n kbq-select,\n kbq-tree-select,\n kbq-tag-list\n ", host: { classAttribute: "kbq-control_has-validate-directive" }, exportAs: ["KbqValidate"], ngImport: i0 }); }
142
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", 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 }, { token: i2.KbqFormField, host: true, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
143
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqValidateDirective, isStandalone: true, selector: "\n input[kbqInput],\n input[kbqNumberInput],\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 }); }
145
144
  }
146
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqValidateDirective, decorators: [{
147
146
  type: Directive,
148
147
  args: [{
148
+ standalone: true,
149
149
  selector: `
150
150
  input[kbqInput],
151
151
  input[kbqNumberInput],
@@ -157,10 +157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
157
157
  kbq-tree-select,
158
158
  kbq-tag-list
159
159
  `,
160
- exportAs: 'KbqValidate',
161
- host: {
162
- class: 'kbq-control_has-validate-directive'
163
- }
160
+ exportAs: 'KbqValidate'
164
161
  }]
165
162
  }], ctorParameters: () => [{ type: i3.KbqFormFieldControl, decorators: [{
166
163
  type: Inject,
@@ -189,5 +186,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
189
186
  type: Optional
190
187
  }, {
191
188
  type: Host
192
- }] }] });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3ZhbGlkYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFSCxvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsU0FBUyxFQUNULE1BQU0sRUFDTixPQUFPLEVBQ1AsaUJBQWlCLEVBSXBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBd0IsTUFBTSx5QkFBeUIsQ0FBQztBQUUvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFrQkgsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLFlBQVksT0FBTyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLFlBQVksZUFBZSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLFlBQVksb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUMyRCxnQkFBMEMsRUFDL0MsYUFBMEIsRUFDaEQsU0FBb0IsRUFDNUIsVUFBa0IsRUFDbEIsZUFBbUMsRUFDWCxZQUFrQyxFQUN0RSxHQUFzQixFQUNPLGVBQW9DO1FBUGxCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBMEI7UUFDL0Msa0JBQWEsR0FBYixhQUFhLENBQWE7UUFDaEQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQUNYLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUN0RSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNPLG9CQUFlLEdBQWYsZUFBZSxDQUFxQjtRQUV6RSxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBd0IsRUFBRSxTQUFzQjtRQUMxRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxPQUFPO1FBQ1gsQ0FBQztRQUVELE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyRCxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBRTVDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBYSxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxpQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUVyRSxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUM7UUFDTixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7UUFDOUMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztRQUM3QyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtDQUFrQztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFvQixFQUFFLEVBQUU7WUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBRTVDLElBQUksU0FBUyxZQUFZLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pDLG9DQUFvQztnQkFDcEMsU0FBUyxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7b0JBQ3ZFLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7d0JBQzdCLE9BQU8sSUFBSSxDQUFDO29CQUNoQixDQUFDO29CQUVELE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDckQsQ0FBQyxDQUFDO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNKLHFDQUFxQztnQkFDckMsU0FBUyxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7b0JBQ3ZFLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNoQyxPQUFPLElBQUksQ0FBQztvQkFDaEIsQ0FBQztvQkFFRCxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3JELENBQUMsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxpQ0FBaUM7UUFDN0IseURBQXlEO1FBQ3pELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqRCxvQ0FBb0M7WUFDcEMsSUFDSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTztnQkFDOUIsSUFBSSxDQUFDLHFCQUFxQjtnQkFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxRQUFRLEVBQ3pDLENBQUM7Z0JBQ0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7WUFFRCxxQ0FBcUM7WUFDckMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7a0lBeElRLG9CQUFvQixrQkEwQmpCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxhQUNqQixhQUFhLHNMQUlyQixjQUFjO3NIQS9CN0Isb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQWpCaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7S0FVVDtvQkFDRCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxvQ0FBb0M7cUJBQzlDO2lCQUNKOzswQkEyQlEsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7OzBCQUM1QyxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUN4QyxRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjOzswQkFFakMsUUFBUTs7MEJBQUksSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXG4gICAgRm9ybUNvbnRyb2xOYW1lLFxuICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBOR19WQUxJREFUT1JTLFxuICAgIE5nQ29udHJvbCxcbiAgICBOZ0Zvcm0sXG4gICAgTmdNb2RlbCxcbiAgICBSZXF1aXJlZFZhbGlkYXRvcixcbiAgICBWYWxpZGF0aW9uRXJyb3JzLFxuICAgIFZhbGlkYXRvcixcbiAgICBWYWxpZGF0b3JGblxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLQlFfVkFMSURBVElPTiwgS2JxVmFsaWRhdGlvbk9wdGlvbnMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGQgfSBmcm9tICcuL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgS2JxRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJy4vZm9ybS1maWVsZC1jb250cm9sJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlICgjRFMtMjgzOClcbiAqXG4gKiBMZWdhY3kgbW9zYWljIHZhbGlkYXRpb25cbiAqXG4gKiAjIyMgSG93IHRvIGRpc2FibGU/XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgS0JRX1ZBTElEQVRJT04sIEticVZhbGlkYXRpb25PcHRpb25zIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgICAgIHByb3ZpZGVyczogW1xuICogICAgICAgICAgIHtcbiAqICAgICAgICAgICAgICBwcm92aWRlOiBLQlFfVkFMSURBVElPTixcbiAqICAgICAgICAgICAgICB1c2VWYWx1ZTogeyB1c2VWYWxpZGF0aW9uOiBmYWxzZSB9IHNhdGlzZmllcyBLYnFWYWxpZGF0aW9uT3B0aW9uc1xuICogICAgICAgICAgIH1cbiAqICAgICAgXVxuICogfSlcbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogYFxuICAgICAgICBpbnB1dFtrYnFJbnB1dF0sXG4gICAgICAgIGlucHV0W2ticU51bWJlcklucHV0XSxcbiAgICAgICAgaW5wdXRba2JxSW5wdXRQYXNzd29yZF0sXG4gICAgICAgIGlucHV0W2ticVRpbWVwaWNrZXJdLFxuICAgICAgICBpbnB1dFtrYnFEYXRlcGlja2VyXSxcbiAgICAgICAgdGV4dGFyZWFba2JxVGV4dGFyZWFdLFxuICAgICAgICBrYnEtc2VsZWN0LFxuICAgICAgICBrYnEtdHJlZS1zZWxlY3QsXG4gICAgICAgIGticS10YWctbGlzdFxuICAgIGAsXG4gICAgZXhwb3J0QXM6ICdLYnFWYWxpZGF0ZScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jb250cm9sX2hhcy12YWxpZGF0ZS1kaXJlY3RpdmUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFWYWxpZGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIGdldCBpc05nTW9kZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2xOYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2woKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sRGlyZWN0aXZlO1xuICAgIH1cblxuICAgIGdldCB2YWxpZGF0aW9uQ29udHJvbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgfHwgdGhpcy5uZ0NvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50Rm9ybSB8fCB0aGlzLnBhcmVudEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgaGFzTm90U3VibWl0dGVkUGFyZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQgJiYgIXRoaXMucGFyZW50LnN1Ym1pdHRlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IEticUZvcm1GaWVsZENvbnRyb2wpKSBwcml2YXRlIGZvcm1GaWVsZENvbnRyb2w6IEticUZvcm1GaWVsZENvbnRyb2w8YW55PixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIHB1YmxpYyByYXdWYWxpZGF0b3JzOiBWYWxpZGF0b3JbXSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChLQlFfVkFMSURBVElPTikgcHJpdmF0ZSBtY1ZhbGlkYXRpb246IEticVZhbGlkYXRpb25PcHRpb25zLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRGb3JtRmllbGQ6IEticUZvcm1GaWVsZCB8IG51bGxcbiAgICApIHtcbiAgICAgICAgdGhpcy5wYXJlbnRGb3JtRmllbGQ/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdrYnEtZm9ybS1maWVsZF9oYXMtdmFsaWRhdGUtZGlyZWN0aXZlJyk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5tY1ZhbGlkYXRpb24udXNlVmFsaWRhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRWYWxpZFN0YXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbik6IHZvaWQge1xuICAgICAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3IpO1xuICAgIH1cblxuICAgIC8qKiBUaGlzIGZ1bmN0aW9uIGRvIG5leHQ6XG4gICAgICogLSBydW4gdmFsaWRhdGlvbiBvbiBzdWJtaXR0aW5nIHBhcmVudCBmb3JtXG4gICAgICogLSBwcmV2ZW50IHZhbGlkYXRpb24gaW4gcmVxdWlyZWQgdmFsaWRhdG9yIGlmIGZvcm0gZG9lc24ndCBzdWJtaXR0ZWRcbiAgICAgKiAtIGlmIGNvbnRyb2wgaGFzIGZvY3VzIHZhbGlkYXRpb24gd2lsbCBiZSBwcmV2ZW50ZWRcbiAgICAgKi9cbiAgICBzZXRNb3NhaWNWYWxpZGF0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGlvbkNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBhcmVudD8ub25TdWJtaXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsU3VibWl0ID0gdGhpcy5wYXJlbnQub25TdWJtaXQ7XG5cbiAgICAgICAgICAgIHRoaXMucGFyZW50Lm9uU3VibWl0ID0gKCRldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sIS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbFN1Ym1pdC5jYWxsKHRoaXMucGFyZW50LCAkZXZlbnQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzTmdNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uRm9yTW9kZWxDb250cm9sKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0Zvcm1Db250cm9sIHx8IHRoaXMuaXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0TW9zYWljVmFsaWRhdGlvbkZvckZvcm1Db250cm9sKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRNb3NhaWNWYWxpZGF0aW9uRm9yTW9kZWxDb250cm9sKCkge1xuICAgICAgICBpZiAoIXRoaXMucmF3VmFsaWRhdG9ycykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yYXdWYWxpZGF0b3JzLmZvckVhY2goKHZhbGlkYXRvcjogVmFsaWRhdG9yKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbFZhbGlkYXRlID0gdmFsaWRhdG9yLnZhbGlkYXRlO1xuXG4gICAgICAgICAgICBpZiAodmFsaWRhdG9yIGluc3RhbmNlb2YgUmVxdWlyZWRWYWxpZGF0b3IpIHtcbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VkIHJlcXVpcmVkIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3IudmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNOb3RTdWJtaXR0ZWRQYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsVmFsaWRhdGUuY2FsbCh2YWxpZGF0b3IsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgYWxsIG90aGVyIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3IudmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtRmllbGRDb250cm9sLmZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsVmFsaWRhdGUuY2FsbCh2YWxpZGF0b3IsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldE1vc2FpY1ZhbGlkYXRpb25Gb3JGb3JtQ29udHJvbCgpIHtcbiAgICAgICAgLy8gY2hhbmdlZCByZXF1aXJlZCB2YWxpZGF0aW9uIGxvZ2ljIGFmdGVyIGluaXRpYWxpemF0aW9uXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25Db250cm9sLmludmFsaWQgJiYgdGhpcy52YWxpZGF0aW9uQ29udHJvbC5lcnJvcnMhLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkU3RhdGUodGhpcy52YWxpZGF0aW9uQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uQ29udHJvbC52YWxpZGF0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVjayBkeW5hbWljIHVwZGF0ZXNcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uQ29udHJvbC5zdGF0dXNDaGFuZ2VzIS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgLy8gY2hhbmdlZCByZXF1aXJlZCB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNOb3RTdWJtaXR0ZWRQYXJlbnQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sLmVycm9ycyEucmVxdWlyZWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCB0aGlzLnZhbGlkYXRpb25Db250cm9sLnZhbGlkYXRvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNoYW5nZWQgYWxsIG90aGVyIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25Db250cm9sLmludmFsaWQgJiYgdGhpcy5mb3JtRmllbGRDb250cm9sLmZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkU3RhdGUodGhpcy52YWxpZGF0aW9uQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uQ29udHJvbC52YWxpZGF0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
189
+ }] }, { type: i0.ElementRef }] });
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3ZhbGlkYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLElBQUksRUFDSixNQUFNLEVBQ04sUUFBUSxFQUNSLElBQUksRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLFNBQVMsRUFDVCxNQUFNLEVBQ04sT0FBTyxFQUNQLGlCQUFpQixFQUlwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFFL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRTNEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBZ0JILE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxZQUFZLE9BQU8sQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxZQUFZLGVBQWUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxZQUFZLG9CQUFvQixDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lB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QUFpQixDQUFDLE9BQU87Z0JBQzlCLElBQUksQ0FBQyxxQkFBcUI7Z0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsUUFBUSxFQUN6QyxDQUFDO2dCQUNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRixDQUFDO1lBRUQscUNBQXFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO2tJQTFJUSxvQkFBb0Isa0JBMEJqQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsYUFDakIsYUFBYSxzTEFJckIsY0FBYztzSEEvQjdCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFmaEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7O0tBVVQ7b0JBQ0QsUUFBUSxFQUFFLGFBQWE7aUJBQzFCOzswQkEyQlEsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7OzBCQUM1QyxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUN4QyxRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjOzswQkFFakMsUUFBUTs7MEJBQUksSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQ29udHJvbERpcmVjdGl2ZSxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTmdDb250cm9sLFxuICAgIE5nRm9ybSxcbiAgICBOZ01vZGVsLFxuICAgIFJlcXVpcmVkVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRvckZuXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEtCUV9WQUxJREFUSU9OLCBLYnFWYWxpZGF0aW9uT3B0aW9ucyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUZvcm1GaWVsZCB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IG1ham9yIHJlbGVhc2UgKCNEUy0yODM4KVxuICpcbiAqIExlZ2FjeSB2YWxpZGF0aW9uIGRpcmVjdGl2ZS5cbiAqXG4gKiAjIyMgSG93IHRvIGRpc2FibGU/XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsga2JxRGlzYWJsZUxlZ2FjeVZhbGlkYXRpb25EaXJlY3RpdmVQcm92aWRlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbiAqXG4gKiBATmdNb2R1bGUoe1xuICogICAgICBwcm92aWRlcnM6IFtrYnFEaXNhYmxlTGVnYWN5VmFsaWRhdGlvbkRpcmVjdGl2ZVByb3ZpZGVyKCldXG4gKiB9KVxuICogYGBgXG4gKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiBgXG4gICAgICAgIGlucHV0W2ticUlucHV0XSxcbiAgICAgICAgaW5wdXRba2JxTnVtYmVySW5wdXRdLFxuICAgICAgICBpbnB1dFtrYnFJbnB1dFBhc3N3b3JkXSxcbiAgICAgICAgaW5wdXRba2JxVGltZXBpY2tlcl0sXG4gICAgICAgIGlucHV0W2ticURhdGVwaWNrZXJdLFxuICAgICAgICB0ZXh0YXJlYVtrYnFUZXh0YXJlYV0sXG4gICAgICAgIGticS1zZWxlY3QsXG4gICAgICAgIGticS10cmVlLXNlbGVjdCxcbiAgICAgICAga2JxLXRhZy1saXN0XG4gICAgYCxcbiAgICBleHBvcnRBczogJ0ticVZhbGlkYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBLYnFWYWxpZGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIGdldCBpc05nTW9kZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2xOYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2woKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sRGlyZWN0aXZlO1xuICAgIH1cblxuICAgIGdldCB2YWxpZGF0aW9uQ29udHJvbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgfHwgdGhpcy5uZ0NvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50Rm9ybSB8fCB0aGlzLnBhcmVudEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgaGFzTm90U3VibWl0dGVkUGFyZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQgJiYgIXRoaXMucGFyZW50LnN1Ym1pdHRlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IEticUZvcm1GaWVsZENvbnRyb2wpKSBwcml2YXRlIGZvcm1GaWVsZENvbnRyb2w6IEticUZvcm1GaWVsZENvbnRyb2w8YW55PixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIHB1YmxpYyByYXdWYWxpZGF0b3JzOiBWYWxpZGF0b3JbXSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChLQlFfVkFMSURBVElPTikgcHJpdmF0ZSBtY1ZhbGlkYXRpb246IEticVZhbGlkYXRpb25PcHRpb25zLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRGb3JtRmllbGQ6IEticUZvcm1GaWVsZCB8IG51bGwsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICAgICkge31cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMubWNWYWxpZGF0aW9uLnVzZVZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50Rm9ybUZpZWxkPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgna2JxLWZvcm0tZmllbGRfaGFzLXZhbGlkYXRlLWRpcmVjdGl2ZScpO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgna2JxLWNvbnRyb2xfaGFzLXZhbGlkYXRlLWRpcmVjdGl2ZScpO1xuXG4gICAgICAgICAgICB0aGlzLnNldE1vc2FpY1ZhbGlkYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFZhbGlkU3RhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCB2YWxpZGF0b3I6IFZhbGlkYXRvckZuKTogdm9pZCB7XG4gICAgICAgIGlmICghY29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgLyoqIFRoaXMgZnVuY3Rpb24gZG8gbmV4dDpcbiAgICAgKiAtIHJ1biB2YWxpZGF0aW9uIG9uIHN1Ym1pdHRpbmcgcGFyZW50IGZvcm1cbiAgICAgKiAtIHByZXZlbnQgdmFsaWRhdGlvbiBpbiByZXF1aXJlZCB2YWxpZGF0b3IgaWYgZm9ybSBkb2Vzbid0IHN1Ym1pdHRlZFxuICAgICAqIC0gaWYgY29udHJvbCBoYXMgZm9jdXMgdmFsaWRhdGlvbiB3aWxsIGJlIHByZXZlbnRlZFxuICAgICAqL1xuICAgIHNldE1vc2FpY1ZhbGlkYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0aW9uQ29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGFyZW50Py5vblN1Ym1pdCkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxTdWJtaXQgPSB0aGlzLnBhcmVudC5vblN1Ym1pdDtcblxuICAgICAgICAgICAgdGhpcy5wYXJlbnQub25TdWJtaXQgPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkNvbnRyb2whLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsU3VibWl0LmNhbGwodGhpcy5wYXJlbnQsICRldmVudCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNOZ01vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNldE1vc2FpY1ZhbGlkYXRpb25Gb3JNb2RlbENvbnRyb2woKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRm9ybUNvbnRyb2wgfHwgdGhpcy5pc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uRm9yRm9ybUNvbnRyb2woKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldE1vc2FpY1ZhbGlkYXRpb25Gb3JNb2RlbENvbnRyb2woKSB7XG4gICAgICAgIGlmICghdGhpcy5yYXdWYWxpZGF0b3JzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJhd1ZhbGlkYXRvcnMuZm9yRWFjaCgodmFsaWRhdG9yOiBWYWxpZGF0b3IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVmFsaWRhdGUgPSB2YWxpZGF0b3IudmFsaWRhdGU7XG5cbiAgICAgICAgICAgIGlmICh2YWxpZGF0b3IgaW5zdGFuY2VvZiBSZXF1aXJlZFZhbGlkYXRvcikge1xuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgcmVxdWlyZWQgdmFsaWRhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvci52YWxpZGF0ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc05vdFN1Ym1pdHRlZFBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxWYWxpZGF0ZS5jYWxsKHZhbGlkYXRvciwgY29udHJvbCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gY2hhbmdlZCBhbGwgb3RoZXIgdmFsaWRhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvci52YWxpZGF0ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1GaWVsZENvbnRyb2wuZm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxWYWxpZGF0ZS5jYWxsKHZhbGlkYXRvciwgY29udHJvbCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0TW9zYWljVmFsaWRhdGlvbkZvckZvcm1Db250cm9sKCkge1xuICAgICAgICAvLyBjaGFuZ2VkIHJlcXVpcmVkIHZhbGlkYXRpb24gbG9naWMgYWZ0ZXIgaW5pdGlhbGl6YXRpb25cbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLnZhbGlkYXRpb25Db250cm9sLmVycm9ycyEucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCB0aGlzLnZhbGlkYXRpb25Db250cm9sLnZhbGlkYXRvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIGR5bmFtaWMgdXBkYXRlc1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sLnN0YXR1c0NoYW5nZXMhLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAvLyBjaGFuZ2VkIHJlcXVpcmVkIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sLmludmFsaWQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmhhc05vdFN1Ym1pdHRlZFBhcmVudCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuZXJyb3JzIS5yZXF1aXJlZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWxpZFN0YXRlKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wsIHRoaXMudmFsaWRhdGlvbkNvbnRyb2wudmFsaWRhdG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY2hhbmdlZCBhbGwgb3RoZXIgdmFsaWRhdGlvbiBsb2dpY1xuICAgICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLmZvcm1GaWVsZENvbnRyb2wuZm9jdXNlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCB0aGlzLnZhbGlkYXRpb25Db250cm9sLnZhbGlkYXRvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==