@dsivd/prestations-ng 15.5.13 → 16.0.0-beta10

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 +673 -1
  2. package/CONTRIBUTING.md +32 -1
  3. package/ESLINT_MIGRATION_GUIDE.md +40 -14
  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 +471 -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-beta10.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 +389 -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 +190 -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 +316 -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 +13386 -0
  258. package/fesm2015/dsivd-prestations-ng.mjs.map +1 -0
  259. package/fesm2020/dsivd-prestations-ng.mjs +13361 -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 -8
  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 +16 -17
  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 +39 -22
  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 +4 -1
  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
@@ -0,0 +1,111 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, combineLatest, of } from 'rxjs';
3
+ import { catchError, map, shareReplay, switchMap, tap } from 'rxjs/operators';
4
+ import { GrowlType } from '../foehn-growl/growl-types';
5
+ // eslint-disable-next-line import/no-cycle
6
+ import { DEFAULT_DICTIONARY } from './default-dictionary';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ import * as i2 from "../foehn-growl/growl-broker.service";
10
+ export const DICTIONARY_BASE_URL = 'api/dictionary';
11
+ /**
12
+ * @param value to search in
13
+ * @param placeholders to be replaced
14
+ * @returns string
15
+ */
16
+ export const replaceAll = (value, placeholders) => {
17
+ if (!placeholders) {
18
+ return value;
19
+ }
20
+ return Object.keys(placeholders).reduce((result, key) => {
21
+ const valueToReplace = placeholders[key];
22
+ return result.replace(new RegExp(`{${key}}`, 'g'), valueToReplace);
23
+ }, value);
24
+ };
25
+ /**
26
+ * @param dictionary holding all keys
27
+ * @param key from dictionary
28
+ * @param placeholders to be replaced
29
+ * @returns string
30
+ */
31
+ function getKeyOrDefault(
32
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
+ dictionary, key, placeholders) {
34
+ return replaceAll(dictionary[key] || DEFAULT_DICTIONARY[key] || key, placeholders);
35
+ }
36
+ export class SdkDictionaryService {
37
+ constructor(httpClient, growlService) {
38
+ this.httpClient = httpClient;
39
+ this.growlService = growlService;
40
+ this.defaultLanguageCode = 'fr';
41
+ this.languageCodeSubject = new BehaviorSubject(this.getNavigatorLanguageCodeOrDefault());
42
+ this.availableLanguagesObservable = this.httpClient
43
+ .get(`${DICTIONARY_BASE_URL}/languages`)
44
+ .pipe(catchError((e) => {
45
+ console.error(e);
46
+ growlService.addWithType(GrowlType.DANGER, 'Impossible de récupérer les langues disponibles');
47
+ return of([]);
48
+ }), shareReplay(1));
49
+ this.dictionaryObservable = this.getCurrentLanguageCode().pipe(switchMap(languageCode => {
50
+ const url = DICTIONARY_BASE_URL +
51
+ (!!languageCode ? `/${languageCode}` : '');
52
+ return this.httpClient.get(url).pipe(catchError((e) => {
53
+ console.error(e);
54
+ growlService.addWithType(GrowlType.DANGER, 'Impossible de récupérer les valeurs du dictionnaire');
55
+ return of({});
56
+ }), tap(dictionary => {
57
+ this.dictionary = dictionary;
58
+ }));
59
+ }), shareReplay(1));
60
+ }
61
+ getDictionary() {
62
+ return this.dictionaryObservable;
63
+ }
64
+ getAvailableLanguages() {
65
+ return this.availableLanguagesObservable;
66
+ }
67
+ getKey(key, placeholders) {
68
+ return this.dictionaryObservable.pipe(map(dictionary => getKeyOrDefault(dictionary, key, placeholders)));
69
+ }
70
+ getKeySync(key, placeholders) {
71
+ if (!this.dictionary) {
72
+ throw new Error('Dictionary not initialized.');
73
+ }
74
+ return getKeyOrDefault(this.dictionary, key, placeholders);
75
+ }
76
+ changeLanguage(code) {
77
+ if (!!code && this.languageCodeSubject.getValue() !== code) {
78
+ this.languageCodeSubject.next(code);
79
+ }
80
+ }
81
+ getCurrentLanguageCode() {
82
+ return combineLatest([
83
+ this.availableLanguagesObservable,
84
+ this.languageCodeSubject.asObservable()
85
+ ]).pipe(switchMap(([availableLanguageCodes, languageCode]) => {
86
+ const matchedLanguage = availableLanguageCodes.find(lc => lc.code === languageCode);
87
+ if (!!matchedLanguage && !!matchedLanguage.code) {
88
+ return of(matchedLanguage.code);
89
+ }
90
+ return of(this.defaultLanguageCode);
91
+ }), shareReplay(1));
92
+ }
93
+ setDefaultLanguageCode(code) {
94
+ this.defaultLanguageCode = code;
95
+ this.languageCodeSubject.next(this.getNavigatorLanguageCodeOrDefault());
96
+ }
97
+ getNavigatorLanguageCodeOrDefault() {
98
+ return !!navigator && !!navigator.language
99
+ ? navigator.language.split('-')[0]
100
+ : this.defaultLanguageCode;
101
+ }
102
+ }
103
+ SdkDictionaryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SdkDictionaryService, deps: [{ token: i1.HttpClient }, { token: i2.GrowlBrokerService }], target: i0.ɵɵFactoryTarget.Injectable });
104
+ SdkDictionaryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SdkDictionaryService, providedIn: 'root' });
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SdkDictionaryService, decorators: [{
106
+ type: Injectable,
107
+ args: [{
108
+ providedIn: 'root'
109
+ }]
110
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.GrowlBrokerService }]; } });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWRpY3Rpb25hcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUUxRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQWVwRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3RCLEtBQWEsRUFDYixZQUE4QixFQUN4QixFQUFFO0lBQ1IsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNmLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNwRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDdkUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFD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QUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbkMsQ0FBQzs7aUhBekdRLG9CQUFvQjtxSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07MkZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgR3Jvd2xCcm9rZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tZ3Jvd2wvZ3Jvd2wtYnJva2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3Jvd2xUeXBlIH0gZnJvbSAnLi4vZm9laG4tZ3Jvd2wvZ3Jvd2wtdHlwZXMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHsgREVGQVVMVF9ESUNUSU9OQVJZIH0gZnJvbSAnLi9kZWZhdWx0LWRpY3Rpb25hcnknO1xuXG5leHBvcnQgY29uc3QgRElDVElPTkFSWV9CQVNFX1VSTCA9ICdhcGkvZGljdGlvbmFyeSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2Vob2xkZXJUeXBlIHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGljdGlvbmFyeVR5cGUge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYW5ndWFnZSB7XG4gICAgY29kZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHBhcmFtIHZhbHVlIHRvIHNlYXJjaCBpblxuICogQHBhcmFtIHBsYWNlaG9sZGVycyB0byBiZSByZXBsYWNlZFxuICogQHJldHVybnMgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCByZXBsYWNlQWxsID0gKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgcGxhY2Vob2xkZXJzPzogUGxhY2Vob2xkZXJUeXBlXG4pOiBzdHJpbmcgPT4ge1xuICAgIGlmICghcGxhY2Vob2xkZXJzKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMocGxhY2Vob2xkZXJzKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlVG9SZXBsYWNlID0gcGxhY2Vob2xkZXJzW2tleV07XG4gICAgICAgIHJldHVybiByZXN1bHQucmVwbGFjZShuZXcgUmVnRXhwKGB7JHtrZXl9fWAsICdnJyksIHZhbHVlVG9SZXBsYWNlKTtcbiAgICB9LCB2YWx1ZSk7XG59O1xuXG4vKipcbiAqIEBwYXJhbSBkaWN0aW9uYXJ5IGhvbGRpbmcgYWxsIGtleXNcbiAqIEBwYXJhbSBrZXkgZnJvbSBkaWN0aW9uYXJ5XG4gKiBAcGFyYW0gcGxhY2Vob2xkZXJzIHRvIGJlIHJlcGxhY2VkXG4gKiBAcmV0dXJucyBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gZ2V0S2V5T3JEZWZhdWx0KFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZGljdGlvbmFyeTogYW55LFxuICAgIGtleTogc3RyaW5nLFxuICAgIHBsYWNlaG9sZGVycz86IFBsYWNlaG9sZGVyVHlwZVxuKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVwbGFjZUFsbChcbiAgICAgICAgZGljdGlvbmFyeVtrZXldIHx8IERFRkFVTFRfRElDVElPTkFSWVtrZXldIHx8IGtleSxcbiAgICAgICAgcGxhY2Vob2xkZXJzXG4gICAgKTtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTZGtEaWN0aW9uYXJ5U2VydmljZSB7XG4gICAgcHJpdmF0ZSBkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5VHlwZTtcbiAgICBwcml2YXRlIGRlZmF1bHRMYW5ndWFnZUNvZGUgPSAnZnInO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGljdGlvbmFyeU9ic2VydmFibGU6IE9ic2VydmFibGU8RGljdGlvbmFyeVR5cGU+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXZhaWxhYmxlTGFuZ3VhZ2VzT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxMYW5ndWFnZVtdPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxhbmd1YWdlQ29kZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oXG4gICAgICAgIHRoaXMuZ2V0TmF2aWdhdG9yTGFuZ3VhZ2VDb2RlT3JEZWZhdWx0KClcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBncm93bFNlcnZpY2U6IEdyb3dsQnJva2VyU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc09ic2VydmFibGUgPSB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5nZXQ8TGFuZ3VhZ2VbXT4oYCR7RElDVElPTkFSWV9CQVNFX1VSTH0vbGFuZ3VhZ2VzYClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgZ3Jvd2xTZXJ2aWNlLmFkZFdpdGhUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgR3Jvd2xUeXBlLkRBTkdFUixcbiAgICAgICAgICAgICAgICAgICAgICAgICdJbXBvc3NpYmxlIGRlIHLDqWN1cMOpcmVyIGxlcyBsYW5ndWVzIGRpc3BvbmlibGVzJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGljdGlvbmFyeU9ic2VydmFibGUgPSB0aGlzLmdldEN1cnJlbnRMYW5ndWFnZUNvZGUoKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKGxhbmd1YWdlQ29kZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID1cbiAgICAgICAgICAgICAgICAgICAgRElDVElPTkFSWV9CQVNFX1VSTCArXG4gICAgICAgICAgICAgICAgICAgICghIWxhbmd1YWdlQ29kZSA/IGAvJHtsYW5ndWFnZUNvZGV9YCA6ICcnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxEaWN0aW9uYXJ5VHlwZT4odXJsKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3Jvd2xTZXJ2aWNlLmFkZFdpdGhUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyb3dsVHlwZS5EQU5HRVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ltcG9zc2libGUgZGUgcsOpY3Vww6lyZXIgbGVzIHZhbGV1cnMgZHUgZGljdGlvbm5haXJlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB0YXAoZGljdGlvbmFyeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpY3Rpb25hcnkgPSBkaWN0aW9uYXJ5O1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0RGljdGlvbmFyeSgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnlUeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpY3Rpb25hcnlPYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIGdldEF2YWlsYWJsZUxhbmd1YWdlcygpOiBPYnNlcnZhYmxlPExhbmd1YWdlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICBnZXRLZXkoa2V5OiBzdHJpbmcsIHBsYWNlaG9sZGVycz86IFBsYWNlaG9sZGVyVHlwZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpY3Rpb25hcnlPYnNlcnZhYmxlLnBpcGUoXG4gICAgICAgICAgICBtYXAoZGljdGlvbmFyeSA9PiBnZXRLZXlPckRlZmF1bHQoZGljdGlvbmFyeSwga2V5LCBwbGFjZWhvbGRlcnMpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEtleVN5bmMoa2V5OiBzdHJpbmcsIHBsYWNlaG9sZGVycz86IFBsYWNlaG9sZGVyVHlwZSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5kaWN0aW9uYXJ5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpY3Rpb25hcnkgbm90IGluaXRpYWxpemVkLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldEtleU9yRGVmYXVsdCh0aGlzLmRpY3Rpb25hcnksIGtleSwgcGxhY2Vob2xkZXJzKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VMYW5ndWFnZShjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhY29kZSAmJiB0aGlzLmxhbmd1YWdlQ29kZVN1YmplY3QuZ2V0VmFsdWUoKSAhPT0gY29kZSkge1xuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVTdWJqZWN0Lm5leHQoY29kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRDdXJyZW50TGFuZ3VhZ2VDb2RlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzT2JzZXJ2YWJsZSxcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlU3ViamVjdC5hc09ic2VydmFibGUoKVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbYXZhaWxhYmxlTGFuZ3VhZ2VDb2RlcywgbGFuZ3VhZ2VDb2RlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRMYW5ndWFnZSA9IGF2YWlsYWJsZUxhbmd1YWdlQ29kZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgbGMgPT4gbGMuY29kZSA9PT0gbGFuZ3VhZ2VDb2RlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoISFtYXRjaGVkTGFuZ3VhZ2UgJiYgISFtYXRjaGVkTGFuZ3VhZ2UuY29kZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YobWF0Y2hlZExhbmd1YWdlLmNvZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5kZWZhdWx0TGFuZ3VhZ2VDb2RlKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXREZWZhdWx0TGFuZ3VhZ2VDb2RlKGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlZmF1bHRMYW5ndWFnZUNvZGUgPSBjb2RlO1xuICAgICAgICB0aGlzLmxhbmd1YWdlQ29kZVN1YmplY3QubmV4dCh0aGlzLmdldE5hdmlnYXRvckxhbmd1YWdlQ29kZU9yRGVmYXVsdCgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5hdmlnYXRvckxhbmd1YWdlQ29kZU9yRGVmYXVsdCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gISFuYXZpZ2F0b3IgJiYgISFuYXZpZ2F0b3IubGFuZ3VhZ2VcbiAgICAgICAgICAgID8gbmF2aWdhdG9yLmxhbmd1YWdlLnNwbGl0KCctJylbMF1cbiAgICAgICAgICAgIDogdGhpcy5kZWZhdWx0TGFuZ3VhZ2VDb2RlO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,81 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { first } from 'rxjs/operators';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./sdk-epayment.service";
5
+ import * as i2 from "@angular/router";
6
+ import * as i3 from "../gesdem/gesdem-handler.service";
7
+ import * as i4 from "../gesdem/gesdem-event.service";
8
+ import * as i5 from "../foehn-modal/foehn-modal.component";
9
+ /**
10
+ * Composant invisible à insérer dans une page SDK permettant d'effectuer des paiement sur la plateforme de paiement de
11
+ * Postfinance. La méthode payNow() déclenche le paiement.
12
+ */
13
+ export class SdkEpaymentComponent {
14
+ constructor(ePaymentService, route, gesDemService, gesdemEventService) {
15
+ this.ePaymentService = ePaymentService;
16
+ this.route = route;
17
+ this.gesDemService = gesDemService;
18
+ this.gesdemEventService = gesdemEventService;
19
+ this.baseUrl = 'api/';
20
+ this.platformFailureMessage = 'Un problème non identifié est survenu lors du paiement électronique.';
21
+ this.modalDisplayed = false;
22
+ this.failureDetails = new Map([
23
+ ['back', 'Vous avez abandonné le paiement électronique.'],
24
+ ['cancel', 'Vous avez abandonné le paiement électronique.'],
25
+ [
26
+ 'refused',
27
+ 'Le paiement a été refusé par le fournisseur de paiement électronique.'
28
+ ],
29
+ [
30
+ 'error',
31
+ 'Une erreur est survenue lors du paiement. Veuillez réessayer ou choisir un autre mode de paiement si disponible.'
32
+ ]
33
+ ]);
34
+ }
35
+ ngOnInit() {
36
+ // En cas d'échec, la plateforme nous renvoie dans la page avec une raison.
37
+ this.platformFailureReason = this.route.snapshot.queryParams.REASON;
38
+ if (this.platformFailureReason) {
39
+ this.handleFailure();
40
+ }
41
+ }
42
+ /**
43
+ * Déclenche le processus de paiement électronique. Le paiement est d'abord préparé avec GesDem, puis on navigue
44
+ * vers la plateforme de paiement.
45
+ *
46
+ * @param reference La référence de la demande en cours
47
+ */
48
+ payNow(reference) {
49
+ this.ePaymentService
50
+ .createPendingPayment(reference, this.baseUrl)
51
+ // eslint-disable-next-line rxjs-angular/prefer-async-pipe
52
+ .subscribe(redirectUrl => {
53
+ window.location.href = redirectUrl;
54
+ });
55
+ }
56
+ handleFailure() {
57
+ const message = this.failureDetails.get(this.platformFailureReason);
58
+ if (message) {
59
+ this.platformFailureMessage = message;
60
+ }
61
+ this.gesdemEventService
62
+ .formInitializationObservable()
63
+ .pipe(first())
64
+ // eslint-disable-next-line rxjs-angular/prefer-async-pipe
65
+ .subscribe(() => {
66
+ const reference = this.gesDemService.lastResponse.meta
67
+ .reference;
68
+ this.ePaymentService.cancelPendingPayment(reference, this.baseUrl);
69
+ });
70
+ this.modalDisplayed = true;
71
+ }
72
+ }
73
+ SdkEpaymentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SdkEpaymentComponent, deps: [{ token: i1.EPaymentService }, { token: i2.ActivatedRoute }, { token: i3.GesdemHandlerService }, { token: i4.GesdemEventService }], target: i0.ɵɵFactoryTarget.Component });
74
+ SdkEpaymentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: SdkEpaymentComponent, selector: "epayment-form", inputs: { baseUrl: "baseUrl" }, ngImport: i0, template: "<foehn-modal\n [isModalVisible]=\"this.modalDisplayed\"\n [modalBodyText]=\"this.platformFailureMessage\"\n modalHeaderText=\"Le paiement n'a pu \u00EAtre effectu\u00E9\"\n modalFooterText=\"L'Administration Cantonale Vaudoise\"\n (click)=\"this.modalDisplayed = false\"\n></foehn-modal>\n", styles: [""], dependencies: [{ kind: "component", type: i5.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }] });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SdkEpaymentComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'epayment-form', template: "<foehn-modal\n [isModalVisible]=\"this.modalDisplayed\"\n [modalBodyText]=\"this.platformFailureMessage\"\n modalHeaderText=\"Le paiement n'a pu \u00EAtre effectu\u00E9\"\n modalFooterText=\"L'Administration Cantonale Vaudoise\"\n (click)=\"this.modalDisplayed = false\"\n></foehn-modal>\n" }]
78
+ }], ctorParameters: function () { return [{ type: i1.EPaymentService }, { type: i2.ActivatedRoute }, { type: i3.GesdemHandlerService }, { type: i4.GesdemEventService }]; }, propDecorators: { baseUrl: [{
79
+ type: Input
80
+ }] } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWVwYXltZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZXBheW1lbnQvc2RrLWVwYXltZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZXBheW1lbnQvc2RrLWVwYXltZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQU12Qzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sb0JBQW9CO0lBdUI3QixZQUNZLGVBQWdDLEVBQ3ZCLEtBQXFCLEVBQ3JCLGFBQW1DLEVBQ25DLGtCQUFzQztRQUgvQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDdkIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUF6QjNELFlBQU8sR0FBRyxNQUFNLENBQUM7UUFFakIsMkJBQXNCLEdBQ2xCLHNFQUFzRSxDQUFDO1FBQzNFLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBSWYsbUJBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQztZQUM3QixDQUFDLE1BQU0sRUFBRSwrQ0FBK0MsQ0FBQztZQUN6RCxDQUFDLFFBQVEsRUFBRSwrQ0FBK0MsQ0FBQztZQUMzRDtnQkFDSSxTQUFTO2dCQUNULHVFQUF1RTthQUMxRTtZQUNEO2dCQUNJLE9BQU87Z0JBQ1Asa0hBQWtIO2FBQ3JIO1NBQ0osQ0FBQyxDQUFDO0lBT0EsQ0FBQztJQUVKLFFBQVE7UUFDSiwyRUFBMkU7UUFDM0UsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDcEUsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFNBQWlCO1FBQ3BCLElBQUksQ0FBQyxlQUFlO2FBQ2Ysb0JBQW9CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDOUMsMERBQTBEO2FBQ3pELFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sYUFBYTtRQUNqQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNwRSxJQUFJLE9BQU8sRUFBRTtZQUNULElBQUksQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsa0JBQWtCO2FBQ2xCLDRCQUE0QixFQUFFO2FBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLDBEQUEwRDthQUN6RCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSTtpQkFDakQsU0FBUyxDQUFDO1lBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FDckMsU0FBUyxFQUNULElBQUksQ0FBQyxPQUFPLENBQ2YsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQzs7aUhBeEVRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHFGQ2xCakMsa1RBT0E7MkZEV2Esb0JBQW9CO2tCQU5oQyxTQUFTOytCQUVJLGVBQWU7dU1BTXpCLE9BQU87c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEVQYXltZW50U2VydmljZSB9IGZyb20gJy4vc2RrLWVwYXltZW50LnNlcnZpY2UnO1xuXG4vKipcbiAqIENvbXBvc2FudCBpbnZpc2libGUgw6AgaW5zw6lyZXIgZGFucyB1bmUgcGFnZSBTREsgcGVybWV0dGFudCBkJ2VmZmVjdHVlciBkZXMgcGFpZW1lbnQgc3VyIGxhIHBsYXRlZm9ybWUgZGUgcGFpZW1lbnQgZGVcbiAqIFBvc3RmaW5hbmNlLiBMYSBtw6l0aG9kZSBwYXlOb3coKSBkw6ljbGVuY2hlIGxlIHBhaWVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZXBheW1lbnQtZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Nkay1lcGF5bWVudC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2RrLWVwYXltZW50LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZGtFcGF5bWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBiYXNlVXJsID0gJ2FwaS8nO1xuXG4gICAgcGxhdGZvcm1GYWlsdXJlTWVzc2FnZSA9XG4gICAgICAgICdVbiBwcm9ibMOobWUgbm9uIGlkZW50aWZpw6kgZXN0IHN1cnZlbnUgbG9ycyBkdSBwYWllbWVudCDDqWxlY3Ryb25pcXVlLic7XG4gICAgbW9kYWxEaXNwbGF5ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcGxhdGZvcm1GYWlsdXJlUmVhc29uOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIGZhaWx1cmVEZXRhaWxzID0gbmV3IE1hcChbXG4gICAgICAgIFsnYmFjaycsICdWb3VzIGF2ZXogYWJhbmRvbm7DqSBsZSBwYWllbWVudCDDqWxlY3Ryb25pcXVlLiddLFxuICAgICAgICBbJ2NhbmNlbCcsICdWb3VzIGF2ZXogYWJhbmRvbm7DqSBsZSBwYWllbWVudCDDqWxlY3Ryb25pcXVlLiddLFxuICAgICAgICBbXG4gICAgICAgICAgICAncmVmdXNlZCcsXG4gICAgICAgICAgICAnTGUgcGFpZW1lbnQgYSDDqXTDqSByZWZ1c8OpIHBhciBsZSBmb3Vybmlzc2V1ciBkZSBwYWllbWVudCDDqWxlY3Ryb25pcXVlLidcbiAgICAgICAgXSxcbiAgICAgICAgW1xuICAgICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAgICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGR1IHBhaWVtZW50LiBWZXVpbGxleiByw6llc3NheWVyIG91IGNob2lzaXIgdW4gYXV0cmUgbW9kZSBkZSBwYWllbWVudCBzaSBkaXNwb25pYmxlLidcbiAgICAgICAgXVxuICAgIF0pO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZVBheW1lbnRTZXJ2aWNlOiBFUGF5bWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGdlc0RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGdlc2RlbUV2ZW50U2VydmljZTogR2VzZGVtRXZlbnRTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEVuIGNhcyBkJ8OpY2hlYywgbGEgcGxhdGVmb3JtZSBub3VzIHJlbnZvaWUgZGFucyBsYSBwYWdlIGF2ZWMgdW5lIHJhaXNvbi5cbiAgICAgICAgdGhpcy5wbGF0Zm9ybUZhaWx1cmVSZWFzb24gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLlJFQVNPTjtcbiAgICAgICAgaWYgKHRoaXMucGxhdGZvcm1GYWlsdXJlUmVhc29uKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUZhaWx1cmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIETDqWNsZW5jaGUgbGUgcHJvY2Vzc3VzIGRlIHBhaWVtZW50IMOpbGVjdHJvbmlxdWUuIExlIHBhaWVtZW50IGVzdCBkJ2Fib3JkIHByw6lwYXLDqSBhdmVjIEdlc0RlbSwgcHVpcyBvbiBuYXZpZ3VlXG4gICAgICogdmVycyBsYSBwbGF0ZWZvcm1lIGRlIHBhaWVtZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlZmVyZW5jZSBMYSByw6lmw6lyZW5jZSBkZSBsYSBkZW1hbmRlIGVuIGNvdXJzXG4gICAgICovXG4gICAgcGF5Tm93KHJlZmVyZW5jZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZVBheW1lbnRTZXJ2aWNlXG4gICAgICAgICAgICAuY3JlYXRlUGVuZGluZ1BheW1lbnQocmVmZXJlbmNlLCB0aGlzLmJhc2VVcmwpXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlZGlyZWN0VXJsID0+IHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlZGlyZWN0VXJsO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVGYWlsdXJlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5mYWlsdXJlRGV0YWlscy5nZXQodGhpcy5wbGF0Zm9ybUZhaWx1cmVSZWFzb24pO1xuICAgICAgICBpZiAobWVzc2FnZSkge1xuICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybUZhaWx1cmVNZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdlc2RlbUV2ZW50U2VydmljZVxuICAgICAgICAgICAgLmZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IHRoaXMuZ2VzRGVtU2VydmljZS5sYXN0UmVzcG9uc2UubWV0YVxuICAgICAgICAgICAgICAgICAgICAucmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgIHRoaXMuZVBheW1lbnRTZXJ2aWNlLmNhbmNlbFBlbmRpbmdQYXltZW50KFxuICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFzZVVybFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm1vZGFsRGlzcGxheWVkID0gdHJ1ZTtcbiAgICB9XG59XG4iLCI8Zm9laG4tbW9kYWxcbiAgICBbaXNNb2RhbFZpc2libGVdPVwidGhpcy5tb2RhbERpc3BsYXllZFwiXG4gICAgW21vZGFsQm9keVRleHRdPVwidGhpcy5wbGF0Zm9ybUZhaWx1cmVNZXNzYWdlXCJcbiAgICBtb2RhbEhlYWRlclRleHQ9XCJMZSBwYWllbWVudCBuJ2EgcHUgw6p0cmUgZWZmZWN0dcOpXCJcbiAgICBtb2RhbEZvb3RlclRleHQ9XCJMJ0FkbWluaXN0cmF0aW9uIENhbnRvbmFsZSBWYXVkb2lzZVwiXG4gICAgKGNsaWNrKT1cInRoaXMubW9kYWxEaXNwbGF5ZWQgPSBmYWxzZVwiXG4+PC9mb2Vobi1tb2RhbD5cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { GrowlBrokerService } from '../foehn-growl/growl-broker.service';
4
+ import { FoehnModalModule } from '../foehn-modal/foehn-modal.module';
5
+ import { SdkEpaymentComponent } from './sdk-epayment.component';
6
+ import * as i0 from "@angular/core";
7
+ export class SdkEpaymentModule {
8
+ }
9
+ SdkEpaymentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SdkEpaymentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ SdkEpaymentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: SdkEpaymentModule, declarations: [SdkEpaymentComponent], imports: [CommonModule, FoehnModalModule], exports: [SdkEpaymentComponent] });
11
+ SdkEpaymentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SdkEpaymentModule, providers: [GrowlBrokerService], imports: [CommonModule, FoehnModalModule] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SdkEpaymentModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [CommonModule, FoehnModalModule],
16
+ declarations: [SdkEpaymentComponent],
17
+ providers: [GrowlBrokerService],
18
+ exports: [SdkEpaymentComponent]
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWVwYXltZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZXBheW1lbnQvc2RrLWVwYXltZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFRaEUsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQUpYLG9CQUFvQixhQUR6QixZQUFZLEVBQUUsZ0JBQWdCLGFBRzlCLG9CQUFvQjsrR0FFckIsaUJBQWlCLGFBSGYsQ0FBQyxrQkFBa0IsQ0FBQyxZQUZyQixZQUFZLEVBQUUsZ0JBQWdCOzJGQUsvQixpQkFBaUI7a0JBTjdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO29CQUN6QyxZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDcEMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBHcm93bEJyb2tlclNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1ncm93bC9ncm93bC1icm9rZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGb2Vobk1vZGFsTW9kdWxlIH0gZnJvbSAnLi4vZm9laG4tbW9kYWwvZm9laG4tbW9kYWwubW9kdWxlJztcbmltcG9ydCB7IFNka0VwYXltZW50Q29tcG9uZW50IH0gZnJvbSAnLi9zZGstZXBheW1lbnQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb2Vobk1vZGFsTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtTZGtFcGF5bWVudENvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbR3Jvd2xCcm9rZXJTZXJ2aWNlXSxcbiAgICBleHBvcnRzOiBbU2RrRXBheW1lbnRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFNka0VwYXltZW50TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,52 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { catchError } from 'rxjs/operators';
4
+ import { GrowlType } from '../foehn-growl/growl-types';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ import * as i2 from "../foehn-growl/growl-broker.service";
8
+ export class EPaymentService {
9
+ constructor(http, growlService) {
10
+ this.http = http;
11
+ this.growlService = growlService;
12
+ }
13
+ /**
14
+ * Effectuer une requête de préparation du paiement auprès du backend, et obtenir les paramètres de formulaire
15
+ * en vue du passage sur la plateforme de paiement électronique.
16
+ *
17
+ * @param ref La référence de la demande en cours
18
+ * @param baseUrl L'url de base (optionnelle)
19
+ * @returns la page de paiement sur laquelle rediriger l'utilisateur
20
+ */
21
+ createPendingPayment(ref, baseUrl) {
22
+ return this.http
23
+ .post(`${baseUrl}epayment/prepare/${ref}`, null, {
24
+ responseType: 'text'
25
+ })
26
+ .pipe(catchError(() => {
27
+ this.growlService.addWithType(GrowlType.DANGER, 'Une erreur de transmission est survenue. Merci de réessayer plus tard.');
28
+ this.cancelPendingPayment(ref, baseUrl);
29
+ throw new Error();
30
+ }));
31
+ }
32
+ cancelPendingPayment(ref, baseUrl) {
33
+ const url = `${baseUrl}epayment/cancel/${ref}`;
34
+ this.http
35
+ .post(url, null)
36
+ .pipe(catchError(() => this.handleError()))
37
+ .subscribe();
38
+ }
39
+ handleError() {
40
+ this.growlService.addWithType(GrowlType.DANGER, 'Une erreur de transmission est survenue. Merci de réessayer plus tard.');
41
+ return of(null);
42
+ }
43
+ }
44
+ EPaymentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EPaymentService, deps: [{ token: i1.HttpClient }, { token: i2.GrowlBrokerService }], target: i0.ɵɵFactoryTarget.Injectable });
45
+ EPaymentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EPaymentService, providedIn: 'root' });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EPaymentService, decorators: [{
47
+ type: Injectable,
48
+ args: [{
49
+ providedIn: 'root'
50
+ }]
51
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.GrowlBrokerService }]; } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWVwYXltZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLWVwYXltZW50L3Nkay1lcGF5bWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBTXZELE1BQU0sT0FBTyxlQUFlO0lBQ3hCLFlBQ1ksSUFBZ0IsRUFDaEIsWUFBZ0M7UUFEaEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7SUFDekMsQ0FBQztJQUVKOzs7Ozs7O09BT0c7SUFDSCxvQkFBb0IsQ0FBQyxHQUFXLEVBQUUsT0FBZTtRQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsSUFBSSxDQUFDLEdBQUcsT0FBTyxvQkFBb0IsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQzdDLFlBQVksRUFBRSxNQUFlO1NBQ2hDLENBQUM7YUFDRCxJQUFJLENBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUN6QixTQUFTLENBQUMsTUFBTSxFQUNoQix3RUFBd0UsQ0FDM0UsQ0FBQztZQUNGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDeEMsTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDN0MsTUFBTSxHQUFHLEdBQUcsR0FBRyxPQUFPLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSTthQUNKLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO2FBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQzthQUMxQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUN6QixTQUFTLENBQUMsTUFBTSxFQUNoQix3RUFBd0UsQ0FDM0UsQ0FBQztRQUNGLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7OzRHQTdDUSxlQUFlO2dIQUFmLGVBQWUsY0FGWixNQUFNOzJGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBHcm93bEJyb2tlclNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1ncm93bC9ncm93bC1icm9rZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHcm93bFR5cGUgfSBmcm9tICcuLi9mb2Vobi1ncm93bC9ncm93bC10eXBlcyc7XG5pbXBvcnQgeyBFUGF5bWVudFBhcmFtZXRlcnMgfSBmcm9tICcuL21vZGVsL0VQYXltZW50UGFyYW1ldGVycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRVBheW1lbnRTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIGdyb3dsU2VydmljZTogR3Jvd2xCcm9rZXJTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogRWZmZWN0dWVyIHVuZSByZXF1w6p0ZSBkZSBwcsOpcGFyYXRpb24gZHUgcGFpZW1lbnQgYXVwcsOocyBkdSBiYWNrZW5kLCBldCBvYnRlbmlyIGxlcyBwYXJhbcOodHJlcyBkZSBmb3JtdWxhaXJlXG4gICAgICogZW4gdnVlIGR1IHBhc3NhZ2Ugc3VyIGxhIHBsYXRlZm9ybWUgZGUgcGFpZW1lbnQgw6lsZWN0cm9uaXF1ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWYgTGEgcsOpZsOpcmVuY2UgZGUgbGEgZGVtYW5kZSBlbiBjb3Vyc1xuICAgICAqIEBwYXJhbSBiYXNlVXJsIEwndXJsIGRlIGJhc2UgKG9wdGlvbm5lbGxlKVxuICAgICAqIEByZXR1cm5zIGxhIHBhZ2UgZGUgcGFpZW1lbnQgc3VyIGxhcXVlbGxlIHJlZGlyaWdlciBsJ3V0aWxpc2F0ZXVyXG4gICAgICovXG4gICAgY3JlYXRlUGVuZGluZ1BheW1lbnQocmVmOiBzdHJpbmcsIGJhc2VVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGAke2Jhc2VVcmx9ZXBheW1lbnQvcHJlcGFyZS8ke3JlZn1gLCBudWxsLCB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcgYXMgY29uc3RcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm93bFNlcnZpY2UuYWRkV2l0aFR5cGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBHcm93bFR5cGUuREFOR0VSLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1VuZSBlcnJldXIgZGUgdHJhbnNtaXNzaW9uIGVzdCBzdXJ2ZW51ZS4gTWVyY2kgZGUgcsOpZXNzYXllciBwbHVzIHRhcmQuJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbFBlbmRpbmdQYXltZW50KHJlZiwgYmFzZVVybCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIGNhbmNlbFBlbmRpbmdQYXltZW50KHJlZjogc3RyaW5nLCBiYXNlVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YmFzZVVybH1lcGF5bWVudC9jYW5jZWwvJHtyZWZ9YDtcbiAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh1cmwsIG51bGwpXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IHRoaXMuaGFuZGxlRXJyb3IoKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcigpOiBPYnNlcnZhYmxlPEVQYXltZW50UGFyYW1ldGVycz4ge1xuICAgICAgICB0aGlzLmdyb3dsU2VydmljZS5hZGRXaXRoVHlwZShcbiAgICAgICAgICAgIEdyb3dsVHlwZS5EQU5HRVIsXG4gICAgICAgICAgICAnVW5lIGVycmV1ciBkZSB0cmFuc21pc3Npb24gZXN0IHN1cnZlbnVlLiBNZXJjaSBkZSByw6llc3NheWVyIHBsdXMgdGFyZC4nXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export const RECAPTCHA_URL = 'https://www.google.com/recaptcha/api.js?onload=reCaptchaLoad&render=explicit';
3
+ export const RECAPTCHA_URL = 'https://www.recaptcha.net/recaptcha/api.js?onload=reCaptchaLoad&render=explicit';
4
4
  export const SCRIPT_ID = 'prestations-ng-captcha-script';
5
5
  /**
6
6
  * Integration with Google Recaptcha.
@@ -83,15 +83,11 @@ export class GrecaptchaComponent {
83
83
  }
84
84
  }
85
85
  }
86
- GrecaptchaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: GrecaptchaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
87
- GrecaptchaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: GrecaptchaComponent, selector: "app-grecaptcha", inputs: { siteKey: "siteKey" }, outputs: { loaded: "loaded", scriptError: "scriptError", tokenOnSuccess: "tokenOnSuccess", destroyed: "destroyed" }, viewQueries: [{ propertyName: "recaptchaContainer", first: true, predicate: ["recaptchaContainer"], descendants: true, static: true }, { propertyName: "recaptchaScriptContainer", first: true, predicate: ["recaptchaScriptContainer"], descendants: true, static: true }], ngImport: i0, template: "<div #recaptchaScriptContainer></div>\n<div #recaptchaContainer></div>\n" });
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: GrecaptchaComponent, decorators: [{
86
+ GrecaptchaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GrecaptchaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
87
+ GrecaptchaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: GrecaptchaComponent, selector: "app-grecaptcha", inputs: { siteKey: "siteKey" }, outputs: { loaded: "loaded", scriptError: "scriptError", tokenOnSuccess: "tokenOnSuccess", destroyed: "destroyed" }, viewQueries: [{ propertyName: "recaptchaContainer", first: true, predicate: ["recaptchaContainer"], descendants: true, static: true }, { propertyName: "recaptchaScriptContainer", first: true, predicate: ["recaptchaScriptContainer"], descendants: true, static: true }], ngImport: i0, template: "<div #recaptchaScriptContainer></div>\n<div #recaptchaContainer></div>\n" });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GrecaptchaComponent, decorators: [{
89
89
  type: Component,
90
- args: [{
91
- // eslint-disable-next-line @angular-eslint/component-selector
92
- selector: 'app-grecaptcha',
93
- templateUrl: './grecaptcha.component.html'
94
- }]
90
+ args: [{ selector: 'app-grecaptcha', template: "<div #recaptchaScriptContainer></div>\n<div #recaptchaContainer></div>\n" }]
95
91
  }], propDecorators: { siteKey: [{
96
92
  type: Input
97
93
  }], loaded: [{
@@ -109,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
109
105
  type: ViewChild,
110
106
  args: ['recaptchaScriptContainer', { static: true }]
111
107
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlY2FwdGNoYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9ncmVjYXB0Y2hhL2dyZWNhcHRjaGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1yZWNhcHRjaGEvZ3JlY2FwdGNoYS9ncmVjYXB0Y2hhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDOztBQUV2QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQ3RCLDhFQUE4RSxDQUFDO0FBQ25GLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRywrQkFBK0IsQ0FBQztBQVV6RDs7Ozs7O0dBTUc7QUFNSCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBVUksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHckMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRzFDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFHbkQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0E4RjNDO0lBcEZHLFFBQVE7UUFDSiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFB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UCxXQUFXO3NCQURWLE1BQU07Z0JBSVAsY0FBYztzQkFEYixNQUFNO2dCQUlQLFNBQVM7c0JBRFIsTUFBTTtnQkFJUCxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqRCx3QkFBd0I7c0JBRHZCLFNBQVM7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgUkVDQVBUQ0hBX1VSTCA9XG4gICAgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcz9vbmxvYWQ9cmVDYXB0Y2hhTG9hZCZyZW5kZXI9ZXhwbGljaXQnO1xuZXhwb3J0IGNvbnN0IFNDUklQVF9JRCA9ICdwcmVzdGF0aW9ucy1uZy1jYXB0Y2hhLXNjcmlwdCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgZ3JlY2FwdGNoYTogYW55O1xuICAgICAgICByZUNhcHRjaGFMb2FkOiAoKSA9PiB2b2lkO1xuICAgIH1cbn1cblxuLyoqXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIEdvb2dsZSBSZWNhcHRjaGEuXG4gKlxuICogQWxsIHRoZSBxdWlya3MgYW5kIHdlaXJkbmVzcyBvZiB0aGlzIGludGVncmF0aW9uIHNob3VsZCBiZSBkb25lIGluIHRoaXNcbiAqIGNvbXBvbmVudC5cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdhcHAtZ3JlY2FwdGNoYScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdyZWNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBzaXRlS2V5OiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KClcbiAgICBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBzY3JpcHRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHRva2VuT25TdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZGVzdHJveWVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQFZpZXdDaGlsZCgncmVjYXB0Y2hhQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICByZWNhcHRjaGFDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdyZWNhcHRjaGFTY3JpcHRDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHJlY2FwdGNoYVNjcmlwdENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgd2lkZ2V0SWQ6IG51bWJlcjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBJZiB0aGUgY29tcG9uZW50IGlzIGluIHRoZSBjb21wb25lbnQgdHJlZSwgbG9hZCB0aGUgY2FwdGNoYSByZWdhcmRsZXNzLlxuICAgICAgICB0aGlzLmxvYWRDYXB0Y2hhKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMucmVtb3ZlU2NyaXB0KCk7XG4gICAgfVxuXG4gICAgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2FmZUNhcHRjaGFSZXNldCgpO1xuXG4gICAgICAgIHRoaXMudG9rZW5PblN1Y2Nlc3MuZW1pdChudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckNhcHRjaGEoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zaXRlS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgc2l0ZUtleSBvbiB0aGUgY29tcG9uZW50Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXdpbmRvdy5ncmVjYXB0Y2hhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjYXB0Y2hhIGhhcyBub3QgYmVlbiBsb2FkZWQgcHJvcGVybHknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgIHNpdGVrZXk6IHRoaXMuc2l0ZUtleSxcbiAgICAgICAgICAgIGNhbGxiYWNrOiAodG9rZW46IHN0cmluZykgPT4gdGhpcy50b2tlbk9uU3VjY2Vzcy5lbWl0KHRva2VuKSxcbiAgICAgICAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKCkgPT4gdGhpcy5yZXNldCgpXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy53aWRnZXRJZCA9IHdpbmRvdy5ncmVjYXB0Y2hhLnJlbmRlcihcbiAgICAgICAgICAgIHRoaXMucmVjYXB0Y2hhQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBjb25maWdcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmxvYWRlZC5lbWl0KHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwZW5kU2NyaXB0VGFnKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgc2NyaXB0LmlkID0gU0NSSVBUX0lEO1xuICAgICAgICBzY3JpcHQuc3JjID0gUkVDQVBUQ0hBX1VSTDtcbiAgICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoKSA9PiB0aGlzLnNjcmlwdEVycm9yLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMucmVjYXB0Y2hhU2NyaXB0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVNjcmlwdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zY3JpcHRFcnJvci5lbWl0KGZhbHNlKTtcblxuICAgICAgICB3aW5kb3cucmVDYXB0Y2hhTG9hZCA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkQ2FwdGNoYSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkZWQuZW1pdChmYWxzZSk7XG5cbiAgICAgICAgLy8gSW4gY2FzZSB0aGUgc2NyaXB0IGlzIGFscmVhZHkgbG9hZGVkLlxuICAgICAgICBjb25zdCBleGlzdGluZ1RhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNDUklQVF9JRCk7XG4gICAgICAgIGlmIChleGlzdGluZ1RhZykge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJDYXB0Y2hhKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBjYXB0Y2hhIGxvYWRzLlxuICAgICAgICB3aW5kb3cucmVDYXB0Y2hhTG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ2FwdGNoYSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEFkZCB0aGUgc2NyaXB0IHdpdGggdGhlIGByZUNhcHRjaGFMb2FkYCBmdW5jdGlvbiBhcyBhIGNhbGxiYWNrLlxuICAgICAgICB0aGlzLmFwcGVuZFNjcmlwdFRhZygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FmZUNhcHRjaGFSZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghIXdpbmRvdy5ncmVjYXB0Y2hhKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmdyZWNhcHRjaGEucmVzZXQodGhpcy53aWRnZXRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIHJlc2V0IG9mIHRoZSBHb29nbGUgQ2FwdGNoYSB0aHJvd3MgYW4gZXJyb3IuXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjcmVjYXB0Y2hhU2NyaXB0Q29udGFpbmVyPjwvZGl2PlxuPGRpdiAjcmVjYXB0Y2hhQ29udGFpbmVyPjwvZGl2PlxuIl19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlY2FwdGNoYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9ncmVjYXB0Y2hhL2dyZWNhcHRjaGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1yZWNhcHRjaGEvZ3JlY2FwdGNoYS9ncmVjYXB0Y2hhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDOztBQUV2QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQ3RCLGlGQUFpRixDQUFDO0FBQ3RGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRywrQkFBK0IsQ0FBQztBQVV6RDs7Ozs7O0dBTUc7QUFNSCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBVUksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHckMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRzFDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFHbkQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0E4RjNDO0lBcEZHLFFBQVE7UUFDSiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFB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TTtnQkFJUCxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqRCx3QkFBd0I7c0JBRHZCLFNBQVM7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgUkVDQVBUQ0hBX1VSTCA9XG4gICAgJ2h0dHBzOi8vd3d3LnJlY2FwdGNoYS5uZXQvcmVjYXB0Y2hhL2FwaS5qcz9vbmxvYWQ9cmVDYXB0Y2hhTG9hZCZyZW5kZXI9ZXhwbGljaXQnO1xuZXhwb3J0IGNvbnN0IFNDUklQVF9JRCA9ICdwcmVzdGF0aW9ucy1uZy1jYXB0Y2hhLXNjcmlwdCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgZ3JlY2FwdGNoYTogYW55O1xuICAgICAgICByZUNhcHRjaGFMb2FkOiAoKSA9PiB2b2lkO1xuICAgIH1cbn1cblxuLyoqXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIEdvb2dsZSBSZWNhcHRjaGEuXG4gKlxuICogQWxsIHRoZSBxdWlya3MgYW5kIHdlaXJkbmVzcyBvZiB0aGlzIGludGVncmF0aW9uIHNob3VsZCBiZSBkb25lIGluIHRoaXNcbiAqIGNvbXBvbmVudC5cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdhcHAtZ3JlY2FwdGNoYScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdyZWNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBzaXRlS2V5OiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KClcbiAgICBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBzY3JpcHRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHRva2VuT25TdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZGVzdHJveWVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQFZpZXdDaGlsZCgncmVjYXB0Y2hhQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICByZWNhcHRjaGFDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdyZWNhcHRjaGFTY3JpcHRDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHJlY2FwdGNoYVNjcmlwdENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgd2lkZ2V0SWQ6IG51bWJlcjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBJZiB0aGUgY29tcG9uZW50IGlzIGluIHRoZSBjb21wb25lbnQgdHJlZSwgbG9hZCB0aGUgY2FwdGNoYSByZWdhcmRsZXNzLlxuICAgICAgICB0aGlzLmxvYWRDYXB0Y2hhKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMucmVtb3ZlU2NyaXB0KCk7XG4gICAgfVxuXG4gICAgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2FmZUNhcHRjaGFSZXNldCgpO1xuXG4gICAgICAgIHRoaXMudG9rZW5PblN1Y2Nlc3MuZW1pdChudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckNhcHRjaGEoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zaXRlS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgc2l0ZUtleSBvbiB0aGUgY29tcG9uZW50Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXdpbmRvdy5ncmVjYXB0Y2hhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjYXB0Y2hhIGhhcyBub3QgYmVlbiBsb2FkZWQgcHJvcGVybHknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgIHNpdGVrZXk6IHRoaXMuc2l0ZUtleSxcbiAgICAgICAgICAgIGNhbGxiYWNrOiAodG9rZW46IHN0cmluZykgPT4gdGhpcy50b2tlbk9uU3VjY2Vzcy5lbWl0KHRva2VuKSxcbiAgICAgICAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKCkgPT4gdGhpcy5yZXNldCgpXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy53aWRnZXRJZCA9IHdpbmRvdy5ncmVjYXB0Y2hhLnJlbmRlcihcbiAgICAgICAgICAgIHRoaXMucmVjYXB0Y2hhQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBjb25maWdcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmxvYWRlZC5lbWl0KHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwZW5kU2NyaXB0VGFnKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgc2NyaXB0LmlkID0gU0NSSVBUX0lEO1xuICAgICAgICBzY3JpcHQuc3JjID0gUkVDQVBUQ0hBX1VSTDtcbiAgICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoKSA9PiB0aGlzLnNjcmlwdEVycm9yLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMucmVjYXB0Y2hhU2NyaXB0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVNjcmlwdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zY3JpcHRFcnJvci5lbWl0KGZhbHNlKTtcblxuICAgICAgICB3aW5kb3cucmVDYXB0Y2hhTG9hZCA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkQ2FwdGNoYSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkZWQuZW1pdChmYWxzZSk7XG5cbiAgICAgICAgLy8gSW4gY2FzZSB0aGUgc2NyaXB0IGlzIGFscmVhZHkgbG9hZGVkLlxuICAgICAgICBjb25zdCBleGlzdGluZ1RhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNDUklQVF9JRCk7XG4gICAgICAgIGlmIChleGlzdGluZ1RhZykge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJDYXB0Y2hhKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBjYXB0Y2hhIGxvYWRzLlxuICAgICAgICB3aW5kb3cucmVDYXB0Y2hhTG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ2FwdGNoYSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEFkZCB0aGUgc2NyaXB0IHdpdGggdGhlIGByZUNhcHRjaGFMb2FkYCBmdW5jdGlvbiBhcyBhIGNhbGxiYWNrLlxuICAgICAgICB0aGlzLmFwcGVuZFNjcmlwdFRhZygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FmZUNhcHRjaGFSZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghIXdpbmRvdy5ncmVjYXB0Y2hhKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmdyZWNhcHRjaGEucmVzZXQodGhpcy53aWRnZXRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIHJlc2V0IG9mIHRoZSBHb29nbGUgQ2FwdGNoYSB0aHJvd3MgYW4gZXJyb3IuXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjcmVjYXB0Y2hhU2NyaXB0Q29udGFpbmVyPjwvZGl2PlxuPGRpdiAjcmVjYXB0Y2hhQ29udGFpbmVyPjwvZGl2PlxuIl19
@@ -0,0 +1,162 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { BehaviorSubject, combineLatest, merge, of } from 'rxjs';
4
+ import { debounceTime, map } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ import * as i2 from "../sdk-session-info/session-info.service";
8
+ import * as i3 from "@angular/router";
9
+ import * as i4 from "../validation/validation-handler.service";
10
+ import * as i5 from "../gesdem/gesdem-handler.service";
11
+ import * as i6 from "../gesdem/gesdem-event.service";
12
+ import * as i7 from "../sdk-appinfo/application-info.service";
13
+ export const RECAPTCHA_API_URL = 'api/recaptcha';
14
+ export const CAPTCHA_ERROR_NAME = 'recaptcha';
15
+ export class RecaptchaService {
16
+ constructor(http, sessionInfo, route, validationHandlerService, gesdemService, gesdemEventService, applicationInfoService) {
17
+ this.http = http;
18
+ this.sessionInfo = sessionInfo;
19
+ this.route = route;
20
+ this.validationHandlerService = validationHandlerService;
21
+ this.gesdemService = gesdemService;
22
+ this.gesdemEventService = gesdemEventService;
23
+ this.applicationInfoService = applicationInfoService;
24
+ this.errorsSubject = new BehaviorSubject([]);
25
+ this.shouldDisplay = this.initShouldDisplayObservable();
26
+ this.errors = this.initErrorObservable();
27
+ this.publicKey = this.initPublicKeyObservable();
28
+ }
29
+ onSuccess(token) {
30
+ // To be accessed by the gesdem service and to avoid to have a circular
31
+ // dependency between the gesdemHandlerService and the captcha service.
32
+ this.gesdemService.setCaptchaToken(token);
33
+ this.token = token;
34
+ if (!!this.token) {
35
+ this.clearErrors();
36
+ this.http.post(RECAPTCHA_API_URL, { token: this.token }).subscribe(
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
+ (data) => {
39
+ const success = !!data.success;
40
+ if (success) {
41
+ // Clear any potential errors from the server. We can do
42
+ // that because this should be the only error in the set as
43
+ // the captcha must be valid to have at least one form error.
44
+ this.validationHandlerService.updateErrors([]);
45
+ }
46
+ else {
47
+ // If this is thrown, that's pretty bad because it means
48
+ // that Google couldn't verify the captcha key. This is
49
+ // either an attack or a misconfiguration.
50
+ this.addError('Votre captcha est invalide');
51
+ }
52
+ }, (e) => {
53
+ console.error(e);
54
+ // 404, timeout or network issue. Could happen.
55
+ this.addError('Une erreur est survenue lors de la validation du captcha.');
56
+ });
57
+ }
58
+ }
59
+ addError(message) {
60
+ const existingErrors = this.errorsSubject.getValue();
61
+ const newError = {
62
+ name: CAPTCHA_ERROR_NAME,
63
+ code: CAPTCHA_ERROR_NAME,
64
+ message
65
+ };
66
+ this.errorsSubject.next([newError, ...existingErrors]);
67
+ }
68
+ clearErrors() {
69
+ this.errorsSubject.next([]);
70
+ }
71
+ getErrors() {
72
+ return this.errors;
73
+ }
74
+ getShouldDisplay() {
75
+ return this.shouldDisplay;
76
+ }
77
+ getPublicKey() {
78
+ return this.publicKey;
79
+ }
80
+ getToken() {
81
+ return this.token;
82
+ }
83
+ initErrorObservable() {
84
+ const matchingGesdemErrors = merge(
85
+ // Ensures that there's an initial value
86
+ of([]),
87
+ // Read from the gesdem service all errors.
88
+ this.validationHandlerService.validationErrorsSubject).pipe(
89
+ // Errors from GesDem, or nothing
90
+ map(errors => errors.filter(ex => CAPTCHA_ERROR_NAME === ex.code)));
91
+ // Bind errors to the component, either from the backend of from this component
92
+ return combineLatest([
93
+ // Errors from gesdem matching the name of the captcha.
94
+ matchingGesdemErrors,
95
+ // Manual errors
96
+ this.errorsSubject
97
+ ]).pipe(
98
+ // Merge the two errors sets
99
+ map(([gesdemErrors, localErrors]) => [
100
+ ...gesdemErrors,
101
+ ...localErrors
102
+ ]));
103
+ }
104
+ initShouldDisplayObservable() {
105
+ const isConnectedObservable = this.sessionInfo.data.pipe(map(data => !this.sessionInfo.neverConnected && !!data));
106
+ const hasBypassEnabledObservable = this.checkBypassProperty().pipe(map(bypass => !!bypass.value));
107
+ const hasReferenceObservable = merge(
108
+ // To have an initial value. Can be null if there is no form.
109
+ of(this.gesdemService.lastResponse),
110
+ // Read the form from GesDem
111
+ this.gesdemEventService.formInitializationObservable()).pipe(map(form => !!form &&
112
+ !!this.gesdemService.lastResponse &&
113
+ !!this.gesdemService.lastResponse.meta &&
114
+ !!this.gesdemService.lastResponse.meta.reference));
115
+ return combineLatest([
116
+ isConnectedObservable,
117
+ hasBypassEnabledObservable,
118
+ hasReferenceObservable
119
+ ]).pipe(
120
+ // To work around rapidly changing observables, such as the form
121
+ // when the page loads.
122
+ debounceTime(0), map(([isConnected, hasBypassEnabled, hasReference]) =>
123
+ // Do not display the captcha if the user is connected, the application
124
+ // already has a reference or if the bypass is enabled.
125
+ !isConnected && !hasBypassEnabled && !hasReference));
126
+ }
127
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
128
+ checkBypassProperty() {
129
+ const params = !!this.route.snapshot.queryParams.reCaptchaByPassUUID
130
+ ? new HttpParams().set('reCaptchaByPassUUID', this.route.snapshot.queryParams.reCaptchaByPassUUID)
131
+ : null;
132
+ return this.http.get(`${RECAPTCHA_API_URL}/bypass`, { params });
133
+ }
134
+ initPublicKeyObservable() {
135
+ return this.applicationInfoService.data.pipe(map(applicationInfo => this.getPublicKeyOrNull(applicationInfo)));
136
+ }
137
+ getPublicKeyOrNull(applicationInfo) {
138
+ // Replace this whole shenanigan with applicationInfo?.configuration?.captcha?.publickey when
139
+ // Typescript supports it.
140
+ if (!applicationInfo) {
141
+ return null;
142
+ }
143
+ const { configuration } = applicationInfo;
144
+ if (!configuration) {
145
+ return null;
146
+ }
147
+ const { captcha } = configuration;
148
+ if (!captcha) {
149
+ return null;
150
+ }
151
+ return captcha.publickey || null;
152
+ }
153
+ }
154
+ RecaptchaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: RecaptchaService, deps: [{ token: i1.HttpClient }, { token: i2.SessionInfo }, { token: i3.ActivatedRoute }, { token: i4.ValidationHandlerService }, { token: i5.GesdemHandlerService }, { token: i6.GesdemEventService }, { token: i7.ApplicationInfoService }], target: i0.ɵɵFactoryTarget.Injectable });
155
+ RecaptchaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: RecaptchaService, providedIn: 'root' });
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: RecaptchaService, decorators: [{
157
+ type: Injectable,
158
+ args: [{
159
+ providedIn: 'root'
160
+ }]
161
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.SessionInfo }, { type: i3.ActivatedRoute }, { type: i4.ValidationHandlerService }, { type: i5.GesdemHandlerService }, { type: i6.GesdemEventService }, { type: i7.ApplicationInfoService }]; } });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9yZWNhcHRjaGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVVuRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0FBSzlDLE1BQU0sT0FBTyxnQkFBZ0I7SUFPekIsWUFDWSxJQUFnQixFQUNoQixXQUF3QixFQUN4QixLQUFxQixFQUNyQix3QkFBa0QsRUFDbEQsYUFBbUMsRUFDbkMsa0JBQXNDLEVBQ3RDLHNCQUE4QztRQU45QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQVp6QyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFjLEVBQUUsQ0FBQyxDQUFDO1FBY2xFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDeEQsSUFB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O1NBQ2Y7UUFDRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsYUFBYSxDQUFDO1FBRWxDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztJQUNyQyxDQUFDOzs2R0FuTVEsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGYixNQUFNOzJGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGb3JtRXJyb3IgfSBmcm9tICcuLi9mb3JtLWVycm9yJztcbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mbyB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWhhbmRsZXIuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBSRUNBUFRDSEFfQVBJX1VSTCA9ICdhcGkvcmVjYXB0Y2hhJztcbmV4cG9ydCBjb25zdCBDQVBUQ0hBX0VSUk9SX05BTUUgPSAncmVjYXB0Y2hhJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZWNhcHRjaGFTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9yczogT2JzZXJ2YWJsZTxGb3JtRXJyb3JbXT47XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvcnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRXJyb3JbXT4oW10pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2hvdWxkRGlzcGxheTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHB1YmxpY0tleTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIHByaXZhdGUgdG9rZW46IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbkluZm86IFNlc3Npb25JbmZvLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSB2YWxpZGF0aW9uSGFuZGxlclNlcnZpY2U6IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1FdmVudFNlcnZpY2U6IEdlc2RlbUV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhcHBsaWNhdGlvbkluZm9TZXJ2aWNlOiBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2hvdWxkRGlzcGxheSA9IHRoaXMuaW5pdFNob3VsZERpc3BsYXlPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy5pbml0RXJyb3JPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMucHVibGljS2V5ID0gdGhpcy5pbml0UHVibGljS2V5T2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIG9uU3VjY2Vzcyh0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIC8vIFRvIGJlIGFjY2Vzc2VkIGJ5IHRoZSBnZXNkZW0gc2VydmljZSBhbmQgdG8gYXZvaWQgdG8gaGF2ZSBhIGNpcmN1bGFyXG4gICAgICAgIC8vIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgZ2VzZGVtSGFuZGxlclNlcnZpY2UgYW5kIHRoZSBjYXB0Y2hhIHNlcnZpY2UuXG4gICAgICAgIHRoaXMuZ2VzZGVtU2VydmljZS5zZXRDYXB0Y2hhVG9rZW4odG9rZW4pO1xuXG4gICAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcblxuICAgICAgICBpZiAoISF0aGlzLnRva2VuKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRXJyb3JzKCk7XG4gICAgICAgICAgICB0aGlzLmh0dHAucG9zdChSRUNBUFRDSEFfQVBJX1VSTCwgeyB0b2tlbjogdGhpcy50b2tlbiB9KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSAhIWRhdGEuc3VjY2VzcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsZWFyIGFueSBwb3RlbnRpYWwgZXJyb3JzIGZyb20gdGhlIHNlcnZlci4gV2UgY2FuIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IGJlY2F1c2UgdGhpcyBzaG91bGQgYmUgdGhlIG9ubHkgZXJyb3IgaW4gdGhlIHNldCBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNhcHRjaGEgbXVzdCBiZSB2YWxpZCB0byBoYXZlIGF0IGxlYXN0IG9uZSBmb3JtIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UudXBkYXRlRXJyb3JzKFtdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhyb3duLCB0aGF0J3MgcHJldHR5IGJhZCBiZWNhdXNlIGl0IG1lYW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IEdvb2dsZSBjb3VsZG4ndCB2ZXJpZnkgdGhlIGNhcHRjaGEga2V5LiBUaGlzIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlaXRoZXIgYW4gYXR0YWNrIG9yIGEgbWlzY29uZmlndXJhdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRXJyb3IoJ1ZvdHJlIGNhcHRjaGEgZXN0IGludmFsaWRlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gNDA0LCB0aW1lb3V0IG9yIG5ldHdvcmsgaXNzdWUuIENvdWxkIGhhcHBlbi5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGxhIHZhbGlkYXRpb24gZHUgY2FwdGNoYS4nXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZEVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBleGlzdGluZ0Vycm9ycyA9IHRoaXMuZXJyb3JzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBuZXdFcnJvciA9IHtcbiAgICAgICAgICAgIG5hbWU6IENBUFRDSEFfRVJST1JfTkFNRSxcbiAgICAgICAgICAgIGNvZGU6IENBUFRDSEFfRVJST1JfTkFNRSxcbiAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmVycm9yc1N1YmplY3QubmV4dChbbmV3RXJyb3IsIC4uLmV4aXN0aW5nRXJyb3JzXSk7XG4gICAgfVxuXG4gICAgY2xlYXJFcnJvcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXJyb3JzU3ViamVjdC5uZXh0KFtdKTtcbiAgICB9XG5cbiAgICBnZXRFcnJvcnMoKTogT2JzZXJ2YWJsZTxGb3JtRXJyb3JbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnM7XG4gICAgfVxuXG4gICAgZ2V0U2hvdWxkRGlzcGxheSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvdWxkRGlzcGxheTtcbiAgICB9XG5cbiAgICBnZXRQdWJsaWNLZXkoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHVibGljS2V5O1xuICAgIH1cblxuICAgIGdldFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2VuO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEVycm9yT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEZvcm1FcnJvcltdPiB7XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nR2VzZGVtRXJyb3JzID0gbWVyZ2UoXG4gICAgICAgICAgICAvLyBFbnN1cmVzIHRoYXQgdGhlcmUncyBhbiBpbml0aWFsIHZhbHVlXG4gICAgICAgICAgICBvZihbXSksXG4gICAgICAgICAgICAvLyBSZWFkIGZyb20gdGhlIGdlc2RlbSBzZXJ2aWNlIGFsbCBlcnJvcnMuXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZS52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAvLyBFcnJvcnMgZnJvbSBHZXNEZW0sIG9yIG5vdGhpbmdcbiAgICAgICAgICAgIG1hcChlcnJvcnMgPT4gZXJyb3JzLmZpbHRlcihleCA9PiBDQVBUQ0hBX0VSUk9SX05BTUUgPT09IGV4LmNvZGUpKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIEJpbmQgZXJyb3JzIHRvIHRoZSBjb21wb25lbnQsIGVpdGhlciBmcm9tIHRoZSBiYWNrZW5kIG9mIGZyb20gdGhpcyBjb21wb25lbnRcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgLy8gRXJyb3JzIGZyb20gZ2VzZGVtIG1hdGNoaW5nIHRoZSBuYW1lIG9mIHRoZSBjYXB0Y2hhLlxuICAgICAgICAgICAgbWF0Y2hpbmdHZXNkZW1FcnJvcnMsXG4gICAgICAgICAgICAvLyBNYW51YWwgZXJyb3JzXG4gICAgICAgICAgICB0aGlzLmVycm9yc1N1YmplY3RcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIE1lcmdlIHRoZSB0d28gZXJyb3JzIHNldHNcbiAgICAgICAgICAgIG1hcCgoW2dlc2RlbUVycm9ycywgbG9jYWxFcnJvcnNdKSA9PiBbXG4gICAgICAgICAgICAgICAgLi4uZ2VzZGVtRXJyb3JzLFxuICAgICAgICAgICAgICAgIC4uLmxvY2FsRXJyb3JzXG4gICAgICAgICAgICBdKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNob3VsZERpc3BsYXlPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBpc0Nvbm5lY3RlZE9ic2VydmFibGUgPSB0aGlzLnNlc3Npb25JbmZvLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChkYXRhID0+ICF0aGlzLnNlc3Npb25JbmZvLm5ldmVyQ29ubmVjdGVkICYmICEhZGF0YSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBoYXNCeXBhc3NFbmFibGVkT2JzZXJ2YWJsZSA9IHRoaXMuY2hlY2tCeXBhc3NQcm9wZXJ0eSgpLnBpcGUoXG4gICAgICAgICAgICBtYXAoYnlwYXNzID0+ICEhYnlwYXNzLnZhbHVlKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGhhc1JlZmVyZW5jZU9ic2VydmFibGUgPSBtZXJnZShcbiAgICAgICAgICAgIC8vIFRvIGhhdmUgYW4gaW5pdGlhbCB2YWx1ZS4gQ2FuIGJlIG51bGwgaWYgdGhlcmUgaXMgbm8gZm9ybS5cbiAgICAgICAgICAgIG9mKHRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UpLFxuICAgICAgICAgICAgLy8gUmVhZCB0aGUgZm9ybSBmcm9tIEdlc0RlbVxuICAgICAgICAgICAgdGhpcy5nZXNkZW1FdmVudFNlcnZpY2UuZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSgpXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICBmb3JtID0+XG4gICAgICAgICAgICAgICAgICAgICEhZm9ybSAmJlxuICAgICAgICAgICAgICAgICAgICAhIXRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UgJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEgJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgaXNDb25uZWN0ZWRPYnNlcnZhYmxlLFxuICAgICAgICAgICAgaGFzQnlwYXNzRW5hYmxlZE9ic2VydmFibGUsXG4gICAgICAgICAgICBoYXNSZWZlcmVuY2VPYnNlcnZhYmxlXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBUbyB3b3JrIGFyb3VuZCByYXBpZGx5IGNoYW5naW5nIG9ic2VydmFibGVzLCBzdWNoIGFzIHRoZSBmb3JtXG4gICAgICAgICAgICAvLyB3aGVuIHRoZSBwYWdlIGxvYWRzLlxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDApLFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIChbaXNDb25uZWN0ZWQsIGhhc0J5cGFzc0VuYWJsZWQsIGhhc1JlZmVyZW5jZV0pID0+XG4gICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBkaXNwbGF5IHRoZSBjYXB0Y2hhIGlmIHRoZSB1c2VyIGlzIGNvbm5lY3RlZCwgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgaGFzIGEgcmVmZXJlbmNlIG9yIGlmIHRoZSBieXBhc3MgaXMgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICAgICAgIWlzQ29ubmVjdGVkICYmICFoYXNCeXBhc3NFbmFibGVkICYmICFoYXNSZWZlcmVuY2VcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgY2hlY2tCeXBhc3NQcm9wZXJ0eSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSAhIXRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMucmVDYXB0Y2hhQnlQYXNzVVVJRFxuICAgICAgICAgICAgPyBuZXcgSHR0cFBhcmFtcygpLnNldChcbiAgICAgICAgICAgICAgICAgICdyZUNhcHRjaGFCeVBhc3NVVUlEJyxcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMucmVDYXB0Y2hhQnlQYXNzVVVJRFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7UkVDQVBUQ0hBX0FQSV9VUkx9L2J5cGFzc2AsIHsgcGFyYW1zIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFB1YmxpY0tleU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZS5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoYXBwbGljYXRpb25JbmZvID0+IHRoaXMuZ2V0UHVibGljS2V5T3JOdWxsKGFwcGxpY2F0aW9uSW5mbykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQdWJsaWNLZXlPck51bGwoXG4gICAgICAgIGFwcGxpY2F0aW9uSW5mbzogQXBwbGljYXRpb25JbmZvXG4gICAgKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIC8vIFJlcGxhY2UgdGhpcyB3aG9sZSBzaGVuYW5pZ2FuIHdpdGggYXBwbGljYXRpb25JbmZvPy5jb25maWd1cmF0aW9uPy5jYXB0Y2hhPy5wdWJsaWNrZXkgd2hlblxuICAgICAgICAvLyBUeXBlc2NyaXB0IHN1cHBvcnRzIGl0LlxuICAgICAgICBpZiAoIWFwcGxpY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGNvbmZpZ3VyYXRpb24gfSA9IGFwcGxpY2F0aW9uSW5mbztcblxuICAgICAgICBpZiAoIWNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY2FwdGNoYSB9ID0gY29uZmlndXJhdGlvbjtcblxuICAgICAgICBpZiAoIWNhcHRjaGEpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhcHRjaGEucHVibGlja2V5IHx8IG51bGw7XG4gICAgfVxufVxuIl19