@dsivd/prestations-ng 15.2.2 → 15.2.3-beta11

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 (198) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dsivd-prestations-ng-v15.2.3-beta11.tgz +0 -0
  3. package/esm2020/abstract-page-component.mjs +4 -4
  4. package/esm2020/directives/currency-formatter.directive.mjs +4 -4
  5. package/esm2020/directives/formatter.module.mjs +5 -5
  6. package/esm2020/directives/iban-formatter.directive.mjs +4 -4
  7. package/esm2020/directives/ide-formatter.directive.mjs +4 -4
  8. package/esm2020/directives/ndc-formatter.directive.mjs +4 -4
  9. package/esm2020/foehn-address/foehn-address.module.mjs +5 -5
  10. package/esm2020/foehn-address/foehn-display-address.component.mjs +4 -4
  11. package/esm2020/foehn-address/foehn-input-address.component.mjs +4 -4
  12. package/esm2020/foehn-address/foehn-input-foreign-locality.component.mjs +4 -4
  13. package/esm2020/foehn-address/foehn-input-foreign-street.component.mjs +4 -4
  14. package/esm2020/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.mjs +4 -4
  15. package/esm2020/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.mjs +4 -4
  16. package/esm2020/foehn-agenda/foehn-agenda.component.mjs +4 -4
  17. package/esm2020/foehn-agenda/foehn-agenda.module.mjs +5 -5
  18. package/esm2020/foehn-autocomplete/foehn-autocomplete.component.mjs +4 -4
  19. package/esm2020/foehn-autocomplete/foehn-autocomplete.module.mjs +5 -5
  20. package/esm2020/foehn-boolean/foehn-boolean-checkbox.component.mjs +4 -4
  21. package/esm2020/foehn-boolean/foehn-boolean-radio.component.mjs +4 -4
  22. package/esm2020/foehn-boolean/foehn-boolean.module.mjs +5 -5
  23. package/esm2020/foehn-breadcrumb/breadcrumb-event.service.mjs +4 -4
  24. package/esm2020/foehn-breadcrumb/foehn-breadcrumb.component.mjs +4 -4
  25. package/esm2020/foehn-breadcrumb/foehn-breadcrumb.module.mjs +5 -5
  26. package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +4 -4
  27. package/esm2020/foehn-checkables/foehn-checkables.module.mjs +5 -5
  28. package/esm2020/foehn-checkables/foehn-checkbox.component.mjs +4 -4
  29. package/esm2020/foehn-checkables/foehn-radio.component.mjs +4 -4
  30. package/esm2020/foehn-checkables/foehn-select.component.mjs +4 -4
  31. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.component.mjs +4 -4
  32. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.module.mjs +5 -5
  33. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.service.mjs +4 -4
  34. package/esm2020/foehn-date-picker/foehn-date-picker.component.mjs +4 -4
  35. package/esm2020/foehn-date-picker/foehn-date-picker.module.mjs +5 -5
  36. package/esm2020/foehn-date-picker-button/foehn-date-picker-button.component.mjs +4 -4
  37. package/esm2020/foehn-date-picker-button/foehn-date-picker-button.module.mjs +5 -5
  38. package/esm2020/foehn-debug-summary/foehn-debug-summary.component.mjs +4 -4
  39. package/esm2020/foehn-debug-summary/foehn-debug-summary.component.module.mjs +5 -5
  40. package/esm2020/foehn-decision-electronique/foehn-decision-electronique.component.mjs +4 -4
  41. package/esm2020/foehn-decision-electronique/foehn-decision-electronique.module.mjs +5 -5
  42. package/esm2020/foehn-footer/foehn-footer.component.mjs +4 -4
  43. package/esm2020/foehn-footer/foehn-footer.module.mjs +5 -5
  44. package/esm2020/foehn-form/foehn-form.component.mjs +4 -4
  45. package/esm2020/foehn-form/foehn-form.module.mjs +5 -5
  46. package/esm2020/foehn-growl/foehn-growl.component.mjs +4 -4
  47. package/esm2020/foehn-growl/foehn-growl.module.mjs +5 -5
  48. package/esm2020/foehn-growl/growl-broker.service.mjs +4 -4
  49. package/esm2020/foehn-header/foehn-header.component.mjs +4 -4
  50. package/esm2020/foehn-header/foehn-header.module.mjs +5 -5
  51. package/esm2020/foehn-header/foehn-skip-link.component.mjs +4 -4
  52. package/esm2020/foehn-help-modal/foehn-help-modal.component.mjs +4 -4
  53. package/esm2020/foehn-help-modal/foehn-help-modal.module.mjs +5 -5
  54. package/esm2020/foehn-icons/abstract-icon-component.mjs +4 -4
  55. package/esm2020/foehn-icons/foehn-icon-calendar.component.mjs +4 -4
  56. package/esm2020/foehn-icons/foehn-icon-check-square-o.component.mjs +4 -4
  57. package/esm2020/foehn-icons/foehn-icon-check.component.mjs +4 -4
  58. package/esm2020/foehn-icons/foehn-icon-chevron-down.component.mjs +4 -4
  59. package/esm2020/foehn-icons/foehn-icon-chevron-left.component.mjs +4 -4
  60. package/esm2020/foehn-icons/foehn-icon-chevron-right.component.mjs +4 -4
  61. package/esm2020/foehn-icons/foehn-icon-chevron-up.component.mjs +4 -4
  62. package/esm2020/foehn-icons/foehn-icon-clock.component.mjs +4 -4
  63. package/esm2020/foehn-icons/foehn-icon-comment-dots.component.mjs +4 -4
  64. package/esm2020/foehn-icons/foehn-icon-edit.component.mjs +4 -4
  65. package/esm2020/foehn-icons/foehn-icon-external-link-alt.component.mjs +4 -4
  66. package/esm2020/foehn-icons/foehn-icon-file-pdf.component.mjs +4 -4
  67. package/esm2020/foehn-icons/foehn-icon-info-circle.component.mjs +4 -4
  68. package/esm2020/foehn-icons/foehn-icon-lock.component.mjs +4 -4
  69. package/esm2020/foehn-icons/foehn-icon-map-marker.component.mjs +4 -4
  70. package/esm2020/foehn-icons/foehn-icon-minus-circle.component.mjs +4 -4
  71. package/esm2020/foehn-icons/foehn-icon-plus-circle.component.mjs +4 -4
  72. package/esm2020/foehn-icons/foehn-icon-plus-square.component.mjs +4 -4
  73. package/esm2020/foehn-icons/foehn-icon-search.component.mjs +4 -4
  74. package/esm2020/foehn-icons/foehn-icon-times.component.mjs +4 -4
  75. package/esm2020/foehn-icons/foehn-icon-trash-alt.component.mjs +4 -4
  76. package/esm2020/foehn-icons/foehn-icon-unlock-alt.component.mjs +4 -4
  77. package/esm2020/foehn-icons/foehn-icons.module.mjs +5 -5
  78. package/esm2020/foehn-input/foehn-input-email.component.mjs +4 -4
  79. package/esm2020/foehn-input/foehn-input-hidden.component.mjs +4 -4
  80. package/esm2020/foehn-input/foehn-input-number.component.mjs +60 -13
  81. package/esm2020/foehn-input/foehn-input-password.component.mjs +4 -4
  82. package/esm2020/foehn-input/foehn-input-phone.component.mjs +4 -4
  83. package/esm2020/foehn-input/foehn-input-string.component.mjs +4 -4
  84. package/esm2020/foehn-input/foehn-input-text.component.mjs +4 -4
  85. package/esm2020/foehn-input/foehn-input-textarea.component.mjs +4 -4
  86. package/esm2020/foehn-input/foehn-input.component.mjs +4 -4
  87. package/esm2020/foehn-input/foehn-input.module.mjs +5 -5
  88. package/esm2020/foehn-input-date/foehn-input-date.component.mjs +6 -6
  89. package/esm2020/foehn-input-time/foehn-input-time.component.mjs +6 -6
  90. package/esm2020/foehn-list/foehn-list.component.mjs +4 -4
  91. package/esm2020/foehn-list/foehn-list.module.mjs +5 -5
  92. package/esm2020/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +4 -4
  93. package/esm2020/foehn-menu-prestation/abstract-menu-page.component.mjs +4 -4
  94. package/esm2020/foehn-menu-prestation/abstract-page-from-menu.component.mjs +4 -4
  95. package/esm2020/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs +4 -4
  96. package/esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +4 -4
  97. package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +4 -4
  98. package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs +4 -4
  99. package/esm2020/foehn-menu-prestation/foehn-menu-prestation.module.mjs +5 -5
  100. package/esm2020/foehn-misc/foehn-abbr.component.mjs +4 -4
  101. package/esm2020/foehn-misc/foehn-misc.module.mjs +5 -5
  102. package/esm2020/foehn-modal/foehn-modal.component.mjs +4 -7
  103. package/esm2020/foehn-modal/foehn-modal.module.mjs +5 -5
  104. package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +4 -4
  105. package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.mjs +5 -5
  106. package/esm2020/foehn-nav13/foehn-input-nav13.component.mjs +6 -6
  107. package/esm2020/foehn-nav13/foehn-input-nav13.module.mjs +5 -5
  108. package/esm2020/foehn-navigation/foehn-navigation.component.mjs +4 -4
  109. package/esm2020/foehn-navigation/foehn-navigation.module.mjs +5 -5
  110. package/esm2020/foehn-navigation/foehn-navigation.service.mjs +4 -4
  111. package/esm2020/foehn-notfound/foehn-notfound.component.mjs +4 -4
  112. package/esm2020/foehn-notfound/foehn-notfound.module.mjs +5 -5
  113. package/esm2020/foehn-page/foehn-page-counter.component.mjs +4 -4
  114. package/esm2020/foehn-page/foehn-page-modal.component.mjs +4 -4
  115. package/esm2020/foehn-page/foehn-page-modal.service.mjs +4 -4
  116. package/esm2020/foehn-page/foehn-page.component.mjs +4 -4
  117. package/esm2020/foehn-page/foehn-page.module.mjs +5 -5
  118. package/esm2020/foehn-page/foehn-page.service.mjs +4 -4
  119. package/esm2020/foehn-recap-section/foehn-recap-section.component.mjs +4 -4
  120. package/esm2020/foehn-recap-section/foehn-recap-section.module.mjs +5 -5
  121. package/esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.mjs +4 -4
  122. package/esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs +5 -5
  123. package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +4 -4
  124. package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs +5 -5
  125. package/esm2020/foehn-table/foehn-table-column-configuration.mjs +1 -1
  126. package/esm2020/foehn-table/foehn-table.component.mjs +5 -5
  127. package/esm2020/foehn-table/foehn-table.module.mjs +5 -5
  128. package/esm2020/foehn-upload/abstract-foehn-uploader.component.mjs +4 -4
  129. package/esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs +4 -4
  130. package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +4 -4
  131. package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs +5 -5
  132. package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +4 -4
  133. package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs +5 -5
  134. package/esm2020/foehn-upload/foehn-multi-upload/multi-upload.service.mjs +4 -4
  135. package/esm2020/foehn-upload/foehn-multi-upload/pending-upload.service.mjs +4 -4
  136. package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +4 -4
  137. package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs +5 -5
  138. package/esm2020/foehn-user-connected-as/foehn-user-connected-as.component.mjs +4 -4
  139. package/esm2020/foehn-user-connected-as/foehn-user-connected-as.module.mjs +5 -5
  140. package/esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs +4 -4
  141. package/esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs +5 -5
  142. package/esm2020/foehn-validation-alerts/foehn-validation-alerts.component.mjs +4 -4
  143. package/esm2020/foehn-validation-alerts/foehn-validation-alerts.module.mjs +5 -5
  144. package/esm2020/gesdem/gesdem-error-handler.service.mjs +4 -4
  145. package/esm2020/gesdem/gesdem-event.service.mjs +4 -4
  146. package/esm2020/gesdem/gesdem-handler.service.mjs +5 -4
  147. package/esm2020/gesdem/gesdem-loader.guard.mjs +4 -4
  148. package/esm2020/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs +4 -4
  149. package/esm2020/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +4 -4
  150. package/esm2020/gesdem-action-recovery/gesdem-action-recovery.module.mjs +5 -5
  151. package/esm2020/gesdem-action-recovery/gesdem-action-recovery.service.mjs +4 -4
  152. package/esm2020/gesdem-confirmation/gesdem-confirmation.component.mjs +4 -4
  153. package/esm2020/gesdem-confirmation/gesdem-confirmation.module.mjs +5 -5
  154. package/esm2020/gesdem-error/gesdem-error.component.mjs +4 -4
  155. package/esm2020/gesdem-error/gesdem-error.module.mjs +5 -5
  156. package/esm2020/pipes/currency.pipe.mjs +4 -4
  157. package/esm2020/pipes/date.pipe.mjs +4 -4
  158. package/esm2020/pipes/formatIde.pipe.mjs +4 -4
  159. package/esm2020/pipes/pipes.module.mjs +5 -5
  160. package/esm2020/prestations-ng-core.module.mjs +5 -5
  161. package/esm2020/sdk-appinfo/application-info.service.mjs +4 -4
  162. package/esm2020/sdk-currency/currency.helper.mjs +4 -4
  163. package/esm2020/sdk-date/date.helper.mjs +4 -4
  164. package/esm2020/sdk-dictionary/default-dictionary.mjs +3 -1
  165. package/esm2020/sdk-dictionary/sdk-dictionary.module.mjs +5 -5
  166. package/esm2020/sdk-dictionary/sdk-dictionary.pipe.mjs +4 -4
  167. package/esm2020/sdk-dictionary/sdk-dictionary.service.mjs +6 -7
  168. package/esm2020/sdk-epayment/sdk-epayment.component.mjs +4 -4
  169. package/esm2020/sdk-epayment/sdk-epayment.module.mjs +5 -5
  170. package/esm2020/sdk-epayment/sdk-epayment.service.mjs +4 -4
  171. package/esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs +4 -4
  172. package/esm2020/sdk-recaptcha/recaptcha.service.mjs +4 -4
  173. package/esm2020/sdk-recaptcha/sdk-recaptcha.component.mjs +4 -4
  174. package/esm2020/sdk-recaptcha/sdk-recaptcha.module.mjs +5 -5
  175. package/esm2020/sdk-redirect/iam-expired-interceptor.service.mjs +29 -19
  176. package/esm2020/sdk-redirect/redirect.component.mjs +12 -21
  177. package/esm2020/sdk-redirect/sdk-redirect.module.mjs +5 -5
  178. package/esm2020/sdk-session-info/session-info-with-application.service.mjs +4 -4
  179. package/esm2020/sdk-session-info/session-info.service.mjs +4 -4
  180. package/esm2020/sdk-statistics/sdk-statistics.service.mjs +4 -4
  181. package/esm2020/sdk-support-alert/support-alert-container.component.mjs +4 -4
  182. package/esm2020/sdk-support-alert/support-alert.component.mjs +4 -4
  183. package/esm2020/sdk-support-alert/support-alert.module.mjs +5 -5
  184. package/esm2020/sdk-support-alert/support-alert.service.mjs +4 -4
  185. package/esm2020/supported-browser.mjs +2 -2
  186. package/esm2020/validation/validation-handler.service.mjs +4 -4
  187. package/fesm2015/dsivd-prestations-ng.mjs +684 -639
  188. package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
  189. package/fesm2020/dsivd-prestations-ng.mjs +683 -639
  190. package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
  191. package/foehn-input/foehn-input-number.component.d.ts +8 -1
  192. package/foehn-modal/foehn-modal.component.d.ts +1 -2
  193. package/foehn-table/foehn-table-column-configuration.d.ts +6 -1
  194. package/package.json +2 -2
  195. package/sdk-dictionary/sdk-dictionary.service.d.ts +6 -0
  196. package/sdk-redirect/iam-expired-interceptor.service.d.ts +2 -2
  197. package/sdk-redirect/redirect.component.d.ts +2 -8
  198. package/dsivd-prestations-ng-v15.2.2.tgz +0 -0
@@ -26,15 +26,15 @@ export class FoehnSelectComponent extends FoehnCheckableGroupComponent {
26
26
  return this.areValuesEquals(value1, value2);
27
27
  }
28
28
  }
29
- FoehnSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnSelectComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
30
- FoehnSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: FoehnSelectComponent, selector: "foehn-select", inputs: { multiple: "multiple" }, providers: [
29
+ FoehnSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnSelectComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
30
+ FoehnSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FoehnSelectComponent, selector: "foehn-select", inputs: { multiple: "multiple" }, providers: [
31
31
  {
32
32
  provide: FoehnInputComponent,
33
33
  useExisting: forwardRef(() => FoehnSelectComponent),
34
34
  multi: true
35
35
  }
36
36
  ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <div *ngIf=\"!elements\">Chargement...</div>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <select\n *ngIf=\"!multiple\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option *ngIf=\"!required\" [ngValue]=\"null\">-</option>\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.disabled]=\"getDisabled(element) ? 'disabled' : null\"\n [innerHTML]=\"getLabel(element)\"\n ></option>\n </select>\n <select\n *ngIf=\"multiple\"\n multiple\n [attr.aria-multiselectable]=\"true\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.aria-selected]=\"isElementSelected(element)\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n</div>\n", components: [{ type: i1.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }], pipes: { "fromDictionary": i4.SdkDictionaryPipe } });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnSelectComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnSelectComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ selector: 'foehn-select', providers: [
40
40
  {
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
46
46
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { multiple: [{
47
47
  type: Input
48
48
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1jaGVja2FibGVzL2ZvZWhuLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tY2hlY2thYmxlcy9mb2Vobi1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7O0FBYzNFLE1BQU0sT0FBTyxvQkFDVCxTQUFRLDRCQUE0QjtJQUtwQyxZQUFvQixJQUFZO1FBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURJLFNBQUksR0FBSixJQUFJLENBQVE7SUFFaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILDhEQUE4RDtJQUM5RCxTQUFTLENBQUMsTUFBVyxFQUFFLE1BQVc7UUFDOUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDOztpSEF2QlEsb0JBQW9CO3FHQUFwQixvQkFBb0IseUVBUmxCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbkQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLGlEQ2RMLHNvR0EwRkE7MkZEMUVhLG9CQUFvQjtrQkFYaEMsU0FBUzsrQkFDSSxjQUFjLGFBRWI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKOzZGQU1ELFFBQVE7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE5nWm9uZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2VobkNoZWNrYWJsZUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1jaGVja2FibGUtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JqZWN0SGVscGVyIH0gZnJvbSAnLi4vaGVscGVycy9vYmplY3QuaGVscGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5TZWxlY3RDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5TZWxlY3RDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuQ2hlY2thYmxlR3JvdXBDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBtdWx0aXBsZTogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gICAgICAgIHN1cGVyKHpvbmUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuZ3VsYXIgdXNlcyBvYmplY3QgaWRlbnRpdHkgdG8gc2VsZWN0IG9wdGlvbi4gSXQncyBwb3NzaWJsZSBmb3IgdGhlIGlkZW50aXRpZXMgb2YgaXRlbXMgdG8gY2hhbmdlIHdoaWxlIHRoZSBkYXRhIGRvZXMgbm90LlxuICAgICAqIFRoaXMgY2FuIGhhcHBlbiwgZm9yIGV4YW1wbGUsIGlmIHRoZSBpdGVtcyBhcmUgcHJvZHVjZWQgZnJvbSBhbiBSUEMgdG8gdGhlIHNlcnZlciwgYW5kIHRoYXQgUlBDIGlzIHJlLXJ1bi5cbiAgICAgKiBFdmVuIGlmIHRoZSBkYXRhIGhhc24ndCBjaGFuZ2VkLCB0aGUgc2Vjb25kIHJlc3BvbnNlIHdpbGwgcHJvZHVjZSBvYmplY3RzIHdpdGggZGlmZmVyZW50IGlkZW50aXRpZXMuXG4gICAgICogKHNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9mb3Jtcy9TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciNjdXN0b21pemluZy1vcHRpb24tc2VsZWN0aW9uKVxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlMSBhcyBmaXJzdCB2YWx1ZSB0byBjb21wYXJlIHRvXG4gICAgICogQHBhcmFtIHZhbHVlMiBhcyB2YWx1ZSB0byBiZSBjb21wYXJlZCB0b1xuICAgICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbXBhcmVGbih2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJlVmFsdWVzRXF1YWxzKHZhbHVlMSwgdmFsdWUyKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAnc3Itb25seScgOiBsYWJlbFN0eWxlTW9kaWZpZXJcIlxuICAgID5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0cyBbY29tcG9uZW50XT1cInRoaXNcIj48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPGRpdiAqbmdJZj1cIiFlbGVtZW50c1wiPkNoYXJnZW1lbnQuLi48L2Rpdj5cblxuICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cImhlbHBUZXh0XCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnSGVscCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPHNlbGVjdFxuICAgICAgICAqbmdJZj1cIiFtdWx0aXBsZVwiXG4gICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IGhhc0luaGVyaXRFcnJvckZyb21QYXJlbnQoKVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImdldEF1dG9Db21wbGV0ZSgpXCJcbiAgICAgICAgW25nTW9kZWxdPVwibW9kZWxcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVOZ01vZGVsKCRldmVudClcIlxuICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuLmJpbmQodGhpcylcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZShtb2RlbClcIlxuICAgICAgICAjZW50cnlDb21wb25lbnRcbiAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxuICAgID5cbiAgICAgICAgPG9wdGlvbiAqbmdJZj1cIiFyZXF1aXJlZFwiIFtuZ1ZhbHVlXT1cIm51bGxcIj4tPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGVsZW1lbnRzXCJcbiAgICAgICAgICAgIFtuZ1ZhbHVlXT1cImdldFZhbHVlKGVsZW1lbnQpXCJcbiAgICAgICAgICAgIFthdHRyLnNlbGVjdGVkXT1cImlzRWxlbWVudFNlbGVjdGVkKGVsZW1lbnQpID8gJ3NlbGVjdGVkJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZ2V0RGlzYWJsZWQoZWxlbWVudCkgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldExhYmVsKGVsZW1lbnQpXCJcbiAgICAgICAgPjwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICAgIDxzZWxlY3RcbiAgICAgICAgKm5nSWY9XCJtdWx0aXBsZVwiXG4gICAgICAgIG11bHRpcGxlXG4gICAgICAgIFthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXT1cInRydWVcIlxuICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBoYXNJbmhlcml0RXJyb3JGcm9tUGFyZW50KClcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWUgfHwgbGFiZWxcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImdldERlc2NyaWJlZEJ5KClcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgfHwgbnVsbFwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTmdNb2RlbCgkZXZlbnQpXCJcbiAgICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVGbi5iaW5kKHRoaXMpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UobW9kZWwpXCJcbiAgICAgICAgI2VudHJ5Q29tcG9uZW50XG4gICAgICAgIG5nRGVmYXVsdENvbnRyb2xcbiAgICA+XG4gICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGVsZW1lbnRzXCJcbiAgICAgICAgICAgIFtuZ1ZhbHVlXT1cImdldFZhbHVlKGVsZW1lbnQpXCJcbiAgICAgICAgICAgIFthdHRyLnNlbGVjdGVkXT1cImlzRWxlbWVudFNlbGVjdGVkKGVsZW1lbnQpID8gJ3NlbGVjdGVkJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0VsZW1lbnRTZWxlY3RlZChlbGVtZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGdldExhYmVsKGVsZW1lbnQpIH19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuPC9kaXY+XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1jaGVja2FibGVzL2ZvZWhuLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tY2hlY2thYmxlcy9mb2Vobi1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7O0FBYTNFLE1BQU0sT0FBTyxvQkFDVCxTQUFRLDRCQUE0QjtJQUtwQyxZQUFvQixJQUFZO1FBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURJLFNBQUksR0FBSixJQUFJLENBQVE7SUFFaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILDhEQUE4RDtJQUM5RCxTQUFTLENBQUMsTUFBVyxFQUFFLE1BQVc7UUFDOUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDOztrSEF2QlEsb0JBQW9CO3NHQUFwQixvQkFBb0IseUVBUmxCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbkQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLGlEQ2JMLHNvR0EwRkE7NEZEM0VhLG9CQUFvQjtrQkFYaEMsU0FBUzsrQkFDSSxjQUFjLGFBRWI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKOzZGQU1ELFFBQVE7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE5nWm9uZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2VobkNoZWNrYWJsZUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1jaGVja2FibGUtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2VoblNlbGVjdENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VoblNlbGVjdENvbXBvbmVudFxuICAgIGV4dGVuZHMgRm9laG5DaGVja2FibGVHcm91cENvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIG11bHRpcGxlOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHtcbiAgICAgICAgc3VwZXIoem9uZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW5ndWxhciB1c2VzIG9iamVjdCBpZGVudGl0eSB0byBzZWxlY3Qgb3B0aW9uLiBJdCdzIHBvc3NpYmxlIGZvciB0aGUgaWRlbnRpdGllcyBvZiBpdGVtcyB0byBjaGFuZ2Ugd2hpbGUgdGhlIGRhdGEgZG9lcyBub3QuXG4gICAgICogVGhpcyBjYW4gaGFwcGVuLCBmb3IgZXhhbXBsZSwgaWYgdGhlIGl0ZW1zIGFyZSBwcm9kdWNlZCBmcm9tIGFuIFJQQyB0byB0aGUgc2VydmVyLCBhbmQgdGhhdCBSUEMgaXMgcmUtcnVuLlxuICAgICAqIEV2ZW4gaWYgdGhlIGRhdGEgaGFzbid0IGNoYW5nZWQsIHRoZSBzZWNvbmQgcmVzcG9uc2Ugd2lsbCBwcm9kdWNlIG9iamVjdHMgd2l0aCBkaWZmZXJlbnQgaWRlbnRpdGllcy5cbiAgICAgKiAoc2VlOiBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2Zvcm1zL1NlbGVjdENvbnRyb2xWYWx1ZUFjY2Vzc29yI2N1c3RvbWl6aW5nLW9wdGlvbi1zZWxlY3Rpb24pXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUxIGFzIGZpcnN0IHZhbHVlIHRvIGNvbXBhcmUgdG9cbiAgICAgKiBAcGFyYW0gdmFsdWUyIGFzIHZhbHVlIHRvIGJlIGNvbXBhcmVkIHRvXG4gICAgICogQHJldHVybnMgYm9vbGVhblxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29tcGFyZUZuKHZhbHVlMTogYW55LCB2YWx1ZTI6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcmVWYWx1ZXNFcXVhbHModmFsdWUxLCB2YWx1ZTIpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgIFtjbGFzcy5oYXMtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbY2xhc3MudmQtZm9ybS1ncm91cC1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ0NvbnRhaW5lcicpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbj5cbiAgICA8bGFiZWxcbiAgICAgICAgW2F0dHIuZm9yXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgKm5nSWY9XCIhIWxhYmVsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNMYWJlbFNyT25seSA/ICdzci1vbmx5JyA6IGxhYmVsU3R5bGVNb2RpZmllclwiXG4gICAgPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhcmVxdWlyZWQgJiYgIWhpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWxcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgJ2ZvZWhuLWlucHV0Lm9wdGlvbmFsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuXG4gICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzIFtjb21wb25lbnRdPVwidGhpc1wiPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWVsZW1lbnRzXCI+Q2hhcmdlbWVudC4uLjwvZGl2PlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8c2VsZWN0XG4gICAgICAgICpuZ0lmPVwiIW11bHRpcGxlXCJcbiAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgaGFzSW5oZXJpdEVycm9yRnJvbVBhcmVudCgpXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJnZXREZXNjcmliZWRCeSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiZ2V0QXV0b0NvbXBsZXRlKClcIlxuICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU5nTW9kZWwoJGV2ZW50KVwiXG4gICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlRm4uYmluZCh0aGlzKVwiXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKG1vZGVsKVwiXG4gICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgICAgICBuZ0RlZmF1bHRDb250cm9sXG4gICAgPlxuICAgICAgICA8b3B0aW9uICpuZ0lmPVwiIXJlcXVpcmVkXCIgW25nVmFsdWVdPVwibnVsbFwiPi08L29wdGlvbj5cbiAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgZWxlbWVudHNcIlxuICAgICAgICAgICAgW25nVmFsdWVdPVwiZ2V0VmFsdWUoZWxlbWVudClcIlxuICAgICAgICAgICAgW2F0dHIuc2VsZWN0ZWRdPVwiaXNFbGVtZW50U2VsZWN0ZWQoZWxlbWVudCkgPyAnc2VsZWN0ZWQnIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJnZXREaXNhYmxlZChlbGVtZW50KSA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZ2V0TGFiZWwoZWxlbWVudClcIlxuICAgICAgICA+PC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gICAgPHNlbGVjdFxuICAgICAgICAqbmdJZj1cIm11bHRpcGxlXCJcbiAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IGhhc0luaGVyaXRFcnJvckZyb21QYXJlbnQoKVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCB8fCBudWxsXCJcbiAgICAgICAgW25nTW9kZWxdPVwibW9kZWxcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVOZ01vZGVsKCRldmVudClcIlxuICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuLmJpbmQodGhpcylcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZShtb2RlbClcIlxuICAgICAgICAjZW50cnlDb21wb25lbnRcbiAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxuICAgID5cbiAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgZWxlbWVudHNcIlxuICAgICAgICAgICAgW25nVmFsdWVdPVwiZ2V0VmFsdWUoZWxlbWVudClcIlxuICAgICAgICAgICAgW2F0dHIuc2VsZWN0ZWRdPVwiaXNFbGVtZW50U2VsZWN0ZWQoZWxlbWVudCkgPyAnc2VsZWN0ZWQnIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzRWxlbWVudFNlbGVjdGVkKGVsZW1lbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgZ2V0TGFiZWwoZWxlbWVudCkgfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG48L2Rpdj5cbiJdfQ==
@@ -30,10 +30,10 @@ export class FoehnConfirmModalComponent {
30
30
  this.isVisible = status;
31
31
  }
32
32
  }
33
- FoehnConfirmModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnConfirmModalComponent, deps: [{ token: i1.FoehnConfirmModalService }], target: i0.ɵɵFactoryTarget.Component });
34
- FoehnConfirmModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: FoehnConfirmModalComponent, selector: "foehn-confirm-modal", ngImport: i0, template: "<foehn-modal\n [modalHeaderText]=\"modalContent.title || 'Confirmation'\"\n modalSize=\"modal-md\"\n [isModalVisible]=\"isVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"\n modalContent.closeable !== null && modalContent.closeable !== undefined\n ? modalContent.closeable\n : true\n \"\n *ngIf=\"content | async as modalContent\"\n>\n <p [innerHTML]=\"modalContent.htmlContent\"></p>\n\n <div modal-footer>\n <div class=\"d-flex justify-content-end mr-2 mb-2 mt-2\">\n <button\n id=\"confirmButton\"\n class=\"btn btn-secondary\"\n (click)=\"cancel()\"\n >\n {{ modalContent.cancelButtonLabel || 'Annuler' }}\n </button>\n <button\n id=\"cancelButton\"\n class=\"btn btn-primary ml-3\"\n (click)=\"ok()\"\n >\n {{ modalContent.okButtonLabel || 'Confirmer' }}\n </button>\n </div>\n </div>\n</foehn-modal>\n", components: [{ type: i2.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "modalFooterText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe } });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnConfirmModalComponent, decorators: [{
33
+ FoehnConfirmModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnConfirmModalComponent, deps: [{ token: i1.FoehnConfirmModalService }], target: i0.ɵɵFactoryTarget.Component });
34
+ FoehnConfirmModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FoehnConfirmModalComponent, selector: "foehn-confirm-modal", ngImport: i0, template: "<foehn-modal\n [modalHeaderText]=\"modalContent.title || 'Confirmation'\"\n modalSize=\"modal-md\"\n [isModalVisible]=\"isVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"\n modalContent.closeable !== null && modalContent.closeable !== undefined\n ? modalContent.closeable\n : true\n \"\n *ngIf=\"content | async as modalContent\"\n>\n <p [innerHTML]=\"modalContent.htmlContent\"></p>\n\n <div modal-footer>\n <div class=\"d-flex justify-content-end mr-2 mb-2 mt-2\">\n <button\n id=\"confirmButton\"\n class=\"btn btn-secondary\"\n (click)=\"cancel()\"\n >\n {{ modalContent.cancelButtonLabel || 'Annuler' }}\n </button>\n <button\n id=\"cancelButton\"\n class=\"btn btn-primary ml-3\"\n (click)=\"ok()\"\n >\n {{ modalContent.okButtonLabel || 'Confirmer' }}\n </button>\n </div>\n </div>\n</foehn-modal>\n", components: [{ type: i2.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe } });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnConfirmModalComponent, decorators: [{
36
36
  type: Component,
37
37
  args: [{ selector: 'foehn-confirm-modal', template: "<foehn-modal\n [modalHeaderText]=\"modalContent.title || 'Confirmation'\"\n modalSize=\"modal-md\"\n [isModalVisible]=\"isVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"\n modalContent.closeable !== null && modalContent.closeable !== undefined\n ? modalContent.closeable\n : true\n \"\n *ngIf=\"content | async as modalContent\"\n>\n <p [innerHTML]=\"modalContent.htmlContent\"></p>\n\n <div modal-footer>\n <div class=\"d-flex justify-content-end mr-2 mb-2 mt-2\">\n <button\n id=\"confirmButton\"\n class=\"btn btn-secondary\"\n (click)=\"cancel()\"\n >\n {{ modalContent.cancelButtonLabel || 'Annuler' }}\n </button>\n <button\n id=\"cancelButton\"\n class=\"btn btn-primary ml-3\"\n (click)=\"ok()\"\n >\n {{ modalContent.okButtonLabel || 'Confirmer' }}\n </button>\n </div>\n </div>\n</foehn-modal>\n" }]
38
38
  }], ctorParameters: function () { return [{ type: i1.FoehnConfirmModalService }]; } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tY29uZmlybS1tb2RhbC9mb2Vobi1jb25maXJtLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1jb25maXJtLW1vZGFsL2ZvZWhuLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFVbEQsTUFBTSxPQUFPLDBCQUEwQjtJQUduQyxZQUFvQixtQkFBNkM7UUFBN0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQUZqRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2QsOEVBQThFO1FBQzlFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsbUJBQW1CO2FBQ25CLFlBQVksRUFBRTthQUNkLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxFQUFFO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFlO1FBQ2xDLHNFQUFzRTtRQUN0RSxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUM1QixDQUFDOzt1SEE5QlEsMEJBQTBCOzJHQUExQiwwQkFBMEIsMkRDVnZDLGlsQ0FpQ0E7MkZEdkJhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDSSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UgfSBmcm9tICcuL2ZvZWhuLWNvbmZpcm0tbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQgfSBmcm9tICcuL2ZvZWhuLWNvbmZpcm0tbW9kYWwtY29udGVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tY29uZmlybS1tb2RhbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuQ29uZmlybU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlybU1vZGFsU2VydmljZTogRm9laG5Db25maXJtTW9kYWxTZXJ2aWNlKSB7XG4gICAgICAgIC8vIFRoaXMgbmVlZCB0byBiZSBkb25lIGFzIHdlJ3JlIHBhc3NpbmcgdGhlc2UgZnVuY3Rpb25zIHRvIGFub3RoZXIgY29tcG9uZW50LlxuICAgICAgICB0aGlzLmNhbmNlbCA9IHRoaXMuY2FuY2VsLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub2sgPSB0aGlzLm9rLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRlbnQoKTogT2JzZXJ2YWJsZTxGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlybU1vZGFsU2VydmljZS5nZXRDb250ZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlybU1vZGFsU2VydmljZVxuICAgICAgICAgICAgLmdldElzVmlzaWJsZSgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGlzVmlzaWJsZSA9PiAodGhpcy5pc1Zpc2libGUgPSBpc1Zpc2libGUpKTtcbiAgICB9XG5cbiAgICBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlybU1vZGFsU2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9rKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpcm1Nb2RhbFNlcnZpY2Uub2soKTtcbiAgICB9XG5cbiAgICB1cGRhdGVWaXNpYmlsaXR5U3RhdHVzKHN0YXR1czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAvLyBJbiBjYXNlIHRoZSBtb2RhbCBpcyBjbG9zZWQgYnkgYW5vdGhlciBtZWFuIHN1Y2ggYXMgdGhlIEVzY2FwZSBrZXkuXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gc3RhdHVzO1xuICAgIH1cbn1cbiIsIjxmb2Vobi1tb2RhbFxuICAgIFttb2RhbEhlYWRlclRleHRdPVwibW9kYWxDb250ZW50LnRpdGxlIHx8ICdDb25maXJtYXRpb24nXCJcbiAgICBtb2RhbFNpemU9XCJtb2RhbC1tZFwiXG4gICAgW2lzTW9kYWxWaXNpYmxlXT1cImlzVmlzaWJsZVwiXG4gICAgKGlzTW9kYWxWaXNpYmxlQ2hhbmdlKT1cInVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoJGV2ZW50KVwiXG4gICAgW2Nsb3NlYWJsZV09XCJcbiAgICAgICAgbW9kYWxDb250ZW50LmNsb3NlYWJsZSAhPT0gbnVsbCAmJiBtb2RhbENvbnRlbnQuY2xvc2VhYmxlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gbW9kYWxDb250ZW50LmNsb3NlYWJsZVxuICAgICAgICAgICAgOiB0cnVlXG4gICAgXCJcbiAgICAqbmdJZj1cImNvbnRlbnQgfCBhc3luYyBhcyBtb2RhbENvbnRlbnRcIlxuPlxuICAgIDxwIFtpbm5lckhUTUxdPVwibW9kYWxDb250ZW50Lmh0bWxDb250ZW50XCI+PC9wPlxuXG4gICAgPGRpdiBtb2RhbC1mb290ZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtci0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiY29uZmlybUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBtb2RhbENvbnRlbnQuY2FuY2VsQnV0dG9uTGFiZWwgfHwgJ0FubnVsZXInIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImNhbmNlbEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbWwtM1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9rKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IG1vZGFsQ29udGVudC5va0J1dHRvbkxhYmVsIHx8ICdDb25maXJtZXInIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2ZvZWhuLW1vZGFsPlxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tY29uZmlybS1tb2RhbC9mb2Vobi1jb25maXJtLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1jb25maXJtLW1vZGFsL2ZvZWhuLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFVbEQsTUFBTSxPQUFPLDBCQUEwQjtJQUduQyxZQUFvQixtQkFBNkM7UUFBN0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQUZqRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2QsOEVBQThFO1FBQzlFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsbUJBQW1CO2FBQ25CLFlBQVksRUFBRTthQUNkLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxFQUFFO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFlO1FBQ2xDLHNFQUFzRTtRQUN0RSxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUM1QixDQUFDOzt3SEE5QlEsMEJBQTBCOzRHQUExQiwwQkFBMEIsMkRDVnZDLGlsQ0FpQ0E7NEZEdkJhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDSSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UgfSBmcm9tICcuL2ZvZWhuLWNvbmZpcm0tbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQgfSBmcm9tICcuL2ZvZWhuLWNvbmZpcm0tbW9kYWwtY29udGVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tY29uZmlybS1tb2RhbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuQ29uZmlybU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlybU1vZGFsU2VydmljZTogRm9laG5Db25maXJtTW9kYWxTZXJ2aWNlKSB7XG4gICAgICAgIC8vIFRoaXMgbmVlZCB0byBiZSBkb25lIGFzIHdlJ3JlIHBhc3NpbmcgdGhlc2UgZnVuY3Rpb25zIHRvIGFub3RoZXIgY29tcG9uZW50LlxuICAgICAgICB0aGlzLmNhbmNlbCA9IHRoaXMuY2FuY2VsLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub2sgPSB0aGlzLm9rLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRlbnQoKTogT2JzZXJ2YWJsZTxGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlybU1vZGFsU2VydmljZS5nZXRDb250ZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlybU1vZGFsU2VydmljZVxuICAgICAgICAgICAgLmdldElzVmlzaWJsZSgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGlzVmlzaWJsZSA9PiAodGhpcy5pc1Zpc2libGUgPSBpc1Zpc2libGUpKTtcbiAgICB9XG5cbiAgICBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlybU1vZGFsU2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9rKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpcm1Nb2RhbFNlcnZpY2Uub2soKTtcbiAgICB9XG5cbiAgICB1cGRhdGVWaXNpYmlsaXR5U3RhdHVzKHN0YXR1czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAvLyBJbiBjYXNlIHRoZSBtb2RhbCBpcyBjbG9zZWQgYnkgYW5vdGhlciBtZWFuIHN1Y2ggYXMgdGhlIEVzY2FwZSBrZXkuXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gc3RhdHVzO1xuICAgIH1cbn1cbiIsIjxmb2Vobi1tb2RhbFxuICAgIFttb2RhbEhlYWRlclRleHRdPVwibW9kYWxDb250ZW50LnRpdGxlIHx8ICdDb25maXJtYXRpb24nXCJcbiAgICBtb2RhbFNpemU9XCJtb2RhbC1tZFwiXG4gICAgW2lzTW9kYWxWaXNpYmxlXT1cImlzVmlzaWJsZVwiXG4gICAgKGlzTW9kYWxWaXNpYmxlQ2hhbmdlKT1cInVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoJGV2ZW50KVwiXG4gICAgW2Nsb3NlYWJsZV09XCJcbiAgICAgICAgbW9kYWxDb250ZW50LmNsb3NlYWJsZSAhPT0gbnVsbCAmJiBtb2RhbENvbnRlbnQuY2xvc2VhYmxlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gbW9kYWxDb250ZW50LmNsb3NlYWJsZVxuICAgICAgICAgICAgOiB0cnVlXG4gICAgXCJcbiAgICAqbmdJZj1cImNvbnRlbnQgfCBhc3luYyBhcyBtb2RhbENvbnRlbnRcIlxuPlxuICAgIDxwIFtpbm5lckhUTUxdPVwibW9kYWxDb250ZW50Lmh0bWxDb250ZW50XCI+PC9wPlxuXG4gICAgPGRpdiBtb2RhbC1mb290ZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtci0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiY29uZmlybUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBtb2RhbENvbnRlbnQuY2FuY2VsQnV0dG9uTGFiZWwgfHwgJ0FubnVsZXInIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImNhbmNlbEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbWwtM1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9rKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IG1vZGFsQ29udGVudC5va0J1dHRvbkxhYmVsIHx8ICdDb25maXJtZXInIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2ZvZWhuLW1vZGFsPlxuIl19
@@ -5,10 +5,10 @@ import { FoehnModalModule } from '../foehn-modal/foehn-modal.module';
5
5
  import * as i0 from "@angular/core";
6
6
  export class FoehnConfirmModalModule {
7
7
  }
8
- FoehnConfirmModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnConfirmModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- FoehnConfirmModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnConfirmModalModule, declarations: [FoehnConfirmModalComponent], imports: [CommonModule, FoehnModalModule], exports: [FoehnConfirmModalComponent] });
10
- FoehnConfirmModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnConfirmModalModule, imports: [[CommonModule, FoehnModalModule]] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnConfirmModalModule, decorators: [{
8
+ FoehnConfirmModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnConfirmModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ FoehnConfirmModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnConfirmModalModule, declarations: [FoehnConfirmModalComponent], imports: [CommonModule, FoehnModalModule], exports: [FoehnConfirmModalComponent] });
10
+ FoehnConfirmModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnConfirmModalModule, imports: [[CommonModule, FoehnModalModule]] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnConfirmModalModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  imports: [CommonModule, FoehnModalModule],
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
16
16
  exports: [FoehnConfirmModalComponent]
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tY29uZmlybS1tb2RhbC9mb2Vobi1jb25maXJtLW1vZGFsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFPckUsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1QjtxSEFBdkIsdUJBQXVCLGlCQUhqQiwwQkFBMEIsYUFEL0IsWUFBWSxFQUFFLGdCQUFnQixhQUU5QiwwQkFBMEI7cUhBRTNCLHVCQUF1QixZQUp2QixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQzsyRkFJaEMsdUJBQXVCO2tCQUxuQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztvQkFDekMsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4vZm9laG4tY29uZmlybS1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5Nb2RhbE1vZHVsZSB9IGZyb20gJy4uL2ZvZWhuLW1vZGFsL2ZvZWhuLW1vZGFsLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9laG5Nb2RhbE1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbRm9laG5Db25maXJtTW9kYWxDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtGb2VobkNvbmZpcm1Nb2RhbENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5Db25maXJtTW9kYWxNb2R1bGUge31cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tY29uZmlybS1tb2RhbC9mb2Vobi1jb25maXJtLW1vZGFsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFPckUsTUFBTSxPQUFPLHVCQUF1Qjs7cUhBQXZCLHVCQUF1QjtzSEFBdkIsdUJBQXVCLGlCQUhqQiwwQkFBMEIsYUFEL0IsWUFBWSxFQUFFLGdCQUFnQixhQUU5QiwwQkFBMEI7c0hBRTNCLHVCQUF1QixZQUp2QixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQzs0RkFJaEMsdUJBQXVCO2tCQUxuQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztvQkFDekMsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4vZm9laG4tY29uZmlybS1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5Nb2RhbE1vZHVsZSB9IGZyb20gJy4uL2ZvZWhuLW1vZGFsL2ZvZWhuLW1vZGFsLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9laG5Nb2RhbE1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbRm9laG5Db25maXJtTW9kYWxDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtGb2VobkNvbmZpcm1Nb2RhbENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5Db25maXJtTW9kYWxNb2R1bGUge31cbiJdfQ==
@@ -42,12 +42,12 @@ export class FoehnConfirmModalService {
42
42
  this.rejectCallback = null;
43
43
  }
44
44
  }
45
- FoehnConfirmModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnConfirmModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
- FoehnConfirmModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnConfirmModalService, providedIn: 'root' });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnConfirmModalService, decorators: [{
45
+ FoehnConfirmModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnConfirmModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
+ FoehnConfirmModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnConfirmModalService, providedIn: 'root' });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnConfirmModalService, decorators: [{
48
48
  type: Injectable,
49
49
  args: [{
50
50
  providedIn: 'root'
51
51
  }]
52
52
  }], ctorParameters: function () { return []; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTXJDLE1BQU0sT0FBTyx3QkFBd0I7SUFTakM7UUFSUSxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQTJCLElBQUksQ0FBQyxDQUFDO1FBR3RFLDhEQUE4RDtRQUN0RCxvQkFBZSxHQUE2QixJQUFJLENBQUM7UUFDekQsOERBQThEO1FBQ3RELG1CQUFjLEdBQTZCLElBQUksQ0FBQztRQUdwRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsRUFBRTtRQUNFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWlDO1FBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTNCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7WUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sS0FBSztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7O3FIQWxEUSx3QkFBd0I7eUhBQXhCLHdCQUF3QixjQUZyQixNQUFNOzJGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvZWhuQ29uZmlybU1vZGFsQ29udGVudCB9IGZyb20gJy4vZm9laG4tY29uZmlybS1tb2RhbC1jb250ZW50JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2Uge1xuICAgIHByaXZhdGUgY29udGVudCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9laG5Db25maXJtTW9kYWxDb250ZW50PihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpc2libGU6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgcmVzb2x2ZUNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQgPSBudWxsO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSByZWplY3RDYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0aGlzLmNvbnRlbnQucGlwZShtYXAoZGF0YSA9PiAhIWRhdGEpKTtcbiAgICB9XG5cbiAgICBnZXRJc1Zpc2libGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XG4gICAgfVxuXG4gICAgZ2V0Q29udGVudCgpOiBPYnNlcnZhYmxlPEZvZWhuQ29uZmlybU1vZGFsQ29udGVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWplY3RDYWxsYmFjaykge1xuICAgICAgICAgICAgdGhpcy5yZWplY3RDYWxsYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cblxuICAgIG9rKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZXNvbHZlQ2FsbGJhY2spIHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgb3BlbkNvbmZpcm1Nb2RhbChjb250ZW50OiBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy5jb250ZW50Lm5leHQoY29udGVudCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZUNhbGxiYWNrID0gcmVzb2x2ZTtcbiAgICAgICAgICAgIHRoaXMucmVqZWN0Q2FsbGJhY2sgPSByZWplY3Q7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGVudC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnJlc29sdmVDYWxsYmFjayA9IG51bGw7XG4gICAgICAgIHRoaXMucmVqZWN0Q2FsbGJhY2sgPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTXJDLE1BQU0sT0FBTyx3QkFBd0I7SUFTakM7UUFSUSxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQTJCLElBQUksQ0FBQyxDQUFDO1FBR3RFLDhEQUE4RDtRQUN0RCxvQkFBZSxHQUE2QixJQUFJLENBQUM7UUFDekQsOERBQThEO1FBQ3RELG1CQUFjLEdBQTZCLElBQUksQ0FBQztRQUdwRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsRUFBRTtRQUNFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWlDO1FBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTNCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7WUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sS0FBSztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7O3NIQWxEUSx3QkFBd0I7MEhBQXhCLHdCQUF3QixjQUZyQixNQUFNOzRGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvZWhuQ29uZmlybU1vZGFsQ29udGVudCB9IGZyb20gJy4vZm9laG4tY29uZmlybS1tb2RhbC1jb250ZW50JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2Uge1xuICAgIHByaXZhdGUgY29udGVudCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9laG5Db25maXJtTW9kYWxDb250ZW50PihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpc2libGU6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgcmVzb2x2ZUNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQgPSBudWxsO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSByZWplY3RDYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0aGlzLmNvbnRlbnQucGlwZShtYXAoZGF0YSA9PiAhIWRhdGEpKTtcbiAgICB9XG5cbiAgICBnZXRJc1Zpc2libGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XG4gICAgfVxuXG4gICAgZ2V0Q29udGVudCgpOiBPYnNlcnZhYmxlPEZvZWhuQ29uZmlybU1vZGFsQ29udGVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWplY3RDYWxsYmFjaykge1xuICAgICAgICAgICAgdGhpcy5yZWplY3RDYWxsYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cblxuICAgIG9rKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZXNvbHZlQ2FsbGJhY2spIHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgb3BlbkNvbmZpcm1Nb2RhbChjb250ZW50OiBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy5jb250ZW50Lm5leHQoY29udGVudCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZUNhbGxiYWNrID0gcmVzb2x2ZTtcbiAgICAgICAgICAgIHRoaXMucmVqZWN0Q2FsbGJhY2sgPSByZWplY3Q7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGVudC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnJlc29sdmVDYWxsYmFjayA9IG51bGw7XG4gICAgICAgIHRoaXMucmVqZWN0Q2FsbGJhY2sgPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
@@ -338,9 +338,9 @@ export class FoehnDatePickerComponent {
338
338
  return false;
339
339
  }
340
340
  }
341
- FoehnDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnDatePickerComponent, deps: [{ token: i1.SdkDictionaryService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
342
- FoehnDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: FoehnDatePickerComponent, selector: "foehn-date-picker", inputs: { id: "id", name: "name", minYear: "minYear", maxYear: "maxYear", minDate: "minDate", maxDate: "maxDate", datepickerTriggerHtmlElement: "datepickerTriggerHtmlElement", closeable: "closeable", isDatepickerVisible: "isDatepickerVisible", model: "model" }, outputs: { modelChange: "modelChange", userInput: "userInput", isDatepickerVisibleChange: "isDatepickerVisibleChange" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" }, properties: { "attr.id": "this.hostId" } }, viewQueries: [{ propertyName: "daysButtonsElemRef", predicate: ["dayButtonElemRef"], descendants: true }], ngImport: i0, template: "<div\n [id]=\"buildId('datepicker_wrapper')\"\n class=\"datepicker_wrapper\"\n *ngIf=\"isDatepickerVisible\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n>\n <button\n *ngIf=\"closeable\"\n (click)=\"isDatepickerVisible = false\"\n type=\"button\"\n class=\"btn close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n [id]=\"buildId('closeButton')\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n <div\n [id]=\"buildId('datepicker_header')\"\n class=\"d-flex justify-content-between datepicker_header\"\n >\n <ng-container *ngIf=\"currentMonthYear | async as monthYear\">\n <button\n [id]=\"buildId('previous-month')\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"previousMonth()\"\n [attr.disabled]=\"isPreviousMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-left>\n </button>\n <span\n [id]=\"buildId('month-year-label')\"\n aria-live=\"polite\"\n class=\"sr-only\"\n >\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }} {{ monthYear.year }}\n </span>\n <foehn-select\n [id]=\"buildId('month-input')\"\n class=\"align-self-center month-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"true\"\n (userInput)=\"userInputMonth($event)\"\n ></foehn-select>\n <foehn-select\n [id]=\"buildId('year-input')\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem\"\n [model]=\"monthYear.year\"\n [required]=\"true\"\n (userInput)=\"userInputYear($event)\"\n ></foehn-select>\n <button\n [id]=\"buildId('next-month')\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"nextMonth()\"\n [attr.disabled]=\"isNextMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-right>\n </button>\n </ng-container>\n </div>\n <table\n [id]=\"buildId('datepicker_table')\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n <th\n scope=\"col\"\n role=\"columnheader\"\n *ngFor=\"let weekday of weekDays\"\n >\n <foehn-abbr\n [text]=\"weekday.substr(0, 2)\"\n [title]=\"weekday\"\n ></foehn-abbr>\n </th>\n </tr>\n </thead>\n <tbody role=\"presentation\">\n <tr role=\"row\" *ngFor=\"let week of weeks; let indexRow = index\">\n <td\n role=\"gridcell\"\n *ngFor=\"let dayOfWeek of week; let indexColumn = index\"\n >\n <button\n class=\"btn w-100\"\n #dayButtonElemRef\n [hidden]=\"!dayOfWeek.isCurrentMonth\"\n [id]=\"buildId('day_' + indexRow + '_' + indexColumn)\"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"!isToday(dayOfWeek.date)\"\n [class.btn-secondary]=\"isToday(dayOfWeek.date)\"\n [class.btn-danger]=\"isSelected(dayOfWeek.date)\"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"isToday(dayOfWeek.date)\"\n [attr.data-is-selected]=\"isSelected(dayOfWeek.date)\"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [attr.disabled]=\"getDayDisabledAttribute(dayOfWeek)\"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host ::ng-deep .btn-link .svg-inline--fa{color:#000!important}.datepicker_header{margin-bottom:5px}.datepicker_wrapper{max-width:245px;padding:5px;border:1px solid #dfdfdf;background-color:#fff}.datepicker_wrapper .h4{margin-bottom:0}.datepicker_wrapper thead th{text-align:center;width:15%}.datepicker_wrapper .btn{padding:2px 4px}.datepicker_wrapper button.close{position:absolute;right:-14px;top:-18px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:30px;height:30px;opacity:1}.datepicker_wrapper .month-input{width:50%;margin-right:5px}:host ::ng-deep foehn-select select.form-control{padding:0;margin:0;height:30px}:host ::ng-deep foehn-select .form-group{margin:0}.btn-info:disabled{cursor:not-allowed}.datepicker-nav-month-btn:disabled{opacity:.25}\n"], components: [{ type: i2.FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { type: i3.FoehnSelectComponent, selector: "foehn-select", inputs: ["multiple"] }, { type: i4.FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { type: i5.FoehnAbbrComponent, selector: "foehn-abbr", inputs: ["title", "text"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": i8.SdkDictionaryPipe, "async": i6.AsyncPipe } });
343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnDatePickerComponent, decorators: [{
341
+ FoehnDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnDatePickerComponent, deps: [{ token: i1.SdkDictionaryService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
342
+ FoehnDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FoehnDatePickerComponent, selector: "foehn-date-picker", inputs: { id: "id", name: "name", minYear: "minYear", maxYear: "maxYear", minDate: "minDate", maxDate: "maxDate", datepickerTriggerHtmlElement: "datepickerTriggerHtmlElement", closeable: "closeable", isDatepickerVisible: "isDatepickerVisible", model: "model" }, outputs: { modelChange: "modelChange", userInput: "userInput", isDatepickerVisibleChange: "isDatepickerVisibleChange" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" }, properties: { "attr.id": "this.hostId" } }, viewQueries: [{ propertyName: "daysButtonsElemRef", predicate: ["dayButtonElemRef"], descendants: true }], ngImport: i0, template: "<div\n [id]=\"buildId('datepicker_wrapper')\"\n class=\"datepicker_wrapper\"\n *ngIf=\"isDatepickerVisible\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n>\n <button\n *ngIf=\"closeable\"\n (click)=\"isDatepickerVisible = false\"\n type=\"button\"\n class=\"btn close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n [id]=\"buildId('closeButton')\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n <div\n [id]=\"buildId('datepicker_header')\"\n class=\"d-flex justify-content-between datepicker_header\"\n >\n <ng-container *ngIf=\"currentMonthYear | async as monthYear\">\n <button\n [id]=\"buildId('previous-month')\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"previousMonth()\"\n [attr.disabled]=\"isPreviousMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-left>\n </button>\n <span\n [id]=\"buildId('month-year-label')\"\n aria-live=\"polite\"\n class=\"sr-only\"\n >\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }} {{ monthYear.year }}\n </span>\n <foehn-select\n [id]=\"buildId('month-input')\"\n class=\"align-self-center month-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"true\"\n (userInput)=\"userInputMonth($event)\"\n ></foehn-select>\n <foehn-select\n [id]=\"buildId('year-input')\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem\"\n [model]=\"monthYear.year\"\n [required]=\"true\"\n (userInput)=\"userInputYear($event)\"\n ></foehn-select>\n <button\n [id]=\"buildId('next-month')\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"nextMonth()\"\n [attr.disabled]=\"isNextMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-right>\n </button>\n </ng-container>\n </div>\n <table\n [id]=\"buildId('datepicker_table')\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n <th\n scope=\"col\"\n role=\"columnheader\"\n *ngFor=\"let weekday of weekDays\"\n >\n <foehn-abbr\n [text]=\"weekday.substr(0, 2)\"\n [title]=\"weekday\"\n ></foehn-abbr>\n </th>\n </tr>\n </thead>\n <tbody role=\"presentation\">\n <tr role=\"row\" *ngFor=\"let week of weeks; let indexRow = index\">\n <td\n role=\"gridcell\"\n *ngFor=\"let dayOfWeek of week; let indexColumn = index\"\n >\n <button\n class=\"btn w-100\"\n #dayButtonElemRef\n [hidden]=\"!dayOfWeek.isCurrentMonth\"\n [id]=\"buildId('day_' + indexRow + '_' + indexColumn)\"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"!isToday(dayOfWeek.date)\"\n [class.btn-secondary]=\"isToday(dayOfWeek.date)\"\n [class.btn-danger]=\"isSelected(dayOfWeek.date)\"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"isToday(dayOfWeek.date)\"\n [attr.data-is-selected]=\"isSelected(dayOfWeek.date)\"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [attr.disabled]=\"getDayDisabledAttribute(dayOfWeek)\"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host ::ng-deep .btn-link .svg-inline--fa{color:#000!important}.datepicker_header{margin-bottom:5px}.datepicker_wrapper{max-width:245px;padding:5px;border:1px solid #dfdfdf;background-color:#fff}.datepicker_wrapper .h4{margin-bottom:0}.datepicker_wrapper thead th{text-align:center;width:15%}.datepicker_wrapper .btn{padding:2px 4px}.datepicker_wrapper button.close{position:absolute;right:-14px;top:-18px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:30px;height:30px;opacity:1}.datepicker_wrapper .month-input{width:50%;margin-right:5px}:host ::ng-deep foehn-select select.form-control{padding:0;margin:0;height:30px}:host ::ng-deep foehn-select .form-group{margin:0}.btn-info:disabled{cursor:not-allowed}.datepicker-nav-month-btn:disabled{opacity:.25}\n"], components: [{ type: i2.FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { type: i3.FoehnSelectComponent, selector: "foehn-select", inputs: ["multiple"] }, { type: i4.FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { type: i5.FoehnAbbrComponent, selector: "foehn-abbr", inputs: ["title", "text"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": i8.SdkDictionaryPipe, "async": i6.AsyncPipe } });
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnDatePickerComponent, decorators: [{
344
344
  type: Component,
345
345
  args: [{ selector: 'foehn-date-picker', template: "<div\n [id]=\"buildId('datepicker_wrapper')\"\n class=\"datepicker_wrapper\"\n *ngIf=\"isDatepickerVisible\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n>\n <button\n *ngIf=\"closeable\"\n (click)=\"isDatepickerVisible = false\"\n type=\"button\"\n class=\"btn close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n [id]=\"buildId('closeButton')\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n <div\n [id]=\"buildId('datepicker_header')\"\n class=\"d-flex justify-content-between datepicker_header\"\n >\n <ng-container *ngIf=\"currentMonthYear | async as monthYear\">\n <button\n [id]=\"buildId('previous-month')\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"previousMonth()\"\n [attr.disabled]=\"isPreviousMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-left>\n </button>\n <span\n [id]=\"buildId('month-year-label')\"\n aria-live=\"polite\"\n class=\"sr-only\"\n >\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }} {{ monthYear.year }}\n </span>\n <foehn-select\n [id]=\"buildId('month-input')\"\n class=\"align-self-center month-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"true\"\n (userInput)=\"userInputMonth($event)\"\n ></foehn-select>\n <foehn-select\n [id]=\"buildId('year-input')\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem\"\n [model]=\"monthYear.year\"\n [required]=\"true\"\n (userInput)=\"userInputYear($event)\"\n ></foehn-select>\n <button\n [id]=\"buildId('next-month')\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"nextMonth()\"\n [attr.disabled]=\"isNextMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-right>\n </button>\n </ng-container>\n </div>\n <table\n [id]=\"buildId('datepicker_table')\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n <th\n scope=\"col\"\n role=\"columnheader\"\n *ngFor=\"let weekday of weekDays\"\n >\n <foehn-abbr\n [text]=\"weekday.substr(0, 2)\"\n [title]=\"weekday\"\n ></foehn-abbr>\n </th>\n </tr>\n </thead>\n <tbody role=\"presentation\">\n <tr role=\"row\" *ngFor=\"let week of weeks; let indexRow = index\">\n <td\n role=\"gridcell\"\n *ngFor=\"let dayOfWeek of week; let indexColumn = index\"\n >\n <button\n class=\"btn w-100\"\n #dayButtonElemRef\n [hidden]=\"!dayOfWeek.isCurrentMonth\"\n [id]=\"buildId('day_' + indexRow + '_' + indexColumn)\"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"!isToday(dayOfWeek.date)\"\n [class.btn-secondary]=\"isToday(dayOfWeek.date)\"\n [class.btn-danger]=\"isSelected(dayOfWeek.date)\"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"isToday(dayOfWeek.date)\"\n [attr.data-is-selected]=\"isSelected(dayOfWeek.date)\"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [attr.disabled]=\"getDayDisabledAttribute(dayOfWeek)\"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host ::ng-deep .btn-link .svg-inline--fa{color:#000!important}.datepicker_header{margin-bottom:5px}.datepicker_wrapper{max-width:245px;padding:5px;border:1px solid #dfdfdf;background-color:#fff}.datepicker_wrapper .h4{margin-bottom:0}.datepicker_wrapper thead th{text-align:center;width:15%}.datepicker_wrapper .btn{padding:2px 4px}.datepicker_wrapper button.close{position:absolute;right:-14px;top:-18px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:30px;height:30px;opacity:1}.datepicker_wrapper .month-input{width:50%;margin-right:5px}:host ::ng-deep foehn-select select.form-control{padding:0;margin:0;height:30px}:host ::ng-deep foehn-select .form-group{margin:0}.btn-info:disabled{cursor:not-allowed}.datepicker-nav-month-btn:disabled{opacity:.25}\n"] }]
346
346
  }], ctorParameters: function () { return [{ type: i1.SdkDictionaryService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { id: [{
@@ -382,4 +382,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
382
382
  type: HostListener,
383
383
  args: ['keydown', ['$event']]
384
384
  }] } });
385
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2ZvZWhuLWRhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1kYXRlLXBpY2tlci9mb2Vobi1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7QUFFN0UsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQU90QixNQUFNLE9BQU8sd0JBQXdCO0lBNERqQyxZQUNZLFVBQWdDLEVBQ2hDLE1BQWMsRUFDZCxjQUFpQztRQUZqQyxlQUFVLEdBQVYsVUFBVSxDQUFzQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBdEQ3QyxZQUFPLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBRy9CLFlBQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENB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RSxDQUFDLFFBQVEsQ0FBQztnQkFRakMsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF5TW9udGggfSBmcm9tICcuL2RheS1tb250aC50eXBlJztcbmltcG9ydCB7IE1vbnRoWWVhciB9IGZyb20gJy4vbW9udGgteWVhci50eXBlJztcbmltcG9ydCB7IERhdGVQaWNrZXJIZWxwZXIgfSBmcm9tICcuL2RhdGUtcGlja2VyLmhlbHBlcic7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JtU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vZm9laG4tY2hlY2thYmxlcy9mb3JtLXNlbGVjdC1vcHRpb24nO1xuXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IGlzVG9kYXkgZnJvbSAnZGF5anMvcGx1Z2luL2lzVG9kYXknO1xuaW1wb3J0IHsgRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIgfSBmcm9tICcuL2RhdGUtcGlja2VyLW5hdmlnYXRpb24uaGVscGVyJztcblxuZGF5anMuZXh0ZW5kKGlzVG9kYXkpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWRhdGUtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWRhdGUtcGlja2VyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobkRhdGVQaWNrZXJDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgbWluWWVhciA9IGRheWpzKCkueWVhcigpIC0gMTAwO1xuXG4gICAgQElucHV0KClcbiAgICBtYXhZZWFyID0gZGF5anMoKS55ZWFyKCkgKyAxMDtcblxuICAgIEBJbnB1dCgpXG4gICAgbWluRGF0ZTogbnVtYmVyW107XG5cbiAgICBASW5wdXQoKVxuICAgIG1heERhdGU6IG51bWJlcltdO1xuXG4gICAgQElucHV0KClcbiAgICBkYXRlcGlja2VyVHJpZ2dlckh0bWxFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VhYmxlID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHVzZXJJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyW10+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBpc0RhdGVwaWNrZXJWaXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBob3N0SWQ6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGRyZW4oJ2RheUJ1dHRvbkVsZW1SZWYnKVxuICAgIGRheXNCdXR0b25zRWxlbVJlZjogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgd2Vla0RheXM6IHN0cmluZ1tdID0gW107XG4gICAgd2Vla3M6IERheU1vbnRoW11bXTtcblxuICAgIHNlbGVjdGVkRGF0ZTogZGF5anMuRGF5anM7XG4gICAgY3VycmVudE1vbnRoWWVhcjogT2JzZXJ2YWJsZTxNb250aFllYXI+O1xuXG4gICAgbW9kZWxfOiBudW1iZXJbXTtcbiAgICBtb250aExpc3RJdGVtOiBGb3JtU2VsZWN0T3B0aW9uW10gPSBbXTtcbiAgICB5ZWFyTGlzdEl0ZW06IEZvcm1TZWxlY3RPcHRpb25bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIGtleWJvYXJkTmF2aWdhdGlvbkFsbG93ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGN1cnJlbnRMYW5ndWFnZUNvZGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIGRhdGVQaWNrZXJIZWxwZXIgPSBuZXcgRGF0ZVBpY2tlckhlbHBlcigpO1xuICAgIHByaXZhdGUgZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIgPSBuZXcgRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheU5leHRNb250aFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheVByZXZpb3VzTW9udGhTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpY3Rpb25hcnk6IFNka0RpY3Rpb25hcnlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLmN1cnJlbnRNb250aFllYXIgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZGlzcGxheWVkTW9udGhZZWFyO1xuICAgICAgICB0aGlzLmRpc3BsYXlOZXh0TW9udGhTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmRpc3BsYXlOZXh0TW9udGguc3Vic2NyaWJlKFxuICAgICAgICAgICAgKCkgPT4gdGhpcy5uZXh0TW9udGgoKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c01vbnRoU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5kaXNwbGF5UHJldmlvdXNNb250aC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoKSA9PiB0aGlzLnByZXZpb3VzTW9udGgoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpc0RhdGVwaWNrZXJWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgaXNEYXRlcGlja2VyVmlzaWJsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgLy8gU3RvcmUgdGhlIHByZXZpb3VzIHZhbHVlIHRvIGhhbmRsZSB0cmFuc2l0aW9ucyBmcm9tIG9uZSBzdGF0ZSB0byBhbm90aGVyLlxuICAgICAgICBjb25zdCB3YXNPcGVuID0gdGhpcy5pc1Zpc2libGU7XG5cbiAgICAgICAgLy8gRW5zdXJlIHdlIGFsd2F5cyBpbml0aWFsaXplIGRhdGUgcGlja2VyIGRlcGVuZGluZyBvbiBpdCdzIG1vZGVsXG4gICAgICAgIGlmICghd2FzT3BlbiAmJiB0aGlzLmNsb3NlYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMubW9kZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB2YWw7XG4gICAgICAgIHRoaXMuaXNEYXRlcGlja2VyVmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuaXNWaXNpYmxlKTtcblxuICAgICAgICB0aGlzLmZvY3VzRGVmYXVsdERheSgpO1xuICAgICAgICB0aGlzLmZvY3VzT25EYXRlcGlja2VyVHJpZ2dlcih3YXNPcGVuLCB2YWwpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gICAgZ2V0IG1vZGVsKCk6IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWxfO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IG1vZGVsKHZhbHVlOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodmFsdWUpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVLZXlib2FyZFVwRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VhYmxlICYmIGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEYXRlcGlja2VyVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlS2V5Ym9hcmREb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCkge1xuICAgICAgICAgICAgdGhpcy5vbktleURvd25Jbm5lcihldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gRW5zdXJlcyB0aGF0IHRoZSBob3N0IGhhcyBhbiBJZCBmb3IgaW5zdHJ1bWVudGFsaXphdGlvbiBvZiB0aGUgRE9NIGJ5IGF1dG9tYXRlZCB0ZXN0cy5cbiAgICAgICAgdGhpcy5ob3N0SWQgPSB0aGlzLmJ1aWxkSWQoKTtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5ob3N0SWQgPSB0aGlzLmhvc3RJZDtcblxuICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZUNvZGVTdWJzY3JpcHRpb24gPSB0aGlzLmRpY3Rpb25hcnlcbiAgICAgICAgICAgIC5nZXRDdXJyZW50TGFuZ3VhZ2VDb2RlKClcbiAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb2RlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJIZWxwZXJcbiAgICAgICAgICAgICAgICAgICAgLmxvYWRMb2NhbGUoY29kZSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbG9jYWxlICcke2NvZGV9JyBkb2VzIG5vdCBleGlzdC4gRmFsbGJhY2sgdG8gJ2VuLidgXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVEYXRlcGlja2VyKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRheXNCdXR0b25zRWxlbVJlZi5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAvLyBGb3IgdGVzdHMgcHVycG9zZSwgd2hlbiBzZXR0aW5nIGNvbXBvbmVudCBtaW5EYXRlLCBhdm9pZHMgaGF2aW5nIGVycm9yOlxuICAgICAgICAgICAgLy8gXCJORzAxMDA6IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3I6IEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWQuXG4gICAgICAgICAgICAvLyBQcmV2aW91cyB2YWx1ZSBmb3IgJ3RhYmluZGV4JzogJy0xJy4gQ3VycmVudCB2YWx1ZTogJzAnXCJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5kYXlzQnV0dG9uc0VsZW1SZWYgPSB0aGlzLmRheXNCdXR0b25zRWxlbVJlZjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghIXRoaXMuY3VycmVudExhbmd1YWdlQ29kZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2VDb2RlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEhdGhpcy5kaXNwbGF5TmV4dE1vbnRoU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlOZXh0TW9udGhTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoISF0aGlzLmRpc3BsYXlQcmV2aW91c01vbnRoU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c01vbnRoU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhIXZhbHVlICYmXG4gICAgICAgICAgICB2YWx1ZS5sZW5ndGggPiAyICYmXG4gICAgICAgICAgICAhIXZhbHVlWzBdICYmXG4gICAgICAgICAgICB2YWx1ZVswXSA+PSB0aGlzLm1pblllYXIgJiZcbiAgICAgICAgICAgICEhdmFsdWVbMV0gJiZcbiAgICAgICAgICAgICEhdmFsdWVbMl1cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlQXNTdHJpbmcgPSBgJHt2YWx1ZVswXX0tJHt2YWx1ZVsxXX0tJHt2YWx1ZVsyXX1gO1xuICAgICAgICAgICAgaWYgKGRheWpzKGRhdGVBc1N0cmluZykuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREYXRlKGRheWpzKGRhdGVBc1N0cmluZykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnNldERhdGUobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKHZhbHVlKTtcbiAgICB9XG5cbiAgICB1cGRhdGVOZ01vZGVsKHZhbHVlOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsXyA9IHZhbHVlO1xuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIGJ1aWxkSWQoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIC8vIFRoZSBiYXNlSWQgaXMgZWl0aGVyIGFuIGlkIGdpdmVuIGJ5IHRoZSB1c2VyIG9yIHRoZSB2YWx1ZSBvZiB0aGUgbmFtZS5cbiAgICAgICAgLy8gRm9yIGludGVncmF0aW9uIHB1cnBvc2VzLCB0aGUgY29udGFpbmVyIGZvZWhuLSogbXVzdCBoYXZlIGFuIElkLlxuICAgICAgICBjb25zdCBiYXNlSWQgPSB0aGlzLmlkIHx8IHRoaXMubmFtZTtcbiAgICAgICAgaWYgKCFiYXNlSWQpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXN1ZmZpeCA/IHN1ZmZpeCA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7YmFzZUlkfSR7c3VmZml4fWA7XG4gICAgfVxuXG4gICAgaXNUb2RheShkYXRlOiBkYXlqcy5EYXlqcyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZGF0ZS5pc1RvZGF5KCk7XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZChkYXRlOiBkYXlqcy5EYXlqcyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGUuaXNTYW1lKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICB9XG5cbiAgICBoYW5kbGVVc2VySW5wdXQoZGF0ZTogZGF5anMuRGF5anMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0ZUFzQXJyYXkgPSB0aGlzLmdldERhdGVBc0FycmF5KGRhdGUpO1xuXG4gICAgICAgIHRoaXMudXNlcklucHV0Lm5leHQoZGF0ZUFzQXJyYXkpO1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwoZGF0ZUFzQXJyYXkpO1xuICAgIH1cblxuICAgIHByZXZpb3VzTW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0UHJldmlvdXNXZWVrc09mTW9udGgoKTtcbiAgICB9XG5cbiAgICBuZXh0TW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0TmV4dFdlZWtzT2ZNb250aCgpO1xuICAgIH1cblxuICAgIHVzZXJJbnB1dE1vbnRoKG1vbnRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53ZWVrcyA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuaW5pdGlhbFllYXIsXG4gICAgICAgICAgICAoK21vbnRoICsgMSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckhlbHBlci5pbml0aWFsRGF5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdXNlcklucHV0WWVhcih5ZWFyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53ZWVrcyA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VySGVscGVyLmluaXRpYWxNb250aCxcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckhlbHBlci5pbml0aWFsRGF5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0TW9udGhBc1JlYWRhYmxlKG1vbnRoSW5kZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoTGlzdEl0ZW0uZmluZChlbGVtID0+IGVsZW0udmFsdWUgPT09IG1vbnRoSW5kZXgpLmxhYmVsO1xuICAgIH1cblxuICAgIG9uRGF5c0ZvY3VzaW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuY3VycmVudEZvY3VzZWRFbGVtZW50ID1cbiAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgb25EYXlzRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldERheVRhYkluZGV4KGRheTogRGF5TW9udGgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMuaXNEYXRlSW5SYW5nZShkYXkuZGF0ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUubW9udGgoKSA9PT0gZGF5LmRhdGUubW9udGgoKSAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUueWVhcigpID09PSBkYXkuZGF0ZS55ZWFyKClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUuZGF0ZSgpID09PSBkYXkuZGF0ZS5kYXRlKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1RvZGF5KGRheS5kYXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF5c0luV2VlayA9IFsuLi50aGlzLmRheXNCdXR0b25zRWxlbVJlZi50b0FycmF5KCldLmZpbHRlcihcbiAgICAgICAgICAgIHZhbHVlID0+IHZhbHVlLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpID09PSBudWxsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICEhZGF5c0luV2Vlay5sZW5ndGggJiZcbiAgICAgICAgICAgIGRheS5pc0N1cnJlbnRNb250aCAmJlxuICAgICAgICAgICAgZGF5LmRheU9mTW9udGgudG9TdHJpbmcoKSA9PT1cbiAgICAgICAgICAgICAgICBkYXlzSW5XZWVrWzBdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXktbnVtYmVyJykgJiZcbiAgICAgICAgICAgIChkYXkuZGF0ZS5tb250aCgpICE9PSBkYXlqcygpLm1vbnRoKCkgfHxcbiAgICAgICAgICAgICAgICBkYXkuZGF0ZS55ZWFyKCkgIT09IGRheWpzKCkueWVhcigpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBmb2N1c0RlZmF1bHREYXkoKTogdm9pZCB7XG4gICAgICAgIC8vIEhhdmUgdG8gd2FpdCBmb3IgYSBtaWNybyB0YXNrIGVtcHR5IGFzIHdlJ3JlIGFmZmVjdGluZyB0aGUgRE9NIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgbGlmZWN5Y2xlLlxuICAgICAgICB0aGlzLm5nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmlzaWJsZSAmJiB0aGlzLmRhdGVwaWNrZXJUcmlnZ2VySHRtbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzRGVmYXVsdERheShcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLnNlbGVjdGVkRGF0ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldERheURpc2FibGVkQXR0cmlidXRlKGRheU9mV2VlazogRGF5TW9udGgpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWRheU9mV2Vlay5pc0N1cnJlbnRNb250aCkge1xuICAgICAgICAgICAgcmV0dXJuICdkaXNhYmxlZCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlzRGF0ZUluUmFuZ2UoZGF5T2ZXZWVrLmRhdGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Rpc2FibGVkJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpc1ByZXZpb3VzTW9udGhEaXNhYmxlZChtb250aFllYXI6IE1vbnRoWWVhcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBtb250aFllYXIueWVhciA9PT0gdGhpcy5taW5ZZWFyLnRvU3RyaW5nKCkgJiZcbiAgICAgICAgICAgIG1vbnRoWWVhci5tb250aCA9PT0gJzAnXG4gICAgICAgICAgICA/ICdkaXNhYmxlZCdcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBpc05leHRNb250aERpc2FibGVkKG1vbnRoWWVhcjogTW9udGhZZWFyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG1vbnRoWWVhci55ZWFyID09PSB0aGlzLm1heFllYXIudG9TdHJpbmcoKSAmJlxuICAgICAgICAgICAgbW9udGhZZWFyLm1vbnRoID09PSAnMTEnXG4gICAgICAgICAgICA/ICdkaXNhYmxlZCdcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRGF0ZUluUmFuZ2UoZGF0ZTogZGF5anMuRGF5anMpOiBib29sZWFuIHtcbiAgICAgICAgLy8gTWluIHllYXIgYW5kIGRhdGUgbWFuYWdlbWVudFxuICAgICAgICBjb25zdCBtaW5EYXRlQXNTdHJpbmcgPSBEYXRlUGlja2VySGVscGVyLmdldERhdGVBc1N0cmluZyh0aGlzLm1pbkRhdGUpO1xuICAgICAgICBpZiAobWluRGF0ZUFzU3RyaW5nKSB7XG4gICAgICAgICAgICBjb25zdCBtaW5EYXRlQXNEYXlqcyA9IGRheWpzKG1pbkRhdGVBc1N0cmluZyk7XG4gICAgICAgICAgICBpZiAobWluRGF0ZUFzRGF5anMuaXNWYWxpZCgpICYmIGRhdGUuaXNCZWZvcmUobWluRGF0ZUFzRGF5anMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRlLnllYXIoKSA8IHRoaXMubWluWWVhcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIE1heCB5ZWFyIGFuZCBkYXRlIG1hbmFnZW1lbnRcbiAgICAgICAgY29uc3QgbWF4RGF0ZUFzU3RyaW5nID0gRGF0ZVBpY2tlckhlbHBlci5nZXREYXRlQXNTdHJpbmcodGhpcy5tYXhEYXRlKTtcbiAgICAgICAgaWYgKG1heERhdGVBc1N0cmluZykge1xuICAgICAgICAgICAgY29uc3QgbWF4RGF0ZUFzRGF5anMgPSBkYXlqcyhtYXhEYXRlQXNTdHJpbmcpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG1heERhdGVBc0RheWpzLmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgICAgIGRhdGUuaXNBZnRlcihtYXhEYXRlQXNEYXlqcykgJiZcbiAgICAgICAgICAgICAgICBkYXRlLnllYXIoKSA8PSBtYXhEYXRlQXNEYXlqcy55ZWFyKClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0ZS55ZWFyKCkgPiB0aGlzLm1heFllYXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVEYXRlcGlja2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBvcHVsYXRlTW9udGhMaXN0KCk7XG4gICAgICAgIHRoaXMucG9wdWxhdGVZZWFyTGlzdCgpO1xuICAgICAgICB0aGlzLndlZWtEYXlzID0gdGhpcy5kYXRlUGlja2VySGVscGVyLmdldFdlZWtEYXlzKCk7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICAgICAgZGF5anMoKS5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLllFQVJfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICBkYXlqcygpLmZvcm1hdCh0aGlzLmRhdGVQaWNrZXJIZWxwZXIuTU9OVEhfU1RSSU5HX05VTUJFUl9GT1JNQVQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREYXRlKGRhdGU6IGRheWpzLkRheWpzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcblxuICAgICAgICAvLyBFaXRoZXIgd2UgaGF2ZSBhIGRhdGUgdG8gc2V0IG9yIHdlIHRha2UgdG9kYXlcbiAgICAgICAgY29uc3QgZGF0ZVRvRm9ybWF0ID0gZGF0ZSA/IGRhdGUgOiBkYXlqcygpO1xuICAgICAgICB0aGlzLndlZWtzID0gdGhpcy5kYXRlUGlja2VySGVscGVyLmdldFdlZWtzT2ZNb250aChcbiAgICAgICAgICAgIGRhdGVUb0Zvcm1hdC5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLllFQVJfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICBkYXRlVG9Gb3JtYXQuZm9ybWF0KFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckhlbHBlci5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGRhdGVUb0Zvcm1hdC5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLkRBWV9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGVBc0FycmF5KGRhdGU6IGRheWpzLkRheWpzKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgK2RhdGUuZm9ybWF0KHRoaXMuZGF0ZVBpY2tlckhlbHBlci5ZRUFSX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgK2RhdGUuZm9ybWF0KHRoaXMuZGF0ZVBpY2tlckhlbHBlci5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVCksXG4gICAgICAgICAgICArZGF0ZS5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLkRBWV9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzT25EYXRlcGlja2VyVHJpZ2dlcihcbiAgICAgICAgd2FzT3BlbjogYm9vbGVhbixcbiAgICAgICAgaXNWaXNpYmxlOiBib29sZWFuXG4gICAgKTogdm9pZCB7XG4gICAgICAgIC8vIEZvY3VzIGJhY2sgb24gdGhlIHRyaWdnZXIuIE5vIG5lZWQgZm9yIGEgc2V0VGltZW91dCBhcyB0aGUgdHJpZ2dlciBzaG91bGQgc3RpbGwgYmUgaW4gdGhlIERPTS5cbiAgICAgICAgLy8gT25seSBkb2VzIGl0IHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZCBmcm9tIGEgb3BlbiBzdGF0ZSB0byBhdm9pZCB0byBzZXRcbiAgICAgICAgLy8gdGhlIGZvY3VzIHdoZW4gdGhlIHBhZ2UgbG9hZHMuXG4gICAgICAgIGlmICh3YXNPcGVuICYmICFpc1Zpc2libGUgJiYgdGhpcy5kYXRlcGlja2VyVHJpZ2dlckh0bWxFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXJUcmlnZ2VySHRtbEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVNb250aExpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9udGhMaXN0SXRlbSA9IGRheWpzKClcbiAgICAgICAgICAgIC5sb2NhbGVEYXRhKClcbiAgICAgICAgICAgIC5tb250aHMoKVxuICAgICAgICAgICAgLm1hcCgobW9udGg6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogbW9udGgsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGluZGV4LnRvU3RyaW5nKClcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBvcHVsYXRlWWVhckxpc3QoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogbnVtYmVyW10gPT5cbiAgICAgICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IGVuZCAtIHN0YXJ0ICsgMSB9LCAodiwgaykgPT4gayArIHN0YXJ0KTtcblxuICAgICAgICBpZiAoISF0aGlzLm1pbkRhdGUgJiYgISF0aGlzLm1pbkRhdGUubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLm1pblllYXIgPSB0aGlzLm1pbkRhdGVbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEhdGhpcy5tYXhEYXRlICYmICEhdGhpcy5tYXhEYXRlLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5tYXhZZWFyID0gdGhpcy5tYXhEYXRlWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy55ZWFyTGlzdEl0ZW0gPSByYW5nZSh0aGlzLm1pblllYXIsIHRoaXMubWF4WWVhcikubWFwKFxuICAgICAgICAgICAgKHllYXI6IG51bWJlcikgPT4gKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogeWVhci50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB5ZWFyLnRvU3RyaW5nKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbktleURvd25Jbm5lcihrZXlFdmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBJRSBkb2Vzbid0IHN1cHBvcnQga2V5RXZlbnQuY29kZSwgYW5kIGhhcyBkaWZmZXJlbnQgdmFsdWVzXG4gICAgICAgIC8vIGluIGtleUV2ZW50LmtleSAoRG93biBpbnN0ZWFkIG9mIEFycm93RG93biBmb3IgaW5zdGFuY2UpLCBoZW5jZSB0aGUgbXVsdGktc3VwcG9ydC5cbiAgICAgICAgY29uc3QgaWUxMUNvbXBhdGlibGVDb2RlID0ga2V5RXZlbnQuY29kZSB8fCBrZXlFdmVudC5rZXk7XG4gICAgICAgIHN3aXRjaCAoaWUxMUNvbXBhdGlibGVDb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdEb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5mb2N1c05leHRXZWVrRGF5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdVcCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzUHJldmlvdXNXZWVrRGF5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdTcGFjZWJhcic6XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2xpY2snKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdSaWdodCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzTmV4dERheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTGVmdCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuZm9jdXNQcmV2aW91c0RheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGtleUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGtleUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW2lkXT1cImJ1aWxkSWQoJ2RhdGVwaWNrZXJfd3JhcHBlcicpXCJcbiAgICBjbGFzcz1cImRhdGVwaWNrZXJfd3JhcHBlclwiXG4gICAgKm5nSWY9XCJpc0RhdGVwaWNrZXJWaXNpYmxlXCJcbiAgICBbY2RrVHJhcEZvY3VzXT1cIiEhZGF0ZXBpY2tlclRyaWdnZXJIdG1sRWxlbWVudFwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgcm9sZT1cImFwcGxpY2F0aW9uXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnZm9laG4tZGF0ZS1waWNrZXIuY29udGFpbmVyLmFyaWEtbGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICBcIlxuPlxuICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJjbG9zZWFibGVcIlxuICAgICAgICAoY2xpY2spPVwiaXNEYXRlcGlja2VyVmlzaWJsZSA9IGZhbHNlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGNsb3NlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICdmb2Vobi1kYXRlLXBpY2tlci5jbG9zZS1idXR0b24uYXJpYS1sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICBcIlxuICAgICAgICBbaWRdPVwiYnVpbGRJZCgnY2xvc2VCdXR0b24nKVwiXG4gICAgPlxuICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXZcbiAgICAgICAgW2lkXT1cImJ1aWxkSWQoJ2RhdGVwaWNrZXJfaGVhZGVyJylcIlxuICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBkYXRlcGlja2VyX2hlYWRlclwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudE1vbnRoWWVhciB8IGFzeW5jIGFzIG1vbnRoWWVhclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCdwcmV2aW91cy1tb250aCcpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBkYXRlcGlja2VyLW5hdi1tb250aC1idG5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c01vbnRoKClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzUHJldmlvdXNNb250aERpc2FibGVkKG1vbnRoWWVhcilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tbGVmdFxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tZGF0ZS1waWNrZXIucHJldmlvdXMtbW9udGgtYnV0dG9uLnRpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9mb2Vobi1pY29uLWNoZXZyb24tbGVmdD5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgnbW9udGgteWVhci1sYWJlbCcpXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3Itb25seVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIuYWN0dWFsLW1vbnRoLWRpc3BsYXllZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHt7IGdldE1vbnRoQXNSZWFkYWJsZShtb250aFllYXIubW9udGgpIH19IHt7IG1vbnRoWWVhci55ZWFyIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8Zm9laG4tc2VsZWN0XG4gICAgICAgICAgICAgICAgW2lkXT1cImJ1aWxkSWQoJ21vbnRoLWlucHV0JylcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxpZ24tc2VsZi1jZW50ZXIgbW9udGgtaW5wdXRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIubW9udGgtaW5wdXQubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaXNMYWJlbFNyT25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZWxlbWVudHNdPVwibW9udGhMaXN0SXRlbVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cIm1vbnRoWWVhci5tb250aFwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICh1c2VySW5wdXQpPVwidXNlcklucHV0TW9udGgoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9mb2Vobi1zZWxlY3Q+XG4gICAgICAgICAgICA8Zm9laG4tc2VsZWN0XG4gICAgICAgICAgICAgICAgW2lkXT1cImJ1aWxkSWQoJ3llYXItaW5wdXQnKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhbGlnbi1zZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZm9laG4tZGF0ZS1waWNrZXIuc2NyZWVuLXJlYWRlci55ZWFyLWlucHV0LmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2lzTGFiZWxTck9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2VsZW1lbnRzXT1cInllYXJMaXN0SXRlbVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cIm1vbnRoWWVhci55ZWFyXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKHVzZXJJbnB1dCk9XCJ1c2VySW5wdXRZZWFyKCRldmVudClcIlxuICAgICAgICAgICAgPjwvZm9laG4tc2VsZWN0PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCduZXh0LW1vbnRoJylcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIGRhdGVwaWNrZXItbmF2LW1vbnRoLWJ0blwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRNb250aCgpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc05leHRNb250aERpc2FibGVkKG1vbnRoWWVhcilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tcmlnaHRcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWRhdGUtcGlja2VyLm5leHQtbW9udGgtYnV0dG9uLnRpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9mb2Vobi1pY29uLWNoZXZyb24tcmlnaHQ+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHRhYmxlXG4gICAgICAgIFtpZF09XCJidWlsZElkKCdkYXRlcGlja2VyX3RhYmxlJylcIlxuICAgICAgICByb2xlPVwiZ3JpZFwiXG4gICAgICAgIChmb2N1c2luKT1cIm9uRGF5c0ZvY3VzaW4oKVwiXG4gICAgICAgIChmb2N1c291dCk9XCJvbkRheXNGb2N1c291dCgpXCJcbiAgICA+XG4gICAgICAgIDx0aGVhZCByb2xlPVwicHJlc2VudGF0aW9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8dHIgcm9sZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgd2Vla2RheSBvZiB3ZWVrRGF5c1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4tYWJiclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwid2Vla2RheS5zdWJzdHIoMCwgMilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIndlZWtkYXlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mb2Vobi1hYmJyPlxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHkgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgPHRyIHJvbGU9XCJyb3dcIiAqbmdGb3I9XCJsZXQgd2VlayBvZiB3ZWVrczsgbGV0IGluZGV4Um93ID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheU9mV2VlayBvZiB3ZWVrOyBsZXQgaW5kZXhDb2x1bW4gPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjZGF5QnV0dG9uRWxlbVJlZlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIhZGF5T2ZXZWVrLmlzQ3VycmVudE1vbnRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCdkYXlfJyArIGluZGV4Um93ICsgJ18nICsgaW5kZXhDb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJnZXREYXlUYWJJbmRleChkYXlPZldlZWspXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4taW5mb109XCIhaXNUb2RheShkYXlPZldlZWsuZGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiaXNUb2RheShkYXlPZldlZWsuZGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaXNTZWxlY3RlZChkYXlPZldlZWsuZGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWVrRGF5c1tpbmRleENvbHVtbl0gK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrLmRhdGVBc1JlYWRhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1pcy10b2RheV09XCJpc1RvZGF5KGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWlzLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWQoZGF5T2ZXZWVrLmRhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcm93LWluZGV4XT1cImluZGV4Um93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY29sdW1uLWluZGV4XT1cImluZGV4Q29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRheS1udW1iZXJdPVwiZGF5T2ZXZWVrLmRheU9mTW9udGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZ2V0RGF5RGlzYWJsZWRBdHRyaWJ1dGUoZGF5T2ZXZWVrKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVXNlcklucHV0KGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRheU9mV2Vlay5kYXlPZk1vbnRoIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
385
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2ZvZWhuLWRhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1kYXRlLXBpY2tlci9mb2Vobi1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7QUFFN0UsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQU90QixNQUFNLE9BQU8sd0JBQXdCO0lBNERqQyxZQUNZLFVBQWdDLEVBQ2hDLE1BQWMsRUFDZCxjQUFpQztRQUZqQyxlQUFVLEdBQVYsVUFBVSxDQUFzQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBdEQ3QyxZQUFPLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBRy9CLFlBQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENB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RSxDQUFDLFFBQVEsQ0FBQztnQkFRakMsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF5TW9udGggfSBmcm9tICcuL2RheS1tb250aC50eXBlJztcbmltcG9ydCB7IE1vbnRoWWVhciB9IGZyb20gJy4vbW9udGgteWVhci50eXBlJztcbmltcG9ydCB7IERhdGVQaWNrZXJIZWxwZXIgfSBmcm9tICcuL2RhdGUtcGlja2VyLmhlbHBlcic7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JtU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vZm9laG4tY2hlY2thYmxlcy9mb3JtLXNlbGVjdC1vcHRpb24nO1xuXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IGlzVG9kYXkgZnJvbSAnZGF5anMvcGx1Z2luL2lzVG9kYXknO1xuaW1wb3J0IHsgRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIgfSBmcm9tICcuL2RhdGUtcGlja2VyLW5hdmlnYXRpb24uaGVscGVyJztcblxuZGF5anMuZXh0ZW5kKGlzVG9kYXkpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWRhdGUtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWRhdGUtcGlja2VyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobkRhdGVQaWNrZXJDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgbWluWWVhciA9IGRheWpzKCkueWVhcigpIC0gMTAwO1xuXG4gICAgQElucHV0KClcbiAgICBtYXhZZWFyID0gZGF5anMoKS55ZWFyKCkgKyAxMDtcblxuICAgIEBJbnB1dCgpXG4gICAgbWluRGF0ZTogbnVtYmVyW107XG5cbiAgICBASW5wdXQoKVxuICAgIG1heERhdGU6IG51bWJlcltdO1xuXG4gICAgQElucHV0KClcbiAgICBkYXRlcGlja2VyVHJpZ2dlckh0bWxFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VhYmxlID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHVzZXJJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyW10+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBpc0RhdGVwaWNrZXJWaXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBob3N0SWQ6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGRyZW4oJ2RheUJ1dHRvbkVsZW1SZWYnKVxuICAgIGRheXNCdXR0b25zRWxlbVJlZjogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgd2Vla0RheXM6IHN0cmluZ1tdID0gW107XG4gICAgd2Vla3M6IERheU1vbnRoW11bXTtcblxuICAgIHNlbGVjdGVkRGF0ZTogZGF5anMuRGF5anM7XG4gICAgY3VycmVudE1vbnRoWWVhcjogT2JzZXJ2YWJsZTxNb250aFllYXI+O1xuXG4gICAgbW9kZWxfOiBudW1iZXJbXTtcbiAgICBtb250aExpc3RJdGVtOiBGb3JtU2VsZWN0T3B0aW9uW10gPSBbXTtcbiAgICB5ZWFyTGlzdEl0ZW06IEZvcm1TZWxlY3RPcHRpb25bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIGtleWJvYXJkTmF2aWdhdGlvbkFsbG93ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGN1cnJlbnRMYW5ndWFnZUNvZGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIGRhdGVQaWNrZXJIZWxwZXIgPSBuZXcgRGF0ZVBpY2tlckhlbHBlcigpO1xuICAgIHByaXZhdGUgZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIgPSBuZXcgRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheU5leHRNb250aFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheVByZXZpb3VzTW9udGhTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpY3Rpb25hcnk6IFNka0RpY3Rpb25hcnlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLmN1cnJlbnRNb250aFllYXIgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZGlzcGxheWVkTW9udGhZZWFyO1xuICAgICAgICB0aGlzLmRpc3BsYXlOZXh0TW9udGhTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmRpc3BsYXlOZXh0TW9udGguc3Vic2NyaWJlKFxuICAgICAgICAgICAgKCkgPT4gdGhpcy5uZXh0TW9udGgoKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c01vbnRoU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5kaXNwbGF5UHJldmlvdXNNb250aC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoKSA9PiB0aGlzLnByZXZpb3VzTW9udGgoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpc0RhdGVwaWNrZXJWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgaXNEYXRlcGlja2VyVmlzaWJsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgLy8gU3RvcmUgdGhlIHByZXZpb3VzIHZhbHVlIHRvIGhhbmRsZSB0cmFuc2l0aW9ucyBmcm9tIG9uZSBzdGF0ZSB0byBhbm90aGVyLlxuICAgICAgICBjb25zdCB3YXNPcGVuID0gdGhpcy5pc1Zpc2libGU7XG5cbiAgICAgICAgLy8gRW5zdXJlIHdlIGFsd2F5cyBpbml0aWFsaXplIGRhdGUgcGlja2VyIGRlcGVuZGluZyBvbiBpdCdzIG1vZGVsXG4gICAgICAgIGlmICghd2FzT3BlbiAmJiB0aGlzLmNsb3NlYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMubW9kZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB2YWw7XG4gICAgICAgIHRoaXMuaXNEYXRlcGlja2VyVmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuaXNWaXNpYmxlKTtcblxuICAgICAgICB0aGlzLmZvY3VzRGVmYXVsdERheSgpO1xuICAgICAgICB0aGlzLmZvY3VzT25EYXRlcGlja2VyVHJpZ2dlcih3YXNPcGVuLCB2YWwpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gICAgZ2V0IG1vZGVsKCk6IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWxfO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IG1vZGVsKHZhbHVlOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodmFsdWUpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVLZXlib2FyZFVwRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VhYmxlICYmIGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEYXRlcGlja2VyVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlS2V5Ym9hcmREb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCkge1xuICAgICAgICAgICAgdGhpcy5vbktleURvd25Jbm5lcihldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gRW5zdXJlcyB0aGF0IHRoZSBob3N0IGhhcyBhbiBJZCBmb3IgaW5zdHJ1bWVudGFsaXphdGlvbiBvZiB0aGUgRE9NIGJ5IGF1dG9tYXRlZCB0ZXN0cy5cbiAgICAgICAgdGhpcy5ob3N0SWQgPSB0aGlzLmJ1aWxkSWQoKTtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5ob3N0SWQgPSB0aGlzLmhvc3RJZDtcblxuICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZUNvZGVTdWJzY3JpcHRpb24gPSB0aGlzLmRpY3Rpb25hcnlcbiAgICAgICAgICAgIC5nZXRDdXJyZW50TGFuZ3VhZ2VDb2RlKClcbiAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb2RlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJIZWxwZXJcbiAgICAgICAgICAgICAgICAgICAgLmxvYWRMb2NhbGUoY29kZSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbG9jYWxlICcke2NvZGV9JyBkb2VzIG5vdCBleGlzdC4gRmFsbGJhY2sgdG8gJ2VuLidgXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVEYXRlcGlja2VyKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRheXNCdXR0b25zRWxlbVJlZi5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAvLyBGb3IgdGVzdHMgcHVycG9zZSwgd2hlbiBzZXR0aW5nIGNvbXBvbmVudCBtaW5EYXRlLCBhdm9pZHMgaGF2aW5nIGVycm9yOlxuICAgICAgICAgICAgLy8gXCJORzAxMDA6IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3I6IEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWQuXG4gICAgICAgICAgICAvLyBQcmV2aW91cyB2YWx1ZSBmb3IgJ3RhYmluZGV4JzogJy0xJy4gQ3VycmVudCB2YWx1ZTogJzAnXCJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5kYXlzQnV0dG9uc0VsZW1SZWYgPSB0aGlzLmRheXNCdXR0b25zRWxlbVJlZjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghIXRoaXMuY3VycmVudExhbmd1YWdlQ29kZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2VDb2RlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEhdGhpcy5kaXNwbGF5TmV4dE1vbnRoU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlOZXh0TW9udGhTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoISF0aGlzLmRpc3BsYXlQcmV2aW91c01vbnRoU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c01vbnRoU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhIXZhbHVlICYmXG4gICAgICAgICAgICB2YWx1ZS5sZW5ndGggPiAyICYmXG4gICAgICAgICAgICAhIXZhbHVlWzBdICYmXG4gICAgICAgICAgICB2YWx1ZVswXSA+PSB0aGlzLm1pblllYXIgJiZcbiAgICAgICAgICAgICEhdmFsdWVbMV0gJiZcbiAgICAgICAgICAgICEhdmFsdWVbMl1cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlQXNTdHJpbmcgPSBgJHt2YWx1ZVswXX0tJHt2YWx1ZVsxXX0tJHt2YWx1ZVsyXX1gO1xuICAgICAgICAgICAgaWYgKGRheWpzKGRhdGVBc1N0cmluZykuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREYXRlKGRheWpzKGRhdGVBc1N0cmluZykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnNldERhdGUobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKHZhbHVlKTtcbiAgICB9XG5cbiAgICB1cGRhdGVOZ01vZGVsKHZhbHVlOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsXyA9IHZhbHVlO1xuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIGJ1aWxkSWQoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIC8vIFRoZSBiYXNlSWQgaXMgZWl0aGVyIGFuIGlkIGdpdmVuIGJ5IHRoZSB1c2VyIG9yIHRoZSB2YWx1ZSBvZiB0aGUgbmFtZS5cbiAgICAgICAgLy8gRm9yIGludGVncmF0aW9uIHB1cnBvc2VzLCB0aGUgY29udGFpbmVyIGZvZWhuLSogbXVzdCBoYXZlIGFuIElkLlxuICAgICAgICBjb25zdCBiYXNlSWQgPSB0aGlzLmlkIHx8IHRoaXMubmFtZTtcbiAgICAgICAgaWYgKCFiYXNlSWQpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXN1ZmZpeCA/IHN1ZmZpeCA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7YmFzZUlkfSR7c3VmZml4fWA7XG4gICAgfVxuXG4gICAgaXNUb2RheShkYXRlOiBkYXlqcy5EYXlqcyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZGF0ZS5pc1RvZGF5KCk7XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZChkYXRlOiBkYXlqcy5EYXlqcyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGUuaXNTYW1lKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICB9XG5cbiAgICBoYW5kbGVVc2VySW5wdXQoZGF0ZTogZGF5anMuRGF5anMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0ZUFzQXJyYXkgPSB0aGlzLmdldERhdGVBc0FycmF5KGRhdGUpO1xuXG4gICAgICAgIHRoaXMudXNlcklucHV0Lm5leHQoZGF0ZUFzQXJyYXkpO1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwoZGF0ZUFzQXJyYXkpO1xuICAgIH1cblxuICAgIHByZXZpb3VzTW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0UHJldmlvdXNXZWVrc09mTW9udGgoKTtcbiAgICB9XG5cbiAgICBuZXh0TW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0TmV4dFdlZWtzT2ZNb250aCgpO1xuICAgIH1cblxuICAgIHVzZXJJbnB1dE1vbnRoKG1vbnRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53ZWVrcyA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuaW5pdGlhbFllYXIsXG4gICAgICAgICAgICAoK21vbnRoICsgMSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckhlbHBlci5pbml0aWFsRGF5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdXNlcklucHV0WWVhcih5ZWFyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53ZWVrcyA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VySGVscGVyLmluaXRpYWxNb250aCxcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckhlbHBlci5pbml0aWFsRGF5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0TW9udGhBc1JlYWRhYmxlKG1vbnRoSW5kZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoTGlzdEl0ZW0uZmluZChlbGVtID0+IGVsZW0udmFsdWUgPT09IG1vbnRoSW5kZXgpLmxhYmVsO1xuICAgIH1cblxuICAgIG9uRGF5c0ZvY3VzaW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuY3VycmVudEZvY3VzZWRFbGVtZW50ID1cbiAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgb25EYXlzRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldERheVRhYkluZGV4KGRheTogRGF5TW9udGgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMuaXNEYXRlSW5SYW5nZShkYXkuZGF0ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUubW9udGgoKSA9PT0gZGF5LmRhdGUubW9udGgoKSAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUueWVhcigpID09PSBkYXkuZGF0ZS55ZWFyKClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUuZGF0ZSgpID09PSBkYXkuZGF0ZS5kYXRlKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1RvZGF5KGRheS5kYXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF5c0luV2VlayA9IFsuLi50aGlzLmRheXNCdXR0b25zRWxlbVJlZi50b0FycmF5KCldLmZpbHRlcihcbiAgICAgICAgICAgIHZhbHVlID0+IHZhbHVlLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpID09PSBudWxsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICEhZGF5c0luV2Vlay5sZW5ndGggJiZcbiAgICAgICAgICAgIGRheS5pc0N1cnJlbnRNb250aCAmJlxuICAgICAgICAgICAgZGF5LmRheU9mTW9udGgudG9TdHJpbmcoKSA9PT1cbiAgICAgICAgICAgICAgICBkYXlzSW5XZWVrWzBdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXktbnVtYmVyJykgJiZcbiAgICAgICAgICAgIChkYXkuZGF0ZS5tb250aCgpICE9PSBkYXlqcygpLm1vbnRoKCkgfHxcbiAgICAgICAgICAgICAgICBkYXkuZGF0ZS55ZWFyKCkgIT09IGRheWpzKCkueWVhcigpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBmb2N1c0RlZmF1bHREYXkoKTogdm9pZCB7XG4gICAgICAgIC8vIEhhdmUgdG8gd2FpdCBmb3IgYSBtaWNybyB0YXNrIGVtcHR5IGFzIHdlJ3JlIGFmZmVjdGluZyB0aGUgRE9NIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgbGlmZWN5Y2xlLlxuICAgICAgICB0aGlzLm5nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmlzaWJsZSAmJiB0aGlzLmRhdGVwaWNrZXJUcmlnZ2VySHRtbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzRGVmYXVsdERheShcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLnNlbGVjdGVkRGF0ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldERheURpc2FibGVkQXR0cmlidXRlKGRheU9mV2VlazogRGF5TW9udGgpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWRheU9mV2Vlay5pc0N1cnJlbnRNb250aCkge1xuICAgICAgICAgICAgcmV0dXJuICdkaXNhYmxlZCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlzRGF0ZUluUmFuZ2UoZGF5T2ZXZWVrLmRhdGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Rpc2FibGVkJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpc1ByZXZpb3VzTW9udGhEaXNhYmxlZChtb250aFllYXI6IE1vbnRoWWVhcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBtb250aFllYXIueWVhciA9PT0gdGhpcy5taW5ZZWFyLnRvU3RyaW5nKCkgJiZcbiAgICAgICAgICAgIG1vbnRoWWVhci5tb250aCA9PT0gJzAnXG4gICAgICAgICAgICA/ICdkaXNhYmxlZCdcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBpc05leHRNb250aERpc2FibGVkKG1vbnRoWWVhcjogTW9udGhZZWFyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG1vbnRoWWVhci55ZWFyID09PSB0aGlzLm1heFllYXIudG9TdHJpbmcoKSAmJlxuICAgICAgICAgICAgbW9udGhZZWFyLm1vbnRoID09PSAnMTEnXG4gICAgICAgICAgICA/ICdkaXNhYmxlZCdcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRGF0ZUluUmFuZ2UoZGF0ZTogZGF5anMuRGF5anMpOiBib29sZWFuIHtcbiAgICAgICAgLy8gTWluIHllYXIgYW5kIGRhdGUgbWFuYWdlbWVudFxuICAgICAgICBjb25zdCBtaW5EYXRlQXNTdHJpbmcgPSBEYXRlUGlja2VySGVscGVyLmdldERhdGVBc1N0cmluZyh0aGlzLm1pbkRhdGUpO1xuICAgICAgICBpZiAobWluRGF0ZUFzU3RyaW5nKSB7XG4gICAgICAgICAgICBjb25zdCBtaW5EYXRlQXNEYXlqcyA9IGRheWpzKG1pbkRhdGVBc1N0cmluZyk7XG4gICAgICAgICAgICBpZiAobWluRGF0ZUFzRGF5anMuaXNWYWxpZCgpICYmIGRhdGUuaXNCZWZvcmUobWluRGF0ZUFzRGF5anMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRlLnllYXIoKSA8IHRoaXMubWluWWVhcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIE1heCB5ZWFyIGFuZCBkYXRlIG1hbmFnZW1lbnRcbiAgICAgICAgY29uc3QgbWF4RGF0ZUFzU3RyaW5nID0gRGF0ZVBpY2tlckhlbHBlci5nZXREYXRlQXNTdHJpbmcodGhpcy5tYXhEYXRlKTtcbiAgICAgICAgaWYgKG1heERhdGVBc1N0cmluZykge1xuICAgICAgICAgICAgY29uc3QgbWF4RGF0ZUFzRGF5anMgPSBkYXlqcyhtYXhEYXRlQXNTdHJpbmcpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG1heERhdGVBc0RheWpzLmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgICAgIGRhdGUuaXNBZnRlcihtYXhEYXRlQXNEYXlqcykgJiZcbiAgICAgICAgICAgICAgICBkYXRlLnllYXIoKSA8PSBtYXhEYXRlQXNEYXlqcy55ZWFyKClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0ZS55ZWFyKCkgPiB0aGlzLm1heFllYXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVEYXRlcGlja2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBvcHVsYXRlTW9udGhMaXN0KCk7XG4gICAgICAgIHRoaXMucG9wdWxhdGVZZWFyTGlzdCgpO1xuICAgICAgICB0aGlzLndlZWtEYXlzID0gdGhpcy5kYXRlUGlja2VySGVscGVyLmdldFdlZWtEYXlzKCk7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICAgICAgZGF5anMoKS5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLllFQVJfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICBkYXlqcygpLmZvcm1hdCh0aGlzLmRhdGVQaWNrZXJIZWxwZXIuTU9OVEhfU1RSSU5HX05VTUJFUl9GT1JNQVQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREYXRlKGRhdGU6IGRheWpzLkRheWpzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcblxuICAgICAgICAvLyBFaXRoZXIgd2UgaGF2ZSBhIGRhdGUgdG8gc2V0IG9yIHdlIHRha2UgdG9kYXlcbiAgICAgICAgY29uc3QgZGF0ZVRvRm9ybWF0ID0gZGF0ZSA/IGRhdGUgOiBkYXlqcygpO1xuICAgICAgICB0aGlzLndlZWtzID0gdGhpcy5kYXRlUGlja2VySGVscGVyLmdldFdlZWtzT2ZNb250aChcbiAgICAgICAgICAgIGRhdGVUb0Zvcm1hdC5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLllFQVJfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICBkYXRlVG9Gb3JtYXQuZm9ybWF0KFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckhlbHBlci5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGRhdGVUb0Zvcm1hdC5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLkRBWV9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGVBc0FycmF5KGRhdGU6IGRheWpzLkRheWpzKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgK2RhdGUuZm9ybWF0KHRoaXMuZGF0ZVBpY2tlckhlbHBlci5ZRUFSX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgK2RhdGUuZm9ybWF0KHRoaXMuZGF0ZVBpY2tlckhlbHBlci5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVCksXG4gICAgICAgICAgICArZGF0ZS5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLkRBWV9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzT25EYXRlcGlja2VyVHJpZ2dlcihcbiAgICAgICAgd2FzT3BlbjogYm9vbGVhbixcbiAgICAgICAgaXNWaXNpYmxlOiBib29sZWFuXG4gICAgKTogdm9pZCB7XG4gICAgICAgIC8vIEZvY3VzIGJhY2sgb24gdGhlIHRyaWdnZXIuIE5vIG5lZWQgZm9yIGEgc2V0VGltZW91dCBhcyB0aGUgdHJpZ2dlciBzaG91bGQgc3RpbGwgYmUgaW4gdGhlIERPTS5cbiAgICAgICAgLy8gT25seSBkb2VzIGl0IHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZCBmcm9tIGEgb3BlbiBzdGF0ZSB0byBhdm9pZCB0byBzZXRcbiAgICAgICAgLy8gdGhlIGZvY3VzIHdoZW4gdGhlIHBhZ2UgbG9hZHMuXG4gICAgICAgIGlmICh3YXNPcGVuICYmICFpc1Zpc2libGUgJiYgdGhpcy5kYXRlcGlja2VyVHJpZ2dlckh0bWxFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXJUcmlnZ2VySHRtbEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVNb250aExpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9udGhMaXN0SXRlbSA9IGRheWpzKClcbiAgICAgICAgICAgIC5sb2NhbGVEYXRhKClcbiAgICAgICAgICAgIC5tb250aHMoKVxuICAgICAgICAgICAgLm1hcCgobW9udGg6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogbW9udGgsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGluZGV4LnRvU3RyaW5nKClcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBvcHVsYXRlWWVhckxpc3QoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogbnVtYmVyW10gPT5cbiAgICAgICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IGVuZCAtIHN0YXJ0ICsgMSB9LCAodiwgaykgPT4gayArIHN0YXJ0KTtcblxuICAgICAgICBpZiAoISF0aGlzLm1pbkRhdGUgJiYgISF0aGlzLm1pbkRhdGUubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLm1pblllYXIgPSB0aGlzLm1pbkRhdGVbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEhdGhpcy5tYXhEYXRlICYmICEhdGhpcy5tYXhEYXRlLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5tYXhZZWFyID0gdGhpcy5tYXhEYXRlWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy55ZWFyTGlzdEl0ZW0gPSByYW5nZSh0aGlzLm1pblllYXIsIHRoaXMubWF4WWVhcikubWFwKFxuICAgICAgICAgICAgKHllYXI6IG51bWJlcikgPT4gKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogeWVhci50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB5ZWFyLnRvU3RyaW5nKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbktleURvd25Jbm5lcihrZXlFdmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBJRSBkb2Vzbid0IHN1cHBvcnQga2V5RXZlbnQuY29kZSwgYW5kIGhhcyBkaWZmZXJlbnQgdmFsdWVzXG4gICAgICAgIC8vIGluIGtleUV2ZW50LmtleSAoRG93biBpbnN0ZWFkIG9mIEFycm93RG93biBmb3IgaW5zdGFuY2UpLCBoZW5jZSB0aGUgbXVsdGktc3VwcG9ydC5cbiAgICAgICAgY29uc3QgaWUxMUNvbXBhdGlibGVDb2RlID0ga2V5RXZlbnQuY29kZSB8fCBrZXlFdmVudC5rZXk7XG4gICAgICAgIHN3aXRjaCAoaWUxMUNvbXBhdGlibGVDb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdEb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5mb2N1c05leHRXZWVrRGF5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdVcCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzUHJldmlvdXNXZWVrRGF5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdTcGFjZWJhcic6XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2xpY2snKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdSaWdodCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzTmV4dERheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTGVmdCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuZm9jdXNQcmV2aW91c0RheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGtleUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGtleUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW2lkXT1cImJ1aWxkSWQoJ2RhdGVwaWNrZXJfd3JhcHBlcicpXCJcbiAgICBjbGFzcz1cImRhdGVwaWNrZXJfd3JhcHBlclwiXG4gICAgKm5nSWY9XCJpc0RhdGVwaWNrZXJWaXNpYmxlXCJcbiAgICBbY2RrVHJhcEZvY3VzXT1cIiEhZGF0ZXBpY2tlclRyaWdnZXJIdG1sRWxlbWVudFwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgcm9sZT1cImFwcGxpY2F0aW9uXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnZm9laG4tZGF0ZS1waWNrZXIuY29udGFpbmVyLmFyaWEtbGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICBcIlxuPlxuICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJjbG9zZWFibGVcIlxuICAgICAgICAoY2xpY2spPVwiaXNEYXRlcGlja2VyVmlzaWJsZSA9IGZhbHNlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGNsb3NlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICdmb2Vobi1kYXRlLXBpY2tlci5jbG9zZS1idXR0b24uYXJpYS1sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICBcIlxuICAgICAgICBbaWRdPVwiYnVpbGRJZCgnY2xvc2VCdXR0b24nKVwiXG4gICAgPlxuICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXZcbiAgICAgICAgW2lkXT1cImJ1aWxkSWQoJ2RhdGVwaWNrZXJfaGVhZGVyJylcIlxuICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBkYXRlcGlja2VyX2hlYWRlclwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudE1vbnRoWWVhciB8IGFzeW5jIGFzIG1vbnRoWWVhclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCdwcmV2aW91cy1tb250aCcpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBkYXRlcGlja2VyLW5hdi1tb250aC1idG5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c01vbnRoKClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzUHJldmlvdXNNb250aERpc2FibGVkKG1vbnRoWWVhcilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tbGVmdFxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tZGF0ZS1waWNrZXIucHJldmlvdXMtbW9udGgtYnV0dG9uLnRpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9mb2Vobi1pY29uLWNoZXZyb24tbGVmdD5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgnbW9udGgteWVhci1sYWJlbCcpXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3Itb25seVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIuYWN0dWFsLW1vbnRoLWRpc3BsYXllZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHt7IGdldE1vbnRoQXNSZWFkYWJsZShtb250aFllYXIubW9udGgpIH19IHt7IG1vbnRoWWVhci55ZWFyIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8Zm9laG4tc2VsZWN0XG4gICAgICAgICAgICAgICAgW2lkXT1cImJ1aWxkSWQoJ21vbnRoLWlucHV0JylcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxpZ24tc2VsZi1jZW50ZXIgbW9udGgtaW5wdXRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIubW9udGgtaW5wdXQubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaXNMYWJlbFNyT25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZWxlbWVudHNdPVwibW9udGhMaXN0SXRlbVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cIm1vbnRoWWVhci5tb250aFwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICh1c2VySW5wdXQpPVwidXNlcklucHV0TW9udGgoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9mb2Vobi1zZWxlY3Q+XG4gICAgICAgICAgICA8Zm9laG4tc2VsZWN0XG4gICAgICAgICAgICAgICAgW2lkXT1cImJ1aWxkSWQoJ3llYXItaW5wdXQnKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhbGlnbi1zZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZm9laG4tZGF0ZS1waWNrZXIuc2NyZWVuLXJlYWRlci55ZWFyLWlucHV0LmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2lzTGFiZWxTck9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2VsZW1lbnRzXT1cInllYXJMaXN0SXRlbVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cIm1vbnRoWWVhci55ZWFyXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKHVzZXJJbnB1dCk9XCJ1c2VySW5wdXRZZWFyKCRldmVudClcIlxuICAgICAgICAgICAgPjwvZm9laG4tc2VsZWN0PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCduZXh0LW1vbnRoJylcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIGRhdGVwaWNrZXItbmF2LW1vbnRoLWJ0blwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRNb250aCgpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc05leHRNb250aERpc2FibGVkKG1vbnRoWWVhcilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tcmlnaHRcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWRhdGUtcGlja2VyLm5leHQtbW9udGgtYnV0dG9uLnRpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9mb2Vobi1pY29uLWNoZXZyb24tcmlnaHQ+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHRhYmxlXG4gICAgICAgIFtpZF09XCJidWlsZElkKCdkYXRlcGlja2VyX3RhYmxlJylcIlxuICAgICAgICByb2xlPVwiZ3JpZFwiXG4gICAgICAgIChmb2N1c2luKT1cIm9uRGF5c0ZvY3VzaW4oKVwiXG4gICAgICAgIChmb2N1c291dCk9XCJvbkRheXNGb2N1c291dCgpXCJcbiAgICA+XG4gICAgICAgIDx0aGVhZCByb2xlPVwicHJlc2VudGF0aW9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8dHIgcm9sZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgd2Vla2RheSBvZiB3ZWVrRGF5c1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4tYWJiclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwid2Vla2RheS5zdWJzdHIoMCwgMilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIndlZWtkYXlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mb2Vobi1hYmJyPlxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHkgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgPHRyIHJvbGU9XCJyb3dcIiAqbmdGb3I9XCJsZXQgd2VlayBvZiB3ZWVrczsgbGV0IGluZGV4Um93ID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheU9mV2VlayBvZiB3ZWVrOyBsZXQgaW5kZXhDb2x1bW4gPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjZGF5QnV0dG9uRWxlbVJlZlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIhZGF5T2ZXZWVrLmlzQ3VycmVudE1vbnRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCdkYXlfJyArIGluZGV4Um93ICsgJ18nICsgaW5kZXhDb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJnZXREYXlUYWJJbmRleChkYXlPZldlZWspXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4taW5mb109XCIhaXNUb2RheShkYXlPZldlZWsuZGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiaXNUb2RheShkYXlPZldlZWsuZGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaXNTZWxlY3RlZChkYXlPZldlZWsuZGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWVrRGF5c1tpbmRleENvbHVtbl0gK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrLmRhdGVBc1JlYWRhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1pcy10b2RheV09XCJpc1RvZGF5KGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWlzLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWQoZGF5T2ZXZWVrLmRhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcm93LWluZGV4XT1cImluZGV4Um93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY29sdW1uLWluZGV4XT1cImluZGV4Q29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRheS1udW1iZXJdPVwiZGF5T2ZXZWVrLmRheU9mTW9udGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZ2V0RGF5RGlzYWJsZWRBdHRyaWJ1dGUoZGF5T2ZXZWVrKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVXNlcklucHV0KGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRheU9mV2Vlay5kYXlPZk1vbnRoIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
@@ -9,14 +9,14 @@ import { SdkDictionaryModule } from '../sdk-dictionary/sdk-dictionary.module';
9
9
  import * as i0 from "@angular/core";
10
10
  export class FoehnDatePickerModule {
11
11
  }
12
- FoehnDatePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- FoehnDatePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnDatePickerModule, declarations: [FoehnDatePickerComponent], imports: [CommonModule,
12
+ FoehnDatePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ FoehnDatePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnDatePickerModule, declarations: [FoehnDatePickerComponent], imports: [CommonModule,
14
14
  FoehnIconsModule,
15
15
  A11yModule,
16
16
  FoehnCheckablesModule,
17
17
  FoehnMiscModule,
18
18
  SdkDictionaryModule], exports: [FoehnDatePickerComponent] });
19
- FoehnDatePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnDatePickerModule, imports: [[
19
+ FoehnDatePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnDatePickerModule, imports: [[
20
20
  CommonModule,
21
21
  FoehnIconsModule,
22
22
  A11yModule,
@@ -24,7 +24,7 @@ FoehnDatePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
24
24
  FoehnMiscModule,
25
25
  SdkDictionaryModule
26
26
  ]] });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnDatePickerModule, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnDatePickerModule, decorators: [{
28
28
  type: NgModule,
29
29
  args: [{
30
30
  imports: [
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
39
39
  exports: [FoehnDatePickerComponent]
40
40
  }]
41
41
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZGF0ZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2ZvZWhuLWRhdGUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQWM5RSxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO21IQUFyQixxQkFBcUIsaUJBSGYsd0JBQXdCLGFBUG5DLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsVUFBVTtRQUNWLHFCQUFxQjtRQUNyQixlQUFlO1FBQ2YsbUJBQW1CLGFBR2Isd0JBQXdCO21IQUV6QixxQkFBcUIsWUFYckI7WUFDTCxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixxQkFBcUI7WUFDckIsZUFBZTtZQUNmLG1CQUFtQjtTQUN0QjsyRkFJUSxxQkFBcUI7a0JBWmpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixtQkFBbUI7cUJBQ3RCO29CQUNELFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvZWhuRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZm9laG4tZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSWNvbnNNb2R1bGUgfSBmcm9tICcuLi9mb2Vobi1pY29ucy9mb2Vobi1pY29ucy5tb2R1bGUnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEZvZWhuQ2hlY2thYmxlc01vZHVsZSB9IGZyb20gJy4uL2ZvZWhuLWNoZWNrYWJsZXMvZm9laG4tY2hlY2thYmxlcy5tb2R1bGUnO1xuaW1wb3J0IHsgRm9laG5NaXNjTW9kdWxlIH0gZnJvbSAnLi4vZm9laG4tbWlzYy9mb2Vobi1taXNjLm1vZHVsZSc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5TW9kdWxlIH0gZnJvbSAnLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9laG5JY29uc01vZHVsZSxcbiAgICAgICAgQTExeU1vZHVsZSxcbiAgICAgICAgRm9laG5DaGVja2FibGVzTW9kdWxlLFxuICAgICAgICBGb2Vobk1pc2NNb2R1bGUsXG4gICAgICAgIFNka0RpY3Rpb25hcnlNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW0ZvZWhuRGF0ZVBpY2tlckNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0ZvZWhuRGF0ZVBpY2tlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5EYXRlUGlja2VyTW9kdWxlIHt9XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZGF0ZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2ZvZWhuLWRhdGUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQWM5RSxNQUFNLE9BQU8scUJBQXFCOzttSEFBckIscUJBQXFCO29IQUFyQixxQkFBcUIsaUJBSGYsd0JBQXdCLGFBUG5DLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsVUFBVTtRQUNWLHFCQUFxQjtRQUNyQixlQUFlO1FBQ2YsbUJBQW1CLGFBR2Isd0JBQXdCO29IQUV6QixxQkFBcUIsWUFYckI7WUFDTCxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixxQkFBcUI7WUFDckIsZUFBZTtZQUNmLG1CQUFtQjtTQUN0Qjs0RkFJUSxxQkFBcUI7a0JBWmpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixtQkFBbUI7cUJBQ3RCO29CQUNELFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvZWhuRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZm9laG4tZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSWNvbnNNb2R1bGUgfSBmcm9tICcuLi9mb2Vobi1pY29ucy9mb2Vobi1pY29ucy5tb2R1bGUnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEZvZWhuQ2hlY2thYmxlc01vZHVsZSB9IGZyb20gJy4uL2ZvZWhuLWNoZWNrYWJsZXMvZm9laG4tY2hlY2thYmxlcy5tb2R1bGUnO1xuaW1wb3J0IHsgRm9laG5NaXNjTW9kdWxlIH0gZnJvbSAnLi4vZm9laG4tbWlzYy9mb2Vobi1taXNjLm1vZHVsZSc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5TW9kdWxlIH0gZnJvbSAnLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9laG5JY29uc01vZHVsZSxcbiAgICAgICAgQTExeU1vZHVsZSxcbiAgICAgICAgRm9laG5DaGVja2FibGVzTW9kdWxlLFxuICAgICAgICBGb2Vobk1pc2NNb2R1bGUsXG4gICAgICAgIFNka0RpY3Rpb25hcnlNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW0ZvZWhuRGF0ZVBpY2tlckNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0ZvZWhuRGF0ZVBpY2tlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5EYXRlUGlja2VyTW9kdWxlIHt9XG4iXX0=