@dsivd/prestations-ng 15.5.13 → 16.0.0-beta1

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 (590) hide show
  1. package/CHANGELOG.md +666 -1
  2. package/CONTRIBUTING.md +32 -1
  3. package/ESLINT_MIGRATION_GUIDE.md +1 -1
  4. package/README.md +6 -0
  5. package/UPGRADING_V12.md +0 -15
  6. package/UPGRADING_V13.md +0 -15
  7. package/UPGRADING_V14.md +8 -26
  8. package/UPGRADING_V15.md +113 -0
  9. package/UPGRADING_V16.md +63 -0
  10. package/abstract-page-component.d.ts +8 -8
  11. package/directives/currency-formatter.directive.d.ts +4 -1
  12. package/directives/iban-formatter.directive.d.ts +1 -1
  13. package/directives/ide-formatter.directive.d.ts +1 -1
  14. package/directives/ndc-formatter.directive.d.ts +1 -1
  15. package/dsivd-prestations-ng-v16.0.0-beta1.tgz +0 -0
  16. package/esm2020/abstract-page-component.mjs +223 -0
  17. package/esm2020/directives/currency-formatter.directive.mjs +143 -0
  18. package/{esm2015/directives/formatter.module.js → esm2020/directives/formatter.module.mjs} +8 -8
  19. package/{esm2015/directives/iban-formatter.directive.js → esm2020/directives/iban-formatter.directive.mjs} +4 -4
  20. package/{esm2015/directives/ide-formatter.directive.js → esm2020/directives/ide-formatter.directive.mjs} +4 -4
  21. package/{esm2015/directives/ndc-formatter.directive.js → esm2020/directives/ndc-formatter.directive.mjs} +4 -4
  22. package/{esm2015/dsivd-prestations-ng.js → esm2020/dsivd-prestations-ng.mjs} +0 -0
  23. package/{esm2015/foehn-address/address.type.js → esm2020/foehn-address/address.type.mjs} +1 -1
  24. package/esm2020/foehn-address/foehn-address.module.mjs +55 -0
  25. package/{esm2015/foehn-address/foehn-display-address.component.js → esm2020/foehn-address/foehn-display-address.component.mjs} +5 -9
  26. package/esm2020/foehn-address/foehn-input-address.component.mjs +406 -0
  27. package/esm2020/foehn-address/foehn-input-foreign-locality.component.mjs +66 -0
  28. package/esm2020/foehn-address/foehn-input-foreign-street.component.mjs +55 -0
  29. package/esm2020/foehn-agenda/calendar.type.mjs +3 -0
  30. package/esm2020/foehn-agenda/current-week.type.mjs +4 -0
  31. package/esm2020/foehn-agenda/day-slots.type.mjs +3 -0
  32. package/esm2020/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.mjs +74 -0
  33. package/esm2020/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.mjs +242 -0
  34. package/esm2020/foehn-agenda/foehn-agenda.component.mjs +95 -0
  35. package/esm2020/foehn-agenda/foehn-agenda.module.mjs +62 -0
  36. package/esm2020/foehn-agenda/pagination-week.type.mjs +3 -0
  37. package/esm2020/foehn-agenda/selected-slot.type.mjs +3 -0
  38. package/esm2020/foehn-autocomplete/foehn-autocomplete.component.mjs +608 -0
  39. package/esm2020/foehn-autocomplete/foehn-autocomplete.module.mjs +40 -0
  40. package/esm2020/foehn-boolean/foehn-boolean-checkbox.component.mjs +28 -0
  41. package/esm2020/foehn-boolean/foehn-boolean-radio.component.mjs +40 -0
  42. package/esm2020/foehn-boolean/foehn-boolean.module.mjs +33 -0
  43. package/esm2020/foehn-breadcrumb/breadcrumb-event.service.mjs +181 -0
  44. package/{esm2015/foehn-breadcrumb/breadcrumb.js → esm2020/foehn-breadcrumb/breadcrumb.mjs} +0 -0
  45. package/esm2020/foehn-breadcrumb/foehn-breadcrumb.component.mjs +80 -0
  46. package/esm2020/foehn-breadcrumb/foehn-breadcrumb.module.mjs +19 -0
  47. package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +298 -0
  48. package/esm2020/foehn-checkables/foehn-checkables.module.mjs +68 -0
  49. package/esm2020/foehn-checkables/foehn-checkbox.component.mjs +37 -0
  50. package/esm2020/foehn-checkables/foehn-radio.component.mjs +64 -0
  51. package/esm2020/foehn-checkables/foehn-select.component.mjs +53 -0
  52. package/{esm2015/foehn-checkables/form-select-option-group.js → esm2020/foehn-checkables/form-select-option-group.mjs} +0 -0
  53. package/{esm2015/foehn-checkables/form-select-option.js → esm2020/foehn-checkables/form-select-option.mjs} +0 -0
  54. package/{esm2015/foehn-confirm-modal/foehn-confirm-modal-content.js → esm2020/foehn-confirm-modal/foehn-confirm-modal-content.mjs} +1 -1
  55. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.component.mjs +40 -0
  56. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.module.mjs +19 -0
  57. package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.service.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.service.mjs} +4 -4
  58. package/esm2020/foehn-date-picker/date-picker-navigation.helper.mjs +167 -0
  59. package/esm2020/foehn-date-picker/date-picker.helper.mjs +132 -0
  60. package/{esm2015/foehn-date-picker/day-month.type.js → esm2020/foehn-date-picker/day-month.type.mjs} +0 -0
  61. package/{esm2015/foehn-date-picker/focused-day.type.js → esm2020/foehn-date-picker/focused-day.type.mjs} +0 -0
  62. package/esm2020/foehn-date-picker/foehn-date-picker.component.mjs +387 -0
  63. package/esm2020/foehn-date-picker/foehn-date-picker.module.mjs +40 -0
  64. package/{esm2015/foehn-date-picker/month-year.type.js → esm2020/foehn-date-picker/month-year.type.mjs} +0 -0
  65. package/esm2020/foehn-date-picker-button/foehn-date-picker-button.component.mjs +97 -0
  66. package/esm2020/foehn-date-picker-button/foehn-date-picker-button.module.mjs +36 -0
  67. package/esm2020/foehn-debug-summary/foehn-debug-summary.component.mjs +67 -0
  68. package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.module.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.module.mjs} +7 -7
  69. package/esm2020/foehn-decision-electronique/foehn-decision-electronique.component.mjs +37 -0
  70. package/esm2020/foehn-decision-electronique/foehn-decision-electronique.module.mjs +32 -0
  71. package/esm2020/foehn-footer/foehn-footer.component.mjs +130 -0
  72. package/{esm2015/foehn-footer/foehn-footer.module.js → esm2020/foehn-footer/foehn-footer.module.mjs} +6 -6
  73. package/{esm2015/foehn-footer/footer-link.type.js → esm2020/foehn-footer/footer-link.type.mjs} +0 -0
  74. package/esm2020/foehn-form/foehn-form.component.mjs +135 -0
  75. package/esm2020/foehn-form/foehn-form.module.mjs +32 -0
  76. package/esm2020/foehn-form/register-ng-model.service.mjs +23 -0
  77. package/esm2020/foehn-growl/foehn-growl.component.mjs +44 -0
  78. package/{esm2015/foehn-growl/foehn-growl.module.js → esm2020/foehn-growl/foehn-growl.module.mjs} +6 -6
  79. package/{esm2015/foehn-growl/growl-broker.service.js → esm2020/foehn-growl/growl-broker.service.mjs} +5 -5
  80. package/{esm2015/foehn-growl/growl-message.js → esm2020/foehn-growl/growl-message.mjs} +1 -1
  81. package/{esm2015/foehn-growl/growl-types.js → esm2020/foehn-growl/growl-types.mjs} +0 -0
  82. package/esm2020/foehn-header/foehn-header.component.mjs +68 -0
  83. package/esm2020/foehn-header/foehn-header.module.mjs +21 -0
  84. package/{esm2015/foehn-header/foehn-skip-link.component.js → esm2020/foehn-header/foehn-skip-link.component.mjs} +5 -8
  85. package/esm2020/foehn-help-modal/foehn-help-modal.component.mjs +44 -0
  86. package/esm2020/foehn-help-modal/foehn-help-modal.module.mjs +20 -0
  87. package/esm2020/foehn-help-modal/foehn-help-modal.type.mjs +2 -0
  88. package/{esm2015/foehn-icons/abstract-icon-component.js → esm2020/foehn-icons/abstract-icon-component.mjs} +5 -5
  89. package/esm2020/foehn-icons/foehn-icon-calendar.component.mjs +19 -0
  90. package/esm2020/foehn-icons/foehn-icon-check-square-o.component.mjs +19 -0
  91. package/esm2020/foehn-icons/foehn-icon-check.component.mjs +19 -0
  92. package/esm2020/foehn-icons/foehn-icon-chevron-down.component.mjs +19 -0
  93. package/esm2020/foehn-icons/foehn-icon-chevron-left.component.mjs +19 -0
  94. package/esm2020/foehn-icons/foehn-icon-chevron-right.component.mjs +19 -0
  95. package/esm2020/foehn-icons/foehn-icon-chevron-up.component.mjs +19 -0
  96. package/esm2020/foehn-icons/foehn-icon-clock.component.mjs +19 -0
  97. package/esm2020/foehn-icons/foehn-icon-comment-dots.component.mjs +19 -0
  98. package/esm2020/foehn-icons/foehn-icon-edit.component.mjs +19 -0
  99. package/esm2020/foehn-icons/foehn-icon-external-link-alt.component.mjs +19 -0
  100. package/esm2020/foehn-icons/foehn-icon-file-pdf.component.mjs +19 -0
  101. package/esm2020/foehn-icons/foehn-icon-info-circle.component.mjs +19 -0
  102. package/esm2020/foehn-icons/foehn-icon-lock.component.mjs +19 -0
  103. package/esm2020/foehn-icons/foehn-icon-map-marker.component.mjs +19 -0
  104. package/esm2020/foehn-icons/foehn-icon-minus-circle.component.mjs +19 -0
  105. package/esm2020/foehn-icons/foehn-icon-plus-circle.component.mjs +19 -0
  106. package/esm2020/foehn-icons/foehn-icon-plus-square.component.mjs +19 -0
  107. package/esm2020/foehn-icons/foehn-icon-search.component.mjs +19 -0
  108. package/esm2020/foehn-icons/foehn-icon-times.component.mjs +19 -0
  109. package/esm2020/foehn-icons/foehn-icon-trash-alt.component.mjs +19 -0
  110. package/esm2020/foehn-icons/foehn-icon-unlock-alt.component.mjs +19 -0
  111. package/{esm2015/foehn-icons/foehn-icons.module.js → esm2020/foehn-icons/foehn-icons.module.mjs} +20 -20
  112. package/esm2020/foehn-input/foehn-input-email.component.mjs +59 -0
  113. package/esm2020/foehn-input/foehn-input-hidden.component.mjs +55 -0
  114. package/esm2020/foehn-input/foehn-input-number.component.mjs +276 -0
  115. package/esm2020/foehn-input/foehn-input-password.component.mjs +52 -0
  116. package/esm2020/foehn-input/foehn-input-phone.component.mjs +92 -0
  117. package/{esm2015/foehn-input/foehn-input-string.component.js → esm2020/foehn-input/foehn-input-string.component.mjs} +5 -5
  118. package/esm2020/foehn-input/foehn-input-text.component.mjs +76 -0
  119. package/esm2020/foehn-input/foehn-input-textarea.component.mjs +109 -0
  120. package/esm2020/foehn-input/foehn-input.component.mjs +390 -0
  121. package/esm2020/foehn-input/foehn-input.module.mjs +93 -0
  122. package/{esm2015/foehn-input/pattern.const.js → esm2020/foehn-input/pattern.const.mjs} +0 -0
  123. package/esm2020/foehn-input-date/foehn-input-date.component.mjs +118 -0
  124. package/esm2020/foehn-input-date-time/foehn-input-date-time.component.mjs +143 -0
  125. package/esm2020/foehn-input-time/foehn-input-time.component.mjs +74 -0
  126. package/esm2020/foehn-list/foehn-list.component.mjs +128 -0
  127. package/esm2020/foehn-list/foehn-list.module.mjs +19 -0
  128. package/{esm2015/foehn-list/page-change-event.js → esm2020/foehn-list/page-change-event.mjs} +0 -0
  129. package/esm2020/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +122 -0
  130. package/{esm2015/foehn-menu-prestation/abstract-menu-page.component.js → esm2020/foehn-menu-prestation/abstract-menu-page.component.mjs} +4 -4
  131. package/{esm2015/foehn-menu-prestation/abstract-page-from-menu.component.js → esm2020/foehn-menu-prestation/abstract-page-from-menu.component.mjs} +4 -4
  132. package/esm2020/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs +23 -0
  133. package/{esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.js → esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.mjs} +0 -0
  134. package/{esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-item.js → esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-item.mjs} +0 -0
  135. package/esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +71 -0
  136. package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +35 -0
  137. package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs +51 -0
  138. package/esm2020/foehn-menu-prestation/foehn-menu-prestation.module.mjs +59 -0
  139. package/{esm2015/foehn-misc/foehn-abbr.component.js → esm2020/foehn-misc/foehn-abbr.component.mjs} +5 -9
  140. package/{esm2015/foehn-misc/foehn-misc.module.js → esm2020/foehn-misc/foehn-misc.module.mjs} +5 -5
  141. package/esm2020/foehn-modal/foehn-modal.component.mjs +94 -0
  142. package/esm2020/foehn-modal/foehn-modal.module.mjs +21 -0
  143. package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +268 -0
  144. package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.mjs +40 -0
  145. package/esm2020/foehn-nav13/foehn-input-nav13.component.mjs +114 -0
  146. package/esm2020/foehn-nav13/foehn-input-nav13.module.mjs +32 -0
  147. package/esm2020/foehn-navigation/foehn-navigation.component.mjs +94 -0
  148. package/esm2020/foehn-navigation/foehn-navigation.module.mjs +32 -0
  149. package/esm2020/foehn-navigation/foehn-navigation.service.mjs +303 -0
  150. package/{esm2015/foehn-notfound/foehn-notfound.component.js → esm2020/foehn-notfound/foehn-notfound.component.mjs} +7 -10
  151. package/esm2020/foehn-notfound/foehn-notfound.module.mjs +20 -0
  152. package/{esm2015/foehn-page/foehn-page-counter.component.js → esm2020/foehn-page/foehn-page-counter.component.mjs} +5 -8
  153. package/esm2020/foehn-page/foehn-page-modal.component.mjs +53 -0
  154. package/{esm2015/foehn-page/foehn-page-modal.service.js → esm2020/foehn-page/foehn-page-modal.service.mjs} +4 -4
  155. package/esm2020/foehn-page/foehn-page.component.mjs +218 -0
  156. package/esm2020/foehn-page/foehn-page.module.mjs +78 -0
  157. package/{esm2015/foehn-page/foehn-page.service.js → esm2020/foehn-page/foehn-page.service.mjs} +4 -4
  158. package/esm2020/foehn-recap-section/foehn-recap-section.component.mjs +88 -0
  159. package/esm2020/foehn-recap-section/foehn-recap-section.module.mjs +20 -0
  160. package/{esm2015/foehn-recap-section/foehn-recap-section.type.js → esm2020/foehn-recap-section/foehn-recap-section.type.mjs} +0 -0
  161. package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.mjs} +5 -9
  162. package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs} +6 -6
  163. package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +56 -0
  164. package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs +20 -0
  165. package/esm2020/foehn-table/foehn-table-column-configuration.mjs +3 -0
  166. package/esm2020/foehn-table/foehn-table-page-change-event.mjs +3 -0
  167. package/esm2020/foehn-table/foehn-table.component.mjs +148 -0
  168. package/esm2020/foehn-table/foehn-table.module.mjs +32 -0
  169. package/esm2020/foehn-table/tableSort.mjs +3 -0
  170. package/esm2020/foehn-upload/abstract-foehn-uploader.component.mjs +192 -0
  171. package/{esm2015/foehn-upload/document-reference.js → esm2020/foehn-upload/document-reference.mjs} +0 -0
  172. package/esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs +71 -0
  173. package/{esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.js → esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.mjs} +0 -0
  174. package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +174 -0
  175. package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs +40 -0
  176. package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +224 -0
  177. package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs +40 -0
  178. package/esm2020/foehn-upload/foehn-multi-upload/multi-upload.service.mjs +83 -0
  179. package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.type.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.type.mjs} +0 -0
  180. package/esm2020/foehn-upload/foehn-multi-upload/pending-upload.service.mjs +158 -0
  181. package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +202 -0
  182. package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs +44 -0
  183. package/esm2020/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.component.mjs +75 -0
  184. package/esm2020/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.module.mjs +21 -0
  185. package/esm2020/foehn-upload/foehn-upload-progress-bar/upload-progress.service.mjs +62 -0
  186. package/esm2020/foehn-upload/foehn-upload-progress-bar/upload-progress.type.mjs +3 -0
  187. package/{esm2015/foehn-upload/pending-upload.type.js → esm2020/foehn-upload/pending-upload.type.mjs} +1 -1
  188. package/esm2020/foehn-upload/uploader.helper.mjs +327 -0
  189. package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.component.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.component.mjs} +5 -8
  190. package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.module.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.module.mjs} +6 -6
  191. package/esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs +96 -0
  192. package/esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs +19 -0
  193. package/esm2020/foehn-validation-alerts/foehn-validation-alerts.component.mjs +29 -0
  194. package/{esm2015/foehn-validation-alerts/foehn-validation-alerts.module.js → esm2020/foehn-validation-alerts/foehn-validation-alerts.module.mjs} +6 -6
  195. package/esm2020/form-error.mjs +2 -0
  196. package/esm2020/form-post-response.mjs +10 -0
  197. package/{esm2015/gesdem/gesdem-error-handler.service.js → esm2020/gesdem/gesdem-error-handler.service.mjs} +4 -4
  198. package/esm2020/gesdem/gesdem-event.service.mjs +38 -0
  199. package/esm2020/gesdem/gesdem-handler.service.mjs +160 -0
  200. package/esm2020/gesdem/gesdem-loader.guard.mjs +41 -0
  201. package/{esm2015/gesdem/gesdem-statut-utils.js → esm2020/gesdem/gesdem-statut-utils.mjs} +0 -0
  202. package/esm2020/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs +101 -0
  203. package/esm2020/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +130 -0
  204. package/esm2020/gesdem-action-recovery/gesdem-action-recovery.module.mjs +50 -0
  205. package/esm2020/gesdem-action-recovery/gesdem-action-recovery.service.mjs +82 -0
  206. package/{esm2015/gesdem-action-recovery/reprise-info.js → esm2020/gesdem-action-recovery/reprise-info.mjs} +0 -0
  207. package/esm2020/gesdem-confirmation/gesdem-confirmation.component.mjs +201 -0
  208. package/esm2020/gesdem-confirmation/gesdem-confirmation.module.mjs +32 -0
  209. package/esm2020/gesdem-error/gesdem-error.component.mjs +87 -0
  210. package/esm2020/gesdem-error/gesdem-error.module.mjs +36 -0
  211. package/esm2020/global.const.mjs +5 -0
  212. package/esm2020/helpers/object.helper.mjs +89 -0
  213. package/{esm2015/i18n-form.js → esm2020/i18n-form.mjs} +0 -0
  214. package/esm2020/index.mjs +263 -0
  215. package/{esm2015/pipes/currency.pipe.js → esm2020/pipes/currency.pipe.mjs} +4 -4
  216. package/{esm2015/pipes/date.pipe.js → esm2020/pipes/date.pipe.mjs} +4 -4
  217. package/{esm2015/pipes/formatIde.pipe.js → esm2020/pipes/formatIde.pipe.mjs} +3 -3
  218. package/{esm2015/pipes/pipes.module.js → esm2020/pipes/pipes.module.mjs} +7 -7
  219. package/{esm2015/prestations-ng-core.module.js → esm2020/prestations-ng-core.module.mjs} +7 -7
  220. package/esm2020/refinf/model/address-type-light.mjs +3 -0
  221. package/esm2020/refinf/model/canton.mjs +3 -0
  222. package/esm2020/refinf/model/district.mjs +3 -0
  223. package/esm2020/refinf/model/municipality.mjs +3 -0
  224. package/esm2020/refinf/model/place-of-origin.mjs +3 -0
  225. package/esm2020/refinf/model/postal-locality.mjs +3 -0
  226. package/esm2020/sdk-appinfo/application-info.mjs +14 -0
  227. package/esm2020/sdk-appinfo/application-info.service.mjs +104 -0
  228. package/{esm2015/sdk-currency/currency.helper.js → esm2020/sdk-currency/currency.helper.mjs} +3 -3
  229. package/esm2020/sdk-date/date.helper.mjs +100 -0
  230. package/esm2020/sdk-dictionary/default-dictionary.mjs +166 -0
  231. package/{esm2015/sdk-dictionary/sdk-dictionary.module.js → esm2020/sdk-dictionary/sdk-dictionary.module.mjs} +5 -5
  232. package/{esm2015/sdk-dictionary/sdk-dictionary.pipe.js → esm2020/sdk-dictionary/sdk-dictionary.pipe.mjs} +6 -6
  233. package/esm2020/sdk-dictionary/sdk-dictionary.service.mjs +111 -0
  234. package/{esm2015/sdk-epayment/model/EPaymentParameters.js → esm2020/sdk-epayment/model/EPaymentParameters.mjs} +0 -0
  235. package/esm2020/sdk-epayment/sdk-epayment.component.mjs +81 -0
  236. package/esm2020/sdk-epayment/sdk-epayment.module.mjs +21 -0
  237. package/esm2020/sdk-epayment/sdk-epayment.service.mjs +52 -0
  238. package/{esm2015/sdk-recaptcha/grecaptcha/grecaptcha.component.js → esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs} +6 -10
  239. package/esm2020/sdk-recaptcha/recaptcha.service.mjs +162 -0
  240. package/esm2020/sdk-recaptcha/sdk-recaptcha.component.mjs +69 -0
  241. package/esm2020/sdk-recaptcha/sdk-recaptcha.module.mjs +19 -0
  242. package/esm2020/sdk-redirect/iam-expired-interceptor.service.mjs +58 -0
  243. package/esm2020/sdk-redirect/redirect.component.mjs +35 -0
  244. package/esm2020/sdk-redirect/sdk-redirect.module.mjs +19 -0
  245. package/{esm2015/sdk-session-info/session-info-data.js → esm2020/sdk-session-info/session-info-data.mjs} +1 -1
  246. package/{esm2015/sdk-session-info/session-info-with-application.service.js → esm2020/sdk-session-info/session-info-with-application.service.mjs} +5 -5
  247. package/esm2020/sdk-session-info/session-info.service.mjs +50 -0
  248. package/esm2020/sdk-statistics/sdk-statistics.service.mjs +70 -0
  249. package/esm2020/sdk-support-alert/support-alert-container.component.mjs +49 -0
  250. package/esm2020/sdk-support-alert/support-alert.component.mjs +34 -0
  251. package/{esm2015/sdk-support-alert/support-alert.model.js → esm2020/sdk-support-alert/support-alert.model.mjs} +0 -0
  252. package/esm2020/sdk-support-alert/support-alert.module.mjs +21 -0
  253. package/esm2020/sdk-support-alert/support-alert.service.mjs +117 -0
  254. package/{esm2015/service-locator.js → esm2020/service-locator.mjs} +0 -0
  255. package/esm2020/supported-browser.mjs +2 -0
  256. package/esm2020/validation/validation-handler.service.mjs +44 -0
  257. package/fesm2015/dsivd-prestations-ng.mjs +13397 -0
  258. package/fesm2015/dsivd-prestations-ng.mjs.map +1 -0
  259. package/fesm2020/dsivd-prestations-ng.mjs +13372 -0
  260. package/fesm2020/dsivd-prestations-ng.mjs.map +1 -0
  261. package/foehn-address/address.type.d.ts +3 -3
  262. package/foehn-address/foehn-display-address.component.d.ts +1 -1
  263. package/foehn-address/foehn-input-address.component.d.ts +18 -8
  264. package/foehn-address/foehn-input-foreign-locality.component.d.ts +1 -1
  265. package/foehn-address/foehn-input-foreign-street.component.d.ts +1 -1
  266. package/foehn-agenda/calendar.type.d.ts +9 -0
  267. package/foehn-agenda/current-week.type.d.ts +5 -0
  268. package/foehn-agenda/day-slots.type.d.ts +5 -0
  269. package/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.d.ts +21 -0
  270. package/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.d.ts +51 -0
  271. package/foehn-agenda/foehn-agenda.component.d.ts +29 -0
  272. package/foehn-agenda/foehn-agenda.module.d.ts +17 -0
  273. package/foehn-agenda/pagination-week.type.d.ts +5 -0
  274. package/foehn-agenda/selected-slot.type.d.ts +7 -0
  275. package/foehn-autocomplete/foehn-autocomplete.component.d.ts +22 -6
  276. package/foehn-boolean/foehn-boolean-checkbox.component.d.ts +1 -1
  277. package/foehn-boolean/foehn-boolean-radio.component.d.ts +2 -1
  278. package/foehn-breadcrumb/breadcrumb-event.service.d.ts +2 -2
  279. package/foehn-breadcrumb/foehn-breadcrumb.component.d.ts +6 -5
  280. package/foehn-checkables/foehn-checkable-group.component.d.ts +8 -8
  281. package/foehn-checkables/foehn-checkables.module.d.ts +3 -1
  282. package/foehn-checkables/foehn-checkbox.component.d.ts +1 -1
  283. package/foehn-checkables/foehn-radio.component.d.ts +1 -1
  284. package/foehn-checkables/foehn-select.component.d.ts +2 -10
  285. package/foehn-confirm-modal/foehn-confirm-modal-content.d.ts +1 -0
  286. package/foehn-confirm-modal/foehn-confirm-modal.component.d.ts +2 -2
  287. package/foehn-date-picker/date-picker-navigation.helper.d.ts +7 -1
  288. package/foehn-date-picker/date-picker.helper.d.ts +3 -2
  289. package/foehn-date-picker/foehn-date-picker.component.d.ts +21 -10
  290. package/foehn-date-picker-button/foehn-date-picker-button.component.d.ts +13 -5
  291. package/foehn-debug-summary/foehn-debug-summary.component.d.ts +7 -5
  292. package/foehn-decision-electronique/foehn-decision-electronique.component.d.ts +2 -2
  293. package/foehn-decision-electronique/foehn-decision-electronique.module.d.ts +2 -1
  294. package/foehn-footer/foehn-footer.component.d.ts +4 -4
  295. package/foehn-form/foehn-form.component.d.ts +7 -4
  296. package/foehn-form/register-ng-model.service.d.ts +9 -0
  297. package/foehn-growl/foehn-growl.component.d.ts +3 -3
  298. package/foehn-growl/growl-broker.service.d.ts +1 -1
  299. package/foehn-header/foehn-header.component.d.ts +7 -7
  300. package/foehn-header/foehn-skip-link.component.d.ts +2 -2
  301. package/foehn-help-modal/foehn-help-modal.component.d.ts +1 -1
  302. package/foehn-help-modal/foehn-help-modal.type.d.ts +4 -0
  303. package/foehn-icons/abstract-icon-component.d.ts +1 -1
  304. package/foehn-icons/foehn-icon-calendar.component.d.ts +1 -1
  305. package/foehn-icons/foehn-icon-check-square-o.component.d.ts +1 -1
  306. package/foehn-icons/foehn-icon-check.component.d.ts +1 -1
  307. package/foehn-icons/foehn-icon-chevron-down.component.d.ts +1 -1
  308. package/foehn-icons/foehn-icon-chevron-left.component.d.ts +1 -1
  309. package/foehn-icons/foehn-icon-chevron-right.component.d.ts +1 -1
  310. package/foehn-icons/foehn-icon-chevron-up.component.d.ts +1 -1
  311. package/foehn-icons/foehn-icon-clock.component.d.ts +1 -1
  312. package/foehn-icons/foehn-icon-comment-dots.component.d.ts +1 -1
  313. package/foehn-icons/foehn-icon-edit.component.d.ts +1 -1
  314. package/foehn-icons/foehn-icon-external-link-alt.component.d.ts +1 -1
  315. package/foehn-icons/foehn-icon-file-pdf.component.d.ts +1 -1
  316. package/foehn-icons/foehn-icon-info-circle.component.d.ts +1 -1
  317. package/foehn-icons/foehn-icon-lock.component.d.ts +1 -1
  318. package/foehn-icons/foehn-icon-map-marker.component.d.ts +1 -1
  319. package/foehn-icons/foehn-icon-minus-circle.component.d.ts +1 -1
  320. package/foehn-icons/foehn-icon-plus-circle.component.d.ts +1 -1
  321. package/foehn-icons/foehn-icon-plus-square.component.d.ts +1 -1
  322. package/foehn-icons/foehn-icon-search.component.d.ts +1 -1
  323. package/foehn-icons/foehn-icon-times.component.d.ts +1 -1
  324. package/foehn-icons/foehn-icon-trash-alt.component.d.ts +1 -1
  325. package/foehn-icons/foehn-icon-unlock-alt.component.d.ts +1 -1
  326. package/foehn-input/foehn-input-email.component.d.ts +4 -2
  327. package/foehn-input/foehn-input-hidden.component.d.ts +1 -1
  328. package/foehn-input/foehn-input-number.component.d.ts +16 -6
  329. package/foehn-input/foehn-input-password.component.d.ts +1 -1
  330. package/foehn-input/foehn-input-phone.component.d.ts +1 -1
  331. package/foehn-input/foehn-input-string.component.d.ts +1 -1
  332. package/foehn-input/foehn-input-text.component.d.ts +1 -1
  333. package/foehn-input/foehn-input-textarea.component.d.ts +5 -2
  334. package/foehn-input/foehn-input.component.d.ts +25 -9
  335. package/foehn-input/foehn-input.module.d.ts +9 -6
  336. package/foehn-input-date/foehn-input-date.component.d.ts +10 -3
  337. package/foehn-input-date-time/foehn-input-date-time.component.d.ts +29 -0
  338. package/foehn-input-time/foehn-input-time.component.d.ts +1 -1
  339. package/foehn-list/foehn-list.component.d.ts +2 -3
  340. package/foehn-menu-prestation/abstract-list-item-detail-page.component.d.ts +5 -5
  341. package/foehn-menu-prestation/abstract-menu-page.component.d.ts +1 -1
  342. package/foehn-menu-prestation/abstract-page-from-menu.component.d.ts +1 -1
  343. package/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.d.ts +1 -1
  344. package/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.d.ts +3 -3
  345. package/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.d.ts +1 -1
  346. package/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.d.ts +2 -2
  347. package/foehn-misc/foehn-abbr.component.d.ts +1 -1
  348. package/foehn-modal/foehn-modal.component.d.ts +2 -3
  349. package/foehn-modal/foehn-modal.module.d.ts +3 -1
  350. package/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.d.ts +51 -0
  351. package/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.d.ts +13 -0
  352. package/foehn-nav13/foehn-input-nav13.component.d.ts +2 -1
  353. package/foehn-navigation/foehn-navigation.component.d.ts +2 -2
  354. package/foehn-navigation/foehn-navigation.service.d.ts +4 -3
  355. package/foehn-notfound/foehn-notfound.component.d.ts +1 -1
  356. package/foehn-page/foehn-page-counter.component.d.ts +1 -1
  357. package/foehn-page/foehn-page-modal.component.d.ts +1 -1
  358. package/foehn-page/foehn-page-modal.service.d.ts +1 -1
  359. package/foehn-page/foehn-page.component.d.ts +15 -12
  360. package/foehn-page/foehn-page.module.d.ts +2 -1
  361. package/foehn-page/foehn-page.service.d.ts +2 -2
  362. package/foehn-recap-section/foehn-recap-section.component.d.ts +3 -1
  363. package/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.d.ts +1 -1
  364. package/foehn-status-progress-bar/foehn-status-progress-bar.component.d.ts +23 -0
  365. package/foehn-status-progress-bar/foehn-status-progress-bar.module.d.ts +10 -0
  366. package/foehn-table/foehn-table-column-configuration.d.ts +18 -0
  367. package/foehn-table/foehn-table-page-change-event.d.ts +5 -0
  368. package/foehn-table/foehn-table.component.d.ts +33 -0
  369. package/foehn-table/foehn-table.module.d.ts +11 -0
  370. package/foehn-table/tableSort.d.ts +4 -0
  371. package/foehn-upload/abstract-foehn-uploader.component.d.ts +7 -7
  372. package/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.d.ts +6 -4
  373. package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.d.ts +6 -5
  374. package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.d.ts +2 -1
  375. package/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.d.ts +9 -8
  376. package/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.d.ts +2 -1
  377. package/foehn-upload/foehn-multi-upload/multi-upload.service.d.ts +6 -4
  378. package/foehn-upload/foehn-multi-upload/pending-upload.service.d.ts +3 -3
  379. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +7 -4
  380. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.d.ts +2 -1
  381. package/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.component.d.ts +19 -0
  382. package/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.module.d.ts +11 -0
  383. package/foehn-upload/foehn-upload-progress-bar/upload-progress.service.d.ts +19 -0
  384. package/foehn-upload/foehn-upload-progress-bar/upload-progress.type.d.ts +4 -0
  385. package/foehn-upload/pending-upload.type.d.ts +1 -0
  386. package/foehn-upload/uploader.helper.d.ts +13 -13
  387. package/foehn-user-connected-as/foehn-user-connected-as.component.d.ts +2 -2
  388. package/foehn-validation-alert-summary/foehn-validation-alert-summary.component.d.ts +2 -2
  389. package/foehn-validation-alerts/foehn-validation-alerts.component.d.ts +4 -4
  390. package/{error-template.d.ts → form-error.d.ts} +1 -1
  391. package/form-post-response.d.ts +17 -0
  392. package/gesdem/gesdem-error-handler.service.d.ts +2 -2
  393. package/gesdem/gesdem-event.service.d.ts +7 -7
  394. package/gesdem/gesdem-handler.service.d.ts +8 -6
  395. package/gesdem/gesdem-loader.guard.d.ts +1 -1
  396. package/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.d.ts +5 -5
  397. package/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.d.ts +7 -7
  398. package/gesdem-action-recovery/gesdem-action-recovery.service.d.ts +3 -3
  399. package/gesdem-confirmation/gesdem-confirmation.component.d.ts +10 -9
  400. package/gesdem-error/gesdem-error.component.d.ts +10 -3
  401. package/gesdem-error/gesdem-error.module.d.ts +2 -1
  402. package/global.const.d.ts +1 -0
  403. package/index.d.ts +102 -70
  404. package/package.json +34 -21
  405. package/pipes/currency.pipe.d.ts +1 -1
  406. package/pipes/date.pipe.d.ts +1 -1
  407. package/pipes/formatIde.pipe.d.ts +1 -1
  408. package/refinf/model/address-type-light.d.ts +5 -0
  409. package/refinf/model/canton.d.ts +4 -0
  410. package/refinf/model/district.d.ts +7 -0
  411. package/refinf/model/municipality.d.ts +8 -0
  412. package/refinf/model/place-of-origin.d.ts +9 -0
  413. package/refinf/model/postal-locality.d.ts +11 -0
  414. package/schematics/ng-add/index.js +10 -10
  415. package/schematics/ng-update/migrations/update-13_1_0/index.js +2 -2
  416. package/schematics/ng-update/migrations/update-13_2_0/index.js +3 -3
  417. package/schematics/ng-update/migrations/update-13_5_1/index.js +3 -3
  418. package/schematics/ng-update/migrations/update-14_5_0/index.js +2 -2
  419. package/schematics/update-karma-config/index.js +2 -2
  420. package/schematics/utility/migrate-to-karma-coverage.js +3 -3
  421. package/sdk-appinfo/application-info.d.ts +1 -0
  422. package/sdk-appinfo/application-info.service.d.ts +4 -4
  423. package/sdk-dictionary/sdk-dictionary.pipe.d.ts +1 -1
  424. package/sdk-dictionary/sdk-dictionary.service.d.ts +9 -0
  425. package/sdk-epayment/sdk-epayment.component.d.ts +6 -16
  426. package/sdk-epayment/sdk-epayment.service.d.ts +3 -6
  427. package/sdk-recaptcha/grecaptcha/grecaptcha.component.d.ts +2 -2
  428. package/sdk-recaptcha/recaptcha.service.d.ts +5 -5
  429. package/sdk-recaptcha/sdk-recaptcha.component.d.ts +4 -4
  430. package/sdk-redirect/iam-expired-interceptor.service.d.ts +3 -3
  431. package/sdk-redirect/redirect.component.d.ts +3 -9
  432. package/sdk-session-info/session-info-data.d.ts +0 -1
  433. package/sdk-session-info/session-info.service.d.ts +4 -4
  434. package/sdk-statistics/sdk-statistics.service.d.ts +22 -0
  435. package/sdk-support-alert/support-alert-container.component.d.ts +3 -3
  436. package/sdk-support-alert/support-alert.component.d.ts +1 -1
  437. package/sdk-support-alert/support-alert.service.d.ts +5 -4
  438. package/validation/validation-handler.service.d.ts +4 -4
  439. package/backend-response.d.ts +0 -18
  440. package/bundles/dsivd-prestations-ng.umd.js +0 -13188
  441. package/bundles/dsivd-prestations-ng.umd.js.map +0 -1
  442. package/dsivd-prestations-ng-v15.5.13.tgz +0 -0
  443. package/dsivd-prestations-ng.d.ts +0 -5
  444. package/esm2015/abstract-page-component.js +0 -224
  445. package/esm2015/backend-response.js +0 -10
  446. package/esm2015/directives/currency-formatter.directive.js +0 -116
  447. package/esm2015/error-template.js +0 -2
  448. package/esm2015/foehn-address/foehn-address.module.js +0 -57
  449. package/esm2015/foehn-address/foehn-input-address.component.js +0 -365
  450. package/esm2015/foehn-address/foehn-input-foreign-locality.component.js +0 -71
  451. package/esm2015/foehn-address/foehn-input-foreign-street.component.js +0 -60
  452. package/esm2015/foehn-autocomplete/foehn-autocomplete.component.js +0 -556
  453. package/esm2015/foehn-autocomplete/foehn-autocomplete.module.js +0 -42
  454. package/esm2015/foehn-boolean/foehn-boolean-checkbox.component.js +0 -32
  455. package/esm2015/foehn-boolean/foehn-boolean-radio.component.js +0 -41
  456. package/esm2015/foehn-boolean/foehn-boolean.module.js +0 -35
  457. package/esm2015/foehn-breadcrumb/breadcrumb-event.service.js +0 -182
  458. package/esm2015/foehn-breadcrumb/foehn-breadcrumb.component.js +0 -85
  459. package/esm2015/foehn-breadcrumb/foehn-breadcrumb.module.js +0 -19
  460. package/esm2015/foehn-checkables/foehn-checkable-group.component.js +0 -294
  461. package/esm2015/foehn-checkables/foehn-checkables.module.js +0 -62
  462. package/esm2015/foehn-checkables/foehn-checkbox.component.js +0 -40
  463. package/esm2015/foehn-checkables/foehn-radio.component.js +0 -67
  464. package/esm2015/foehn-checkables/foehn-select.component.js +0 -66
  465. package/esm2015/foehn-confirm-modal/foehn-confirm-modal.component.js +0 -42
  466. package/esm2015/foehn-confirm-modal/foehn-confirm-modal.module.js +0 -19
  467. package/esm2015/foehn-date-picker/date-picker-navigation.helper.js +0 -117
  468. package/esm2015/foehn-date-picker/date-picker.helper.js +0 -126
  469. package/esm2015/foehn-date-picker/foehn-date-picker.component.js +0 -300
  470. package/esm2015/foehn-date-picker/foehn-date-picker.module.js +0 -42
  471. package/esm2015/foehn-date-picker-button/foehn-date-picker-button.component.js +0 -74
  472. package/esm2015/foehn-date-picker-button/foehn-date-picker-button.module.js +0 -38
  473. package/esm2015/foehn-debug-summary/foehn-debug-summary.component.js +0 -61
  474. package/esm2015/foehn-decision-electronique/foehn-decision-electronique.component.js +0 -40
  475. package/esm2015/foehn-decision-electronique/foehn-decision-electronique.module.js +0 -20
  476. package/esm2015/foehn-footer/foehn-footer.component.js +0 -132
  477. package/esm2015/foehn-form/foehn-form.component.js +0 -146
  478. package/esm2015/foehn-form/foehn-form.module.js +0 -20
  479. package/esm2015/foehn-growl/foehn-growl.component.js +0 -47
  480. package/esm2015/foehn-header/foehn-header.component.js +0 -73
  481. package/esm2015/foehn-header/foehn-header.module.js +0 -21
  482. package/esm2015/foehn-help-modal/foehn-help-modal.component.js +0 -48
  483. package/esm2015/foehn-help-modal/foehn-help-modal.module.js +0 -20
  484. package/esm2015/foehn-help-modal/foehn-help-modal.type.js +0 -2
  485. package/esm2015/foehn-icons/foehn-icon-calendar.component.js +0 -22
  486. package/esm2015/foehn-icons/foehn-icon-check-square-o.component.js +0 -22
  487. package/esm2015/foehn-icons/foehn-icon-check.component.js +0 -22
  488. package/esm2015/foehn-icons/foehn-icon-chevron-down.component.js +0 -22
  489. package/esm2015/foehn-icons/foehn-icon-chevron-left.component.js +0 -22
  490. package/esm2015/foehn-icons/foehn-icon-chevron-right.component.js +0 -22
  491. package/esm2015/foehn-icons/foehn-icon-chevron-up.component.js +0 -22
  492. package/esm2015/foehn-icons/foehn-icon-clock.component.js +0 -22
  493. package/esm2015/foehn-icons/foehn-icon-comment-dots.component.js +0 -22
  494. package/esm2015/foehn-icons/foehn-icon-edit.component.js +0 -22
  495. package/esm2015/foehn-icons/foehn-icon-external-link-alt.component.js +0 -22
  496. package/esm2015/foehn-icons/foehn-icon-file-pdf.component.js +0 -22
  497. package/esm2015/foehn-icons/foehn-icon-info-circle.component.js +0 -22
  498. package/esm2015/foehn-icons/foehn-icon-lock.component.js +0 -22
  499. package/esm2015/foehn-icons/foehn-icon-map-marker.component.js +0 -22
  500. package/esm2015/foehn-icons/foehn-icon-minus-circle.component.js +0 -22
  501. package/esm2015/foehn-icons/foehn-icon-plus-circle.component.js +0 -22
  502. package/esm2015/foehn-icons/foehn-icon-plus-square.component.js +0 -22
  503. package/esm2015/foehn-icons/foehn-icon-search.component.js +0 -22
  504. package/esm2015/foehn-icons/foehn-icon-times.component.js +0 -22
  505. package/esm2015/foehn-icons/foehn-icon-trash-alt.component.js +0 -22
  506. package/esm2015/foehn-icons/foehn-icon-unlock-alt.component.js +0 -22
  507. package/esm2015/foehn-input/foehn-input-email.component.js +0 -55
  508. package/esm2015/foehn-input/foehn-input-hidden.component.js +0 -57
  509. package/esm2015/foehn-input/foehn-input-number.component.js +0 -190
  510. package/esm2015/foehn-input/foehn-input-password.component.js +0 -55
  511. package/esm2015/foehn-input/foehn-input-phone.component.js +0 -96
  512. package/esm2015/foehn-input/foehn-input-text.component.js +0 -80
  513. package/esm2015/foehn-input/foehn-input-textarea.component.js +0 -104
  514. package/esm2015/foehn-input/foehn-input.component.js +0 -364
  515. package/esm2015/foehn-input/foehn-input.module.js +0 -82
  516. package/esm2015/foehn-input-date/foehn-input-date.component.js +0 -94
  517. package/esm2015/foehn-input-time/foehn-input-time.component.js +0 -79
  518. package/esm2015/foehn-list/foehn-list.component.js +0 -135
  519. package/esm2015/foehn-list/foehn-list.module.js +0 -19
  520. package/esm2015/foehn-menu-prestation/abstract-list-item-detail-page.component.js +0 -122
  521. package/esm2015/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.js +0 -26
  522. package/esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.js +0 -75
  523. package/esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.js +0 -38
  524. package/esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.js +0 -54
  525. package/esm2015/foehn-menu-prestation/foehn-menu-prestation.module.js +0 -61
  526. package/esm2015/foehn-modal/foehn-modal.component.js +0 -100
  527. package/esm2015/foehn-modal/foehn-modal.module.js +0 -19
  528. package/esm2015/foehn-nav13/foehn-input-nav13.component.js +0 -98
  529. package/esm2015/foehn-nav13/foehn-input-nav13.module.js +0 -34
  530. package/esm2015/foehn-navigation/foehn-navigation.component.js +0 -98
  531. package/esm2015/foehn-navigation/foehn-navigation.module.js +0 -34
  532. package/esm2015/foehn-navigation/foehn-navigation.service.js +0 -297
  533. package/esm2015/foehn-notfound/foehn-notfound.module.js +0 -20
  534. package/esm2015/foehn-page/foehn-page-modal.component.js +0 -55
  535. package/esm2015/foehn-page/foehn-page.component.js +0 -214
  536. package/esm2015/foehn-page/foehn-page.module.js +0 -76
  537. package/esm2015/foehn-recap-section/foehn-recap-section.component.js +0 -88
  538. package/esm2015/foehn-recap-section/foehn-recap-section.module.js +0 -20
  539. package/esm2015/foehn-upload/abstract-foehn-uploader.component.js +0 -192
  540. package/esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.js +0 -62
  541. package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.js +0 -168
  542. package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.js +0 -38
  543. package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.js +0 -217
  544. package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.js +0 -38
  545. package/esm2015/foehn-upload/foehn-multi-upload/multi-upload.service.js +0 -76
  546. package/esm2015/foehn-upload/foehn-multi-upload/pending-upload.service.js +0 -157
  547. package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.js +0 -164
  548. package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.js +0 -42
  549. package/esm2015/foehn-upload/uploader.helper.js +0 -322
  550. package/esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.component.js +0 -88
  551. package/esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.module.js +0 -19
  552. package/esm2015/foehn-validation-alerts/foehn-validation-alerts.component.js +0 -32
  553. package/esm2015/gesdem/gesdem-event.service.js +0 -38
  554. package/esm2015/gesdem/gesdem-handler.service.js +0 -151
  555. package/esm2015/gesdem/gesdem-loader.guard.js +0 -40
  556. package/esm2015/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.js +0 -103
  557. package/esm2015/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.js +0 -133
  558. package/esm2015/gesdem-action-recovery/gesdem-action-recovery.module.js +0 -52
  559. package/esm2015/gesdem-action-recovery/gesdem-action-recovery.service.js +0 -82
  560. package/esm2015/gesdem-confirmation/gesdem-confirmation.component.js +0 -194
  561. package/esm2015/gesdem-confirmation/gesdem-confirmation.module.js +0 -34
  562. package/esm2015/gesdem-error/gesdem-error.component.js +0 -70
  563. package/esm2015/gesdem-error/gesdem-error.module.js +0 -34
  564. package/esm2015/helpers/object.helper.js +0 -88
  565. package/esm2015/index.js +0 -224
  566. package/esm2015/sdk-appinfo/application-info.js +0 -14
  567. package/esm2015/sdk-appinfo/application-info.service.js +0 -111
  568. package/esm2015/sdk-date/date.helper.js +0 -90
  569. package/esm2015/sdk-dictionary/default-dictionary.js +0 -80
  570. package/esm2015/sdk-dictionary/sdk-dictionary.service.js +0 -96
  571. package/esm2015/sdk-epayment/model/EPaymentRequest.js +0 -3
  572. package/esm2015/sdk-epayment/sdk-epayment.component.js +0 -113
  573. package/esm2015/sdk-epayment/sdk-epayment.module.js +0 -21
  574. package/esm2015/sdk-epayment/sdk-epayment.service.js +0 -46
  575. package/esm2015/sdk-recaptcha/recaptcha.service.js +0 -162
  576. package/esm2015/sdk-recaptcha/sdk-recaptcha.component.js +0 -72
  577. package/esm2015/sdk-recaptcha/sdk-recaptcha.module.js +0 -19
  578. package/esm2015/sdk-redirect/iam-expired-interceptor.service.js +0 -48
  579. package/esm2015/sdk-redirect/redirect.component.js +0 -47
  580. package/esm2015/sdk-redirect/sdk-redirect.module.js +0 -19
  581. package/esm2015/sdk-session-info/session-info.service.js +0 -44
  582. package/esm2015/sdk-support-alert/support-alert-container.component.js +0 -53
  583. package/esm2015/sdk-support-alert/support-alert.component.js +0 -38
  584. package/esm2015/sdk-support-alert/support-alert.module.js +0 -21
  585. package/esm2015/sdk-support-alert/support-alert.service.js +0 -113
  586. package/esm2015/supported-browser.js +0 -2
  587. package/esm2015/validation/validation-handler.service.js +0 -44
  588. package/fesm2015/dsivd-prestations-ng.js +0 -11618
  589. package/fesm2015/dsivd-prestations-ng.js.map +0 -1
  590. package/sdk-epayment/model/EPaymentRequest.d.ts +0 -5
@@ -1,365 +0,0 @@
1
- import { Component, forwardRef, Input, ViewChild } from '@angular/core';
2
- import { FoehnInputComponent } from '../foehn-input/foehn-input.component';
3
- import { BehaviorSubject, combineLatest, of } from 'rxjs';
4
- import { debounceTime, distinctUntilChanged, first, map, shareReplay, switchMap } from 'rxjs/operators';
5
- import { FoehnInputForeignLocalityComponent } from './foehn-input-foreign-locality.component';
6
- import { FoehnInputForeignStreetComponent } from './foehn-input-foreign-street.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common/http";
9
- import * as i2 from "../foehn-validation-alerts/foehn-validation-alerts.component";
10
- import * as i3 from "../foehn-autocomplete/foehn-autocomplete.component";
11
- import * as i4 from "./foehn-input-foreign-locality.component";
12
- import * as i5 from "./foehn-input-foreign-street.component";
13
- import * as i6 from "../foehn-input/foehn-input-text.component";
14
- import * as i7 from "@angular/common";
15
- import * as i8 from "../sdk-dictionary/sdk-dictionary.pipe";
16
- // eslint-disable max-classes-per-file
17
- export const SWISS_ISO_ID = 'CH';
18
- export class StreetNumber {
19
- }
20
- export class FoehnInputAddressComponent extends FoehnInputComponent {
21
- constructor(httpClient, ngZone) {
22
- super();
23
- this.httpClient = httpClient;
24
- this.ngZone = ngZone;
25
- this.countriesUrl = 'api/refinf/countries';
26
- this.isOnlySwiss = true;
27
- this.showPostOfficeBoxText = false;
28
- this.showAdressLines = true;
29
- this.showAdressLine1 = true;
30
- this.showAdressLine2 = true;
31
- this.countryRequired = true;
32
- this.swissNpaLocalityRequired = true;
33
- this.streetRequired = true;
34
- this.streetNumberRequired = false;
35
- this.foreignZipCodeRequired = true;
36
- this.foreignLocalityRequired = true;
37
- this.foreignStreetRequired = true;
38
- this.foreignStreetNumberRequired = false;
39
- this.postOfficeBoxTextRequired = false;
40
- this.addressLine1Required = false;
41
- this.addressLine2Required = false;
42
- this.withCompanyLocalities = false;
43
- this.iso2IdSubject = new BehaviorSubject(null);
44
- this.zipCodeIdSubject = new BehaviorSubject(null);
45
- this.estrIdSubject = new BehaviorSubject(null);
46
- this.identity = (n) => n;
47
- this.countryIdentity = (country) => country.iso2Id;
48
- this.localityIdentity = (loc) => loc.postalLocalityHistoryId;
49
- this.streetIdentity = (street) => street.estrid;
50
- this.streetGenerator = (longName) => ({
51
- estrid: null,
52
- longName
53
- });
54
- }
55
- ngOnInit() {
56
- super.ngOnInit();
57
- this.countries = this.getCountries();
58
- this.localities = this.iso2IdSubject.pipe(distinctUntilChanged(),
59
- // The list of localities, or an empty array as the default value.
60
- switchMap(iso2Id => this.getLocalities(iso2Id)), shareReplay(1));
61
- this.streets = combineLatest([
62
- this.zipCodeIdSubject,
63
- this.localities
64
- ]).pipe(
65
- // The zipCodeId when locality changes or match locality (postalLocalityHistoryId) from model
66
- map(([zipCodeId, localities]) => zipCodeId ||
67
- this.extractLocalityZipCodeId(localities, this.locality)), debounceTime(0), distinctUntilChanged(),
68
- // The list of streets or a default value to an empty array
69
- switchMap(zipCodeId => this.getStreetsFor(zipCodeId)), shareReplay(1));
70
- this.streetNumbers = combineLatest([
71
- this.estrIdSubject,
72
- this.streets
73
- ]).pipe(
74
- // The estrid when street changes or match street (longName) from model
75
- map(([estrid, streets]) => estrid || this.extractStreetEstrid(streets, this.street)), debounceTime(0), distinctUntilChanged(),
76
- // The list of streets or a default value to an empty array
77
- switchMap(estrid => this.getStreetNumberFor(estrid)),
78
- // Some street might not have an name, RefInf sometimes returns weird data.
79
- map(values => values.filter(streetNumber => !!streetNumber.name)), map(values => {
80
- const collator = new Intl.Collator(undefined, {
81
- numeric: true,
82
- sensitivity: 'base'
83
- });
84
- return values.sort((a, b) => collator.compare(a.name, b.name));
85
- }), shareReplay(1));
86
- this.ngZone.onMicrotaskEmpty.pipe(first()).subscribe(() => {
87
- setTimeout(() => {
88
- this.clearAutocompletesWhenCountryIsUnappropriatedToComponentConfiguration();
89
- this.setDefaultCountry();
90
- });
91
- });
92
- }
93
- updateAddress() {
94
- const validValue = this.getValidValue();
95
- if (typeof validValue !== 'undefined') {
96
- this.updateNgModel(validValue);
97
- }
98
- }
99
- handleUserInput() {
100
- const validValue = this.getValidValue();
101
- if (typeof validValue !== 'undefined') {
102
- this.handleChange(validValue);
103
- }
104
- }
105
- onModelChange(value) {
106
- if (value) {
107
- this.country = value.country;
108
- this.locality = value.locality;
109
- this.street = value.street;
110
- this.houseNumber = value.houseNumber;
111
- this.postOfficeBoxText = value.postOfficeBoxText;
112
- this.addressLine1 = value.addressLine1;
113
- this.addressLine2 = value.addressLine2;
114
- }
115
- else if (!value) {
116
- this.locality = null;
117
- this.street = null;
118
- this.houseNumber = null;
119
- this.postOfficeBoxText = null;
120
- this.addressLine1 = null;
121
- this.addressLine2 = null;
122
- }
123
- }
124
- isSwiss() {
125
- return !!(this.isOnlySwiss ||
126
- (this.country && this.country.iso2Id === SWISS_ISO_ID));
127
- }
128
- userInputCountryOrLocality(emptyLocality) {
129
- var _a, _b, _c;
130
- if (emptyLocality) {
131
- this.locality = null;
132
- this.postOfficeBoxText = null;
133
- this.addressLine1 = null;
134
- this.addressLine2 = null;
135
- // subcomponents will be enabled but should not display errors yet
136
- (_a = this.foreignLocalityComponent) === null || _a === void 0 ? void 0 : _a.getNativeInputList().forEach(ngModel => ngModel.control.markAsDirty());
137
- (_b = this.foreignStreetComponent) === null || _b === void 0 ? void 0 : _b.getNativeInputList().forEach(ngModel => ngModel.control.markAsDirty());
138
- (_c = this.foreignHouseNumber) === null || _c === void 0 ? void 0 : _c.getNativeInputList().forEach(ngModel => ngModel.control.markAsDirty());
139
- }
140
- this.street = null;
141
- this.houseNumber = null;
142
- this.updateAddress();
143
- this.handleUserInput();
144
- }
145
- countryUpdated(country) {
146
- // No double-binding on country in view to ensure we update properly model
147
- this.country = country;
148
- this.updateAddress();
149
- if (!country) {
150
- return;
151
- }
152
- const { iso2Id } = country;
153
- this.iso2IdSubject.next(iso2Id);
154
- }
155
- getLocalityDisplayedName(locality) {
156
- if (!locality) {
157
- return;
158
- }
159
- return `${locality.zipCode} ${locality.longName}`;
160
- }
161
- localityUpdated(locality) {
162
- // No double-binding on locality in view to ensure we update properly model
163
- this.locality = locality;
164
- this.updateAddress();
165
- if (!locality) {
166
- return;
167
- }
168
- const { zipCodeId } = locality;
169
- this.zipCodeIdSubject.next(zipCodeId);
170
- }
171
- streetUpdated(street) {
172
- // No double-binding on street in view to ensure we update properly model
173
- this.street = street;
174
- this.updateAddress();
175
- if (!street) {
176
- return;
177
- }
178
- const { estrid } = street;
179
- this.estrIdSubject.next(estrid);
180
- }
181
- getCountries() {
182
- return this.httpClient.get(this.countriesUrl);
183
- }
184
- getLocalities(iso2Id) {
185
- if (iso2Id !== SWISS_ISO_ID) {
186
- return of([]);
187
- }
188
- const queryParams = !!this.withCompanyLocalities
189
- ? '?withCompanyLocalities=true'
190
- : '';
191
- if (!!this.specifiedCanton) {
192
- return this.httpClient.get(`api/refinf/locality/${this.specifiedCanton}${queryParams}`);
193
- }
194
- else {
195
- return this.httpClient.get(`api/refinf/locality/all${queryParams}`);
196
- }
197
- }
198
- getStreetNumberFor(estrid) {
199
- if (!estrid) {
200
- return of([]);
201
- }
202
- const url = `api/refinf/addresses/${estrid}`;
203
- return this.httpClient.get(url);
204
- }
205
- getStreetsFor(zipCodeId) {
206
- if (!zipCodeId) {
207
- return of([]);
208
- }
209
- const url = `api/refinf/streets/${zipCodeId}`;
210
- return this.httpClient.get(url);
211
- }
212
- clearAutocompletesWhenCountryIsUnappropriatedToComponentConfiguration() {
213
- if (this.isModelEmpty()) {
214
- return;
215
- }
216
- if (this.isOnlySwiss &&
217
- this.country &&
218
- this.country.iso2Id !== SWISS_ISO_ID) {
219
- // Do not remove this warning. Needed for debugging at all time.
220
- console.warn(
221
- // eslint-disable-next-line max-len
222
- `Country address was '${this.country.iso2Id}'. Only swiss is asked in component 'foehn-input-address' configuration. Address model resetted.`);
223
- this.clearAutocompletes();
224
- }
225
- }
226
- setDefaultCountry() {
227
- if (this.isOnlySwiss || !this.country || !this.country.iso2Id) {
228
- this.country = {
229
- iso2Id: SWISS_ISO_ID,
230
- shortNameFr: 'Suisse'
231
- };
232
- this.iso2IdSubject.next(SWISS_ISO_ID);
233
- this.updateAddress();
234
- }
235
- }
236
- clearAutocompletes() {
237
- this.country = null;
238
- this.street = null;
239
- this.locality = null;
240
- this.houseNumber = null;
241
- // No updateAddress() here because done in setDefaultCountry()
242
- }
243
- extractLocalityZipCodeId(localities, localityToMatch) {
244
- if (localityToMatch && localityToMatch.postalLocalityHistoryId) {
245
- const matched = localities.find((locality) => locality.postalLocalityHistoryId ===
246
- localityToMatch.postalLocalityHistoryId);
247
- if (matched) {
248
- return matched.zipCodeId;
249
- }
250
- }
251
- return null;
252
- }
253
- extractStreetEstrid(streets, streetToMatch) {
254
- if (streetToMatch && streetToMatch.longName) {
255
- const matched = streets.find((street) => street.longName === streetToMatch.longName);
256
- if (matched) {
257
- return matched.estrid;
258
- }
259
- }
260
- return null;
261
- }
262
- getValidValue() {
263
- if (this.isModelEmpty()) {
264
- if (this.model_ !== undefined) {
265
- return null;
266
- }
267
- return undefined;
268
- }
269
- return {
270
- country: this.country,
271
- locality: this.getValidLocality(this.locality),
272
- street: this.street,
273
- houseNumber: this.houseNumber,
274
- postOfficeBoxText: this.postOfficeBoxText,
275
- addressLine1: this.addressLine1,
276
- addressLine2: this.addressLine2
277
- };
278
- }
279
- getValidLocality(value) {
280
- // PRESTAKIT-352: Need a fake 'postalLocalityHistoryId' for individual errors on 'zipCode' and 'longName'
281
- if (!this.isSwiss() && !value) {
282
- return { postalLocalityHistoryId: -1 };
283
- }
284
- return value;
285
- }
286
- isModelEmpty() {
287
- return (this.isEmpty(this.country) &&
288
- this.isEmpty(this.locality) &&
289
- this.isEmpty(this.street) &&
290
- this.isEmpty(this.houseNumber) &&
291
- this.isEmpty(this.postOfficeBoxText) &&
292
- this.isEmpty(this.addressLine1) &&
293
- this.isEmpty(this.addressLine2));
294
- }
295
- }
296
- FoehnInputAddressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnInputAddressComponent, deps: [{ token: i1.HttpClient }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
297
- FoehnInputAddressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnInputAddressComponent, selector: "foehn-input-address", inputs: { countriesUrl: "countriesUrl", isOnlySwiss: "isOnlySwiss", showPostOfficeBoxText: "showPostOfficeBoxText", showAdressLines: "showAdressLines", showAdressLine1: "showAdressLine1", showAdressLine2: "showAdressLine2", specifiedCanton: "specifiedCanton", countryRequired: "countryRequired", swissNpaLocalityRequired: "swissNpaLocalityRequired", streetRequired: "streetRequired", streetNumberRequired: "streetNumberRequired", foreignZipCodeRequired: "foreignZipCodeRequired", foreignLocalityRequired: "foreignLocalityRequired", foreignStreetRequired: "foreignStreetRequired", foreignStreetNumberRequired: "foreignStreetNumberRequired", postOfficeBoxTextRequired: "postOfficeBoxTextRequired", addressLine1Required: "addressLine1Required", addressLine2Required: "addressLine2Required", withCompanyLocalities: "withCompanyLocalities" }, providers: [
298
- {
299
- provide: FoehnInputComponent,
300
- useExisting: forwardRef(() => FoehnInputAddressComponent),
301
- multi: true
302
- }
303
- ], viewQueries: [{ propertyName: "foreignLocalityComponent", first: true, predicate: FoehnInputForeignLocalityComponent, descendants: true }, { propertyName: "foreignStreetComponent", first: true, predicate: FoehnInputForeignStreetComponent, descendants: true }, { propertyName: "foreignHouseNumber", first: true, predicate: ["foreignHouseNumber"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n [attr.id]=\"buildId() + 'Container'\"\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [tabIndex]=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend *ngIf=\"!!label\" [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\">\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <foehn-autocomplete\n *ngIf=\"!isOnlySwiss\"\n [label]=\"'foehn-input-address.country.label' | fromDictionary\"\n [elements]=\"countries | async\"\n elementLabel=\"shortNameFr\"\n [elementValue]=\"identity\"\n [elementValueIdentity]=\"countryIdentity\"\n (modelChange)=\"countryUpdated($event)\"\n (userInput)=\"userInputCountryOrLocality(true)\"\n [model]=\"country\"\n [name]=\"name + '.country'\"\n [required]=\"countryRequired\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n\n <ng-container *ngIf=\"isSwiss()\">\n <foehn-autocomplete\n [label]=\"'foehn-input-address.locality.label' | fromDictionary\"\n [elements]=\"localities | async\"\n [elementLabel]=\"getLocalityDisplayedName\"\n [elementValue]=\"identity\"\n [elementValueIdentity]=\"localityIdentity\"\n (modelChange)=\"localityUpdated($event)\"\n (userInput)=\"userInputCountryOrLocality(false)\"\n [model]=\"locality\"\n [name]=\"name + '.locality'\"\n [required]=\"swissNpaLocalityRequired\"\n [allElementDisabled]=\"!country\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n\n <foehn-autocomplete\n [label]=\"'foehn-input-address.street.label' | fromDictionary\"\n [elements]=\"streets | async\"\n elementLabel=\"longName\"\n [elementValue]=\"identity\"\n [elementValueIdentity]=\"streetIdentity\"\n (modelChange)=\"streetUpdated($event)\"\n [model]=\"street\"\n [name]=\"name + '.street'\"\n [allowCustomValue]=\"true\"\n [customValueModelGenerator]=\"streetGenerator\"\n [required]=\"streetRequired\"\n [helpText]=\"\n 'foehn-input-address.street.help-text' | fromDictionary\n \"\n [allElementDisabled]=\"!country\"\n (userInput)=\"handleUserInput()\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n\n <foehn-autocomplete\n [label]=\"\n 'foehn-input-address.houseNumber.label' | fromDictionary\n \"\n [elements]=\"streetNumbers | async\"\n elementLabel=\"name\"\n elementValue=\"name\"\n [(model)]=\"houseNumber\"\n [name]=\"name + '.houseNumber'\"\n [allowCustomValue]=\"true\"\n [helpText]=\"\n 'foehn-input-address.houseNumber.help-text' | fromDictionary\n \"\n [allElementDisabled]=\"!country\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"streetNumberRequired\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n </ng-container>\n\n <ng-container *ngIf=\"!isSwiss()\">\n <!--\n Component <foehn-input-foreign-locality> is special because we use the same model when swiss or foreigner.\n To do so, we need:\n - Errors will be bind on 'locality' when NULL or on 'zipCode' and 'longName' model inside component when EMPTY\n - Hide label from component because we need label from children to be displayed (isLabelSrOnly: true)\n - required and disabled params are transmitted to children\n -->\n <foehn-input-foreign-locality\n [label]=\"'foehn-input-address.locality.label' | fromDictionary\"\n [name]=\"name + '.locality'\"\n [(model)]=\"locality\"\n [zipCodeRequired]=\"foreignZipCodeRequired\"\n [localityRequired]=\"foreignLocalityRequired\"\n [isLabelSrOnly]=\"true\"\n [disabled]=\"!country || disabled\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n ></foehn-input-foreign-locality>\n <!--\n Component <foehn-input-foreign-street> is special because we use the same model when swiss or foreigner.\n To do so, we need:\n - Errors will be bind on 'street' when NULL or on 'longName' model inside component when EMPTY\n - required, helpText, isLabelSrOnly and disabled params are transmitted to children\n -->\n <foehn-input-foreign-street\n [label]=\"'foehn-input-address.street.label' | fromDictionary\"\n [name]=\"name + '.street'\"\n [(model)]=\"street\"\n [required]=\"foreignStreetRequired\"\n [helpText]=\"\n 'foehn-input-address.street.help-text' | fromDictionary\n \"\n [disabled]=\"!country || disabled\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n ></foehn-input-foreign-street>\n\n <foehn-input-text\n #foreignHouseNumber\n [label]=\"\n 'foehn-input-address.houseNumber.label' | fromDictionary\n \"\n [name]=\"name + '.houseNumber'\"\n [(model)]=\"houseNumber\"\n [helpText]=\"\n 'foehn-input-address.houseNumber.help-text' | fromDictionary\n \"\n [disabled]=\"!country || disabled\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"foreignStreetNumberRequired\"\n ></foehn-input-text>\n </ng-container>\n\n <foehn-input-text\n *ngIf=\"showPostOfficeBoxText\"\n [(model)]=\"postOfficeBoxText\"\n [helpText]=\"\n 'foehn-input-address.postOfficeBoxText.help-text'\n | fromDictionary\n \"\n [label]=\"\n 'foehn-input-address.postOfficeBoxText.label' | fromDictionary\n \"\n [name]=\"name + '.postOfficeBoxText'\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"postOfficeBoxTextRequired\"\n [disabled]=\"disabled\"\n ></foehn-input-text>\n\n <foehn-input-text\n *ngIf=\"showAdressLines && showAdressLine1\"\n [(model)]=\"addressLine1\"\n [label]=\"'foehn-input-address.addressLine1.label' | fromDictionary\"\n [name]=\"name + '.addressLine1'\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"addressLine1Required\"\n [autocomplete]=\"'address-line2'\"\n [disabled]=\"disabled\"\n ></foehn-input-text>\n\n <foehn-input-text\n *ngIf=\"showAdressLines && showAdressLine2\"\n [(model)]=\"addressLine2\"\n [label]=\"'foehn-input-address.addressLine2.label' | fromDictionary\"\n [name]=\"name + '.addressLine2'\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"addressLine2Required\"\n [autocomplete]=\"'address-line3'\"\n [disabled]=\"disabled\"\n ></foehn-input-text>\n </fieldset>\n</div>\n", components: [{ type: i2.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i3.FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: ["searchValueMinCharsCount", "allowCustomValue", "customValueModelGenerator"] }, { type: i4.FoehnInputForeignLocalityComponent, selector: "foehn-input-foreign-locality", inputs: ["localityRequired", "zipCodeRequired"] }, { type: i5.FoehnInputForeignStreetComponent, selector: "foehn-input-foreign-street" }, { type: i6.FoehnInputTextComponent, selector: "foehn-input-text", inputs: ["numberOnly"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "fromDictionary": i8.SdkDictionaryPipe, "async": i7.AsyncPipe } });
304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnInputAddressComponent, decorators: [{
305
- type: Component,
306
- args: [{
307
- selector: 'foehn-input-address',
308
- templateUrl: './foehn-input-address.component.html',
309
- providers: [
310
- {
311
- provide: FoehnInputComponent,
312
- useExisting: forwardRef(() => FoehnInputAddressComponent),
313
- multi: true
314
- }
315
- ]
316
- }]
317
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.NgZone }]; }, propDecorators: { foreignLocalityComponent: [{
318
- type: ViewChild,
319
- args: [FoehnInputForeignLocalityComponent, { static: false }]
320
- }], foreignStreetComponent: [{
321
- type: ViewChild,
322
- args: [FoehnInputForeignStreetComponent, { static: false }]
323
- }], foreignHouseNumber: [{
324
- type: ViewChild,
325
- args: ['foreignHouseNumber', { static: false }]
326
- }], countriesUrl: [{
327
- type: Input
328
- }], isOnlySwiss: [{
329
- type: Input
330
- }], showPostOfficeBoxText: [{
331
- type: Input
332
- }], showAdressLines: [{
333
- type: Input
334
- }], showAdressLine1: [{
335
- type: Input
336
- }], showAdressLine2: [{
337
- type: Input
338
- }], specifiedCanton: [{
339
- type: Input
340
- }], countryRequired: [{
341
- type: Input
342
- }], swissNpaLocalityRequired: [{
343
- type: Input
344
- }], streetRequired: [{
345
- type: Input
346
- }], streetNumberRequired: [{
347
- type: Input
348
- }], foreignZipCodeRequired: [{
349
- type: Input
350
- }], foreignLocalityRequired: [{
351
- type: Input
352
- }], foreignStreetRequired: [{
353
- type: Input
354
- }], foreignStreetNumberRequired: [{
355
- type: Input
356
- }], postOfficeBoxTextRequired: [{
357
- type: Input
358
- }], addressLine1Required: [{
359
- type: Input
360
- }], addressLine2Required: [{
361
- type: Input
362
- }], withCompanyLocalities: [{
363
- type: Input
364
- }] } });
365
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tYWRkcmVzcy9mb2Vobi1pbnB1dC1hZGRyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1hZGRyZXNzL2ZvZWhuLWlucHV0LWFkZHJlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUNILFlBQVksRUFDWixvQkFBb0IsRUFDcEIsS0FBSyxFQUNMLEdBQUcsRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7QUFHMUYsc0NBQXNDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUM7QUFFakMsTUFBTSxPQUFPLFlBQVk7Q0FFeEI7QUFhRCxNQUFNLE9BQU8sMEJBQ1QsU0FBUSxtQkFBNEI7SUFxRnBDLFlBQW9CLFVBQXNCLEVBQVUsTUFBYztRQUM5RCxLQUFLLEVBQUUsQ0FBQztRQURRLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBekVsRSxpQkFBWSxHQUFHLHNCQUFzQixDQUFD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S0FBSyxFQUFFO2dCQUloRSxzQkFBc0I7c0JBRHJCLFNBQVM7dUJBQUMsZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUk5RCxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUlsRCxZQUFZO3NCQURYLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLHdCQUF3QjtzQkFEdkIsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQUlOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFJTix1QkFBdUI7c0JBRHRCLEtBQUs7Z0JBSU4scUJBQXFCO3NCQURwQixLQUFLO2dCQUlOLDJCQUEyQjtzQkFEMUIsS0FBSztnQkFJTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQUlOLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFJTixxQkFBcUI7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRyZXNzLCBDb3VudHJ5LCBMb2NhbGl0eSwgU3RyZWV0IH0gZnJvbSAnLi9hZGRyZXNzLnR5cGUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgZGVib3VuY2VUaW1lLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGZpcnN0LFxuICAgIG1hcCxcbiAgICBzaGFyZVJlcGxheSxcbiAgICBzd2l0Y2hNYXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9laG5JbnB1dEZvcmVpZ25Mb2NhbGl0eUNvbXBvbmVudCB9IGZyb20gJy4vZm9laG4taW5wdXQtZm9yZWlnbi1sb2NhbGl0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5JbnB1dEZvcmVpZ25TdHJlZXRDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWlucHV0LWZvcmVpZ24tc3RyZWV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VobklucHV0VGV4dENvbXBvbmVudCB9IGZyb20gJy4uL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LXRleHQuY29tcG9uZW50JztcblxuLy8gZXNsaW50LWRpc2FibGUgbWF4LWNsYXNzZXMtcGVyLWZpbGVcbmV4cG9ydCBjb25zdCBTV0lTU19JU09fSUQgPSAnQ0gnO1xuXG5leHBvcnQgY2xhc3MgU3RyZWV0TnVtYmVyIHtcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4taW5wdXQtYWRkcmVzcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWlucHV0LWFkZHJlc3MuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5JbnB1dEFkZHJlc3NDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5JbnB1dEFkZHJlc3NDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuSW5wdXRDb21wb25lbnQ8QWRkcmVzcz5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZChGb2VobklucHV0Rm9yZWlnbkxvY2FsaXR5Q29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBmb3JlaWduTG9jYWxpdHlDb21wb25lbnQ6IEZvZWhuSW5wdXRGb3JlaWduTG9jYWxpdHlDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKEZvZWhuSW5wdXRGb3JlaWduU3RyZWV0Q29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBmb3JlaWduU3RyZWV0Q29tcG9uZW50OiBGb2VobklucHV0Rm9yZWlnblN0cmVldENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ2ZvcmVpZ25Ib3VzZU51bWJlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGZvcmVpZ25Ib3VzZU51bWJlcjogRm9laG5JbnB1dFRleHRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvdW50cmllc1VybCA9ICdhcGkvcmVmaW5mL2NvdW50cmllcyc7XG5cbiAgICBASW5wdXQoKVxuICAgIGlzT25seVN3aXNzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvd1Bvc3RPZmZpY2VCb3hUZXh0ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dBZHJlc3NMaW5lcyA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dBZHJlc3NMaW5lMSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dBZHJlc3NMaW5lMiA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHNwZWNpZmllZENhbnRvbjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjb3VudHJ5UmVxdWlyZWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBzd2lzc05wYUxvY2FsaXR5UmVxdWlyZWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBzdHJlZXRSZXF1aXJlZCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHN0cmVldE51bWJlclJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGZvcmVpZ25aaXBDb2RlUmVxdWlyZWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBmb3JlaWduTG9jYWxpdHlSZXF1aXJlZCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGZvcmVpZ25TdHJlZXRSZXF1aXJlZCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGZvcmVpZ25TdHJlZXROdW1iZXJSZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwb3N0T2ZmaWNlQm94VGV4dFJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGFkZHJlc3NMaW5lMVJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGFkZHJlc3NMaW5lMlJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHdpdGhDb21wYW55TG9jYWxpdGllcyA9IGZhbHNlO1xuXG4gICAgY291bnRyeTogQ291bnRyeTtcbiAgICBsb2NhbGl0eTogTG9jYWxpdHk7XG4gICAgc3RyZWV0OiBTdHJlZXQ7XG4gICAgaG91c2VOdW1iZXI6IHN0cmluZztcbiAgICBwb3N0T2ZmaWNlQm94VGV4dDogc3RyaW5nO1xuICAgIGFkZHJlc3NMaW5lMTogc3RyaW5nO1xuICAgIGFkZHJlc3NMaW5lMjogc3RyaW5nO1xuXG4gICAgY291bnRyaWVzOiBPYnNlcnZhYmxlPENvdW50cnlbXT47XG4gICAgbG9jYWxpdGllczogT2JzZXJ2YWJsZTxMb2NhbGl0eVtdPjtcbiAgICBzdHJlZXRzOiBPYnNlcnZhYmxlPFN0cmVldFtdPjtcbiAgICBzdHJlZXROdW1iZXJzOiBPYnNlcnZhYmxlPFN0cmVldE51bWJlcltdPjtcblxuICAgIHByaXZhdGUgaXNvMklkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcbiAgICBwcml2YXRlIHppcENvZGVJZFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4obnVsbCk7XG4gICAgcHJpdmF0ZSBlc3RySWRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KG51bGwpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaWRlbnRpdHkgPSA8VD4objogVCk6IFQgPT4gbjtcbiAgICBjb3VudHJ5SWRlbnRpdHkgPSAoY291bnRyeTogQ291bnRyeSk6IHN0cmluZyA9PiBjb3VudHJ5LmlzbzJJZDtcbiAgICBsb2NhbGl0eUlkZW50aXR5ID0gKGxvYzogTG9jYWxpdHkpOiBudW1iZXIgPT4gbG9jLnBvc3RhbExvY2FsaXR5SGlzdG9yeUlkO1xuICAgIHN0cmVldElkZW50aXR5ID0gKHN0cmVldDogU3RyZWV0KTogbnVtYmVyID0+IHN0cmVldC5lc3RyaWQ7XG4gICAgc3RyZWV0R2VuZXJhdG9yID0gKGxvbmdOYW1lOiBzdHJpbmcpOiBTdHJlZXQgPT4gKHtcbiAgICAgICAgZXN0cmlkOiBudWxsLFxuICAgICAgICBsb25nTmFtZVxuICAgIH0pO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgdGhpcy5jb3VudHJpZXMgPSB0aGlzLmdldENvdW50cmllcygpO1xuXG4gICAgICAgIHRoaXMubG9jYWxpdGllcyA9IHRoaXMuaXNvMklkU3ViamVjdC5waXBlKFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIC8vIFRoZSBsaXN0IG9mIGxvY2FsaXRpZXMsIG9yIGFuIGVtcHR5IGFycmF5IGFzIHRoZSBkZWZhdWx0IHZhbHVlLlxuICAgICAgICAgICAgc3dpdGNoTWFwKGlzbzJJZCA9PiB0aGlzLmdldExvY2FsaXRpZXMoaXNvMklkKSksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc3RyZWV0cyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy56aXBDb2RlSWRTdWJqZWN0LFxuICAgICAgICAgICAgdGhpcy5sb2NhbGl0aWVzXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBUaGUgemlwQ29kZUlkIHdoZW4gbG9jYWxpdHkgY2hhbmdlcyBvciBtYXRjaCBsb2NhbGl0eSAocG9zdGFsTG9jYWxpdHlIaXN0b3J5SWQpIGZyb20gbW9kZWxcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAoW3ppcENvZGVJZCwgbG9jYWxpdGllc10pID0+XG4gICAgICAgICAgICAgICAgICAgIHppcENvZGVJZCB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV4dHJhY3RMb2NhbGl0eVppcENvZGVJZChsb2NhbGl0aWVzLCB0aGlzLmxvY2FsaXR5KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAvLyBUaGUgbGlzdCBvZiBzdHJlZXRzIG9yIGEgZGVmYXVsdCB2YWx1ZSB0byBhbiBlbXB0eSBhcnJheVxuICAgICAgICAgICAgc3dpdGNoTWFwKHppcENvZGVJZCA9PiB0aGlzLmdldFN0cmVldHNGb3IoemlwQ29kZUlkKSksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc3RyZWV0TnVtYmVycyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5lc3RySWRTdWJqZWN0LFxuICAgICAgICAgICAgdGhpcy5zdHJlZXRzXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBUaGUgZXN0cmlkIHdoZW4gc3RyZWV0IGNoYW5nZXMgb3IgbWF0Y2ggc3RyZWV0IChsb25nTmFtZSkgZnJvbSBtb2RlbFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIChbZXN0cmlkLCBzdHJlZXRzXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgZXN0cmlkIHx8IHRoaXMuZXh0cmFjdFN0cmVldEVzdHJpZChzdHJlZXRzLCB0aGlzLnN0cmVldClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgLy8gVGhlIGxpc3Qgb2Ygc3RyZWV0cyBvciBhIGRlZmF1bHQgdmFsdWUgdG8gYW4gZW1wdHkgYXJyYXlcbiAgICAgICAgICAgIHN3aXRjaE1hcChlc3RyaWQgPT4gdGhpcy5nZXRTdHJlZXROdW1iZXJGb3IoZXN0cmlkKSksXG4gICAgICAgICAgICAvLyBTb21lIHN0cmVldCBtaWdodCBub3QgaGF2ZSBhbiBuYW1lLCBSZWZJbmYgc29tZXRpbWVzIHJldHVybnMgd2VpcmQgZGF0YS5cbiAgICAgICAgICAgIG1hcCh2YWx1ZXMgPT4gdmFsdWVzLmZpbHRlcihzdHJlZXROdW1iZXIgPT4gISFzdHJlZXROdW1iZXIubmFtZSkpLFxuICAgICAgICAgICAgbWFwKHZhbHVlcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sbGF0b3IgPSBuZXcgSW50bC5Db2xsYXRvcih1bmRlZmluZWQsIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtZXJpYzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgc2Vuc2l0aXZpdHk6ICdiYXNlJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXMuc29ydCgoYSwgYikgPT4gY29sbGF0b3IuY29tcGFyZShhLm5hbWUsIGIubmFtZSkpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubmdab25lLm9uTWljcm90YXNrRW1wdHkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhckF1dG9jb21wbGV0ZXNXaGVuQ291bnRyeUlzVW5hcHByb3ByaWF0ZWRUb0NvbXBvbmVudENvbmZpZ3VyYXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRDb3VudHJ5KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlQWRkcmVzcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0VmFsaWRWYWx1ZSgpO1xuICAgICAgICBpZiAodHlwZW9mIHZhbGlkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVVc2VySW5wdXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldFZhbGlkVmFsdWUoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWxpZFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBBZGRyZXNzKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb3VudHJ5ID0gdmFsdWUuY291bnRyeTtcbiAgICAgICAgICAgIHRoaXMubG9jYWxpdHkgPSB2YWx1ZS5sb2NhbGl0eTtcbiAgICAgICAgICAgIHRoaXMuc3RyZWV0ID0gdmFsdWUuc3RyZWV0O1xuICAgICAgICAgICAgdGhpcy5ob3VzZU51bWJlciA9IHZhbHVlLmhvdXNlTnVtYmVyO1xuICAgICAgICAgICAgdGhpcy5wb3N0T2ZmaWNlQm94VGV4dCA9IHZhbHVlLnBvc3RPZmZpY2VCb3hUZXh0O1xuICAgICAgICAgICAgdGhpcy5hZGRyZXNzTGluZTEgPSB2YWx1ZS5hZGRyZXNzTGluZTE7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NMaW5lMiA9IHZhbHVlLmFkZHJlc3NMaW5lMjtcbiAgICAgICAgfSBlbHNlIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxpdHkgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5zdHJlZXQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5ob3VzZU51bWJlciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnBvc3RPZmZpY2VCb3hUZXh0ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuYWRkcmVzc0xpbmUxID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuYWRkcmVzc0xpbmUyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzU3dpc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIShcbiAgICAgICAgICAgIHRoaXMuaXNPbmx5U3dpc3MgfHxcbiAgICAgICAgICAgICh0aGlzLmNvdW50cnkgJiYgdGhpcy5jb3VudHJ5LmlzbzJJZCA9PT0gU1dJU1NfSVNPX0lEKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHVzZXJJbnB1dENvdW50cnlPckxvY2FsaXR5KGVtcHR5TG9jYWxpdHk6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGVtcHR5TG9jYWxpdHkpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxpdHkgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5wb3N0T2ZmaWNlQm94VGV4dCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NMaW5lMSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NMaW5lMiA9IG51bGw7XG4gICAgICAgICAgICAvLyBzdWJjb21wb25lbnRzIHdpbGwgYmUgZW5hYmxlZCBidXQgc2hvdWxkIG5vdCBkaXNwbGF5IGVycm9ycyB5ZXRcbiAgICAgICAgICAgIHRoaXMuZm9yZWlnbkxvY2FsaXR5Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgPy5nZXROYXRpdmVJbnB1dExpc3QoKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKG5nTW9kZWwgPT4gbmdNb2RlbC5jb250cm9sLm1hcmtBc0RpcnR5KCkpO1xuICAgICAgICAgICAgdGhpcy5mb3JlaWduU3RyZWV0Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgPy5nZXROYXRpdmVJbnB1dExpc3QoKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKG5nTW9kZWwgPT4gbmdNb2RlbC5jb250cm9sLm1hcmtBc0RpcnR5KCkpO1xuICAgICAgICAgICAgdGhpcy5mb3JlaWduSG91c2VOdW1iZXJcbiAgICAgICAgICAgICAgICA/LmdldE5hdGl2ZUlucHV0TGlzdCgpXG4gICAgICAgICAgICAgICAgLmZvckVhY2gobmdNb2RlbCA9PiBuZ01vZGVsLmNvbnRyb2wubWFya0FzRGlydHkoKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0cmVldCA9IG51bGw7XG4gICAgICAgIHRoaXMuaG91c2VOdW1iZXIgPSBudWxsO1xuXG4gICAgICAgIHRoaXMudXBkYXRlQWRkcmVzcygpO1xuICAgICAgICB0aGlzLmhhbmRsZVVzZXJJbnB1dCgpO1xuICAgIH1cblxuICAgIGNvdW50cnlVcGRhdGVkKGNvdW50cnk6IENvdW50cnkpOiB2b2lkIHtcbiAgICAgICAgLy8gTm8gZG91YmxlLWJpbmRpbmcgb24gY291bnRyeSBpbiB2aWV3IHRvIGVuc3VyZSB3ZSB1cGRhdGUgcHJvcGVybHkgbW9kZWxcbiAgICAgICAgdGhpcy5jb3VudHJ5ID0gY291bnRyeTtcbiAgICAgICAgdGhpcy51cGRhdGVBZGRyZXNzKCk7XG5cbiAgICAgICAgaWYgKCFjb3VudHJ5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGlzbzJJZCB9ID0gY291bnRyeTtcbiAgICAgICAgdGhpcy5pc28ySWRTdWJqZWN0Lm5leHQoaXNvMklkKTtcbiAgICB9XG5cbiAgICBnZXRMb2NhbGl0eURpc3BsYXllZE5hbWUobG9jYWxpdHk6IExvY2FsaXR5KTogc3RyaW5nIHwgdm9pZCB7XG4gICAgICAgIGlmICghbG9jYWxpdHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtsb2NhbGl0eS56aXBDb2RlfSAke2xvY2FsaXR5LmxvbmdOYW1lfWA7XG4gICAgfVxuXG4gICAgbG9jYWxpdHlVcGRhdGVkKGxvY2FsaXR5OiBMb2NhbGl0eSk6IHZvaWQge1xuICAgICAgICAvLyBObyBkb3VibGUtYmluZGluZyBvbiBsb2NhbGl0eSBpbiB2aWV3IHRvIGVuc3VyZSB3ZSB1cGRhdGUgcHJvcGVybHkgbW9kZWxcbiAgICAgICAgdGhpcy5sb2NhbGl0eSA9IGxvY2FsaXR5O1xuICAgICAgICB0aGlzLnVwZGF0ZUFkZHJlc3MoKTtcblxuICAgICAgICBpZiAoIWxvY2FsaXR5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHppcENvZGVJZCB9ID0gbG9jYWxpdHk7XG4gICAgICAgIHRoaXMuemlwQ29kZUlkU3ViamVjdC5uZXh0KHppcENvZGVJZCk7XG4gICAgfVxuXG4gICAgc3RyZWV0VXBkYXRlZChzdHJlZXQ6IFN0cmVldCk6IHZvaWQge1xuICAgICAgICAvLyBObyBkb3VibGUtYmluZGluZyBvbiBzdHJlZXQgaW4gdmlldyB0byBlbnN1cmUgd2UgdXBkYXRlIHByb3Blcmx5IG1vZGVsXG4gICAgICAgIHRoaXMuc3RyZWV0ID0gc3RyZWV0O1xuICAgICAgICB0aGlzLnVwZGF0ZUFkZHJlc3MoKTtcblxuICAgICAgICBpZiAoIXN0cmVldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBlc3RyaWQgfSA9IHN0cmVldDtcbiAgICAgICAgdGhpcy5lc3RySWRTdWJqZWN0Lm5leHQoZXN0cmlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvdW50cmllcygpOiBPYnNlcnZhYmxlPENvdW50cnlbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxDb3VudHJ5W10+KHRoaXMuY291bnRyaWVzVXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvY2FsaXRpZXMoaXNvMklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvY2FsaXR5W10+IHtcbiAgICAgICAgaWYgKGlzbzJJZCAhPT0gU1dJU1NfSVNPX0lEKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSAhIXRoaXMud2l0aENvbXBhbnlMb2NhbGl0aWVzXG4gICAgICAgICAgICA/ICc/d2l0aENvbXBhbnlMb2NhbGl0aWVzPXRydWUnXG4gICAgICAgICAgICA6ICcnO1xuXG4gICAgICAgIGlmICghIXRoaXMuc3BlY2lmaWVkQ2FudG9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxMb2NhbGl0eVtdPihcbiAgICAgICAgICAgICAgICBgYXBpL3JlZmluZi9sb2NhbGl0eS8ke3RoaXMuc3BlY2lmaWVkQ2FudG9ufSR7cXVlcnlQYXJhbXN9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PExvY2FsaXR5W10+KFxuICAgICAgICAgICAgICAgIGBhcGkvcmVmaW5mL2xvY2FsaXR5L2FsbCR7cXVlcnlQYXJhbXN9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3RyZWV0TnVtYmVyRm9yKGVzdHJpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTdHJlZXROdW1iZXJbXT4ge1xuICAgICAgICBpZiAoIWVzdHJpZCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVybCA9IGBhcGkvcmVmaW5mL2FkZHJlc3Nlcy8ke2VzdHJpZH1gO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxTdHJlZXROdW1iZXJbXT4odXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFN0cmVldHNGb3IoemlwQ29kZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFN0cmVldFtdPiB7XG4gICAgICAgIGlmICghemlwQ29kZUlkKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXJsID0gYGFwaS9yZWZpbmYvc3RyZWV0cy8ke3ppcENvZGVJZH1gO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxTdHJlZXRbXT4odXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyQXV0b2NvbXBsZXRlc1doZW5Db3VudHJ5SXNVbmFwcHJvcHJpYXRlZFRvQ29tcG9uZW50Q29uZmlndXJhdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2RlbEVtcHR5KCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuaXNPbmx5U3dpc3MgJiZcbiAgICAgICAgICAgIHRoaXMuY291bnRyeSAmJlxuICAgICAgICAgICAgdGhpcy5jb3VudHJ5LmlzbzJJZCAhPT0gU1dJU1NfSVNPX0lEXG4gICAgICAgICkge1xuICAgICAgICAgICAgLy8gRG8gbm90IHJlbW92ZSB0aGlzIHdhcm5pbmcuIE5lZWRlZCBmb3IgZGVidWdnaW5nIGF0IGFsbCB0aW1lLlxuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICAgICAgICAgYENvdW50cnkgYWRkcmVzcyB3YXMgJyR7dGhpcy5jb3VudHJ5LmlzbzJJZH0nLiBPbmx5IHN3aXNzIGlzIGFza2VkIGluIGNvbXBvbmVudCAnZm9laG4taW5wdXQtYWRkcmVzcycgY29uZmlndXJhdGlvbi4gQWRkcmVzcyBtb2RlbCByZXNldHRlZC5gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5jbGVhckF1dG9jb21wbGV0ZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdENvdW50cnkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzT25seVN3aXNzIHx8ICF0aGlzLmNvdW50cnkgfHwgIXRoaXMuY291bnRyeS5pc28ySWQpIHtcbiAgICAgICAgICAgIHRoaXMuY291bnRyeSA9IHtcbiAgICAgICAgICAgICAgICBpc28ySWQ6IFNXSVNTX0lTT19JRCxcbiAgICAgICAgICAgICAgICBzaG9ydE5hbWVGcjogJ1N1aXNzZSdcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmlzbzJJZFN1YmplY3QubmV4dChTV0lTU19JU09fSUQpO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFkZHJlc3MoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJBdXRvY29tcGxldGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvdW50cnkgPSBudWxsO1xuICAgICAgICB0aGlzLnN0cmVldCA9IG51bGw7XG4gICAgICAgIHRoaXMubG9jYWxpdHkgPSBudWxsO1xuICAgICAgICB0aGlzLmhvdXNlTnVtYmVyID0gbnVsbDtcbiAgICAgICAgLy8gTm8gdXBkYXRlQWRkcmVzcygpIGhlcmUgYmVjYXVzZSBkb25lIGluIHNldERlZmF1bHRDb3VudHJ5KClcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RMb2NhbGl0eVppcENvZGVJZChcbiAgICAgICAgbG9jYWxpdGllczogTG9jYWxpdHlbXSxcbiAgICAgICAgbG9jYWxpdHlUb01hdGNoOiBMb2NhbGl0eVxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGlmIChsb2NhbGl0eVRvTWF0Y2ggJiYgbG9jYWxpdHlUb01hdGNoLnBvc3RhbExvY2FsaXR5SGlzdG9yeUlkKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVkID0gbG9jYWxpdGllcy5maW5kKFxuICAgICAgICAgICAgICAgIChsb2NhbGl0eTogTG9jYWxpdHkpID0+XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsaXR5LnBvc3RhbExvY2FsaXR5SGlzdG9yeUlkID09PVxuICAgICAgICAgICAgICAgICAgICBsb2NhbGl0eVRvTWF0Y2gucG9zdGFsTG9jYWxpdHlIaXN0b3J5SWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGVkLnppcENvZGVJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXh0cmFjdFN0cmVldEVzdHJpZChcbiAgICAgICAgc3RyZWV0czogU3RyZWV0W10sXG4gICAgICAgIHN0cmVldFRvTWF0Y2g6IFN0cmVldFxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGlmIChzdHJlZXRUb01hdGNoICYmIHN0cmVldFRvTWF0Y2gubG9uZ05hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWQgPSBzdHJlZXRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKHN0cmVldDogU3RyZWV0KSA9PiBzdHJlZXQubG9uZ05hbWUgPT09IHN0cmVldFRvTWF0Y2gubG9uZ05hbWVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGVkLmVzdHJpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmFsaWRWYWx1ZSgpOiBBZGRyZXNzIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9kZWxFbXB0eSgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbF8gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb3VudHJ5OiB0aGlzLmNvdW50cnksXG4gICAgICAgICAgICBsb2NhbGl0eTogdGhpcy5nZXRWYWxpZExvY2FsaXR5KHRoaXMubG9jYWxpdHkpLFxuICAgICAgICAgICAgc3RyZWV0OiB0aGlzLnN0cmVldCxcbiAgICAgICAgICAgIGhvdXNlTnVtYmVyOiB0aGlzLmhvdXNlTnVtYmVyLFxuICAgICAgICAgICAgcG9zdE9mZmljZUJveFRleHQ6IHRoaXMucG9zdE9mZmljZUJveFRleHQsXG4gICAgICAgICAgICBhZGRyZXNzTGluZTE6IHRoaXMuYWRkcmVzc0xpbmUxLFxuICAgICAgICAgICAgYWRkcmVzc0xpbmUyOiB0aGlzLmFkZHJlc3NMaW5lMlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmFsaWRMb2NhbGl0eSh2YWx1ZTogTG9jYWxpdHkpOiBMb2NhbGl0eSB7XG4gICAgICAgIC8vIFBSRVNUQUtJVC0zNTI6IE5lZWQgYSBmYWtlICdwb3N0YWxMb2NhbGl0eUhpc3RvcnlJZCcgZm9yIGluZGl2aWR1YWwgZXJyb3JzIG9uICd6aXBDb2RlJyBhbmQgJ2xvbmdOYW1lJ1xuICAgICAgICBpZiAoIXRoaXMuaXNTd2lzcygpICYmICF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgcG9zdGFsTG9jYWxpdHlIaXN0b3J5SWQ6IC0xIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc01vZGVsRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmlzRW1wdHkodGhpcy5jb3VudHJ5KSAmJlxuICAgICAgICAgICAgdGhpcy5pc0VtcHR5KHRoaXMubG9jYWxpdHkpICYmXG4gICAgICAgICAgICB0aGlzLmlzRW1wdHkodGhpcy5zdHJlZXQpICYmXG4gICAgICAgICAgICB0aGlzLmlzRW1wdHkodGhpcy5ob3VzZU51bWJlcikgJiZcbiAgICAgICAgICAgIHRoaXMuaXNFbXB0eSh0aGlzLnBvc3RPZmZpY2VCb3hUZXh0KSAmJlxuICAgICAgICAgICAgdGhpcy5pc0VtcHR5KHRoaXMuYWRkcmVzc0xpbmUxKSAmJlxuICAgICAgICAgICAgdGhpcy5pc0VtcHR5KHRoaXMuYWRkcmVzc0xpbmUyKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCkgKyAnQ29udGFpbmVyJ1wiXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbdGFiSW5kZXhdPVwiLTFcIlxuPlxuICAgIDxmaWVsZHNldFxuICAgICAgICBjbGFzcz1cIm1iLTNcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImdldERlc2NyaWJlZEJ5KClcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgPlxuICAgICAgICA8bGVnZW5kICpuZ0lmPVwiISFsYWJlbFwiIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAnc3Itb25seScgOiAndmQtcCdcIj5cbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xlZ2VuZD5cblxuICAgICAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgpICsgJ0hlbHAnXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgICAgID48L3NtYWxsPlxuXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgICAgICA8Zm9laG4tYXV0b2NvbXBsZXRlXG4gICAgICAgICAgICAqbmdJZj1cIiFpc09ubHlTd2lzc1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ2ZvZWhuLWlucHV0LWFkZHJlc3MuY291bnRyeS5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgICAgICAgICBbZWxlbWVudHNdPVwiY291bnRyaWVzIHwgYXN5bmNcIlxuICAgICAgICAgICAgZWxlbWVudExhYmVsPVwic2hvcnROYW1lRnJcIlxuICAgICAgICAgICAgW2VsZW1lbnRWYWx1ZV09XCJpZGVudGl0eVwiXG4gICAgICAgICAgICBbZWxlbWVudFZhbHVlSWRlbnRpdHldPVwiY291bnRyeUlkZW50aXR5XCJcbiAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJjb3VudHJ5VXBkYXRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh1c2VySW5wdXQpPVwidXNlcklucHV0Q291bnRyeU9yTG9jYWxpdHkodHJ1ZSlcIlxuICAgICAgICAgICAgW21vZGVsXT1cImNvdW50cnlcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZSArICcuY291bnRyeSdcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cImNvdW50cnlSZXF1aXJlZFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICA+PC9mb2Vobi1hdXRvY29tcGxldGU+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU3dpc3MoKVwiPlxuICAgICAgICAgICAgPGZvZWhuLWF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZm9laG4taW5wdXQtYWRkcmVzcy5sb2NhbGl0eS5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgICAgICAgICAgICAgW2VsZW1lbnRzXT1cImxvY2FsaXRpZXMgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2VsZW1lbnRMYWJlbF09XCJnZXRMb2NhbGl0eURpc3BsYXllZE5hbWVcIlxuICAgICAgICAgICAgICAgIFtlbGVtZW50VmFsdWVdPVwiaWRlbnRpdHlcIlxuICAgICAgICAgICAgICAgIFtlbGVtZW50VmFsdWVJZGVudGl0eV09XCJsb2NhbGl0eUlkZW50aXR5XCJcbiAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwibG9jYWxpdHlVcGRhdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICh1c2VySW5wdXQpPVwidXNlcklucHV0Q291bnRyeU9yTG9jYWxpdHkoZmFsc2UpXCJcbiAgICAgICAgICAgICAgICBbbW9kZWxdPVwibG9jYWxpdHlcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWUgKyAnLmxvY2FsaXR5J1wiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInN3aXNzTnBhTG9jYWxpdHlSZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgW2FsbEVsZW1lbnREaXNhYmxlZF09XCIhY291bnRyeVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWF1dG9jb21wbGV0ZT5cblxuICAgICAgICAgICAgPGZvZWhuLWF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZm9laG4taW5wdXQtYWRkcmVzcy5zdHJlZXQubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICAgICAgICAgIFtlbGVtZW50c109XCJzdHJlZXRzIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIGVsZW1lbnRMYWJlbD1cImxvbmdOYW1lXCJcbiAgICAgICAgICAgICAgICBbZWxlbWVudFZhbHVlXT1cImlkZW50aXR5XCJcbiAgICAgICAgICAgICAgICBbZWxlbWVudFZhbHVlSWRlbnRpdHldPVwic3RyZWV0SWRlbnRpdHlcIlxuICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJzdHJlZXRVcGRhdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFttb2RlbF09XCJzdHJlZXRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWUgKyAnLnN0cmVldCdcIlxuICAgICAgICAgICAgICAgIFthbGxvd0N1c3RvbVZhbHVlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtjdXN0b21WYWx1ZU1vZGVsR2VuZXJhdG9yXT1cInN0cmVldEdlbmVyYXRvclwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInN0cmVldFJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICBbaGVscFRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLnN0cmVldC5oZWxwLXRleHQnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFthbGxFbGVtZW50RGlzYWJsZWRdPVwiIWNvdW50cnlcIlxuICAgICAgICAgICAgICAgICh1c2VySW5wdXQpPVwiaGFuZGxlVXNlcklucHV0KClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICA+PC9mb2Vobi1hdXRvY29tcGxldGU+XG5cbiAgICAgICAgICAgIDxmb2Vobi1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmhvdXNlTnVtYmVyLmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbZWxlbWVudHNdPVwic3RyZWV0TnVtYmVycyB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBlbGVtZW50TGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICBlbGVtZW50VmFsdWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJob3VzZU51bWJlclwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZSArICcuaG91c2VOdW1iZXInXCJcbiAgICAgICAgICAgICAgICBbYWxsb3dDdXN0b21WYWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbaGVscFRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmhvdXNlTnVtYmVyLmhlbHAtdGV4dCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2FsbEVsZW1lbnREaXNhYmxlZF09XCIhY291bnRyeVwiXG4gICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInVwZGF0ZUFkZHJlc3MoKVwiXG4gICAgICAgICAgICAgICAgKHVzZXJJbnB1dCk9XCJoYW5kbGVVc2VySW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInN0cmVldE51bWJlclJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgPjwvZm9laG4tYXV0b2NvbXBsZXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU3dpc3MoKVwiPlxuICAgICAgICAgICAgPCEtLVxuICAgICAgICAgICAgQ29tcG9uZW50IDxmb2Vobi1pbnB1dC1mb3JlaWduLWxvY2FsaXR5PiBpcyBzcGVjaWFsIGJlY2F1c2Ugd2UgdXNlIHRoZSBzYW1lIG1vZGVsIHdoZW4gc3dpc3Mgb3IgZm9yZWlnbmVyLlxuICAgICAgICAgICAgVG8gZG8gc28sIHdlIG5lZWQ6XG4gICAgICAgICAgICAgICAgLSBFcnJvcnMgd2lsbCBiZSBiaW5kIG9uICdsb2NhbGl0eScgd2hlbiBOVUxMIG9yIG9uICd6aXBDb2RlJyBhbmQgJ2xvbmdOYW1lJyBtb2RlbCBpbnNpZGUgY29tcG9uZW50IHdoZW4gRU1QVFlcbiAgICAgICAgICAgICAgICAtIEhpZGUgbGFiZWwgZnJvbSBjb21wb25lbnQgYmVjYXVzZSB3ZSBuZWVkIGxhYmVsIGZyb20gY2hpbGRyZW4gdG8gYmUgZGlzcGxheWVkIChpc0xhYmVsU3JPbmx5OiB0cnVlKVxuICAgICAgICAgICAgICAgIC0gcmVxdWlyZWQgYW5kIGRpc2FibGVkIHBhcmFtcyBhcmUgdHJhbnNtaXR0ZWQgdG8gY2hpbGRyZW5cbiAgICAgICAgICAgICAtLT5cbiAgICAgICAgICAgIDxmb2Vobi1pbnB1dC1mb3JlaWduLWxvY2FsaXR5XG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidmb2Vobi1pbnB1dC1hZGRyZXNzLmxvY2FsaXR5LmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJy5sb2NhbGl0eSdcIlxuICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImxvY2FsaXR5XCJcbiAgICAgICAgICAgICAgICBbemlwQ29kZVJlcXVpcmVkXT1cImZvcmVpZ25aaXBDb2RlUmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgIFtsb2NhbGl0eVJlcXVpcmVkXT1cImZvcmVpZ25Mb2NhbGl0eVJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICBbaXNMYWJlbFNyT25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNvdW50cnkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ1cGRhdGVBZGRyZXNzKClcIlxuICAgICAgICAgICAgICAgICh1c2VySW5wdXQpPVwiaGFuZGxlVXNlcklucHV0KClcIlxuICAgICAgICAgICAgPjwvZm9laG4taW5wdXQtZm9yZWlnbi1sb2NhbGl0eT5cbiAgICAgICAgICAgIDwhLS1cbiAgICAgICAgICAgIENvbXBvbmVudCA8Zm9laG4taW5wdXQtZm9yZWlnbi1zdHJlZXQ+IGlzIHNwZWNpYWwgYmVjYXVzZSB3ZSB1c2UgdGhlIHNhbWUgbW9kZWwgd2hlbiBzd2lzcyBvciBmb3JlaWduZXIuXG4gICAgICAgICAgICBUbyBkbyBzbywgd2UgbmVlZDpcbiAgICAgICAgICAgICAgICAtIEVycm9ycyB3aWxsIGJlIGJpbmQgb24gJ3N0cmVldCcgd2hlbiBOVUxMIG9yIG9uICdsb25nTmFtZScgbW9kZWwgaW5zaWRlIGNvbXBvbmVudCB3aGVuIEVNUFRZXG4gICAgICAgICAgICAgICAgLSByZXF1aXJlZCwgaGVscFRleHQsIGlzTGFiZWxTck9ubHkgYW5kIGRpc2FibGVkICBwYXJhbXMgYXJlIHRyYW5zbWl0dGVkIHRvIGNoaWxkcmVuXG4gICAgICAgICAgICAgLS0+XG4gICAgICAgICAgICA8Zm9laG4taW5wdXQtZm9yZWlnbi1zdHJlZXRcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2ZvZWhuLWlucHV0LWFkZHJlc3Muc3RyZWV0LmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJy5zdHJlZXQnXCJcbiAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzdHJlZXRcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmb3JlaWduU3RyZWV0UmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgIFtoZWxwVGV4dF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3Muc3RyZWV0LmhlbHAtdGV4dCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb3VudHJ5IHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwidXBkYXRlQWRkcmVzcygpXCJcbiAgICAgICAgICAgICAgICAodXNlcklucHV0KT1cImhhbmRsZVVzZXJJbnB1dCgpXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LWZvcmVpZ24tc3RyZWV0PlxuXG4gICAgICAgICAgICA8Zm9laG4taW5wdXQtdGV4dFxuICAgICAgICAgICAgICAgICNmb3JlaWduSG91c2VOdW1iZXJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmhvdXNlTnVtYmVyLmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJy5ob3VzZU51bWJlcidcIlxuICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImhvdXNlTnVtYmVyXCJcbiAgICAgICAgICAgICAgICBbaGVscFRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmhvdXNlTnVtYmVyLmhlbHAtdGV4dCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb3VudHJ5IHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwidXBkYXRlQWRkcmVzcygpXCJcbiAgICAgICAgICAgICAgICAodXNlcklucHV0KT1cImhhbmRsZVVzZXJJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZm9yZWlnblN0cmVldE51bWJlclJlcXVpcmVkXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LXRleHQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxmb2Vobi1pbnB1dC10ZXh0XG4gICAgICAgICAgICAqbmdJZj1cInNob3dQb3N0T2ZmaWNlQm94VGV4dFwiXG4gICAgICAgICAgICBbKG1vZGVsKV09XCJwb3N0T2ZmaWNlQm94VGV4dFwiXG4gICAgICAgICAgICBbaGVscFRleHRdPVwiXG4gICAgICAgICAgICAgICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MucG9zdE9mZmljZUJveFRleHQuaGVscC10ZXh0J1xuICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLnBvc3RPZmZpY2VCb3hUZXh0LmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZSArICcucG9zdE9mZmljZUJveFRleHQnXCJcbiAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ1cGRhdGVBZGRyZXNzKClcIlxuICAgICAgICAgICAgKHVzZXJJbnB1dCk9XCJoYW5kbGVVc2VySW5wdXQoKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwicG9zdE9mZmljZUJveFRleHRSZXF1aXJlZFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICA+PC9mb2Vobi1pbnB1dC10ZXh0PlxuXG4gICAgICAgIDxmb2Vobi1pbnB1dC10ZXh0XG4gICAgICAgICAgICAqbmdJZj1cInNob3dBZHJlc3NMaW5lcyAmJiBzaG93QWRyZXNzTGluZTFcIlxuICAgICAgICAgICAgWyhtb2RlbCldPVwiYWRkcmVzc0xpbmUxXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInZm9laG4taW5wdXQtYWRkcmVzcy5hZGRyZXNzTGluZTEubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZSArICcuYWRkcmVzc0xpbmUxJ1wiXG4gICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwidXBkYXRlQWRkcmVzcygpXCJcbiAgICAgICAgICAgICh1c2VySW5wdXQpPVwiaGFuZGxlVXNlcklucHV0KClcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cImFkZHJlc3NMaW5lMVJlcXVpcmVkXCJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiJ2FkZHJlc3MtbGluZTInXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgID48L2ZvZWhuLWlucHV0LXRleHQ+XG5cbiAgICAgICAgPGZvZWhuLWlucHV0LXRleHRcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0FkcmVzc0xpbmVzICYmIHNob3dBZHJlc3NMaW5lMlwiXG4gICAgICAgICAgICBbKG1vZGVsKV09XCJhZGRyZXNzTGluZTJcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidmb2Vobi1pbnB1dC1hZGRyZXNzLmFkZHJlc3NMaW5lMi5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJy5hZGRyZXNzTGluZTInXCJcbiAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ1cGRhdGVBZGRyZXNzKClcIlxuICAgICAgICAgICAgKHVzZXJJbnB1dCk9XCJoYW5kbGVVc2VySW5wdXQoKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiYWRkcmVzc0xpbmUyUmVxdWlyZWRcIlxuICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCInYWRkcmVzcy1saW5lMydcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgPjwvZm9laG4taW5wdXQtdGV4dD5cbiAgICA8L2ZpZWxkc2V0PlxuPC9kaXY+XG4iXX0=
@@ -1,71 +0,0 @@
1
- import { Component, forwardRef, Input } from '@angular/core';
2
- import { FoehnInputComponent } from '../foehn-input/foehn-input.component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../foehn-validation-alerts/foehn-validation-alerts.component";
5
- import * as i2 from "../foehn-input/foehn-input-text.component";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "../sdk-dictionary/sdk-dictionary.pipe";
8
- export class FoehnInputForeignLocalityComponent extends FoehnInputComponent {
9
- updateLocality() {
10
- const validValue = this.getValidValue();
11
- if (typeof validValue !== 'undefined') {
12
- this.updateNgModel(validValue);
13
- }
14
- }
15
- handleUserInput() {
16
- const validValue = this.getValidValue();
17
- if (typeof validValue !== 'undefined') {
18
- this.handleChange(validValue);
19
- }
20
- }
21
- onModelChange(value) {
22
- if (value) {
23
- this.zipCode = value.zipCode;
24
- this.longName = value.longName;
25
- }
26
- else if (!value) {
27
- this.zipCode = null;
28
- this.longName = null;
29
- }
30
- }
31
- isRequired() {
32
- return this.required || this.zipCodeRequired || this.localityRequired;
33
- }
34
- getValidValue() {
35
- if (this.isEmpty(this.zipCode) && this.isEmpty(this.longName)) {
36
- if (this.model_ !== undefined) {
37
- return null;
38
- }
39
- return undefined;
40
- }
41
- return { zipCode: this.zipCode, longName: this.longName };
42
- }
43
- }
44
- FoehnInputForeignLocalityComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnInputForeignLocalityComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
45
- FoehnInputForeignLocalityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnInputForeignLocalityComponent, selector: "foehn-input-foreign-locality", inputs: { localityRequired: "localityRequired", zipCodeRequired: "zipCodeRequired" }, providers: [
46
- {
47
- provide: FoehnInputComponent,
48
- useExisting: forwardRef(() => FoehnInputForeignLocalityComponent),
49
- multi: true
50
- }
51
- ], 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 <fieldset\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend *ngIf=\"!!label\" [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\">\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!isRequired() && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <foehn-input-text\n [name]=\"name + '.zipCode'\"\n [label]=\"\n 'foehn-input-foreign-locality.zipCode.label' | fromDictionary\n \"\n [(model)]=\"zipCode\"\n (modelChange)=\"updateLocality()\"\n [required]=\"zipCodeRequired\"\n (userInput)=\"handleUserInput()\"\n [disabled]=\"disabled\"\n [autocomplete]=\"'postal-code'\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n ></foehn-input-text>\n\n <foehn-input-text\n [name]=\"name + '.longName'\"\n [label]=\"\n 'foehn-input-foreign-locality.locality.label' | fromDictionary\n \"\n [(model)]=\"longName\"\n (modelChange)=\"updateLocality()\"\n [required]=\"localityRequired\"\n (userInput)=\"handleUserInput()\"\n [disabled]=\"disabled\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n ></foehn-input-text>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep foehn-input-text:last-child .form-group{margin-bottom:0}\n"], components: [{ type: i1.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i2.FoehnInputTextComponent, selector: "foehn-input-text", inputs: ["numberOnly"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "fromDictionary": i4.SdkDictionaryPipe } });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnInputForeignLocalityComponent, decorators: [{
53
- type: Component,
54
- args: [{
55
- selector: 'foehn-input-foreign-locality',
56
- templateUrl: './foehn-input-foreign-locality.component.html',
57
- styleUrls: ['./foehn-input-foreign-locality.component.css'],
58
- providers: [
59
- {
60
- provide: FoehnInputComponent,
61
- useExisting: forwardRef(() => FoehnInputForeignLocalityComponent),
62
- multi: true
63
- }
64
- ]
65
- }]
66
- }], propDecorators: { localityRequired: [{
67
- type: Input
68
- }], zipCodeRequired: [{
69
- type: Input
70
- }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtZm9yZWlnbi1sb2NhbGl0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tYWRkcmVzcy9mb2Vobi1pbnB1dC1mb3JlaWduLWxvY2FsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1hZGRyZXNzL2ZvZWhuLWlucHV0LWZvcmVpZ24tbG9jYWxpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7QUFlM0UsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLG1CQUE2QjtJQVVqRixjQUFjO1FBQ1YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbEM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFlO1FBQ3pCLElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztTQUNsQzthQUFNLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQzFFLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDM0QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDM0IsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUVELE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUQsQ0FBQzs7K0hBL0NRLGtDQUFrQzttSEFBbEMsa0NBQWtDLDZJQVJoQztRQUNQO1lBQ0ksT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO1lBQ2pFLEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixpRENkTCx1aUVBNERBOzJGRDVDYSxrQ0FBa0M7a0JBWjlDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsV0FBVyxFQUFFLCtDQUErQztvQkFDNUQsU0FBUyxFQUFFLENBQUMsOENBQThDLENBQUM7b0JBQzNELFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQ0FBbUMsQ0FBQzs0QkFDakUsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7aUJBQ0o7OEJBR0csZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2NhbGl0eSB9IGZyb20gJy4vYWRkcmVzcy50eXBlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1pbnB1dC1mb3JlaWduLWxvY2FsaXR5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4taW5wdXQtZm9yZWlnbi1sb2NhbGl0eS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9laG4taW5wdXQtZm9yZWlnbi1sb2NhbGl0eS5jb21wb25lbnQuY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2VobklucHV0Rm9yZWlnbkxvY2FsaXR5Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuSW5wdXRGb3JlaWduTG9jYWxpdHlDb21wb25lbnQgZXh0ZW5kcyBGb2VobklucHV0Q29tcG9uZW50PExvY2FsaXR5PiB7XG4gICAgQElucHV0KClcbiAgICBsb2NhbGl0eVJlcXVpcmVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICB6aXBDb2RlUmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICB6aXBDb2RlOiBzdHJpbmc7XG4gICAgbG9uZ05hbWU6IHN0cmluZztcblxuICAgIHVwZGF0ZUxvY2FsaXR5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWxpZFZhbHVlID0gdGhpcy5nZXRWYWxpZFZhbHVlKCk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsaWRWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbCh2YWxpZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVVzZXJJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0VmFsaWRWYWx1ZSgpO1xuICAgICAgICBpZiAodHlwZW9mIHZhbGlkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZSh2YWxpZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IExvY2FsaXR5KTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy56aXBDb2RlID0gdmFsdWUuemlwQ29kZTtcbiAgICAgICAgICAgIHRoaXMubG9uZ05hbWUgPSB2YWx1ZS5sb25nTmFtZTtcbiAgICAgICAgfSBlbHNlIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuemlwQ29kZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmxvbmdOYW1lID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVkIHx8IHRoaXMuemlwQ29kZVJlcXVpcmVkIHx8IHRoaXMubG9jYWxpdHlSZXF1aXJlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhbGlkVmFsdWUoKTogTG9jYWxpdHkgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFbXB0eSh0aGlzLnppcENvZGUpICYmIHRoaXMuaXNFbXB0eSh0aGlzLmxvbmdOYW1lKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWxfICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyB6aXBDb2RlOiB0aGlzLnppcENvZGUsIGxvbmdOYW1lOiB0aGlzLmxvbmdOYW1lIH07XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cFwiXG4gICAgW2NsYXNzLmhhcy1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFtjbGFzcy52ZC1mb3JtLWdyb3VwLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxmaWVsZHNldFxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImdldERlc2NyaWJlZEJ5KClcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgPlxuICAgICAgICA8bGVnZW5kICpuZ0lmPVwiISFsYWJlbFwiIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAnc3Itb25seScgOiAndmQtcCdcIj5cbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzUmVxdWlyZWQoKSAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sZWdlbmQ+XG5cbiAgICAgICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzIFtjb21wb25lbnRdPVwidGhpc1wiPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICAqbmdJZj1cImhlbHBUZXh0XCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgICAgICA+PC9zbWFsbD5cblxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPGZvZWhuLWlucHV0LXRleHRcbiAgICAgICAgICAgIFtuYW1lXT1cIm5hbWUgKyAnLnppcENvZGUnXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICAnZm9laG4taW5wdXQtZm9yZWlnbi1sb2NhbGl0eS56aXBDb2RlLmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgWyhtb2RlbCldPVwiemlwQ29kZVwiXG4gICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwidXBkYXRlTG9jYWxpdHkoKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiemlwQ29kZVJlcXVpcmVkXCJcbiAgICAgICAgICAgICh1c2VySW5wdXQpPVwiaGFuZGxlVXNlcklucHV0KClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiJ3Bvc3RhbC1jb2RlJ1wiXG4gICAgICAgICAgICBbaXNFcnJvckluaGVyaXRlZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgICAgID48L2ZvZWhuLWlucHV0LXRleHQ+XG5cbiAgICAgICAgPGZvZWhuLWlucHV0LXRleHRcbiAgICAgICAgICAgIFtuYW1lXT1cIm5hbWUgKyAnLmxvbmdOYW1lJ1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ2ZvZWhuLWlucHV0LWZvcmVpZ24tbG9jYWxpdHkubG9jYWxpdHkubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbKG1vZGVsKV09XCJsb25nTmFtZVwiXG4gICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwidXBkYXRlTG9jYWxpdHkoKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwibG9jYWxpdHlSZXF1aXJlZFwiXG4gICAgICAgICAgICAodXNlcklucHV0KT1cImhhbmRsZVVzZXJJbnB1dCgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbaXNFcnJvckluaGVyaXRlZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgICAgID48L2ZvZWhuLWlucHV0LXRleHQ+XG4gICAgPC9maWVsZHNldD5cbjwvZGl2PlxuIl19