@agorapulse/ui-components 18.0.0-beta → 18.0.0-beta.11

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 (175) hide show
  1. package/agorapulse-ui-components-18.0.0-beta.11.tgz +0 -0
  2. package/avatar/avatar.component.d.ts +56 -43
  3. package/datepicker/datepicker.component.d.ts +21 -5
  4. package/esm2022/add-comment/add-comment.component.mjs +4 -4
  5. package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
  6. package/esm2022/avatar/avatar.component.mjs +113 -181
  7. package/esm2022/badge/badge.component.mjs +4 -4
  8. package/esm2022/button/button.component.mjs +4 -4
  9. package/esm2022/checkbox/checkbox.component.mjs +5 -5
  10. package/esm2022/confirm-modal/confirm-modal.component.mjs +4 -4
  11. package/esm2022/counter/counter.component.mjs +4 -4
  12. package/esm2022/datepicker/datepicker.component.mjs +35 -17
  13. package/esm2022/directives/autosize-textarea.directive.mjs +4 -4
  14. package/esm2022/directives/base-button.directive.mjs +4 -4
  15. package/esm2022/directives/default-image.directive.mjs +4 -4
  16. package/esm2022/directives/ellipsis.directive.mjs +4 -4
  17. package/esm2022/directives/equal-validator.directive.mjs +4 -4
  18. package/esm2022/directives/frozen-gif.directive.mjs +4 -4
  19. package/esm2022/directives/multi-style-text.directive.mjs +4 -4
  20. package/esm2022/dot-stepper/dot-stepper.component.mjs +4 -4
  21. package/esm2022/form-field/form-field.component.mjs +4 -4
  22. package/esm2022/form-message/form-message.component.mjs +4 -4
  23. package/esm2022/icon-button/icon-button.component.mjs +4 -4
  24. package/esm2022/infobox/infobox.component.mjs +4 -4
  25. package/esm2022/input/input.directive.mjs +4 -4
  26. package/esm2022/input-group/input-group.component.mjs +4 -4
  27. package/esm2022/input-group/input-prefix/input-prefix.component.mjs +4 -4
  28. package/esm2022/input-search/input-search.component.mjs +5 -5
  29. package/esm2022/labels/label-list.component.mjs +4 -4
  30. package/esm2022/labels/label.component.mjs +4 -4
  31. package/esm2022/labels-selector/labels-selector.component.mjs +4 -4
  32. package/esm2022/legacy/input/input.component.mjs +5 -5
  33. package/esm2022/legacy/select/select.component.mjs +4 -4
  34. package/esm2022/legacy/textarea/textarea.component.mjs +5 -5
  35. package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +4 -4
  36. package/esm2022/modal/modal.component.mjs +4 -4
  37. package/esm2022/neo-datepicker/day-disabled.pipe.mjs +4 -4
  38. package/esm2022/neo-datepicker/neo-datepicker.component.mjs +4 -4
  39. package/esm2022/notification/notification.component.mjs +4 -4
  40. package/esm2022/paginator/paginator-button/paginator-button.component.mjs +4 -4
  41. package/esm2022/paginator/paginator.component.mjs +4 -4
  42. package/esm2022/password-input/password-input.component.mjs +4 -4
  43. package/esm2022/phone-number-input/phone-number-input.component.mjs +40 -26
  44. package/esm2022/popmenu/popmenu.component.mjs +4 -4
  45. package/esm2022/popmenu/popmenu.directive.mjs +4 -4
  46. package/esm2022/popmenu/popmenu.module.mjs +5 -5
  47. package/esm2022/radio/radio.component.mjs +7 -7
  48. package/esm2022/range-slider/range-slider.component.mjs +4 -4
  49. package/esm2022/select/ap-select.module.mjs +5 -5
  50. package/esm2022/select/dropdown-group-item/dropdown-group-item.component.mjs +4 -4
  51. package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +4 -4
  52. package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +4 -4
  53. package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +4 -4
  54. package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +4 -4
  55. package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +4 -4
  56. package/esm2022/select/select-base.directive.mjs +6 -6
  57. package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +4 -4
  58. package/esm2022/select/select-label-single/select-label-single.component.mjs +4 -4
  59. package/esm2022/select/select-multiple.directive.mjs +4 -4
  60. package/esm2022/select/select-single.directive.mjs +4 -4
  61. package/esm2022/slide-toggle/slide-toggle.component.mjs +4 -4
  62. package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +4 -4
  63. package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +4 -4
  64. package/esm2022/social-button/social-button.component.mjs +4 -4
  65. package/esm2022/split-button/split-button.component.mjs +7 -10
  66. package/esm2022/src/lib/agorapulse-ui-components.module.mjs +5 -5
  67. package/esm2022/status/status.component.mjs +4 -4
  68. package/esm2022/status-card/status-card.component.mjs +4 -4
  69. package/esm2022/stepper/stepper.component.mjs +4 -4
  70. package/esm2022/tag/tag.component.mjs +4 -4
  71. package/esm2022/text-measurement/text-measurement.service.mjs +4 -4
  72. package/esm2022/textarea/textarea.directive.mjs +4 -4
  73. package/esm2022/toggle/toggle.component.mjs +8 -8
  74. package/esm2022/tooltip/tooltip.directive.mjs +4 -4
  75. package/esm2022/tooltip/tooltip.service.mjs +4 -4
  76. package/fesm2022/agorapulse-ui-components-add-comment.mjs +3 -3
  77. package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -1
  78. package/fesm2022/agorapulse-ui-components-autocomplete.mjs +3 -3
  79. package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -1
  80. package/fesm2022/agorapulse-ui-components-avatar.mjs +113 -181
  81. package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -1
  82. package/fesm2022/agorapulse-ui-components-badge.mjs +3 -3
  83. package/fesm2022/agorapulse-ui-components-badge.mjs.map +1 -1
  84. package/fesm2022/agorapulse-ui-components-button.mjs +3 -3
  85. package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -1
  86. package/fesm2022/agorapulse-ui-components-checkbox.mjs +4 -4
  87. package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +3 -3
  89. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs.map +1 -1
  90. package/fesm2022/agorapulse-ui-components-counter.mjs +3 -3
  91. package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -1
  92. package/fesm2022/agorapulse-ui-components-datepicker.mjs +35 -17
  93. package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -1
  94. package/fesm2022/agorapulse-ui-components-directives.mjs +21 -21
  95. package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -1
  96. package/fesm2022/agorapulse-ui-components-dot-stepper.mjs +3 -3
  97. package/fesm2022/agorapulse-ui-components-dot-stepper.mjs.map +1 -1
  98. package/fesm2022/agorapulse-ui-components-form-field.mjs +3 -3
  99. package/fesm2022/agorapulse-ui-components-form-field.mjs.map +1 -1
  100. package/fesm2022/agorapulse-ui-components-form-message.mjs +3 -3
  101. package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -1
  102. package/fesm2022/agorapulse-ui-components-icon-button.mjs +3 -3
  103. package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -1
  104. package/fesm2022/agorapulse-ui-components-infobox.mjs +3 -3
  105. package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -1
  106. package/fesm2022/agorapulse-ui-components-input-group.mjs +6 -6
  107. package/fesm2022/agorapulse-ui-components-input-group.mjs.map +1 -1
  108. package/fesm2022/agorapulse-ui-components-input-search.mjs +4 -4
  109. package/fesm2022/agorapulse-ui-components-input-search.mjs.map +1 -1
  110. package/fesm2022/agorapulse-ui-components-input.mjs +3 -3
  111. package/fesm2022/agorapulse-ui-components-input.mjs.map +1 -1
  112. package/fesm2022/agorapulse-ui-components-labels-selector.mjs +3 -3
  113. package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -1
  114. package/fesm2022/agorapulse-ui-components-labels.mjs +6 -6
  115. package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -1
  116. package/fesm2022/agorapulse-ui-components-legacy-input.mjs +4 -4
  117. package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -1
  118. package/fesm2022/agorapulse-ui-components-legacy-select.mjs +3 -3
  119. package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -1
  120. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +4 -4
  121. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -1
  122. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +3 -3
  123. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -1
  124. package/fesm2022/agorapulse-ui-components-modal.mjs +3 -3
  125. package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -1
  126. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +6 -6
  127. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -1
  128. package/fesm2022/agorapulse-ui-components-notification.mjs +3 -3
  129. package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -1
  130. package/fesm2022/agorapulse-ui-components-paginator.mjs +6 -6
  131. package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -1
  132. package/fesm2022/agorapulse-ui-components-password-input.mjs +3 -3
  133. package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -1
  134. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs +39 -25
  135. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -1
  136. package/fesm2022/agorapulse-ui-components-popmenu.mjs +10 -10
  137. package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -1
  138. package/fesm2022/agorapulse-ui-components-radio.mjs +6 -6
  139. package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -1
  140. package/fesm2022/agorapulse-ui-components-range-slider.mjs +3 -3
  141. package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -1
  142. package/fesm2022/agorapulse-ui-components-select.mjs +38 -38
  143. package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
  144. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +3 -3
  145. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -1
  146. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +6 -6
  147. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -1
  148. package/fesm2022/agorapulse-ui-components-social-button.mjs +3 -3
  149. package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -1
  150. package/fesm2022/agorapulse-ui-components-split-button.mjs +6 -9
  151. package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -1
  152. package/fesm2022/agorapulse-ui-components-status-card.mjs +3 -3
  153. package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -1
  154. package/fesm2022/agorapulse-ui-components-status.mjs +3 -3
  155. package/fesm2022/agorapulse-ui-components-status.mjs.map +1 -1
  156. package/fesm2022/agorapulse-ui-components-stepper.mjs +3 -3
  157. package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -1
  158. package/fesm2022/agorapulse-ui-components-tag.mjs +3 -3
  159. package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -1
  160. package/fesm2022/agorapulse-ui-components-text-measurement.mjs +3 -3
  161. package/fesm2022/agorapulse-ui-components-text-measurement.mjs.map +1 -1
  162. package/fesm2022/agorapulse-ui-components-textarea.mjs +3 -3
  163. package/fesm2022/agorapulse-ui-components-textarea.mjs.map +1 -1
  164. package/fesm2022/agorapulse-ui-components-toggle.mjs +7 -7
  165. package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -1
  166. package/fesm2022/agorapulse-ui-components-tooltip.mjs +6 -6
  167. package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -1
  168. package/fesm2022/agorapulse-ui-components.mjs +4 -4
  169. package/fesm2022/agorapulse-ui-components.mjs.map +1 -1
  170. package/package.json +94 -94
  171. package/phone-number-input/phone-number-input.component.d.ts +5 -3
  172. package/select/select-label-multiple/select-label-multiple.component.d.ts +1 -1
  173. package/split-button/split-button.component.d.ts +3 -3
  174. package/tooltip/tooltip.directive.d.ts +1 -1
  175. package/agorapulse-ui-components-18.0.0-beta.tgz +0 -0
@@ -59,10 +59,10 @@ export class PasswordInputComponent {
59
59
  this.changes.unsubscribe();
60
60
  }
61
61
  }
62
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PasswordInputComponent, deps: [{ token: i1.SymbolRegistry }], target: i0.ɵɵFactoryTarget.Component });
63
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: PasswordInputComponent, isStandalone: true, selector: "ap-password-input", inputs: { name: "name", placeholder: "placeholder", fullWidth: "fullWidth" }, providers: [PASSWORD_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "passwordInput", first: true, predicate: ["passwordInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"input-group\"\n [ngClass]=\"{ disabled: disabled, 'full-width': fullWidth }\">\n <input\n #passwordInput\n autocomplete=\"password\"\n [type]=\"inputType\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [formControl]=\"controler\"\n (blur)=\"onTouch()\" />\n <ap-symbol\n class=\"input-group-append\"\n size=\"sm\"\n state=\"full\"\n [symbolId]=\"inputType === 'text' ? 'view-on' : 'view-off'\"\n (click)=\"toggleInputType()\" />\n</div>\n", styles: ["[color=facebook]{color:#0866ff}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#0866ff}[border=facebook]{border:1px solid #0866ff}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}:host{display:flex}:host.ng-invalid.ng-dirty.ng-touched:not([disabled]):not(.transparent)>.input-group{border:1px solid #e81313}:host.valid:not([disabled]):not(.transparent)>.input-group{border:1px solid #45b854}.input-group-append{cursor:pointer}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PasswordInputComponent, deps: [{ token: i1.SymbolRegistry }], target: i0.ɵɵFactoryTarget.Component });
63
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: PasswordInputComponent, isStandalone: true, selector: "ap-password-input", inputs: { name: "name", placeholder: "placeholder", fullWidth: "fullWidth" }, providers: [PASSWORD_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "passwordInput", first: true, predicate: ["passwordInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"input-group\"\n [ngClass]=\"{ disabled: disabled, 'full-width': fullWidth }\">\n <input\n #passwordInput\n autocomplete=\"password\"\n [type]=\"inputType\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [formControl]=\"controler\"\n (blur)=\"onTouch()\" />\n <ap-symbol\n class=\"input-group-append\"\n size=\"sm\"\n state=\"full\"\n [symbolId]=\"inputType === 'text' ? 'view-on' : 'view-off'\"\n (click)=\"toggleInputType()\" />\n</div>\n", styles: ["[color=facebook]{color:#0866ff}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#0866ff}[border=facebook]{border:1px solid #0866ff}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}:host{display:flex}:host.ng-invalid.ng-dirty.ng-touched:not([disabled]):not(.transparent)>.input-group{border:1px solid #e81313}:host.valid:not([disabled]):not(.transparent)>.input-group{border:1px solid #45b854}.input-group-append{cursor:pointer}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PasswordInputComponent, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PasswordInputComponent, decorators: [{
66
66
  type: Component,
67
67
  args: [{ selector: 'ap-password-input', providers: [PASSWORD_CONTROL_VALUE_ACCESSOR], imports: [SymbolComponent, NgClass, ReactiveFormsModule], standalone: true, template: "<div\n class=\"input-group\"\n [ngClass]=\"{ disabled: disabled, 'full-width': fullWidth }\">\n <input\n #passwordInput\n autocomplete=\"password\"\n [type]=\"inputType\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [formControl]=\"controler\"\n (blur)=\"onTouch()\" />\n <ap-symbol\n class=\"input-group-append\"\n size=\"sm\"\n state=\"full\"\n [symbolId]=\"inputType === 'text' ? 'view-on' : 'view-off'\"\n (click)=\"toggleInputType()\" />\n</div>\n", styles: ["[color=facebook]{color:#0866ff}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#0866ff}[border=facebook]{border:1px solid #0866ff}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}:host{display:flex}:host.ng-invalid.ng-dirty.ng-touched:not([disabled]):not(.transparent)>.input-group{border:1px solid #e81313}:host.valid:not([disabled]):not(.transparent)>.input-group{border:1px solid #45b854}.input-group-append{cursor:pointer}\n"] }]
68
68
  }], ctorParameters: () => [{ type: i1.SymbolRegistry }], propDecorators: { name: [{
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
75
75
  type: ViewChild,
76
76
  args: ['passwordInput']
77
77
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3Bhc3N3b3JkLWlucHV0L3NyYy9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcGFzc3dvcmQtaW5wdXQvc3JjL3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFrQixTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFxQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHM0csTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDaEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQVVGLE1BQU0sT0FBTyxzQkFBc0I7SUFjWjtJQWJuQixNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLFNBQVMsR0FBaUQsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWhGLElBQUksR0FBRyxFQUFFLENBQUM7SUFDVixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDcEMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUVFLGFBQWEsQ0FBYztJQUV2RCxTQUFTLEdBQWdCLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sQ0FBZ0I7SUFFdkIsWUFBbUIsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNEOztPQUVHO0lBQ0gsZUFBZTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELFFBQVEsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUVwQyxPQUFPLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRW5CLFVBQVUsQ0FBQyxHQUFXO1FBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUE4QjtRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ2pFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO3dHQXpEUSxzQkFBc0I7NEZBQXRCLHNCQUFzQiw4SUFKcEIsQ0FBQywrQkFBK0IsQ0FBQywwSUNqQmhELDhrQkFtQkEsMnRMRERjLGVBQWUsNkZBQUUsT0FBTyxtRkFBRSxtQkFBbUI7OzRGQUc5QyxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0ksbUJBQW1CLGFBR2xCLENBQUMsK0JBQStCLENBQUMsV0FDbkMsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixDQUFDLGNBQzVDLElBQUk7bUZBTVAsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHc0IsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXG5pbXBvcnQgeyBTeW1ib2xDb21wb25lbnQsIFN5bWJvbFJlZ2lzdHJ5LCBhcFZpZXdPZmYsIGFwVmlld09uIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgUEFTU1dPUkRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBhc3N3b3JkSW5wdXRDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1wYXNzd29yZC1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1BBU1NXT1JEX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICAgIGltcG9ydHM6IFtTeW1ib2xDb21wb25lbnQsIE5nQ2xhc3MsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIHN0YXRpYyB0eXBlID0gWyd0ZXh0JywgJ3Bhc3N3b3JkJ107XG4gICAgaW5wdXRUeXBlOiAodHlwZW9mIFBhc3N3b3JkSW5wdXRDb21wb25lbnQudHlwZSlbbnVtYmVyXSA9IFBhc3N3b3JkSW5wdXRDb21wb25lbnQudHlwZVsxXTtcblxuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICAgIEBJbnB1dCgpIGZ1bGxXaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCdwYXNzd29yZElucHV0JykgcGFzc3dvcmRJbnB1dCE6IEVsZW1lbnRSZWY7XG5cbiAgICBjb250cm9sZXI6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgICBjaGFuZ2VzITogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHN5bWJvbFJlZ2lzdHJ5OiBTeW1ib2xSZWdpc3RyeSkge1xuICAgICAgICB0aGlzLnN5bWJvbFJlZ2lzdHJ5LnJlZ2lzdGVyU3ltYm9scyhbYXBWaWV3T2ZmLCBhcFZpZXdPbl0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgYmV0d2VlbiB2aXNpYmxlIGFuZCBoaWRkZW4gcGFzc3dvcmRcbiAgICAgKi9cbiAgICB0b2dnbGVJbnB1dFR5cGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRUeXBlID0gUGFzc3dvcmRJbnB1dENvbXBvbmVudC50eXBlW1Bhc3N3b3JkSW5wdXRDb21wb25lbnQudHlwZS5pbmRleE9mKHRoaXMuaW5wdXRUeXBlKSA9PSAwID8gMSA6IDBdO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBvbkNoYW5nZSA9IChwYXNzd29yZDogc3RyaW5nKSA9PiB7fTtcblxuICAgIG9uVG91Y2ggPSAoKSA9PiB7fTtcblxuICAgIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sZXIuc2V0VmFsdWUob2JqKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAocGFzc3dvcmQ6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZXMgPSB0aGlzLmNvbnRyb2xlci52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWw6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImlucHV0LWdyb3VwXCJcbiAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCwgJ2Z1bGwtd2lkdGgnOiBmdWxsV2lkdGggfVwiPlxuICAgIDxpbnB1dFxuICAgICAgICAjcGFzc3dvcmRJbnB1dFxuICAgICAgICBhdXRvY29tcGxldGU9XCJwYXNzd29yZFwiXG4gICAgICAgIFt0eXBlXT1cImlucHV0VHlwZVwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbGVyXCJcbiAgICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCIgLz5cbiAgICA8YXAtc3ltYm9sXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCJcbiAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgc3RhdGU9XCJmdWxsXCJcbiAgICAgICAgW3N5bWJvbElkXT1cImlucHV0VHlwZSA9PT0gJ3RleHQnID8gJ3ZpZXctb24nIDogJ3ZpZXctb2ZmJ1wiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVJbnB1dFR5cGUoKVwiIC8+XG48L2Rpdj5cbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3Bhc3N3b3JkLWlucHV0L3NyYy9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcGFzc3dvcmQtaW5wdXQvc3JjL3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFrQixTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFxQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHM0csTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDaEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQVVGLE1BQU0sT0FBTyxzQkFBc0I7SUFjWjtJQWJuQixNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLFNBQVMsR0FBaUQsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWhGLElBQUksR0FBRyxFQUFFLENBQUM7SUFDVixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDcEMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUVFLGFBQWEsQ0FBYztJQUV2RCxTQUFTLEdBQWdCLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sQ0FBZ0I7SUFFdkIsWUFBbUIsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNEOztPQUVHO0lBQ0gsZUFBZTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELFFBQVEsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUVwQyxPQUFPLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRW5CLFVBQVUsQ0FBQyxHQUFXO1FBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUE4QjtRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ2pFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO3VHQXpEUSxzQkFBc0I7MkZBQXRCLHNCQUFzQiw4SUFKcEIsQ0FBQywrQkFBK0IsQ0FBQywwSUNqQmhELDhrQkFtQkEsMnRMRERjLGVBQWUsc0hBQUUsT0FBTyxtRkFBRSxtQkFBbUI7OzJGQUc5QyxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0ksbUJBQW1CLGFBR2xCLENBQUMsK0JBQStCLENBQUMsV0FDbkMsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixDQUFDLGNBQzVDLElBQUk7bUZBTVAsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHc0IsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXG5pbXBvcnQgeyBTeW1ib2xDb21wb25lbnQsIFN5bWJvbFJlZ2lzdHJ5LCBhcFZpZXdPZmYsIGFwVmlld09uIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgUEFTU1dPUkRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBhc3N3b3JkSW5wdXRDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1wYXNzd29yZC1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1BBU1NXT1JEX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICAgIGltcG9ydHM6IFtTeW1ib2xDb21wb25lbnQsIE5nQ2xhc3MsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIHN0YXRpYyB0eXBlID0gWyd0ZXh0JywgJ3Bhc3N3b3JkJ107XG4gICAgaW5wdXRUeXBlOiAodHlwZW9mIFBhc3N3b3JkSW5wdXRDb21wb25lbnQudHlwZSlbbnVtYmVyXSA9IFBhc3N3b3JkSW5wdXRDb21wb25lbnQudHlwZVsxXTtcblxuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICAgIEBJbnB1dCgpIGZ1bGxXaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCdwYXNzd29yZElucHV0JykgcGFzc3dvcmRJbnB1dCE6IEVsZW1lbnRSZWY7XG5cbiAgICBjb250cm9sZXI6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgICBjaGFuZ2VzITogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHN5bWJvbFJlZ2lzdHJ5OiBTeW1ib2xSZWdpc3RyeSkge1xuICAgICAgICB0aGlzLnN5bWJvbFJlZ2lzdHJ5LnJlZ2lzdGVyU3ltYm9scyhbYXBWaWV3T2ZmLCBhcFZpZXdPbl0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgYmV0d2VlbiB2aXNpYmxlIGFuZCBoaWRkZW4gcGFzc3dvcmRcbiAgICAgKi9cbiAgICB0b2dnbGVJbnB1dFR5cGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRUeXBlID0gUGFzc3dvcmRJbnB1dENvbXBvbmVudC50eXBlW1Bhc3N3b3JkSW5wdXRDb21wb25lbnQudHlwZS5pbmRleE9mKHRoaXMuaW5wdXRUeXBlKSA9PSAwID8gMSA6IDBdO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBvbkNoYW5nZSA9IChwYXNzd29yZDogc3RyaW5nKSA9PiB7fTtcblxuICAgIG9uVG91Y2ggPSAoKSA9PiB7fTtcblxuICAgIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sZXIuc2V0VmFsdWUob2JqKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAocGFzc3dvcmQ6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZXMgPSB0aGlzLmNvbnRyb2xlci52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWw6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImlucHV0LWdyb3VwXCJcbiAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCwgJ2Z1bGwtd2lkdGgnOiBmdWxsV2lkdGggfVwiPlxuICAgIDxpbnB1dFxuICAgICAgICAjcGFzc3dvcmRJbnB1dFxuICAgICAgICBhdXRvY29tcGxldGU9XCJwYXNzd29yZFwiXG4gICAgICAgIFt0eXBlXT1cImlucHV0VHlwZVwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbGVyXCJcbiAgICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCIgLz5cbiAgICA8YXAtc3ltYm9sXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCJcbiAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgc3RhdGU9XCJmdWxsXCJcbiAgICAgICAgW3N5bWJvbElkXT1cImlucHV0VHlwZSA9PT0gJ3RleHQnID8gJ3ZpZXctb24nIDogJ3ZpZXctb2ZmJ1wiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVJbnB1dFR5cGUoKVwiIC8+XG48L2Rpdj5cbiJdfQ==
@@ -13,6 +13,8 @@ import * as i1 from "@agorapulse/ui-symbol";
13
13
  import * as i2 from "@angular/forms";
14
14
  import * as i3 from "@ng-select/ng-select";
15
15
  const NUMBER_ONLY_PATTERN = /[0-9]/;
16
+ const DEFAULT_COUNTRY_CODE = 'US';
17
+ const DEFAULT_PHONE_NUMBER_CODE = '+1';
16
18
  export class PhoneNumberInputComponent {
17
19
  destroyRef = inject(DestroyRef);
18
20
  set errorsDisplayForced(errorsDisplayForced) {
@@ -25,20 +27,13 @@ export class PhoneNumberInputComponent {
25
27
  flagsBucketUrl;
26
28
  set phoneNumberInfos(phoneNumberInfos) {
27
29
  this.codeNumberInfos = phoneNumberInfos ?? [];
28
- if (phoneNumberInfos.length > 0) {
29
- // DS Behavior: select by default the first phone number code
30
- const defaultValue = phoneNumberInfos[0].phoneNumberCode;
31
- this.formGroup.controls.phoneNumberCode.setValue(defaultValue);
32
- this.phoneNumberCode = defaultValue;
33
- }
34
- }
35
- set initialCountryCode(initialCountryCode) {
36
- const firstValue = this.codeNumberInfos.find((codeInfo) => codeInfo.countryCode === initialCountryCode)?.phoneNumberCode;
37
- if (firstValue) {
38
- this.formGroup.patchValue({ phoneNumberCode: firstValue });
39
- }
30
+ this.countryCodeMappedPhoneNumberInfos = phoneNumberInfos.reduce((acc, phoneNumberInfo) => {
31
+ acc[phoneNumberInfo.countryCode] = phoneNumberInfo;
32
+ return acc;
33
+ }, {});
40
34
  }
41
35
  codeNumberInfos = [];
36
+ countryCodeMappedPhoneNumberInfos = {};
42
37
  name;
43
38
  placeholder;
44
39
  searchPlaceholder;
@@ -46,12 +41,18 @@ export class PhoneNumberInputComponent {
46
41
  this.formGroup.controls.phoneNumber.setValue(phoneNumber);
47
42
  }
48
43
  set phoneNumberCode(phoneNumberCode) {
49
- this.formGroup.controls.phoneNumberCode.setValue(phoneNumberCode);
44
+ this.formGroup.controls.countryCode.setValue(phoneNumberCode);
45
+ }
46
+ set initialCountryCode(initialCountryCode) {
47
+ const firstValue = this.findPhoneNumberInfoByCountryCode(initialCountryCode)?.countryCode;
48
+ if (firstValue) {
49
+ this.formGroup.patchValue({ countryCode: firstValue });
50
+ }
50
51
  }
51
52
  changePhoneNumber = new EventEmitter();
52
53
  changePhoneNumberCode = new EventEmitter();
53
54
  formGroup = new FormGroup({
54
- phoneNumberCode: new FormControl('', [Validators.required]),
55
+ countryCode: new FormControl(DEFAULT_COUNTRY_CODE, [Validators.required]),
55
56
  phoneNumber: new FormControl('', [Validators.required]),
56
57
  });
57
58
  onTouched = () => { };
@@ -62,14 +63,24 @@ export class PhoneNumberInputComponent {
62
63
  ngOnInit() {
63
64
  // Subscribe to form changes to propagate them to the parent component
64
65
  this.formGroup.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((value) => {
65
- if (this.onChange) {
66
- this.onChange(value);
66
+ let phoneNumberCode = DEFAULT_PHONE_NUMBER_CODE;
67
+ if (value.countryCode) {
68
+ const phoneNumberInfo = this.findPhoneNumberInfoByCountryCode(value.countryCode);
69
+ if (phoneNumberInfo) {
70
+ phoneNumberCode = phoneNumberInfo.phoneNumberCode;
71
+ }
72
+ }
73
+ if (this.onChange && phoneNumberCode) {
74
+ this.onChange({
75
+ phoneNumber: value.phoneNumber,
76
+ phoneNumberCode,
77
+ });
67
78
  }
68
79
  if (value.phoneNumber !== this.phoneNumber) {
69
80
  this.changePhoneNumber.emit(value.phoneNumber ?? '');
70
81
  }
71
- if (value.phoneNumberCode !== this.phoneNumberCode) {
72
- this.changePhoneNumberCode.emit(value.phoneNumberCode ?? '');
82
+ if (phoneNumberCode !== this.phoneNumberCode) {
83
+ this.changePhoneNumberCode.emit(phoneNumberCode ?? '');
73
84
  }
74
85
  });
75
86
  }
@@ -110,8 +121,11 @@ export class PhoneNumberInputComponent {
110
121
  event.preventDefault();
111
122
  }
112
123
  }
113
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PhoneNumberInputComponent, deps: [{ token: i1.SymbolRegistry }], target: i0.ɵɵFactoryTarget.Component });
114
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: PhoneNumberInputComponent, isStandalone: true, selector: "ap-phone-number-input", inputs: { errorsDisplayForced: "errorsDisplayForced", flagsBucketUrl: "flagsBucketUrl", phoneNumberInfos: "phoneNumberInfos", initialCountryCode: "initialCountryCode", name: "name", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", phoneNumber: "phoneNumber", phoneNumberCode: "phoneNumberCode" }, outputs: { changePhoneNumber: "changePhoneNumber", changePhoneNumberCode: "changePhoneNumberCode" }, providers: [
124
+ findPhoneNumberInfoByCountryCode(countryCode) {
125
+ return this.codeNumberInfos.find((codeInfo) => codeInfo.countryCode === countryCode);
126
+ }
127
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PhoneNumberInputComponent, deps: [{ token: i1.SymbolRegistry }], target: i0.ɵɵFactoryTarget.Component });
128
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: PhoneNumberInputComponent, isStandalone: true, selector: "ap-phone-number-input", inputs: { errorsDisplayForced: "errorsDisplayForced", flagsBucketUrl: "flagsBucketUrl", phoneNumberInfos: "phoneNumberInfos", name: "name", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", phoneNumber: "phoneNumber", phoneNumberCode: "phoneNumberCode", initialCountryCode: "initialCountryCode" }, outputs: { changePhoneNumber: "changePhoneNumber", changePhoneNumberCode: "changePhoneNumberCode" }, providers: [
115
129
  {
116
130
  provide: NG_VALUE_ACCESSOR,
117
131
  useExisting: forwardRef(() => PhoneNumberInputComponent),
@@ -122,9 +136,9 @@ export class PhoneNumberInputComponent {
122
136
  useExisting: forwardRef(() => PhoneNumberInputComponent),
123
137
  multi: true,
124
138
  },
125
- ], ngImport: i0, template: "<ng-container [formGroup]=\"formGroup\">\n <ng-select\n #select\n apSelectSingle\n data-test=\"subscription-billing-infos-phoneNumberCode\"\n class=\"ap-phone-number-code-select ap-select\"\n bindLabel=\"countryName\"\n bindValue=\"phoneNumberCode\"\n notFoundText=\"\"\n formControlName=\"phoneNumberCode\"\n appendTo=\"body\"\n [clearable]=\"false\"\n [items]=\"codeNumberInfos\"\n [searchFn]=\"phoneNumberCodeSearchFn\"\n (blur)=\"onTouched()\">\n <ng-template\n let-item=\"item\"\n ng-label-tmp>\n @if (item && item.countryCode) {\n <div class=\"flag\">\n @if (!!flagsBucketUrl) {\n <img\n width=\"24\"\n height=\"16\"\n alt=\"flag\"\n [ngSrc]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\" />\n } @else {\n <span>{{ item.countryCode }}</span>\n }\n </div>\n }\n </ng-template>\n <ng-template\n let-item=\"item\"\n let-item$=\"item$\"\n ng-option-tmp>\n <ap-dropdown-item-single-one-line\n [text]=\"item.phoneNumberCode + ' ' + item.countryName\"\n [avatarUrl]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\"\n [selected]=\"item$.selected\"\n [roundedAvatar]=\"false\"\n />\n </ng-template>\n <ng-template\n let-searchTerm=\"searchTerm\"\n ng-header-tmp>\n <ap-dropdown-search-form\n [searchPlaceholder]=\"searchPlaceholder\"\n [select]=\"select\"\n />\n </ng-template>\n </ng-select>\n <ap-input-group class=\"phone-number-input-group\">\n <ap-input-prefix>{{formGroup.controls.phoneNumberCode.value}}</ap-input-prefix>\n <input\n apInput\n class=\"phone-field\"\n data-test=\"subscription-billing-infos-phoneNumberInput\"\n type=\"text\"\n data-recurly=\"phone\"\n formControlName=\"phoneNumber\"\n [placeholder]=\"placeholder\"\n [attr.name]=\"name\"\n (beforeinput)=\"filterChars($event)\"\n (blur)=\"onTouched()\"\n />\n </ap-input-group>\n</ng-container>\n", styles: ["ng-dropdown-panel.ap-phone-number-code-select{width:auto!important;min-width:310px!important;max-width:310px}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line .option{display:flex;flex-direction:row;align-items:center}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line ap-avatar{border:0;max-height:16px;min-height:16px;height:initial;box-shadow:unset;overflow:hidden;background:none}ap-phone-number-input{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--ref-spacing-xxs)}ap-phone-number-input .ap-phone-number-code-select{flex:0 0 70px;width:70px}ap-phone-number-input .ap-phone-number-code-select .flag{display:flex;flex-direction:row;align-items:center;justify-content:center;overflow:hidden}ap-phone-number-input .ap-phone-number-code-select .flag img{max-height:16px;max-width:24px;object-fit:cover;border-radius:4px;object-position:center center}ap-phone-number-input .ap-phone-number-code-select .ng-input{padding:2px var(--ref-spacing-sm)}ap-phone-number-input .ap-phone-number-code-select .ng-input input{display:none}ap-phone-number-input .phone-number-input-group{flex:1 0 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i3.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "component", type: InputGroupComponent, selector: "ap-input-group", inputs: ["symbolPosition"] }, { kind: "directive", type: InputDirective, selector: "[apInput]" }, { kind: "component", type: InputPrefixComponent, selector: "ap-input-prefix" }, { kind: "component", type: DropdownItemSingleOneLineComponent, selector: "ap-dropdown-item-single-one-line", inputs: ["text", "selected", "disabled", "avatarUrl", "showAvatarInitials", "symbolId", "disabledTooltip", "badgeText", "dividerEnabled", "network", "roundedAvatar", "isFeatureLocked"], outputs: ["lockedFeatureClicked"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: DropdownSearchFormComponent, selector: "ap-dropdown-search-form", inputs: ["searchPlaceholder", "createNewEnabled", "createText", "select"], outputs: ["createNew"] }], encapsulation: i0.ViewEncapsulation.None });
139
+ ], ngImport: i0, template: "<ng-container [formGroup]=\"formGroup\">\n <ng-select\n #select\n apSelectSingle\n data-test=\"subscription-billing-infos-phoneNumberCode\"\n class=\"ap-phone-number-code-select ap-select\"\n bindLabel=\"countryName\"\n bindValue=\"countryCode\"\n notFoundText=\"\"\n formControlName=\"countryCode\"\n appendTo=\"body\"\n [clearable]=\"false\"\n [items]=\"codeNumberInfos\"\n [searchFn]=\"phoneNumberCodeSearchFn\"\n (blur)=\"onTouched()\">\n <ng-template\n let-item=\"item\"\n ng-label-tmp>\n @if (item && item.countryCode) {\n <div class=\"flag\">\n @if (!!flagsBucketUrl) {\n <img\n width=\"24\"\n height=\"16\"\n alt=\"flag\"\n [ngSrc]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\" />\n } @else {\n <span>{{ item.countryCode }}</span>\n }\n </div>\n }\n </ng-template>\n <ng-template\n let-item=\"item\"\n let-item$=\"item$\"\n ng-option-tmp>\n <ap-dropdown-item-single-one-line\n [text]=\"item.phoneNumberCode + ' ' + item.countryName\"\n [avatarUrl]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\"\n [selected]=\"item$.selected\"\n [roundedAvatar]=\"false\"\n />\n </ng-template>\n <ng-template\n let-searchTerm=\"searchTerm\"\n ng-header-tmp>\n <ap-dropdown-search-form\n [searchPlaceholder]=\"searchPlaceholder\"\n [select]=\"select\"\n />\n </ng-template>\n </ng-select>\n <ap-input-group class=\"phone-number-input-group\">\n @if (formGroup.controls.countryCode.value && countryCodeMappedPhoneNumberInfos) {\n <ap-input-prefix>{{countryCodeMappedPhoneNumberInfos[formGroup.controls.countryCode.value]?.phoneNumberCode}}</ap-input-prefix>\n }\n <input\n apInput\n class=\"phone-field\"\n data-test=\"subscription-billing-infos-phoneNumberInput\"\n type=\"text\"\n data-recurly=\"phone\"\n formControlName=\"phoneNumber\"\n [placeholder]=\"placeholder\"\n [attr.name]=\"name\"\n (beforeinput)=\"filterChars($event)\"\n (blur)=\"onTouched()\"\n />\n </ap-input-group>\n</ng-container>\n", styles: ["ng-dropdown-panel.ap-phone-number-code-select{width:auto!important;min-width:310px!important;max-width:310px}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line .option{display:flex;flex-direction:row;align-items:center}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line ap-avatar{border:0;max-height:16px;min-height:16px;height:initial;box-shadow:unset;overflow:hidden;background:none}ap-phone-number-input{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--ref-spacing-xxs)}ap-phone-number-input .ap-phone-number-code-select{flex:0 0 70px;width:70px}ap-phone-number-input .ap-phone-number-code-select .flag{display:flex;flex-direction:row;align-items:center;justify-content:center;overflow:hidden}ap-phone-number-input .ap-phone-number-code-select .flag img{max-height:16px;max-width:24px;object-fit:cover;border-radius:4px;object-position:center center}ap-phone-number-input .ap-phone-number-code-select .ng-input{padding:2px var(--ref-spacing-sm)}ap-phone-number-input .ap-phone-number-code-select .ng-input input{display:none}ap-phone-number-input .phone-number-input-group{flex:1 0 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i3.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "component", type: InputGroupComponent, selector: "ap-input-group", inputs: ["symbolPosition"] }, { kind: "directive", type: InputDirective, selector: "[apInput]" }, { kind: "component", type: InputPrefixComponent, selector: "ap-input-prefix" }, { kind: "component", type: DropdownItemSingleOneLineComponent, selector: "ap-dropdown-item-single-one-line", inputs: ["text", "selected", "disabled", "avatarUrl", "showAvatarInitials", "symbolId", "disabledTooltip", "badgeText", "dividerEnabled", "network", "roundedAvatar", "isFeatureLocked"], outputs: ["lockedFeatureClicked"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: DropdownSearchFormComponent, selector: "ap-dropdown-search-form", inputs: ["searchPlaceholder", "createNewEnabled", "createText", "select"], outputs: ["createNew"] }], encapsulation: i0.ViewEncapsulation.None });
126
140
  }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PhoneNumberInputComponent, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PhoneNumberInputComponent, decorators: [{
128
142
  type: Component,
129
143
  args: [{ selector: 'ap-phone-number-input', standalone: true, imports: [
130
144
  CommonModule,
@@ -149,7 +163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
149
163
  useExisting: forwardRef(() => PhoneNumberInputComponent),
150
164
  multi: true,
151
165
  },
152
- ], encapsulation: ViewEncapsulation.None, template: "<ng-container [formGroup]=\"formGroup\">\n <ng-select\n #select\n apSelectSingle\n data-test=\"subscription-billing-infos-phoneNumberCode\"\n class=\"ap-phone-number-code-select ap-select\"\n bindLabel=\"countryName\"\n bindValue=\"phoneNumberCode\"\n notFoundText=\"\"\n formControlName=\"phoneNumberCode\"\n appendTo=\"body\"\n [clearable]=\"false\"\n [items]=\"codeNumberInfos\"\n [searchFn]=\"phoneNumberCodeSearchFn\"\n (blur)=\"onTouched()\">\n <ng-template\n let-item=\"item\"\n ng-label-tmp>\n @if (item && item.countryCode) {\n <div class=\"flag\">\n @if (!!flagsBucketUrl) {\n <img\n width=\"24\"\n height=\"16\"\n alt=\"flag\"\n [ngSrc]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\" />\n } @else {\n <span>{{ item.countryCode }}</span>\n }\n </div>\n }\n </ng-template>\n <ng-template\n let-item=\"item\"\n let-item$=\"item$\"\n ng-option-tmp>\n <ap-dropdown-item-single-one-line\n [text]=\"item.phoneNumberCode + ' ' + item.countryName\"\n [avatarUrl]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\"\n [selected]=\"item$.selected\"\n [roundedAvatar]=\"false\"\n />\n </ng-template>\n <ng-template\n let-searchTerm=\"searchTerm\"\n ng-header-tmp>\n <ap-dropdown-search-form\n [searchPlaceholder]=\"searchPlaceholder\"\n [select]=\"select\"\n />\n </ng-template>\n </ng-select>\n <ap-input-group class=\"phone-number-input-group\">\n <ap-input-prefix>{{formGroup.controls.phoneNumberCode.value}}</ap-input-prefix>\n <input\n apInput\n class=\"phone-field\"\n data-test=\"subscription-billing-infos-phoneNumberInput\"\n type=\"text\"\n data-recurly=\"phone\"\n formControlName=\"phoneNumber\"\n [placeholder]=\"placeholder\"\n [attr.name]=\"name\"\n (beforeinput)=\"filterChars($event)\"\n (blur)=\"onTouched()\"\n />\n </ap-input-group>\n</ng-container>\n", styles: ["ng-dropdown-panel.ap-phone-number-code-select{width:auto!important;min-width:310px!important;max-width:310px}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line .option{display:flex;flex-direction:row;align-items:center}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line ap-avatar{border:0;max-height:16px;min-height:16px;height:initial;box-shadow:unset;overflow:hidden;background:none}ap-phone-number-input{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--ref-spacing-xxs)}ap-phone-number-input .ap-phone-number-code-select{flex:0 0 70px;width:70px}ap-phone-number-input .ap-phone-number-code-select .flag{display:flex;flex-direction:row;align-items:center;justify-content:center;overflow:hidden}ap-phone-number-input .ap-phone-number-code-select .flag img{max-height:16px;max-width:24px;object-fit:cover;border-radius:4px;object-position:center center}ap-phone-number-input .ap-phone-number-code-select .ng-input{padding:2px var(--ref-spacing-sm)}ap-phone-number-input .ap-phone-number-code-select .ng-input input{display:none}ap-phone-number-input .phone-number-input-group{flex:1 0 auto}\n"] }]
166
+ ], encapsulation: ViewEncapsulation.None, template: "<ng-container [formGroup]=\"formGroup\">\n <ng-select\n #select\n apSelectSingle\n data-test=\"subscription-billing-infos-phoneNumberCode\"\n class=\"ap-phone-number-code-select ap-select\"\n bindLabel=\"countryName\"\n bindValue=\"countryCode\"\n notFoundText=\"\"\n formControlName=\"countryCode\"\n appendTo=\"body\"\n [clearable]=\"false\"\n [items]=\"codeNumberInfos\"\n [searchFn]=\"phoneNumberCodeSearchFn\"\n (blur)=\"onTouched()\">\n <ng-template\n let-item=\"item\"\n ng-label-tmp>\n @if (item && item.countryCode) {\n <div class=\"flag\">\n @if (!!flagsBucketUrl) {\n <img\n width=\"24\"\n height=\"16\"\n alt=\"flag\"\n [ngSrc]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\" />\n } @else {\n <span>{{ item.countryCode }}</span>\n }\n </div>\n }\n </ng-template>\n <ng-template\n let-item=\"item\"\n let-item$=\"item$\"\n ng-option-tmp>\n <ap-dropdown-item-single-one-line\n [text]=\"item.phoneNumberCode + ' ' + item.countryName\"\n [avatarUrl]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\"\n [selected]=\"item$.selected\"\n [roundedAvatar]=\"false\"\n />\n </ng-template>\n <ng-template\n let-searchTerm=\"searchTerm\"\n ng-header-tmp>\n <ap-dropdown-search-form\n [searchPlaceholder]=\"searchPlaceholder\"\n [select]=\"select\"\n />\n </ng-template>\n </ng-select>\n <ap-input-group class=\"phone-number-input-group\">\n @if (formGroup.controls.countryCode.value && countryCodeMappedPhoneNumberInfos) {\n <ap-input-prefix>{{countryCodeMappedPhoneNumberInfos[formGroup.controls.countryCode.value]?.phoneNumberCode}}</ap-input-prefix>\n }\n <input\n apInput\n class=\"phone-field\"\n data-test=\"subscription-billing-infos-phoneNumberInput\"\n type=\"text\"\n data-recurly=\"phone\"\n formControlName=\"phoneNumber\"\n [placeholder]=\"placeholder\"\n [attr.name]=\"name\"\n (beforeinput)=\"filterChars($event)\"\n (blur)=\"onTouched()\"\n />\n </ap-input-group>\n</ng-container>\n", styles: ["ng-dropdown-panel.ap-phone-number-code-select{width:auto!important;min-width:310px!important;max-width:310px}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line .option{display:flex;flex-direction:row;align-items:center}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line ap-avatar{border:0;max-height:16px;min-height:16px;height:initial;box-shadow:unset;overflow:hidden;background:none}ap-phone-number-input{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--ref-spacing-xxs)}ap-phone-number-input .ap-phone-number-code-select{flex:0 0 70px;width:70px}ap-phone-number-input .ap-phone-number-code-select .flag{display:flex;flex-direction:row;align-items:center;justify-content:center;overflow:hidden}ap-phone-number-input .ap-phone-number-code-select .flag img{max-height:16px;max-width:24px;object-fit:cover;border-radius:4px;object-position:center center}ap-phone-number-input .ap-phone-number-code-select .ng-input{padding:2px var(--ref-spacing-sm)}ap-phone-number-input .ap-phone-number-code-select .ng-input input{display:none}ap-phone-number-input .phone-number-input-group{flex:1 0 auto}\n"] }]
153
167
  }], ctorParameters: () => [{ type: i1.SymbolRegistry }], propDecorators: { errorsDisplayForced: [{
154
168
  type: Input
155
169
  }], flagsBucketUrl: [{
@@ -158,8 +172,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
158
172
  }], phoneNumberInfos: [{
159
173
  type: Input,
160
174
  args: [{ required: true }]
161
- }], initialCountryCode: [{
162
- type: Input
163
175
  }], name: [{
164
176
  type: Input,
165
177
  args: [{ required: true }]
@@ -173,9 +185,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
173
185
  type: Input
174
186
  }], phoneNumberCode: [{
175
187
  type: Input
188
+ }], initialCountryCode: [{
189
+ type: Input
176
190
  }], changePhoneNumber: [{
177
191
  type: Output
178
192
  }], changePhoneNumberCode: [{
179
193
  type: Output
180
194
  }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9waG9uZS1udW1iZXItaW5wdXQvc3JjL3Bob25lLW51bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcGhvbmUtbnVtYmVyLWlucHV0L3NyYy9waG9uZS1udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUVILFdBQVcsRUFDWCxTQUFTLEVBQ1QsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsbUJBQW1CLEVBR25CLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFDLG1CQUFtQixFQUFFLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEcsT0FBTyxFQUFDLGtDQUFrQyxFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDdEksT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQWtCLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBYWhFLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBa0NwQyxNQUFNLE9BQU8seUJBQXlCO0lBQ2pCLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFakQsSUFBYSxtQkFBbUIsQ0FBQyxtQkFBNEI7UUFDekQsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDNUMsQ0FBQztJQUNMLENBQUM7SUFDMEIsY0FBYyxDQUFVO0lBQ25ELElBQStCLGdCQUFnQixDQUFDLGdCQUFtQztRQUMvRSxJQUFJLENBQUMsZUFBZSxHQUFHLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5Qiw2REFBNkQ7WUFDN0QsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBQ3pELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFhLGtCQUFrQixDQUFDLGtCQUEwQjtRQUN0RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxrQkFBa0IsQ0FBQyxFQUFFLGVBQWUsQ0FBQztRQUN6SCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsR0FBc0IsRUFBRSxDQUFDO0lBQ2IsSUFBSSxDQUFVO0lBQ2QsV0FBVyxDQUFVO0lBQ3JCLGlCQUFpQixDQUFVO0lBQ3RELElBQWEsV0FBVyxDQUFDLFdBQW1CO1FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELElBQWEsZUFBZSxDQUFDLGVBQXVCO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVTLGlCQUFpQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ3JFLHFCQUFxQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRW5GLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQztRQUN0QixlQUFlLEVBQUUsSUFBSSxXQUFXLENBQVMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLFdBQVcsRUFBRSxJQUFJLFdBQVcsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDbEUsQ0FBQyxDQUFDO0lBRUksU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUMxQixRQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRWhDLFlBQVksY0FBOEI7UUFDdEMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFFBQVE7UUFDSixzRUFBc0U7UUFDdEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3RGLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNqRSxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5RixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQW1CO1FBQzFCLHdGQUF3RjtRQUN4RixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLGVBQWUsSUFBSSxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFZLEVBQUUsSUFBcUI7UUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLEtBQWlCO1FBQ3pCLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUNuQyxPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFrQixLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzVDLElBQUksU0FBUyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO3dHQTVHUSx5QkFBeUI7NEZBQXpCLHlCQUF5QixxZUFkdkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNkO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7Z0JBQ3hELEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSiwwQkNoRUwsdXVGQW9FQSw0dENEM0JRLFlBQVksOEJBQ1osV0FBVyxrakJBQ1gsY0FBYyxvdUNBQ2QsbUJBQW1CLHVGQUVuQixjQUFjLHNEQUNkLG9CQUFvQiw0REFDcEIsa0NBQWtDLHlTQUNsQyxtQkFBbUIsZ1ZBQ25CLGdCQUFnQixnUEFDaEIsMkJBQTJCOzs0RkFnQnRCLHlCQUF5QjtrQkFoQ3JDLFNBQVM7K0JBQ0ksdUJBQXVCLGNBR3JCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGtDQUFrQzt3QkFDbEMsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLDJCQUEyQjtxQkFDOUIsYUFDVTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO21GQUt4QixtQkFBbUI7c0JBQS9CLEtBQUs7Z0JBT3FCLGNBQWM7c0JBQXhDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNNLGdCQUFnQjtzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBU1osa0JBQWtCO3NCQUE5QixLQUFLO2dCQU9xQixJQUFJO3NCQUE5QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxXQUFXO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxpQkFBaUI7c0JBQTNDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNaLFdBQVc7c0JBQXZCLEtBQUs7Z0JBR08sZUFBZTtzQkFBM0IsS0FBSztnQkFJSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXG5pbXBvcnQge0NvbXBvbmVudCwgRGVzdHJveVJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTkdfVkFMSURBVE9SUyxcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlLCBOZ09wdGltaXplZEltYWdlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ1NlbGVjdE1vZHVsZX0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHtJbnB1dEdyb3VwQ29tcG9uZW50LCBJbnB1dFByZWZpeENvbXBvbmVudH0gZnJvbSBcIkBhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvaW5wdXQtZ3JvdXBcIjtcbmltcG9ydCB7RHJvcGRvd25JdGVtU2luZ2xlT25lTGluZUNvbXBvbmVudCwgRHJvcGRvd25TZWFyY2hGb3JtQ29tcG9uZW50LCBTZWxlY3RCYXNlRGlyZWN0aXZlfSBmcm9tIFwiQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9zZWxlY3RcIjtcbmltcG9ydCB7SW5wdXREaXJlY3RpdmV9IGZyb20gXCJAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2lucHV0XCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBhcENoZWNrLCBTeW1ib2xSZWdpc3RyeSB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGhvbmVOdW1iZXJJbmZvIHtcbiAgICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICAgIGNvdW50cnlOYW1lOiBzdHJpbmc7XG4gICAgcGhvbmVOdW1iZXJDb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGhvbmUge1xuICAgIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gICAgcGhvbmVOdW1iZXJDb2RlOiBzdHJpbmc7XG59XG5cbmNvbnN0IE5VTUJFUl9PTkxZX1BBVFRFUk4gPSAvWzAtOV0vO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLXBob25lLW51bWJlci1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICdwaG9uZS1udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydwaG9uZS1udW1iZXItaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTmdTZWxlY3RNb2R1bGUsXG4gICAgICAgIElucHV0R3JvdXBDb21wb25lbnQsXG4gICAgICAgIFNlbGVjdEJhc2VEaXJlY3RpdmUsXG4gICAgICAgIElucHV0RGlyZWN0aXZlLFxuICAgICAgICBJbnB1dFByZWZpeENvbXBvbmVudCxcbiAgICAgICAgRHJvcGRvd25JdGVtU2luZ2xlT25lTGluZUNvbXBvbmVudCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTmdPcHRpbWl6ZWRJbWFnZSxcbiAgICAgICAgRHJvcGRvd25TZWFyY2hGb3JtQ29tcG9uZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQaG9uZU51bWJlcklucHV0Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGhvbmVOdW1iZXJJbnB1dENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFBob25lTnVtYmVySW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIEBJbnB1dCgpIHNldCBlcnJvcnNEaXNwbGF5Rm9yY2VkKGVycm9yc0Rpc3BsYXlGb3JjZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGVycm9yc0Rpc3BsYXlGb3JjZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2wpID0+IGNvbnRyb2wubWFya0FzRGlydHkoKSk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZmxhZ3NCdWNrZXRVcmwhOiBzdHJpbmc7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgc2V0IHBob25lTnVtYmVySW5mb3MocGhvbmVOdW1iZXJJbmZvczogUGhvbmVOdW1iZXJJbmZvW10pIHtcbiAgICAgICAgdGhpcy5jb2RlTnVtYmVySW5mb3MgPSBwaG9uZU51bWJlckluZm9zID8/IFtdO1xuICAgICAgICBpZiAocGhvbmVOdW1iZXJJbmZvcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyBEUyBCZWhhdmlvcjogc2VsZWN0IGJ5IGRlZmF1bHQgdGhlIGZpcnN0IHBob25lIG51bWJlciBjb2RlXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBwaG9uZU51bWJlckluZm9zWzBdLnBob25lTnVtYmVyQ29kZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnBob25lTnVtYmVyQ29kZS5zZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5waG9uZU51bWJlckNvZGUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQElucHV0KCkgc2V0IGluaXRpYWxDb3VudHJ5Q29kZShpbml0aWFsQ291bnRyeUNvZGU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBmaXJzdFZhbHVlID0gdGhpcy5jb2RlTnVtYmVySW5mb3MuZmluZCgoY29kZUluZm8pID0+IGNvZGVJbmZvLmNvdW50cnlDb2RlID09PSBpbml0aWFsQ291bnRyeUNvZGUpPy5waG9uZU51bWJlckNvZGU7XG4gICAgICAgIGlmIChmaXJzdFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgcGhvbmVOdW1iZXJDb2RlOiBmaXJzdFZhbHVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvZGVOdW1iZXJJbmZvczogUGhvbmVOdW1iZXJJbmZvW10gPSBbXTtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBuYW1lITogc3RyaW5nO1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHBsYWNlaG9sZGVyITogc3RyaW5nO1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNlYXJjaFBsYWNlaG9sZGVyITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNldCBwaG9uZU51bWJlcihwaG9uZU51bWJlcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnBob25lTnVtYmVyLnNldFZhbHVlKHBob25lTnVtYmVyKTtcbiAgICB9XG4gICAgQElucHV0KCkgc2V0IHBob25lTnVtYmVyQ29kZShwaG9uZU51bWJlckNvZGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5waG9uZU51bWJlckNvZGUuc2V0VmFsdWUocGhvbmVOdW1iZXJDb2RlKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgY2hhbmdlUGhvbmVOdW1iZXI6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGNoYW5nZVBob25lTnVtYmVyQ29kZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBwaG9uZU51bWJlckNvZGU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgICBwaG9uZU51bWJlcjogbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgfSk7XG5cbiAgICBwdWJsaWMgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcbiAgICBwdWJsaWMgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5KSB7XG4gICAgICAgIHN5bWJvbFJlZ2lzdHJ5LnJlZ2lzdGVyU3ltYm9scyhbYXBDaGVja10pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gZm9ybSBjaGFuZ2VzIHRvIHByb3BhZ2F0ZSB0aGVtIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlLnBob25lTnVtYmVyICE9PSB0aGlzLnBob25lTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VQaG9uZU51bWJlci5lbWl0KHZhbHVlLnBob25lTnVtYmVyID8/ICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWx1ZS5waG9uZU51bWJlckNvZGUgIT09IHRoaXMucGhvbmVOdW1iZXJDb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VQaG9uZU51bWJlckNvZGUuZW1pdCh2YWx1ZS5waG9uZU51bWJlckNvZGUgPz8gJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC52YWxpZCA/IG51bGwgOiB7IHBob25lTnVtYmVyOiAnaW52YWxpZCcsIC4uLnRoaXMuZm9ybUdyb3VwLmVycm9ycyB9O1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUocGhvbmU6IFBob25lIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICAvLyBBdm9pZCBzZXR0aW5nIGFuIGVtcHR5IHZhbHVlIGZvciB0aGUgcGhvbmUgbnVtYmVyIGNvZGUsIGl0IHNob3VsZCBhbHdheXMgaGF2ZSBhIHZhbHVlXG4gICAgICAgIGlmIChwaG9uZSA9PT0gbnVsbCB8fCAhcGhvbmUucGhvbmVOdW1iZXJDb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtwaG9uZU51bWJlcjogcGhvbmU/LnBob25lTnVtYmVyQ29kZSA/PyAnJ30pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShwaG9uZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwaG9uZU51bWJlckNvZGVTZWFyY2hGbih0ZXJtOiBzdHJpbmcsIGl0ZW06IFBob25lTnVtYmVySW5mbyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB0ZXJtQ2FzZWQgPSB0ZXJtLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBpdGVtLmNvdW50cnlOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5kZXhPZih0ZXJtQ2FzZWQpID4gLTEgfHwgaXRlbS5jb3VudHJ5Q29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluZGV4T2YodGVybUNhc2VkKSA+IC0xO1xuICAgIH1cblxuICAgIG1hcmtBc1RvdWNoZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHBob25lIG51bWJlciBpbnB1dCB0byBvbmx5IGFsbG93IG51bWJlcnNcbiAgICAgKi9cbiAgICBmaWx0ZXJDaGFycyhldmVudDogSW5wdXRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQuaW5wdXRUeXBlICE9PSAnaW5zZXJ0VGV4dCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnB1dENoYXI6IHN0cmluZyB8IG51bGwgPSBldmVudC5kYXRhO1xuICAgICAgICBpZiAoaW5wdXRDaGFyICYmICFOVU1CRVJfT05MWV9QQVRURVJOLnRlc3QoaW5wdXRDaGFyKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICA8bmctc2VsZWN0XG4gICAgICAgICAgICAjc2VsZWN0XG4gICAgICAgICAgICBhcFNlbGVjdFNpbmdsZVxuICAgICAgICAgICAgZGF0YS10ZXN0PVwic3Vic2NyaXB0aW9uLWJpbGxpbmctaW5mb3MtcGhvbmVOdW1iZXJDb2RlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYXAtcGhvbmUtbnVtYmVyLWNvZGUtc2VsZWN0IGFwLXNlbGVjdFwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJjb3VudHJ5TmFtZVwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJwaG9uZU51bWJlckNvZGVcIlxuICAgICAgICAgICAgbm90Rm91bmRUZXh0PVwiXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBob25lTnVtYmVyQ29kZVwiXG4gICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiY29kZU51bWJlckluZm9zXCJcbiAgICAgICAgICAgIFtzZWFyY2hGbl09XCJwaG9uZU51bWJlckNvZGVTZWFyY2hGblwiXG4gICAgICAgICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgbGV0LWl0ZW09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICBuZy1sYWJlbC10bXA+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtICYmIGl0ZW0uY291bnRyeUNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsYWdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoISFmbGFnc0J1Y2tldFVybCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiZmxhZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1NyY109XCJmbGFnc0J1Y2tldFVybCArICcvJyArIGl0ZW0uY291bnRyeUNvZGUudG9VcHBlckNhc2UoKSArICcucG5nJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBpdGVtLmNvdW50cnlDb2RlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgbGV0LWl0ZW09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICBsZXQtaXRlbSQ9XCJpdGVtJFwiXG4gICAgICAgICAgICAgICAgbmctb3B0aW9uLXRtcD5cbiAgICAgICAgICAgICAgICA8YXAtZHJvcGRvd24taXRlbS1zaW5nbGUtb25lLWxpbmVcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiaXRlbS5waG9uZU51bWJlckNvZGUgKyAnICcgKyBpdGVtLmNvdW50cnlOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2F2YXRhclVybF09XCJmbGFnc0J1Y2tldFVybCArICcvJyArIGl0ZW0uY291bnRyeUNvZGUudG9VcHBlckNhc2UoKSArICcucG5nJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpdGVtJC5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb3VuZGVkQXZhdGFyXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgIGxldC1zZWFyY2hUZXJtPVwic2VhcmNoVGVybVwiXG4gICAgICAgICAgICAgICAgbmctaGVhZGVyLXRtcD5cbiAgICAgICAgICAgICAgICA8YXAtZHJvcGRvd24tc2VhcmNoLWZvcm1cbiAgICAgICAgICAgICAgICAgIFtzZWFyY2hQbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICBbc2VsZWN0XT1cInNlbGVjdFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXNlbGVjdD5cbiAgICA8YXAtaW5wdXQtZ3JvdXAgY2xhc3M9XCJwaG9uZS1udW1iZXItaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGFwLWlucHV0LXByZWZpeD57e2Zvcm1Hcm91cC5jb250cm9scy5waG9uZU51bWJlckNvZGUudmFsdWV9fTwvYXAtaW5wdXQtcHJlZml4PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBhcElucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwaG9uZS1maWVsZFwiXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwic3Vic2NyaXB0aW9uLWJpbGxpbmctaW5mb3MtcGhvbmVOdW1iZXJJbnB1dFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGRhdGEtcmVjdXJseT1cInBob25lXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZU51bWJlclwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIChiZWZvcmVpbnB1dCk9XCJmaWx0ZXJDaGFycygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXG4gICAgICAgIC8+XG4gICAgPC9hcC1pbnB1dC1ncm91cD5cbjwvbmctY29udGFpbmVyPlxuIl19
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9waG9uZS1udW1iZXItaW5wdXQvc3JjL3Bob25lLW51bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcGhvbmUtbnVtYmVyLWlucHV0L3NyYy9waG9uZS1udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUVILFdBQVcsRUFDWCxTQUFTLEVBQ1QsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsbUJBQW1CLEVBR25CLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFDLG1CQUFtQixFQUFFLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEcsT0FBTyxFQUFDLGtDQUFrQyxFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDdEksT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQWtCLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBYWhFLE1BQU0sbUJBQW1CLEdBQUcs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LE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTttRkFLeEIsbUJBQW1CO3NCQUEvQixLQUFLO2dCQU9xQixjQUFjO3NCQUF4QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDTSxnQkFBZ0I7c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQVVFLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFdBQVc7c0JBQXJDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLGlCQUFpQjtzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ1osV0FBVztzQkFBdkIsS0FBSztnQkFHTyxlQUFlO3NCQUEzQixLQUFLO2dCQUdPLGtCQUFrQjtzQkFBOUIsS0FBSztnQkFPSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXG5pbXBvcnQge0NvbXBvbmVudCwgRGVzdHJveVJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTkdfVkFMSURBVE9SUyxcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlLCBOZ09wdGltaXplZEltYWdlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ1NlbGVjdE1vZHVsZX0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHtJbnB1dEdyb3VwQ29tcG9uZW50LCBJbnB1dFByZWZpeENvbXBvbmVudH0gZnJvbSBcIkBhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvaW5wdXQtZ3JvdXBcIjtcbmltcG9ydCB7RHJvcGRvd25JdGVtU2luZ2xlT25lTGluZUNvbXBvbmVudCwgRHJvcGRvd25TZWFyY2hGb3JtQ29tcG9uZW50LCBTZWxlY3RCYXNlRGlyZWN0aXZlfSBmcm9tIFwiQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9zZWxlY3RcIjtcbmltcG9ydCB7SW5wdXREaXJlY3RpdmV9IGZyb20gXCJAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2lucHV0XCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBhcENoZWNrLCBTeW1ib2xSZWdpc3RyeSB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGhvbmVOdW1iZXJJbmZvIHtcbiAgICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICAgIGNvdW50cnlOYW1lOiBzdHJpbmc7XG4gICAgcGhvbmVOdW1iZXJDb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGhvbmUge1xuICAgIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gICAgcGhvbmVOdW1iZXJDb2RlOiBzdHJpbmc7XG59XG5cbmNvbnN0IE5VTUJFUl9PTkxZX1BBVFRFUk4gPSAvWzAtOV0vO1xuXG5jb25zdCBERUZBVUxUX0NPVU5UUllfQ09ERSA9ICdVUyc7XG5jb25zdCBERUZBVUxUX1BIT05FX05VTUJFUl9DT0RFID0gJysxJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1waG9uZS1udW1iZXItaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAncGhvbmUtbnVtYmVyLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsncGhvbmUtbnVtYmVyLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nU2VsZWN0TW9kdWxlLFxuICAgICAgICBJbnB1dEdyb3VwQ29tcG9uZW50LFxuICAgICAgICBTZWxlY3RCYXNlRGlyZWN0aXZlLFxuICAgICAgICBJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgSW5wdXRQcmVmaXhDb21wb25lbnQsXG4gICAgICAgIERyb3Bkb3duSXRlbVNpbmdsZU9uZUxpbmVDb21wb25lbnQsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgICAgIERyb3Bkb3duU2VhcmNoRm9ybUNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGhvbmVOdW1iZXJJbnB1dENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBob25lTnVtYmVySW5wdXRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQaG9uZU51bWJlcklucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBASW5wdXQoKSBzZXQgZXJyb3JzRGlzcGxheUZvcmNlZChlcnJvcnNEaXNwbGF5Rm9yY2VkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChlcnJvcnNEaXNwbGF5Rm9yY2VkKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICBPYmplY3QudmFsdWVzKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sKSA9PiBjb250cm9sLm1hcmtBc0RpcnR5KCkpO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGZsYWdzQnVja2V0VXJsITogc3RyaW5nO1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNldCBwaG9uZU51bWJlckluZm9zKHBob25lTnVtYmVySW5mb3M6IFBob25lTnVtYmVySW5mb1tdKSB7XG4gICAgICAgIHRoaXMuY29kZU51bWJlckluZm9zID0gcGhvbmVOdW1iZXJJbmZvcyA/PyBbXTtcbiAgICAgICAgdGhpcy5jb3VudHJ5Q29kZU1hcHBlZFBob25lTnVtYmVySW5mb3MgPSBwaG9uZU51bWJlckluZm9zLnJlZHVjZSgoYWNjLCBwaG9uZU51bWJlckluZm8pID0+IHtcbiAgICAgICAgICAgIGFjY1twaG9uZU51bWJlckluZm8uY291bnRyeUNvZGUgYXMgc3RyaW5nXSA9IHBob25lTnVtYmVySW5mbztcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIFBob25lTnVtYmVySW5mbz4pO1xuICAgIH1cbiAgICBjb2RlTnVtYmVySW5mb3M6IFBob25lTnVtYmVySW5mb1tdID0gW107XG4gICAgY291bnRyeUNvZGVNYXBwZWRQaG9uZU51bWJlckluZm9zOiBSZWNvcmQ8c3RyaW5nLCBQaG9uZU51bWJlckluZm8+ID0ge307XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBuYW1lITogc3RyaW5nO1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHBsYWNlaG9sZGVyITogc3RyaW5nO1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNlYXJjaFBsYWNlaG9sZGVyITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNldCBwaG9uZU51bWJlcihwaG9uZU51bWJlcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnBob25lTnVtYmVyLnNldFZhbHVlKHBob25lTnVtYmVyKTtcbiAgICB9XG4gICAgQElucHV0KCkgc2V0IHBob25lTnVtYmVyQ29kZShwaG9uZU51bWJlckNvZGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5jb3VudHJ5Q29kZS5zZXRWYWx1ZShwaG9uZU51bWJlckNvZGUpO1xuICAgIH1cbiAgICBASW5wdXQoKSBzZXQgaW5pdGlhbENvdW50cnlDb2RlKGluaXRpYWxDb3VudHJ5Q29kZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0VmFsdWUgPSB0aGlzLmZpbmRQaG9uZU51bWJlckluZm9CeUNvdW50cnlDb2RlKGluaXRpYWxDb3VudHJ5Q29kZSk/LmNvdW50cnlDb2RlO1xuICAgICAgICBpZiAoZmlyc3RWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh7IGNvdW50cnlDb2RlOiBmaXJzdFZhbHVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGNoYW5nZVBob25lTnVtYmVyOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBjaGFuZ2VQaG9uZU51bWJlckNvZGU6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBmb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgY291bnRyeUNvZGU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KERFRkFVTFRfQ09VTlRSWV9DT0RFLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgICBwaG9uZU51bWJlcjogbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgfSk7XG5cbiAgICBwdWJsaWMgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcbiAgICBwdWJsaWMgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5KSB7XG4gICAgICAgIHN5bWJvbFJlZ2lzdHJ5LnJlZ2lzdGVyU3ltYm9scyhbYXBDaGVja10pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gZm9ybSBjaGFuZ2VzIHRvIHByb3BhZ2F0ZSB0aGVtIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBsZXQgcGhvbmVOdW1iZXJDb2RlID0gREVGQVVMVF9QSE9ORV9OVU1CRVJfQ09ERTtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5jb3VudHJ5Q29kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBob25lTnVtYmVySW5mbyA9IHRoaXMuZmluZFBob25lTnVtYmVySW5mb0J5Q291bnRyeUNvZGUodmFsdWUuY291bnRyeUNvZGUpO1xuICAgICAgICAgICAgICAgIGlmIChwaG9uZU51bWJlckluZm8pIHtcbiAgICAgICAgICAgICAgICAgICAgcGhvbmVOdW1iZXJDb2RlID0gcGhvbmVOdW1iZXJJbmZvLnBob25lTnVtYmVyQ29kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSAmJiBwaG9uZU51bWJlckNvZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHtcbiAgICAgICAgICAgICAgICAgICAgcGhvbmVOdW1iZXI6IHZhbHVlLnBob25lTnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICBwaG9uZU51bWJlckNvZGUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUucGhvbmVOdW1iZXIgIT09IHRoaXMucGhvbmVOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVBob25lTnVtYmVyLmVtaXQodmFsdWUucGhvbmVOdW1iZXIgPz8gJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBob25lTnVtYmVyQ29kZSAhPT0gdGhpcy5waG9uZU51bWJlckNvZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVBob25lTnVtYmVyQ29kZS5lbWl0KHBob25lTnVtYmVyQ29kZSA/PyAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLnZhbGlkID8gbnVsbCA6IHsgcGhvbmVOdW1iZXI6ICdpbnZhbGlkJywgLi4udGhpcy5mb3JtR3JvdXAuZXJyb3JzIH07XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShwaG9uZTogUGhvbmUgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIC8vIEF2b2lkIHNldHRpbmcgYW4gZW1wdHkgdmFsdWUgZm9yIHRoZSBwaG9uZSBudW1iZXIgY29kZSwgaXQgc2hvdWxkIGFsd2F5cyBoYXZlIGEgdmFsdWVcbiAgICAgICAgaWYgKHBob25lID09PSBudWxsIHx8ICFwaG9uZS5waG9uZU51bWJlckNvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoe3Bob25lTnVtYmVyOiBwaG9uZT8ucGhvbmVOdW1iZXJDb2RlID8/ICcnfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHBob25lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHBob25lTnVtYmVyQ29kZVNlYXJjaEZuKHRlcm06IHN0cmluZywgaXRlbTogUGhvbmVOdW1iZXJJbmZvKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHRlcm1DYXNlZCA9IHRlcm0udG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGl0ZW0uY291bnRyeU5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmRleE9mKHRlcm1DYXNlZCkgPiAtMSB8fCBpdGVtLmNvdW50cnlDb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5kZXhPZih0ZXJtQ2FzZWQpID4gLTE7XG4gICAgfVxuXG4gICAgbWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbHRlciB0aGUgcGhvbmUgbnVtYmVyIGlucHV0IHRvIG9ubHkgYWxsb3cgbnVtYmVyc1xuICAgICAqL1xuICAgIGZpbHRlckNoYXJzKGV2ZW50OiBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5pbnB1dFR5cGUgIT09ICdpbnNlcnRUZXh0Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlucHV0Q2hhcjogc3RyaW5nIHwgbnVsbCA9IGV2ZW50LmRhdGE7XG4gICAgICAgIGlmIChpbnB1dENoYXIgJiYgIU5VTUJFUl9PTkxZX1BBVFRFUk4udGVzdChpbnB1dENoYXIpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kUGhvbmVOdW1iZXJJbmZvQnlDb3VudHJ5Q29kZShjb3VudHJ5Q29kZTogc3RyaW5nKTogUGhvbmVOdW1iZXJJbmZvIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZU51bWJlckluZm9zLmZpbmQoKGNvZGVJbmZvKSA9PiBjb2RlSW5mby5jb3VudHJ5Q29kZSA9PT0gY291bnRyeUNvZGUpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICA8bmctc2VsZWN0XG4gICAgICAgICAgICAjc2VsZWN0XG4gICAgICAgICAgICBhcFNlbGVjdFNpbmdsZVxuICAgICAgICAgICAgZGF0YS10ZXN0PVwic3Vic2NyaXB0aW9uLWJpbGxpbmctaW5mb3MtcGhvbmVOdW1iZXJDb2RlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYXAtcGhvbmUtbnVtYmVyLWNvZGUtc2VsZWN0IGFwLXNlbGVjdFwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJjb3VudHJ5TmFtZVwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJjb3VudHJ5Q29kZVwiXG4gICAgICAgICAgICBub3RGb3VuZFRleHQ9XCJcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY291bnRyeUNvZGVcIlxuICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgIFtjbGVhcmFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cImNvZGVOdW1iZXJJbmZvc1wiXG4gICAgICAgICAgICBbc2VhcmNoRm5dPVwicGhvbmVOdW1iZXJDb2RlU2VhcmNoRm5cIlxuICAgICAgICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgIGxldC1pdGVtPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgbmctbGFiZWwtdG1wPlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbSAmJiBpdGVtLmNvdW50cnlDb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGFnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCEhZmxhZ3NCdWNrZXRVcmwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImZsYWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTcmNdPVwiZmxhZ3NCdWNrZXRVcmwgKyAnLycgKyBpdGVtLmNvdW50cnlDb2RlLnRvVXBwZXJDYXNlKCkgKyAnLnBuZydcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5jb3VudHJ5Q29kZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgIGxldC1pdGVtPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgbGV0LWl0ZW0kPVwiaXRlbSRcIlxuICAgICAgICAgICAgICAgIG5nLW9wdGlvbi10bXA+XG4gICAgICAgICAgICAgICAgPGFwLWRyb3Bkb3duLWl0ZW0tc2luZ2xlLW9uZS1saW5lXG4gICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cIml0ZW0ucGhvbmVOdW1iZXJDb2RlICsgJyAnICsgaXRlbS5jb3VudHJ5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdmF0YXJVcmxdPVwiZmxhZ3NCdWNrZXRVcmwgKyAnLycgKyBpdGVtLmNvdW50cnlDb2RlLnRvVXBwZXJDYXNlKCkgKyAnLnBuZydcIlxuICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiaXRlbSQuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICBbcm91bmRlZEF2YXRhcl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICBsZXQtc2VhcmNoVGVybT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgICAgIG5nLWhlYWRlci10bXA+XG4gICAgICAgICAgICAgICAgPGFwLWRyb3Bkb3duLXNlYXJjaC1mb3JtXG4gICAgICAgICAgICAgICAgICBbc2VhcmNoUGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgW3NlbGVjdF09XCJzZWxlY3RcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1zZWxlY3Q+XG4gICAgPGFwLWlucHV0LWdyb3VwIGNsYXNzPVwicGhvbmUtbnVtYmVyLWlucHV0LWdyb3VwXCI+XG4gICAgICAgIEBpZiAoZm9ybUdyb3VwLmNvbnRyb2xzLmNvdW50cnlDb2RlLnZhbHVlICYmIGNvdW50cnlDb2RlTWFwcGVkUGhvbmVOdW1iZXJJbmZvcykge1xuICAgICAgICAgICAgPGFwLWlucHV0LXByZWZpeD57e2NvdW50cnlDb2RlTWFwcGVkUGhvbmVOdW1iZXJJbmZvc1tmb3JtR3JvdXAuY29udHJvbHMuY291bnRyeUNvZGUudmFsdWVdPy5waG9uZU51bWJlckNvZGV9fTwvYXAtaW5wdXQtcHJlZml4PlxuICAgICAgICB9XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGFwSW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBob25lLWZpZWxkXCJcbiAgICAgICAgICAgICAgICBkYXRhLXRlc3Q9XCJzdWJzY3JpcHRpb24tYmlsbGluZy1pbmZvcy1waG9uZU51bWJlcklucHV0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgZGF0YS1yZWN1cmx5PVwicGhvbmVcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBob25lTnVtYmVyXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgKGJlZm9yZWlucHV0KT1cImZpbHRlckNoYXJzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cIm9uVG91Y2hlZCgpXCJcbiAgICAgICAgLz5cbiAgICA8L2FwLWlucHV0LWdyb3VwPlxuPC9uZy1jb250YWluZXI+XG4iXX0=