@dsivd/prestations-ng 17.10.9 → 18.0.0-beta.10
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.
- package/CHANGELOG.md +2478 -2466
- package/CONTRIBUTING.md +66 -66
- package/ESLINT_MIGRATION_GUIDE.md +19 -33
- package/MODULES.md +88 -88
- package/MULTI_ETAPES.md +9 -9
- package/README.md +25 -24
- package/README_COMMON.md +10 -10
- package/UPGRADING_V12.md +36 -36
- package/UPGRADING_V13.md +3 -3
- package/UPGRADING_V14.md +2 -2
- package/UPGRADING_V15.md +4 -4
- package/UPGRADING_V16.md +38 -38
- package/UPGRADING_V17.md +51 -51
- package/UPGRADING_V18.md +596 -8
- package/UPGRADING_V8.md +5 -5
- package/abstract-page-component.d.ts +1 -1
- package/dsivd-prestations-ng-18.0.0-beta.10.tgz +0 -0
- package/fesm2022/dsivd-prestations-ng.mjs +903 -868
- package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-checkables/foehn-checkable-group.component.d.ts +1 -1
- package/foehn-checkables/foehn-checkables.module.d.ts +6 -7
- package/foehn-date-picker/date-picker.helper.d.ts +1 -1
- package/foehn-icons/abstract-icon-component.d.ts +1 -1
- package/foehn-input/foehn-input-string.component.d.ts +1 -1
- package/foehn-input/foehn-input.component.d.ts +1 -1
- package/foehn-menu-prestation/abstract-list-item-detail-page.component.d.ts +1 -1
- package/foehn-menu-prestation/abstract-menu-page.component.d.ts +1 -1
- package/foehn-menu-prestation/abstract-page-from-menu.component.d.ts +1 -1
- package/foehn-navigation/abstract-foehn-navigation.component.d.ts +1 -1
- package/foehn-table/foehn-table.component.d.ts +1 -6
- package/foehn-upload/abstract-foehn-uploader.component.d.ts +1 -2
- package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +1 -3
- package/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.d.ts +1 -1
- package/index.d.ts +1 -1
- package/index.html +1 -1
- package/package.json +15 -17
- package/prestations-ng-core.module.d.ts +5 -4
- package/sdk-appinfo/application-info.service.d.ts +1 -0
- package/sdk-drafts/drafts.module.d.ts +7 -8
- package/sdk-support-alert/support-alert.module.d.ts +2 -3
- package/dsivd-prestations-ng-17.10.9.tgz +0 -0
- package/esm2022/abstract-page-component.mjs +0 -232
- package/esm2022/directives/currency-formatter.directive.mjs +0 -143
- package/esm2022/directives/formatter.module.mjs +0 -37
- package/esm2022/directives/iban-formatter.directive.mjs +0 -29
- package/esm2022/directives/ide-formatter.directive.mjs +0 -37
- package/esm2022/directives/ndc-formatter.directive.mjs +0 -75
- package/esm2022/dsivd-prestations-ng.mjs +0 -5
- package/esm2022/foehn-address/address.type.mjs +0 -10
- package/esm2022/foehn-address/foehn-address.module.mjs +0 -55
- package/esm2022/foehn-address/foehn-display-address.component.mjs +0 -69
- package/esm2022/foehn-address/foehn-input-address.component.mjs +0 -498
- package/esm2022/foehn-address/foehn-input-foreign-locality.component.mjs +0 -66
- package/esm2022/foehn-address/foehn-input-foreign-street.component.mjs +0 -56
- package/esm2022/foehn-agenda/calendar.type.mjs +0 -3
- package/esm2022/foehn-agenda/current-week.type.mjs +0 -4
- package/esm2022/foehn-agenda/day-slots.type.mjs +0 -3
- package/esm2022/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.mjs +0 -75
- package/esm2022/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.mjs +0 -242
- package/esm2022/foehn-agenda/foehn-agenda.component.mjs +0 -95
- package/esm2022/foehn-agenda/foehn-agenda.module.mjs +0 -62
- package/esm2022/foehn-agenda/pagination-week.type.mjs +0 -3
- package/esm2022/foehn-agenda/selected-slot.type.mjs +0 -3
- package/esm2022/foehn-autocomplete/foehn-autocomplete.component.mjs +0 -684
- package/esm2022/foehn-autocomplete/foehn-autocomplete.module.mjs +0 -40
- package/esm2022/foehn-boolean/foehn-boolean-checkbox.component.mjs +0 -28
- package/esm2022/foehn-boolean/foehn-boolean-radio.component.mjs +0 -40
- package/esm2022/foehn-boolean/foehn-boolean.module.mjs +0 -33
- package/esm2022/foehn-breadcrumb/breadcrumb-event.service.mjs +0 -177
- package/esm2022/foehn-breadcrumb/breadcrumb.mjs +0 -5
- package/esm2022/foehn-breadcrumb/foehn-breadcrumb.component.mjs +0 -106
- package/esm2022/foehn-breadcrumb/foehn-breadcrumb.module.mjs +0 -20
- package/esm2022/foehn-checkables/foehn-checkable-group.component.mjs +0 -291
- package/esm2022/foehn-checkables/foehn-checkables.module.mjs +0 -68
- package/esm2022/foehn-checkables/foehn-checkbox.component.mjs +0 -37
- package/esm2022/foehn-checkables/foehn-radio.component.mjs +0 -64
- package/esm2022/foehn-checkables/foehn-select.component.mjs +0 -55
- package/esm2022/foehn-checkables/form-select-option-group.mjs +0 -3
- package/esm2022/foehn-checkables/form-select-option.mjs +0 -3
- package/esm2022/foehn-confirm-modal/foehn-confirm-modal-content.mjs +0 -7
- package/esm2022/foehn-confirm-modal/foehn-confirm-modal.component.mjs +0 -40
- package/esm2022/foehn-confirm-modal/foehn-confirm-modal.module.mjs +0 -19
- package/esm2022/foehn-confirm-modal/foehn-confirm-modal.service.mjs +0 -53
- package/esm2022/foehn-date-picker/date-picker-navigation.helper.mjs +0 -168
- package/esm2022/foehn-date-picker/date-picker.helper.mjs +0 -132
- package/esm2022/foehn-date-picker/day-month.type.mjs +0 -3
- package/esm2022/foehn-date-picker/focused-day.type.mjs +0 -3
- package/esm2022/foehn-date-picker/foehn-date-picker.component.mjs +0 -392
- package/esm2022/foehn-date-picker/foehn-date-picker.module.mjs +0 -40
- package/esm2022/foehn-date-picker/month-year.type.mjs +0 -3
- package/esm2022/foehn-date-picker-button/foehn-date-picker-button.component.mjs +0 -97
- package/esm2022/foehn-date-picker-button/foehn-date-picker-button.module.mjs +0 -36
- package/esm2022/foehn-debug-summary/foehn-debug-summary.component.mjs +0 -84
- package/esm2022/foehn-debug-summary/foehn-debug-summary.component.module.mjs +0 -20
- package/esm2022/foehn-decision-electronique/foehn-decision-electronique.component.mjs +0 -37
- package/esm2022/foehn-decision-electronique/foehn-decision-electronique.module.mjs +0 -32
- package/esm2022/foehn-dropdown-menu/dropdown-menu-group.type.mjs +0 -3
- package/esm2022/foehn-dropdown-menu/dropdown-menu-item.type.mjs +0 -6
- package/esm2022/foehn-dropdown-menu/foehn-dropdown-menu.component.mjs +0 -212
- package/esm2022/foehn-dropdown-menu/foehn-dropdown-menu.module.mjs +0 -21
- package/esm2022/foehn-feedback-notification/foehn-feedback-notification.component.mjs +0 -113
- package/esm2022/foehn-feedback-notification/foehn-feedback-notification.module.mjs +0 -32
- package/esm2022/foehn-feedback-notification/foehn-feedback-notification.type.mjs +0 -3
- package/esm2022/foehn-footer/foehn-footer.component.mjs +0 -130
- package/esm2022/foehn-footer/foehn-footer.module.mjs +0 -19
- package/esm2022/foehn-footer/footer-link.type.mjs +0 -3
- package/esm2022/foehn-form/foehn-form.component.mjs +0 -136
- package/esm2022/foehn-form/foehn-form.module.mjs +0 -32
- package/esm2022/foehn-form/register-ng-model.service.mjs +0 -23
- package/esm2022/foehn-growl/foehn-growl.component.mjs +0 -45
- package/esm2022/foehn-growl/foehn-growl.module.mjs +0 -18
- package/esm2022/foehn-growl/growl-broker.service.mjs +0 -37
- package/esm2022/foehn-growl/growl-message.mjs +0 -9
- package/esm2022/foehn-growl/growl-types.mjs +0 -7
- package/esm2022/foehn-header/foehn-header.component.mjs +0 -159
- package/esm2022/foehn-header/foehn-header.module.mjs +0 -40
- package/esm2022/foehn-header/foehn-skip-link.component.mjs +0 -51
- package/esm2022/foehn-help-modal/foehn-help-modal.component.mjs +0 -44
- package/esm2022/foehn-help-modal/foehn-help-modal.module.mjs +0 -20
- package/esm2022/foehn-help-modal/foehn-help-modal.type.mjs +0 -2
- package/esm2022/foehn-icons/abstract-icon-component.mjs +0 -12
- package/esm2022/foehn-icons/foehn-icon-calendar.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-check-square-o.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-check.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-chevron-down.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-chevron-left.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-chevron-right.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-chevron-up.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-clock.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-comment-dots.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-edit.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-external-link-alt.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-file-pdf.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-info-circle.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-lock.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-map-marker.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-minus-circle.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-pencil.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-plus-circle.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-plus-square.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-search.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-times.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-trash-alt.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-unlock-alt.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-user.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icons.module.mjs +0 -139
- package/esm2022/foehn-input/foehn-input-email.component.mjs +0 -74
- package/esm2022/foehn-input/foehn-input-hidden.component.mjs +0 -54
- package/esm2022/foehn-input/foehn-input-number.component.mjs +0 -319
- package/esm2022/foehn-input/foehn-input-password.component.mjs +0 -51
- package/esm2022/foehn-input/foehn-input-phone.component.mjs +0 -99
- package/esm2022/foehn-input/foehn-input-prefixed-text.component.mjs +0 -116
- package/esm2022/foehn-input/foehn-input-string.component.mjs +0 -27
- package/esm2022/foehn-input/foehn-input-text.component.mjs +0 -69
- package/esm2022/foehn-input/foehn-input-textarea.component.mjs +0 -97
- package/esm2022/foehn-input/foehn-input.component.mjs +0 -418
- package/esm2022/foehn-input/foehn-input.module.mjs +0 -98
- package/esm2022/foehn-input/pattern.const.mjs +0 -16
- package/esm2022/foehn-input-date/foehn-input-date.component.mjs +0 -163
- package/esm2022/foehn-input-date-time/foehn-input-date-time.component.mjs +0 -201
- package/esm2022/foehn-input-time/foehn-input-time.component.mjs +0 -89
- package/esm2022/foehn-list/foehn-list.component.mjs +0 -127
- package/esm2022/foehn-list/foehn-list.module.mjs +0 -19
- package/esm2022/foehn-list/page-change-event.mjs +0 -3
- package/esm2022/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +0 -122
- package/esm2022/foehn-menu-prestation/abstract-menu-page.component.mjs +0 -31
- package/esm2022/foehn-menu-prestation/abstract-page-from-menu.component.mjs +0 -87
- package/esm2022/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs +0 -25
- package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.mjs +0 -2
- package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-item.mjs +0 -3
- package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +0 -161
- package/esm2022/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +0 -38
- package/esm2022/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs +0 -58
- package/esm2022/foehn-menu-prestation/foehn-menu-prestation.module.mjs +0 -67
- package/esm2022/foehn-misc/foehn-abbr.component.mjs +0 -15
- package/esm2022/foehn-misc/foehn-misc.module.mjs +0 -17
- package/esm2022/foehn-modal/foehn-modal.component.mjs +0 -94
- package/esm2022/foehn-modal/foehn-modal.module.mjs +0 -21
- package/esm2022/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +0 -287
- package/esm2022/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.mjs +0 -40
- package/esm2022/foehn-nav13/foehn-input-nav13.component.mjs +0 -114
- package/esm2022/foehn-nav13/foehn-input-nav13.module.mjs +0 -32
- package/esm2022/foehn-navigation/abstract-foehn-navigation.component.mjs +0 -55
- package/esm2022/foehn-navigation/foehn-navigation/foehn-navigation.component.mjs +0 -67
- package/esm2022/foehn-navigation/foehn-navigation.module.mjs +0 -37
- package/esm2022/foehn-navigation/foehn-navigation.service.mjs +0 -322
- package/esm2022/foehn-navigation/foehn-simple-navigation/foehn-simple-navigation.component.mjs +0 -26
- package/esm2022/foehn-notfound/foehn-notfound.component.mjs +0 -61
- package/esm2022/foehn-notfound/foehn-notfound.module.mjs +0 -20
- package/esm2022/foehn-page/foehn-page-counter.component.mjs +0 -31
- package/esm2022/foehn-page/foehn-page-expiration-timer/current-session-expiration.mjs +0 -3
- package/esm2022/foehn-page/foehn-page-expiration-timer/demande-expiration-interceptor.mjs +0 -68
- package/esm2022/foehn-page/foehn-page-expiration-timer/demande-expiration.service.mjs +0 -53
- package/esm2022/foehn-page/foehn-page-expiration-timer/foehn-page-expiration-timer.component.mjs +0 -175
- package/esm2022/foehn-page/foehn-page-expiration-timer/interval.helper.mjs +0 -29
- package/esm2022/foehn-page/foehn-page-modal.component.mjs +0 -54
- package/esm2022/foehn-page/foehn-page-modal.service.mjs +0 -38
- package/esm2022/foehn-page/foehn-page.component.mjs +0 -223
- package/esm2022/foehn-page/foehn-page.module.mjs +0 -101
- package/esm2022/foehn-page/foehn-page.service.mjs +0 -54
- package/esm2022/foehn-page/foehn-transmit-waiting-modal/demande-transmit-interceptor.mjs +0 -52
- package/esm2022/foehn-page/foehn-transmit-waiting-modal/foehn-transmit-waiting-modal.component.mjs +0 -23
- package/esm2022/foehn-page/foehn-transmit-waiting-modal/foehn-transmit-waiting-modal.service.mjs +0 -32
- package/esm2022/foehn-recap-section/foehn-recap-section.component.mjs +0 -98
- package/esm2022/foehn-recap-section/foehn-recap-section.module.mjs +0 -20
- package/esm2022/foehn-recap-section/foehn-recap-section.type.mjs +0 -2
- package/esm2022/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.mjs +0 -50
- package/esm2022/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs +0 -18
- package/esm2022/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +0 -56
- package/esm2022/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs +0 -20
- package/esm2022/foehn-table/foehn-table-column-configuration.mjs +0 -3
- package/esm2022/foehn-table/foehn-table-page-change-event.mjs +0 -3
- package/esm2022/foehn-table/foehn-table.component.mjs +0 -190
- package/esm2022/foehn-table/foehn-table.module.mjs +0 -40
- package/esm2022/foehn-table/row-element.type.mjs +0 -3
- package/esm2022/foehn-table/tableSort.mjs +0 -3
- package/esm2022/foehn-upload/abstract-foehn-uploader.component.mjs +0 -242
- package/esm2022/foehn-upload/document-reference.mjs +0 -6
- package/esm2022/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs +0 -116
- package/esm2022/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.mjs +0 -6
- package/esm2022/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +0 -199
- package/esm2022/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs +0 -40
- package/esm2022/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +0 -250
- package/esm2022/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs +0 -40
- package/esm2022/foehn-upload/foehn-multi-upload/multi-upload.service.mjs +0 -125
- package/esm2022/foehn-upload/foehn-multi-upload/multi-upload.type.mjs +0 -6
- package/esm2022/foehn-upload/foehn-multi-upload/pending-upload.service.mjs +0 -163
- package/esm2022/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +0 -178
- package/esm2022/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs +0 -44
- package/esm2022/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.component.mjs +0 -83
- package/esm2022/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.module.mjs +0 -21
- package/esm2022/foehn-upload/foehn-upload-progress-bar/upload-progress.service.mjs +0 -66
- package/esm2022/foehn-upload/foehn-upload-progress-bar/upload-progress.type.mjs +0 -7
- package/esm2022/foehn-upload/page-upload-limit.service.mjs +0 -80
- package/esm2022/foehn-upload/pending-upload.type.mjs +0 -3
- package/esm2022/foehn-upload/uploader.helper.mjs +0 -329
- package/esm2022/foehn-user-connected-as/foehn-user-connected-as.component.mjs +0 -21
- package/esm2022/foehn-user-connected-as/foehn-user-connected-as.module.mjs +0 -19
- package/esm2022/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs +0 -96
- package/esm2022/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs +0 -19
- package/esm2022/foehn-validation-alerts/foehn-validation-alerts.component.mjs +0 -29
- package/esm2022/foehn-validation-alerts/foehn-validation-alerts.module.mjs +0 -18
- package/esm2022/form-error.mjs +0 -2
- package/esm2022/form-post-response.mjs +0 -10
- package/esm2022/gesdem/gesdem-error-handler.service.mjs +0 -85
- package/esm2022/gesdem/gesdem-event.service.mjs +0 -38
- package/esm2022/gesdem/gesdem-handler.service.mjs +0 -201
- package/esm2022/gesdem/gesdem-loader.guard.mjs +0 -25
- package/esm2022/gesdem/gesdem-statut-utils.mjs +0 -25
- package/esm2022/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs +0 -170
- package/esm2022/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +0 -227
- package/esm2022/gesdem-action-recovery/gesdem-action-recovery.module.mjs +0 -62
- package/esm2022/gesdem-action-recovery/gesdem-action-recovery.service.mjs +0 -97
- package/esm2022/gesdem-action-recovery/reprise-info.mjs +0 -4
- package/esm2022/gesdem-confirmation/gesdem-confirmation.component.mjs +0 -241
- package/esm2022/gesdem-confirmation/gesdem-confirmation.module.mjs +0 -36
- package/esm2022/gesdem-error/gesdem-error.component.mjs +0 -96
- package/esm2022/gesdem-error/gesdem-error.module.mjs +0 -36
- package/esm2022/global.const.mjs +0 -5
- package/esm2022/helpers/demande.helper.mjs +0 -19
- package/esm2022/helpers/object.helper.mjs +0 -124
- package/esm2022/i18n-form.mjs +0 -7
- package/esm2022/pipes/currency.pipe.mjs +0 -18
- package/esm2022/pipes/date.pipe.mjs +0 -43
- package/esm2022/pipes/formatIde.pipe.mjs +0 -22
- package/esm2022/pipes/pipes.module.mjs +0 -18
- package/esm2022/prestations-ng-core.module.mjs +0 -31
- package/esm2022/public_api.mjs +0 -288
- package/esm2022/refinf/model/address-type-light.mjs +0 -3
- package/esm2022/refinf/model/canton.mjs +0 -3
- package/esm2022/refinf/model/district.mjs +0 -3
- package/esm2022/refinf/model/municipality.mjs +0 -3
- package/esm2022/refinf/model/place-of-origin.mjs +0 -3
- package/esm2022/refinf/model/postal-locality.mjs +0 -3
- package/esm2022/sdk-appinfo/application-info.mjs +0 -22
- package/esm2022/sdk-appinfo/application-info.service.mjs +0 -146
- package/esm2022/sdk-currency/currency.helper.mjs +0 -34
- package/esm2022/sdk-date/date.helper.mjs +0 -109
- package/esm2022/sdk-dictionary/default-dictionary.mjs +0 -312
- package/esm2022/sdk-dictionary/sdk-dictionary.module.mjs +0 -16
- package/esm2022/sdk-dictionary/sdk-dictionary.pipe.mjs +0 -28
- package/esm2022/sdk-dictionary/sdk-dictionary.service.mjs +0 -122
- package/esm2022/sdk-drafts/draft.model.mjs +0 -2
- package/esm2022/sdk-drafts/drafts-container.component.mjs +0 -99
- package/esm2022/sdk-drafts/drafts.module.mjs +0 -47
- package/esm2022/sdk-drafts/drafts.service.mjs +0 -51
- package/esm2022/sdk-epayment/model/EPaymentParameters.mjs +0 -2
- package/esm2022/sdk-epayment/pending-payment/pending-payment.component.mjs +0 -24
- package/esm2022/sdk-epayment/sdk-epayment.component.mjs +0 -76
- package/esm2022/sdk-epayment/sdk-epayment.module.mjs +0 -23
- package/esm2022/sdk-epayment/sdk-epayment.service.mjs +0 -51
- package/esm2022/sdk-events-logger/sdk-event-type.mjs +0 -14
- package/esm2022/sdk-events-logger/sdk-event.mjs +0 -3
- package/esm2022/sdk-events-logger/sdk-events-logger.service.mjs +0 -43
- package/esm2022/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs +0 -113
- package/esm2022/sdk-recaptcha/recaptcha.service.mjs +0 -180
- package/esm2022/sdk-recaptcha/sdk-recaptcha.component.mjs +0 -75
- package/esm2022/sdk-recaptcha/sdk-recaptcha.module.mjs +0 -19
- package/esm2022/sdk-redirect/iam-expired-interceptor.service.mjs +0 -62
- package/esm2022/sdk-redirect/redirect.component.mjs +0 -55
- package/esm2022/sdk-redirect/sdk-redirect.module.mjs +0 -19
- package/esm2022/sdk-session-info/session-info-data.mjs +0 -6
- package/esm2022/sdk-session-info/session-info-with-application.service.mjs +0 -68
- package/esm2022/sdk-session-info/session-info.service.mjs +0 -50
- package/esm2022/sdk-statistics/sdk-statistics.service.mjs +0 -74
- package/esm2022/sdk-support-alert/support-alert-container.component.mjs +0 -49
- package/esm2022/sdk-support-alert/support-alert.component.mjs +0 -32
- package/esm2022/sdk-support-alert/support-alert.model.mjs +0 -7
- package/esm2022/sdk-support-alert/support-alert.module.mjs +0 -21
- package/esm2022/sdk-support-alert/support-alert.service.mjs +0 -139
- package/esm2022/service-locator.mjs +0 -4
- package/esm2022/supported-browser.mjs +0 -2
- package/esm2022/validation/validation-handler.service.mjs +0 -44
- /package/{public_api.d.ts → public-api.d.ts} +0 -0
|
@@ -1,23 +0,0 @@
|
|
|
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 { SdkDictionaryModule } from '../sdk-dictionary/sdk-dictionary.module';
|
|
6
|
-
import { PendingPaymentComponent } from './pending-payment/pending-payment.component';
|
|
7
|
-
import { SdkEpaymentComponent } from './sdk-epayment.component';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class SdkEpaymentModule {
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkEpaymentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SdkEpaymentModule, declarations: [SdkEpaymentComponent, PendingPaymentComponent], imports: [CommonModule, FoehnModalModule, SdkDictionaryModule], exports: [SdkEpaymentComponent, PendingPaymentComponent] }); }
|
|
12
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkEpaymentModule, providers: [GrowlBrokerService], imports: [CommonModule, FoehnModalModule, SdkDictionaryModule] }); }
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkEpaymentModule, decorators: [{
|
|
15
|
-
type: NgModule,
|
|
16
|
-
args: [{
|
|
17
|
-
imports: [CommonModule, FoehnModalModule, SdkDictionaryModule],
|
|
18
|
-
declarations: [SdkEpaymentComponent, PendingPaymentComponent],
|
|
19
|
-
providers: [GrowlBrokerService],
|
|
20
|
-
exports: [SdkEpaymentComponent, PendingPaymentComponent]
|
|
21
|
-
}]
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWVwYXltZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZXBheW1lbnQvc2RrLWVwYXltZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFRaEUsTUFBTSxPQUFPLGlCQUFpQjsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsaUJBSlgsb0JBQW9CLEVBQUUsdUJBQXVCLGFBRGxELFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsYUFHbkQsb0JBQW9CLEVBQUUsdUJBQXVCO2dIQUU5QyxpQkFBaUIsYUFIZixDQUFDLGtCQUFrQixDQUFDLFlBRnJCLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUI7OzRGQUtwRCxpQkFBaUI7a0JBTjdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDO29CQUM5RCxZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSx1QkFBdUIsQ0FBQztvQkFDN0QsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLHVCQUF1QixDQUFDO2lCQUMzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBHcm93bEJyb2tlclNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1ncm93bC9ncm93bC1icm9rZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGb2Vobk1vZGFsTW9kdWxlIH0gZnJvbSAnLi4vZm9laG4tbW9kYWwvZm9laG4tbW9kYWwubW9kdWxlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlNb2R1bGUgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5tb2R1bGUnO1xuaW1wb3J0IHsgUGVuZGluZ1BheW1lbnRDb21wb25lbnQgfSBmcm9tICcuL3BlbmRpbmctcGF5bWVudC9wZW5kaW5nLXBheW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNka0VwYXltZW50Q29tcG9uZW50IH0gZnJvbSAnLi9zZGstZXBheW1lbnQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb2Vobk1vZGFsTW9kdWxlLCBTZGtEaWN0aW9uYXJ5TW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtTZGtFcGF5bWVudENvbXBvbmVudCwgUGVuZGluZ1BheW1lbnRDb21wb25lbnRdLFxuICAgIHByb3ZpZGVyczogW0dyb3dsQnJva2VyU2VydmljZV0sXG4gICAgZXhwb3J0czogW1Nka0VwYXltZW50Q29tcG9uZW50LCBQZW5kaW5nUGF5bWVudENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgU2RrRXBheW1lbnRNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
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
|
-
* @param ref La référence de la demande en cours
|
|
17
|
-
* @param baseUrl L'url de base (optionnelle)
|
|
18
|
-
* @returns la page de paiement sur laquelle rediriger l'utilisateur
|
|
19
|
-
*/
|
|
20
|
-
createPendingPayment(ref, baseUrl) {
|
|
21
|
-
return this.http
|
|
22
|
-
.post(`${baseUrl}epayment/prepare/${ref}`, null, {
|
|
23
|
-
responseType: 'text'
|
|
24
|
-
})
|
|
25
|
-
.pipe(catchError(() => {
|
|
26
|
-
this.growlService.addWithType(GrowlType.DANGER, 'Une erreur de transmission est survenue. Merci de réessayer plus tard.');
|
|
27
|
-
this.cancelPendingPayment(ref, baseUrl);
|
|
28
|
-
throw new Error();
|
|
29
|
-
}));
|
|
30
|
-
}
|
|
31
|
-
cancelPendingPayment(ref, baseUrl) {
|
|
32
|
-
const url = `${baseUrl}epayment/cancel/${ref}`;
|
|
33
|
-
this.http
|
|
34
|
-
.post(url, null)
|
|
35
|
-
.pipe(catchError(() => this.handleError()))
|
|
36
|
-
.subscribe();
|
|
37
|
-
}
|
|
38
|
-
handleError() {
|
|
39
|
-
this.growlService.addWithType(GrowlType.DANGER, 'Une erreur de transmission est survenue. Merci de réessayer plus tard.');
|
|
40
|
-
return of(null);
|
|
41
|
-
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EPaymentService, deps: [{ token: i1.HttpClient }, { token: i2.GrowlBrokerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EPaymentService, providedIn: 'root' }); }
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EPaymentService, decorators: [{
|
|
46
|
-
type: Injectable,
|
|
47
|
-
args: [{
|
|
48
|
-
providedIn: 'root'
|
|
49
|
-
}]
|
|
50
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GrowlBrokerService }] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWVwYXltZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLWVwYXltZW50L3Nkay1lcGF5bWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBTXZELE1BQU0sT0FBTyxlQUFlO0lBQ3hCLFlBQ1ksSUFBZ0IsRUFDaEIsWUFBZ0M7UUFEaEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7SUFDekMsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNILG9CQUFvQixDQUFDLEdBQVcsRUFBRSxPQUFlO1FBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxJQUFJLENBQUMsR0FBRyxPQUFPLG9CQUFvQixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDN0MsWUFBWSxFQUFFLE1BQWU7U0FDaEMsQ0FBQzthQUNELElBQUksQ0FDRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQ3pCLFNBQVMsQ0FBQyxNQUFNLEVBQ2hCLHdFQUF3RSxDQUMzRSxDQUFDO1lBQ0YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxHQUFXLEVBQUUsT0FBZTtRQUM3QyxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJO2FBQ0osSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7YUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2FBQzFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQ3pCLFNBQVMsQ0FBQyxNQUFNLEVBQ2hCLHdFQUF3RSxDQUMzRSxDQUFDO1FBQ0YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQzsrR0E1Q1EsZUFBZTttSEFBZixlQUFlLGNBRlosTUFBTTs7NEZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEdyb3dsQnJva2VyU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLWdyb3dsL2dyb3dsLWJyb2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IEdyb3dsVHlwZSB9IGZyb20gJy4uL2ZvZWhuLWdyb3dsL2dyb3dsLXR5cGVzJztcbmltcG9ydCB7IEVQYXltZW50UGFyYW1ldGVycyB9IGZyb20gJy4vbW9kZWwvRVBheW1lbnRQYXJhbWV0ZXJzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFUGF5bWVudFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xTZXJ2aWNlOiBHcm93bEJyb2tlclNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiBFZmZlY3R1ZXIgdW5lIHJlcXXDqnRlIGRlIHByw6lwYXJhdGlvbiBkdSBwYWllbWVudCBhdXByw6hzIGR1IGJhY2tlbmQsIGV0IG9idGVuaXIgbGVzIHBhcmFtw6h0cmVzIGRlIGZvcm11bGFpcmVcbiAgICAgKiBlbiB2dWUgZHUgcGFzc2FnZSBzdXIgbGEgcGxhdGVmb3JtZSBkZSBwYWllbWVudCDDqWxlY3Ryb25pcXVlLlxuICAgICAqIEBwYXJhbSByZWYgTGEgcsOpZsOpcmVuY2UgZGUgbGEgZGVtYW5kZSBlbiBjb3Vyc1xuICAgICAqIEBwYXJhbSBiYXNlVXJsIEwndXJsIGRlIGJhc2UgKG9wdGlvbm5lbGxlKVxuICAgICAqIEByZXR1cm5zIGxhIHBhZ2UgZGUgcGFpZW1lbnQgc3VyIGxhcXVlbGxlIHJlZGlyaWdlciBsJ3V0aWxpc2F0ZXVyXG4gICAgICovXG4gICAgY3JlYXRlUGVuZGluZ1BheW1lbnQocmVmOiBzdHJpbmcsIGJhc2VVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGAke2Jhc2VVcmx9ZXBheW1lbnQvcHJlcGFyZS8ke3JlZn1gLCBudWxsLCB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcgYXMgY29uc3RcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm93bFNlcnZpY2UuYWRkV2l0aFR5cGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBHcm93bFR5cGUuREFOR0VSLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1VuZSBlcnJldXIgZGUgdHJhbnNtaXNzaW9uIGVzdCBzdXJ2ZW51ZS4gTWVyY2kgZGUgcsOpZXNzYXllciBwbHVzIHRhcmQuJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbFBlbmRpbmdQYXltZW50KHJlZiwgYmFzZVVybCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIGNhbmNlbFBlbmRpbmdQYXltZW50KHJlZjogc3RyaW5nLCBiYXNlVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YmFzZVVybH1lcGF5bWVudC9jYW5jZWwvJHtyZWZ9YDtcbiAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh1cmwsIG51bGwpXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IHRoaXMuaGFuZGxlRXJyb3IoKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcigpOiBPYnNlcnZhYmxlPEVQYXltZW50UGFyYW1ldGVycz4ge1xuICAgICAgICB0aGlzLmdyb3dsU2VydmljZS5hZGRXaXRoVHlwZShcbiAgICAgICAgICAgIEdyb3dsVHlwZS5EQU5HRVIsXG4gICAgICAgICAgICAnVW5lIGVycmV1ciBkZSB0cmFuc21pc3Npb24gZXN0IHN1cnZlbnVlLiBNZXJjaSBkZSByw6llc3NheWVyIHBsdXMgdGFyZC4nXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export var SdkEventType;
|
|
2
|
-
(function (SdkEventType) {
|
|
3
|
-
SdkEventType["PDF_RECAP_DOWNLOAD"] = "PDF_RECAP_DOWNLOAD";
|
|
4
|
-
SdkEventType["RECOVERY_MODAL_OPENED"] = "RECOVERY_MODAL_OPENED";
|
|
5
|
-
SdkEventType["RECOVERY_REGISTERED"] = "RECOVERY_REGISTERED";
|
|
6
|
-
SdkEventType["RECOVERY_LOGIN_STARTED"] = "RECOVERY_LOGIN_STARTED";
|
|
7
|
-
SdkEventType["RECOVERY_LOGIN_SUCCESS"] = "RECOVERY_LOGIN_SUCCESS";
|
|
8
|
-
SdkEventType["RECOVERY_LOGIN_FAILED"] = "RECOVERY_LOGIN_FAILED";
|
|
9
|
-
SdkEventType["NAVIGATION_FORWARD"] = "NAVIGATION_FORWARD";
|
|
10
|
-
SdkEventType["NAVIGATION_BACKWARD"] = "NAVIGATION_BACKWARD";
|
|
11
|
-
SdkEventType["TRANSMIT"] = "TRANSMIT";
|
|
12
|
-
SdkEventType["BREADCRUMB_CLICK"] = "BREADCRUMB_CLICK";
|
|
13
|
-
})(SdkEventType || (SdkEventType = {}));
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWV2ZW50LXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50LXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksWUFXWDtBQVhELFdBQVksWUFBWTtJQUNwQix5REFBeUMsQ0FBQTtJQUN6QywrREFBK0MsQ0FBQTtJQUMvQywyREFBMkMsQ0FBQTtJQUMzQyxpRUFBaUQsQ0FBQTtJQUNqRCxpRUFBaUQsQ0FBQTtJQUNqRCwrREFBK0MsQ0FBQTtJQUMvQyx5REFBeUMsQ0FBQTtJQUN6QywyREFBMkMsQ0FBQTtJQUMzQyxxQ0FBcUIsQ0FBQTtJQUNyQixxREFBcUMsQ0FBQTtBQUN6QyxDQUFDLEVBWFcsWUFBWSxLQUFaLFlBQVksUUFXdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTZGtFdmVudFR5cGUge1xuICAgIFBERl9SRUNBUF9ET1dOTE9BRCA9ICdQREZfUkVDQVBfRE9XTkxPQUQnLFxuICAgIFJFQ09WRVJZX01PREFMX09QRU5FRCA9ICdSRUNPVkVSWV9NT0RBTF9PUEVORUQnLFxuICAgIFJFQ09WRVJZX1JFR0lTVEVSRUQgPSAnUkVDT1ZFUllfUkVHSVNURVJFRCcsXG4gICAgUkVDT1ZFUllfTE9HSU5fU1RBUlRFRCA9ICdSRUNPVkVSWV9MT0dJTl9TVEFSVEVEJyxcbiAgICBSRUNPVkVSWV9MT0dJTl9TVUNDRVNTID0gJ1JFQ09WRVJZX0xPR0lOX1NVQ0NFU1MnLFxuICAgIFJFQ09WRVJZX0xPR0lOX0ZBSUxFRCA9ICdSRUNPVkVSWV9MT0dJTl9GQUlMRUQnLFxuICAgIE5BVklHQVRJT05fRk9SV0FSRCA9ICdOQVZJR0FUSU9OX0ZPUldBUkQnLFxuICAgIE5BVklHQVRJT05fQkFDS1dBUkQgPSAnTkFWSUdBVElPTl9CQUNLV0FSRCcsXG4gICAgVFJBTlNNSVQgPSAnVFJBTlNNSVQnLFxuICAgIEJSRUFEQ1JVTUJfQ0xJQ0sgPSAnQlJFQURDUlVNQl9DTElDSydcbn1cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export class SdkEvent {
|
|
2
|
-
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1ldmVudHMtbG9nZ2VyL3Nkay1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sUUFBUTtDQU1wQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNka0V2ZW50VHlwZSB9IGZyb20gJy4vc2RrLWV2ZW50LXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgU2RrRXZlbnQge1xuICAgIHRpbWVzdGFtcDogRGF0ZTtcbiAgICByZWZlcmVuY2U6IHN0cmluZztcbiAgICBzZXNzaW9uSW5mb0NvbnRleHQ/OiBzdHJpbmc7XG4gICAgdHlwZTogU2RrRXZlbnRUeXBlIHwgc3RyaW5nO1xuICAgIGRldGFpbD86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { first } from 'rxjs/operators';
|
|
4
|
-
import { DemandeHelper } from '../helpers/demande.helper';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/router";
|
|
7
|
-
import * as i2 from "../gesdem/gesdem-handler.service";
|
|
8
|
-
import * as i3 from "../sdk-session-info/session-info.service";
|
|
9
|
-
export class SdkEventsLoggerService {
|
|
10
|
-
constructor(activatedRoute, gesdemService, sessionInfo) {
|
|
11
|
-
this.activatedRoute = activatedRoute;
|
|
12
|
-
this.gesdemService = gesdemService;
|
|
13
|
-
this.sessionInfo = sessionInfo;
|
|
14
|
-
this._events = new Subject();
|
|
15
|
-
}
|
|
16
|
-
get events() {
|
|
17
|
-
return this._events.asObservable();
|
|
18
|
-
}
|
|
19
|
-
addEvent(type, detail) {
|
|
20
|
-
const timestamp = new Date();
|
|
21
|
-
const reference = DemandeHelper.getSafeReference(this.activatedRoute.snapshot.params.reference) ||
|
|
22
|
-
DemandeHelper.getSafeReference(this.gesdemService.lastResponse?.meta?.reference);
|
|
23
|
-
this.sessionInfo.data.pipe(first()).subscribe(sessionInfoData => {
|
|
24
|
-
const event = {
|
|
25
|
-
timestamp,
|
|
26
|
-
reference,
|
|
27
|
-
sessionInfoContext: sessionInfoData?.context || null,
|
|
28
|
-
type,
|
|
29
|
-
detail: detail || null
|
|
30
|
-
};
|
|
31
|
-
this._events.next(event);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkEventsLoggerService, deps: [{ token: i1.ActivatedRoute }, { token: i2.GesdemHandlerService }, { token: i3.SessionInfo }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkEventsLoggerService, providedIn: 'root' }); }
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkEventsLoggerService, decorators: [{
|
|
38
|
-
type: Injectable,
|
|
39
|
-
args: [{
|
|
40
|
-
providedIn: 'root'
|
|
41
|
-
}]
|
|
42
|
-
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.GesdemHandlerService }, { type: i3.SessionInfo }] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWV2ZW50cy1sb2dnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZXZlbnRzLWxvZ2dlci9zZGstZXZlbnRzLWxvZ2dlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQVExRCxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQ1ksY0FBOEIsRUFDOUIsYUFBbUMsRUFDbkMsV0FBd0I7UUFGeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUw1QixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVksQ0FBQztJQU12QyxDQUFDO0lBRUosSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBMkIsRUFBRSxNQUFlO1FBQ2pELE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFN0IsTUFBTSxTQUFTLEdBQ1gsYUFBYSxDQUFDLGdCQUFnQixDQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUNoRDtZQUNELGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FDbkQsQ0FBQztRQUVOLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUM1RCxNQUFNLEtBQUssR0FBYTtnQkFDcEIsU0FBUztnQkFDVCxTQUFTO2dCQUNULGtCQUFrQixFQUFFLGVBQWUsRUFBRSxPQUFPLElBQUksSUFBSTtnQkFDcEQsSUFBSTtnQkFDSixNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUk7YUFDekIsQ0FBQztZQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FuQ1Esc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IERlbWFuZGVIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL2RlbWFuZGUuaGVscGVyJztcbmltcG9ydCB7IFNka0V2ZW50IH0gZnJvbSAnLi4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50JztcbmltcG9ydCB7IFNka0V2ZW50VHlwZSB9IGZyb20gJy4uL3Nkay1ldmVudHMtbG9nZ2VyL3Nkay1ldmVudC10eXBlJztcbmltcG9ydCB7IFNlc3Npb25JbmZvIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2RrRXZlbnRzTG9nZ2VyU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfZXZlbnRzID0gbmV3IFN1YmplY3Q8U2RrRXZlbnQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtU2VydmljZTogR2VzZGVtSGFuZGxlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbkluZm86IFNlc3Npb25JbmZvXG4gICAgKSB7fVxuXG4gICAgZ2V0IGV2ZW50cygpOiBPYnNlcnZhYmxlPFNka0V2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ldmVudHMuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgYWRkRXZlbnQodHlwZTogU2RrRXZlbnRUeXBlIHwgc3RyaW5nLCBkZXRhaWw/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gbmV3IERhdGUoKTtcblxuICAgICAgICBjb25zdCByZWZlcmVuY2UgPVxuICAgICAgICAgICAgRGVtYW5kZUhlbHBlci5nZXRTYWZlUmVmZXJlbmNlKFxuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zLnJlZmVyZW5jZVxuICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgRGVtYW5kZUhlbHBlci5nZXRTYWZlUmVmZXJlbmNlKFxuICAgICAgICAgICAgICAgIHRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2U/Lm1ldGE/LnJlZmVyZW5jZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNlc3Npb25JbmZvLmRhdGEucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoc2Vzc2lvbkluZm9EYXRhID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50OiBTZGtFdmVudCA9IHtcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXAsXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIHNlc3Npb25JbmZvQ29udGV4dDogc2Vzc2lvbkluZm9EYXRhPy5jb250ZXh0IHx8IG51bGwsXG4gICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IGRldGFpbCB8fCBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLl9ldmVudHMubmV4dChldmVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../recaptcha.service";
|
|
4
|
-
export const SCRIPT_ID = 'prestations-ng-captcha-script';
|
|
5
|
-
/**
|
|
6
|
-
* Integration with Google Recaptcha.
|
|
7
|
-
*
|
|
8
|
-
* All the quirks and weirdness of this integration should be done in this
|
|
9
|
-
* component.
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
export class GrecaptchaComponent {
|
|
13
|
-
constructor(recaptchaService) {
|
|
14
|
-
this.recaptchaService = recaptchaService;
|
|
15
|
-
this.loaded = new EventEmitter();
|
|
16
|
-
this.scriptError = new EventEmitter();
|
|
17
|
-
this.tokenOnSuccess = new EventEmitter();
|
|
18
|
-
this.destroyed = new EventEmitter();
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
// If the component is in the component tree, load the captcha regardless.
|
|
22
|
-
this.loadCaptcha();
|
|
23
|
-
}
|
|
24
|
-
ngOnDestroy() {
|
|
25
|
-
this.destroyed.emit(true);
|
|
26
|
-
this.removeScript();
|
|
27
|
-
}
|
|
28
|
-
reset() {
|
|
29
|
-
this.safeCaptchaReset();
|
|
30
|
-
this.tokenOnSuccess.emit(null);
|
|
31
|
-
}
|
|
32
|
-
renderCaptcha() {
|
|
33
|
-
if (!this.siteKey) {
|
|
34
|
-
throw new Error('Missing siteKey on the component');
|
|
35
|
-
}
|
|
36
|
-
if (!window.grecaptcha) {
|
|
37
|
-
throw new Error('The captcha has not been loaded properly');
|
|
38
|
-
}
|
|
39
|
-
const config = {
|
|
40
|
-
sitekey: this.siteKey,
|
|
41
|
-
theme: 'light',
|
|
42
|
-
callback: (token) => this.tokenOnSuccess.emit(token),
|
|
43
|
-
'expired-callback': () => this.reset()
|
|
44
|
-
};
|
|
45
|
-
this.widgetId = window.grecaptcha.render(this.recaptchaContainer.nativeElement, config);
|
|
46
|
-
this.loaded.emit(true);
|
|
47
|
-
}
|
|
48
|
-
appendScriptTag() {
|
|
49
|
-
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
50
|
-
this.recaptchaService.getCaptchaScriptUrl().subscribe(url => {
|
|
51
|
-
const script = document.createElement('script');
|
|
52
|
-
script.id = SCRIPT_ID;
|
|
53
|
-
script.src = url;
|
|
54
|
-
script.async = true;
|
|
55
|
-
script.defer = true;
|
|
56
|
-
script.onerror = () => this.scriptError.emit(true);
|
|
57
|
-
this.recaptchaScriptContainer.nativeElement.appendChild(script);
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
removeScript() {
|
|
61
|
-
this.scriptError.emit(false);
|
|
62
|
-
window.reCaptchaLoad = null;
|
|
63
|
-
}
|
|
64
|
-
loadCaptcha() {
|
|
65
|
-
this.loaded.emit(false);
|
|
66
|
-
// In case the script is already loaded.
|
|
67
|
-
const existingTag = document.getElementById(SCRIPT_ID);
|
|
68
|
-
if (existingTag) {
|
|
69
|
-
this.renderCaptcha();
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
// This will be called if the captcha loads.
|
|
73
|
-
window.reCaptchaLoad = () => {
|
|
74
|
-
this.renderCaptcha();
|
|
75
|
-
};
|
|
76
|
-
// Add the script with the `reCaptchaLoad` function as a callback.
|
|
77
|
-
this.appendScriptTag();
|
|
78
|
-
}
|
|
79
|
-
safeCaptchaReset() {
|
|
80
|
-
try {
|
|
81
|
-
if (!!window.grecaptcha) {
|
|
82
|
-
window.grecaptcha.reset(this.widgetId);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
catch (e) {
|
|
86
|
-
// In case the reset of the Google Captcha throws an error.
|
|
87
|
-
console.error(e);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GrecaptchaComponent, deps: [{ token: i1.RecaptchaService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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" }); }
|
|
92
|
-
}
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GrecaptchaComponent, decorators: [{
|
|
94
|
-
type: Component,
|
|
95
|
-
args: [{ selector: 'app-grecaptcha', template: "<div #recaptchaScriptContainer></div>\n<div #recaptchaContainer></div>\n" }]
|
|
96
|
-
}], ctorParameters: () => [{ type: i1.RecaptchaService }], propDecorators: { siteKey: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], loaded: [{
|
|
99
|
-
type: Output
|
|
100
|
-
}], scriptError: [{
|
|
101
|
-
type: Output
|
|
102
|
-
}], tokenOnSuccess: [{
|
|
103
|
-
type: Output
|
|
104
|
-
}], destroyed: [{
|
|
105
|
-
type: Output
|
|
106
|
-
}], recaptchaContainer: [{
|
|
107
|
-
type: ViewChild,
|
|
108
|
-
args: ['recaptchaContainer', { static: true }]
|
|
109
|
-
}], recaptchaScriptContainer: [{
|
|
110
|
-
type: ViewChild,
|
|
111
|
-
args: ['recaptchaScriptContainer', { static: true }]
|
|
112
|
-
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlY2FwdGNoYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9ncmVjYXB0Y2hhL2dyZWNhcHRjaGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1yZWNhcHRjaGEvZ3JlY2FwdGNoYS9ncmVjYXB0Y2hhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDOzs7QUFJdkIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLCtCQUErQixDQUFDO0FBVXpEOzs7Ozs7R0FNRztBQU1ILE1BQU0sT0FBTyxtQkFBbUI7SUF3QjVCLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbkJ0RCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUdyQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHMUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUduRCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQVVpQixDQUFDO0lBRTFELFFBQVE7UUFDSiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJ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QzsrR0FqSFEsbUJBQW1CO21HQUFuQixtQkFBbUIsd2RDbkNoQywwRUFFQTs7NEZEaUNhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFFSSxnQkFBZ0I7cUZBSzFCLE9BQU87c0JBRE4sS0FBSztnQkFJTixNQUFNO3NCQURMLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQUlQLGNBQWM7c0JBRGIsTUFBTTtnQkFJUCxTQUFTO3NCQURSLE1BQU07Z0JBSVAsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJakQsd0JBQXdCO3NCQUR2QixTQUFTO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVjYXB0Y2hhU2VydmljZSB9IGZyb20gJy4uL3JlY2FwdGNoYS5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IFNDUklQVF9JRCA9ICdwcmVzdGF0aW9ucy1uZy1jYXB0Y2hhLXNjcmlwdCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgZ3JlY2FwdGNoYTogYW55O1xuICAgICAgICByZUNhcHRjaGFMb2FkOiAoKSA9PiB2b2lkO1xuICAgIH1cbn1cblxuLyoqXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIEdvb2dsZSBSZWNhcHRjaGEuXG4gKlxuICogQWxsIHRoZSBxdWlya3MgYW5kIHdlaXJkbmVzcyBvZiB0aGlzIGludGVncmF0aW9uIHNob3VsZCBiZSBkb25lIGluIHRoaXNcbiAqIGNvbXBvbmVudC5cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdhcHAtZ3JlY2FwdGNoYScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdyZWNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBzaXRlS2V5OiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KClcbiAgICBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBzY3JpcHRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHRva2VuT25TdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZGVzdHJveWVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQFZpZXdDaGlsZCgncmVjYXB0Y2hhQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICByZWNhcHRjaGFDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdyZWNhcHRjaGFTY3JpcHRDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHJlY2FwdGNoYVNjcmlwdENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgd2lkZ2V0SWQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVjYXB0Y2hhU2VydmljZTogUmVjYXB0Y2hhU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBJZiB0aGUgY29tcG9uZW50IGlzIGluIHRoZSBjb21wb25lbnQgdHJlZSwgbG9hZCB0aGUgY2FwdGNoYSByZWdhcmRsZXNzLlxuICAgICAgICB0aGlzLmxvYWRDYXB0Y2hhKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMucmVtb3ZlU2NyaXB0KCk7XG4gICAgfVxuXG4gICAgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2FmZUNhcHRjaGFSZXNldCgpO1xuXG4gICAgICAgIHRoaXMudG9rZW5PblN1Y2Nlc3MuZW1pdChudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckNhcHRjaGEoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zaXRlS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgc2l0ZUtleSBvbiB0aGUgY29tcG9uZW50Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXdpbmRvdy5ncmVjYXB0Y2hhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjYXB0Y2hhIGhhcyBub3QgYmVlbiBsb2FkZWQgcHJvcGVybHknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgIHNpdGVrZXk6IHRoaXMuc2l0ZUtleSxcbiAgICAgICAgICAgIHRoZW1lOiAnbGlnaHQnLFxuICAgICAgICAgICAgY2FsbGJhY2s6ICh0b2tlbjogc3RyaW5nKSA9PiB0aGlzLnRva2VuT25TdWNjZXNzLmVtaXQodG9rZW4pLFxuICAgICAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiAoKSA9PiB0aGlzLnJlc2V0KClcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLndpZGdldElkID0gd2luZG93LmdyZWNhcHRjaGEucmVuZGVyKFxuICAgICAgICAgICAgdGhpcy5yZWNhcHRjaGFDb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGNvbmZpZ1xuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubG9hZGVkLmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmRTY3JpcHRUYWcoKTogdm9pZCB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgdGhpcy5yZWNhcHRjaGFTZXJ2aWNlLmdldENhcHRjaGFTY3JpcHRVcmwoKS5zdWJzY3JpYmUodXJsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgICAgc2NyaXB0LmlkID0gU0NSSVBUX0lEO1xuICAgICAgICAgICAgc2NyaXB0LnNyYyA9IHVybDtcbiAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICBzY3JpcHQuZGVmZXIgPSB0cnVlO1xuICAgICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoKSA9PiB0aGlzLnNjcmlwdEVycm9yLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnJlY2FwdGNoYVNjcmlwdENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlU2NyaXB0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcmlwdEVycm9yLmVtaXQoZmFsc2UpO1xuXG4gICAgICAgIHdpbmRvdy5yZUNhcHRjaGFMb2FkID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRDYXB0Y2hhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRlZC5lbWl0KGZhbHNlKTtcblxuICAgICAgICAvLyBJbiBjYXNlIHRoZSBzY3JpcHQgaXMgYWxyZWFkeSBsb2FkZWQuXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoU0NSSVBUX0lEKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nVGFnKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckNhcHRjaGEoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIGNhcHRjaGEgbG9hZHMuXG4gICAgICAgIHdpbmRvdy5yZUNhcHRjaGFMb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJDYXB0Y2hhKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQWRkIHRoZSBzY3JpcHQgd2l0aCB0aGUgYHJlQ2FwdGNoYUxvYWRgIGZ1bmN0aW9uIGFzIGEgY2FsbGJhY2suXG4gICAgICAgIHRoaXMuYXBwZW5kU2NyaXB0VGFnKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYWZlQ2FwdGNoYVJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCEhd2luZG93LmdyZWNhcHRjaGEpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuZ3JlY2FwdGNoYS5yZXNldCh0aGlzLndpZGdldElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gSW4gY2FzZSB0aGUgcmVzZXQgb2YgdGhlIEdvb2dsZSBDYXB0Y2hhIHRocm93cyBhbiBlcnJvci5cbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICNyZWNhcHRjaGFTY3JpcHRDb250YWluZXI+PC9kaXY+XG48ZGl2ICNyZWNhcHRjaGFDb250YWluZXI+PC9kaXY+XG4iXX0=
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import { HttpParams } from '@angular/common/http';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject, combineLatest, EMPTY, merge, of } from 'rxjs';
|
|
4
|
-
import { catchError, 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.errors = this.initErrorObservable(); // has to be first since it is used in initShouldDisplayObservable !
|
|
26
|
-
this.shouldDisplay = this.initShouldDisplayObservable();
|
|
27
|
-
this.publicKey = this.initPublicKeyObservable();
|
|
28
|
-
this.captchaScriptUrl = this.initCaptchaScriptUrlObservable();
|
|
29
|
-
}
|
|
30
|
-
onSuccess(token) {
|
|
31
|
-
// To be accessed by the gesdem service and to avoid to have a circular
|
|
32
|
-
// dependency between the gesdemHandlerService and the captcha service.
|
|
33
|
-
this.gesdemService.setCaptchaToken(token);
|
|
34
|
-
this.token = token;
|
|
35
|
-
if (!!this.token) {
|
|
36
|
-
this.clearErrors();
|
|
37
|
-
this.http
|
|
38
|
-
.post(RECAPTCHA_API_URL, { token: this.token })
|
|
39
|
-
.pipe(catchError((e) => {
|
|
40
|
-
console.error(e);
|
|
41
|
-
// 404, timeout or network issue. Could happen.
|
|
42
|
-
this.addError('Une erreur est survenue lors de la validation du captcha.');
|
|
43
|
-
return EMPTY;
|
|
44
|
-
}))
|
|
45
|
-
.subscribe(
|
|
46
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
47
|
-
(data) => {
|
|
48
|
-
const success = !!data.success;
|
|
49
|
-
if (success) {
|
|
50
|
-
// Clear any potential errors from the server. We can do
|
|
51
|
-
// that because this should be the only error in the set as
|
|
52
|
-
// the captcha must be valid to have at least one form error.
|
|
53
|
-
this.validationHandlerService.updateErrors([]);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
// If this is thrown, that's pretty bad because it means
|
|
57
|
-
// that Google couldn't verify the captcha key. This is
|
|
58
|
-
// either an attack or a misconfiguration.
|
|
59
|
-
this.addError('Votre captcha est invalide');
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
addError(message) {
|
|
65
|
-
const existingErrors = this.errorsSubject.getValue();
|
|
66
|
-
const newError = {
|
|
67
|
-
name: CAPTCHA_ERROR_NAME,
|
|
68
|
-
code: CAPTCHA_ERROR_NAME,
|
|
69
|
-
message
|
|
70
|
-
};
|
|
71
|
-
this.errorsSubject.next([newError, ...existingErrors]);
|
|
72
|
-
}
|
|
73
|
-
clearErrors() {
|
|
74
|
-
this.errorsSubject.next([]);
|
|
75
|
-
}
|
|
76
|
-
getErrors() {
|
|
77
|
-
return this.errors;
|
|
78
|
-
}
|
|
79
|
-
getShouldDisplay() {
|
|
80
|
-
return this.shouldDisplay;
|
|
81
|
-
}
|
|
82
|
-
getPublicKey() {
|
|
83
|
-
return this.publicKey;
|
|
84
|
-
}
|
|
85
|
-
getToken() {
|
|
86
|
-
return this.token;
|
|
87
|
-
}
|
|
88
|
-
getCaptchaScriptUrl() {
|
|
89
|
-
return this.captchaScriptUrl;
|
|
90
|
-
}
|
|
91
|
-
initErrorObservable() {
|
|
92
|
-
const matchingGesdemErrors = merge(
|
|
93
|
-
// Ensures that there's an initial value
|
|
94
|
-
of([]),
|
|
95
|
-
// Read from the gesdem service all errors.
|
|
96
|
-
this.validationHandlerService.validationErrorsSubject).pipe(
|
|
97
|
-
// Errors from GesDem, or nothing
|
|
98
|
-
map(errors => errors.filter(ex => CAPTCHA_ERROR_NAME === ex.code)));
|
|
99
|
-
// Bind errors to the component, either from the backend of from this component
|
|
100
|
-
return combineLatest([
|
|
101
|
-
// Errors from gesdem matching the name of the captcha.
|
|
102
|
-
matchingGesdemErrors,
|
|
103
|
-
// Manual errors
|
|
104
|
-
this.errorsSubject
|
|
105
|
-
]).pipe(
|
|
106
|
-
// Merge the two errors sets
|
|
107
|
-
map(([gesdemErrors, localErrors]) => [
|
|
108
|
-
...gesdemErrors,
|
|
109
|
-
...localErrors
|
|
110
|
-
]));
|
|
111
|
-
}
|
|
112
|
-
initShouldDisplayObservable() {
|
|
113
|
-
const isConnectedObservable = this.sessionInfo.data.pipe(map(data => !this.sessionInfo.neverConnected && !!data));
|
|
114
|
-
const hasBypassEnabledObservable = this.checkBypassProperty().pipe(map(bypass => !!bypass.value));
|
|
115
|
-
const hasReferenceObservable = merge(
|
|
116
|
-
// To have an initial value. Can be null if there is no form.
|
|
117
|
-
of(this.gesdemService.lastResponse),
|
|
118
|
-
// Read the form from GesDem
|
|
119
|
-
this.gesdemEventService.formInitializationObservable()).pipe(map(form => !!form &&
|
|
120
|
-
!!this.gesdemService.lastResponse &&
|
|
121
|
-
!!this.gesdemService.lastResponse.meta &&
|
|
122
|
-
!!this.gesdemService.lastResponse.meta.reference));
|
|
123
|
-
return combineLatest([
|
|
124
|
-
isConnectedObservable,
|
|
125
|
-
hasBypassEnabledObservable,
|
|
126
|
-
hasReferenceObservable,
|
|
127
|
-
this.errors
|
|
128
|
-
]).pipe(
|
|
129
|
-
// To work around rapidly changing observables, such as the form
|
|
130
|
-
// when the page loads.
|
|
131
|
-
debounceTime(0), map(([isConnected, hasBypassEnabled, hasReference, captchaErrors]) => {
|
|
132
|
-
const hasCaptchaError = !!captchaErrors?.length;
|
|
133
|
-
if (hasCaptchaError) {
|
|
134
|
-
// always display the component if it has an error, user could has logged out in another window
|
|
135
|
-
return true;
|
|
136
|
-
}
|
|
137
|
-
// Do not display the captcha if the user is connected, the application
|
|
138
|
-
// already has a reference or if the bypass is enabled.
|
|
139
|
-
return !isConnected && !hasBypassEnabled && !hasReference;
|
|
140
|
-
}));
|
|
141
|
-
}
|
|
142
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
143
|
-
checkBypassProperty() {
|
|
144
|
-
const params = !!this.route.snapshot.queryParams.reCaptchaByPassUUID
|
|
145
|
-
? new HttpParams().set('reCaptchaByPassUUID', this.route.snapshot.queryParams.reCaptchaByPassUUID)
|
|
146
|
-
: null;
|
|
147
|
-
return this.http.get(`${RECAPTCHA_API_URL}/bypass`, { params });
|
|
148
|
-
}
|
|
149
|
-
initPublicKeyObservable() {
|
|
150
|
-
return this.applicationInfoService.data.pipe(map(applicationInfo => this.getPublicKeyOrNull(applicationInfo)));
|
|
151
|
-
}
|
|
152
|
-
initCaptchaScriptUrlObservable() {
|
|
153
|
-
return this.applicationInfoService.data.pipe(map(applicationInfo => applicationInfo?.configuration?.captcha?.captchaUrlToken));
|
|
154
|
-
}
|
|
155
|
-
getPublicKeyOrNull(applicationInfo) {
|
|
156
|
-
// Replace this whole shenanigan with applicationInfo?.configuration?.captcha?.publickey when
|
|
157
|
-
// Typescript supports it.
|
|
158
|
-
if (!applicationInfo) {
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
const { configuration } = applicationInfo;
|
|
162
|
-
if (!configuration) {
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
const { captcha } = configuration;
|
|
166
|
-
if (!captcha) {
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
return captcha.publickey || null;
|
|
170
|
-
}
|
|
171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", 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 }); }
|
|
172
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RecaptchaService, providedIn: 'root' }); }
|
|
173
|
-
}
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RecaptchaService, decorators: [{
|
|
175
|
-
type: Injectable,
|
|
176
|
-
args: [{
|
|
177
|
-
providedIn: 'root'
|
|
178
|
-
}]
|
|
179
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.SessionInfo }, { type: i3.ActivatedRoute }, { type: i4.ValidationHandlerService }, { type: i5.GesdemHandlerService }, { type: i6.GesdemEventService }, { type: i7.ApplicationInfoService }] });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9yZWNhcHRjaGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLGFBQWEsRUFDYixLQUFLLEVBQ0wsS0FBSyxFQUVMLEVBQUUsRUFDTCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFVL0QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztBQUs5QyxNQUFNLE9BQU8sZ0JBQWdCO0lBUXpCLFlBQ1ksSUFBZ0IsRUFDaEIsV0FBd0IsRUFDeEIsS0FBcUIsRUFDckIsd0JBQWtELEVBQ2xELGFBQW1DLEVBQ25DLGtCQUFzQyxFQUN0QyxzQkFBOEM7UUFOOUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFiekMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBYyxFQUFFLENBQUMsQ0FBQztRQWVsRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIs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Z3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgICBCZWhhdmlvclN1YmplY3QsXG4gICAgY29tYmluZUxhdGVzdCxcbiAgICBFTVBUWSxcbiAgICBtZXJnZSxcbiAgICBPYnNlcnZhYmxlLFxuICAgIG9mXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvcm1FcnJvciB9IGZyb20gJy4uL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgR2VzZGVtRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mbyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25JbmZvIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24taGFuZGxlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IFJFQ0FQVENIQV9BUElfVVJMID0gJ2FwaS9yZWNhcHRjaGEnO1xuZXhwb3J0IGNvbnN0IENBUFRDSEFfRVJST1JfTkFNRSA9ICdyZWNhcHRjaGEnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlY2FwdGNoYVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzOiBPYnNlcnZhYmxlPEZvcm1FcnJvcltdPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9yc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1FcnJvcltdPihbXSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzaG91bGREaXNwbGF5OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHVibGljS2V5OiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXB0Y2hhU2NyaXB0VXJsOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgcHJpdmF0ZSB0b2tlbjogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8sXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHZhbGlkYXRpb25IYW5kbGVyU2VydmljZTogVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbUV2ZW50U2VydmljZTogR2VzZGVtRXZlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLmluaXRFcnJvck9ic2VydmFibGUoKTsgLy8gaGFzIHRvIGJlIGZpcnN0IHNpbmNlIGl0IGlzIHVzZWQgaW4gaW5pdFNob3VsZERpc3BsYXlPYnNlcnZhYmxlICFcbiAgICAgICAgdGhpcy5zaG91bGREaXNwbGF5ID0gdGhpcy5pbml0U2hvdWxkRGlzcGxheU9ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5wdWJsaWNLZXkgPSB0aGlzLmluaXRQdWJsaWNLZXlPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuY2FwdGNoYVNjcmlwdFVybCA9IHRoaXMuaW5pdENhcHRjaGFTY3JpcHRVcmxPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgb25TdWNjZXNzKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gVG8gYmUgYWNjZXNzZWQgYnkgdGhlIGdlc2RlbSBzZXJ2aWNlIGFuZCB0byBhdm9pZCB0byBoYXZlIGEgY2lyY3VsYXJcbiAgICAgICAgLy8gZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSBnZXNkZW1IYW5kbGVyU2VydmljZSBhbmQgdGhlIGNhcHRjaGEgc2VydmljZS5cbiAgICAgICAgdGhpcy5nZXNkZW1TZXJ2aWNlLnNldENhcHRjaGFUb2tlbih0b2tlbik7XG5cbiAgICAgICAgdGhpcy50b2tlbiA9IHRva2VuO1xuXG4gICAgICAgIGlmICghIXRoaXMudG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJFcnJvcnMoKTtcbiAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC5wb3N0KFJFQ0FQVENIQV9BUElfVVJMLCB7IHRva2VuOiB0aGlzLnRva2VuIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyA0MDQsIHRpbWVvdXQgb3IgbmV0d29yayBpc3N1ZS4gQ291bGQgaGFwcGVuLlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSB2YWxpZGF0aW9uIGR1IGNhcHRjaGEuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9ICEhZGF0YS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDbGVhciBhbnkgcG90ZW50aWFsIGVycm9ycyBmcm9tIHRoZSBzZXJ2ZXIuIFdlIGNhbiBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgYmVjYXVzZSB0aGlzIHNob3VsZCBiZSB0aGUgb25seSBlcnJvciBpbiB0aGUgc2V0IGFzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNhcHRjaGEgbXVzdCBiZSB2YWxpZCB0byBoYXZlIGF0IGxlYXN0IG9uZSBmb3JtIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnVwZGF0ZUVycm9ycyhbXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhyb3duLCB0aGF0J3MgcHJldHR5IGJhZCBiZWNhdXNlIGl0IG1lYW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBHb29nbGUgY291bGRuJ3QgdmVyaWZ5IHRoZSBjYXB0Y2hhIGtleS4gVGhpcyBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVpdGhlciBhbiBhdHRhY2sgb3IgYSBtaXNjb25maWd1cmF0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRXJyb3IoJ1ZvdHJlIGNhcHRjaGEgZXN0IGludmFsaWRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkRXJyb3IobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nRXJyb3JzID0gdGhpcy5lcnJvcnNTdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG5ld0Vycm9yID0ge1xuICAgICAgICAgICAgbmFtZTogQ0FQVENIQV9FUlJPUl9OQU1FLFxuICAgICAgICAgICAgY29kZTogQ0FQVENIQV9FUlJPUl9OQU1FLFxuICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZXJyb3JzU3ViamVjdC5uZXh0KFtuZXdFcnJvciwgLi4uZXhpc3RpbmdFcnJvcnNdKTtcbiAgICB9XG5cbiAgICBjbGVhckVycm9ycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lcnJvcnNTdWJqZWN0Lm5leHQoW10pO1xuICAgIH1cblxuICAgIGdldEVycm9ycygpOiBPYnNlcnZhYmxlPEZvcm1FcnJvcltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycztcbiAgICB9XG5cbiAgICBnZXRTaG91bGREaXNwbGF5KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG91bGREaXNwbGF5O1xuICAgIH1cblxuICAgIGdldFB1YmxpY0tleSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wdWJsaWNLZXk7XG4gICAgfVxuXG4gICAgZ2V0VG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW47XG4gICAgfVxuXG4gICAgZ2V0Q2FwdGNoYVNjcmlwdFVybCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXB0Y2hhU2NyaXB0VXJsO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEVycm9yT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEZvcm1FcnJvcltdPiB7XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nR2VzZGVtRXJyb3JzID0gbWVyZ2UoXG4gICAgICAgICAgICAvLyBFbnN1cmVzIHRoYXQgdGhlcmUncyBhbiBpbml0aWFsIHZhbHVlXG4gICAgICAgICAgICBvZihbXSksXG4gICAgICAgICAgICAvLyBSZWFkIGZyb20gdGhlIGdlc2RlbSBzZXJ2aWNlIGFsbCBlcnJvcnMuXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZS52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAvLyBFcnJvcnMgZnJvbSBHZXNEZW0sIG9yIG5vdGhpbmdcbiAgICAgICAgICAgIG1hcChlcnJvcnMgPT4gZXJyb3JzLmZpbHRlcihleCA9PiBDQVBUQ0hBX0VSUk9SX05BTUUgPT09IGV4LmNvZGUpKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIEJpbmQgZXJyb3JzIHRvIHRoZSBjb21wb25lbnQsIGVpdGhlciBmcm9tIHRoZSBiYWNrZW5kIG9mIGZyb20gdGhpcyBjb21wb25lbnRcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgLy8gRXJyb3JzIGZyb20gZ2VzZGVtIG1hdGNoaW5nIHRoZSBuYW1lIG9mIHRoZSBjYXB0Y2hhLlxuICAgICAgICAgICAgbWF0Y2hpbmdHZXNkZW1FcnJvcnMsXG4gICAgICAgICAgICAvLyBNYW51YWwgZXJyb3JzXG4gICAgICAgICAgICB0aGlzLmVycm9yc1N1YmplY3RcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIE1lcmdlIHRoZSB0d28gZXJyb3JzIHNldHNcbiAgICAgICAgICAgIG1hcCgoW2dlc2RlbUVycm9ycywgbG9jYWxFcnJvcnNdKSA9PiBbXG4gICAgICAgICAgICAgICAgLi4uZ2VzZGVtRXJyb3JzLFxuICAgICAgICAgICAgICAgIC4uLmxvY2FsRXJyb3JzXG4gICAgICAgICAgICBdKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNob3VsZERpc3BsYXlPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBpc0Nvbm5lY3RlZE9ic2VydmFibGUgPSB0aGlzLnNlc3Npb25JbmZvLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChkYXRhID0+ICF0aGlzLnNlc3Npb25JbmZvLm5ldmVyQ29ubmVjdGVkICYmICEhZGF0YSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBoYXNCeXBhc3NFbmFibGVkT2JzZXJ2YWJsZSA9IHRoaXMuY2hlY2tCeXBhc3NQcm9wZXJ0eSgpLnBpcGUoXG4gICAgICAgICAgICBtYXAoYnlwYXNzID0+ICEhYnlwYXNzLnZhbHVlKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGhhc1JlZmVyZW5jZU9ic2VydmFibGUgPSBtZXJnZShcbiAgICAgICAgICAgIC8vIFRvIGhhdmUgYW4gaW5pdGlhbCB2YWx1ZS4gQ2FuIGJlIG51bGwgaWYgdGhlcmUgaXMgbm8gZm9ybS5cbiAgICAgICAgICAgIG9mKHRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UpLFxuICAgICAgICAgICAgLy8gUmVhZCB0aGUgZm9ybSBmcm9tIEdlc0RlbVxuICAgICAgICAgICAgdGhpcy5nZXNkZW1FdmVudFNlcnZpY2UuZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSgpXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICBmb3JtID0+XG4gICAgICAgICAgICAgICAgICAgICEhZm9ybSAmJlxuICAgICAgICAgICAgICAgICAgICAhIXRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UgJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEgJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgaXNDb25uZWN0ZWRPYnNlcnZhYmxlLFxuICAgICAgICAgICAgaGFzQnlwYXNzRW5hYmxlZE9ic2VydmFibGUsXG4gICAgICAgICAgICBoYXNSZWZlcmVuY2VPYnNlcnZhYmxlLFxuICAgICAgICAgICAgdGhpcy5lcnJvcnNcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIFRvIHdvcmsgYXJvdW5kIHJhcGlkbHkgY2hhbmdpbmcgb2JzZXJ2YWJsZXMsIHN1Y2ggYXMgdGhlIGZvcm1cbiAgICAgICAgICAgIC8vIHdoZW4gdGhlIHBhZ2UgbG9hZHMuXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgaXNDb25uZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgIGhhc0J5cGFzc0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgIGhhc1JlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICAgICAgY2FwdGNoYUVycm9yc1xuICAgICAgICAgICAgICAgIF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQ2FwdGNoYUVycm9yID0gISFjYXB0Y2hhRXJyb3JzPy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNDYXB0Y2hhRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsd2F5cyBkaXNwbGF5IHRoZSBjb21wb25lbnQgaWYgaXQgaGFzIGFuIGVycm9yLCB1c2VyIGNvdWxkIGhhcyBsb2dnZWQgb3V0IGluIGFub3RoZXIgd2luZG93XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3QgZGlzcGxheSB0aGUgY2FwdGNoYSBpZiB0aGUgdXNlciBpcyBjb25uZWN0ZWQsIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGhhcyBhIHJlZmVyZW5jZSBvciBpZiB0aGUgYnlwYXNzIGlzIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhaXNDb25uZWN0ZWQgJiYgIWhhc0J5cGFzc0VuYWJsZWQgJiYgIWhhc1JlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGNoZWNrQnlwYXNzUHJvcGVydHkoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gISF0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnJlQ2FwdGNoYUJ5UGFzc1VVSURcbiAgICAgICAgICAgID8gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXG4gICAgICAgICAgICAgICAgICAncmVDYXB0Y2hhQnlQYXNzVVVJRCcsXG4gICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnJlQ2FwdGNoYUJ5UGFzc1VVSURcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke1JFQ0FQVENIQV9BUElfVVJMfS9ieXBhc3NgLCB7IHBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRQdWJsaWNLZXlPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKGFwcGxpY2F0aW9uSW5mbyA9PiB0aGlzLmdldFB1YmxpY0tleU9yTnVsbChhcHBsaWNhdGlvbkluZm8pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENhcHRjaGFTY3JpcHRVcmxPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uSW5mbyA9PlxuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkluZm8/LmNvbmZpZ3VyYXRpb24/LmNhcHRjaGE/LmNhcHRjaGFVcmxUb2tlblxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHVibGljS2V5T3JOdWxsKFxuICAgICAgICBhcHBsaWNhdGlvbkluZm86IEFwcGxpY2F0aW9uSW5mb1xuICAgICk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICAvLyBSZXBsYWNlIHRoaXMgd2hvbGUgc2hlbmFuaWdhbiB3aXRoIGFwcGxpY2F0aW9uSW5mbz8uY29uZmlndXJhdGlvbj8uY2FwdGNoYT8ucHVibGlja2V5IHdoZW5cbiAgICAgICAgLy8gVHlwZXNjcmlwdCBzdXBwb3J0cyBpdC5cbiAgICAgICAgaWYgKCFhcHBsaWNhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBjb25maWd1cmF0aW9uIH0gPSBhcHBsaWNhdGlvbkluZm87XG5cbiAgICAgICAgaWYgKCFjb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGNhcHRjaGEgfSA9IGNvbmZpZ3VyYXRpb247XG5cbiAgICAgICAgaWYgKCFjYXB0Y2hhKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYXB0Y2hhLnB1YmxpY2tleSB8fCBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { debounceTime, map } from 'rxjs/operators';
|
|
3
|
-
import { GrecaptchaComponent } from './grecaptcha/grecaptcha.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./recaptcha.service";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "./grecaptcha/grecaptcha.component";
|
|
8
|
-
export class SdkRecaptchaComponent {
|
|
9
|
-
constructor(recaptchaService, cdr) {
|
|
10
|
-
this.recaptchaService = recaptchaService;
|
|
11
|
-
this.cdr = cdr;
|
|
12
|
-
this.hasLoadingError = false;
|
|
13
|
-
this.recaptchaUrlForUserError = this.recaptchaService
|
|
14
|
-
.getCaptchaScriptUrl()
|
|
15
|
-
.pipe(map(captchaScriptUrl => {
|
|
16
|
-
const url = new URL(captchaScriptUrl);
|
|
17
|
-
return `${url.protocol}//${url.hostname}`;
|
|
18
|
-
}));
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
this.recaptchaService.clearErrors();
|
|
22
|
-
this.shouldDisplay = this.recaptchaService.getShouldDisplay();
|
|
23
|
-
this.errors = this.recaptchaService.getErrors();
|
|
24
|
-
this.publicKey = this.recaptchaService.getPublicKey();
|
|
25
|
-
this.errorsSubscription = this.errors
|
|
26
|
-
.pipe(debounceTime(500))
|
|
27
|
-
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
28
|
-
.subscribe(errors => {
|
|
29
|
-
// Hack because the captcha confuses Angular detection change.
|
|
30
|
-
if (this.forceDetectChange) {
|
|
31
|
-
this.forceDetectChange();
|
|
32
|
-
}
|
|
33
|
-
// In case of errors, reset the captcha for a better user
|
|
34
|
-
// experience.
|
|
35
|
-
if (errors.length && this.grecaptcha) {
|
|
36
|
-
this.grecaptcha.reset();
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
this.forceDetectChange = () => this.cdr.detectChanges();
|
|
40
|
-
}
|
|
41
|
-
ngOnDestroy() {
|
|
42
|
-
if (this.errorsSubscription) {
|
|
43
|
-
this.errorsSubscription.unsubscribe();
|
|
44
|
-
}
|
|
45
|
-
// Avoid cdr on destroyed components.
|
|
46
|
-
this.forceDetectChange = null;
|
|
47
|
-
}
|
|
48
|
-
setIsLoaded(isLoaded) {
|
|
49
|
-
this.isLoaded = isLoaded;
|
|
50
|
-
// Angular doesn't detect the change properly
|
|
51
|
-
if (this.forceDetectChange) {
|
|
52
|
-
this.forceDetectChange();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
setScriptError(scriptError) {
|
|
56
|
-
this.hasLoadingError = scriptError;
|
|
57
|
-
// Angular doesn't detect the change properly
|
|
58
|
-
if (this.forceDetectChange) {
|
|
59
|
-
this.forceDetectChange();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
tokenOnSuccess(token) {
|
|
63
|
-
this.recaptchaService.onSuccess(token);
|
|
64
|
-
}
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkRecaptchaComponent, deps: [{ token: i1.RecaptchaService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdkRecaptchaComponent, selector: "captcha", viewQueries: [{ propertyName: "grecaptcha", first: true, predicate: GrecaptchaComponent, descendants: true }], ngImport: i0, template: "<!-- Only display the content if the captcha should be displayed (user not connected for instance) -->\n<div id=\"foehn_recaptchaContainer\" *ngIf=\"shouldDisplay | async\">\n <!-- Manual error handling because errors can come from multiple sources -->\n <ng-container *ngIf=\"errors | async as err\">\n <div\n class=\"form-control-feedback text-danger\"\n *ngIf=\"err && err.length\"\n >\n <p *ngFor=\"let error of err\">{{ error.message }}</p>\n </div>\n </ng-container>\n\n <!-- While the captcha is being loaded -->\n <div class=\"alert alert-info\" *ngIf=\"!isLoaded && !hasLoadingError\">\n Chargement du captcha\n </div>\n\n <!-- In case google.com cannot be reached for instance -->\n <div class=\"alert alert-danger\" *ngIf=\"hasLoadingError\">\n <div class=\"mt-0 alert-heading h4\">\n Une erreur est survenue lors du chargement du captcha.\n </div>\n <p>\n Merci de v\u00E9rifier que votre navigateur peut acc\u00E9der \u00E0\n <a\n *ngIf=\"\n recaptchaUrlForUserError | async as recaptchaUrlUserError\n \"\n [href]=\"recaptchaUrlUserError\"\n target=\"_blank\"\n >\n {{ recaptchaUrlUserError }}\n </a>\n .\n </p>\n </div>\n\n <ng-container *ngIf=\"publicKey | async as key\">\n <!-- The captcha itself is in a different container not to confused Angular change detection -->\n <app-grecaptcha\n [siteKey]=\"key\"\n (loaded)=\"setIsLoaded($event)\"\n (scriptError)=\"setScriptError($event)\"\n (tokenOnSuccess)=\"tokenOnSuccess($event)\"\n ></app-grecaptcha>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.GrecaptchaComponent, selector: "app-grecaptcha", inputs: ["siteKey"], outputs: ["loaded", "scriptError", "tokenOnSuccess", "destroyed"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
67
|
-
}
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkRecaptchaComponent, decorators: [{
|
|
69
|
-
type: Component,
|
|
70
|
-
args: [{ selector: 'captcha', template: "<!-- Only display the content if the captcha should be displayed (user not connected for instance) -->\n<div id=\"foehn_recaptchaContainer\" *ngIf=\"shouldDisplay | async\">\n <!-- Manual error handling because errors can come from multiple sources -->\n <ng-container *ngIf=\"errors | async as err\">\n <div\n class=\"form-control-feedback text-danger\"\n *ngIf=\"err && err.length\"\n >\n <p *ngFor=\"let error of err\">{{ error.message }}</p>\n </div>\n </ng-container>\n\n <!-- While the captcha is being loaded -->\n <div class=\"alert alert-info\" *ngIf=\"!isLoaded && !hasLoadingError\">\n Chargement du captcha\n </div>\n\n <!-- In case google.com cannot be reached for instance -->\n <div class=\"alert alert-danger\" *ngIf=\"hasLoadingError\">\n <div class=\"mt-0 alert-heading h4\">\n Une erreur est survenue lors du chargement du captcha.\n </div>\n <p>\n Merci de v\u00E9rifier que votre navigateur peut acc\u00E9der \u00E0\n <a\n *ngIf=\"\n recaptchaUrlForUserError | async as recaptchaUrlUserError\n \"\n [href]=\"recaptchaUrlUserError\"\n target=\"_blank\"\n >\n {{ recaptchaUrlUserError }}\n </a>\n .\n </p>\n </div>\n\n <ng-container *ngIf=\"publicKey | async as key\">\n <!-- The captcha itself is in a different container not to confused Angular change detection -->\n <app-grecaptcha\n [siteKey]=\"key\"\n (loaded)=\"setIsLoaded($event)\"\n (scriptError)=\"setScriptError($event)\"\n (tokenOnSuccess)=\"tokenOnSuccess($event)\"\n ></app-grecaptcha>\n </ng-container>\n</div>\n" }]
|
|
71
|
-
}], ctorParameters: () => [{ type: i1.RecaptchaService }, { type: i0.ChangeDetectorRef }], propDecorators: { grecaptcha: [{
|
|
72
|
-
type: ViewChild,
|
|
73
|
-
args: [GrecaptchaComponent]
|
|
74
|
-
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLXJlY2FwdGNoYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9zZGstcmVjYXB0Y2hhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstcmVjYXB0Y2hhL3Nkay1yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFHVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFReEUsTUFBTSxPQUFPLHFCQUFxQjtJQWM5QixZQUNZLGdCQUFrQyxFQUNsQyxHQUFzQjtRQUR0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBVmxDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBWXBCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCO2FBQ2hELG1CQUFtQixFQUFFO2FBQ3JCLElBQUksQ0FDRCxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNuQixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sR0FBRyxHQUFHLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV0RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU07YUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QiwwREFBMEQ7YUFDekQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hCLDhEQUE4RDtZQUM5RCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM3QixDQUFDO1lBQ0QseURBQXlEO1lBQ3pELGNBQWM7WUFDZCxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUVELHFDQUFxQztRQUNyQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBaUI7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBb0I7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUM7UUFFbkMsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBakZRLHFCQUFxQjttR0FBckIscUJBQXFCLDJGQUNuQixtQkFBbUIsZ0RDcEJsQyxzekRBK0NBOzs0RkQ1QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUVJLFNBQVM7cUhBS25CLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvcm1FcnJvciB9IGZyb20gJy4uL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgR3JlY2FwdGNoYUNvbXBvbmVudCB9IGZyb20gJy4vZ3JlY2FwdGNoYS9ncmVjYXB0Y2hhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNhcHRjaGFTZXJ2aWNlIH0gZnJvbSAnLi9yZWNhcHRjaGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnY2FwdGNoYScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Nkay1yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNka1JlY2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKEdyZWNhcHRjaGFDb21wb25lbnQpXG4gICAgZ3JlY2FwdGNoYTogR3JlY2FwdGNoYUNvbXBvbmVudDtcblxuICAgIHNob3VsZERpc3BsYXk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaXNMb2FkZWQ6IGJvb2xlYW47XG4gICAgaGFzTG9hZGluZ0Vycm9yID0gZmFsc2U7XG4gICAgZXJyb3JzOiBPYnNlcnZhYmxlPEZvcm1FcnJvcltdPjtcbiAgICBwdWJsaWNLZXk6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICByZWNhcHRjaGFVcmxGb3JVc2VyRXJyb3I6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIHByaXZhdGUgZXJyb3JzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBmb3JjZURldGVjdENoYW5nZTogKCkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlY2FwdGNoYVNlcnZpY2U6IFJlY2FwdGNoYVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLnJlY2FwdGNoYVVybEZvclVzZXJFcnJvciA9IHRoaXMucmVjYXB0Y2hhU2VydmljZVxuICAgICAgICAgICAgLmdldENhcHRjaGFTY3JpcHRVcmwoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKGNhcHRjaGFTY3JpcHRVcmwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGNhcHRjaGFTY3JpcHRVcmwpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7dXJsLnByb3RvY29sfS8vJHt1cmwuaG9zdG5hbWV9YDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWNhcHRjaGFTZXJ2aWNlLmNsZWFyRXJyb3JzKCk7XG4gICAgICAgIHRoaXMuc2hvdWxkRGlzcGxheSA9IHRoaXMucmVjYXB0Y2hhU2VydmljZS5nZXRTaG91bGREaXNwbGF5KCk7XG4gICAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy5yZWNhcHRjaGFTZXJ2aWNlLmdldEVycm9ycygpO1xuICAgICAgICB0aGlzLnB1YmxpY0tleSA9IHRoaXMucmVjYXB0Y2hhU2VydmljZS5nZXRQdWJsaWNLZXkoKTtcblxuICAgICAgICB0aGlzLmVycm9yc1N1YnNjcmlwdGlvbiA9IHRoaXMuZXJyb3JzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZXJyb3JzID0+IHtcbiAgICAgICAgICAgICAgICAvLyBIYWNrIGJlY2F1c2UgdGhlIGNhcHRjaGEgY29uZnVzZXMgQW5ndWxhciBkZXRlY3Rpb24gY2hhbmdlLlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcmNlRGV0ZWN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9yY2VEZXRlY3RDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSW4gY2FzZSBvZiBlcnJvcnMsIHJlc2V0IHRoZSBjYXB0Y2hhIGZvciBhIGJldHRlciB1c2VyXG4gICAgICAgICAgICAgICAgLy8gZXhwZXJpZW5jZS5cbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCAmJiB0aGlzLmdyZWNhcHRjaGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmVjYXB0Y2hhLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JjZURldGVjdENoYW5nZSA9ICgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JzU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXZvaWQgY2RyIG9uIGRlc3Ryb3llZCBjb21wb25lbnRzLlxuICAgICAgICB0aGlzLmZvcmNlRGV0ZWN0Q2hhbmdlID0gbnVsbDtcbiAgICB9XG5cbiAgICBzZXRJc0xvYWRlZChpc0xvYWRlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTG9hZGVkID0gaXNMb2FkZWQ7XG5cbiAgICAgICAgLy8gQW5ndWxhciBkb2Vzbid0IGRldGVjdCB0aGUgY2hhbmdlIHByb3Blcmx5XG4gICAgICAgIGlmICh0aGlzLmZvcmNlRGV0ZWN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcmNlRGV0ZWN0Q2hhbmdlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTY3JpcHRFcnJvcihzY3JpcHRFcnJvcjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmhhc0xvYWRpbmdFcnJvciA9IHNjcmlwdEVycm9yO1xuXG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBkZXRlY3QgdGhlIGNoYW5nZSBwcm9wZXJseVxuICAgICAgICBpZiAodGhpcy5mb3JjZURldGVjdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JjZURldGVjdENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9rZW5PblN1Y2Nlc3ModG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlY2FwdGNoYVNlcnZpY2Uub25TdWNjZXNzKHRva2VuKTtcbiAgICB9XG59XG4iLCI8IS0tIE9ubHkgZGlzcGxheSB0aGUgY29udGVudCBpZiB0aGUgY2FwdGNoYSBzaG91bGQgYmUgZGlzcGxheWVkICh1c2VyIG5vdCBjb25uZWN0ZWQgZm9yIGluc3RhbmNlKSAtLT5cbjxkaXYgaWQ9XCJmb2Vobl9yZWNhcHRjaGFDb250YWluZXJcIiAqbmdJZj1cInNob3VsZERpc3BsYXkgfCBhc3luY1wiPlxuICAgIDwhLS0gTWFudWFsIGVycm9yIGhhbmRsaW5nIGJlY2F1c2UgZXJyb3JzIGNhbiBjb21lIGZyb20gbXVsdGlwbGUgc291cmNlcyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JzIHwgYXN5bmMgYXMgZXJyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sLWZlZWRiYWNrIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiZXJyICYmIGVyci5sZW5ndGhcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8cCAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyXCI+e3sgZXJyb3IubWVzc2FnZSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFdoaWxlIHRoZSBjYXB0Y2hhIGlzIGJlaW5nIGxvYWRlZCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiICpuZ0lmPVwiIWlzTG9hZGVkICYmICFoYXNMb2FkaW5nRXJyb3JcIj5cbiAgICAgICAgQ2hhcmdlbWVudCBkdSBjYXB0Y2hhXG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEluIGNhc2UgZ29vZ2xlLmNvbSBjYW5ub3QgYmUgcmVhY2hlZCBmb3IgaW5zdGFuY2UgLS0+XG4gICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiICpuZ0lmPVwiaGFzTG9hZGluZ0Vycm9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0wIGFsZXJ0LWhlYWRpbmcgaDRcIj5cbiAgICAgICAgICAgIFVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZHUgY2hhcmdlbWVudCBkdSBjYXB0Y2hhLlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgICBNZXJjaSBkZSB2w6lyaWZpZXIgcXVlIHZvdHJlIG5hdmlnYXRldXIgcGV1dCBhY2PDqWRlciDDoFxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICByZWNhcHRjaGFVcmxGb3JVc2VyRXJyb3IgfCBhc3luYyBhcyByZWNhcHRjaGFVcmxVc2VyRXJyb3JcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFtocmVmXT1cInJlY2FwdGNoYVVybFVzZXJFcnJvclwiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyByZWNhcHRjaGFVcmxVc2VyRXJyb3IgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIC5cbiAgICAgICAgPC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInB1YmxpY0tleSB8IGFzeW5jIGFzIGtleVwiPlxuICAgICAgICA8IS0tIFRoZSBjYXB0Y2hhIGl0c2VsZiBpcyBpbiBhIGRpZmZlcmVudCBjb250YWluZXIgbm90IHRvIGNvbmZ1c2VkIEFuZ3VsYXIgY2hhbmdlIGRldGVjdGlvbiAtLT5cbiAgICAgICAgPGFwcC1ncmVjYXB0Y2hhXG4gICAgICAgICAgICBbc2l0ZUtleV09XCJrZXlcIlxuICAgICAgICAgICAgKGxvYWRlZCk9XCJzZXRJc0xvYWRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzY3JpcHRFcnJvcik9XCJzZXRTY3JpcHRFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAgICh0b2tlbk9uU3VjY2Vzcyk9XCJ0b2tlbk9uU3VjY2VzcygkZXZlbnQpXCJcbiAgICAgICAgPjwvYXBwLWdyZWNhcHRjaGE+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|