@dsivd/prestations-ng 14.5.20 → 15.0.0-beta3
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 +33 -6
- package/CONTRIBUTING.md +1 -1
- package/README.md +2 -0
- package/UPGRADING_V14.md +8 -11
- package/UPGRADING_V15.md +51 -0
- package/dsivd-prestations-ng-v15.0.0-beta3.tgz +0 -0
- package/esm2020/abstract-page-component.mjs +226 -0
- package/{esm2015/directives/currency-formatter.directive.js → esm2020/directives/currency-formatter.directive.mjs} +3 -3
- package/{esm2015/directives/formatter.module.js → esm2020/directives/formatter.module.mjs} +4 -4
- package/{esm2015/directives/iban-formatter.directive.js → esm2020/directives/iban-formatter.directive.mjs} +3 -3
- package/{esm2015/directives/ide-formatter.directive.js → esm2020/directives/ide-formatter.directive.mjs} +3 -3
- package/{esm2015/directives/ndc-formatter.directive.js → esm2020/directives/ndc-formatter.directive.mjs} +3 -3
- package/{esm2015/dsivd-prestations-ng.js → esm2020/dsivd-prestations-ng.mjs} +0 -0
- package/{esm2015/foehn-address/address.type.js → esm2020/foehn-address/address.type.mjs} +0 -0
- package/{esm2015/foehn-address/foehn-address.module.js → esm2020/foehn-address/foehn-address.module.mjs} +4 -4
- package/{esm2015/foehn-address/foehn-display-address.component.js → esm2020/foehn-address/foehn-display-address.component.mjs} +5 -9
- package/esm2020/foehn-address/foehn-input-address.component.mjs +366 -0
- package/esm2020/foehn-address/foehn-input-foreign-locality.component.mjs +66 -0
- package/{esm2015/foehn-address/foehn-input-foreign-street.component.js → esm2020/foehn-address/foehn-input-foreign-street.component.mjs} +6 -11
- package/esm2020/foehn-autocomplete/foehn-autocomplete.component.mjs +548 -0
- package/{esm2015/foehn-autocomplete/foehn-autocomplete.module.js → esm2020/foehn-autocomplete/foehn-autocomplete.module.mjs} +4 -4
- package/esm2020/foehn-boolean/foehn-boolean-checkbox.component.mjs +28 -0
- package/esm2020/foehn-boolean/foehn-boolean-radio.component.mjs +37 -0
- package/{esm2015/foehn-boolean/foehn-boolean.module.js → esm2020/foehn-boolean/foehn-boolean.module.mjs} +4 -4
- package/{esm2015/foehn-breadcrumb/breadcrumb-event.service.js → esm2020/foehn-breadcrumb/breadcrumb-event.service.mjs} +10 -10
- package/{esm2015/foehn-breadcrumb/breadcrumb.js → esm2020/foehn-breadcrumb/breadcrumb.mjs} +0 -0
- package/{esm2015/foehn-breadcrumb/foehn-breadcrumb.component.js → esm2020/foehn-breadcrumb/foehn-breadcrumb.component.mjs} +5 -9
- package/{esm2015/foehn-breadcrumb/foehn-breadcrumb.module.js → esm2020/foehn-breadcrumb/foehn-breadcrumb.module.mjs} +4 -4
- package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +283 -0
- package/{esm2015/foehn-checkables/foehn-checkables.module.js → esm2020/foehn-checkables/foehn-checkables.module.mjs} +4 -4
- package/esm2020/foehn-checkables/foehn-checkbox.component.mjs +36 -0
- package/esm2020/foehn-checkables/foehn-radio.component.mjs +63 -0
- package/esm2020/foehn-checkables/foehn-select.component.mjs +62 -0
- package/{esm2015/foehn-checkables/form-select-option-group.js → esm2020/foehn-checkables/form-select-option-group.mjs} +0 -0
- package/{esm2015/foehn-checkables/form-select-option.js → esm2020/foehn-checkables/form-select-option.mjs} +0 -0
- package/{esm2015/foehn-confirm-modal/foehn-confirm-modal-content.js → esm2020/foehn-confirm-modal/foehn-confirm-modal-content.mjs} +0 -0
- package/esm2020/foehn-confirm-modal/foehn-confirm-modal.component.mjs +39 -0
- package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.module.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.module.mjs} +4 -4
- package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.service.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.service.mjs} +3 -3
- package/{esm2015/foehn-date-picker/date-picker-navigation.helper.js → esm2020/foehn-date-picker/date-picker-navigation.helper.mjs} +7 -7
- package/{esm2015/foehn-date-picker/date-picker.helper.js → esm2020/foehn-date-picker/date-picker.helper.mjs} +4 -4
- package/{esm2015/foehn-date-picker/day-month.type.js → esm2020/foehn-date-picker/day-month.type.mjs} +0 -0
- package/{esm2015/foehn-date-picker/focused-day.type.js → esm2020/foehn-date-picker/focused-day.type.mjs} +0 -0
- package/{esm2015/foehn-date-picker/foehn-date-picker.component.js → esm2020/foehn-date-picker/foehn-date-picker.component.mjs} +22 -25
- package/{esm2015/foehn-date-picker/foehn-date-picker.module.js → esm2020/foehn-date-picker/foehn-date-picker.module.mjs} +4 -4
- package/{esm2015/foehn-date-picker/month-year.type.js → esm2020/foehn-date-picker/month-year.type.mjs} +0 -0
- package/esm2020/foehn-date-picker-button/foehn-date-picker-button.component.mjs +70 -0
- package/{esm2015/foehn-date-picker-button/foehn-date-picker-button.module.js → esm2020/foehn-date-picker-button/foehn-date-picker-button.module.mjs} +4 -4
- package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.mjs} +8 -11
- package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.module.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.module.mjs} +4 -4
- package/esm2020/foehn-decision-electronique/foehn-decision-electronique.component.mjs +36 -0
- package/{esm2015/foehn-decision-electronique/foehn-decision-electronique.module.js → esm2020/foehn-decision-electronique/foehn-decision-electronique.module.mjs} +4 -4
- package/esm2020/foehn-footer/foehn-footer.component.mjs +129 -0
- package/{esm2015/foehn-footer/foehn-footer.module.js → esm2020/foehn-footer/foehn-footer.module.mjs} +4 -4
- package/{esm2015/foehn-footer/footer-link.type.js → esm2020/foehn-footer/footer-link.type.mjs} +0 -0
- package/{esm2015/foehn-form/foehn-form.component.js → esm2020/foehn-form/foehn-form.component.mjs} +5 -8
- package/{esm2015/foehn-form/foehn-form.module.js → esm2020/foehn-form/foehn-form.module.mjs} +4 -4
- package/{esm2015/foehn-growl/foehn-growl.component.js → esm2020/foehn-growl/foehn-growl.component.mjs} +8 -12
- package/{esm2015/foehn-growl/foehn-growl.module.js → esm2020/foehn-growl/foehn-growl.module.mjs} +4 -4
- package/{esm2015/foehn-growl/growl-broker.service.js → esm2020/foehn-growl/growl-broker.service.mjs} +3 -3
- package/{esm2015/foehn-growl/growl-message.js → esm2020/foehn-growl/growl-message.mjs} +0 -0
- package/{esm2015/foehn-growl/growl-types.js → esm2020/foehn-growl/growl-types.mjs} +0 -0
- package/esm2020/foehn-header/foehn-header.component.mjs +69 -0
- package/{esm2015/foehn-header/foehn-header.module.js → esm2020/foehn-header/foehn-header.module.mjs} +4 -4
- package/{esm2015/foehn-header/foehn-skip-link.component.js → esm2020/foehn-header/foehn-skip-link.component.mjs} +5 -8
- package/{esm2015/foehn-help-modal/foehn-help-modal.component.js → esm2020/foehn-help-modal/foehn-help-modal.component.mjs} +5 -9
- package/{esm2015/foehn-help-modal/foehn-help-modal.module.js → esm2020/foehn-help-modal/foehn-help-modal.module.mjs} +4 -4
- package/{esm2015/foehn-help-modal/foehn-help-modal.type.js → esm2020/foehn-help-modal/foehn-help-modal.type.mjs} +0 -0
- package/{esm2015/foehn-icons/abstract-icon-component.js → esm2020/foehn-icons/abstract-icon-component.mjs} +4 -4
- package/{esm2015/foehn-icons/foehn-icon-calendar.component.js → esm2020/foehn-icons/foehn-icon-calendar.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-check-square-o.component.js → esm2020/foehn-icons/foehn-icon-check-square-o.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-check.component.js → esm2020/foehn-icons/foehn-icon-check.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-down.component.js → esm2020/foehn-icons/foehn-icon-chevron-down.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-left.component.js → esm2020/foehn-icons/foehn-icon-chevron-left.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-right.component.js → esm2020/foehn-icons/foehn-icon-chevron-right.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-up.component.js → esm2020/foehn-icons/foehn-icon-chevron-up.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-clock.component.js → esm2020/foehn-icons/foehn-icon-clock.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-comment-dots.component.js → esm2020/foehn-icons/foehn-icon-comment-dots.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-edit.component.js → esm2020/foehn-icons/foehn-icon-edit.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-external-link-alt.component.js → esm2020/foehn-icons/foehn-icon-external-link-alt.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-file-pdf.component.js → esm2020/foehn-icons/foehn-icon-file-pdf.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-info-circle.component.js → esm2020/foehn-icons/foehn-icon-info-circle.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-lock.component.js → esm2020/foehn-icons/foehn-icon-lock.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-map-marker.component.js → esm2020/foehn-icons/foehn-icon-map-marker.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-minus-circle.component.js → esm2020/foehn-icons/foehn-icon-minus-circle.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-plus-circle.component.js → esm2020/foehn-icons/foehn-icon-plus-circle.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-plus-square.component.js → esm2020/foehn-icons/foehn-icon-plus-square.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-search.component.js → esm2020/foehn-icons/foehn-icon-search.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-times.component.js → esm2020/foehn-icons/foehn-icon-times.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-trash-alt.component.js → esm2020/foehn-icons/foehn-icon-trash-alt.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-unlock-alt.component.js → esm2020/foehn-icons/foehn-icon-unlock-alt.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icons.module.js → esm2020/foehn-icons/foehn-icons.module.mjs} +4 -4
- package/esm2020/foehn-input/foehn-input-email.component.mjs +50 -0
- package/esm2020/foehn-input/foehn-input-hidden.component.mjs +53 -0
- package/{esm2015/foehn-input/foehn-input-number.component.js → esm2020/foehn-input/foehn-input-number.component.mjs} +10 -15
- package/esm2020/foehn-input/foehn-input-password.component.mjs +50 -0
- package/{esm2015/foehn-input/foehn-input-phone.component.js → esm2020/foehn-input/foehn-input-phone.component.mjs} +6 -11
- package/{esm2015/foehn-input/foehn-input-string.component.js → esm2020/foehn-input/foehn-input-string.component.mjs} +3 -3
- package/{esm2015/foehn-input/foehn-input-text.component.js → esm2020/foehn-input/foehn-input-text.component.mjs} +6 -11
- package/{esm2015/foehn-input/foehn-input-textarea.component.js → esm2020/foehn-input/foehn-input-textarea.component.mjs} +6 -11
- package/{esm2015/foehn-input/foehn-input.component.js → esm2020/foehn-input/foehn-input.component.mjs} +14 -14
- package/{esm2015/foehn-input/foehn-input.module.js → esm2020/foehn-input/foehn-input.module.mjs} +4 -4
- package/{esm2015/foehn-input/pattern.const.js → esm2020/foehn-input/pattern.const.mjs} +0 -0
- package/esm2020/foehn-input-date/foehn-input-date.component.mjs +90 -0
- package/esm2020/foehn-input-time/foehn-input-time.component.mjs +75 -0
- package/esm2020/foehn-list/foehn-list.component.mjs +128 -0
- package/{esm2015/foehn-list/foehn-list.module.js → esm2020/foehn-list/foehn-list.module.mjs} +4 -4
- package/{esm2015/foehn-list/page-change-event.js → esm2020/foehn-list/page-change-event.mjs} +0 -0
- package/esm2020/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +122 -0
- package/{esm2015/foehn-menu-prestation/abstract-menu-page.component.js → esm2020/foehn-menu-prestation/abstract-menu-page.component.mjs} +3 -3
- package/{esm2015/foehn-menu-prestation/abstract-page-from-menu.component.js → esm2020/foehn-menu-prestation/abstract-page-from-menu.component.mjs} +3 -3
- package/{esm2015/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.js → esm2020/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs} +5 -8
- package/{esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.js → esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.mjs} +0 -0
- package/{esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-item.js → esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-item.mjs} +0 -0
- package/esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +71 -0
- package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +35 -0
- package/{esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.js → esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs} +5 -8
- package/{esm2015/foehn-menu-prestation/foehn-menu-prestation.module.js → esm2020/foehn-menu-prestation/foehn-menu-prestation.module.mjs} +4 -4
- package/{esm2015/foehn-misc/foehn-abbr.component.js → esm2020/foehn-misc/foehn-abbr.component.mjs} +5 -9
- package/{esm2015/foehn-misc/foehn-misc.module.js → esm2020/foehn-misc/foehn-misc.module.mjs} +4 -4
- package/esm2020/foehn-modal/foehn-modal.component.mjs +96 -0
- package/{esm2015/foehn-modal/foehn-modal.module.js → esm2020/foehn-modal/foehn-modal.module.mjs} +4 -4
- package/esm2020/foehn-nav13/foehn-input-nav13.component.mjs +94 -0
- package/{esm2015/foehn-nav13/foehn-input-nav13.module.js → esm2020/foehn-nav13/foehn-input-nav13.module.mjs} +4 -4
- package/esm2020/foehn-navigation/foehn-navigation.component.mjs +94 -0
- package/{esm2015/foehn-navigation/foehn-navigation.module.js → esm2020/foehn-navigation/foehn-navigation.module.mjs} +4 -4
- package/{esm2015/foehn-navigation/foehn-navigation.service.js → esm2020/foehn-navigation/foehn-navigation.service.mjs} +12 -12
- package/{esm2015/foehn-notfound/foehn-notfound.component.js → esm2020/foehn-notfound/foehn-notfound.component.mjs} +5 -8
- package/{esm2015/foehn-notfound/foehn-notfound.module.js → esm2020/foehn-notfound/foehn-notfound.module.mjs} +4 -4
- package/{esm2015/foehn-page/foehn-page-counter.component.js → esm2020/foehn-page/foehn-page-counter.component.mjs} +5 -8
- package/esm2020/foehn-page/foehn-page-modal.component.mjs +52 -0
- package/{esm2015/foehn-page/foehn-page-modal.service.js → esm2020/foehn-page/foehn-page-modal.service.mjs} +3 -3
- package/esm2020/foehn-page/foehn-page.component.mjs +215 -0
- package/{esm2015/foehn-page/foehn-page.module.js → esm2020/foehn-page/foehn-page.module.mjs} +4 -4
- package/{esm2015/foehn-page/foehn-page.service.js → esm2020/foehn-page/foehn-page.service.mjs} +4 -4
- package/{esm2015/foehn-recap-section/foehn-recap-section.component.js → esm2020/foehn-recap-section/foehn-recap-section.component.mjs} +5 -8
- package/{esm2015/foehn-recap-section/foehn-recap-section.module.js → esm2020/foehn-recap-section/foehn-recap-section.module.mjs} +4 -4
- package/{esm2015/foehn-recap-section/foehn-recap-section.type.js → esm2020/foehn-recap-section/foehn-recap-section.type.mjs} +0 -0
- package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.mjs} +5 -9
- package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs} +4 -4
- package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +37 -0
- package/{esm2015/foehn-status-progress-bar/foehn-status-progress-bar.module.js → esm2020/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs} +4 -4
- package/{esm2015/foehn-table/foehn-table-column-configuration.js → esm2020/foehn-table/foehn-table-column-configuration.mjs} +0 -0
- package/{esm2015/foehn-table/foehn-table-page-change-event.js → esm2020/foehn-table/foehn-table-page-change-event.mjs} +0 -0
- package/esm2020/foehn-table/foehn-table.component.mjs +147 -0
- package/{esm2015/foehn-table/foehn-table.module.js → esm2020/foehn-table/foehn-table.module.mjs} +4 -4
- package/{esm2015/foehn-table/tableSort.js → esm2020/foehn-table/tableSort.mjs} +0 -0
- package/{esm2015/foehn-upload/abstract-foehn-uploader.component.js → esm2020/foehn-upload/abstract-foehn-uploader.component.mjs} +17 -17
- package/{esm2015/foehn-upload/document-reference.js → esm2020/foehn-upload/document-reference.mjs} +0 -0
- package/{esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.js → esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs} +3 -3
- package/{esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.js → esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.mjs} +0 -0
- package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +165 -0
- package/{esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.js → esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs} +4 -4
- package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +214 -0
- package/{esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.js → esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs} +4 -4
- package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.service.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.service.mjs} +3 -3
- package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.type.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.type.mjs} +0 -0
- package/{esm2015/foehn-upload/foehn-multi-upload/pending-upload.service.js → esm2020/foehn-upload/foehn-multi-upload/pending-upload.service.mjs} +3 -3
- package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +163 -0
- package/{esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.js → esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs} +4 -4
- package/{esm2015/foehn-upload/pending-upload.type.js → esm2020/foehn-upload/pending-upload.type.mjs} +0 -0
- package/esm2020/foehn-upload/uploader.helper.mjs +326 -0
- package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.component.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.component.mjs} +5 -8
- package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.module.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.module.mjs} +4 -4
- package/{esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.component.js → esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs} +5 -9
- package/{esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.module.js → esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs} +4 -4
- package/esm2020/foehn-validation-alerts/foehn-validation-alerts.component.mjs +29 -0
- package/{esm2015/foehn-validation-alerts/foehn-validation-alerts.module.js → esm2020/foehn-validation-alerts/foehn-validation-alerts.module.mjs} +4 -4
- package/esm2020/form-error.mjs +2 -0
- package/esm2020/form-post-response.mjs +10 -0
- package/{esm2015/gesdem/gesdem-error-handler.service.js → esm2020/gesdem/gesdem-error-handler.service.mjs} +3 -3
- package/esm2020/gesdem/gesdem-event.service.mjs +38 -0
- package/esm2020/gesdem/gesdem-handler.service.mjs +151 -0
- package/{esm2015/gesdem/gesdem-loader.guard.js → esm2020/gesdem/gesdem-loader.guard.mjs} +3 -3
- package/{esm2015/gesdem/gesdem-statut-utils.js → esm2020/gesdem/gesdem-statut-utils.mjs} +0 -0
- package/{esm2015/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.js → esm2020/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs} +5 -10
- package/esm2020/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +128 -0
- package/{esm2015/gesdem-action-recovery/gesdem-action-recovery.module.js → esm2020/gesdem-action-recovery/gesdem-action-recovery.module.mjs} +4 -4
- package/esm2020/gesdem-action-recovery/gesdem-action-recovery.service.mjs +82 -0
- package/{esm2015/gesdem-action-recovery/reprise-info.js → esm2020/gesdem-action-recovery/reprise-info.mjs} +0 -0
- package/esm2020/gesdem-confirmation/gesdem-confirmation.component.mjs +189 -0
- package/{esm2015/gesdem-confirmation/gesdem-confirmation.module.js → esm2020/gesdem-confirmation/gesdem-confirmation.module.mjs} +4 -4
- package/{esm2015/gesdem-error/gesdem-error.component.js → esm2020/gesdem-error/gesdem-error.component.mjs} +5 -9
- package/{esm2015/gesdem-error/gesdem-error.module.js → esm2020/gesdem-error/gesdem-error.module.mjs} +4 -4
- package/{esm2015/helpers/object.helper.js → esm2020/helpers/object.helper.mjs} +2 -2
- package/{esm2015/i18n-form.js → esm2020/i18n-form.mjs} +0 -0
- package/{esm2015/index.js → esm2020/index.mjs} +3 -3
- package/{esm2015/pipes/currency.pipe.js → esm2020/pipes/currency.pipe.mjs} +3 -3
- package/{esm2015/pipes/date.pipe.js → esm2020/pipes/date.pipe.mjs} +3 -3
- package/{esm2015/pipes/formatIde.pipe.js → esm2020/pipes/formatIde.pipe.mjs} +3 -3
- package/{esm2015/pipes/pipes.module.js → esm2020/pipes/pipes.module.mjs} +4 -4
- package/{esm2015/prestations-ng-core.module.js → esm2020/prestations-ng-core.module.mjs} +4 -4
- package/{esm2015/sdk-appinfo/application-info.js → esm2020/sdk-appinfo/application-info.mjs} +0 -0
- package/esm2020/sdk-appinfo/application-info.service.mjs +102 -0
- package/{esm2015/sdk-currency/currency.helper.js → esm2020/sdk-currency/currency.helper.mjs} +3 -3
- package/esm2020/sdk-date/date.helper.mjs +91 -0
- package/{esm2015/sdk-dictionary/default-dictionary.js → esm2020/sdk-dictionary/default-dictionary.mjs} +0 -0
- package/{esm2015/sdk-dictionary/sdk-dictionary.module.js → esm2020/sdk-dictionary/sdk-dictionary.module.mjs} +4 -4
- package/{esm2015/sdk-dictionary/sdk-dictionary.pipe.js → esm2020/sdk-dictionary/sdk-dictionary.pipe.mjs} +5 -5
- package/{esm2015/sdk-dictionary/sdk-dictionary.service.js → esm2020/sdk-dictionary/sdk-dictionary.service.mjs} +3 -3
- package/{esm2015/sdk-epayment/model/EPaymentParameters.js → esm2020/sdk-epayment/model/EPaymentParameters.mjs} +0 -0
- package/esm2020/sdk-epayment/sdk-epayment.component.mjs +79 -0
- package/{esm2015/sdk-epayment/sdk-epayment.module.js → esm2020/sdk-epayment/sdk-epayment.module.mjs} +4 -4
- package/esm2020/sdk-epayment/sdk-epayment.service.mjs +51 -0
- package/{esm2015/sdk-recaptcha/grecaptcha/grecaptcha.component.js → esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs} +5 -9
- package/esm2020/sdk-recaptcha/recaptcha.service.mjs +162 -0
- package/esm2020/sdk-recaptcha/sdk-recaptcha.component.mjs +68 -0
- package/{esm2015/sdk-recaptcha/sdk-recaptcha.module.js → esm2020/sdk-recaptcha/sdk-recaptcha.module.mjs} +4 -4
- package/{esm2015/sdk-redirect/iam-expired-interceptor.service.js → esm2020/sdk-redirect/iam-expired-interceptor.service.mjs} +3 -3
- package/{esm2015/sdk-redirect/redirect.component.js → esm2020/sdk-redirect/redirect.component.mjs} +5 -9
- package/{esm2015/sdk-redirect/sdk-redirect.module.js → esm2020/sdk-redirect/sdk-redirect.module.mjs} +4 -4
- package/{esm2015/sdk-session-info/session-info-data.js → esm2020/sdk-session-info/session-info-data.mjs} +1 -1
- package/{esm2015/sdk-session-info/session-info-with-application.service.js → esm2020/sdk-session-info/session-info-with-application.service.mjs} +3 -3
- package/esm2020/sdk-session-info/session-info.service.mjs +73 -0
- package/{esm2015/sdk-support-alert/support-alert-container.component.js → esm2020/sdk-support-alert/support-alert-container.component.mjs} +5 -9
- package/esm2020/sdk-support-alert/support-alert.component.mjs +34 -0
- package/{esm2015/sdk-support-alert/support-alert.model.js → esm2020/sdk-support-alert/support-alert.model.mjs} +0 -0
- package/{esm2015/sdk-support-alert/support-alert.module.js → esm2020/sdk-support-alert/support-alert.module.mjs} +4 -4
- package/{esm2015/sdk-support-alert/support-alert.service.js → esm2020/sdk-support-alert/support-alert.service.mjs} +3 -3
- package/{esm2015/service-locator.js → esm2020/service-locator.mjs} +0 -0
- package/esm2020/supported-browser.mjs +2 -0
- package/esm2020/validation/validation-handler.service.mjs +44 -0
- package/fesm2015/{dsivd-prestations-ng.js → dsivd-prestations-ng.mjs} +973 -1300
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -0
- package/fesm2020/dsivd-prestations-ng.mjs +11532 -0
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -0
- package/foehn-breadcrumb/breadcrumb-event.service.d.ts +2 -2
- package/foehn-checkables/foehn-checkable-group.component.d.ts +3 -3
- package/foehn-confirm-modal/foehn-confirm-modal.component.d.ts +1 -1
- package/foehn-date-picker/date-picker-navigation.helper.d.ts +1 -1
- package/foehn-date-picker/date-picker.helper.d.ts +1 -1
- package/foehn-date-picker/foehn-date-picker.component.d.ts +3 -3
- package/foehn-date-picker-button/foehn-date-picker-button.component.d.ts +2 -2
- package/foehn-debug-summary/foehn-debug-summary.component.d.ts +1 -1
- package/foehn-growl/foehn-growl.component.d.ts +1 -1
- package/foehn-header/foehn-header.component.d.ts +2 -2
- package/foehn-input/foehn-input-number.component.d.ts +1 -1
- package/foehn-input/foehn-input.component.d.ts +4 -4
- package/foehn-list/foehn-list.component.d.ts +2 -2
- package/foehn-menu-prestation/abstract-list-item-detail-page.component.d.ts +1 -1
- package/foehn-modal/foehn-modal.component.d.ts +1 -1
- package/foehn-navigation/foehn-navigation.service.d.ts +2 -2
- package/foehn-page/foehn-page.service.d.ts +2 -2
- package/foehn-table/foehn-table.component.d.ts +2 -2
- package/foehn-upload/abstract-foehn-uploader.component.d.ts +2 -2
- package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.d.ts +1 -1
- package/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.d.ts +2 -2
- package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +1 -1
- package/foehn-upload/uploader.helper.d.ts +12 -12
- package/foehn-validation-alerts/foehn-validation-alerts.component.d.ts +3 -3
- package/{error-template.d.ts → form-error.d.ts} +1 -1
- package/form-post-response.d.ts +17 -0
- package/gesdem/gesdem-event.service.d.ts +6 -6
- package/gesdem/gesdem-handler.service.d.ts +3 -3
- package/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.d.ts +2 -2
- package/gesdem-action-recovery/gesdem-action-recovery.service.d.ts +2 -2
- package/gesdem-confirmation/gesdem-confirmation.component.d.ts +4 -4
- package/index.d.ts +2 -2
- package/package.json +26 -13
- package/schematics/ng-add/index.js +6 -6
- package/schematics/ng-update/migrations/update-13_1_0/index.js +2 -2
- package/schematics/ng-update/migrations/update-13_2_0/index.js +3 -3
- package/schematics/ng-update/migrations/update-13_5_1/index.js +2 -2
- package/schematics/ng-update/migrations/update-14_5_0/index.js +2 -2
- package/schematics/update-karma-config/index.js +2 -2
- package/schematics/utility/migrate-to-karma-coverage.js +3 -3
- package/sdk-appinfo/application-info.service.d.ts +2 -2
- package/sdk-epayment/sdk-epayment.component.d.ts +3 -13
- package/sdk-epayment/sdk-epayment.service.d.ts +2 -5
- package/sdk-recaptcha/recaptcha.service.d.ts +2 -2
- package/sdk-recaptcha/sdk-recaptcha.component.d.ts +2 -2
- package/sdk-session-info/session-info-data.d.ts +0 -1
- package/sdk-session-info/session-info.service.d.ts +9 -2
- package/validation/validation-handler.service.d.ts +4 -4
- package/backend-response.d.ts +0 -18
- package/bundles/dsivd-prestations-ng.umd.js +0 -13472
- package/bundles/dsivd-prestations-ng.umd.js.map +0 -1
- package/dsivd-prestations-ng-v14.5.20.tgz +0 -0
- package/esm2015/abstract-page-component.js +0 -224
- package/esm2015/backend-response.js +0 -10
- package/esm2015/error-template.js +0 -2
- package/esm2015/foehn-address/foehn-input-address.component.js +0 -365
- package/esm2015/foehn-address/foehn-input-foreign-locality.component.js +0 -71
- package/esm2015/foehn-autocomplete/foehn-autocomplete.component.js +0 -556
- package/esm2015/foehn-boolean/foehn-boolean-checkbox.component.js +0 -32
- package/esm2015/foehn-boolean/foehn-boolean-radio.component.js +0 -41
- package/esm2015/foehn-checkables/foehn-checkable-group.component.js +0 -294
- package/esm2015/foehn-checkables/foehn-checkbox.component.js +0 -40
- package/esm2015/foehn-checkables/foehn-radio.component.js +0 -67
- package/esm2015/foehn-checkables/foehn-select.component.js +0 -66
- package/esm2015/foehn-confirm-modal/foehn-confirm-modal.component.js +0 -42
- package/esm2015/foehn-date-picker-button/foehn-date-picker-button.component.js +0 -74
- package/esm2015/foehn-decision-electronique/foehn-decision-electronique.component.js +0 -40
- package/esm2015/foehn-footer/foehn-footer.component.js +0 -132
- package/esm2015/foehn-header/foehn-header.component.js +0 -73
- package/esm2015/foehn-input/foehn-input-email.component.js +0 -55
- package/esm2015/foehn-input/foehn-input-hidden.component.js +0 -57
- package/esm2015/foehn-input/foehn-input-password.component.js +0 -55
- package/esm2015/foehn-input-date/foehn-input-date.component.js +0 -94
- package/esm2015/foehn-input-time/foehn-input-time.component.js +0 -79
- package/esm2015/foehn-list/foehn-list.component.js +0 -134
- package/esm2015/foehn-menu-prestation/abstract-list-item-detail-page.component.js +0 -122
- package/esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.js +0 -75
- package/esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.js +0 -38
- package/esm2015/foehn-modal/foehn-modal.component.js +0 -100
- package/esm2015/foehn-nav13/foehn-input-nav13.component.js +0 -98
- package/esm2015/foehn-navigation/foehn-navigation.component.js +0 -98
- package/esm2015/foehn-page/foehn-page-modal.component.js +0 -55
- package/esm2015/foehn-page/foehn-page.component.js +0 -217
- package/esm2015/foehn-status-progress-bar/foehn-status-progress-bar.component.js +0 -42
- package/esm2015/foehn-table/foehn-table.component.js +0 -151
- package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.js +0 -171
- package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.js +0 -220
- package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.js +0 -167
- package/esm2015/foehn-upload/uploader.helper.js +0 -322
- package/esm2015/foehn-validation-alerts/foehn-validation-alerts.component.js +0 -32
- package/esm2015/gesdem/gesdem-event.service.js +0 -38
- package/esm2015/gesdem/gesdem-handler.service.js +0 -151
- package/esm2015/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.js +0 -133
- package/esm2015/gesdem-action-recovery/gesdem-action-recovery.service.js +0 -82
- package/esm2015/gesdem-confirmation/gesdem-confirmation.component.js +0 -194
- package/esm2015/sdk-appinfo/application-info.service.js +0 -111
- package/esm2015/sdk-date/date.helper.js +0 -90
- package/esm2015/sdk-epayment/model/EPaymentRequest.js +0 -3
- package/esm2015/sdk-epayment/sdk-epayment.component.js +0 -113
- package/esm2015/sdk-epayment/sdk-epayment.service.js +0 -46
- package/esm2015/sdk-recaptcha/recaptcha.service.js +0 -162
- package/esm2015/sdk-recaptcha/sdk-recaptcha.component.js +0 -72
- package/esm2015/sdk-session-info/session-info.service.js +0 -44
- package/esm2015/sdk-support-alert/support-alert.component.js +0 -38
- package/esm2015/supported-browser.js +0 -2
- package/esm2015/validation/validation-handler.service.js +0 -44
- package/fesm2015/dsivd-prestations-ng.js.map +0 -1
- package/sdk-epayment/model/EPaymentRequest.d.ts +0 -5
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { NavigationEnd } from '@angular/router';
|
|
3
|
-
import { combineLatest, merge, of } from 'rxjs';
|
|
4
|
-
import { debounceTime, filter, map } from 'rxjs/operators';
|
|
5
|
-
import { supportedBrowsers } from '../supported-browser';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/platform-browser";
|
|
8
|
-
import * as i2 from "./foehn-page.service";
|
|
9
|
-
import * as i3 from "../sdk-support-alert/support-alert.service";
|
|
10
|
-
import * as i4 from "../foehn-navigation/foehn-navigation.service";
|
|
11
|
-
import * as i5 from "../sdk-appinfo/application-info.service";
|
|
12
|
-
import * as i6 from "../gesdem/gesdem-event.service";
|
|
13
|
-
import * as i7 from "../foehn-breadcrumb/breadcrumb-event.service";
|
|
14
|
-
import * as i8 from "@angular/router";
|
|
15
|
-
import * as i9 from "../sdk-session-info/session-info.service";
|
|
16
|
-
import * as i10 from "../foehn-page/foehn-page-modal.service";
|
|
17
|
-
import * as i11 from "../sdk-dictionary/sdk-dictionary.service";
|
|
18
|
-
import * as i12 from "../foehn-header/foehn-header.component";
|
|
19
|
-
import * as i13 from "../foehn-growl/foehn-growl.component";
|
|
20
|
-
import * as i14 from "../foehn-breadcrumb/foehn-breadcrumb.component";
|
|
21
|
-
import * as i15 from "../foehn-status-progress-bar/foehn-status-progress-bar.component";
|
|
22
|
-
import * as i16 from "../foehn-icons/foehn-icon-external-link-alt.component";
|
|
23
|
-
import * as i17 from "../sdk-support-alert/support-alert-container.component";
|
|
24
|
-
import * as i18 from "../foehn-user-connected-as/foehn-user-connected-as.component";
|
|
25
|
-
import * as i19 from "../foehn-footer/foehn-footer.component";
|
|
26
|
-
import * as i20 from "./foehn-page-modal.component";
|
|
27
|
-
import * as i21 from "../foehn-confirm-modal/foehn-confirm-modal.component";
|
|
28
|
-
import * as i22 from "@angular/common";
|
|
29
|
-
import * as i23 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
30
|
-
const LEAVING_ALERT_CONTENT = 'Ce changement de page entraine une perte des données non sauvegardées.<br/>Souhaitez-vous quand même continuer ?';
|
|
31
|
-
const LEAVING_ALERT_OK = 'Poursuivre sans sauvegarder';
|
|
32
|
-
const LEAVING_ALERT_CANCEL = 'Retourner à la prestation';
|
|
33
|
-
export class FoehnPageComponent {
|
|
34
|
-
constructor(_titleService, foehnPageService, supportAlertService, foehnNavigationService, applicationInfoService, gesdemEventService, breadcrumbService, router, sessionInfo, foehnPageModalService, sdkDictionaryService) {
|
|
35
|
-
this._titleService = _titleService;
|
|
36
|
-
this.foehnPageService = foehnPageService;
|
|
37
|
-
this.supportAlertService = supportAlertService;
|
|
38
|
-
this.foehnNavigationService = foehnNavigationService;
|
|
39
|
-
this.applicationInfoService = applicationInfoService;
|
|
40
|
-
this.gesdemEventService = gesdemEventService;
|
|
41
|
-
this.breadcrumbService = breadcrumbService;
|
|
42
|
-
this.router = router;
|
|
43
|
-
this.sessionInfo = sessionInfo;
|
|
44
|
-
this.foehnPageModalService = foehnPageModalService;
|
|
45
|
-
this.sdkDictionaryService = sdkDictionaryService;
|
|
46
|
-
this.supportAlertEnabled = true;
|
|
47
|
-
this.userConnectedAsDisplayed = true;
|
|
48
|
-
this.confirmLeavingAlert = {
|
|
49
|
-
htmlContent: LEAVING_ALERT_CONTENT,
|
|
50
|
-
okButtonLabel: LEAVING_ALERT_OK,
|
|
51
|
-
cancelButtonLabel: LEAVING_ALERT_CANCEL
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* If set to 'false', hide the default Contact link in the footer.
|
|
55
|
-
*/
|
|
56
|
-
this.showDefaultContactFooterLink = true;
|
|
57
|
-
/**
|
|
58
|
-
* If set to 'false', hide the default Guide link in the footer.
|
|
59
|
-
*/
|
|
60
|
-
this.showDefaultGuideFooterLink = true;
|
|
61
|
-
/**
|
|
62
|
-
* If set to 'false', hide the default Terms of use link.
|
|
63
|
-
*/
|
|
64
|
-
this.showDefaultTermOfUseLink = true;
|
|
65
|
-
/**
|
|
66
|
-
* If set to 'false', hide the default Security Best Practice link.
|
|
67
|
-
*/
|
|
68
|
-
this.showDefaultSecurityBestPracticeLink = true;
|
|
69
|
-
this.browserLinkTitlePrefix = 'Lien pour le téléchargement du navigateur internet';
|
|
70
|
-
this.browserNotSupportedBypass = false;
|
|
71
|
-
this.hasBlockingSupportAlert = supportAlertService.getHasAtLeastOneBlockingAlert();
|
|
72
|
-
this.blockedSubscription = combineLatest([
|
|
73
|
-
this.foehnPageService.foehnPageObservable(),
|
|
74
|
-
// Ensures there is at least one value in the observable.
|
|
75
|
-
merge(of(false), this.hasBlockingSupportAlert)
|
|
76
|
-
]).subscribe(([title, blocked]) => {
|
|
77
|
-
if (blocked) {
|
|
78
|
-
this.setPageTitle('Prestation indisponible');
|
|
79
|
-
}
|
|
80
|
-
else if (title) {
|
|
81
|
-
this.setPageTitle(title);
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
this.isBrowserSupported = supportedBrowsers.test(navigator.userAgent);
|
|
85
|
-
this.isApplePlatform = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
|
|
86
|
-
}
|
|
87
|
-
ngOnInit() {
|
|
88
|
-
if (!this.isBrowserSupported) {
|
|
89
|
-
const pageTitle = 'Navigateur non supporté';
|
|
90
|
-
this.foehnPageService.setPageTitle(pageTitle);
|
|
91
|
-
this.breadcrumbService.setCurrentBreadcrumb({
|
|
92
|
-
url: null,
|
|
93
|
-
routerLink: null,
|
|
94
|
-
label: pageTitle
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
const isInitialStep = this.applicationInfoService.currentEtapeInfo.pipe(map((currentEtapeInfo) => currentEtapeInfo &&
|
|
98
|
-
currentEtapeInfo.idMetierEtape ===
|
|
99
|
-
currentEtapeInfo.idMetierPrestation));
|
|
100
|
-
// const navigationUpdate: Observable<any> = of (true)
|
|
101
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
102
|
-
const navigationUpdate = this.router.events.pipe(filter(event => event instanceof NavigationEnd));
|
|
103
|
-
// Ensures there is at least one value in the observable.
|
|
104
|
-
const navigationAndInit = merge(of(true), navigationUpdate);
|
|
105
|
-
const formTransmitted = merge(of(undefined), this.gesdemEventService.formTransmittedObservable());
|
|
106
|
-
this.displayUserCategory = combineLatest([
|
|
107
|
-
isInitialStep,
|
|
108
|
-
this.foehnNavigationService.hasBeenInitialized(),
|
|
109
|
-
formTransmitted,
|
|
110
|
-
navigationAndInit
|
|
111
|
-
]).pipe(debounceTime(0), // without debounceTime, the outcome is less effective...
|
|
112
|
-
map(([initialStep, navServiceInitialized, backendResponse]) => {
|
|
113
|
-
if (navServiceInitialized) {
|
|
114
|
-
const isFirstPage = this.foehnNavigationService.isFirstFormPage();
|
|
115
|
-
const isLastPage = this.foehnNavigationService.isLastFormPage();
|
|
116
|
-
const isCurrentRouteDefined = this.foehnNavigationService.getCurrentRouteIndex() !==
|
|
117
|
-
null;
|
|
118
|
-
return this.foehnPageService.isUserCategoryVisible(isFirstPage, isLastPage, this.userConnectedAsDisplayed, initialStep, this.neverConnected, backendResponse, isCurrentRouteDefined);
|
|
119
|
-
}
|
|
120
|
-
return false;
|
|
121
|
-
}));
|
|
122
|
-
const formInitializationObservable = merge(of(undefined), this.gesdemEventService.formInitializationObservable());
|
|
123
|
-
if (this.neverConnected) {
|
|
124
|
-
this.displayLoginMessages = of(new DisplayLoginMessagesData(false, false));
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
this.displayLoginMessages = combineLatest([
|
|
128
|
-
formInitializationObservable,
|
|
129
|
-
this.sessionInfo.data,
|
|
130
|
-
this.applicationInfoService.currentEtapeInfo
|
|
131
|
-
]).pipe(debounceTime(0), // without debounceTime, the outcome is less effective...
|
|
132
|
-
map(([formInitialization, sessionInfoData, currentEtapeInfo]) => {
|
|
133
|
-
const isConnectedCyberOrIam = !!sessionInfoData;
|
|
134
|
-
const isLastPage = this.foehnNavigationService.isLastFormPage();
|
|
135
|
-
if (isConnectedCyberOrIam ||
|
|
136
|
-
!currentEtapeInfo.deployeeCyber ||
|
|
137
|
-
!!formInitialization ||
|
|
138
|
-
isLastPage) {
|
|
139
|
-
return new DisplayLoginMessagesData(false, false);
|
|
140
|
-
}
|
|
141
|
-
return new DisplayLoginMessagesData(currentEtapeInfo === null || currentEtapeInfo === void 0 ? void 0 : currentEtapeInfo.decisionElectroniqueAvailable, true);
|
|
142
|
-
}));
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
ngOnChanges(changes) {
|
|
146
|
-
const etapeIdChange = changes.etapeId;
|
|
147
|
-
if (etapeIdChange && etapeIdChange.currentValue) {
|
|
148
|
-
this.foehnPageService.setCurrentEtapeId(etapeIdChange.currentValue);
|
|
149
|
-
}
|
|
150
|
-
const appTitleChange = changes.appTitle;
|
|
151
|
-
if (appTitleChange) {
|
|
152
|
-
this._titleService.setTitle(appTitleChange.currentValue);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
ngOnDestroy() {
|
|
156
|
-
if (this.blockedSubscription) {
|
|
157
|
-
this.blockedSubscription.unsubscribe();
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
getFullLoginUrl() {
|
|
161
|
-
return this.foehnPageModalService.buildSelfRedirectionThroughCyberLogin();
|
|
162
|
-
}
|
|
163
|
-
getFullLoginMessage(decisionElectroniqueAvailable) {
|
|
164
|
-
if (decisionElectroniqueAvailable) {
|
|
165
|
-
return combineLatest([
|
|
166
|
-
this.sdkDictionaryService.getKey('use-login.text'),
|
|
167
|
-
this.sdkDictionaryService.getKey('use-login.text.decision-electronique-available')
|
|
168
|
-
]).pipe(map(([loginMsg, decisionElectroniqueAvailableMsg]) => `${loginMsg}<br/><br/>${decisionElectroniqueAvailableMsg}`));
|
|
169
|
-
}
|
|
170
|
-
return this.sdkDictionaryService.getKey('use-login.text');
|
|
171
|
-
}
|
|
172
|
-
setPageTitle(title) {
|
|
173
|
-
this.pageTitle = title;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
FoehnPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnPageComponent, deps: [{ token: i1.Title }, { token: i2.FoehnPageService }, { token: i3.SupportAlertService }, { token: i4.FoehnNavigationService }, { token: i5.ApplicationInfoService }, { token: i6.GesdemEventService }, { token: i7.BreadcrumbEventService }, { token: i8.Router }, { token: i9.SessionInfo }, { token: i10.FoehnPageModalService }, { token: i11.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
177
|
-
FoehnPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnPageComponent, selector: "foehn-page", inputs: { appTitle: "appTitle", footerLinks: "footerLinks", neverConnected: "neverConnected", supportAlertEnabled: "supportAlertEnabled", supportAlertUrl: "supportAlertUrl", etapeId: "etapeId", userConnectedAsDisplayed: "userConnectedAsDisplayed", statusProgressBarHidden: "statusProgressBarHidden", confirmLeavingAlert: "confirmLeavingAlert", showDefaultContactFooterLink: "showDefaultContactFooterLink", showDefaultGuideFooterLink: "showDefaultGuideFooterLink", showDefaultTermOfUseLink: "showDefaultTermOfUseLink", showDefaultSecurityBestPracticeLink: "showDefaultSecurityBestPracticeLink" }, usesOnChanges: true, ngImport: i0, template: "<foehn-header\n id=\"foehn_header\"\n [title]=\"appTitle\"\n [neverConnected]=\"neverConnected\"\n></foehn-header>\n<foehn-growl id=\"foehn_growl\"></foehn-growl>\n<div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <foehn-breadcrumb\n [neverConnected]=\"neverConnected\"\n [confirmLeavingAlert]=\"confirmLeavingAlert\"\n ></foehn-breadcrumb>\n </div>\n</div>\n<main id=\"main\">\n <div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <!-- Fix annoying flickering when the page loads -->\n <div class=\"h1 mt-0\" *ngIf=\"!pageTitle\"> </div>\n <h1\n [tabIndex]=\"-1\"\n class=\"mt-0\"\n id=\"page-title\"\n *ngIf=\"!!pageTitle\"\n [innerHTML]=\"pageTitle\"\n ></h1>\n </div>\n </div>\n\n <foehn-status-progress-bar\n [hidden]=\"statusProgressBarHidden\"\n ></foehn-status-progress-bar>\n\n <section\n *ngIf=\"!isBrowserSupported\"\n class=\"container alert alert-danger\"\n id=\"browser_not_supported_block\"\n role=\"alert\"\n >\n <p class=\"alert-heading\">\n <strong>\n Cette prestation n\u2019est pas compatible avec votre navigateur.\n </strong>\n </p>\n <p class=\"mb-0\">\n Nous vous invitons \u00E0 utiliser une version r\u00E9cente de\n <ng-container *ngIf=\"!isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Edge'\"\n href=\"https://www.microsoft.com/fr-ch/windows/microsoft-edge\"\n target=\"_blank\"\n >\n Edge\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <ng-container *ngIf=\"isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Safari'\"\n href=\"https://support.apple.com/downloads/safari\"\n target=\"_blank\"\n >\n Safari\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <a\n [title]=\"browserLinkTitlePrefix + ' Firefox'\"\n href=\"https://www.mozilla.org/fr/firefox/\"\n target=\"_blank\"\n >\n Firefox\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ou\n <a\n [title]=\"browserLinkTitlePrefix + ' Chrome'\"\n href=\"https://www.google.com/intl/fr/chrome/\"\n target=\"_blank\"\n >\n Chrome\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n .\n </p>\n <div class=\"row mt-3\">\n <div class=\"col-md-12\">\n <button\n id=\"browser_not_supported_bypass\"\n class=\"float-right btn btn-danger\"\n *ngIf=\"!browserNotSupportedBypass\"\n (click)=\"browserNotSupportedBypass = true\"\n >\n Continuer avec ce navigateur\n </button>\n </div>\n </div>\n </section>\n\n <sdk-support-alert-container\n *ngIf=\"supportAlertEnabled\"\n [etapeId]=\"etapeId\"\n [supportAlertUrl]=\"supportAlertUrl\"\n ></sdk-support-alert-container>\n <ng-container\n *ngIf=\"\n !(hasBlockingSupportAlert | async) &&\n (isBrowserSupported || browserNotSupportedBypass)\n \"\n >\n <div class=\"container mt-5\" id=\"page_content\">\n <foehn-user-connected-as\n *ngIf=\"displayUserCategory | async\"\n ></foehn-user-connected-as>\n <ng-container\n *ngIf=\"displayLoginMessages | async as displayLoginMessagesData\"\n >\n <div\n *ngIf=\"displayLoginMessagesData.displayShouldLoginMessage\"\n class=\"alert alert-info\"\n id=\"displayLoginMessage\"\n >\n <p\n [innerHTML]=\"\n getFullLoginMessage(\n displayLoginMessagesData.decisionElectroniqueAvailable\n ) | async\n \"\n ></p>\n <div class=\"d-flex justify-content-start mr-2 mb-2 mt-2\">\n <a\n class=\"btn btn-primary\"\n [href]=\"getFullLoginUrl() | async\"\n >\n {{ 'use-login.button.text' | fromDictionary }}\n </a>\n </div>\n </div>\n </ng-container>\n </div>\n <ng-content></ng-content>\n </ng-container>\n</main>\n<foehn-footer\n id=\"foehn_footer\"\n [links]=\"footerLinks\"\n [showDefaultContactLink]=\"showDefaultContactFooterLink\"\n [showDefaultGuideLink]=\"showDefaultGuideFooterLink\"\n [showDefaultTermOfUseLink]=\"showDefaultTermOfUseLink\"\n [showDefaultSecurityBestPracticeLink]=\"showDefaultSecurityBestPracticeLink\"\n></foehn-footer>\n<foehn-page-modal></foehn-page-modal>\n<foehn-confirm-modal></foehn-confirm-modal>\n", components: [{ type: i12.FoehnHeaderComponent, selector: "foehn-header", inputs: ["userInfo", "title", "neverConnected"] }, { type: i13.FoehnGrowlComponent, selector: "foehn-growl" }, { type: i14.FoehnBreadcrumbComponent, selector: "foehn-breadcrumb", inputs: ["breadcrumbItems", "currentNav", "neverConnected", "confirmLeavingAlert"] }, { type: i15.FoehnStatusProgressBarComponent, selector: "foehn-status-progress-bar", inputs: ["hidden"] }, { type: i16.FoehnIconExternalLinkAltComponent, selector: "foehn-icon-external-link-alt" }, { type: i17.SupportAlertContainerComponent, selector: "sdk-support-alert-container", inputs: ["etapeId", "supportAlertUrl"] }, { type: i18.FoehnUserConnectedAsComponent, selector: "foehn-user-connected-as" }, { type: i19.FoehnFooterComponent, selector: "foehn-footer", inputs: ["links", "showDefaultContactLink", "showDefaultGuideLink", "showDefaultTermOfUseLink", "showDefaultSecurityBestPracticeLink"] }, { type: i20.FoehnPageModalComponent, selector: "foehn-page-modal" }, { type: i21.FoehnConfirmModalComponent, selector: "foehn-confirm-modal" }], directives: [{ type: i22.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i22.AsyncPipe, "fromDictionary": i23.SdkDictionaryPipe } });
|
|
178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnPageComponent, decorators: [{
|
|
179
|
-
type: Component,
|
|
180
|
-
args: [{
|
|
181
|
-
selector: 'foehn-page',
|
|
182
|
-
templateUrl: './foehn-page.component.html'
|
|
183
|
-
}]
|
|
184
|
-
}], ctorParameters: function () { return [{ type: i1.Title }, { type: i2.FoehnPageService }, { type: i3.SupportAlertService }, { type: i4.FoehnNavigationService }, { type: i5.ApplicationInfoService }, { type: i6.GesdemEventService }, { type: i7.BreadcrumbEventService }, { type: i8.Router }, { type: i9.SessionInfo }, { type: i10.FoehnPageModalService }, { type: i11.SdkDictionaryService }]; }, propDecorators: { appTitle: [{
|
|
185
|
-
type: Input
|
|
186
|
-
}], footerLinks: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], neverConnected: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], supportAlertEnabled: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}], supportAlertUrl: [{
|
|
193
|
-
type: Input
|
|
194
|
-
}], etapeId: [{
|
|
195
|
-
type: Input
|
|
196
|
-
}], userConnectedAsDisplayed: [{
|
|
197
|
-
type: Input
|
|
198
|
-
}], statusProgressBarHidden: [{
|
|
199
|
-
type: Input
|
|
200
|
-
}], confirmLeavingAlert: [{
|
|
201
|
-
type: Input
|
|
202
|
-
}], showDefaultContactFooterLink: [{
|
|
203
|
-
type: Input
|
|
204
|
-
}], showDefaultGuideFooterLink: [{
|
|
205
|
-
type: Input
|
|
206
|
-
}], showDefaultTermOfUseLink: [{
|
|
207
|
-
type: Input
|
|
208
|
-
}], showDefaultSecurityBestPracticeLink: [{
|
|
209
|
-
type: Input
|
|
210
|
-
}] } });
|
|
211
|
-
export class DisplayLoginMessagesData {
|
|
212
|
-
constructor(decisionElectroniqueAvailable, displayShouldLoginMessage) {
|
|
213
|
-
this.decisionElectroniqueAvailable = decisionElectroniqueAvailable;
|
|
214
|
-
this.displayShouldLoginMessage = displayShouldLoginMessage;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tcGFnZS9mb2Vobi1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBS1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBS3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLekQsTUFBTSxxQkFBcUIsR0FDdkIsa0hBQWtILENBQUM7QUFDdkgsTUFBTSxnQkFBZ0IsR0FBRyw2QkFBNkIsQ0FBQztBQUN2RCxNQUFNLG9CQUFvQixHQUFHLDJCQUEyQixDQUFDO0FBTXpELE1BQU0sT0FBTyxrQkFBa0I7SUEyRTNCLFlBQ1ksYUFBb0IsRUFDcEIsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUN4QyxzQkFBOEMsRUFDOUMsc0JBQThDLEVBQzlDLGtCQUFzQyxFQUN0QyxpQkFBeUMsRUFDekMsTUFBYyxFQUNkLFdBQXdCLEVBQ3hCLHFCQUE0QyxFQUM1QyxvQkFBMEM7UUFWMUMsa0JBQWEsR0FBYixhQUFhLENBQU87UUFDcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENB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UzttQkFBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsV0FBVyxFQUFFLDZCQUE2QjtpQkFDN0M7cWFBR0csUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sd0JBQXdCO3NCQUR2QixLQUFLO2dCQUlOLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFJTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBV04sNEJBQTRCO3NCQUQzQixLQUFLO2dCQU9OLDBCQUEwQjtzQkFEekIsS0FBSztnQkFPTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBT04sbUNBQW1DO3NCQURsQyxLQUFLOztBQTRNVixNQUFNLE9BQU8sd0JBQXdCO0lBSWpDLFlBQ0ksNkJBQXNDLEVBQ3RDLHlCQUFrQztRQUVsQyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsNkJBQTZCLENBQUM7UUFDbkUsSUFBSSxDQUFDLHlCQUF5QixHQUFHLHlCQUF5QixDQUFDO0lBQy9ELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9vdGVyTGluayB9IGZyb20gJy4uL2ZvZWhuLWZvb3Rlci9mb290ZXItbGluay50eXBlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBGb2VoblBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9mb2Vobi1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3VwcG9ydEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL3Nkay1zdXBwb3J0LWFsZXJ0L3N1cHBvcnQtYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9laG5OYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLW5hdmlnYXRpb24vZm9laG4tbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UgfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV0YXBlSW5mbyB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8nO1xuaW1wb3J0IHsgR2VzZGVtRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuQ29uZmlybU1vZGFsQ29udGVudCB9IGZyb20gJy4uL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC1jb250ZW50JztcbmltcG9ydCB7IEJyZWFkY3J1bWJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1icmVhZGNydW1iL2JyZWFkY3J1bWItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBzdXBwb3J0ZWRCcm93c2VycyB9IGZyb20gJy4uL3N1cHBvcnRlZC1icm93c2VyJztcbmltcG9ydCB7IFNlc3Npb25JbmZvIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBGb2VoblBhZ2VNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2UtbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuXG5jb25zdCBMRUFWSU5HX0FMRVJUX0NPTlRFTlQgPVxuICAgICdDZSBjaGFuZ2VtZW50IGRlIHBhZ2UgZW50cmFpbmUgdW5lIHBlcnRlIGRlcyBkb25uw6llcyBub24gc2F1dmVnYXJkw6llcy48YnIvPlNvdWhhaXRlei12b3VzIHF1YW5kIG3Dqm1lIGNvbnRpbnVlciA/JztcbmNvbnN0IExFQVZJTkdfQUxFUlRfT0sgPSAnUG91cnN1aXZyZSBzYW5zIHNhdXZlZ2FyZGVyJztcbmNvbnN0IExFQVZJTkdfQUxFUlRfQ0FOQ0VMID0gJ1JldG91cm5lciDDoCBsYSBwcmVzdGF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1wYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tcGFnZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRm9laG5QYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBhcHBUaXRsZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBmb290ZXJMaW5rczogRm9vdGVyTGlua1tdO1xuXG4gICAgQElucHV0KClcbiAgICBuZXZlckNvbm5lY3RlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgc3VwcG9ydEFsZXJ0RW5hYmxlZCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHN1cHBvcnRBbGVydFVybDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBldGFwZUlkOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHVzZXJDb25uZWN0ZWRBc0Rpc3BsYXllZCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHN0YXR1c1Byb2dyZXNzQmFySGlkZGVuOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBjb25maXJtTGVhdmluZ0FsZXJ0OiBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQgPSB7XG4gICAgICAgIGh0bWxDb250ZW50OiBMRUFWSU5HX0FMRVJUX0NPTlRFTlQsXG4gICAgICAgIG9rQnV0dG9uTGFiZWw6IExFQVZJTkdfQUxFUlRfT0ssXG4gICAgICAgIGNhbmNlbEJ1dHRvbkxhYmVsOiBMRUFWSU5HX0FMRVJUX0NBTkNFTFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBJZiBzZXQgdG8gJ2ZhbHNlJywgaGlkZSB0aGUgZGVmYXVsdCBDb250YWN0IGxpbmsgaW4gdGhlIGZvb3Rlci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dEZWZhdWx0Q29udGFjdEZvb3RlckxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgR3VpZGUgbGluayBpbiB0aGUgZm9vdGVyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRHdWlkZUZvb3RlckxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgVGVybXMgb2YgdXNlIGxpbmsuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93RGVmYXVsdFRlcm1PZlVzZUxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgU2VjdXJpdHkgQmVzdCBQcmFjdGljZSBsaW5rLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRTZWN1cml0eUJlc3RQcmFjdGljZUxpbmsgPSB0cnVlO1xuXG4gICAgcGFnZVRpdGxlOiBzdHJpbmc7XG5cbiAgICBoYXNCbG9ja2luZ1N1cHBvcnRBbGVydDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIGRpc3BsYXlVc2VyQ2F0ZWdvcnk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBkaXNwbGF5TG9naW5NZXNzYWdlczogT2JzZXJ2YWJsZTxEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGE+O1xuXG4gICAgaXNCcm93c2VyU3VwcG9ydGVkOiBib29sZWFuO1xuXG4gICAgaXNBcHBsZVBsYXRmb3JtOiBib29sZWFuO1xuXG4gICAgYnJvd3NlckxpbmtUaXRsZVByZWZpeCA9XG4gICAgICAgICdMaWVuIHBvdXIgbGUgdMOpbMOpY2hhcmdlbWVudCBkdSBuYXZpZ2F0ZXVyIGludGVybmV0JztcblxuICAgIGJyb3dzZXJOb3RTdXBwb3J0ZWRCeXBhc3MgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmxvY2tlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3RpdGxlU2VydmljZTogVGl0bGUsXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzdXBwb3J0QWxlcnRTZXJ2aWNlOiBTdXBwb3J0QWxlcnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZvZWhuTmF2aWdhdGlvblNlcnZpY2U6IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1FdmVudFNlcnZpY2U6IEdlc2RlbUV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYkV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8sXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlTW9kYWxTZXJ2aWNlOiBGb2VoblBhZ2VNb2RhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2RrRGljdGlvbmFyeVNlcnZpY2U6IFNka0RpY3Rpb25hcnlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQgPSBzdXBwb3J0QWxlcnRTZXJ2aWNlLmdldEhhc0F0TGVhc3RPbmVCbG9ja2luZ0FsZXJ0KCk7XG5cbiAgICAgICAgdGhpcy5ibG9ja2VkU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmZvZWhuUGFnZVNlcnZpY2UuZm9laG5QYWdlT2JzZXJ2YWJsZSgpLFxuICAgICAgICAgICAgLy8gRW5zdXJlcyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdmFsdWUgaW4gdGhlIG9ic2VydmFibGUuXG4gICAgICAgICAgICBtZXJnZShvZihmYWxzZSksIHRoaXMuaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQpXG4gICAgICAgIF0pLnN1YnNjcmliZSgoW3RpdGxlLCBibG9ja2VkXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGJsb2NrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSgnUHJlc3RhdGlvbiBpbmRpc3BvbmlibGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmlzQnJvd3NlclN1cHBvcnRlZCA9IHN1cHBvcnRlZEJyb3dzZXJzLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gICAgICAgIHRoaXMuaXNBcHBsZVBsYXRmb3JtID0gLyhNYWN8aVBob25lfGlQb2R8aVBhZCkvaS50ZXN0KFxuICAgICAgICAgICAgbmF2aWdhdG9yLnBsYXRmb3JtXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXJTdXBwb3J0ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VUaXRsZSA9ICdOYXZpZ2F0ZXVyIG5vbiBzdXBwb3J0w6knO1xuICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlLnNldFBhZ2VUaXRsZShwYWdlVGl0bGUpO1xuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5zZXRDdXJyZW50QnJlYWRjcnVtYih7XG4gICAgICAgICAgICAgICAgdXJsOiBudWxsLFxuICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHBhZ2VUaXRsZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0luaXRpYWxTdGVwID0gdGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmN1cnJlbnRFdGFwZUluZm8ucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAoY3VycmVudEV0YXBlSW5mbzogRXRhcGVJbmZvKSA9PlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvICYmXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJFdGFwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJQcmVzdGF0aW9uXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gY29uc3QgbmF2aWdhdGlvblVwZGF0ZTogT2JzZXJ2YWJsZTxhbnk+ID0gb2YgKHRydWUpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25VcGRhdGU6IE9ic2VydmFibGU8YW55PiA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZClcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBFbnN1cmVzIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSB2YWx1ZSBpbiB0aGUgb2JzZXJ2YWJsZS5cbiAgICAgICAgY29uc3QgbmF2aWdhdGlvbkFuZEluaXQgPSBtZXJnZShvZih0cnVlKSwgbmF2aWdhdGlvblVwZGF0ZSk7XG4gICAgICAgIGNvbnN0IGZvcm1UcmFuc21pdHRlZCA9IG1lcmdlKFxuICAgICAgICAgICAgb2YodW5kZWZpbmVkKSxcbiAgICAgICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1UcmFuc21pdHRlZE9ic2VydmFibGUoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheVVzZXJDYXRlZ29yeSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgaXNJbml0aWFsU3RlcCxcbiAgICAgICAgICAgIHRoaXMuZm9laG5OYXZpZ2F0aW9uU2VydmljZS5oYXNCZWVuSW5pdGlhbGl6ZWQoKSxcbiAgICAgICAgICAgIGZvcm1UcmFuc21pdHRlZCxcbiAgICAgICAgICAgIG5hdmlnYXRpb25BbmRJbml0XG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksIC8vIHdpdGhvdXQgZGVib3VuY2VUaW1lLCB0aGUgb3V0Y29tZSBpcyBsZXNzIGVmZmVjdGl2ZS4uLlxuICAgICAgICAgICAgbWFwKChbaW5pdGlhbFN0ZXAsIG5hdlNlcnZpY2VJbml0aWFsaXplZCwgYmFja2VuZFJlc3BvbnNlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChuYXZTZXJ2aWNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNGaXJzdFBhZ2UgPSB0aGlzLmZvZWhuTmF2aWdhdGlvblNlcnZpY2UuaXNGaXJzdEZvcm1QYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTGFzdFBhZ2UgPSB0aGlzLmZvZWhuTmF2aWdhdGlvblNlcnZpY2UuaXNMYXN0Rm9ybVBhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50Um91dGVEZWZpbmVkID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9laG5OYXZpZ2F0aW9uU2VydmljZS5nZXRDdXJyZW50Um91dGVJbmRleCgpICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9laG5QYWdlU2VydmljZS5pc1VzZXJDYXRlZ29yeVZpc2libGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTGFzdFBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDb25uZWN0ZWRBc0Rpc3BsYXllZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxTdGVwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXZlckNvbm5lY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tlbmRSZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ3VycmVudFJvdXRlRGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUgPSBtZXJnZShcbiAgICAgICAgICAgIG9mKHVuZGVmaW5lZCksXG4gICAgICAgICAgICB0aGlzLmdlc2RlbUV2ZW50U2VydmljZS5mb3JtSW5pdGlhbGl6YXRpb25PYnNlcnZhYmxlKClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5uZXZlckNvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5TG9naW5NZXNzYWdlcyA9IG9mKFxuICAgICAgICAgICAgICAgIG5ldyBEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEoZmFsc2UsIGZhbHNlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheUxvZ2luTWVzc2FnZXMgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICBmb3JtSW5pdGlhbGl6YXRpb25PYnNlcnZhYmxlLFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkluZm8uZGF0YSxcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuY3VycmVudEV0YXBlSW5mb1xuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksIC8vIHdpdGhvdXQgZGVib3VuY2VUaW1lLCB0aGUgb3V0Y29tZSBpcyBsZXNzIGVmZmVjdGl2ZS4uLlxuICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Jbml0aWFsaXphdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25JbmZvRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm9cbiAgICAgICAgICAgICAgICAgICAgXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDb25uZWN0ZWRDeWJlck9ySWFtID0gISFzZXNzaW9uSW5mb0RhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xhc3RQYWdlID0gdGhpcy5mb2Vobk5hdmlnYXRpb25TZXJ2aWNlLmlzTGFzdEZvcm1QYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDb25uZWN0ZWRDeWJlck9ySWFtIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWN1cnJlbnRFdGFwZUluZm8uZGVwbG95ZWVDeWJlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICEhZm9ybUluaXRpYWxpemF0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMYXN0UGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEoZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbz8uZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV0YXBlSWRDaGFuZ2UgPSBjaGFuZ2VzLmV0YXBlSWQ7XG4gICAgICAgIGlmIChldGFwZUlkQ2hhbmdlICYmIGV0YXBlSWRDaGFuZ2UuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmZvZWhuUGFnZVNlcnZpY2Uuc2V0Q3VycmVudEV0YXBlSWQoZXRhcGVJZENoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXBwVGl0bGVDaGFuZ2UgPSBjaGFuZ2VzLmFwcFRpdGxlO1xuICAgICAgICBpZiAoYXBwVGl0bGVDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpdGxlU2VydmljZS5zZXRUaXRsZShhcHBUaXRsZUNoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrZWRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuYmxvY2tlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RnVsbExvZ2luVXJsKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvZWhuUGFnZU1vZGFsU2VydmljZS5idWlsZFNlbGZSZWRpcmVjdGlvblRocm91Z2hDeWJlckxvZ2luKCk7XG4gICAgfVxuXG4gICAgZ2V0RnVsbExvZ2luTWVzc2FnZShcbiAgICAgICAgZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGU6IGJvb2xlYW5cbiAgICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAoZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLnNka0RpY3Rpb25hcnlTZXJ2aWNlLmdldEtleSgndXNlLWxvZ2luLnRleHQnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNka0RpY3Rpb25hcnlTZXJ2aWNlLmdldEtleShcbiAgICAgICAgICAgICAgICAgICAgJ3VzZS1sb2dpbi50ZXh0LmRlY2lzaW9uLWVsZWN0cm9uaXF1ZS1hdmFpbGFibGUnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgIChbbG9naW5Nc2csIGRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlTXNnXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGAke2xvZ2luTXNnfTxici8+PGJyLz4ke2RlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlTXNnfWBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNka0RpY3Rpb25hcnlTZXJ2aWNlLmdldEtleSgndXNlLWxvZ2luLnRleHQnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBhZ2VUaXRsZSh0aXRsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZVRpdGxlID0gdGl0bGU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhIHtcbiAgICBkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZTogYm9vbGVhbjtcbiAgICBkaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlOiBib29sZWFuLFxuICAgICAgICBkaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlOiBib29sZWFuXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGUgPSBkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlID0gZGlzcGxheVNob3VsZExvZ2luTWVzc2FnZTtcbiAgICB9XG59XG4iLCI8Zm9laG4taGVhZGVyXG4gICAgaWQ9XCJmb2Vobl9oZWFkZXJcIlxuICAgIFt0aXRsZV09XCJhcHBUaXRsZVwiXG4gICAgW25ldmVyQ29ubmVjdGVkXT1cIm5ldmVyQ29ubmVjdGVkXCJcbj48L2ZvZWhuLWhlYWRlcj5cbjxmb2Vobi1ncm93bCBpZD1cImZvZWhuX2dyb3dsXCI+PC9mb2Vobi1ncm93bD5cbjxkaXYgY2xhc3M9XCJ2ZC1iZy1wYXR0ZXJuLWdyYXlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxmb2Vobi1icmVhZGNydW1iXG4gICAgICAgICAgICBbbmV2ZXJDb25uZWN0ZWRdPVwibmV2ZXJDb25uZWN0ZWRcIlxuICAgICAgICAgICAgW2NvbmZpcm1MZWF2aW5nQWxlcnRdPVwiY29uZmlybUxlYXZpbmdBbGVydFwiXG4gICAgICAgID48L2ZvZWhuLWJyZWFkY3J1bWI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxtYWluIGlkPVwibWFpblwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2ZC1iZy1wYXR0ZXJuLWdyYXlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPCEtLSBGaXggYW5ub3lpbmcgZmxpY2tlcmluZyB3aGVuIHRoZSBwYWdlIGxvYWRzIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgxIG10LTBcIiAqbmdJZj1cIiFwYWdlVGl0bGVcIj4mbmJzcDs8L2Rpdj5cbiAgICAgICAgICAgIDxoMVxuICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0wXCJcbiAgICAgICAgICAgICAgICBpZD1cInBhZ2UtdGl0bGVcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiISFwYWdlVGl0bGVcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwicGFnZVRpdGxlXCJcbiAgICAgICAgICAgID48L2gxPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyXG4gICAgICAgIFtoaWRkZW5dPVwic3RhdHVzUHJvZ3Jlc3NCYXJIaWRkZW5cIlxuICAgID48L2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXI+XG5cbiAgICA8c2VjdGlvblxuICAgICAgICAqbmdJZj1cIiFpc0Jyb3dzZXJTdXBwb3J0ZWRcIlxuICAgICAgICBjbGFzcz1cImNvbnRhaW5lciBhbGVydCBhbGVydC1kYW5nZXJcIlxuICAgICAgICBpZD1cImJyb3dzZXJfbm90X3N1cHBvcnRlZF9ibG9ja1wiXG4gICAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgPlxuICAgICAgICA8cCBjbGFzcz1cImFsZXJ0LWhlYWRpbmdcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgQ2V0dGUgcHJlc3RhdGlvbiBu4oCZZXN0IHBhcyBjb21wYXRpYmxlIGF2ZWMgdm90cmUgbmF2aWdhdGV1ci5cbiAgICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICA8L3A+XG4gICAgICAgIDxwIGNsYXNzPVwibWItMFwiPlxuICAgICAgICAgICAgTm91cyB2b3VzIGludml0b25zIMOgIHV0aWxpc2VyIHVuZSB2ZXJzaW9uIHLDqWNlbnRlIGRlXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQXBwbGVQbGF0Zm9ybVwiPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJicm93c2VyTGlua1RpdGxlUHJlZml4ICsgJyBFZGdlJ1wiXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5taWNyb3NvZnQuY29tL2ZyLWNoL3dpbmRvd3MvbWljcm9zb2Z0LWVkZ2VcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgRWRnZVxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj4obGllbiBleHRlcm5lKTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD48L2ZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgLFxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNBcHBsZVBsYXRmb3JtXCI+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImJyb3dzZXJMaW5rVGl0bGVQcmVmaXggKyAnIFNhZmFyaSdcIlxuICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9zdXBwb3J0LmFwcGxlLmNvbS9kb3dubG9hZHMvc2FmYXJpXCJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIFNhZmFyaVxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj4obGllbiBleHRlcm5lKTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD48L2ZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgLFxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJicm93c2VyTGlua1RpdGxlUHJlZml4ICsgJyBGaXJlZm94J1wiXG4gICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lm1vemlsbGEub3JnL2ZyL2ZpcmVmb3gvXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEZpcmVmb3hcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj4obGllbiBleHRlcm5lKTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+PC9mb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIG91XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJicm93c2VyTGlua1RpdGxlUHJlZml4ICsgJyBDaHJvbWUnXCJcbiAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9pbnRsL2ZyL2Nocm9tZS9cIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQ2hyb21lXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+KGxpZW4gZXh0ZXJuZSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PjwvZm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cImJyb3dzZXJfbm90X3N1cHBvcnRlZF9ieXBhc3NcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsb2F0LXJpZ2h0IGJ0biBidG4tZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYnJvd3Nlck5vdFN1cHBvcnRlZEJ5cGFzc1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJicm93c2VyTm90U3VwcG9ydGVkQnlwYXNzID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBDb250aW51ZXIgYXZlYyBjZSBuYXZpZ2F0ZXVyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNkay1zdXBwb3J0LWFsZXJ0LWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cInN1cHBvcnRBbGVydEVuYWJsZWRcIlxuICAgICAgICBbZXRhcGVJZF09XCJldGFwZUlkXCJcbiAgICAgICAgW3N1cHBvcnRBbGVydFVybF09XCJzdXBwb3J0QWxlcnRVcmxcIlxuICAgID48L3Nkay1zdXBwb3J0LWFsZXJ0LWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAhKGhhc0Jsb2NraW5nU3VwcG9ydEFsZXJ0IHwgYXN5bmMpICYmXG4gICAgICAgICAgICAoaXNCcm93c2VyU3VwcG9ydGVkIHx8IGJyb3dzZXJOb3RTdXBwb3J0ZWRCeXBhc3MpXG4gICAgICAgIFwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIG10LTVcIiBpZD1cInBhZ2VfY29udGVudFwiPlxuICAgICAgICAgICAgPGZvZWhuLXVzZXItY29ubmVjdGVkLWFzXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkaXNwbGF5VXNlckNhdGVnb3J5IHwgYXN5bmNcIlxuICAgICAgICAgICAgPjwvZm9laG4tdXNlci1jb25uZWN0ZWQtYXM+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkaXNwbGF5TG9naW5NZXNzYWdlcyB8IGFzeW5jIGFzIGRpc3BsYXlMb2dpbk1lc3NhZ2VzRGF0YVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRpc3BsYXlMb2dpbk1lc3NhZ2VzRGF0YS5kaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJkaXNwbGF5TG9naW5NZXNzYWdlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEZ1bGxMb2dpbk1lc3NhZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlMb2dpbk1lc3NhZ2VzRGF0YS5kZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgbXItMiBtYi0yIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImdldEZ1bGxMb2dpblVybCgpIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICd1c2UtbG9naW4uYnV0dG9uLnRleHQnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbWFpbj5cbjxmb2Vobi1mb290ZXJcbiAgICBpZD1cImZvZWhuX2Zvb3RlclwiXG4gICAgW2xpbmtzXT1cImZvb3RlckxpbmtzXCJcbiAgICBbc2hvd0RlZmF1bHRDb250YWN0TGlua109XCJzaG93RGVmYXVsdENvbnRhY3RGb290ZXJMaW5rXCJcbiAgICBbc2hvd0RlZmF1bHRHdWlkZUxpbmtdPVwic2hvd0RlZmF1bHRHdWlkZUZvb3RlckxpbmtcIlxuICAgIFtzaG93RGVmYXVsdFRlcm1PZlVzZUxpbmtdPVwic2hvd0RlZmF1bHRUZXJtT2ZVc2VMaW5rXCJcbiAgICBbc2hvd0RlZmF1bHRTZWN1cml0eUJlc3RQcmFjdGljZUxpbmtdPVwic2hvd0RlZmF1bHRTZWN1cml0eUJlc3RQcmFjdGljZUxpbmtcIlxuPjwvZm9laG4tZm9vdGVyPlxuPGZvZWhuLXBhZ2UtbW9kYWw+PC9mb2Vobi1wYWdlLW1vZGFsPlxuPGZvZWhuLWNvbmZpcm0tbW9kYWw+PC9mb2Vobi1jb25maXJtLW1vZGFsPlxuIl19
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { merge, of } from 'rxjs';
|
|
3
|
-
import { ActionStatut, GesdemStatutUtils } from '../gesdem/gesdem-statut-utils';
|
|
4
|
-
import { filter, map } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/router";
|
|
7
|
-
import * as i2 from "../foehn-navigation/foehn-navigation.service";
|
|
8
|
-
import * as i3 from "../gesdem/gesdem-event.service";
|
|
9
|
-
import * as i4 from "../gesdem/gesdem-handler.service";
|
|
10
|
-
import * as i5 from "@angular/common";
|
|
11
|
-
import * as i6 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
12
|
-
export class FoehnStatusProgressBarComponent {
|
|
13
|
-
constructor(activatedRoute, navigation, gesdemEventService, gesdemHand) {
|
|
14
|
-
var _a;
|
|
15
|
-
this.activatedRoute = activatedRoute;
|
|
16
|
-
this.navigation = navigation;
|
|
17
|
-
this.gesdemEventService = gesdemEventService;
|
|
18
|
-
this.gesdemHand = gesdemHand;
|
|
19
|
-
this.isTransmitted = merge(of((_a = this.gesdemHand.lastResponse) === null || _a === void 0 ? void 0 : _a.meta), this.gesdemHand.updateFormDataSubject.pipe(map(() => this.gesdemHand.lastResponse.meta))).pipe(filter(meta => !!meta), map(meta => ActionStatut[meta.statut]), map(statut => GesdemStatutUtils.isFinal(statut)));
|
|
20
|
-
}
|
|
21
|
-
isEnabled() {
|
|
22
|
-
return (this.hidden !== null &&
|
|
23
|
-
this.hidden !== undefined &&
|
|
24
|
-
this.hidden === false);
|
|
25
|
-
}
|
|
26
|
-
isStepVerificationActive() {
|
|
27
|
-
return this.navigation.initialized && this.navigation.isLastFormPage();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
FoehnStatusProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnStatusProgressBarComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.FoehnNavigationService }, { token: i3.GesdemEventService }, { token: i4.GesdemHandlerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
-
FoehnStatusProgressBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnStatusProgressBarComponent, selector: "foehn-status-progress-bar", inputs: { hidden: "hidden" }, ngImport: i0, template: "<div *ngIf=\"isEnabled()\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col\">\n <div\n class=\"sr-only\"\n aria-live=\"polite\"\n role=\"status\"\n aria-atomic=\"true\"\n tabindex=\"0\"\n >\n <span *ngIf=\"isTransmitted | async; else notTransmitted\">\n {{\n 'foehn-status-progress-bar.step3.srOnly'\n | fromDictionary\n }}\n </span>\n <ng-template #notTransmitted>\n <span *ngIf=\"isStepVerificationActive()\">\n {{\n 'foehn-status-progress-bar.step2.srOnly'\n | fromDictionary\n }}\n </span>\n <span *ngIf=\"!isStepVerificationActive()\">\n {{\n 'foehn-status-progress-bar.step1.srOnly'\n | fromDictionary\n }}\n </span>\n </ng-template>\n </div>\n\n <ul id=\"progressbar\" class=\"pl-0 mt-1\" aria-hidden=\"true\">\n <li class=\"active\" id=\"step1\">\n <strong>\n {{\n 'foehn-status-progress-bar.step1'\n | fromDictionary\n }}\n </strong>\n </li>\n <li\n id=\"step2\"\n [ngClass]=\"{\n active: isStepVerificationActive()\n }\"\n >\n <strong>\n {{\n 'foehn-status-progress-bar.step2'\n | fromDictionary\n }}\n </strong>\n </li>\n\n <li\n id=\"step3\"\n [ngClass]=\"{ active: isTransmitted | async }\"\n >\n <strong>\n {{\n 'foehn-status-progress-bar.step3'\n | fromDictionary\n }}\n </strong>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".col{text-align:center;position:relative}#progressbar{overflow:hidden;color:#d3d3d3}#progressbar .active{color:var(--green)}#progressbar li{list-style-type:none;font-size:15px;width:33%;float:left;position:relative;font-weight:400}#progressbar #step1:before{content:\"1\"}#progressbar #step2:before{content:\"2\"}#progressbar #step3:before{content:\"3\"}#progressbar li:before{width:50px;height:50px;line-height:45px;display:block;font-size:20px;color:#fff;background:lightgray;border-radius:50%;margin:0 auto 10px;padding:2px}#progressbar li:after{content:\"\";width:100%;height:2px;background:lightgray;position:absolute;left:0;top:25px;z-index:-1}#progressbar li.active:before,#progressbar li.active:after{background:var(--green)}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i5.AsyncPipe, "fromDictionary": i6.SdkDictionaryPipe } });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnStatusProgressBarComponent, decorators: [{
|
|
33
|
-
type: Component,
|
|
34
|
-
args: [{
|
|
35
|
-
selector: 'foehn-status-progress-bar',
|
|
36
|
-
templateUrl: './foehn-status-progress-bar.component.html',
|
|
37
|
-
styleUrls: ['./foehn-status-progress-bar.component.css']
|
|
38
|
-
}]
|
|
39
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.FoehnNavigationService }, { type: i3.GesdemEventService }, { type: i4.GesdemHandlerService }]; }, propDecorators: { hidden: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci9mb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyL2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJakQsT0FBTyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUTdDLE1BQU0sT0FBTywrQkFBK0I7SUFNeEMsWUFDYyxjQUE4QixFQUNoQyxVQUFrQyxFQUNsQyxrQkFBc0MsRUFDdEMsVUFBZ0M7O1FBSDlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNoQyxlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQUNsQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBRXhDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUN0QixFQUFFLENBQUMsTUFBQSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksMENBQUUsSUFBSSxDQUFDLEVBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUN0QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQy9DLENBQ0osQ0FBQyxJQUFJLENBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUN0QixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQXNCLENBQUMsQ0FBQyxFQUN0RCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDbkQsQ0FBQztJQUNOLENBQUM7SUFFRCxTQUFTO1FBQ0wsT0FBTyxDQUNILElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSTtZQUNwQixJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFDekIsSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQ3hCLENBQUM7SUFDTixDQUFDO0lBRUQsd0JBQXdCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzRSxDQUFDOzs0SEFsQ1EsK0JBQStCO2dIQUEvQiwrQkFBK0IsK0ZDZDVDLDJ2RkF3RUE7MkZEMURhLCtCQUErQjtrQkFMM0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxXQUFXLEVBQUUsNENBQTRDO29CQUN6RCxTQUFTLEVBQUUsQ0FBQywyQ0FBMkMsQ0FBQztpQkFDM0Q7OE1BR0csTUFBTTtzQkFETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9laG5OYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLW5hdmlnYXRpb24vZm9laG4tbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGlvblN0YXR1dCwgR2VzZGVtU3RhdHV0VXRpbHMgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLXN0YXR1dC11dGlscyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VoblN0YXR1c1Byb2dyZXNzQmFyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIGhpZGRlbjogYm9vbGVhbjtcblxuICAgIGlzVHJhbnNtaXR0ZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBuYXZpZ2F0aW9uOiBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbUV2ZW50U2VydmljZTogR2VzZGVtRXZlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbUhhbmQ6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaXNUcmFuc21pdHRlZCA9IG1lcmdlKFxuICAgICAgICAgICAgb2YodGhpcy5nZXNkZW1IYW5kLmxhc3RSZXNwb25zZT8ubWV0YSksXG4gICAgICAgICAgICB0aGlzLmdlc2RlbUhhbmQudXBkYXRlRm9ybURhdGFTdWJqZWN0LnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuZ2VzZGVtSGFuZC5sYXN0UmVzcG9uc2UubWV0YSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKG1ldGEgPT4gISFtZXRhKSxcbiAgICAgICAgICAgIG1hcChtZXRhID0+IEFjdGlvblN0YXR1dFttZXRhLnN0YXR1dCBhcyBBY3Rpb25TdGF0dXRdKSxcbiAgICAgICAgICAgIG1hcChzdGF0dXQgPT4gR2VzZGVtU3RhdHV0VXRpbHMuaXNGaW5hbChzdGF0dXQpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaGlkZGVuICE9PSBudWxsICYmXG4gICAgICAgICAgICB0aGlzLmhpZGRlbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICB0aGlzLmhpZGRlbiA9PT0gZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpc1N0ZXBWZXJpZmljYXRpb25BY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb24uaW5pdGlhbGl6ZWQgJiYgdGhpcy5uYXZpZ2F0aW9uLmlzTGFzdEZvcm1QYWdlKCk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzRW5hYmxlZCgpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3Itb25seVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWF0b21pYz1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc1RyYW5zbWl0dGVkIHwgYXN5bmM7IGVsc2Ugbm90VHJhbnNtaXR0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXIuc3RlcDMuc3JPbmx5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90VHJhbnNtaXR0ZWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzU3RlcFZlcmlmaWNhdGlvbkFjdGl2ZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXIuc3RlcDIuc3JPbmx5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpc1N0ZXBWZXJpZmljYXRpb25BY3RpdmUoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAxLnNyT25seSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPHVsIGlkPVwicHJvZ3Jlc3NiYXJcIiBjbGFzcz1cInBsLTAgbXQtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJhY3RpdmVcIiBpZD1cInN0ZXAxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAxJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInN0ZXAyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IGlzU3RlcFZlcmlmaWNhdGlvbkFjdGl2ZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInN0ZXAzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpc1RyYW5zbWl0dGVkIHwgYXN5bmMgfVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXIuc3RlcDMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { ObjectHelper } from '../helpers/object.helper';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../foehn-icons/foehn-icon-chevron-up.component";
|
|
5
|
-
import * as i2 from "../foehn-icons/foehn-icon-chevron-down.component";
|
|
6
|
-
import * as i3 from "../foehn-icons/foehn-icon-chevron-left.component";
|
|
7
|
-
import * as i4 from "../foehn-icons/foehn-icon-chevron-right.component";
|
|
8
|
-
import * as i5 from "@angular/common";
|
|
9
|
-
import * as i6 from "@angular/router";
|
|
10
|
-
import * as i7 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
11
|
-
const hasInputChanged = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
|
|
12
|
-
export class FoehnTableComponent {
|
|
13
|
-
constructor() {
|
|
14
|
-
this.itemsPerPage = 10;
|
|
15
|
-
this.id = 'foehn-table';
|
|
16
|
-
this.previousLabel = 'Précédent';
|
|
17
|
-
this.nextLabel = 'Suivant';
|
|
18
|
-
this.pageChange = new EventEmitter();
|
|
19
|
-
this.sortChange = new EventEmitter();
|
|
20
|
-
this.currentPage = 1;
|
|
21
|
-
this.filteredList = [];
|
|
22
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
23
|
-
this.trackByFn = (index, item) => index;
|
|
24
|
-
}
|
|
25
|
-
set list(list) {
|
|
26
|
-
this._list = list;
|
|
27
|
-
}
|
|
28
|
-
ngOnChanges(changes) {
|
|
29
|
-
const itemsPerPageChange = changes.itemsPerPage;
|
|
30
|
-
const listChange = changes.list;
|
|
31
|
-
const fixedPageCountChange = changes.fixedPageCount;
|
|
32
|
-
const sortInputChange = changes.sort;
|
|
33
|
-
if (!hasInputChanged(itemsPerPageChange) &&
|
|
34
|
-
!hasInputChanged(listChange) &&
|
|
35
|
-
!hasInputChanged(fixedPageCountChange) &&
|
|
36
|
-
!hasInputChanged(sortInputChange)) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
this.buildFilteredList();
|
|
40
|
-
}
|
|
41
|
-
previousPage() {
|
|
42
|
-
this.currentPage = this.currentPage - 1;
|
|
43
|
-
this.buildFilteredList();
|
|
44
|
-
this.pageChange.next({
|
|
45
|
-
previousPage: this.currentPage + 1,
|
|
46
|
-
currentPage: this.currentPage,
|
|
47
|
-
pageCount: this.pagesCount()
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
hasPreviousPage() {
|
|
51
|
-
return this.currentPage > 1;
|
|
52
|
-
}
|
|
53
|
-
nextPage() {
|
|
54
|
-
this.currentPage = this.currentPage + 1;
|
|
55
|
-
this.buildFilteredList();
|
|
56
|
-
this.pageChange.next({
|
|
57
|
-
previousPage: this.currentPage - 1,
|
|
58
|
-
currentPage: this.currentPage,
|
|
59
|
-
pageCount: this.pagesCount()
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
hasNextPage() {
|
|
63
|
-
return this.currentPage < this.pagesCount();
|
|
64
|
-
}
|
|
65
|
-
showPage(page, emitPageChangeEvent = false) {
|
|
66
|
-
if (this.currentPage === page) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const previousPage = this.currentPage;
|
|
70
|
-
this.currentPage = page;
|
|
71
|
-
this.buildFilteredList();
|
|
72
|
-
if (emitPageChangeEvent) {
|
|
73
|
-
this.pageChange.next({
|
|
74
|
-
previousPage,
|
|
75
|
-
currentPage: this.currentPage,
|
|
76
|
-
pageCount: this.pagesCount()
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
pagesCount() {
|
|
81
|
-
if (!!this.fixedPageCount) {
|
|
82
|
-
return this.fixedPageCount;
|
|
83
|
-
}
|
|
84
|
-
return this._list
|
|
85
|
-
? Math.ceil(this._list.length / this.itemsPerPage)
|
|
86
|
-
: 0;
|
|
87
|
-
}
|
|
88
|
-
triggerSort(sortAttribute) {
|
|
89
|
-
let sortDirection = 'DESC';
|
|
90
|
-
if (this.sort.sortAttribute === sortAttribute) {
|
|
91
|
-
sortDirection = this.sort.sortDirection === 'DESC' ? 'ASC' : 'DESC';
|
|
92
|
-
}
|
|
93
|
-
this.sortChange.next({
|
|
94
|
-
sortDirection,
|
|
95
|
-
sortAttribute
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
buildFilteredList() {
|
|
99
|
-
if (!this._list) {
|
|
100
|
-
this.filteredList = [];
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (!!this.fixedPageCount) {
|
|
104
|
-
this.filteredList = this._list;
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
const currentPageExists = (this.currentPage - 1) * this.itemsPerPage <= this._list.length;
|
|
108
|
-
if (!currentPageExists) {
|
|
109
|
-
this.currentPage = 1;
|
|
110
|
-
}
|
|
111
|
-
const start = (this.currentPage - 1) * this.itemsPerPage;
|
|
112
|
-
this.filteredList = this._list.slice(start, start + this.itemsPerPage);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
FoehnTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
-
FoehnTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnTableComponent, selector: "foehn-table", inputs: { itemsPerPage: "itemsPerPage", id: "id", previousLabel: "previousLabel", nextLabel: "nextLabel", totalElements: "totalElements", fixedPageCount: "fixedPageCount", columnsConfiguration: "columnsConfiguration", sort: "sort", trackByFn: "trackByFn", list: "list" }, outputs: { pageChange: "pageChange", sortChange: "sortChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-12\">\n <h4 *ngIf=\"!!totalElements && totalElements === 1\">\n {{ 'foehn-table.totalElements.1' | fromDictionary }}\n </h4>\n <h4 *ngIf=\"!!totalElements && totalElements !== 1\">\n {{\n 'foehn-table.totalElements'\n | fromDictionary: { total: totalElements.toString() }\n }}\n </h4>\n </div>\n\n <div class=\"col-12 table-responsive\">\n <table class=\"table table-hover\">\n <thead class=\"vd-bg-pattern-bars-gray\">\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id\"\n >\n <ng-container\n *ngIf=\"!filteredList.length || !col.sortAttribute\"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n </ng-container>\n\n <ng-container\n *ngIf=\"!!filteredList.length && !!col.sortAttribute\"\n >\n <a\n href=\"#\"\n class=\"vd-text-thin\"\n (click)=\"\n $event.preventDefault();\n triggerSort(col.sortAttribute)\n \"\n [title]=\"\n 'Trier par ' +\n (col.columnLabelKey | fromDictionary)\n \"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n <ng-container\n *ngIf=\"\n sort.sortAttribute === col.sortAttribute\n \"\n >\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'ASC'\"\n >\n <foehn-icon-chevron-up></foehn-icon-chevron-up>\n </span>\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'DESC'\"\n >\n <foehn-icon-chevron-down></foehn-icon-chevron-down>\n </span>\n </ng-container>\n </a>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <td\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id + '-' + index\"\n >\n <ng-container *ngIf=\"!!col.isImportant\">\n <span\n *ngIf=\"col.isImportant(item)\"\n class=\"cell-vertical-align-middle\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"30\"\n height=\"30\"\n style=\"color: var(--red)\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.553.553 0 0 1-1.1 0L7.1 4.995z\"\n />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!col.routerLinkGetter\">\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n class=\"cell-vertical-align-middle\"\n ></span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.routerLinkGetter\">\n <a\n [routerLink]=\"col.routerLinkGetter(item)\"\n queryParamsHandling=\"merge\"\n class=\"cell-vertical-align-middle\"\n >\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n ></span>\n </a>\n </ng-container>\n </td>\n </tr>\n <tr *ngIf=\"!!columnsConfiguration && !filteredList.length\">\n <td [colSpan]=\"columnsConfiguration.length\">\n <div class=\"w-100 text-center\">\n {{ 'foehn-table.totalElements.0' | fromDictionary }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;-webkit-text-decoration-line:none;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;-webkit-text-decoration-line:none;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:#ffbf47}.cell-vertical-align-middle{vertical-align:middle}\n"], components: [{ type: i1.FoehnIconChevronUpComponent, selector: "foehn-icon-chevron-up" }, { type: i2.FoehnIconChevronDownComponent, selector: "foehn-icon-chevron-down" }, { type: i3.FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { type: i4.FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "fromDictionary": i7.SdkDictionaryPipe } });
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnTableComponent, decorators: [{
|
|
118
|
-
type: Component,
|
|
119
|
-
args: [{
|
|
120
|
-
selector: 'foehn-table',
|
|
121
|
-
templateUrl: './foehn-table.component.html',
|
|
122
|
-
styleUrls: ['./foehn-table.component.css']
|
|
123
|
-
}]
|
|
124
|
-
}], propDecorators: { itemsPerPage: [{
|
|
125
|
-
type: Input
|
|
126
|
-
}], id: [{
|
|
127
|
-
type: Input
|
|
128
|
-
}], previousLabel: [{
|
|
129
|
-
type: Input
|
|
130
|
-
}], nextLabel: [{
|
|
131
|
-
type: Input
|
|
132
|
-
}], totalElements: [{
|
|
133
|
-
type: Input
|
|
134
|
-
}], fixedPageCount: [{
|
|
135
|
-
type: Input
|
|
136
|
-
}], columnsConfiguration: [{
|
|
137
|
-
type: Input
|
|
138
|
-
}], pageChange: [{
|
|
139
|
-
type: Output
|
|
140
|
-
}], sort: [{
|
|
141
|
-
type: Input
|
|
142
|
-
}], sortChange: [{
|
|
143
|
-
type: Output
|
|
144
|
-
}],
|
|
145
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
146
|
-
trackByFn: [{
|
|
147
|
-
type: Input
|
|
148
|
-
}], list: [{
|
|
149
|
-
type: Input
|
|
150
|
-
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXRhYmxlL2ZvZWhuLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi10YWJsZS9mb2Vobi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdULE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7O0FBRXhELE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBb0IsRUFBVyxFQUFFLENBQ3RELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFPL0UsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9JLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBR2xCLE9BQUUsR0FBRyxhQUFhLENBQUM7UUFHbkIsa0JBQWEsR0FBRyxXQUFXLENBQUM7UUFHNUIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQVl0QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFNM0QsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFFM0MsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFaEIsaUJBQVksR0FBYyxFQUFFLENBQUM7UUFLN0IsNkRBQTZEO1FBQzdELGNBQVMsR0FBRyxDQUFDLEtBQWEsRUFBRSxJQUFhLEVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQztLQWlIL0Q7SUEvR0csSUFDSSxJQUFJLENBQUMsSUFBZTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFH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QkFBNkIsQ0FBQztpQkFDN0M7OEJBR0csWUFBWTtzQkFEWCxLQUFLO2dCQUlOLEVBQUU7c0JBREQsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsTUFBTTtnQkFJUCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxNQUFNOztRQVVQLDZEQUE2RDtRQUM3RCxTQUFTO3NCQUZSLEtBQUs7Z0JBS0YsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2VoblRhYmxlUGFnZUNoYW5nZUV2ZW50IH0gZnJvbSAnLi9mb2Vobi10YWJsZS1wYWdlLWNoYW5nZS1ldmVudCc7XG5pbXBvcnQgeyBGb2VoblRhYmxlQ29sdW1uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vZm9laG4tdGFibGUtY29sdW1uLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgVGFibGVTb3J0IH0gZnJvbSAnLi90YWJsZVNvcnQnO1xuaW1wb3J0IHsgT2JqZWN0SGVscGVyIH0gZnJvbSAnLi4vaGVscGVycy9vYmplY3QuaGVscGVyJztcblxuY29uc3QgaGFzSW5wdXRDaGFuZ2VkID0gKGNoYW5nZTogU2ltcGxlQ2hhbmdlKTogYm9vbGVhbiA9PlxuICAgIGNoYW5nZSAmJiAhT2JqZWN0SGVscGVyLmlzRXF1YWwoY2hhbmdlLnByZXZpb3VzVmFsdWUsIGNoYW5nZS5jdXJyZW50VmFsdWUpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLXRhYmxlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VoblRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKVxuICAgIGl0ZW1zUGVyUGFnZSA9IDEwO1xuXG4gICAgQElucHV0KClcbiAgICBpZCA9ICdmb2Vobi10YWJsZSc7XG5cbiAgICBASW5wdXQoKVxuICAgIHByZXZpb3VzTGFiZWwgPSAnUHLDqWPDqWRlbnQnO1xuXG4gICAgQElucHV0KClcbiAgICBuZXh0TGFiZWwgPSAnU3VpdmFudCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHRvdGFsRWxlbWVudHM6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgZml4ZWRQYWdlQ291bnQ6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uc0NvbmZpZ3VyYXRpb246IEZvZWhuVGFibGVDb2x1bW5Db25maWd1cmF0aW9uPHVua25vd24+W107XG5cbiAgICBAT3V0cHV0KClcbiAgICBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGb2VoblRhYmxlUGFnZUNoYW5nZUV2ZW50PigpO1xuXG4gICAgQElucHV0KClcbiAgICBzb3J0OiBUYWJsZVNvcnQ7XG5cbiAgICBAT3V0cHV0KClcbiAgICBzb3J0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVNvcnQ+KCk7XG5cbiAgICBjdXJyZW50UGFnZSA9IDE7XG5cbiAgICBmaWx0ZXJlZExpc3Q6IHVua25vd25bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfbGlzdDogdW5rbm93bltdO1xuXG4gICAgQElucHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgdHJhY2tCeUZuID0gKGluZGV4OiBudW1iZXIsIGl0ZW06IHVua25vd24pOiBudW1iZXIgPT4gaW5kZXg7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaXN0KGxpc3Q6IHVua25vd25bXSkge1xuICAgICAgICB0aGlzLl9saXN0ID0gbGlzdDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0ZW1zUGVyUGFnZUNoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5pdGVtc1BlclBhZ2U7XG4gICAgICAgIGNvbnN0IGxpc3RDaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMubGlzdDtcbiAgICAgICAgY29uc3QgZml4ZWRQYWdlQ291bnRDaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMuZml4ZWRQYWdlQ291bnQ7XG4gICAgICAgIGNvbnN0IHNvcnRJbnB1dENoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5zb3J0O1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFoYXNJbnB1dENoYW5nZWQoaXRlbXNQZXJQYWdlQ2hhbmdlKSAmJlxuICAgICAgICAgICAgIWhhc0lucHV0Q2hhbmdlZChsaXN0Q2hhbmdlKSAmJlxuICAgICAgICAgICAgIWhhc0lucHV0Q2hhbmdlZChmaXhlZFBhZ2VDb3VudENoYW5nZSkgJiZcbiAgICAgICAgICAgICFoYXNJbnB1dENoYW5nZWQoc29ydElucHV0Q2hhbmdlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYnVpbGRGaWx0ZXJlZExpc3QoKTtcbiAgICB9XG5cbiAgICBwcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlIC0gMTtcbiAgICAgICAgdGhpcy5idWlsZEZpbHRlcmVkTGlzdCgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UubmV4dCh7XG4gICAgICAgICAgICBwcmV2aW91c1BhZ2U6IHRoaXMuY3VycmVudFBhZ2UgKyAxLFxuICAgICAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICAgICAgICBwYWdlQ291bnQ6IHRoaXMucGFnZXNDb3VudCgpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhc1ByZXZpb3VzUGFnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPiAxO1xuICAgIH1cblxuICAgIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSArIDE7XG4gICAgICAgIHRoaXMuYnVpbGRGaWx0ZXJlZExpc3QoKTtcblxuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UubmV4dCh7XG4gICAgICAgICAgICBwcmV2aW91c1BhZ2U6IHRoaXMuY3VycmVudFBhZ2UgLSAxLFxuICAgICAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICAgICAgICBwYWdlQ291bnQ6IHRoaXMucGFnZXNDb3VudCgpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhc05leHRQYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50UGFnZSA8IHRoaXMucGFnZXNDb3VudCgpO1xuICAgIH1cblxuICAgIHNob3dQYWdlKHBhZ2U6IG51bWJlciwgZW1pdFBhZ2VDaGFuZ2VFdmVudDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID09PSBwYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcmV2aW91c1BhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlO1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAgICAgICAgdGhpcy5idWlsZEZpbHRlcmVkTGlzdCgpO1xuXG4gICAgICAgIGlmIChlbWl0UGFnZUNoYW5nZUV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UubmV4dCh7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNQYWdlLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlOiB0aGlzLmN1cnJlbnRQYWdlLFxuICAgICAgICAgICAgICAgIHBhZ2VDb3VudDogdGhpcy5wYWdlc0NvdW50KClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFnZXNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICBpZiAoISF0aGlzLmZpeGVkUGFnZUNvdW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maXhlZFBhZ2VDb3VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9saXN0XG4gICAgICAgICAgICA/IE1hdGguY2VpbCh0aGlzLl9saXN0Lmxlbmd0aCAvIHRoaXMuaXRlbXNQZXJQYWdlKVxuICAgICAgICAgICAgOiAwO1xuICAgIH1cblxuICAgIHRyaWdnZXJTb3J0KHNvcnRBdHRyaWJ1dGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBsZXQgc29ydERpcmVjdGlvbjogJ0RFU0MnIHwgJ0FTQycgPSAnREVTQyc7XG4gICAgICAgIGlmICh0aGlzLnNvcnQuc29ydEF0dHJpYnV0ZSA9PT0gc29ydEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgc29ydERpcmVjdGlvbiA9IHRoaXMuc29ydC5zb3J0RGlyZWN0aW9uID09PSAnREVTQycgPyAnQVNDJyA6ICdERVNDJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc29ydENoYW5nZS5uZXh0KHtcbiAgICAgICAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICAgICAgICBzb3J0QXR0cmlidXRlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRGaWx0ZXJlZExpc3QoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fbGlzdCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZExpc3QgPSBbXTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIXRoaXMuZml4ZWRQYWdlQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRMaXN0ID0gdGhpcy5fbGlzdDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlRXhpc3RzID1cbiAgICAgICAgICAgICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZSA8PSB0aGlzLl9saXN0Lmxlbmd0aDtcbiAgICAgICAgaWYgKCFjdXJyZW50UGFnZUV4aXN0cykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhcnQgPSAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2U7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRMaXN0ID0gdGhpcy5fbGlzdC5zbGljZShzdGFydCwgc3RhcnQgKyB0aGlzLml0ZW1zUGVyUGFnZSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJvd1wiIFtpZF09XCJpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgPGg0ICpuZ0lmPVwiISF0b3RhbEVsZW1lbnRzICYmIHRvdGFsRWxlbWVudHMgPT09IDFcIj5cbiAgICAgICAgICAgIHt7ICdmb2Vobi10YWJsZS50b3RhbEVsZW1lbnRzLjEnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9oND5cbiAgICAgICAgPGg0ICpuZ0lmPVwiISF0b3RhbEVsZW1lbnRzICYmIHRvdGFsRWxlbWVudHMgIT09IDFcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ2ZvZWhuLXRhYmxlLnRvdGFsRWxlbWVudHMnXG4gICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnk6IHsgdG90YWw6IHRvdGFsRWxlbWVudHMudG9TdHJpbmcoKSB9XG4gICAgICAgICAgICB9fVxuICAgICAgICA8L2g0PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0YWJsZS1yZXNwb25zaXZlXCI+XG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWhvdmVyXCI+XG4gICAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJ2ZC1iZy1wYXR0ZXJuLWJhcnMtZ3JheVwiPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJjb2wuaWRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZmlsdGVyZWRMaXN0Lmxlbmd0aCB8fCAhY29sLnNvcnRBdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2wuY29sdW1uTGFiZWxLZXkgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiISFmaWx0ZXJlZExpc3QubGVuZ3RoICYmICEhY29sLnNvcnRBdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZC10ZXh0LXRoaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJTb3J0KGNvbC5zb3J0QXR0cmlidXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVHJpZXIgcGFyICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbC5jb2x1bW5MYWJlbEtleSB8IGZyb21EaWN0aW9uYXJ5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sLmNvbHVtbkxhYmVsS2V5IHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydC5zb3J0QXR0cmlidXRlID09PSBjb2wuc29ydEF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLTNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydC5zb3J0RGlyZWN0aW9uID09PSAnQVNDJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tY2hldnJvbi11cD48L2ZvZWhuLWljb24tY2hldnJvbi11cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnQuc29ydERpcmVjdGlvbiA9PT0gJ0RFU0MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1jaGV2cm9uLWRvd24+PC9mb2Vobi1pY29uLWNoZXZyb24tZG93bj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgPHRyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gb2YgZmlsdGVyZWRMaXN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5Rm5cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiY29sLmlkICsgJy0nICsgaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFjb2wuaXNJbXBvcnRhbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5pc0ltcG9ydGFudChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2VsbC12ZXJ0aWNhbC1hbGlnbi1taWRkbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY29sb3I6IHZhcigtLXJlZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLWV4Y2xhbWF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy4wMDIgMTFhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwek03LjEgNC45OTVhLjkwNS45MDUgMCAxIDEgMS44IDBsLS4zNSAzLjUwN2EuNTUzLjU1MyAwIDAgMS0xLjEgMEw3LjEgNC45OTV6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbC5yb3V0ZXJMaW5rR2V0dGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJjb2wudmFsdWVHZXR0ZXIoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNlbGwtdmVydGljYWwtYWxpZ24tbWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWNvbC5yb3V0ZXJMaW5rR2V0dGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiY29sLnJvdXRlckxpbmtHZXR0ZXIoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nPVwibWVyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNlbGwtdmVydGljYWwtYWxpZ24tbWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImNvbC52YWx1ZUdldHRlcihpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCIhIWNvbHVtbnNDb25maWd1cmF0aW9uICYmICFmaWx0ZXJlZExpc3QubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5zQ29uZmlndXJhdGlvbi5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdmb2Vobi10YWJsZS50b3RhbEVsZW1lbnRzLjAnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHAtMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC1tZC0zIGNvbC1zbS02IGNvbC14cy02XCI+XG4gICAgICAgICAgICAgICAgPG5hdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZkLXBhZ2luYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUGFnaW5hdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzUHJldmlvdXNQYWdlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX19pdGVtIHZkLXBhZ2luYXRpb25fX2l0ZW0tLXByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWxpbmsgdmQtcGFnaW5hdGlvbl9fbGluayBidG4tbm8tZXh0cmEgdmQtcGFnaW5hdGlvbl9fbGluay1yZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZkLXBhZ2luYXRpb25fX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1jaGV2cm9uLWxlZnQ+PC9mb2Vobi1pY29uLWNoZXZyb24tbGVmdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByZXZpb3VzTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj46PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZkLXBhZ2luYXRpb25fX2xhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjdXJyZW50UGFnZSAtIDEgfX0gc3VyIHt7IHBhZ2VzQ291bnQoKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wtbWQtMyBjb2wtc20tNiBjb2wteHMtNlwiPlxuICAgICAgICAgICAgICAgIDxuYXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlBhZ2luYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc05leHRQYWdlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX19pdGVtIHZkLXBhZ2luYXRpb25fX2l0ZW0tLW5leHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tbGluayB2ZC1wYWdpbmF0aW9uX19saW5rIGJ0bi1uby1leHRyYSB2ZC1wYWdpbmF0aW9uX19saW5rLXJlc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbmV4dExhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1jaGV2cm9uLXJpZ2h0PjwvZm9laG4taWNvbi1jaGV2cm9uLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGN1cnJlbnRQYWdlICsgMSB9fSBzdXIge3sgcGFnZXNDb3VudCgpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|