@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,16 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { SdkDictionaryPipe } from './sdk-dictionary.pipe';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class SdkDictionaryModule {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkDictionaryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SdkDictionaryModule, declarations: [SdkDictionaryPipe], exports: [SdkDictionaryPipe] }); }
|
|
7
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkDictionaryModule }); }
|
|
8
|
-
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkDictionaryModule, decorators: [{
|
|
10
|
-
type: NgModule,
|
|
11
|
-
args: [{
|
|
12
|
-
declarations: [SdkDictionaryPipe],
|
|
13
|
-
exports: [SdkDictionaryPipe]
|
|
14
|
-
}]
|
|
15
|
-
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWRpY3Rpb25hcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU0xRCxNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQixpQkFIYixpQkFBaUIsYUFDdEIsaUJBQWlCO2dIQUVsQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSi9CLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNka0RpY3Rpb25hcnlQaXBlIH0gZnJvbSAnLi9zZGstZGljdGlvbmFyeS5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtTZGtEaWN0aW9uYXJ5UGlwZV0sXG4gICAgZXhwb3J0czogW1Nka0RpY3Rpb25hcnlQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBTZGtEaWN0aW9uYXJ5TW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { AsyncPipe } from '@angular/common';
|
|
2
|
-
import { Pipe } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./sdk-dictionary.service";
|
|
5
|
-
export class SdkDictionaryPipe {
|
|
6
|
-
constructor(dictionaryService, ref) {
|
|
7
|
-
this.dictionaryService = dictionaryService;
|
|
8
|
-
this.ref = ref;
|
|
9
|
-
this.asyncPipe = new AsyncPipe(ref);
|
|
10
|
-
}
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
-
transform(key, placeHolderType) {
|
|
13
|
-
if (!key) {
|
|
14
|
-
return key;
|
|
15
|
-
}
|
|
16
|
-
return this.asyncPipe.transform(this.dictionaryService.getKey(key, placeHolderType));
|
|
17
|
-
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkDictionaryPipe, deps: [{ token: i1.SdkDictionaryService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
19
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SdkDictionaryPipe, name: "fromDictionary", pure: false }); }
|
|
20
|
-
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkDictionaryPipe, decorators: [{
|
|
22
|
-
type: Pipe,
|
|
23
|
-
args: [{
|
|
24
|
-
name: 'fromDictionary',
|
|
25
|
-
pure: false
|
|
26
|
-
}]
|
|
27
|
-
}], ctorParameters: () => [{ type: i1.SdkDictionaryService }, { type: i0.ChangeDetectorRef }] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWRpY3Rpb25hcnkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQXFCLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQVd2RSxNQUFNLE9BQU8saUJBQWlCO0lBRzFCLFlBQ1ksaUJBQXVDLEVBQ3ZDLEdBQXNCO1FBRHRCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBc0I7UUFDdkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFFOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsOERBQThEO0lBQzlELFNBQVMsQ0FBQyxHQUFRLEVBQUUsZUFBaUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1AsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQ3RELENBQUM7SUFDTixDQUFDOytHQW5CUSxpQkFBaUI7NkdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixJQUFJLEVBQUUsS0FBSztpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIFBsYWNlaG9sZGVyVHlwZSxcbiAgICBTZGtEaWN0aW9uYXJ5U2VydmljZVxufSBmcm9tICcuL3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2Zyb21EaWN0aW9uYXJ5JyxcbiAgICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTZGtEaWN0aW9uYXJ5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHByaXZhdGUgYXN5bmNQaXBlOiBBc3luY1BpcGU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLmFzeW5jUGlwZSA9IG5ldyBBc3luY1BpcGUocmVmKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHRyYW5zZm9ybShrZXk6IGFueSwgcGxhY2VIb2xkZXJUeXBlPzogUGxhY2Vob2xkZXJUeXBlKTogYW55IHtcbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hc3luY1BpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXRLZXkoa2V5LCBwbGFjZUhvbGRlclR5cGUpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, combineLatest, of } from 'rxjs';
|
|
3
|
-
import { catchError, map, shareReplay, switchMap, tap } from 'rxjs/operators';
|
|
4
|
-
import { GrowlType } from '../foehn-growl/growl-types';
|
|
5
|
-
// eslint-disable-next-line import/no-cycle
|
|
6
|
-
import { DEFAULT_DICTIONARY } from './default-dictionary';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common/http";
|
|
9
|
-
import * as i2 from "../foehn-growl/growl-broker.service";
|
|
10
|
-
import * as i3 from "../validation/validation-handler.service";
|
|
11
|
-
export const DICTIONARY_BASE_URL = 'api/dictionary';
|
|
12
|
-
/**
|
|
13
|
-
* @param value to search in
|
|
14
|
-
* @param placeholders to be replaced
|
|
15
|
-
* @returns string
|
|
16
|
-
*/
|
|
17
|
-
export const replaceAll = (value, placeholders) => {
|
|
18
|
-
if (!placeholders) {
|
|
19
|
-
return value;
|
|
20
|
-
}
|
|
21
|
-
return Object.keys(placeholders).reduce((result, key) => {
|
|
22
|
-
const valueToReplace = placeholders[key];
|
|
23
|
-
return result.replace(new RegExp(`{${key}}`, 'g'), valueToReplace);
|
|
24
|
-
}, value);
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* @param dictionary holding all keys
|
|
28
|
-
* @param key from dictionary
|
|
29
|
-
* @param placeholders to be replaced
|
|
30
|
-
* @returns string
|
|
31
|
-
*/
|
|
32
|
-
function getKeyOrDefault(
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
-
dictionary, key, placeholders) {
|
|
35
|
-
return replaceAll(dictionary[key] || DEFAULT_DICTIONARY[key] || key, placeholders);
|
|
36
|
-
}
|
|
37
|
-
export class SdkDictionaryService {
|
|
38
|
-
constructor(httpClient, growlService, validationService) {
|
|
39
|
-
this.httpClient = httpClient;
|
|
40
|
-
this.growlService = growlService;
|
|
41
|
-
this.validationService = validationService;
|
|
42
|
-
this.defaultLanguageCode = 'fr';
|
|
43
|
-
this.languageCodeSubject = new BehaviorSubject(this.getNavigatorLanguageCodeOrDefault());
|
|
44
|
-
this.availableLanguagesObservable = this.httpClient
|
|
45
|
-
.get(`${DICTIONARY_BASE_URL}/languages`)
|
|
46
|
-
.pipe(catchError((e) => {
|
|
47
|
-
console.error(e);
|
|
48
|
-
growlService.addWithType(GrowlType.DANGER, 'Impossible de récupérer les langues disponibles');
|
|
49
|
-
return of([]);
|
|
50
|
-
}), shareReplay(1));
|
|
51
|
-
this.dictionaryObservable = this.getCurrentLanguageCode().pipe(switchMap(languageCode => {
|
|
52
|
-
const url = DICTIONARY_BASE_URL +
|
|
53
|
-
(!!languageCode ? `/${languageCode}` : '');
|
|
54
|
-
return this.httpClient.get(url).pipe(catchError((e) => {
|
|
55
|
-
console.error(e);
|
|
56
|
-
growlService.addWithType(GrowlType.DANGER, 'Impossible de récupérer les valeurs du dictionnaire');
|
|
57
|
-
return of({});
|
|
58
|
-
}), tap(dictionary => {
|
|
59
|
-
this.dictionary = dictionary;
|
|
60
|
-
}));
|
|
61
|
-
}), shareReplay(1));
|
|
62
|
-
}
|
|
63
|
-
getDictionary() {
|
|
64
|
-
return this.dictionaryObservable;
|
|
65
|
-
}
|
|
66
|
-
getAvailableLanguages() {
|
|
67
|
-
return this.availableLanguagesObservable;
|
|
68
|
-
}
|
|
69
|
-
getKey(key, placeholders) {
|
|
70
|
-
return this.dictionaryObservable.pipe(map(dictionary => getKeyOrDefault(dictionary, key, placeholders)));
|
|
71
|
-
}
|
|
72
|
-
getKeySync(key, placeholders) {
|
|
73
|
-
if (!this.dictionary) {
|
|
74
|
-
throw new Error('Dictionary not initialized.');
|
|
75
|
-
}
|
|
76
|
-
return getKeyOrDefault(this.dictionary, key, placeholders);
|
|
77
|
-
}
|
|
78
|
-
getPluralMarkerSync(count) {
|
|
79
|
-
if (!count || count === 1) {
|
|
80
|
-
return '';
|
|
81
|
-
}
|
|
82
|
-
return this.getKeySync('plural-marker');
|
|
83
|
-
}
|
|
84
|
-
changeLanguage(code) {
|
|
85
|
-
if (!!code && this.languageCodeSubject.getValue() !== code) {
|
|
86
|
-
this.languageCodeSubject.next(code);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
getCurrentLanguageCode() {
|
|
90
|
-
return combineLatest([
|
|
91
|
-
this.availableLanguagesObservable,
|
|
92
|
-
this.languageCodeSubject.asObservable()
|
|
93
|
-
]).pipe(switchMap(([availableLanguageCodes, languageCode]) => {
|
|
94
|
-
const matchedLanguage = availableLanguageCodes.find(lc => lc.code === languageCode);
|
|
95
|
-
if (!!matchedLanguage && !!matchedLanguage.code) {
|
|
96
|
-
return of(matchedLanguage.code);
|
|
97
|
-
}
|
|
98
|
-
return of(this.defaultLanguageCode);
|
|
99
|
-
}), tap(() => {
|
|
100
|
-
// reset errors as they are translated in the backend
|
|
101
|
-
this.validationService.updateErrors([]);
|
|
102
|
-
}), shareReplay(1));
|
|
103
|
-
}
|
|
104
|
-
setDefaultLanguageCode(code) {
|
|
105
|
-
this.defaultLanguageCode = code;
|
|
106
|
-
this.languageCodeSubject.next(this.getNavigatorLanguageCodeOrDefault());
|
|
107
|
-
}
|
|
108
|
-
getNavigatorLanguageCodeOrDefault() {
|
|
109
|
-
return !!navigator && !!navigator.language
|
|
110
|
-
? navigator.language.split('-')[0]
|
|
111
|
-
: this.defaultLanguageCode;
|
|
112
|
-
}
|
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkDictionaryService, deps: [{ token: i1.HttpClient }, { token: i2.GrowlBrokerService }, { token: i3.ValidationHandlerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
114
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkDictionaryService, providedIn: 'root' }); }
|
|
115
|
-
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkDictionaryService, decorators: [{
|
|
117
|
-
type: Injectable,
|
|
118
|
-
args: [{
|
|
119
|
-
providedIn: 'root'
|
|
120
|
-
}]
|
|
121
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GrowlBrokerService }, { type: i3.ValidationHandlerService }] });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWRpY3Rpb25hcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXZELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFFMUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUM7QUFlcEQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUN0QixLQUFhLEVBQ2IsWUFBOEIsRUFDeEIsRUFBRTtJQUNSLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNwRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDdkUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxTQUFTLGVBQWU7QUFDcEIsOERBQThEO0FBQzlELFVBQWUsRUFDZixHQUFXLEVBQ1gsWUFBOEI7SUFFOUIsT0FBTyxVQUFVLENBQ2IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFDakQsWUFBWSxDQUNmLENBQUM7QUFDTixDQUFDO0FBS0QsTUFBTSxPQUFPLG9CQUFvQjtJQVM3QixZQUNZLFVBQXNCLEVBQ3RCLFlBQWdDLEVBQ2hDLGlCQUEyQztRQUYzQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBVi9DLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUdsQix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FDdEQsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQzNDLENBQUM7UUFPRSxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLFVBQVU7YUFDOUMsR0FBRyxDQUFhLEdBQUcsbUJBQW1CLFlBQVksQ0FBQzthQUNuRCxJQUFJLENBQ0QsVUFBVSxDQUFDLENBQUMsQ0FBVSxFQUFFLEVBQUU7WUFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixZQUFZLENBQUMsV0FBVyxDQUNwQixTQUFTLENBQUMsTUFBTSxFQUNoQixpREFBaUQsQ0FDcEQsQ0FBQztZQUNGLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQztRQUVOLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxJQUFJLENBQzFELFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNyQixNQUFNLEdBQUcsR0FDTCxtQkFBbUI7Z0JBQ25CLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBaUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUNoRCxVQUFVLENBQUMsQ0FBQyxDQUFVLEVBQUUsRUFBRTtnQkFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakIsWUFBWSxDQUFDLFdBQVcsQ0FDcEIsU0FBUyxDQUFDLE1BQU0sRUFDaEIscURBQXFELENBQ3hELENBQUM7Z0JBQ0YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDTixDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2pCLENBQUM7SUFDTixDQUFDO0lBRUQsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXLEVBQUUsWUFBOEI7UUFDOUMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUNqQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUNwRSxDQUFDO0lBQ04sQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXLEVBQUUsWUFBOEI7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCO1FBQ2xCLE9BQU8sYUFBYSxDQUFDO1lBQ2pCLElBQUksQ0FBQyw0QkFBNEI7WUFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRTtTQUMxQyxDQUFDLENBQUMsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNqRCxNQUFNLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQy9DLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLENBQ2pDLENBQUM7WUFDRixJQUFJLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDOUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ0wscURBQXFEO1lBQ3JELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO0lBQ04sQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQVk7UUFDL0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVPLGlDQUFpQztRQUNyQyxPQUFPLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ3RDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNuQyxDQUFDOytHQXRIUSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZqQixNQUFNOzs0RkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBHcm93bEJyb2tlclNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1ncm93bC9ncm93bC1icm9rZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHcm93bFR5cGUgfSBmcm9tICcuLi9mb2Vobi1ncm93bC9ncm93bC10eXBlcyc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24taGFuZGxlci5zZXJ2aWNlJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IERFRkFVTFRfRElDVElPTkFSWSB9IGZyb20gJy4vZGVmYXVsdC1kaWN0aW9uYXJ5JztcblxuZXhwb3J0IGNvbnN0IERJQ1RJT05BUllfQkFTRV9VUkwgPSAnYXBpL2RpY3Rpb25hcnknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlaG9sZGVyVHlwZSB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpY3Rpb25hcnlUeXBlIHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2Uge1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBwYXJhbSB2YWx1ZSB0byBzZWFyY2ggaW5cbiAqIEBwYXJhbSBwbGFjZWhvbGRlcnMgdG8gYmUgcmVwbGFjZWRcbiAqIEByZXR1cm5zIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgcmVwbGFjZUFsbCA9IChcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIHBsYWNlaG9sZGVycz86IFBsYWNlaG9sZGVyVHlwZVxuKTogc3RyaW5nID0+IHtcbiAgICBpZiAoIXBsYWNlaG9sZGVycykge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHBsYWNlaG9sZGVycykucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZVRvUmVwbGFjZSA9IHBsYWNlaG9sZGVyc1trZXldO1xuICAgICAgICByZXR1cm4gcmVzdWx0LnJlcGxhY2UobmV3IFJlZ0V4cChgeyR7a2V5fX1gLCAnZycpLCB2YWx1ZVRvUmVwbGFjZSk7XG4gICAgfSwgdmFsdWUpO1xufTtcblxuLyoqXG4gKiBAcGFyYW0gZGljdGlvbmFyeSBob2xkaW5nIGFsbCBrZXlzXG4gKiBAcGFyYW0ga2V5IGZyb20gZGljdGlvbmFyeVxuICogQHBhcmFtIHBsYWNlaG9sZGVycyB0byBiZSByZXBsYWNlZFxuICogQHJldHVybnMgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGdldEtleU9yRGVmYXVsdChcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGRpY3Rpb25hcnk6IGFueSxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBwbGFjZWhvbGRlcnM/OiBQbGFjZWhvbGRlclR5cGVcbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlcGxhY2VBbGwoXG4gICAgICAgIGRpY3Rpb25hcnlba2V5XSB8fCBERUZBVUxUX0RJQ1RJT05BUllba2V5XSB8fCBrZXksXG4gICAgICAgIHBsYWNlaG9sZGVyc1xuICAgICk7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2RrRGljdGlvbmFyeVNlcnZpY2Uge1xuICAgIHByaXZhdGUgZGljdGlvbmFyeTogRGljdGlvbmFyeVR5cGU7XG4gICAgcHJpdmF0ZSBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gJ2ZyJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpY3Rpb25hcnlPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPERpY3Rpb25hcnlUeXBlPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF2YWlsYWJsZUxhbmd1YWdlc09ic2VydmFibGU6IE9ic2VydmFibGU8TGFuZ3VhZ2VbXT47XG4gICAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZUNvZGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KFxuICAgICAgICB0aGlzLmdldE5hdmlnYXRvckxhbmd1YWdlQ29kZU9yRGVmYXVsdCgpXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xTZXJ2aWNlOiBHcm93bEJyb2tlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc09ic2VydmFibGUgPSB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5nZXQ8TGFuZ3VhZ2VbXT4oYCR7RElDVElPTkFSWV9CQVNFX1VSTH0vbGFuZ3VhZ2VzYClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgZ3Jvd2xTZXJ2aWNlLmFkZFdpdGhUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgR3Jvd2xUeXBlLkRBTkdFUixcbiAgICAgICAgICAgICAgICAgICAgICAgICdJbXBvc3NpYmxlIGRlIHLDqWN1cMOpcmVyIGxlcyBsYW5ndWVzIGRpc3BvbmlibGVzJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGljdGlvbmFyeU9ic2VydmFibGUgPSB0aGlzLmdldEN1cnJlbnRMYW5ndWFnZUNvZGUoKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKGxhbmd1YWdlQ29kZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID1cbiAgICAgICAgICAgICAgICAgICAgRElDVElPTkFSWV9CQVNFX1VSTCArXG4gICAgICAgICAgICAgICAgICAgICghIWxhbmd1YWdlQ29kZSA/IGAvJHtsYW5ndWFnZUNvZGV9YCA6ICcnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxEaWN0aW9uYXJ5VHlwZT4odXJsKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3Jvd2xTZXJ2aWNlLmFkZFdpdGhUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyb3dsVHlwZS5EQU5HRVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ltcG9zc2libGUgZGUgcsOpY3Vww6lyZXIgbGVzIHZhbGV1cnMgZHUgZGljdGlvbm5haXJlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB0YXAoZGljdGlvbmFyeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpY3Rpb25hcnkgPSBkaWN0aW9uYXJ5O1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0RGljdGlvbmFyeSgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnlUeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpY3Rpb25hcnlPYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIGdldEF2YWlsYWJsZUxhbmd1YWdlcygpOiBPYnNlcnZhYmxlPExhbmd1YWdlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICBnZXRLZXkoa2V5OiBzdHJpbmcsIHBsYWNlaG9sZGVycz86IFBsYWNlaG9sZGVyVHlwZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpY3Rpb25hcnlPYnNlcnZhYmxlLnBpcGUoXG4gICAgICAgICAgICBtYXAoZGljdGlvbmFyeSA9PiBnZXRLZXlPckRlZmF1bHQoZGljdGlvbmFyeSwga2V5LCBwbGFjZWhvbGRlcnMpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEtleVN5bmMoa2V5OiBzdHJpbmcsIHBsYWNlaG9sZGVycz86IFBsYWNlaG9sZGVyVHlwZSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5kaWN0aW9uYXJ5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpY3Rpb25hcnkgbm90IGluaXRpYWxpemVkLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldEtleU9yRGVmYXVsdCh0aGlzLmRpY3Rpb25hcnksIGtleSwgcGxhY2Vob2xkZXJzKTtcbiAgICB9XG5cbiAgICBnZXRQbHVyYWxNYXJrZXJTeW5jKGNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWNvdW50IHx8IGNvdW50ID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRLZXlTeW5jKCdwbHVyYWwtbWFya2VyJyk7XG4gICAgfVxuXG4gICAgY2hhbmdlTGFuZ3VhZ2UoY29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghIWNvZGUgJiYgdGhpcy5sYW5ndWFnZUNvZGVTdWJqZWN0LmdldFZhbHVlKCkgIT09IGNvZGUpIHtcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlU3ViamVjdC5uZXh0KGNvZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudExhbmd1YWdlQ29kZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc09ic2VydmFibGUsXG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlQ29kZVN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW2F2YWlsYWJsZUxhbmd1YWdlQ29kZXMsIGxhbmd1YWdlQ29kZV0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVkTGFuZ3VhZ2UgPSBhdmFpbGFibGVMYW5ndWFnZUNvZGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIGxjID0+IGxjLmNvZGUgPT09IGxhbmd1YWdlQ29kZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCEhbWF0Y2hlZExhbmd1YWdlICYmICEhbWF0Y2hlZExhbmd1YWdlLmNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG1hdGNoZWRMYW5ndWFnZS5jb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuZGVmYXVsdExhbmd1YWdlQ29kZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gcmVzZXQgZXJyb3JzIGFzIHRoZXkgYXJlIHRyYW5zbGF0ZWQgaW4gdGhlIGJhY2tlbmRcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnVwZGF0ZUVycm9ycyhbXSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0RGVmYXVsdExhbmd1YWdlQ29kZShjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0TGFuZ3VhZ2VDb2RlID0gY29kZTtcbiAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVTdWJqZWN0Lm5leHQodGhpcy5nZXROYXZpZ2F0b3JMYW5ndWFnZUNvZGVPckRlZmF1bHQoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROYXZpZ2F0b3JMYW5ndWFnZUNvZGVPckRlZmF1bHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICEhbmF2aWdhdG9yICYmICEhbmF2aWdhdG9yLmxhbmd1YWdlXG4gICAgICAgICAgICA/IG5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdXG4gICAgICAgICAgICA6IHRoaXMuZGVmYXVsdExhbmd1YWdlQ29kZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLWRyYWZ0cy9kcmFmdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEcmFmdCB7XG4gICAgcmVmZXJlbmNlPzogc3RyaW5nO1xuICAgIHJlZmVyZW5jZUludGVybmU/OiBzdHJpbmc7XG4gICAgbW9kaWZpY2F0aW9uRGF0ZT86IG51bWJlcltdO1xufVxuIl19
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./drafts.service";
|
|
5
|
-
import * as i2 from "../sdk-date/date.helper";
|
|
6
|
-
import * as i3 from "@angular/router";
|
|
7
|
-
import * as i4 from "../sdk-appinfo/application-info.service";
|
|
8
|
-
import * as i5 from "@angular/common";
|
|
9
|
-
import * as i6 from "../foehn-icons/foehn-icon-search.component";
|
|
10
|
-
import * as i7 from "../foehn-icons/foehn-icon-pencil.component";
|
|
11
|
-
import * as i8 from "../foehn-table/foehn-table.component";
|
|
12
|
-
import * as i9 from "../foehn-modal/foehn-modal.component";
|
|
13
|
-
import * as i10 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
14
|
-
const DEFAULT_DRAFTS_URL = 'api/{etapeId}/drafts';
|
|
15
|
-
export class DraftsContainerComponent {
|
|
16
|
-
constructor(draftsService, dateHelper, router, applicationInfoService) {
|
|
17
|
-
this.draftsService = draftsService;
|
|
18
|
-
this.dateHelper = dateHelper;
|
|
19
|
-
this.router = router;
|
|
20
|
-
this.applicationInfoService = applicationInfoService;
|
|
21
|
-
this.draftsHidden = false;
|
|
22
|
-
this.draftsToDisplay = this.draftsService.getAllDrafts();
|
|
23
|
-
this.espaceSecuriseUrl =
|
|
24
|
-
this.applicationInfoService.getSafeEspacesSecuriseUrl();
|
|
25
|
-
this.etapeTitle = this.applicationInfoService.currentEtapeInfo.pipe(map(etape => etape.titreEtape));
|
|
26
|
-
}
|
|
27
|
-
ngAfterViewInit() {
|
|
28
|
-
this.columnsConfiguration = [
|
|
29
|
-
{
|
|
30
|
-
id: 'reference',
|
|
31
|
-
columnLabelKey: 'draft-container.list.reference.label',
|
|
32
|
-
template: this.referenceLink
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
id: 'modificationDate',
|
|
36
|
-
columnLabelKey: 'draft-container.list.modificationDate.label',
|
|
37
|
-
valueGetter: item => this.dateHelper.arrayToDisplayDateDMY(item.modificationDate, true)
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
id: 'referenceInterne',
|
|
41
|
-
columnLabelKey: 'draft-container.list.referenceInterne.label',
|
|
42
|
-
valueGetter: item => item.referenceInterne || '-'
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
id: 'linkToES',
|
|
46
|
-
columnLabelKey: 'draft-container.list.details-in-es.label',
|
|
47
|
-
template: this.detailLink
|
|
48
|
-
}
|
|
49
|
-
];
|
|
50
|
-
}
|
|
51
|
-
showDrafts() {
|
|
52
|
-
this.draftsHidden = false;
|
|
53
|
-
}
|
|
54
|
-
hideDrafts() {
|
|
55
|
-
this.draftsHidden = true;
|
|
56
|
-
}
|
|
57
|
-
ngOnChanges(changes) {
|
|
58
|
-
const etapeIdChange = changes.etapeId;
|
|
59
|
-
if (etapeIdChange && etapeIdChange.currentValue) {
|
|
60
|
-
// Change the URL of the drafts when the etapeId is set.
|
|
61
|
-
this.draftsService.setDraftsUrl(this.formatUrl(etapeIdChange.currentValue));
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
// We want to support the use-case wheter the etapeId isn't defined.
|
|
65
|
-
const draftsUrl = changes.draftsUrl;
|
|
66
|
-
if (draftsUrl && draftsUrl.currentValue) {
|
|
67
|
-
// Change the URL of the drafts when the etapeId is set.
|
|
68
|
-
this.draftsService.setDraftsUrl(draftsUrl.currentValue);
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
resumeDraft(draft) {
|
|
73
|
-
this.router.navigate([`/${draft.reference}`]);
|
|
74
|
-
this.draftsHidden = true;
|
|
75
|
-
}
|
|
76
|
-
formatUrl(etapeId) {
|
|
77
|
-
const url = this.draftsUrl || DEFAULT_DRAFTS_URL;
|
|
78
|
-
return !!etapeId
|
|
79
|
-
? url.replace('{etapeId}', etapeId)
|
|
80
|
-
: url.replace('{etapeId}/', '');
|
|
81
|
-
}
|
|
82
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DraftsContainerComponent, deps: [{ token: i1.DraftsService }, { token: i2.DateHelper }, { token: i3.Router }, { token: i4.ApplicationInfoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
83
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DraftsContainerComponent, selector: "sdk-drafts-container", inputs: { etapeId: "etapeId", draftsUrl: "draftsUrl" }, viewQueries: [{ propertyName: "referenceLink", first: true, predicate: ["referenceLink"], descendants: true }, { propertyName: "detailLink", first: true, predicate: ["detailLink"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"draftsToDisplay | async as drafts\">\n <div class=\"d-flex flex-column container mt-2\" *ngIf=\"!!drafts.length\">\n <div class=\"mb-2 mt-2\">\n <button\n id=\"showDraftsButton\"\n type=\"button\"\n class=\"btn btn-link pe-0 ps-0\"\n (click)=\"showDrafts()\"\n #showDraftsButton\n >\n <foehn-icon-pencil></foehn-icon-pencil>\n <span class=\"me-2\"></span>\n <span\n class=\"ps-0 me-0\"\n [innerHTML]=\"\n 'draft-container.button.show-drafts'\n | fromDictionary\n : { draftsLength: drafts.length.toString() }\n \"\n ></span>\n </button>\n </div>\n\n <foehn-modal\n [modalHeaderText]=\"'draft-container.modal.title' | fromDictionary\"\n [isModalVisible]=\"!draftsHidden\"\n (isModalVisibleChange)=\"draftsHidden = !$event\"\n [modalTriggerHtmlElement]=\"showDraftsButton\"\n modalSize=\"modal-lg\"\n >\n <h3 class=\"mt-0 h4\" [innerHTML]=\"etapeTitle | async\"></h3>\n\n <foehn-table\n id=\"draftTable\"\n [list]=\"drafts\"\n [columnsConfiguration]=\"columnsConfiguration\"\n [sort]=\"{ sortDirection: 'DESC' }\"\n [itemsPerPage]=\"5\"\n ></foehn-table>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-flex\">\n <a\n id=\"allDraftsButton\"\n class=\"btn btn-primary\"\n [href]=\"\n (espaceSecuriseUrl | async) +\n 'demandes/search/MINE/INITIAL'\n \"\n >\n {{\n 'draft-container.modal.drafts-in-es.button'\n | fromDictionary\n }}\n </a>\n\n <button\n id=\"hideDraftsButton\"\n type=\"button\"\n class=\"btn btn-secondary ms-auto\"\n (click)=\"draftsHidden = true\"\n >\n {{\n 'draft-container.modal.close.button'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </foehn-modal>\n </div>\n</ng-container>\n\n<ng-template #referenceLink let-draft=\"item\" let-index=\"index\">\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); resumeDraft(draft)\"\n [title]=\"\n 'draft-container.list.reference.link'\n | fromDictionary: { reference: draft.reference }\n \"\n >\n {{ draft.reference }}\n </a>\n</ng-template>\n\n<ng-template #detailLink let-draft=\"item\" let-index=\"index\">\n <a\n [href]=\"(espaceSecuriseUrl | async) + 'demandes/' + draft.reference\"\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n >\n <foehn-icon-search\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n ></foehn-icon-search>\n </a>\n</ng-template>\n", styles: [":host ::ng-deep foehn-icon-pencil .svg-inline--fa{color:var(--vd-primary-dark)!important}:host ::ng-deep a#allDraftsButton>foehn-icon-external-link-alt .svg-inline--fa{color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.FoehnIconSearchComponent, selector: "foehn-icon-search" }, { kind: "component", type: i7.FoehnIconPencilComponent, selector: "foehn-icon-pencil" }, { kind: "component", type: i8.FoehnTableComponent, selector: "foehn-table", inputs: ["itemsPerPage", "title", "titleSrOnly", "previousLabel", "nextLabel", "totalElements", "fixedPageCount", "columnsConfiguration", "sort", "tableClass", "list", "trackByFn"], outputs: ["pageChange", "sortChange", "rowClick"] }, { kind: "component", type: i9.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
84
|
-
}
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DraftsContainerComponent, decorators: [{
|
|
86
|
-
type: Component,
|
|
87
|
-
args: [{ selector: 'sdk-drafts-container', template: "<ng-container *ngIf=\"draftsToDisplay | async as drafts\">\n <div class=\"d-flex flex-column container mt-2\" *ngIf=\"!!drafts.length\">\n <div class=\"mb-2 mt-2\">\n <button\n id=\"showDraftsButton\"\n type=\"button\"\n class=\"btn btn-link pe-0 ps-0\"\n (click)=\"showDrafts()\"\n #showDraftsButton\n >\n <foehn-icon-pencil></foehn-icon-pencil>\n <span class=\"me-2\"></span>\n <span\n class=\"ps-0 me-0\"\n [innerHTML]=\"\n 'draft-container.button.show-drafts'\n | fromDictionary\n : { draftsLength: drafts.length.toString() }\n \"\n ></span>\n </button>\n </div>\n\n <foehn-modal\n [modalHeaderText]=\"'draft-container.modal.title' | fromDictionary\"\n [isModalVisible]=\"!draftsHidden\"\n (isModalVisibleChange)=\"draftsHidden = !$event\"\n [modalTriggerHtmlElement]=\"showDraftsButton\"\n modalSize=\"modal-lg\"\n >\n <h3 class=\"mt-0 h4\" [innerHTML]=\"etapeTitle | async\"></h3>\n\n <foehn-table\n id=\"draftTable\"\n [list]=\"drafts\"\n [columnsConfiguration]=\"columnsConfiguration\"\n [sort]=\"{ sortDirection: 'DESC' }\"\n [itemsPerPage]=\"5\"\n ></foehn-table>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-flex\">\n <a\n id=\"allDraftsButton\"\n class=\"btn btn-primary\"\n [href]=\"\n (espaceSecuriseUrl | async) +\n 'demandes/search/MINE/INITIAL'\n \"\n >\n {{\n 'draft-container.modal.drafts-in-es.button'\n | fromDictionary\n }}\n </a>\n\n <button\n id=\"hideDraftsButton\"\n type=\"button\"\n class=\"btn btn-secondary ms-auto\"\n (click)=\"draftsHidden = true\"\n >\n {{\n 'draft-container.modal.close.button'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </foehn-modal>\n </div>\n</ng-container>\n\n<ng-template #referenceLink let-draft=\"item\" let-index=\"index\">\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); resumeDraft(draft)\"\n [title]=\"\n 'draft-container.list.reference.link'\n | fromDictionary: { reference: draft.reference }\n \"\n >\n {{ draft.reference }}\n </a>\n</ng-template>\n\n<ng-template #detailLink let-draft=\"item\" let-index=\"index\">\n <a\n [href]=\"(espaceSecuriseUrl | async) + 'demandes/' + draft.reference\"\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n >\n <foehn-icon-search\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n ></foehn-icon-search>\n </a>\n</ng-template>\n", styles: [":host ::ng-deep foehn-icon-pencil .svg-inline--fa{color:var(--vd-primary-dark)!important}:host ::ng-deep a#allDraftsButton>foehn-icon-external-link-alt .svg-inline--fa{color:#fff!important}\n"] }]
|
|
88
|
-
}], ctorParameters: () => [{ type: i1.DraftsService }, { type: i2.DateHelper }, { type: i3.Router }, { type: i4.ApplicationInfoService }], propDecorators: { referenceLink: [{
|
|
89
|
-
type: ViewChild,
|
|
90
|
-
args: ['referenceLink']
|
|
91
|
-
}], detailLink: [{
|
|
92
|
-
type: ViewChild,
|
|
93
|
-
args: ['detailLink']
|
|
94
|
-
}], etapeId: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], draftsUrl: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZnRzLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLWRyYWZ0cy9kcmFmdHMtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZHJhZnRzL2RyYWZ0cy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxLQUFLLEVBSUwsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUXJDLE1BQU0sa0JBQWtCLEdBQUcsc0JBQXNCLENBQUM7QUFRbEQsTUFBTSxPQUFPLHdCQUF3QjtJQXNCakMsWUFDWSxhQUE0QixFQUM1QixVQUFzQixFQUN0QixNQUFjLEVBQ2Qsc0JBQThDO1FBSDlDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFWMUQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFZakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxpQkFBaUI7WUFDbEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUMvRCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQ2pDLENBQUM7SUFDTixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxvQkFBb0IsR0FBRztZQUN4QjtnQkFDSSxFQUFFLEVBQUUsV0FBVztnQkFDZixjQUFjLEVBQUUsc0NBQXNDO2dCQUN0RCxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDL0I7WUFDRDtnQkFDSSxFQUFFLEVBQUUsa0JBQWtCO2dCQUN0QixjQUFjLEVBQUUsNkNBQTZDO2dCQUM3RCxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FDakMsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQ1A7YUFDUjtZQUNEO2dCQUNJLEVBQUUsRUFBRSxrQkFBa0I7Z0JBQ3RCLGNBQWMsRUFBRSw2Q0FBNkM7Z0JBQzdELFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxHQUFHO2FBQ3BEO1lBQ0Q7Z0JBQ0ksRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsY0FBYyxFQUFFLDBDQUEwQztnQkFDMUQsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzVCO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDdEMsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzlDLHdEQUF3RDtZQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQzdDLENBQUM7WUFDRixPQUFPO1FBQ1gsQ0FBQztRQUVELG9FQUFvRTtRQUNwRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3BDLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0Qyx3REFBd0Q7WUFDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hELE9BQU87UUFDWCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFTyxTQUFTLENBQUMsT0FBZTtRQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLGtCQUFrQixDQUFDO1FBQ2pELE9BQU8sQ0FBQyxDQUFDLE9BQU87WUFDWixDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDOytHQXRHUSx3QkFBd0I7bUdBQXhCLHdCQUF3QixvVkMzQnJDLDZuSEFzR0E7OzRGRDNFYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBRUksc0JBQXNCO3FLQU1oQyxhQUFhO3NCQURaLFNBQVM7dUJBQUMsZUFBZTtnQkFJMUIsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFlBQVk7Z0JBSXZCLE9BQU87c0JBRE4sS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvZWhuVGFibGVDb2x1bW5Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vZm9laG4tdGFibGUvZm9laG4tdGFibGUtY29sdW1uLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSAnLi4vc2RrLWRhdGUvZGF0ZS5oZWxwZXInO1xuaW1wb3J0IHsgRHJhZnQgfSBmcm9tICcuL2RyYWZ0Lm1vZGVsJztcbmltcG9ydCB7IERyYWZ0c1NlcnZpY2UgfSBmcm9tICcuL2RyYWZ0cy5zZXJ2aWNlJztcblxuY29uc3QgREVGQVVMVF9EUkFGVFNfVVJMID0gJ2FwaS97ZXRhcGVJZH0vZHJhZnRzJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ3Nkay1kcmFmdHMtY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHJhZnRzLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJhZnRzLWNvbnRhaW5lci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHJhZnRzQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCdyZWZlcmVuY2VMaW5rJylcbiAgICByZWZlcmVuY2VMaW5rOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2RldGFpbExpbmsnKVxuICAgIGRldGFpbExpbms6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gICAgQElucHV0KClcbiAgICBldGFwZUlkOiBzdHJpbmc7XG5cbiAgICAvLyBTb21lIHByZXN0YXRpb24gaGF2ZSB0aGVpciBvd24gYmFja2VuZCB0byBoYW5kbGUgZHJhZnRzXG4gICAgQElucHV0KClcbiAgICBkcmFmdHNVcmw6IHN0cmluZztcblxuICAgIGRyYWZ0c1RvRGlzcGxheTogT2JzZXJ2YWJsZTxEcmFmdFtdPjtcblxuICAgIGRyYWZ0c0hpZGRlbiA9IGZhbHNlO1xuXG4gICAgY29sdW1uc0NvbmZpZ3VyYXRpb246IEZvZWhuVGFibGVDb2x1bW5Db25maWd1cmF0aW9uPERyYWZ0PltdO1xuICAgIGVzcGFjZVNlY3VyaXNlVXJsOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgZXRhcGVUaXRsZTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZHJhZnRzU2VydmljZTogRHJhZnRzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkYXRlSGVscGVyOiBEYXRlSGVscGVyLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5kcmFmdHNUb0Rpc3BsYXkgPSB0aGlzLmRyYWZ0c1NlcnZpY2UuZ2V0QWxsRHJhZnRzKCk7XG4gICAgICAgIHRoaXMuZXNwYWNlU2VjdXJpc2VVcmwgPVxuICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmdldFNhZmVFc3BhY2VzU2VjdXJpc2VVcmwoKTtcbiAgICAgICAgdGhpcy5ldGFwZVRpdGxlID0gdGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmN1cnJlbnRFdGFwZUluZm8ucGlwZShcbiAgICAgICAgICAgIG1hcChldGFwZSA9PiBldGFwZS50aXRyZUV0YXBlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2x1bW5zQ29uZmlndXJhdGlvbiA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ3JlZmVyZW5jZScsXG4gICAgICAgICAgICAgICAgY29sdW1uTGFiZWxLZXk6ICdkcmFmdC1jb250YWluZXIubGlzdC5yZWZlcmVuY2UubGFiZWwnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0aGlzLnJlZmVyZW5jZUxpbmtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICdtb2RpZmljYXRpb25EYXRlJyxcbiAgICAgICAgICAgICAgICBjb2x1bW5MYWJlbEtleTogJ2RyYWZ0LWNvbnRhaW5lci5saXN0Lm1vZGlmaWNhdGlvbkRhdGUubGFiZWwnLFxuICAgICAgICAgICAgICAgIHZhbHVlR2V0dGVyOiBpdGVtID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUhlbHBlci5hcnJheVRvRGlzcGxheURhdGVETVkoXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm1vZGlmaWNhdGlvbkRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICdyZWZlcmVuY2VJbnRlcm5lJyxcbiAgICAgICAgICAgICAgICBjb2x1bW5MYWJlbEtleTogJ2RyYWZ0LWNvbnRhaW5lci5saXN0LnJlZmVyZW5jZUludGVybmUubGFiZWwnLFxuICAgICAgICAgICAgICAgIHZhbHVlR2V0dGVyOiBpdGVtID0+IGl0ZW0ucmVmZXJlbmNlSW50ZXJuZSB8fCAnLSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICdsaW5rVG9FUycsXG4gICAgICAgICAgICAgICAgY29sdW1uTGFiZWxLZXk6ICdkcmFmdC1jb250YWluZXIubGlzdC5kZXRhaWxzLWluLWVzLmxhYmVsJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy5kZXRhaWxMaW5rXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgc2hvd0RyYWZ0cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcmFmdHNIaWRkZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBoaWRlRHJhZnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyYWZ0c0hpZGRlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBldGFwZUlkQ2hhbmdlID0gY2hhbmdlcy5ldGFwZUlkO1xuICAgICAgICBpZiAoZXRhcGVJZENoYW5nZSAmJiBldGFwZUlkQ2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBVUkwgb2YgdGhlIGRyYWZ0cyB3aGVuIHRoZSBldGFwZUlkIGlzIHNldC5cbiAgICAgICAgICAgIHRoaXMuZHJhZnRzU2VydmljZS5zZXREcmFmdHNVcmwoXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtYXRVcmwoZXRhcGVJZENoYW5nZS5jdXJyZW50VmFsdWUpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2Ugd2FudCB0byBzdXBwb3J0IHRoZSB1c2UtY2FzZSB3aGV0ZXIgdGhlIGV0YXBlSWQgaXNuJ3QgZGVmaW5lZC5cbiAgICAgICAgY29uc3QgZHJhZnRzVXJsID0gY2hhbmdlcy5kcmFmdHNVcmw7XG4gICAgICAgIGlmIChkcmFmdHNVcmwgJiYgZHJhZnRzVXJsLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBVUkwgb2YgdGhlIGRyYWZ0cyB3aGVuIHRoZSBldGFwZUlkIGlzIHNldC5cbiAgICAgICAgICAgIHRoaXMuZHJhZnRzU2VydmljZS5zZXREcmFmdHNVcmwoZHJhZnRzVXJsLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXN1bWVEcmFmdChkcmFmdDogRHJhZnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvJHtkcmFmdC5yZWZlcmVuY2V9YF0pO1xuICAgICAgICB0aGlzLmRyYWZ0c0hpZGRlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRVcmwoZXRhcGVJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5kcmFmdHNVcmwgfHwgREVGQVVMVF9EUkFGVFNfVVJMO1xuICAgICAgICByZXR1cm4gISFldGFwZUlkXG4gICAgICAgICAgICA/IHVybC5yZXBsYWNlKCd7ZXRhcGVJZH0nLCBldGFwZUlkKVxuICAgICAgICAgICAgOiB1cmwucmVwbGFjZSgne2V0YXBlSWR9LycsICcnKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZHJhZnRzVG9EaXNwbGF5IHwgYXN5bmMgYXMgZHJhZnRzXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb250YWluZXIgbXQtMlwiICpuZ0lmPVwiISFkcmFmdHMubGVuZ3RoXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIG10LTJcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZD1cInNob3dEcmFmdHNCdXR0b25cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHBlLTAgcHMtMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dEcmFmdHMoKVwiXG4gICAgICAgICAgICAgICAgI3Nob3dEcmFmdHNCdXR0b25cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1wZW5jaWw+PC9mb2Vobi1pY29uLXBlbmNpbD5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcy0wIG1lLTBcIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RyYWZ0LWNvbnRhaW5lci5idXR0b24uc2hvdy1kcmFmdHMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHsgZHJhZnRzTGVuZ3RoOiBkcmFmdHMubGVuZ3RoLnRvU3RyaW5nKCkgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGZvZWhuLW1vZGFsXG4gICAgICAgICAgICBbbW9kYWxIZWFkZXJUZXh0XT1cIidkcmFmdC1jb250YWluZXIubW9kYWwudGl0bGUnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICAgICAgW2lzTW9kYWxWaXNpYmxlXT1cIiFkcmFmdHNIaWRkZW5cIlxuICAgICAgICAgICAgKGlzTW9kYWxWaXNpYmxlQ2hhbmdlKT1cImRyYWZ0c0hpZGRlbiA9ICEkZXZlbnRcIlxuICAgICAgICAgICAgW21vZGFsVHJpZ2dlckh0bWxFbGVtZW50XT1cInNob3dEcmFmdHNCdXR0b25cIlxuICAgICAgICAgICAgbW9kYWxTaXplPVwibW9kYWwtbGdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJtdC0wIGg0XCIgW2lubmVySFRNTF09XCJldGFwZVRpdGxlIHwgYXN5bmNcIj48L2gzPlxuXG4gICAgICAgICAgICA8Zm9laG4tdGFibGVcbiAgICAgICAgICAgICAgICBpZD1cImRyYWZ0VGFibGVcIlxuICAgICAgICAgICAgICAgIFtsaXN0XT1cImRyYWZ0c1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtbnNDb25maWd1cmF0aW9uXT1cImNvbHVtbnNDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgICBbc29ydF09XCJ7IHNvcnREaXJlY3Rpb246ICdERVNDJyB9XCJcbiAgICAgICAgICAgICAgICBbaXRlbXNQZXJQYWdlXT1cIjVcIlxuICAgICAgICAgICAgPjwvZm9laG4tdGFibGU+XG5cbiAgICAgICAgICAgIDxkaXYgbW9kYWwtZm9vdGVyIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFsbERyYWZ0c0J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXNwYWNlU2VjdXJpc2VVcmwgfCBhc3luYykgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZW1hbmRlcy9zZWFyY2gvTUlORS9JTklUSUFMJ1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHJhZnQtY29udGFpbmVyLm1vZGFsLmRyYWZ0cy1pbi1lcy5idXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImhpZGVEcmFmdHNCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IG1zLWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRyYWZ0c0hpZGRlbiA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkcmFmdC1jb250YWluZXIubW9kYWwuY2xvc2UuYnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZvZWhuLW1vZGFsPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcmVmZXJlbmNlTGluayBsZXQtZHJhZnQ9XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICA8YVxuICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgcmVzdW1lRHJhZnQoZHJhZnQpXCJcbiAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgJ2RyYWZ0LWNvbnRhaW5lci5saXN0LnJlZmVyZW5jZS5saW5rJ1xuICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnk6IHsgcmVmZXJlbmNlOiBkcmFmdC5yZWZlcmVuY2UgfVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAge3sgZHJhZnQucmVmZXJlbmNlIH19XG4gICAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZXRhaWxMaW5rIGxldC1kcmFmdD1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxhXG4gICAgICAgIFtocmVmXT1cIihlc3BhY2VTZWN1cmlzZVVybCB8IGFzeW5jKSArICdkZW1hbmRlcy8nICsgZHJhZnQucmVmZXJlbmNlXCJcbiAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgJ2RyYWZ0LWNvbnRhaW5lci5saXN0LmRldGFpbHMtaW4tZXMubGluaydcbiAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5OiB7IHJlZmVyZW5jZTogZHJhZnQucmVmZXJlbmNlIH1cbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIDxmb2Vobi1pY29uLXNlYXJjaFxuICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICdkcmFmdC1jb250YWluZXIubGlzdC5kZXRhaWxzLWluLWVzLmxpbmsnXG4gICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnk6IHsgcmVmZXJlbmNlOiBkcmFmdC5yZWZlcmVuY2UgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvZm9laG4taWNvbi1zZWFyY2g+XG4gICAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import { RouterLink } from '@angular/router';
|
|
5
|
-
import { FoehnIconsModule } from '../foehn-icons/foehn-icons.module';
|
|
6
|
-
import { FoehnModalModule } from '../foehn-modal/foehn-modal.module';
|
|
7
|
-
import { FoehnTableModule } from '../foehn-table/foehn-table.module';
|
|
8
|
-
import { PipeModule } from '../pipes/pipes.module';
|
|
9
|
-
import { SdkDictionaryModule } from '../sdk-dictionary/sdk-dictionary.module';
|
|
10
|
-
import { DraftsContainerComponent } from './drafts-container.component';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
export class DraftsModule {
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DraftsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DraftsModule, declarations: [DraftsContainerComponent], imports: [CommonModule,
|
|
15
|
-
HttpClientModule,
|
|
16
|
-
FoehnIconsModule,
|
|
17
|
-
PipeModule,
|
|
18
|
-
FoehnTableModule,
|
|
19
|
-
FoehnModalModule,
|
|
20
|
-
SdkDictionaryModule,
|
|
21
|
-
RouterLink], exports: [DraftsContainerComponent] }); }
|
|
22
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DraftsModule, imports: [CommonModule,
|
|
23
|
-
HttpClientModule,
|
|
24
|
-
FoehnIconsModule,
|
|
25
|
-
PipeModule,
|
|
26
|
-
FoehnTableModule,
|
|
27
|
-
FoehnModalModule,
|
|
28
|
-
SdkDictionaryModule] }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DraftsModule, decorators: [{
|
|
31
|
-
type: NgModule,
|
|
32
|
-
args: [{
|
|
33
|
-
imports: [
|
|
34
|
-
CommonModule,
|
|
35
|
-
HttpClientModule,
|
|
36
|
-
FoehnIconsModule,
|
|
37
|
-
PipeModule,
|
|
38
|
-
FoehnTableModule,
|
|
39
|
-
FoehnModalModule,
|
|
40
|
-
SdkDictionaryModule,
|
|
41
|
-
RouterLink
|
|
42
|
-
],
|
|
43
|
-
declarations: [DraftsContainerComponent],
|
|
44
|
-
exports: [DraftsContainerComponent]
|
|
45
|
-
}]
|
|
46
|
-
}] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZHJhZnRzL2RyYWZ0cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFnQnhFLE1BQU0sT0FBTyxZQUFZOytHQUFaLFlBQVk7Z0hBQVosWUFBWSxpQkFITix3QkFBd0IsYUFUbkMsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLFVBQVUsYUFHSix3QkFBd0I7Z0hBRXpCLFlBQVksWUFaakIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsbUJBQW1COzs0RkFNZCxZQUFZO2tCQWR4QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLFVBQVU7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBGb2Vobkljb25zTW9kdWxlIH0gZnJvbSAnLi4vZm9laG4taWNvbnMvZm9laG4taWNvbnMubW9kdWxlJztcbmltcG9ydCB7IEZvZWhuTW9kYWxNb2R1bGUgfSBmcm9tICcuLi9mb2Vobi1tb2RhbC9mb2Vobi1tb2RhbC5tb2R1bGUnO1xuaW1wb3J0IHsgRm9laG5UYWJsZU1vZHVsZSB9IGZyb20gJy4uL2ZvZWhuLXRhYmxlL2ZvZWhuLXRhYmxlLm1vZHVsZSc7XG5pbXBvcnQgeyBQaXBlTW9kdWxlIH0gZnJvbSAnLi4vcGlwZXMvcGlwZXMubW9kdWxlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlNb2R1bGUgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5tb2R1bGUnO1xuaW1wb3J0IHsgRHJhZnRzQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kcmFmdHMtY29udGFpbmVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgICAgIEZvZWhuSWNvbnNNb2R1bGUsXG4gICAgICAgIFBpcGVNb2R1bGUsXG4gICAgICAgIEZvZWhuVGFibGVNb2R1bGUsXG4gICAgICAgIEZvZWhuTW9kYWxNb2R1bGUsXG4gICAgICAgIFNka0RpY3Rpb25hcnlNb2R1bGUsXG4gICAgICAgIFJvdXRlckxpbmtcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW0RyYWZ0c0NvbnRhaW5lckNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0RyYWZ0c0NvbnRhaW5lckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRHJhZnRzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, combineLatest, merge, of } from 'rxjs';
|
|
3
|
-
import { catchError, map, switchMap } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common/http";
|
|
6
|
-
import * as i2 from "../sdk-session-info/session-info.service";
|
|
7
|
-
import * as i3 from "../gesdem/gesdem-handler.service";
|
|
8
|
-
import * as i4 from "../gesdem/gesdem-event.service";
|
|
9
|
-
export class DraftsService {
|
|
10
|
-
constructor(http, sessionInfo, gesdemHandlerService, gesdemEventService) {
|
|
11
|
-
this.http = http;
|
|
12
|
-
this.sessionInfo = sessionInfo;
|
|
13
|
-
this.gesdemHandlerService = gesdemHandlerService;
|
|
14
|
-
this.gesdemEventService = gesdemEventService;
|
|
15
|
-
this.draftsUrl = new BehaviorSubject('');
|
|
16
|
-
const hasReferenceObservable = merge(
|
|
17
|
-
// To have an initial value. Can be null if there is no form.
|
|
18
|
-
of(this.gesdemHandlerService.lastResponse),
|
|
19
|
-
// Read the form from GesDem
|
|
20
|
-
this.gesdemEventService.formInitializationObservable()).pipe(map(form => !!form &&
|
|
21
|
-
!!this.gesdemHandlerService.lastResponse?.meta?.reference));
|
|
22
|
-
this.allDrafts = combineLatest([
|
|
23
|
-
this.draftsUrl,
|
|
24
|
-
hasReferenceObservable,
|
|
25
|
-
this.sessionInfo.data
|
|
26
|
-
]).pipe(switchMap(([url, hasReference, sessionInfoData]) => {
|
|
27
|
-
if (!url || hasReference || !sessionInfoData?.context) {
|
|
28
|
-
return of(null);
|
|
29
|
-
}
|
|
30
|
-
return this.http.get(url).pipe(catchError((e) => {
|
|
31
|
-
console.error('Unable to get drafts, returning an empty array', e);
|
|
32
|
-
return of([]);
|
|
33
|
-
}));
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
setDraftsUrl(draftsUrl) {
|
|
37
|
-
this.draftsUrl.next(draftsUrl);
|
|
38
|
-
}
|
|
39
|
-
getAllDrafts() {
|
|
40
|
-
return this.allDrafts;
|
|
41
|
-
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DraftsService, deps: [{ token: i1.HttpClient }, { token: i2.SessionInfo }, { token: i3.GesdemHandlerService }, { token: i4.GesdemEventService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DraftsService, providedIn: 'root' }); }
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DraftsService, decorators: [{
|
|
46
|
-
type: Injectable,
|
|
47
|
-
args: [{
|
|
48
|
-
providedIn: 'root'
|
|
49
|
-
}]
|
|
50
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.SessionInfo }, { type: i3.GesdemHandlerService }, { type: i4.GesdemEventService }] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLWRyYWZ0cy9kcmFmdHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVU1RCxNQUFNLE9BQU8sYUFBYTtJQUl0QixZQUNZLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3hCLG9CQUEwQyxFQUMxQyxrQkFBc0M7UUFIdEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFOMUMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBUWhELE1BQU0sc0JBQXNCLEdBQUcsS0FBSztRQUNoQyw2REFBNkQ7UUFDN0QsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUM7UUFDMUMsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsRUFBRSxDQUN6RCxDQUFDLElBQUksQ0FDRixHQUFHLENBQ0MsSUFBSSxDQUFDLEVBQUUsQ0FDSCxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxTQUFTLENBQ2hFLENBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTO1lBQ2Qsc0JBQXNCO1lBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtTQUN4QixDQUFDLENBQUMsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQy9DLElBQUksQ0FBQyxHQUFHLElBQUksWUFBWSxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNwRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ25DLFVBQVUsQ0FBQyxDQUFDLENBQVUsRUFBRSxFQUFFO2dCQUN0QixPQUFPLENBQUMsS0FBSyxDQUNULGdEQUFnRCxFQUNoRCxDQUFDLENBQ0osQ0FBQztnQkFDRixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUI7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQzsrR0FuRFEsYUFBYTttSEFBYixhQUFhLGNBRlYsTUFBTTs7NEZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBHZXNkZW1FdmVudFNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHJhZnQgfSBmcm9tICcuL2RyYWZ0Lm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEcmFmdHNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbERyYWZ0czogT2JzZXJ2YWJsZTxEcmFmdFtdPjtcbiAgICBwcml2YXRlIGRyYWZ0c1VybCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIHNlc3Npb25JbmZvOiBTZXNzaW9uSW5mbyxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1IYW5kbGVyU2VydmljZTogR2VzZGVtSGFuZGxlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgY29uc3QgaGFzUmVmZXJlbmNlT2JzZXJ2YWJsZSA9IG1lcmdlKFxuICAgICAgICAgICAgLy8gVG8gaGF2ZSBhbiBpbml0aWFsIHZhbHVlLiBDYW4gYmUgbnVsbCBpZiB0aGVyZSBpcyBubyBmb3JtLlxuICAgICAgICAgICAgb2YodGhpcy5nZXNkZW1IYW5kbGVyU2VydmljZS5sYXN0UmVzcG9uc2UpLFxuICAgICAgICAgICAgLy8gUmVhZCB0aGUgZm9ybSBmcm9tIEdlc0RlbVxuICAgICAgICAgICAgdGhpcy5nZXNkZW1FdmVudFNlcnZpY2UuZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSgpXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICBmb3JtID0+XG4gICAgICAgICAgICAgICAgICAgICEhZm9ybSAmJlxuICAgICAgICAgICAgICAgICAgICAhIXRoaXMuZ2VzZGVtSGFuZGxlclNlcnZpY2UubGFzdFJlc3BvbnNlPy5tZXRhPy5yZWZlcmVuY2VcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmFsbERyYWZ0cyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5kcmFmdHNVcmwsXG4gICAgICAgICAgICBoYXNSZWZlcmVuY2VPYnNlcnZhYmxlLFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uSW5mby5kYXRhXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFt1cmwsIGhhc1JlZmVyZW5jZSwgc2Vzc2lvbkluZm9EYXRhXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdXJsIHx8IGhhc1JlZmVyZW5jZSB8fCAhc2Vzc2lvbkluZm9EYXRhPy5jb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RHJhZnRbXT4odXJsKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVbmFibGUgdG8gZ2V0IGRyYWZ0cywgcmV0dXJuaW5nIGFuIGVtcHR5IGFycmF5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXREcmFmdHNVcmwoZHJhZnRzVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcmFmdHNVcmwubmV4dChkcmFmdHNVcmwpO1xuICAgIH1cblxuICAgIGdldEFsbERyYWZ0cygpOiBPYnNlcnZhYmxlPERyYWZ0W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsRHJhZnRzO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRVBheW1lbnRQYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1lcGF5bWVudC9tb2RlbC9FUGF5bWVudFBhcmFtZXRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRVBheW1lbnRQYXJhbWV0ZXJzIHtcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gICAgY3VycmVuY3k6IHN0cmluZztcbiAgICBwc3BpZDogc3RyaW5nO1xuICAgIGxhbmd1YWdlOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBiZ2NvbG9yOiBzdHJpbmc7XG4gICAgbG9nbzogc3RyaW5nO1xuICAgIGFjY2VwdFVybDogc3RyaW5nO1xuICAgIGV4Y2VwdGlvblVybDogc3RyaW5nO1xuICAgIGNhbmNlbFVybDogc3RyaW5nO1xuICAgIGJhY2tVcmw6IHN0cmluZztcbiAgICBkZWNsaW5lVXJsOiBzdHJpbmc7XG4gICAgY246IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIG93bmVyYWRkcmVzczogc3RyaW5nO1xuICAgIHBhcmFtcGx1czogc3RyaW5nO1xuICAgIHNoYXNpZ246IHN0cmluZztcbiAgICBwb3N0RmluYW5jZVVybDogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../../foehn-modal/foehn-modal.component";
|
|
4
|
-
import * as i2 from "../../sdk-dictionary/sdk-dictionary.pipe";
|
|
5
|
-
export class PendingPaymentComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.onPay = new EventEmitter();
|
|
8
|
-
this.isModalVisible = true;
|
|
9
|
-
}
|
|
10
|
-
goToPayer() {
|
|
11
|
-
this.onPay.emit();
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PendingPaymentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PendingPaymentComponent, selector: "sdk-pending-payment", outputs: { onPay: "onPay" }, ngImport: i0, template: "<foehn-modal\n [closeable]=\"false\"\n [modalHeaderText]=\"'epayment.pending-payment.title' | fromDictionary\"\n [isModalVisible]=\"isModalVisible\"\n (isModalVisibleChange)=\"isModalVisible = $event\"\n modalSize=\"modal-lg\"\n>\n <div class=\"modal-body\">\n <p>{{ 'epayment.pending-payment.text' | fromDictionary }}</p>\n </div>\n <div modal-footer class=\"w-100\">\n <div class=\"d-flex\">\n <button\n id=\"goToPayerButton\"\n type=\"button\"\n class=\"btn btn-primary ms-auto\"\n (click)=\"goToPayer()\"\n >\n {{ 'epayment.pending-payment.button' | fromDictionary }}\n </button>\n </div>\n </div>\n</foehn-modal>\n", dependencies: [{ kind: "component", type: i1.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: i2.SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PendingPaymentComponent, decorators: [{
|
|
17
|
-
type: Component,
|
|
18
|
-
args: [{ selector: 'sdk-pending-payment', template: "<foehn-modal\n [closeable]=\"false\"\n [modalHeaderText]=\"'epayment.pending-payment.title' | fromDictionary\"\n [isModalVisible]=\"isModalVisible\"\n (isModalVisibleChange)=\"isModalVisible = $event\"\n modalSize=\"modal-lg\"\n>\n <div class=\"modal-body\">\n <p>{{ 'epayment.pending-payment.text' | fromDictionary }}</p>\n </div>\n <div modal-footer class=\"w-100\">\n <div class=\"d-flex\">\n <button\n id=\"goToPayerButton\"\n type=\"button\"\n class=\"btn btn-primary ms-auto\"\n (click)=\"goToPayer()\"\n >\n {{ 'epayment.pending-payment.button' | fromDictionary }}\n </button>\n </div>\n </div>\n</foehn-modal>\n" }]
|
|
19
|
-
}], propDecorators: {
|
|
20
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
21
|
-
onPay: [{
|
|
22
|
-
type: Output
|
|
23
|
-
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1wYXltZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZXBheW1lbnQvcGVuZGluZy1wYXltZW50L3BlbmRpbmctcGF5bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLWVwYXltZW50L3BlbmRpbmctcGF5bWVudC9wZW5kaW5nLXBheW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBT2hFLE1BQU0sT0FBTyx1QkFBdUI7SUFMcEM7UUFRSSxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVqQyxtQkFBYyxHQUFHLElBQUksQ0FBQztLQUt6QjtJQUhHLFNBQVM7UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7K0dBVFEsdUJBQXVCO21HQUF2Qix1QkFBdUIsd0ZDUHBDLHl3QkF1QkE7OzRGRGhCYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBRUkscUJBQXFCOztRQUsvQiwrREFBK0Q7UUFDL0QsS0FBSztzQkFGSixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnc2RrLXBlbmRpbmctcGF5bWVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BlbmRpbmctcGF5bWVudC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUGVuZGluZ1BheW1lbnRDb21wb25lbnQge1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uUGF5ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgaXNNb2RhbFZpc2libGUgPSB0cnVlO1xuXG4gICAgZ29Ub1BheWVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uUGF5LmVtaXQoKTtcbiAgICB9XG59XG4iLCI8Zm9laG4tbW9kYWxcbiAgICBbY2xvc2VhYmxlXT1cImZhbHNlXCJcbiAgICBbbW9kYWxIZWFkZXJUZXh0XT1cIidlcGF5bWVudC5wZW5kaW5nLXBheW1lbnQudGl0bGUnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgIFtpc01vZGFsVmlzaWJsZV09XCJpc01vZGFsVmlzaWJsZVwiXG4gICAgKGlzTW9kYWxWaXNpYmxlQ2hhbmdlKT1cImlzTW9kYWxWaXNpYmxlID0gJGV2ZW50XCJcbiAgICBtb2RhbFNpemU9XCJtb2RhbC1sZ1wiXG4+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgPHA+e3sgJ2VwYXltZW50LnBlbmRpbmctcGF5bWVudC50ZXh0JyB8IGZyb21EaWN0aW9uYXJ5IH19PC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgbW9kYWwtZm9vdGVyIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiZ29Ub1BheWVyQnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtcy1hdXRvXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BheWVyKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdlcGF5bWVudC5wZW5kaW5nLXBheW1lbnQuYnV0dG9uJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2ZvZWhuLW1vZGFsPlxuIl19
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { first } from 'rxjs/operators';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./sdk-epayment.service";
|
|
5
|
-
import * as i2 from "@angular/router";
|
|
6
|
-
import * as i3 from "../gesdem/gesdem-handler.service";
|
|
7
|
-
import * as i4 from "../gesdem/gesdem-event.service";
|
|
8
|
-
import * as i5 from "../foehn-modal/foehn-modal.component";
|
|
9
|
-
import * as i6 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
10
|
-
/**
|
|
11
|
-
* Composant invisible à insérer dans une page SDK permettant d'effectuer des paiement sur la plateforme de paiement de
|
|
12
|
-
* Postfinance. La méthode payNow() déclenche le paiement.
|
|
13
|
-
*/
|
|
14
|
-
export class SdkEpaymentComponent {
|
|
15
|
-
constructor(ePaymentService, route, gesDemService, gesdemEventService) {
|
|
16
|
-
this.ePaymentService = ePaymentService;
|
|
17
|
-
this.route = route;
|
|
18
|
-
this.gesDemService = gesDemService;
|
|
19
|
-
this.gesdemEventService = gesdemEventService;
|
|
20
|
-
this.baseUrl = 'api/';
|
|
21
|
-
this.platformFailureMessageDicoKey = 'epayment-form.errors.default';
|
|
22
|
-
this.failureModalDisplayed = false;
|
|
23
|
-
this.redirectModalDisplayed = false;
|
|
24
|
-
// Make it easier for testing purpose
|
|
25
|
-
this.window = window;
|
|
26
|
-
this.failureMessageDicoKeyByCode = new Map([
|
|
27
|
-
['back', 'epayment-form.errors.back'],
|
|
28
|
-
['cancel', 'epayment-form.errors.cancel'],
|
|
29
|
-
['refused', 'epayment-form.errors.refused'],
|
|
30
|
-
['error', 'epayment-form.errors.unknown-error']
|
|
31
|
-
]);
|
|
32
|
-
}
|
|
33
|
-
ngOnInit() {
|
|
34
|
-
// En cas d'échec, la plateforme nous renvoie dans la page avec une raison.
|
|
35
|
-
this.handleFailure(this.route.snapshot.queryParams.REASON);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Déclenche le processus de paiement électronique. Le paiement est d'abord préparé avec GesDem, puis on navigue
|
|
39
|
-
* vers la plateforme de paiement.
|
|
40
|
-
* @param reference La référence de la demande en cours
|
|
41
|
-
*/
|
|
42
|
-
payNow(reference) {
|
|
43
|
-
this.ePaymentService
|
|
44
|
-
.createPendingPayment(reference, this.baseUrl)
|
|
45
|
-
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
46
|
-
.subscribe(redirectUrl => {
|
|
47
|
-
this.redirectModalDisplayed = true;
|
|
48
|
-
this.window.location.href = redirectUrl;
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
handleFailure(failureCode) {
|
|
52
|
-
if (!failureCode?.length) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
this.platformFailureMessageDicoKey =
|
|
56
|
-
this.failureMessageDicoKeyByCode.get(failureCode) ||
|
|
57
|
-
this.platformFailureMessageDicoKey;
|
|
58
|
-
this.gesdemEventService
|
|
59
|
-
.formInitializationObservable()
|
|
60
|
-
.pipe(first())
|
|
61
|
-
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
62
|
-
.subscribe(() => {
|
|
63
|
-
this.ePaymentService.cancelPendingPayment(this.gesDemService.lastResponse.meta.reference, this.baseUrl);
|
|
64
|
-
});
|
|
65
|
-
this.failureModalDisplayed = true;
|
|
66
|
-
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkEpaymentComponent, deps: [{ token: i1.EPaymentService }, { token: i2.ActivatedRoute }, { token: i3.GesdemHandlerService }, { token: i4.GesdemEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdkEpaymentComponent, selector: "epayment-form", inputs: { baseUrl: "baseUrl" }, ngImport: i0, template: "<foehn-modal\n [id]=\"'epayment-form-error-modal'\"\n [isModalVisible]=\"failureModalDisplayed\"\n [modalHeaderText]=\"'epayment-form.errors.title' | fromDictionary\"\n [modalBodyText]=\"platformFailureMessageDicoKey | fromDictionary\"\n (click)=\"failureModalDisplayed = false\"\n></foehn-modal>\n\n<foehn-modal\n [id]=\"'epayment-form-redirection-modal'\"\n [isModalVisible]=\"redirectModalDisplayed\"\n [modalHeaderText]=\"'epayment-form.redirection.title' | fromDictionary\"\n [closeable]=\"false\"\n>\n <!-- Need to add a tabindex=\"0\" (here on modal-body-content) otherwise cdkTrapFocus will not work because no closing button -->\n <div class=\"modal-body-content\" tabindex=\"0\">\n <p [innerHTML]=\"'epayment-form.redirection.text' | fromDictionary\"></p>\n <div class=\"progress\" aria-hidden=\"true\">\n <div\n role=\"progressbar\"\n class=\"progress-bar bg-success progress-bar-animated progress-bar-striped w-100\"\n ></div>\n </div>\n <small\n class=\"form-text text-secondary\"\n [innerHTML]=\"'epayment-form.redirection.help' | fromDictionary\"\n ></small>\n </div>\n</foehn-modal>\n", styles: [":host ::ng-deep #epayment-form-redirection-modal .modal{z-index:10000}:host ::ng-deep #epayment-form-redirection-modal .modal-header{background-color:var(--vd-neutral-lighter)}:host ::ng-deep #epayment-form-redirection-modal .modal-content{border:none}:host ::ng-deep #epayment-form-redirection-modal .modal-title{margin:0!important}:host ::ng-deep #epayment-form-redirection-modal .modal-body{padding:.5rem}:host ::ng-deep #epayment-form-redirection-modal .modal-body-content{padding:.5rem}:host ::ng-deep #epayment-form-redirection-modal .modal-footer{display:none!important}\n"], dependencies: [{ kind: "component", type: i5.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: i6.SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
69
|
-
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkEpaymentComponent, decorators: [{
|
|
71
|
-
type: Component,
|
|
72
|
-
args: [{ selector: 'epayment-form', template: "<foehn-modal\n [id]=\"'epayment-form-error-modal'\"\n [isModalVisible]=\"failureModalDisplayed\"\n [modalHeaderText]=\"'epayment-form.errors.title' | fromDictionary\"\n [modalBodyText]=\"platformFailureMessageDicoKey | fromDictionary\"\n (click)=\"failureModalDisplayed = false\"\n></foehn-modal>\n\n<foehn-modal\n [id]=\"'epayment-form-redirection-modal'\"\n [isModalVisible]=\"redirectModalDisplayed\"\n [modalHeaderText]=\"'epayment-form.redirection.title' | fromDictionary\"\n [closeable]=\"false\"\n>\n <!-- Need to add a tabindex=\"0\" (here on modal-body-content) otherwise cdkTrapFocus will not work because no closing button -->\n <div class=\"modal-body-content\" tabindex=\"0\">\n <p [innerHTML]=\"'epayment-form.redirection.text' | fromDictionary\"></p>\n <div class=\"progress\" aria-hidden=\"true\">\n <div\n role=\"progressbar\"\n class=\"progress-bar bg-success progress-bar-animated progress-bar-striped w-100\"\n ></div>\n </div>\n <small\n class=\"form-text text-secondary\"\n [innerHTML]=\"'epayment-form.redirection.help' | fromDictionary\"\n ></small>\n </div>\n</foehn-modal>\n", styles: [":host ::ng-deep #epayment-form-redirection-modal .modal{z-index:10000}:host ::ng-deep #epayment-form-redirection-modal .modal-header{background-color:var(--vd-neutral-lighter)}:host ::ng-deep #epayment-form-redirection-modal .modal-content{border:none}:host ::ng-deep #epayment-form-redirection-modal .modal-title{margin:0!important}:host ::ng-deep #epayment-form-redirection-modal .modal-body{padding:.5rem}:host ::ng-deep #epayment-form-redirection-modal .modal-body-content{padding:.5rem}:host ::ng-deep #epayment-form-redirection-modal .modal-footer{display:none!important}\n"] }]
|
|
73
|
-
}], ctorParameters: () => [{ type: i1.EPaymentService }, { type: i2.ActivatedRoute }, { type: i3.GesdemHandlerService }, { type: i4.GesdemEventService }], propDecorators: { baseUrl: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWVwYXltZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZXBheW1lbnQvc2RrLWVwYXltZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZXBheW1lbnQvc2RrLWVwYXltZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFNdkM7OztHQUdHO0FBT0gsTUFBTSxPQUFPLG9CQUFvQjtJQW1CN0IsWUFDWSxlQUFnQyxFQUN2QixLQUFxQixFQUNyQixhQUFtQyxFQUNuQyxrQkFBc0M7UUFIL0Msb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3ZCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBckIzRCxZQUFPLEdBQUcsTUFBTSxDQUFDO1FBRWpCLGtDQUE2QixHQUFHLDhCQUE4QixDQUFDO1FBQy9ELDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUU5QiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFFL0IscUNBQXFDO1FBQzdCLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFFaEIsZ0NBQTJCLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDMUMsQ0FBQyxNQUFNLEVBQUUsMkJBQTJCLENBQUM7WUFDckMsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUM7WUFDekMsQ0FBQyxTQUFTLEVBQUUsOEJBQThCLENBQUM7WUFDM0MsQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLENBQUM7U0FDbEQsQ0FBQyxDQUFDO0lBT0EsQ0FBQztJQUVKLFFBQVE7UUFDSiwyRUFBMkU7UUFDM0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsU0FBaUI7UUFDcEIsSUFBSSxDQUFDLGVBQWU7YUFDZixvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM5QywwREFBMEQ7YUFDekQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyxhQUFhLENBQUMsV0FBbUI7UUFDckMsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN2QixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyw2QkFBNkI7WUFDOUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7Z0JBQ2pELElBQUksQ0FBQyw2QkFBNkIsQ0FBQztRQUV2QyxJQUFJLENBQUMsa0JBQWtCO2FBQ2xCLDRCQUE0QixFQUFFO2FBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLDBEQUEwRDthQUN6RCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FDZixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFUCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQ3RDLENBQUM7K0dBbkVRLG9CQUFvQjttR0FBcEIsb0JBQW9CLHFGQ2xCakMsK3RDQTZCQTs7NEZEWGEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUVJLGVBQWU7cUxBTXpCLE9BQU87c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEVQYXltZW50U2VydmljZSB9IGZyb20gJy4vc2RrLWVwYXltZW50LnNlcnZpY2UnO1xuXG4vKipcbiAqIENvbXBvc2FudCBpbnZpc2libGUgw6AgaW5zw6lyZXIgZGFucyB1bmUgcGFnZSBTREsgcGVybWV0dGFudCBkJ2VmZmVjdHVlciBkZXMgcGFpZW1lbnQgc3VyIGxhIHBsYXRlZm9ybWUgZGUgcGFpZW1lbnQgZGVcbiAqIFBvc3RmaW5hbmNlLiBMYSBtw6l0aG9kZSBwYXlOb3coKSBkw6ljbGVuY2hlIGxlIHBhaWVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZXBheW1lbnQtZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Nkay1lcGF5bWVudC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2RrLWVwYXltZW50LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZGtFcGF5bWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBiYXNlVXJsID0gJ2FwaS8nO1xuXG4gICAgcGxhdGZvcm1GYWlsdXJlTWVzc2FnZURpY29LZXkgPSAnZXBheW1lbnQtZm9ybS5lcnJvcnMuZGVmYXVsdCc7XG4gICAgZmFpbHVyZU1vZGFsRGlzcGxheWVkID0gZmFsc2U7XG5cbiAgICByZWRpcmVjdE1vZGFsRGlzcGxheWVkID0gZmFsc2U7XG5cbiAgICAvLyBNYWtlIGl0IGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3NlXG4gICAgcHJpdmF0ZSB3aW5kb3cgPSB3aW5kb3c7XG5cbiAgICBwcml2YXRlIGZhaWx1cmVNZXNzYWdlRGljb0tleUJ5Q29kZSA9IG5ldyBNYXAoW1xuICAgICAgICBbJ2JhY2snLCAnZXBheW1lbnQtZm9ybS5lcnJvcnMuYmFjayddLFxuICAgICAgICBbJ2NhbmNlbCcsICdlcGF5bWVudC1mb3JtLmVycm9ycy5jYW5jZWwnXSxcbiAgICAgICAgWydyZWZ1c2VkJywgJ2VwYXltZW50LWZvcm0uZXJyb3JzLnJlZnVzZWQnXSxcbiAgICAgICAgWydlcnJvcicsICdlcGF5bWVudC1mb3JtLmVycm9ycy51bmtub3duLWVycm9yJ11cbiAgICBdKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVQYXltZW50U2VydmljZTogRVBheW1lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBnZXNEZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBnZXNkZW1FdmVudFNlcnZpY2U6IEdlc2RlbUV2ZW50U2VydmljZVxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBFbiBjYXMgZCfDqWNoZWMsIGxhIHBsYXRlZm9ybWUgbm91cyByZW52b2llIGRhbnMgbGEgcGFnZSBhdmVjIHVuZSByYWlzb24uXG4gICAgICAgIHRoaXMuaGFuZGxlRmFpbHVyZSh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLlJFQVNPTik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRMOpY2xlbmNoZSBsZSBwcm9jZXNzdXMgZGUgcGFpZW1lbnQgw6lsZWN0cm9uaXF1ZS4gTGUgcGFpZW1lbnQgZXN0IGQnYWJvcmQgcHLDqXBhcsOpIGF2ZWMgR2VzRGVtLCBwdWlzIG9uIG5hdmlndWVcbiAgICAgKiB2ZXJzIGxhIHBsYXRlZm9ybWUgZGUgcGFpZW1lbnQuXG4gICAgICogQHBhcmFtIHJlZmVyZW5jZSBMYSByw6lmw6lyZW5jZSBkZSBsYSBkZW1hbmRlIGVuIGNvdXJzXG4gICAgICovXG4gICAgcGF5Tm93KHJlZmVyZW5jZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZVBheW1lbnRTZXJ2aWNlXG4gICAgICAgICAgICAuY3JlYXRlUGVuZGluZ1BheW1lbnQocmVmZXJlbmNlLCB0aGlzLmJhc2VVcmwpXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlZGlyZWN0VXJsID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZGlyZWN0TW9kYWxEaXNwbGF5ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMud2luZG93LmxvY2F0aW9uLmhyZWYgPSByZWRpcmVjdFVybDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRmFpbHVyZShmYWlsdXJlQ29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghZmFpbHVyZUNvZGU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wbGF0Zm9ybUZhaWx1cmVNZXNzYWdlRGljb0tleSA9XG4gICAgICAgICAgICB0aGlzLmZhaWx1cmVNZXNzYWdlRGljb0tleUJ5Q29kZS5nZXQoZmFpbHVyZUNvZGUpIHx8XG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtRmFpbHVyZU1lc3NhZ2VEaWNvS2V5O1xuXG4gICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlXG4gICAgICAgICAgICAuZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lUGF5bWVudFNlcnZpY2UuY2FuY2VsUGVuZGluZ1BheW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2VzRGVtU2VydmljZS5sYXN0UmVzcG9uc2UubWV0YS5yZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFzZVVybFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZhaWx1cmVNb2RhbERpc3BsYXllZCA9IHRydWU7XG4gICAgfVxufVxuIiwiPGZvZWhuLW1vZGFsXG4gICAgW2lkXT1cIidlcGF5bWVudC1mb3JtLWVycm9yLW1vZGFsJ1wiXG4gICAgW2lzTW9kYWxWaXNpYmxlXT1cImZhaWx1cmVNb2RhbERpc3BsYXllZFwiXG4gICAgW21vZGFsSGVhZGVyVGV4dF09XCInZXBheW1lbnQtZm9ybS5lcnJvcnMudGl0bGUnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgIFttb2RhbEJvZHlUZXh0XT1cInBsYXRmb3JtRmFpbHVyZU1lc3NhZ2VEaWNvS2V5IHwgZnJvbURpY3Rpb25hcnlcIlxuICAgIChjbGljayk9XCJmYWlsdXJlTW9kYWxEaXNwbGF5ZWQgPSBmYWxzZVwiXG4+PC9mb2Vobi1tb2RhbD5cblxuPGZvZWhuLW1vZGFsXG4gICAgW2lkXT1cIidlcGF5bWVudC1mb3JtLXJlZGlyZWN0aW9uLW1vZGFsJ1wiXG4gICAgW2lzTW9kYWxWaXNpYmxlXT1cInJlZGlyZWN0TW9kYWxEaXNwbGF5ZWRcIlxuICAgIFttb2RhbEhlYWRlclRleHRdPVwiJ2VwYXltZW50LWZvcm0ucmVkaXJlY3Rpb24udGl0bGUnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgIFtjbG9zZWFibGVdPVwiZmFsc2VcIlxuPlxuICAgIDwhLS0gTmVlZCB0byBhZGQgYSB0YWJpbmRleD1cIjBcIiAoaGVyZSBvbiBtb2RhbC1ib2R5LWNvbnRlbnQpIG90aGVyd2lzZSBjZGtUcmFwRm9jdXMgd2lsbCBub3Qgd29yayBiZWNhdXNlIG5vIGNsb3NpbmcgYnV0dG9uIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5LWNvbnRlbnRcIiB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgPHAgW2lubmVySFRNTF09XCInZXBheW1lbnQtZm9ybS5yZWRpcmVjdGlvbi50ZXh0JyB8IGZyb21EaWN0aW9uYXJ5XCI+PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyIGJnLXN1Y2Nlc3MgcHJvZ3Jlc3MtYmFyLWFuaW1hdGVkIHByb2dyZXNzLWJhci1zdHJpcGVkIHctMTAwXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCInZXBheW1lbnQtZm9ybS5yZWRpcmVjdGlvbi5oZWxwJyB8IGZyb21EaWN0aW9uYXJ5XCJcbiAgICAgICAgPjwvc21hbGw+XG4gICAgPC9kaXY+XG48L2ZvZWhuLW1vZGFsPlxuIl19
|