@dsivd/prestations-ng 15.5.13 → 16.0.0-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +666 -1
- package/CONTRIBUTING.md +32 -1
- package/ESLINT_MIGRATION_GUIDE.md +1 -1
- package/README.md +6 -0
- package/UPGRADING_V12.md +0 -15
- package/UPGRADING_V13.md +0 -15
- package/UPGRADING_V14.md +8 -26
- package/UPGRADING_V15.md +113 -0
- package/UPGRADING_V16.md +63 -0
- package/abstract-page-component.d.ts +8 -8
- package/directives/currency-formatter.directive.d.ts +4 -1
- package/directives/iban-formatter.directive.d.ts +1 -1
- package/directives/ide-formatter.directive.d.ts +1 -1
- package/directives/ndc-formatter.directive.d.ts +1 -1
- package/dsivd-prestations-ng-v16.0.0-beta1.tgz +0 -0
- package/esm2020/abstract-page-component.mjs +223 -0
- package/esm2020/directives/currency-formatter.directive.mjs +143 -0
- package/{esm2015/directives/formatter.module.js → esm2020/directives/formatter.module.mjs} +8 -8
- package/{esm2015/directives/iban-formatter.directive.js → esm2020/directives/iban-formatter.directive.mjs} +4 -4
- package/{esm2015/directives/ide-formatter.directive.js → esm2020/directives/ide-formatter.directive.mjs} +4 -4
- package/{esm2015/directives/ndc-formatter.directive.js → esm2020/directives/ndc-formatter.directive.mjs} +4 -4
- 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} +1 -1
- package/esm2020/foehn-address/foehn-address.module.mjs +55 -0
- 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 +406 -0
- package/esm2020/foehn-address/foehn-input-foreign-locality.component.mjs +66 -0
- package/esm2020/foehn-address/foehn-input-foreign-street.component.mjs +55 -0
- package/esm2020/foehn-agenda/calendar.type.mjs +3 -0
- package/esm2020/foehn-agenda/current-week.type.mjs +4 -0
- package/esm2020/foehn-agenda/day-slots.type.mjs +3 -0
- package/esm2020/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.mjs +74 -0
- package/esm2020/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.mjs +242 -0
- package/esm2020/foehn-agenda/foehn-agenda.component.mjs +95 -0
- package/esm2020/foehn-agenda/foehn-agenda.module.mjs +62 -0
- package/esm2020/foehn-agenda/pagination-week.type.mjs +3 -0
- package/esm2020/foehn-agenda/selected-slot.type.mjs +3 -0
- package/esm2020/foehn-autocomplete/foehn-autocomplete.component.mjs +608 -0
- package/esm2020/foehn-autocomplete/foehn-autocomplete.module.mjs +40 -0
- package/esm2020/foehn-boolean/foehn-boolean-checkbox.component.mjs +28 -0
- package/esm2020/foehn-boolean/foehn-boolean-radio.component.mjs +40 -0
- package/esm2020/foehn-boolean/foehn-boolean.module.mjs +33 -0
- package/esm2020/foehn-breadcrumb/breadcrumb-event.service.mjs +181 -0
- package/{esm2015/foehn-breadcrumb/breadcrumb.js → esm2020/foehn-breadcrumb/breadcrumb.mjs} +0 -0
- package/esm2020/foehn-breadcrumb/foehn-breadcrumb.component.mjs +80 -0
- package/esm2020/foehn-breadcrumb/foehn-breadcrumb.module.mjs +19 -0
- package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +298 -0
- package/esm2020/foehn-checkables/foehn-checkables.module.mjs +68 -0
- package/esm2020/foehn-checkables/foehn-checkbox.component.mjs +37 -0
- package/esm2020/foehn-checkables/foehn-radio.component.mjs +64 -0
- package/esm2020/foehn-checkables/foehn-select.component.mjs +53 -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} +1 -1
- package/esm2020/foehn-confirm-modal/foehn-confirm-modal.component.mjs +40 -0
- package/esm2020/foehn-confirm-modal/foehn-confirm-modal.module.mjs +19 -0
- package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.service.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.service.mjs} +4 -4
- package/esm2020/foehn-date-picker/date-picker-navigation.helper.mjs +167 -0
- package/esm2020/foehn-date-picker/date-picker.helper.mjs +132 -0
- 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/esm2020/foehn-date-picker/foehn-date-picker.component.mjs +387 -0
- package/esm2020/foehn-date-picker/foehn-date-picker.module.mjs +40 -0
- 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 +97 -0
- package/esm2020/foehn-date-picker-button/foehn-date-picker-button.module.mjs +36 -0
- package/esm2020/foehn-debug-summary/foehn-debug-summary.component.mjs +67 -0
- package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.module.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.module.mjs} +7 -7
- package/esm2020/foehn-decision-electronique/foehn-decision-electronique.component.mjs +37 -0
- package/esm2020/foehn-decision-electronique/foehn-decision-electronique.module.mjs +32 -0
- package/esm2020/foehn-footer/foehn-footer.component.mjs +130 -0
- package/{esm2015/foehn-footer/foehn-footer.module.js → esm2020/foehn-footer/foehn-footer.module.mjs} +6 -6
- package/{esm2015/foehn-footer/footer-link.type.js → esm2020/foehn-footer/footer-link.type.mjs} +0 -0
- package/esm2020/foehn-form/foehn-form.component.mjs +135 -0
- package/esm2020/foehn-form/foehn-form.module.mjs +32 -0
- package/esm2020/foehn-form/register-ng-model.service.mjs +23 -0
- package/esm2020/foehn-growl/foehn-growl.component.mjs +44 -0
- package/{esm2015/foehn-growl/foehn-growl.module.js → esm2020/foehn-growl/foehn-growl.module.mjs} +6 -6
- package/{esm2015/foehn-growl/growl-broker.service.js → esm2020/foehn-growl/growl-broker.service.mjs} +5 -5
- package/{esm2015/foehn-growl/growl-message.js → esm2020/foehn-growl/growl-message.mjs} +1 -1
- package/{esm2015/foehn-growl/growl-types.js → esm2020/foehn-growl/growl-types.mjs} +0 -0
- package/esm2020/foehn-header/foehn-header.component.mjs +68 -0
- package/esm2020/foehn-header/foehn-header.module.mjs +21 -0
- package/{esm2015/foehn-header/foehn-skip-link.component.js → esm2020/foehn-header/foehn-skip-link.component.mjs} +5 -8
- package/esm2020/foehn-help-modal/foehn-help-modal.component.mjs +44 -0
- package/esm2020/foehn-help-modal/foehn-help-modal.module.mjs +20 -0
- package/esm2020/foehn-help-modal/foehn-help-modal.type.mjs +2 -0
- package/{esm2015/foehn-icons/abstract-icon-component.js → esm2020/foehn-icons/abstract-icon-component.mjs} +5 -5
- package/esm2020/foehn-icons/foehn-icon-calendar.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-check-square-o.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-check.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-chevron-down.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-chevron-left.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-chevron-right.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-chevron-up.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-clock.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-comment-dots.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-edit.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-external-link-alt.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-file-pdf.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-info-circle.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-lock.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-map-marker.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-minus-circle.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-plus-circle.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-plus-square.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-search.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-times.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-trash-alt.component.mjs +19 -0
- package/esm2020/foehn-icons/foehn-icon-unlock-alt.component.mjs +19 -0
- package/{esm2015/foehn-icons/foehn-icons.module.js → esm2020/foehn-icons/foehn-icons.module.mjs} +20 -20
- package/esm2020/foehn-input/foehn-input-email.component.mjs +59 -0
- package/esm2020/foehn-input/foehn-input-hidden.component.mjs +55 -0
- package/esm2020/foehn-input/foehn-input-number.component.mjs +276 -0
- package/esm2020/foehn-input/foehn-input-password.component.mjs +52 -0
- package/esm2020/foehn-input/foehn-input-phone.component.mjs +92 -0
- package/{esm2015/foehn-input/foehn-input-string.component.js → esm2020/foehn-input/foehn-input-string.component.mjs} +5 -5
- package/esm2020/foehn-input/foehn-input-text.component.mjs +76 -0
- package/esm2020/foehn-input/foehn-input-textarea.component.mjs +109 -0
- package/esm2020/foehn-input/foehn-input.component.mjs +390 -0
- package/esm2020/foehn-input/foehn-input.module.mjs +93 -0
- 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 +118 -0
- package/esm2020/foehn-input-date-time/foehn-input-date-time.component.mjs +143 -0
- package/esm2020/foehn-input-time/foehn-input-time.component.mjs +74 -0
- package/esm2020/foehn-list/foehn-list.component.mjs +128 -0
- package/esm2020/foehn-list/foehn-list.module.mjs +19 -0
- 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} +4 -4
- package/{esm2015/foehn-menu-prestation/abstract-page-from-menu.component.js → esm2020/foehn-menu-prestation/abstract-page-from-menu.component.mjs} +4 -4
- package/esm2020/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs +23 -0
- 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/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs +51 -0
- package/esm2020/foehn-menu-prestation/foehn-menu-prestation.module.mjs +59 -0
- 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} +5 -5
- package/esm2020/foehn-modal/foehn-modal.component.mjs +94 -0
- package/esm2020/foehn-modal/foehn-modal.module.mjs +21 -0
- package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +268 -0
- package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.mjs +40 -0
- package/esm2020/foehn-nav13/foehn-input-nav13.component.mjs +114 -0
- package/esm2020/foehn-nav13/foehn-input-nav13.module.mjs +32 -0
- package/esm2020/foehn-navigation/foehn-navigation.component.mjs +94 -0
- package/esm2020/foehn-navigation/foehn-navigation.module.mjs +32 -0
- package/esm2020/foehn-navigation/foehn-navigation.service.mjs +303 -0
- package/{esm2015/foehn-notfound/foehn-notfound.component.js → esm2020/foehn-notfound/foehn-notfound.component.mjs} +7 -10
- package/esm2020/foehn-notfound/foehn-notfound.module.mjs +20 -0
- 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 +53 -0
- package/{esm2015/foehn-page/foehn-page-modal.service.js → esm2020/foehn-page/foehn-page-modal.service.mjs} +4 -4
- package/esm2020/foehn-page/foehn-page.component.mjs +218 -0
- package/esm2020/foehn-page/foehn-page.module.mjs +78 -0
- package/{esm2015/foehn-page/foehn-page.service.js → esm2020/foehn-page/foehn-page.service.mjs} +4 -4
- package/esm2020/foehn-recap-section/foehn-recap-section.component.mjs +88 -0
- package/esm2020/foehn-recap-section/foehn-recap-section.module.mjs +20 -0
- 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} +6 -6
- package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +56 -0
- package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs +20 -0
- package/esm2020/foehn-table/foehn-table-column-configuration.mjs +3 -0
- package/esm2020/foehn-table/foehn-table-page-change-event.mjs +3 -0
- package/esm2020/foehn-table/foehn-table.component.mjs +148 -0
- package/esm2020/foehn-table/foehn-table.module.mjs +32 -0
- package/esm2020/foehn-table/tableSort.mjs +3 -0
- package/esm2020/foehn-upload/abstract-foehn-uploader.component.mjs +192 -0
- package/{esm2015/foehn-upload/document-reference.js → esm2020/foehn-upload/document-reference.mjs} +0 -0
- package/esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs +71 -0
- 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 +174 -0
- package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs +40 -0
- package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +224 -0
- package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs +40 -0
- package/esm2020/foehn-upload/foehn-multi-upload/multi-upload.service.mjs +83 -0
- package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.type.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.type.mjs} +0 -0
- package/esm2020/foehn-upload/foehn-multi-upload/pending-upload.service.mjs +158 -0
- package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +202 -0
- package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs +44 -0
- package/esm2020/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.component.mjs +75 -0
- package/esm2020/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.module.mjs +21 -0
- package/esm2020/foehn-upload/foehn-upload-progress-bar/upload-progress.service.mjs +62 -0
- package/esm2020/foehn-upload/foehn-upload-progress-bar/upload-progress.type.mjs +3 -0
- package/{esm2015/foehn-upload/pending-upload.type.js → esm2020/foehn-upload/pending-upload.type.mjs} +1 -1
- package/esm2020/foehn-upload/uploader.helper.mjs +327 -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} +6 -6
- package/esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs +96 -0
- package/esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs +19 -0
- 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} +6 -6
- 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} +4 -4
- package/esm2020/gesdem/gesdem-event.service.mjs +38 -0
- package/esm2020/gesdem/gesdem-handler.service.mjs +160 -0
- package/esm2020/gesdem/gesdem-loader.guard.mjs +41 -0
- package/{esm2015/gesdem/gesdem-statut-utils.js → esm2020/gesdem/gesdem-statut-utils.mjs} +0 -0
- package/esm2020/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs +101 -0
- package/esm2020/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +130 -0
- package/esm2020/gesdem-action-recovery/gesdem-action-recovery.module.mjs +50 -0
- 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 +201 -0
- package/esm2020/gesdem-confirmation/gesdem-confirmation.module.mjs +32 -0
- package/esm2020/gesdem-error/gesdem-error.component.mjs +87 -0
- package/esm2020/gesdem-error/gesdem-error.module.mjs +36 -0
- package/esm2020/global.const.mjs +5 -0
- package/esm2020/helpers/object.helper.mjs +89 -0
- package/{esm2015/i18n-form.js → esm2020/i18n-form.mjs} +0 -0
- package/esm2020/index.mjs +263 -0
- package/{esm2015/pipes/currency.pipe.js → esm2020/pipes/currency.pipe.mjs} +4 -4
- package/{esm2015/pipes/date.pipe.js → esm2020/pipes/date.pipe.mjs} +4 -4
- package/{esm2015/pipes/formatIde.pipe.js → esm2020/pipes/formatIde.pipe.mjs} +3 -3
- package/{esm2015/pipes/pipes.module.js → esm2020/pipes/pipes.module.mjs} +7 -7
- package/{esm2015/prestations-ng-core.module.js → esm2020/prestations-ng-core.module.mjs} +7 -7
- package/esm2020/refinf/model/address-type-light.mjs +3 -0
- package/esm2020/refinf/model/canton.mjs +3 -0
- package/esm2020/refinf/model/district.mjs +3 -0
- package/esm2020/refinf/model/municipality.mjs +3 -0
- package/esm2020/refinf/model/place-of-origin.mjs +3 -0
- package/esm2020/refinf/model/postal-locality.mjs +3 -0
- package/esm2020/sdk-appinfo/application-info.mjs +14 -0
- package/esm2020/sdk-appinfo/application-info.service.mjs +104 -0
- package/{esm2015/sdk-currency/currency.helper.js → esm2020/sdk-currency/currency.helper.mjs} +3 -3
- package/esm2020/sdk-date/date.helper.mjs +100 -0
- package/esm2020/sdk-dictionary/default-dictionary.mjs +166 -0
- package/{esm2015/sdk-dictionary/sdk-dictionary.module.js → esm2020/sdk-dictionary/sdk-dictionary.module.mjs} +5 -5
- package/{esm2015/sdk-dictionary/sdk-dictionary.pipe.js → esm2020/sdk-dictionary/sdk-dictionary.pipe.mjs} +6 -6
- package/esm2020/sdk-dictionary/sdk-dictionary.service.mjs +111 -0
- package/{esm2015/sdk-epayment/model/EPaymentParameters.js → esm2020/sdk-epayment/model/EPaymentParameters.mjs} +0 -0
- package/esm2020/sdk-epayment/sdk-epayment.component.mjs +81 -0
- package/esm2020/sdk-epayment/sdk-epayment.module.mjs +21 -0
- package/esm2020/sdk-epayment/sdk-epayment.service.mjs +52 -0
- package/{esm2015/sdk-recaptcha/grecaptcha/grecaptcha.component.js → esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs} +6 -10
- package/esm2020/sdk-recaptcha/recaptcha.service.mjs +162 -0
- package/esm2020/sdk-recaptcha/sdk-recaptcha.component.mjs +69 -0
- package/esm2020/sdk-recaptcha/sdk-recaptcha.module.mjs +19 -0
- package/esm2020/sdk-redirect/iam-expired-interceptor.service.mjs +58 -0
- package/esm2020/sdk-redirect/redirect.component.mjs +35 -0
- package/esm2020/sdk-redirect/sdk-redirect.module.mjs +19 -0
- 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} +5 -5
- package/esm2020/sdk-session-info/session-info.service.mjs +50 -0
- package/esm2020/sdk-statistics/sdk-statistics.service.mjs +70 -0
- package/esm2020/sdk-support-alert/support-alert-container.component.mjs +49 -0
- 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/esm2020/sdk-support-alert/support-alert.module.mjs +21 -0
- package/esm2020/sdk-support-alert/support-alert.service.mjs +117 -0
- 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.mjs +13397 -0
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -0
- package/fesm2020/dsivd-prestations-ng.mjs +13372 -0
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -0
- package/foehn-address/address.type.d.ts +3 -3
- package/foehn-address/foehn-display-address.component.d.ts +1 -1
- package/foehn-address/foehn-input-address.component.d.ts +18 -8
- package/foehn-address/foehn-input-foreign-locality.component.d.ts +1 -1
- package/foehn-address/foehn-input-foreign-street.component.d.ts +1 -1
- package/foehn-agenda/calendar.type.d.ts +9 -0
- package/foehn-agenda/current-week.type.d.ts +5 -0
- package/foehn-agenda/day-slots.type.d.ts +5 -0
- package/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.d.ts +21 -0
- package/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.d.ts +51 -0
- package/foehn-agenda/foehn-agenda.component.d.ts +29 -0
- package/foehn-agenda/foehn-agenda.module.d.ts +17 -0
- package/foehn-agenda/pagination-week.type.d.ts +5 -0
- package/foehn-agenda/selected-slot.type.d.ts +7 -0
- package/foehn-autocomplete/foehn-autocomplete.component.d.ts +22 -6
- package/foehn-boolean/foehn-boolean-checkbox.component.d.ts +1 -1
- package/foehn-boolean/foehn-boolean-radio.component.d.ts +2 -1
- package/foehn-breadcrumb/breadcrumb-event.service.d.ts +2 -2
- package/foehn-breadcrumb/foehn-breadcrumb.component.d.ts +6 -5
- package/foehn-checkables/foehn-checkable-group.component.d.ts +8 -8
- package/foehn-checkables/foehn-checkables.module.d.ts +3 -1
- package/foehn-checkables/foehn-checkbox.component.d.ts +1 -1
- package/foehn-checkables/foehn-radio.component.d.ts +1 -1
- package/foehn-checkables/foehn-select.component.d.ts +2 -10
- package/foehn-confirm-modal/foehn-confirm-modal-content.d.ts +1 -0
- package/foehn-confirm-modal/foehn-confirm-modal.component.d.ts +2 -2
- package/foehn-date-picker/date-picker-navigation.helper.d.ts +7 -1
- package/foehn-date-picker/date-picker.helper.d.ts +3 -2
- package/foehn-date-picker/foehn-date-picker.component.d.ts +21 -10
- package/foehn-date-picker-button/foehn-date-picker-button.component.d.ts +13 -5
- package/foehn-debug-summary/foehn-debug-summary.component.d.ts +7 -5
- package/foehn-decision-electronique/foehn-decision-electronique.component.d.ts +2 -2
- package/foehn-decision-electronique/foehn-decision-electronique.module.d.ts +2 -1
- package/foehn-footer/foehn-footer.component.d.ts +4 -4
- package/foehn-form/foehn-form.component.d.ts +7 -4
- package/foehn-form/register-ng-model.service.d.ts +9 -0
- package/foehn-growl/foehn-growl.component.d.ts +3 -3
- package/foehn-growl/growl-broker.service.d.ts +1 -1
- package/foehn-header/foehn-header.component.d.ts +7 -7
- package/foehn-header/foehn-skip-link.component.d.ts +2 -2
- package/foehn-help-modal/foehn-help-modal.component.d.ts +1 -1
- package/foehn-help-modal/foehn-help-modal.type.d.ts +4 -0
- package/foehn-icons/abstract-icon-component.d.ts +1 -1
- package/foehn-icons/foehn-icon-calendar.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-check-square-o.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-check.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-chevron-down.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-chevron-left.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-chevron-right.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-chevron-up.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-clock.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-comment-dots.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-edit.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-external-link-alt.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-file-pdf.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-info-circle.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-lock.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-map-marker.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-minus-circle.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-plus-circle.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-plus-square.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-search.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-times.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-trash-alt.component.d.ts +1 -1
- package/foehn-icons/foehn-icon-unlock-alt.component.d.ts +1 -1
- package/foehn-input/foehn-input-email.component.d.ts +4 -2
- package/foehn-input/foehn-input-hidden.component.d.ts +1 -1
- package/foehn-input/foehn-input-number.component.d.ts +16 -6
- package/foehn-input/foehn-input-password.component.d.ts +1 -1
- package/foehn-input/foehn-input-phone.component.d.ts +1 -1
- package/foehn-input/foehn-input-string.component.d.ts +1 -1
- package/foehn-input/foehn-input-text.component.d.ts +1 -1
- package/foehn-input/foehn-input-textarea.component.d.ts +5 -2
- package/foehn-input/foehn-input.component.d.ts +25 -9
- package/foehn-input/foehn-input.module.d.ts +9 -6
- package/foehn-input-date/foehn-input-date.component.d.ts +10 -3
- package/foehn-input-date-time/foehn-input-date-time.component.d.ts +29 -0
- package/foehn-input-time/foehn-input-time.component.d.ts +1 -1
- package/foehn-list/foehn-list.component.d.ts +2 -3
- package/foehn-menu-prestation/abstract-list-item-detail-page.component.d.ts +5 -5
- package/foehn-menu-prestation/abstract-menu-page.component.d.ts +1 -1
- package/foehn-menu-prestation/abstract-page-from-menu.component.d.ts +1 -1
- package/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.d.ts +1 -1
- package/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.d.ts +3 -3
- package/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.d.ts +1 -1
- package/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.d.ts +2 -2
- package/foehn-misc/foehn-abbr.component.d.ts +1 -1
- package/foehn-modal/foehn-modal.component.d.ts +2 -3
- package/foehn-modal/foehn-modal.module.d.ts +3 -1
- package/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.d.ts +51 -0
- package/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.d.ts +13 -0
- package/foehn-nav13/foehn-input-nav13.component.d.ts +2 -1
- package/foehn-navigation/foehn-navigation.component.d.ts +2 -2
- package/foehn-navigation/foehn-navigation.service.d.ts +4 -3
- package/foehn-notfound/foehn-notfound.component.d.ts +1 -1
- package/foehn-page/foehn-page-counter.component.d.ts +1 -1
- package/foehn-page/foehn-page-modal.component.d.ts +1 -1
- package/foehn-page/foehn-page-modal.service.d.ts +1 -1
- package/foehn-page/foehn-page.component.d.ts +15 -12
- package/foehn-page/foehn-page.module.d.ts +2 -1
- package/foehn-page/foehn-page.service.d.ts +2 -2
- package/foehn-recap-section/foehn-recap-section.component.d.ts +3 -1
- package/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.d.ts +1 -1
- package/foehn-status-progress-bar/foehn-status-progress-bar.component.d.ts +23 -0
- package/foehn-status-progress-bar/foehn-status-progress-bar.module.d.ts +10 -0
- package/foehn-table/foehn-table-column-configuration.d.ts +18 -0
- package/foehn-table/foehn-table-page-change-event.d.ts +5 -0
- package/foehn-table/foehn-table.component.d.ts +33 -0
- package/foehn-table/foehn-table.module.d.ts +11 -0
- package/foehn-table/tableSort.d.ts +4 -0
- package/foehn-upload/abstract-foehn-uploader.component.d.ts +7 -7
- package/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.d.ts +6 -4
- package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.d.ts +6 -5
- package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.d.ts +2 -1
- package/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.d.ts +9 -8
- package/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.d.ts +2 -1
- package/foehn-upload/foehn-multi-upload/multi-upload.service.d.ts +6 -4
- package/foehn-upload/foehn-multi-upload/pending-upload.service.d.ts +3 -3
- package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +7 -4
- package/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.d.ts +2 -1
- package/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.component.d.ts +19 -0
- package/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.module.d.ts +11 -0
- package/foehn-upload/foehn-upload-progress-bar/upload-progress.service.d.ts +19 -0
- package/foehn-upload/foehn-upload-progress-bar/upload-progress.type.d.ts +4 -0
- package/foehn-upload/pending-upload.type.d.ts +1 -0
- package/foehn-upload/uploader.helper.d.ts +13 -13
- package/foehn-user-connected-as/foehn-user-connected-as.component.d.ts +2 -2
- package/foehn-validation-alert-summary/foehn-validation-alert-summary.component.d.ts +2 -2
- package/foehn-validation-alerts/foehn-validation-alerts.component.d.ts +4 -4
- package/{error-template.d.ts → form-error.d.ts} +1 -1
- package/form-post-response.d.ts +17 -0
- package/gesdem/gesdem-error-handler.service.d.ts +2 -2
- package/gesdem/gesdem-event.service.d.ts +7 -7
- package/gesdem/gesdem-handler.service.d.ts +8 -6
- package/gesdem/gesdem-loader.guard.d.ts +1 -1
- package/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.d.ts +5 -5
- package/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.d.ts +7 -7
- package/gesdem-action-recovery/gesdem-action-recovery.service.d.ts +3 -3
- package/gesdem-confirmation/gesdem-confirmation.component.d.ts +10 -9
- package/gesdem-error/gesdem-error.component.d.ts +10 -3
- package/gesdem-error/gesdem-error.module.d.ts +2 -1
- package/global.const.d.ts +1 -0
- package/index.d.ts +102 -70
- package/package.json +34 -21
- package/pipes/currency.pipe.d.ts +1 -1
- package/pipes/date.pipe.d.ts +1 -1
- package/pipes/formatIde.pipe.d.ts +1 -1
- package/refinf/model/address-type-light.d.ts +5 -0
- package/refinf/model/canton.d.ts +4 -0
- package/refinf/model/district.d.ts +7 -0
- package/refinf/model/municipality.d.ts +8 -0
- package/refinf/model/place-of-origin.d.ts +9 -0
- package/refinf/model/postal-locality.d.ts +11 -0
- package/schematics/ng-add/index.js +10 -10
- 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 +3 -3
- 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.d.ts +1 -0
- package/sdk-appinfo/application-info.service.d.ts +4 -4
- package/sdk-dictionary/sdk-dictionary.pipe.d.ts +1 -1
- package/sdk-dictionary/sdk-dictionary.service.d.ts +9 -0
- package/sdk-epayment/sdk-epayment.component.d.ts +6 -16
- package/sdk-epayment/sdk-epayment.service.d.ts +3 -6
- package/sdk-recaptcha/grecaptcha/grecaptcha.component.d.ts +2 -2
- package/sdk-recaptcha/recaptcha.service.d.ts +5 -5
- package/sdk-recaptcha/sdk-recaptcha.component.d.ts +4 -4
- package/sdk-redirect/iam-expired-interceptor.service.d.ts +3 -3
- package/sdk-redirect/redirect.component.d.ts +3 -9
- package/sdk-session-info/session-info-data.d.ts +0 -1
- package/sdk-session-info/session-info.service.d.ts +4 -4
- package/sdk-statistics/sdk-statistics.service.d.ts +22 -0
- package/sdk-support-alert/support-alert-container.component.d.ts +3 -3
- package/sdk-support-alert/support-alert.component.d.ts +1 -1
- package/sdk-support-alert/support-alert.service.d.ts +5 -4
- package/validation/validation-handler.service.d.ts +4 -4
- package/backend-response.d.ts +0 -18
- package/bundles/dsivd-prestations-ng.umd.js +0 -13188
- package/bundles/dsivd-prestations-ng.umd.js.map +0 -1
- package/dsivd-prestations-ng-v15.5.13.tgz +0 -0
- package/dsivd-prestations-ng.d.ts +0 -5
- package/esm2015/abstract-page-component.js +0 -224
- package/esm2015/backend-response.js +0 -10
- package/esm2015/directives/currency-formatter.directive.js +0 -116
- package/esm2015/error-template.js +0 -2
- package/esm2015/foehn-address/foehn-address.module.js +0 -57
- 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-address/foehn-input-foreign-street.component.js +0 -60
- package/esm2015/foehn-autocomplete/foehn-autocomplete.component.js +0 -556
- package/esm2015/foehn-autocomplete/foehn-autocomplete.module.js +0 -42
- 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-boolean/foehn-boolean.module.js +0 -35
- package/esm2015/foehn-breadcrumb/breadcrumb-event.service.js +0 -182
- package/esm2015/foehn-breadcrumb/foehn-breadcrumb.component.js +0 -85
- package/esm2015/foehn-breadcrumb/foehn-breadcrumb.module.js +0 -19
- package/esm2015/foehn-checkables/foehn-checkable-group.component.js +0 -294
- package/esm2015/foehn-checkables/foehn-checkables.module.js +0 -62
- 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-confirm-modal/foehn-confirm-modal.module.js +0 -19
- package/esm2015/foehn-date-picker/date-picker-navigation.helper.js +0 -117
- package/esm2015/foehn-date-picker/date-picker.helper.js +0 -126
- package/esm2015/foehn-date-picker/foehn-date-picker.component.js +0 -300
- package/esm2015/foehn-date-picker/foehn-date-picker.module.js +0 -42
- package/esm2015/foehn-date-picker-button/foehn-date-picker-button.component.js +0 -74
- package/esm2015/foehn-date-picker-button/foehn-date-picker-button.module.js +0 -38
- package/esm2015/foehn-debug-summary/foehn-debug-summary.component.js +0 -61
- package/esm2015/foehn-decision-electronique/foehn-decision-electronique.component.js +0 -40
- package/esm2015/foehn-decision-electronique/foehn-decision-electronique.module.js +0 -20
- package/esm2015/foehn-footer/foehn-footer.component.js +0 -132
- package/esm2015/foehn-form/foehn-form.component.js +0 -146
- package/esm2015/foehn-form/foehn-form.module.js +0 -20
- package/esm2015/foehn-growl/foehn-growl.component.js +0 -47
- package/esm2015/foehn-header/foehn-header.component.js +0 -73
- package/esm2015/foehn-header/foehn-header.module.js +0 -21
- package/esm2015/foehn-help-modal/foehn-help-modal.component.js +0 -48
- package/esm2015/foehn-help-modal/foehn-help-modal.module.js +0 -20
- package/esm2015/foehn-help-modal/foehn-help-modal.type.js +0 -2
- package/esm2015/foehn-icons/foehn-icon-calendar.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-check-square-o.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-check.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-chevron-down.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-chevron-left.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-chevron-right.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-chevron-up.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-clock.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-comment-dots.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-edit.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-external-link-alt.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-file-pdf.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-info-circle.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-lock.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-map-marker.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-minus-circle.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-plus-circle.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-plus-square.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-search.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-times.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-trash-alt.component.js +0 -22
- package/esm2015/foehn-icons/foehn-icon-unlock-alt.component.js +0 -22
- 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-number.component.js +0 -190
- package/esm2015/foehn-input/foehn-input-password.component.js +0 -55
- package/esm2015/foehn-input/foehn-input-phone.component.js +0 -96
- package/esm2015/foehn-input/foehn-input-text.component.js +0 -80
- package/esm2015/foehn-input/foehn-input-textarea.component.js +0 -104
- package/esm2015/foehn-input/foehn-input.component.js +0 -364
- package/esm2015/foehn-input/foehn-input.module.js +0 -82
- 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 -135
- package/esm2015/foehn-list/foehn-list.module.js +0 -19
- package/esm2015/foehn-menu-prestation/abstract-list-item-detail-page.component.js +0 -122
- package/esm2015/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.js +0 -26
- 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-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.js +0 -54
- package/esm2015/foehn-menu-prestation/foehn-menu-prestation.module.js +0 -61
- package/esm2015/foehn-modal/foehn-modal.component.js +0 -100
- package/esm2015/foehn-modal/foehn-modal.module.js +0 -19
- package/esm2015/foehn-nav13/foehn-input-nav13.component.js +0 -98
- package/esm2015/foehn-nav13/foehn-input-nav13.module.js +0 -34
- package/esm2015/foehn-navigation/foehn-navigation.component.js +0 -98
- package/esm2015/foehn-navigation/foehn-navigation.module.js +0 -34
- package/esm2015/foehn-navigation/foehn-navigation.service.js +0 -297
- package/esm2015/foehn-notfound/foehn-notfound.module.js +0 -20
- package/esm2015/foehn-page/foehn-page-modal.component.js +0 -55
- package/esm2015/foehn-page/foehn-page.component.js +0 -214
- package/esm2015/foehn-page/foehn-page.module.js +0 -76
- package/esm2015/foehn-recap-section/foehn-recap-section.component.js +0 -88
- package/esm2015/foehn-recap-section/foehn-recap-section.module.js +0 -20
- package/esm2015/foehn-upload/abstract-foehn-uploader.component.js +0 -192
- package/esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.js +0 -62
- package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.js +0 -168
- package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.js +0 -38
- package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.js +0 -217
- package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.js +0 -38
- package/esm2015/foehn-upload/foehn-multi-upload/multi-upload.service.js +0 -76
- package/esm2015/foehn-upload/foehn-multi-upload/pending-upload.service.js +0 -157
- package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.js +0 -164
- package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.js +0 -42
- package/esm2015/foehn-upload/uploader.helper.js +0 -322
- package/esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.component.js +0 -88
- package/esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.module.js +0 -19
- 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/gesdem-loader.guard.js +0 -40
- package/esm2015/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.js +0 -103
- 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.module.js +0 -52
- package/esm2015/gesdem-action-recovery/gesdem-action-recovery.service.js +0 -82
- package/esm2015/gesdem-confirmation/gesdem-confirmation.component.js +0 -194
- package/esm2015/gesdem-confirmation/gesdem-confirmation.module.js +0 -34
- package/esm2015/gesdem-error/gesdem-error.component.js +0 -70
- package/esm2015/gesdem-error/gesdem-error.module.js +0 -34
- package/esm2015/helpers/object.helper.js +0 -88
- package/esm2015/index.js +0 -224
- package/esm2015/sdk-appinfo/application-info.js +0 -14
- package/esm2015/sdk-appinfo/application-info.service.js +0 -111
- package/esm2015/sdk-date/date.helper.js +0 -90
- package/esm2015/sdk-dictionary/default-dictionary.js +0 -80
- package/esm2015/sdk-dictionary/sdk-dictionary.service.js +0 -96
- 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.module.js +0 -21
- 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-recaptcha/sdk-recaptcha.module.js +0 -19
- package/esm2015/sdk-redirect/iam-expired-interceptor.service.js +0 -48
- package/esm2015/sdk-redirect/redirect.component.js +0 -47
- package/esm2015/sdk-redirect/sdk-redirect.module.js +0 -19
- package/esm2015/sdk-session-info/session-info.service.js +0 -44
- package/esm2015/sdk-support-alert/support-alert-container.component.js +0 -53
- package/esm2015/sdk-support-alert/support-alert.component.js +0 -38
- package/esm2015/sdk-support-alert/support-alert.module.js +0 -21
- package/esm2015/sdk-support-alert/support-alert.service.js +0 -113
- package/esm2015/supported-browser.js +0 -2
- package/esm2015/validation/validation-handler.service.js +0 -44
- package/fesm2015/dsivd-prestations-ng.js +0 -11618
- package/fesm2015/dsivd-prestations-ng.js.map +0 -1
- package/sdk-epayment/model/EPaymentRequest.d.ts +0 -5
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { Component, forwardRef, Input } from '@angular/core';
|
|
2
|
+
// eslint-disable-next-line import/no-cycle
|
|
3
|
+
import { formatDecimalCurrency, formatNonDecimalCurrency, formatNumberAsGiven } from '../directives/currency-formatter.directive';
|
|
4
|
+
import { DECIMALS_SEPARATOR } from '../sdk-currency/currency.helper';
|
|
5
|
+
import { FoehnInputComponent } from './foehn-input.component';
|
|
6
|
+
import { FoehnInputStringComponent } from './foehn-input-string.component';
|
|
7
|
+
import { CLEAN_DECIMAL_NUMBERS_PATTERN, CLEAN_NEGATIVE_AND_DECIMAL_NUMBERS_PATTERN, CLEAN_NEGATIVE_NUMBERS_PATTERN, CLEAN_NUMBERS_PATTERN, DECIMAL_NUMBERS_PATTERN, HTML_DECIMAL_PATTERN, HTML_NO_DECIMAL_PATTERN, NEGATIVE_AND_DECIMAL_NUMBERS_PATTERN, NEGATIVE_NUMBERS_PATTERN, NUMBERS_PATTERN } from './pattern.const';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../sdk-currency/currency.helper";
|
|
10
|
+
import * as i2 from "../sdk-dictionary/sdk-dictionary.service";
|
|
11
|
+
import * as i3 from "../foehn-icons/foehn-icon-times.component";
|
|
12
|
+
import * as i4 from "@angular/common";
|
|
13
|
+
import * as i5 from "@angular/forms";
|
|
14
|
+
import * as i6 from "../foehn-validation-alerts/foehn-validation-alerts.component";
|
|
15
|
+
import * as i7 from "../foehn-help-modal/foehn-help-modal.component";
|
|
16
|
+
import * as i8 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
17
|
+
const isDefined = (value) => value === 0 || !!value;
|
|
18
|
+
export class FoehnInputNumberComponent extends FoehnInputStringComponent {
|
|
19
|
+
constructor(currencyHelper, dictionaryService) {
|
|
20
|
+
super();
|
|
21
|
+
this.currencyHelper = currencyHelper;
|
|
22
|
+
this.dictionaryService = dictionaryService;
|
|
23
|
+
this.hideStandardHelpText = false;
|
|
24
|
+
this.maxDecimalCount = 2;
|
|
25
|
+
this.allowFreeInput = false;
|
|
26
|
+
}
|
|
27
|
+
get model() {
|
|
28
|
+
// If the setter is overridden, it's critical to override the getter too.
|
|
29
|
+
return this.model_;
|
|
30
|
+
}
|
|
31
|
+
set model(value) {
|
|
32
|
+
// This doesn't trigger the component's version of updateNgModel strait away as this might
|
|
33
|
+
// be called before allowDecimal or allowNegative are properly set (before the init lifecycle
|
|
34
|
+
// of the component). This is critical to not re-format the input before the OnInit, otherwise
|
|
35
|
+
// we might end up with invalid value displayed to the user. this.updateNgModel is called implicitly
|
|
36
|
+
// as super.updateNgModel will emit a change on this.modelChange.
|
|
37
|
+
// FIXME this is a hack and should be refactored.
|
|
38
|
+
super.updateNgModel(value);
|
|
39
|
+
}
|
|
40
|
+
ngOnInit() {
|
|
41
|
+
super.ngOnInit();
|
|
42
|
+
this.type = 'text';
|
|
43
|
+
// Pattern used only for numpad trigger on mobile phones
|
|
44
|
+
this.pattern = this.allowDecimal
|
|
45
|
+
? HTML_DECIMAL_PATTERN
|
|
46
|
+
: HTML_NO_DECIMAL_PATTERN;
|
|
47
|
+
this.maxlength = !!this.maxlength ? this.maxlength : 9;
|
|
48
|
+
}
|
|
49
|
+
ngOnChanges(changes) {
|
|
50
|
+
const hasChanges = Object.keys(changes)
|
|
51
|
+
.filter(k => k !== 'model')
|
|
52
|
+
.map(k => changes[k])
|
|
53
|
+
.find(change => change.currentValue !== change.previousValue);
|
|
54
|
+
const helpTextHasChanged = changes.helpText?.currentValue !== changes.helpText?.previousValue;
|
|
55
|
+
if (helpTextHasChanged) {
|
|
56
|
+
this.initialHelpText = changes.helpText.currentValue;
|
|
57
|
+
}
|
|
58
|
+
if (hasChanges) {
|
|
59
|
+
this.manageHelpText();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
getMaxLength() {
|
|
63
|
+
if (this.allowFreeInput) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return super.getMaxLength();
|
|
67
|
+
}
|
|
68
|
+
updateNgModel(value) {
|
|
69
|
+
if (this.isEmpty(value)) {
|
|
70
|
+
this.setToEmpty(value);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const isDeleting = value.toString()?.length < this.model?.length;
|
|
74
|
+
let cleanNumber;
|
|
75
|
+
if (!this.allowFreeInput) {
|
|
76
|
+
cleanNumber = this.getCleanNumber(value.toString());
|
|
77
|
+
const isModelValid = this.isModelValid(cleanNumber);
|
|
78
|
+
if (!isModelValid && !isDeleting) {
|
|
79
|
+
cleanNumber = this.model;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const noCommaString = this.replaceCommaWithDot(value);
|
|
84
|
+
cleanNumber =
|
|
85
|
+
noCommaString && typeof noCommaString === 'string'
|
|
86
|
+
? noCommaString.replace(CLEAN_NEGATIVE_AND_DECIMAL_NUMBERS_PATTERN, '')
|
|
87
|
+
: noCommaString;
|
|
88
|
+
// check that it is a number in any of its possible form
|
|
89
|
+
// to avoid -3.14-23--534
|
|
90
|
+
if (!NEGATIVE_AND_DECIMAL_NUMBERS_PATTERN.test(cleanNumber) &&
|
|
91
|
+
!isDeleting) {
|
|
92
|
+
cleanNumber = this.model;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
super.updateNgModel(cleanNumber);
|
|
96
|
+
// Need to update HTML input value because we let user input what he wants and then we clean model
|
|
97
|
+
this.updateInputElementValue(cleanNumber);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* To be used for post-formatting by directives.
|
|
101
|
+
*
|
|
102
|
+
* @param value of model
|
|
103
|
+
*/
|
|
104
|
+
forceUpdateNgModel(value) {
|
|
105
|
+
this.model_ = value;
|
|
106
|
+
this.updateInputElementValue(value);
|
|
107
|
+
}
|
|
108
|
+
isStringAValidNumber(value) {
|
|
109
|
+
return this.getValidationRegex().test(value);
|
|
110
|
+
}
|
|
111
|
+
isModelValid(value) {
|
|
112
|
+
return this.isStringAValidNumber(value);
|
|
113
|
+
}
|
|
114
|
+
getValidationRegex(isForClean = false) {
|
|
115
|
+
if (this.allowDecimal || this.allowNegative) {
|
|
116
|
+
// Allow decimal and negative
|
|
117
|
+
if (this.allowDecimal && this.allowNegative) {
|
|
118
|
+
return !isForClean
|
|
119
|
+
? NEGATIVE_AND_DECIMAL_NUMBERS_PATTERN
|
|
120
|
+
: CLEAN_NEGATIVE_AND_DECIMAL_NUMBERS_PATTERN;
|
|
121
|
+
}
|
|
122
|
+
// Allow decimal
|
|
123
|
+
if (this.allowDecimal) {
|
|
124
|
+
return !isForClean
|
|
125
|
+
? DECIMAL_NUMBERS_PATTERN
|
|
126
|
+
: CLEAN_DECIMAL_NUMBERS_PATTERN;
|
|
127
|
+
}
|
|
128
|
+
// Allow negative
|
|
129
|
+
return !isForClean
|
|
130
|
+
? NEGATIVE_NUMBERS_PATTERN
|
|
131
|
+
: CLEAN_NEGATIVE_NUMBERS_PATTERN;
|
|
132
|
+
}
|
|
133
|
+
return !isForClean ? NUMBERS_PATTERN : CLEAN_NUMBERS_PATTERN;
|
|
134
|
+
}
|
|
135
|
+
replaceCommaWithDot(value) {
|
|
136
|
+
return value && typeof value === 'string'
|
|
137
|
+
? value.replace(new RegExp(',', 'g'), DECIMALS_SEPARATOR)
|
|
138
|
+
: value;
|
|
139
|
+
}
|
|
140
|
+
removeNonNumericCharacters(value) {
|
|
141
|
+
return value && typeof value === 'string'
|
|
142
|
+
? value.replace(this.getValidationRegex(true), '')
|
|
143
|
+
: value;
|
|
144
|
+
}
|
|
145
|
+
cleanDecimals(value, separator = DECIMALS_SEPARATOR) {
|
|
146
|
+
if (!value || !this.allowDecimal || !value.includes(separator)) {
|
|
147
|
+
return value;
|
|
148
|
+
}
|
|
149
|
+
const [intg, dec] = value.split(separator);
|
|
150
|
+
const cleanDec = dec.substring(0, this.maxDecimalCount);
|
|
151
|
+
return intg + separator + cleanDec;
|
|
152
|
+
}
|
|
153
|
+
getCleanNumber(value) {
|
|
154
|
+
const noCommaString = this.replaceCommaWithDot(value);
|
|
155
|
+
const cleanDecimals = this.cleanDecimals(noCommaString);
|
|
156
|
+
const cleanNumber = this.removeNonNumericCharacters(cleanDecimals);
|
|
157
|
+
if (cleanNumber && cleanNumber.length) {
|
|
158
|
+
return cleanNumber.substring(0, this.getMaxLength());
|
|
159
|
+
}
|
|
160
|
+
return cleanNumber;
|
|
161
|
+
}
|
|
162
|
+
updateInputElementValue(cleanNumber) {
|
|
163
|
+
if (!this.inputElement) {
|
|
164
|
+
// No need to update the native element if it doesn't yet exist.
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const inputElemValue = this.inputElement.nativeElement.value;
|
|
168
|
+
if (inputElemValue !== cleanNumber) {
|
|
169
|
+
// Need to update HTML input value because we let user input what he wants and then we clean model
|
|
170
|
+
this.inputElement.nativeElement.value = cleanNumber;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
setToEmpty(value) {
|
|
174
|
+
// Empty means null, otherwise the backend doesn't handle numbers properly. We have to keep 'undefined'
|
|
175
|
+
// if 'undefined' otherwise Angular complains about the value of the model being changed without updating
|
|
176
|
+
// the view.
|
|
177
|
+
const emptyValue = value === '' ? null : value;
|
|
178
|
+
super.updateNgModel(emptyValue);
|
|
179
|
+
this.updateInputElementValue(emptyValue);
|
|
180
|
+
}
|
|
181
|
+
manageHelpText() {
|
|
182
|
+
if (!!this.hideStandardHelpText) {
|
|
183
|
+
this.helpText = this.initialHelpText;
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (!this.allowFreeInput) {
|
|
187
|
+
if (isDefined(this.min) && isDefined(this.max)) {
|
|
188
|
+
if (!!this.initialHelpText?.length) {
|
|
189
|
+
this.helpText = `${this.initialHelpText}<br/>`;
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
this.helpText = '';
|
|
193
|
+
}
|
|
194
|
+
this.helpText += this.dictionaryService.getKeySync('foehn-input-number.standard-help-text.label', {
|
|
195
|
+
minValue: formatNumberAsGiven(this.min.toString()),
|
|
196
|
+
maxValue: formatNumberAsGiven(this.max.toString())
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (!!this.initialHelpText?.length) {
|
|
202
|
+
this.helpText = `${this.initialHelpText}<br/>`;
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
this.helpText = '';
|
|
206
|
+
}
|
|
207
|
+
const maxIntegerCount = this.allowDecimal
|
|
208
|
+
? this.maxlength - this.maxDecimalCount - 1
|
|
209
|
+
: this.maxlength;
|
|
210
|
+
let maxAsString;
|
|
211
|
+
if (!!this.max) {
|
|
212
|
+
maxAsString = this.max;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
maxAsString = '9'.repeat(maxIntegerCount);
|
|
216
|
+
if (this.allowDecimal) {
|
|
217
|
+
maxAsString += `.${'9'.repeat(this.maxDecimalCount)}`;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
let minAsString;
|
|
221
|
+
if (this.min) {
|
|
222
|
+
minAsString = this.min;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
minAsString = this.allowNegative
|
|
226
|
+
? `-${'9'.repeat(maxIntegerCount - 1)}`
|
|
227
|
+
: '0';
|
|
228
|
+
if (this.allowDecimal) {
|
|
229
|
+
minAsString += this.allowNegative
|
|
230
|
+
? `.${'9'.repeat(this.maxDecimalCount || 0)}`
|
|
231
|
+
: `.${'0'.repeat(this.maxDecimalCount || 0)}`;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
this.helpText += this.dictionaryService.getKeySync('foehn-input-number.standard-help-text.label', {
|
|
235
|
+
minValue: this.formatValue(minAsString),
|
|
236
|
+
maxValue: this.formatValue(maxAsString)
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
formatValue(value) {
|
|
240
|
+
if (this.allowDecimal) {
|
|
241
|
+
return formatDecimalCurrency(value?.toString(), this.maxDecimalCount, this.maxlength, this.allowFreeInput);
|
|
242
|
+
}
|
|
243
|
+
return formatNonDecimalCurrency(value?.toString());
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
FoehnInputNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputNumberComponent, deps: [{ token: i1.CurrencyHelper }, { token: i2.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
247
|
+
FoehnInputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: FoehnInputNumberComponent, selector: "foehn-input-number", inputs: { hideStandardHelpText: "hideStandardHelpText", allowDecimal: "allowDecimal", allowNegative: "allowNegative", maxDecimalCount: "maxDecimalCount", allowFreeInput: "allowFreeInput", model: "model" }, providers: [
|
|
248
|
+
{
|
|
249
|
+
provide: FoehnInputComponent,
|
|
250
|
+
useExisting: forwardRef(() => FoehnInputNumberComponent),
|
|
251
|
+
multi: true
|
|
252
|
+
}
|
|
253
|
+
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <div class=\"d-flex justify-content-between\">\n <label\n style=\"display: inline-block\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <input\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n [class.clearable-input]=\"displayClearButton() | async\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.maxlength]=\"getMaxLength()\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [attr.autocapitalize]=\"autocapitalize\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.type]=\"type\"\n [attr.pattern]=\"pattern\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (paste)=\"onPaste($event)\"\n (ngModelChange)=\"updateNgModel($event)\"\n (input)=\"handleChange(entryComponent.value)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n #entryComponent\n />\n\n <button\n type=\"button\"\n [id]=\"buildChildId() + 'ClearButton'\"\n *ngIf=\"displayClearButton() | async\"\n class=\"clearable-input-clear-button btn\"\n (click)=\"onClear()\"\n >\n <foehn-icon-times\n class=\"clearable-input-clear-button-icon\"\n title=\"R\u00E9initialiser le champs\"\n ></foehn-icon-times>\n </button>\n</div>\n", styles: ["input::-ms-clear{display:none}input.clearable-input{padding-right:30px}.clearable-input-form-group{position:relative}:host ::ng-deep foehn-help-modal>.btn{padding-top:0!important;margin-top:0!important}.clearable-input-clear-button{position:absolute;bottom:4px;right:4px;height:30px;width:30px;background:none;border:none}.clearable-input-clear-button-icon{top:4px;right:8px;position:absolute}:host ::ng-deep .clearable-input-clear-button.btn .svg-inline--fa{color:#595959!important}:host ::ng-deep .clearable-input-clear-button.btn:hover .svg-inline--fa{color:#000!important}.chars-remaining{color:#757575;font-size:.9rem}.char-count-exceeded{color:#c21f39}:host ::ng-deep .sameLine-list{display:inline;list-style:none;padding:0}:host ::ng-deep .sameLine-list li{display:inline;padding:3px}\n"], dependencies: [{ kind: "component", type: i3.FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i7.FoehnHelpModalComponent, selector: "foehn-help-modal", inputs: ["modalContent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.SdkDictionaryPipe, name: "fromDictionary" }] });
|
|
254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputNumberComponent, decorators: [{
|
|
255
|
+
type: Component,
|
|
256
|
+
args: [{ selector: 'foehn-input-number', providers: [
|
|
257
|
+
{
|
|
258
|
+
provide: FoehnInputComponent,
|
|
259
|
+
useExisting: forwardRef(() => FoehnInputNumberComponent),
|
|
260
|
+
multi: true
|
|
261
|
+
}
|
|
262
|
+
], template: "<div\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <div class=\"d-flex justify-content-between\">\n <label\n style=\"display: inline-block\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <input\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n [class.clearable-input]=\"displayClearButton() | async\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.maxlength]=\"getMaxLength()\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [attr.autocapitalize]=\"autocapitalize\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.type]=\"type\"\n [attr.pattern]=\"pattern\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (paste)=\"onPaste($event)\"\n (ngModelChange)=\"updateNgModel($event)\"\n (input)=\"handleChange(entryComponent.value)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n #entryComponent\n />\n\n <button\n type=\"button\"\n [id]=\"buildChildId() + 'ClearButton'\"\n *ngIf=\"displayClearButton() | async\"\n class=\"clearable-input-clear-button btn\"\n (click)=\"onClear()\"\n >\n <foehn-icon-times\n class=\"clearable-input-clear-button-icon\"\n title=\"R\u00E9initialiser le champs\"\n ></foehn-icon-times>\n </button>\n</div>\n", styles: ["input::-ms-clear{display:none}input.clearable-input{padding-right:30px}.clearable-input-form-group{position:relative}:host ::ng-deep foehn-help-modal>.btn{padding-top:0!important;margin-top:0!important}.clearable-input-clear-button{position:absolute;bottom:4px;right:4px;height:30px;width:30px;background:none;border:none}.clearable-input-clear-button-icon{top:4px;right:8px;position:absolute}:host ::ng-deep .clearable-input-clear-button.btn .svg-inline--fa{color:#595959!important}:host ::ng-deep .clearable-input-clear-button.btn:hover .svg-inline--fa{color:#000!important}.chars-remaining{color:#757575;font-size:.9rem}.char-count-exceeded{color:#c21f39}:host ::ng-deep .sameLine-list{display:inline;list-style:none;padding:0}:host ::ng-deep .sameLine-list li{display:inline;padding:3px}\n"] }]
|
|
263
|
+
}], ctorParameters: function () { return [{ type: i1.CurrencyHelper }, { type: i2.SdkDictionaryService }]; }, propDecorators: { hideStandardHelpText: [{
|
|
264
|
+
type: Input
|
|
265
|
+
}], allowDecimal: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}], allowNegative: [{
|
|
268
|
+
type: Input
|
|
269
|
+
}], maxDecimalCount: [{
|
|
270
|
+
type: Input
|
|
271
|
+
}], allowFreeInput: [{
|
|
272
|
+
type: Input
|
|
273
|
+
}], model: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}] } });
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFJUixNQUFNLGVBQWUsQ0FBQztBQUV2QiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNILHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ3RCLE1BQU0sNENBQTRDLENBQUM7QUFDcEQsT0FBTyxFQUVILGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IsMENBQTBDLEVBQzFDLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDdkIsb0NBQW9DLEVBQ3BDLHdCQUF3QixFQUN4QixlQUFlLEVBQ2xCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7QUFFekIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFhLEVBQVcsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztBQWNyRSxNQUFNLE9BQU8seUJBQ1QsU0FBUSx5QkFBeUI7SUFtQmpDLFlBQ1ksY0FBOEIsRUFDOUIsaUJBQXVDO1FBRS9DLEtBQUssRUFBRSxDQUFDO1FBSEEs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QTZDLEVBQzdDO1lBQ0ksUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztTQUMxQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQXNCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixPQUFPLHFCQUFxQixDQUN4QixLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQ2pCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FDdEIsQ0FBQztTQUNMO1FBQ0QsT0FBTyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDOztzSEF6U1EseUJBQXlCOzBHQUF6Qix5QkFBeUIsMlBBUnZCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7WUFDeEQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLHNFQy9DTCxpd0ZBaUZBOzJGRGhDYSx5QkFBeUI7a0JBWnJDLFNBQVM7K0JBQ0ksb0JBQW9CLGFBR25CO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjt3SUFNRCxvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQWtCRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHtcbiAgICBmb3JtYXREZWNpbWFsQ3VycmVuY3ksXG4gICAgZm9ybWF0Tm9uRGVjaW1hbEN1cnJlbmN5LFxuICAgIGZvcm1hdE51bWJlckFzR2l2ZW5cbn0gZnJvbSAnLi4vZGlyZWN0aXZlcy9jdXJyZW5jeS1mb3JtYXR0ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgQ3VycmVuY3lIZWxwZXIsXG4gICAgREVDSU1BTFNfU0VQQVJBVE9SXG59IGZyb20gJy4uL3Nkay1jdXJyZW5jeS9jdXJyZW5jeS5oZWxwZXInO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VobklucHV0U3RyaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC1zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgQ0xFQU5fREVDSU1BTF9OVU1CRVJTX1BBVFRFUk4sXG4gICAgQ0xFQU5fTkVHQVRJVkVfQU5EX0RFQ0lNQUxfTlVNQkVSU19QQVRURVJOLFxuICAgIENMRUFOX05FR0FUSVZFX05VTUJFUlNfUEFUVEVSTixcbiAgICBDTEVBTl9OVU1CRVJTX1BBVFRFUk4sXG4gICAgREVDSU1BTF9OVU1CRVJTX1BBVFRFUk4sXG4gICAgSFRNTF9ERUNJTUFMX1BBVFRFUk4sXG4gICAgSFRNTF9OT19ERUNJTUFMX1BBVFRFUk4sXG4gICAgTkVHQVRJVkVfQU5EX0RFQ0lNQUxfTlVNQkVSU19QQVRURVJOLFxuICAgIE5FR0FUSVZFX05VTUJFUlNfUEFUVEVSTixcbiAgICBOVU1CRVJTX1BBVFRFUk5cbn0gZnJvbSAnLi9wYXR0ZXJuLmNvbnN0JztcblxuY29uc3QgaXNEZWZpbmVkID0gKHZhbHVlOiBudW1iZXIpOiBib29sZWFuID0+IHZhbHVlID09PSAwIHx8ICEhdmFsdWU7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4taW5wdXQtbnVtYmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuSW5wdXROdW1iZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5JbnB1dE51bWJlckNvbXBvbmVudFxuICAgIGV4dGVuZHMgRm9laG5JbnB1dFN0cmluZ0NvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpXG4gICAgaGlkZVN0YW5kYXJkSGVscFRleHQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dEZWNpbWFsOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBhbGxvd05lZ2F0aXZlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBtYXhEZWNpbWFsQ291bnQgPSAyO1xuXG4gICAgQElucHV0KClcbiAgICBhbGxvd0ZyZWVJbnB1dCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsSGVscFRleHQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGN1cnJlbmN5SGVscGVyOiBDdXJyZW5jeUhlbHBlcixcbiAgICAgICAgcHJpdmF0ZSBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBnZXQgbW9kZWwoKTogc3RyaW5nIHtcbiAgICAgICAgLy8gSWYgdGhlIHNldHRlciBpcyBvdmVycmlkZGVuLCBpdCdzIGNyaXRpY2FsIHRvIG92ZXJyaWRlIHRoZSBnZXR0ZXIgdG9vLlxuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbF87XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbW9kZWwodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyBUaGlzIGRvZXNuJ3QgdHJpZ2dlciB0aGUgY29tcG9uZW50J3MgdmVyc2lvbiBvZiB1cGRhdGVOZ01vZGVsIHN0cmFpdCBhd2F5IGFzIHRoaXMgbWlnaHRcbiAgICAgICAgLy8gYmUgY2FsbGVkIGJlZm9yZSBhbGxvd0RlY2ltYWwgb3IgYWxsb3dOZWdhdGl2ZSBhcmUgcHJvcGVybHkgc2V0IChiZWZvcmUgdGhlIGluaXQgbGlmZWN5Y2xlXG4gICAgICAgIC8vIG9mIHRoZSBjb21wb25lbnQpLiBUaGlzIGlzIGNyaXRpY2FsIHRvIG5vdCByZS1mb3JtYXQgdGhlIGlucHV0IGJlZm9yZSB0aGUgT25Jbml0LCBvdGhlcndpc2VcbiAgICAgICAgLy8gd2UgbWlnaHQgZW5kIHVwIHdpdGggaW52YWxpZCB2YWx1ZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuIHRoaXMudXBkYXRlTmdNb2RlbCBpcyBjYWxsZWQgaW1wbGljaXRseVxuICAgICAgICAvLyBhcyBzdXBlci51cGRhdGVOZ01vZGVsIHdpbGwgZW1pdCBhIGNoYW5nZSBvbiB0aGlzLm1vZGVsQ2hhbmdlLlxuICAgICAgICAvLyBGSVhNRSB0aGlzIGlzIGEgaGFjayBhbmQgc2hvdWxkIGJlIHJlZmFjdG9yZWQuXG4gICAgICAgIHN1cGVyLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMudHlwZSA9ICd0ZXh0JztcblxuICAgICAgICAvLyBQYXR0ZXJuIHVzZWQgb25seSBmb3IgbnVtcGFkIHRyaWdnZXIgb24gbW9iaWxlIHBob25lc1xuICAgICAgICB0aGlzLnBhdHRlcm4gPSB0aGlzLmFsbG93RGVjaW1hbFxuICAgICAgICAgICAgPyBIVE1MX0RFQ0lNQUxfUEFUVEVSTlxuICAgICAgICAgICAgOiBIVE1MX05PX0RFQ0lNQUxfUEFUVEVSTjtcblxuICAgICAgICB0aGlzLm1heGxlbmd0aCA9ICEhdGhpcy5tYXhsZW5ndGggPyB0aGlzLm1heGxlbmd0aCA6IDk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBoYXNDaGFuZ2VzID0gT2JqZWN0LmtleXMoY2hhbmdlcylcbiAgICAgICAgICAgIC5maWx0ZXIoayA9PiBrICE9PSAnbW9kZWwnKVxuICAgICAgICAgICAgLm1hcChrID0+IGNoYW5nZXNba10pXG4gICAgICAgICAgICAuZmluZChjaGFuZ2UgPT4gY2hhbmdlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlLnByZXZpb3VzVmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IGhlbHBUZXh0SGFzQ2hhbmdlZCA9XG4gICAgICAgICAgICBjaGFuZ2VzLmhlbHBUZXh0Py5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuaGVscFRleHQ/LnByZXZpb3VzVmFsdWU7XG5cbiAgICAgICAgaWYgKGhlbHBUZXh0SGFzQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsSGVscFRleHQgPSBjaGFuZ2VzLmhlbHBUZXh0LmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNDaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZUhlbHBUZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRNYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuYWxsb3dGcmVlSW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRNYXhMZW5ndGgoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVOZ01vZGVsKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VG9FbXB0eSh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNEZWxldGluZyA9IHZhbHVlLnRvU3RyaW5nKCk/Lmxlbmd0aCA8IHRoaXMubW9kZWw/Lmxlbmd0aDtcblxuICAgICAgICBsZXQgY2xlYW5OdW1iZXI7XG4gICAgICAgIGlmICghdGhpcy5hbGxvd0ZyZWVJbnB1dCkge1xuICAgICAgICAgICAgY2xlYW5OdW1iZXIgPSB0aGlzLmdldENsZWFuTnVtYmVyKHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgY29uc3QgaXNNb2RlbFZhbGlkID0gdGhpcy5pc01vZGVsVmFsaWQoY2xlYW5OdW1iZXIpO1xuICAgICAgICAgICAgaWYgKCFpc01vZGVsVmFsaWQgJiYgIWlzRGVsZXRpbmcpIHtcbiAgICAgICAgICAgICAgICBjbGVhbk51bWJlciA9IHRoaXMubW9kZWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub0NvbW1hU3RyaW5nID0gdGhpcy5yZXBsYWNlQ29tbWFXaXRoRG90KHZhbHVlKTtcbiAgICAgICAgICAgIGNsZWFuTnVtYmVyID1cbiAgICAgICAgICAgICAgICBub0NvbW1hU3RyaW5nICYmIHR5cGVvZiBub0NvbW1hU3RyaW5nID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgICAgICA/IG5vQ29tbWFTdHJpbmcucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xFQU5fTkVHQVRJVkVfQU5EX0RFQ0lNQUxfTlVNQkVSU19QQVRURVJOLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiBub0NvbW1hU3RyaW5nO1xuICAgICAgICAgICAgLy8gY2hlY2sgdGhhdCBpdCBpcyBhIG51bWJlciBpbiBhbnkgb2YgaXRzIHBvc3NpYmxlIGZvcm1cbiAgICAgICAgICAgIC8vIHRvIGF2b2lkIC0zLjE0LTIzLS01MzRcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhTkVHQVRJVkVfQU5EX0RFQ0lNQUxfTlVNQkVSU19QQVRURVJOLnRlc3QoY2xlYW5OdW1iZXIpICYmXG4gICAgICAgICAgICAgICAgIWlzRGVsZXRpbmdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNsZWFuTnVtYmVyID0gdGhpcy5tb2RlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLnVwZGF0ZU5nTW9kZWwoY2xlYW5OdW1iZXIpO1xuXG4gICAgICAgIC8vIE5lZWQgdG8gdXBkYXRlIEhUTUwgaW5wdXQgdmFsdWUgYmVjYXVzZSB3ZSBsZXQgdXNlciBpbnB1dCB3aGF0IGhlIHdhbnRzIGFuZCB0aGVuIHdlIGNsZWFuIG1vZGVsXG4gICAgICAgIHRoaXMudXBkYXRlSW5wdXRFbGVtZW50VmFsdWUoY2xlYW5OdW1iZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRvIGJlIHVzZWQgZm9yIHBvc3QtZm9ybWF0dGluZyBieSBkaXJlY3RpdmVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIG9mIG1vZGVsXG4gICAgICovXG4gICAgZm9yY2VVcGRhdGVOZ01vZGVsKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlbF8gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dEVsZW1lbnRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1N0cmluZ0FWYWxpZE51bWJlcih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkYXRpb25SZWdleCgpLnRlc3QodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNNb2RlbFZhbGlkKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTdHJpbmdBVmFsaWROdW1iZXIodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmFsaWRhdGlvblJlZ2V4KGlzRm9yQ2xlYW46IGJvb2xlYW4gPSBmYWxzZSk6IFJlZ0V4cCB7XG4gICAgICAgIGlmICh0aGlzLmFsbG93RGVjaW1hbCB8fCB0aGlzLmFsbG93TmVnYXRpdmUpIHtcbiAgICAgICAgICAgIC8vIEFsbG93IGRlY2ltYWwgYW5kIG5lZ2F0aXZlXG4gICAgICAgICAgICBpZiAodGhpcy5hbGxvd0RlY2ltYWwgJiYgdGhpcy5hbGxvd05lZ2F0aXZlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0ZvckNsZWFuXG4gICAgICAgICAgICAgICAgICAgID8gTkVHQVRJVkVfQU5EX0RFQ0lNQUxfTlVNQkVSU19QQVRURVJOXG4gICAgICAgICAgICAgICAgICAgIDogQ0xFQU5fTkVHQVRJVkVfQU5EX0RFQ0lNQUxfTlVNQkVSU19QQVRURVJOO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQWxsb3cgZGVjaW1hbFxuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dEZWNpbWFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0ZvckNsZWFuXG4gICAgICAgICAgICAgICAgICAgID8gREVDSU1BTF9OVU1CRVJTX1BBVFRFUk5cbiAgICAgICAgICAgICAgICAgICAgOiBDTEVBTl9ERUNJTUFMX05VTUJFUlNfUEFUVEVSTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEFsbG93IG5lZ2F0aXZlXG4gICAgICAgICAgICByZXR1cm4gIWlzRm9yQ2xlYW5cbiAgICAgICAgICAgICAgICA/IE5FR0FUSVZFX05VTUJFUlNfUEFUVEVSTlxuICAgICAgICAgICAgICAgIDogQ0xFQU5fTkVHQVRJVkVfTlVNQkVSU19QQVRURVJOO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhaXNGb3JDbGVhbiA/IE5VTUJFUlNfUEFUVEVSTiA6IENMRUFOX05VTUJFUlNfUEFUVEVSTjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlcGxhY2VDb21tYVdpdGhEb3QodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgnLCcsICdnJyksIERFQ0lNQUxTX1NFUEFSQVRPUilcbiAgICAgICAgICAgIDogdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVOb25OdW1lcmljQ2hhcmFjdGVycyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8gdmFsdWUucmVwbGFjZSh0aGlzLmdldFZhbGlkYXRpb25SZWdleCh0cnVlKSwgJycpXG4gICAgICAgICAgICA6IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5EZWNpbWFscyhcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgc2VwYXJhdG9yOiBzdHJpbmcgPSBERUNJTUFMU19TRVBBUkFUT1JcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXZhbHVlIHx8ICF0aGlzLmFsbG93RGVjaW1hbCB8fCAhdmFsdWUuaW5jbHVkZXMoc2VwYXJhdG9yKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW2ludGcsIGRlY10gPSB2YWx1ZS5zcGxpdChzZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCBjbGVhbkRlYyA9IGRlYy5zdWJzdHJpbmcoMCwgdGhpcy5tYXhEZWNpbWFsQ291bnQpO1xuXG4gICAgICAgIHJldHVybiBpbnRnICsgc2VwYXJhdG9yICsgY2xlYW5EZWM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDbGVhbk51bWJlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgbm9Db21tYVN0cmluZyA9IHRoaXMucmVwbGFjZUNvbW1hV2l0aERvdCh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGNsZWFuRGVjaW1hbHMgPSB0aGlzLmNsZWFuRGVjaW1hbHMobm9Db21tYVN0cmluZyk7XG4gICAgICAgIGNvbnN0IGNsZWFuTnVtYmVyID0gdGhpcy5yZW1vdmVOb25OdW1lcmljQ2hhcmFjdGVycyhjbGVhbkRlY2ltYWxzKTtcblxuICAgICAgICBpZiAoY2xlYW5OdW1iZXIgJiYgY2xlYW5OdW1iZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xlYW5OdW1iZXIuc3Vic3RyaW5nKDAsIHRoaXMuZ2V0TWF4TGVuZ3RoKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNsZWFuTnVtYmVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSW5wdXRFbGVtZW50VmFsdWUoY2xlYW5OdW1iZXI6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICAvLyBObyBuZWVkIHRvIHVwZGF0ZSB0aGUgbmF0aXZlIGVsZW1lbnQgaWYgaXQgZG9lc24ndCB5ZXQgZXhpc3QuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbnB1dEVsZW1WYWx1ZSA9IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICAgIGlmIChpbnB1dEVsZW1WYWx1ZSAhPT0gY2xlYW5OdW1iZXIpIHtcbiAgICAgICAgICAgIC8vIE5lZWQgdG8gdXBkYXRlIEhUTUwgaW5wdXQgdmFsdWUgYmVjYXVzZSB3ZSBsZXQgdXNlciBpbnB1dCB3aGF0IGhlIHdhbnRzIGFuZCB0aGVuIHdlIGNsZWFuIG1vZGVsXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gY2xlYW5OdW1iZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFRvRW1wdHkodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBFbXB0eSBtZWFucyBudWxsLCBvdGhlcndpc2UgdGhlIGJhY2tlbmQgZG9lc24ndCBoYW5kbGUgbnVtYmVycyBwcm9wZXJseS4gV2UgaGF2ZSB0byBrZWVwICd1bmRlZmluZWQnXG4gICAgICAgIC8vIGlmICd1bmRlZmluZWQnIG90aGVyd2lzZSBBbmd1bGFyIGNvbXBsYWlucyBhYm91dCB0aGUgdmFsdWUgb2YgdGhlIG1vZGVsIGJlaW5nIGNoYW5nZWQgd2l0aG91dCB1cGRhdGluZ1xuICAgICAgICAvLyB0aGUgdmlldy5cbiAgICAgICAgY29uc3QgZW1wdHlWYWx1ZSA9IHZhbHVlID09PSAnJyA/IG51bGwgOiB2YWx1ZTtcbiAgICAgICAgc3VwZXIudXBkYXRlTmdNb2RlbChlbXB0eVZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dEVsZW1lbnRWYWx1ZShlbXB0eVZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZUhlbHBUZXh0KCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLmhpZGVTdGFuZGFyZEhlbHBUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmhlbHBUZXh0ID0gdGhpcy5pbml0aWFsSGVscFRleHQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuYWxsb3dGcmVlSW5wdXQpIHtcbiAgICAgICAgICAgIGlmIChpc0RlZmluZWQodGhpcy5taW4pICYmIGlzRGVmaW5lZCh0aGlzLm1heCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoISF0aGlzLmluaXRpYWxIZWxwVGV4dD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGVscFRleHQgPSBgJHt0aGlzLmluaXRpYWxIZWxwVGV4dH08YnIvPmA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWxwVGV4dCA9ICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmhlbHBUZXh0ICs9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5U3luYyhcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWlucHV0LW51bWJlci5zdGFuZGFyZC1oZWxwLXRleHQubGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5WYWx1ZTogZm9ybWF0TnVtYmVyQXNHaXZlbih0aGlzLm1pbi50b1N0cmluZygpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heFZhbHVlOiBmb3JtYXROdW1iZXJBc0dpdmVuKHRoaXMubWF4LnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy5pbml0aWFsSGVscFRleHQ/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5oZWxwVGV4dCA9IGAke3RoaXMuaW5pdGlhbEhlbHBUZXh0fTxici8+YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGVscFRleHQgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1heEludGVnZXJDb3VudCA9IHRoaXMuYWxsb3dEZWNpbWFsXG4gICAgICAgICAgICA/IHRoaXMubWF4bGVuZ3RoIC0gdGhpcy5tYXhEZWNpbWFsQ291bnQgLSAxXG4gICAgICAgICAgICA6IHRoaXMubWF4bGVuZ3RoO1xuXG4gICAgICAgIGxldCBtYXhBc1N0cmluZztcbiAgICAgICAgaWYgKCEhdGhpcy5tYXgpIHtcbiAgICAgICAgICAgIG1heEFzU3RyaW5nID0gdGhpcy5tYXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXhBc1N0cmluZyA9ICc5Jy5yZXBlYXQobWF4SW50ZWdlckNvdW50KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFsbG93RGVjaW1hbCkge1xuICAgICAgICAgICAgICAgIG1heEFzU3RyaW5nICs9IGAuJHsnOScucmVwZWF0KHRoaXMubWF4RGVjaW1hbENvdW50KX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1pbkFzU3RyaW5nO1xuICAgICAgICBpZiAodGhpcy5taW4pIHtcbiAgICAgICAgICAgIG1pbkFzU3RyaW5nID0gdGhpcy5taW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtaW5Bc1N0cmluZyA9IHRoaXMuYWxsb3dOZWdhdGl2ZVxuICAgICAgICAgICAgICAgID8gYC0keyc5Jy5yZXBlYXQobWF4SW50ZWdlckNvdW50IC0gMSl9YFxuICAgICAgICAgICAgICAgIDogJzAnO1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dEZWNpbWFsKSB7XG4gICAgICAgICAgICAgICAgbWluQXNTdHJpbmcgKz0gdGhpcy5hbGxvd05lZ2F0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gYC4keyc5Jy5yZXBlYXQodGhpcy5tYXhEZWNpbWFsQ291bnQgfHwgMCl9YFxuICAgICAgICAgICAgICAgICAgICA6IGAuJHsnMCcucmVwZWF0KHRoaXMubWF4RGVjaW1hbENvdW50IHx8IDApfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhlbHBUZXh0ICs9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5U3luYyhcbiAgICAgICAgICAgICdmb2Vobi1pbnB1dC1udW1iZXIuc3RhbmRhcmQtaGVscC10ZXh0LmxhYmVsJyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtaW5WYWx1ZTogdGhpcy5mb3JtYXRWYWx1ZShtaW5Bc1N0cmluZyksXG4gICAgICAgICAgICAgICAgbWF4VmFsdWU6IHRoaXMuZm9ybWF0VmFsdWUobWF4QXNTdHJpbmcpXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuYWxsb3dEZWNpbWFsKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGVjaW1hbEN1cnJlbmN5KFxuICAgICAgICAgICAgICAgIHZhbHVlPy50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHRoaXMubWF4RGVjaW1hbENvdW50LFxuICAgICAgICAgICAgICAgIHRoaXMubWF4bGVuZ3RoLFxuICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dGcmVlSW5wdXRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1hdE5vbkRlY2ltYWxDdXJyZW5jeSh2YWx1ZT8udG9TdHJpbmcoKSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cCBjbGVhcmFibGUtaW5wdXQtZm9ybS1ncm91cFwiXG4gICAgW2NsYXNzLmhhcy1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFtjbGFzcy52ZC1mb3JtLWdyb3VwLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGlubGluZS1ibG9ja1wiXG4gICAgICAgICAgICBbYXR0ci5mb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAgICAgKm5nSWY9XCJsYWJlbCAmJiB0eXBlICE9PSAnaGlkZGVuJ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3NyLW9ubHknIDogbGFiZWxTdHlsZU1vZGlmaWVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhcmVxdWlyZWQgJiYgIWhpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWxcIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgJ2ZvZWhuLWlucHV0Lm9wdGlvbmFsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPGZvZWhuLWhlbHAtbW9kYWxcbiAgICAgICAgICAgIGNsYXNzPVwicmVtb3ZlUGFkZGluZ0J1dHRvblwiXG4gICAgICAgICAgICAqbmdJZj1cIiEhaGVscE1vZGFsXCJcbiAgICAgICAgICAgIFttb2RhbENvbnRlbnRdPVwiaGVscE1vZGFsXCJcbiAgICAgICAgPjwvZm9laG4taGVscC1tb2RhbD5cbiAgICA8L2Rpdj5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0cyBbY29tcG9uZW50XT1cInRoaXNcIj48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHQgJiYgdHlwZSAhPT0gJ2hpZGRlbidcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8aW5wdXRcbiAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgaGFzSW5oZXJpdEVycm9yRnJvbVBhcmVudCgpXCJcbiAgICAgICAgW2NsYXNzLmNsZWFyYWJsZS1pbnB1dF09XCJkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cImdldE1heExlbmd0aCgpXCJcbiAgICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImdldEF1dG9Db21wbGV0ZSgpXCJcbiAgICAgICAgW2F0dHIuYXV0b2NhcGl0YWxpemVdPVwiYXV0b2NhcGl0YWxpemVcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgICAgW2F0dHIucGF0dGVybl09XCJwYXR0ZXJuXCJcbiAgICAgICAgW2F0dHIubWluXT1cIm1pblwiXG4gICAgICAgIFthdHRyLm1heF09XCJtYXhcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCB8fCBudWxsXCJcbiAgICAgICAgW25nTW9kZWxdPVwibW9kZWxcIlxuICAgICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTmdNb2RlbCgkZXZlbnQpXCJcbiAgICAgICAgKGlucHV0KT1cImhhbmRsZUNoYW5nZShlbnRyeUNvbXBvbmVudC52YWx1ZSlcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgIC8+XG5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnQ2xlYXJCdXR0b24nXCJcbiAgICAgICAgKm5nSWY9XCJkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXCJcbiAgICAgICAgY2xhc3M9XCJjbGVhcmFibGUtaW5wdXQtY2xlYXItYnV0dG9uIGJ0blwiXG4gICAgICAgIChjbGljayk9XCJvbkNsZWFyKClcIlxuICAgID5cbiAgICAgICAgPGZvZWhuLWljb24tdGltZXNcbiAgICAgICAgICAgIGNsYXNzPVwiY2xlYXJhYmxlLWlucHV0LWNsZWFyLWJ1dHRvbi1pY29uXCJcbiAgICAgICAgICAgIHRpdGxlPVwiUsOpaW5pdGlhbGlzZXIgbGUgY2hhbXBzXCJcbiAgICAgICAgPjwvZm9laG4taWNvbi10aW1lcz5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Component, forwardRef } from '@angular/core';
|
|
2
|
+
import { first } from 'rxjs/operators';
|
|
3
|
+
import { FoehnInputComponent } from './foehn-input.component';
|
|
4
|
+
import { FoehnInputStringComponent } from './foehn-input-string.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../foehn-icons/foehn-icon-times.component";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@angular/forms";
|
|
9
|
+
import * as i4 from "../foehn-validation-alerts/foehn-validation-alerts.component";
|
|
10
|
+
import * as i5 from "../foehn-help-modal/foehn-help-modal.component";
|
|
11
|
+
import * as i6 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
12
|
+
export class FoehnInputPasswordComponent extends FoehnInputStringComponent {
|
|
13
|
+
constructor(ngZone) {
|
|
14
|
+
super();
|
|
15
|
+
this.ngZone = ngZone;
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
super.ngOnInit();
|
|
19
|
+
this.type = 'password';
|
|
20
|
+
this.autocomplete = 'current-password';
|
|
21
|
+
}
|
|
22
|
+
onModelChange(value) {
|
|
23
|
+
if (value === undefined || !!value) {
|
|
24
|
+
this.updateNgModel(value);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
28
|
+
this.ngZone.onMicrotaskEmpty.pipe(first()).subscribe(() => {
|
|
29
|
+
this.updateNgModel(null);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
FoehnInputPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputPasswordComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
FoehnInputPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: FoehnInputPasswordComponent, selector: "foehn-input-password", providers: [
|
|
36
|
+
{
|
|
37
|
+
provide: FoehnInputComponent,
|
|
38
|
+
useExisting: forwardRef(() => FoehnInputPasswordComponent),
|
|
39
|
+
multi: true
|
|
40
|
+
}
|
|
41
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <div class=\"d-flex justify-content-between\">\n <label\n style=\"display: inline-block\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <input\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n [class.clearable-input]=\"displayClearButton() | async\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.maxlength]=\"getMaxLength()\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [attr.autocapitalize]=\"autocapitalize\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.type]=\"type\"\n [attr.pattern]=\"pattern\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (paste)=\"onPaste($event)\"\n (ngModelChange)=\"updateNgModel($event)\"\n (input)=\"handleChange(entryComponent.value)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n #entryComponent\n />\n\n <button\n type=\"button\"\n [id]=\"buildChildId() + 'ClearButton'\"\n *ngIf=\"displayClearButton() | async\"\n class=\"clearable-input-clear-button btn\"\n (click)=\"onClear()\"\n >\n <foehn-icon-times\n class=\"clearable-input-clear-button-icon\"\n title=\"R\u00E9initialiser le champs\"\n ></foehn-icon-times>\n </button>\n</div>\n", styles: ["input::-ms-clear{display:none}input.clearable-input{padding-right:30px}.clearable-input-form-group{position:relative}:host ::ng-deep foehn-help-modal>.btn{padding-top:0!important;margin-top:0!important}.clearable-input-clear-button{position:absolute;bottom:4px;right:4px;height:30px;width:30px;background:none;border:none}.clearable-input-clear-button-icon{top:4px;right:8px;position:absolute}:host ::ng-deep .clearable-input-clear-button.btn .svg-inline--fa{color:#595959!important}:host ::ng-deep .clearable-input-clear-button.btn:hover .svg-inline--fa{color:#000!important}.chars-remaining{color:#757575;font-size:.9rem}.char-count-exceeded{color:#c21f39}:host ::ng-deep .sameLine-list{display:inline;list-style:none;padding:0}:host ::ng-deep .sameLine-list li{display:inline;padding:3px}\n"], dependencies: [{ kind: "component", type: i1.FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i5.FoehnHelpModalComponent, selector: "foehn-help-modal", inputs: ["modalContent"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.SdkDictionaryPipe, name: "fromDictionary" }] });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputPasswordComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'foehn-input-password', providers: [
|
|
45
|
+
{
|
|
46
|
+
provide: FoehnInputComponent,
|
|
47
|
+
useExisting: forwardRef(() => FoehnInputPasswordComponent),
|
|
48
|
+
multi: true
|
|
49
|
+
}
|
|
50
|
+
], template: "<div\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <div class=\"d-flex justify-content-between\">\n <label\n style=\"display: inline-block\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <input\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n [class.clearable-input]=\"displayClearButton() | async\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.maxlength]=\"getMaxLength()\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [attr.autocapitalize]=\"autocapitalize\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.type]=\"type\"\n [attr.pattern]=\"pattern\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (paste)=\"onPaste($event)\"\n (ngModelChange)=\"updateNgModel($event)\"\n (input)=\"handleChange(entryComponent.value)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n #entryComponent\n />\n\n <button\n type=\"button\"\n [id]=\"buildChildId() + 'ClearButton'\"\n *ngIf=\"displayClearButton() | async\"\n class=\"clearable-input-clear-button btn\"\n (click)=\"onClear()\"\n >\n <foehn-icon-times\n class=\"clearable-input-clear-button-icon\"\n title=\"R\u00E9initialiser le champs\"\n ></foehn-icon-times>\n </button>\n</div>\n", styles: ["input::-ms-clear{display:none}input.clearable-input{padding-right:30px}.clearable-input-form-group{position:relative}:host ::ng-deep foehn-help-modal>.btn{padding-top:0!important;margin-top:0!important}.clearable-input-clear-button{position:absolute;bottom:4px;right:4px;height:30px;width:30px;background:none;border:none}.clearable-input-clear-button-icon{top:4px;right:8px;position:absolute}:host ::ng-deep .clearable-input-clear-button.btn .svg-inline--fa{color:#595959!important}:host ::ng-deep .clearable-input-clear-button.btn:hover .svg-inline--fa{color:#000!important}.chars-remaining{color:#757575;font-size:.9rem}.char-count-exceeded{color:#c21f39}:host ::ng-deep .sameLine-list{display:inline;list-style:none;padding:0}:host ::ng-deep .sameLine-list li{display:inline;padding:3px}\n"] }]
|
|
51
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LXBhc3N3b3JkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7OztBQWMzRSxNQUFNLE9BQU8sMkJBQ1QsU0FBUSx5QkFBeUI7SUFFakMsWUFBb0IsTUFBYztRQUM5QixLQUFLLEVBQUUsQ0FBQztRQURRLFdBQU0sR0FBTixNQUFNLENBQVE7SUFFbEMsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0gsMERBQTBEO1lBQzFELElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQzs7d0hBdEJRLDJCQUEyQjs0R0FBM0IsMkJBQTJCLCtDQVJ6QjtRQUNQO1lBQ0ksT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBQzFELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixpRENoQkwsaXdGQWlGQTsyRkQvRGEsMkJBQTJCO2tCQVp2QyxTQUFTOytCQUNJLHNCQUFzQixhQUdyQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIE5nWm9uZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWlucHV0LXN0cmluZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWlucHV0LXBhc3N3b3JkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuSW5wdXRQYXNzd29yZENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobklucHV0UGFzc3dvcmRDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnR5cGUgPSAncGFzc3dvcmQnO1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZSA9ICdjdXJyZW50LXBhc3N3b3JkJztcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgISF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIHRoaXMubmdab25lLm9uTWljcm90YXNrRW1wdHkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cCBjbGVhcmFibGUtaW5wdXQtZm9ybS1ncm91cFwiXG4gICAgW2NsYXNzLmhhcy1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFtjbGFzcy52ZC1mb3JtLWdyb3VwLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGlubGluZS1ibG9ja1wiXG4gICAgICAgICAgICBbYXR0ci5mb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAgICAgKm5nSWY9XCJsYWJlbCAmJiB0eXBlICE9PSAnaGlkZGVuJ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3NyLW9ubHknIDogbGFiZWxTdHlsZU1vZGlmaWVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhcmVxdWlyZWQgJiYgIWhpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWxcIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgJ2ZvZWhuLWlucHV0Lm9wdGlvbmFsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPGZvZWhuLWhlbHAtbW9kYWxcbiAgICAgICAgICAgIGNsYXNzPVwicmVtb3ZlUGFkZGluZ0J1dHRvblwiXG4gICAgICAgICAgICAqbmdJZj1cIiEhaGVscE1vZGFsXCJcbiAgICAgICAgICAgIFttb2RhbENvbnRlbnRdPVwiaGVscE1vZGFsXCJcbiAgICAgICAgPjwvZm9laG4taGVscC1tb2RhbD5cbiAgICA8L2Rpdj5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0cyBbY29tcG9uZW50XT1cInRoaXNcIj48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHQgJiYgdHlwZSAhPT0gJ2hpZGRlbidcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8aW5wdXRcbiAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgaGFzSW5oZXJpdEVycm9yRnJvbVBhcmVudCgpXCJcbiAgICAgICAgW2NsYXNzLmNsZWFyYWJsZS1pbnB1dF09XCJkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cImdldE1heExlbmd0aCgpXCJcbiAgICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImdldEF1dG9Db21wbGV0ZSgpXCJcbiAgICAgICAgW2F0dHIuYXV0b2NhcGl0YWxpemVdPVwiYXV0b2NhcGl0YWxpemVcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgICAgW2F0dHIucGF0dGVybl09XCJwYXR0ZXJuXCJcbiAgICAgICAgW2F0dHIubWluXT1cIm1pblwiXG4gICAgICAgIFthdHRyLm1heF09XCJtYXhcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCB8fCBudWxsXCJcbiAgICAgICAgW25nTW9kZWxdPVwibW9kZWxcIlxuICAgICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTmdNb2RlbCgkZXZlbnQpXCJcbiAgICAgICAgKGlucHV0KT1cImhhbmRsZUNoYW5nZShlbnRyeUNvbXBvbmVudC52YWx1ZSlcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgIC8+XG5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnQ2xlYXJCdXR0b24nXCJcbiAgICAgICAgKm5nSWY9XCJkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXCJcbiAgICAgICAgY2xhc3M9XCJjbGVhcmFibGUtaW5wdXQtY2xlYXItYnV0dG9uIGJ0blwiXG4gICAgICAgIChjbGljayk9XCJvbkNsZWFyKClcIlxuICAgID5cbiAgICAgICAgPGZvZWhuLWljb24tdGltZXNcbiAgICAgICAgICAgIGNsYXNzPVwiY2xlYXJhYmxlLWlucHV0LWNsZWFyLWJ1dHRvbi1pY29uXCJcbiAgICAgICAgICAgIHRpdGxlPVwiUsOpaW5pdGlhbGlzZXIgbGUgY2hhbXBzXCJcbiAgICAgICAgPjwvZm9laG4taWNvbi10aW1lcz5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Component, forwardRef, Input } from '@angular/core';
|
|
2
|
+
import { FoehnInputComponent } from './foehn-input.component';
|
|
3
|
+
import { FoehnInputStringComponent } from './foehn-input-string.component';
|
|
4
|
+
import { HTML_PHONE_PATTERN } from './pattern.const';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../foehn-icons/foehn-icon-times.component";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@angular/forms";
|
|
9
|
+
import * as i4 from "../foehn-validation-alerts/foehn-validation-alerts.component";
|
|
10
|
+
import * as i5 from "../foehn-help-modal/foehn-help-modal.component";
|
|
11
|
+
import * as i6 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
12
|
+
export const DEFAULT_INTERNATIONAL_AND_NO_SWISS = "Préfixer avec l'indicatif de votre pays (ex : <ul class='sameLine-list'>" +
|
|
13
|
+
'<li>+33612345678,</li><li>+49 123 456 78 901 ou</li><li>+39 312 345 6789</li></ul>)';
|
|
14
|
+
export const DEFAULT_INTERNATIONAL_AND_NO_SWISS_PHONE = "Préfixer avec l'indicatif de votre pays (ex : <ul class='sameLine-list'>" +
|
|
15
|
+
'<li>+41791234567,</li><li>0041 78 123 45 56 ou</li><li>+33 6 12 34 56 78</li></ul>)';
|
|
16
|
+
export const DEFAULT_INTERNATIONAL_AND_NO_SWISS_MOBILE = "Préfixer avec l'indicatif de votre pays (ex : <ul class='sameLine-list'>" +
|
|
17
|
+
'<li>+41211234567,</li><li>0041 21 123 45 56 ou</li><li>+33 6 12 34 56 78</li></ul>)';
|
|
18
|
+
export const DEFAULT_INTERNATIONAL_HELP_TEXT = "Préfixer avec l'indicatif de votre pays (ex : <ul class='sameLine-list'>" +
|
|
19
|
+
'<li>+41791234567,</li><li>+41 22 012 34 56,</li><li>0041 79 012 34 56</li><li>ou +33612345678</li></ul>)';
|
|
20
|
+
export const DEFAULT_SWISS_HELP_TEXT = "ex : <ul class='sameLine-list'><li>079 123 45 67,</li><li>0211234567,</li><li>+41 79 123 45 67 ou</li><li>+41211234567</li></ul>";
|
|
21
|
+
export const DEFAULT_SWISS_PHONE_HELP_TEXT = "ex : <ul class='sameLine-list'><li>0211234567,</li><li>021 123 45 67,</li><li>+41211234567 ou</li><li>+41 21 123 45 67</li></ul>";
|
|
22
|
+
export const DEFAULT_SWISS_MOBILE_PHONE_HELP_TEXT = "ex : <ul class='sameLine-list'><li>0791234567,</li><li>079 123 45 67,</li><li>+41791234567 ou</li><li>+41 79 123 45 67</li></ul>";
|
|
23
|
+
export const BAD_PARAMS_HELP_TEXT = 'Mauvais paramétrage du composant. Un téléphone est soit international, mobile, fixe ou les deux mais pas rien';
|
|
24
|
+
export class FoehnInputPhoneComponent extends FoehnInputStringComponent {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(...arguments);
|
|
27
|
+
this.acceptInternational = false;
|
|
28
|
+
this.acceptMobilePhone = true;
|
|
29
|
+
this.acceptPhone = true;
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
super.ngOnInit();
|
|
33
|
+
this.type = 'tel';
|
|
34
|
+
this.autocomplete = 'tel';
|
|
35
|
+
// Pattern used only for numpad trigger on mobile phones
|
|
36
|
+
this.pattern = HTML_PHONE_PATTERN;
|
|
37
|
+
this.helpText = [this.helpText, this.getHelpText()]
|
|
38
|
+
.filter(val => val)
|
|
39
|
+
.join('<br/>');
|
|
40
|
+
}
|
|
41
|
+
getHelpText() {
|
|
42
|
+
if (this.acceptInternational &&
|
|
43
|
+
!this.acceptPhone &&
|
|
44
|
+
!this.acceptMobilePhone) {
|
|
45
|
+
return DEFAULT_INTERNATIONAL_AND_NO_SWISS;
|
|
46
|
+
}
|
|
47
|
+
if (this.acceptInternational && !this.acceptPhone) {
|
|
48
|
+
return DEFAULT_INTERNATIONAL_AND_NO_SWISS_PHONE;
|
|
49
|
+
}
|
|
50
|
+
if (this.acceptInternational && !this.acceptMobilePhone) {
|
|
51
|
+
return DEFAULT_INTERNATIONAL_AND_NO_SWISS_MOBILE;
|
|
52
|
+
}
|
|
53
|
+
if (this.acceptInternational) {
|
|
54
|
+
return DEFAULT_INTERNATIONAL_HELP_TEXT;
|
|
55
|
+
}
|
|
56
|
+
if (this.acceptMobilePhone && this.acceptPhone) {
|
|
57
|
+
return DEFAULT_SWISS_HELP_TEXT;
|
|
58
|
+
}
|
|
59
|
+
if (this.acceptPhone) {
|
|
60
|
+
return DEFAULT_SWISS_PHONE_HELP_TEXT;
|
|
61
|
+
}
|
|
62
|
+
if (this.acceptMobilePhone) {
|
|
63
|
+
return DEFAULT_SWISS_MOBILE_PHONE_HELP_TEXT;
|
|
64
|
+
}
|
|
65
|
+
return BAD_PARAMS_HELP_TEXT;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
FoehnInputPhoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputPhoneComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
+
FoehnInputPhoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: FoehnInputPhoneComponent, selector: "foehn-input-phone", inputs: { acceptInternational: "acceptInternational", acceptMobilePhone: "acceptMobilePhone", acceptPhone: "acceptPhone" }, providers: [
|
|
70
|
+
{
|
|
71
|
+
provide: FoehnInputComponent,
|
|
72
|
+
useExisting: forwardRef(() => FoehnInputPhoneComponent),
|
|
73
|
+
multi: true
|
|
74
|
+
}
|
|
75
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <div class=\"d-flex justify-content-between\">\n <label\n style=\"display: inline-block\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <input\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n [class.clearable-input]=\"displayClearButton() | async\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.maxlength]=\"getMaxLength()\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [attr.autocapitalize]=\"autocapitalize\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.type]=\"type\"\n [attr.pattern]=\"pattern\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (paste)=\"onPaste($event)\"\n (ngModelChange)=\"updateNgModel($event)\"\n (input)=\"handleChange(entryComponent.value)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n #entryComponent\n />\n\n <button\n type=\"button\"\n [id]=\"buildChildId() + 'ClearButton'\"\n *ngIf=\"displayClearButton() | async\"\n class=\"clearable-input-clear-button btn\"\n (click)=\"onClear()\"\n >\n <foehn-icon-times\n class=\"clearable-input-clear-button-icon\"\n title=\"R\u00E9initialiser le champs\"\n ></foehn-icon-times>\n </button>\n</div>\n", styles: ["input::-ms-clear{display:none}input.clearable-input{padding-right:30px}.clearable-input-form-group{position:relative}:host ::ng-deep foehn-help-modal>.btn{padding-top:0!important;margin-top:0!important}.clearable-input-clear-button{position:absolute;bottom:4px;right:4px;height:30px;width:30px;background:none;border:none}.clearable-input-clear-button-icon{top:4px;right:8px;position:absolute}:host ::ng-deep .clearable-input-clear-button.btn .svg-inline--fa{color:#595959!important}:host ::ng-deep .clearable-input-clear-button.btn:hover .svg-inline--fa{color:#000!important}.chars-remaining{color:#757575;font-size:.9rem}.char-count-exceeded{color:#c21f39}:host ::ng-deep .sameLine-list{display:inline;list-style:none;padding:0}:host ::ng-deep .sameLine-list li{display:inline;padding:3px}\n"], dependencies: [{ kind: "component", type: i1.FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i5.FoehnHelpModalComponent, selector: "foehn-help-modal", inputs: ["modalContent"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.SdkDictionaryPipe, name: "fromDictionary" }] });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputPhoneComponent, decorators: [{
|
|
77
|
+
type: Component,
|
|
78
|
+
args: [{ selector: 'foehn-input-phone', providers: [
|
|
79
|
+
{
|
|
80
|
+
provide: FoehnInputComponent,
|
|
81
|
+
useExisting: forwardRef(() => FoehnInputPhoneComponent),
|
|
82
|
+
multi: true
|
|
83
|
+
}
|
|
84
|
+
], template: "<div\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <div class=\"d-flex justify-content-between\">\n <label\n style=\"display: inline-block\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <input\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n [class.clearable-input]=\"displayClearButton() | async\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.maxlength]=\"getMaxLength()\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [attr.autocapitalize]=\"autocapitalize\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.type]=\"type\"\n [attr.pattern]=\"pattern\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (paste)=\"onPaste($event)\"\n (ngModelChange)=\"updateNgModel($event)\"\n (input)=\"handleChange(entryComponent.value)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n #entryComponent\n />\n\n <button\n type=\"button\"\n [id]=\"buildChildId() + 'ClearButton'\"\n *ngIf=\"displayClearButton() | async\"\n class=\"clearable-input-clear-button btn\"\n (click)=\"onClear()\"\n >\n <foehn-icon-times\n class=\"clearable-input-clear-button-icon\"\n title=\"R\u00E9initialiser le champs\"\n ></foehn-icon-times>\n </button>\n</div>\n", styles: ["input::-ms-clear{display:none}input.clearable-input{padding-right:30px}.clearable-input-form-group{position:relative}:host ::ng-deep foehn-help-modal>.btn{padding-top:0!important;margin-top:0!important}.clearable-input-clear-button{position:absolute;bottom:4px;right:4px;height:30px;width:30px;background:none;border:none}.clearable-input-clear-button-icon{top:4px;right:8px;position:absolute}:host ::ng-deep .clearable-input-clear-button.btn .svg-inline--fa{color:#595959!important}:host ::ng-deep .clearable-input-clear-button.btn:hover .svg-inline--fa{color:#000!important}.chars-remaining{color:#757575;font-size:.9rem}.char-count-exceeded{color:#c21f39}:host ::ng-deep .sameLine-list{display:inline;list-style:none;padding:0}:host ::ng-deep .sameLine-list li{display:inline;padding:3px}\n"] }]
|
|
85
|
+
}], propDecorators: { acceptInternational: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], acceptMobilePhone: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], acceptPhone: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LXBob25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBRXJELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUMzQywwRUFBMEU7SUFDMUUscUZBQXFGLENBQUM7QUFDMUYsTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQ2pELDBFQUEwRTtJQUMxRSxxRkFBcUYsQ0FBQztBQUMxRixNQUFNLENBQUMsTUFBTSx5Q0FBeUMsR0FDbEQsMEVBQTBFO0lBQzFFLHFGQUFxRixDQUFDO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUN4QywwRUFBMEU7SUFDMUUsMEdBQTBHLENBQUM7QUFDL0csTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQ2hDLGtJQUFrSSxDQUFDO0FBQ3ZJLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUN0QyxrSUFBa0ksQ0FBQztBQUN2SSxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FDN0Msa0lBQWtJLENBQUM7QUFFdkksTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQzdCLCtHQUErRyxDQUFDO0FBY3BILE1BQU0sT0FBTyx3QkFDVCxTQUFRLHlCQUF5QjtJQWJyQzs7UUFnQkksd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRzVCLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUd6QixnQkFBVyxHQUFHLElBQUksQ0FBQztLQTBDdEI7SUF4Q0csUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQix3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztRQUVsQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO2FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU8sV0FBVztRQUNmLElBQ0ksSUFBSSxDQUFDLG1CQUFtQjtZQUN4QixDQUFDLElBQUksQ0FBQyxXQUFXO1lBQ2pCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUN6QjtZQUNFLE9BQU8sa0NBQWtDLENBQUM7U0FDN0M7UUFDRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDL0MsT0FBTyx3Q0FBd0MsQ0FBQztTQUNuRDtRQUNELElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3JELE9BQU8seUNBQXlDLENBQUM7U0FDcEQ7UUFDRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMxQixPQUFPLCtCQUErQixDQUFDO1NBQzFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM1QyxPQUFPLHVCQUF1QixDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLE9BQU8sNkJBQTZCLENBQUM7U0FDeEM7UUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixPQUFPLG9DQUFvQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxvQkFBb0IsQ0FBQztJQUNoQyxDQUFDOztxSEFuRFEsd0JBQXdCO3lHQUF4Qix3QkFBd0Isd0tBUnRCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7WUFDdkQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLGlEQ3RDTCxpd0ZBaUZBOzJGRHpDYSx3QkFBd0I7a0JBWnBDLFNBQVM7K0JBQ0ksbUJBQW1CLGFBR2xCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDOzRCQUN2RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjs4QkFNRCxtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5JbnB1dFN0cmluZ0NvbXBvbmVudCB9IGZyb20gJy4vZm9laG4taW5wdXQtc3RyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIVE1MX1BIT05FX1BBVFRFUk4gfSBmcm9tICcuL3BhdHRlcm4uY29uc3QnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlRFUk5BVElPTkFMX0FORF9OT19TV0lTUyA9XG4gICAgXCJQcsOpZml4ZXIgYXZlYyBsJ2luZGljYXRpZiBkZSB2b3RyZSBwYXlzIChleCA6IDx1bCBjbGFzcz0nc2FtZUxpbmUtbGlzdCc+XCIgK1xuICAgICc8bGk+KzMzNjEyMzQ1Njc4LDwvbGk+PGxpPis0OSAxMjMgNDU2IDc4IDkwMSBvdTwvbGk+PGxpPiszOSAzMTIgMzQ1IDY3ODk8L2xpPjwvdWw+KSc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlRFUk5BVElPTkFMX0FORF9OT19TV0lTU19QSE9ORSA9XG4gICAgXCJQcsOpZml4ZXIgYXZlYyBsJ2luZGljYXRpZiBkZSB2b3RyZSBwYXlzIChleCA6IDx1bCBjbGFzcz0nc2FtZUxpbmUtbGlzdCc+XCIgK1xuICAgICc8bGk+KzQxNzkxMjM0NTY3LDwvbGk+PGxpPjAwNDEgNzggMTIzIDQ1IDU2IG91PC9saT48bGk+KzMzIDYgMTIgMzQgNTYgNzg8L2xpPjwvdWw+KSc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlRFUk5BVElPTkFMX0FORF9OT19TV0lTU19NT0JJTEUgPVxuICAgIFwiUHLDqWZpeGVyIGF2ZWMgbCdpbmRpY2F0aWYgZGUgdm90cmUgcGF5cyAoZXggOiA8dWwgY2xhc3M9J3NhbWVMaW5lLWxpc3QnPlwiICtcbiAgICAnPGxpPis0MTIxMTIzNDU2Nyw8L2xpPjxsaT4wMDQxIDIxIDEyMyA0NSA1NiBvdTwvbGk+PGxpPiszMyA2IDEyIDM0IDU2IDc4PC9saT48L3VsPiknO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5URVJOQVRJT05BTF9IRUxQX1RFWFQgPVxuICAgIFwiUHLDqWZpeGVyIGF2ZWMgbCdpbmRpY2F0aWYgZGUgdm90cmUgcGF5cyAoZXggOiA8dWwgY2xhc3M9J3NhbWVMaW5lLWxpc3QnPlwiICtcbiAgICAnPGxpPis0MTc5MTIzNDU2Nyw8L2xpPjxsaT4rNDEgMjIgMDEyIDM0IDU2LDwvbGk+PGxpPjAwNDEgNzkgMDEyIDM0IDU2PC9saT48bGk+b3UgKzMzNjEyMzQ1Njc4PC9saT48L3VsPiknO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1dJU1NfSEVMUF9URVhUID1cbiAgICBcImV4IDogPHVsIGNsYXNzPSdzYW1lTGluZS1saXN0Jz48bGk+MDc5IDEyMyA0NSA2Nyw8L2xpPjxsaT4wMjExMjM0NTY3LDwvbGk+PGxpPis0MSA3OSAxMjMgNDUgNjcgb3U8L2xpPjxsaT4rNDEyMTEyMzQ1Njc8L2xpPjwvdWw+XCI7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TV0lTU19QSE9ORV9IRUxQX1RFWFQgPVxuICAgIFwiZXggOiA8dWwgY2xhc3M9J3NhbWVMaW5lLWxpc3QnPjxsaT4wMjExMjM0NTY3LDwvbGk+PGxpPjAyMSAxMjMgNDUgNjcsPC9saT48bGk+KzQxMjExMjM0NTY3IG91PC9saT48bGk+KzQxIDIxIDEyMyA0NSA2NzwvbGk+PC91bD5cIjtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NXSVNTX01PQklMRV9QSE9ORV9IRUxQX1RFWFQgPVxuICAgIFwiZXggOiA8dWwgY2xhc3M9J3NhbWVMaW5lLWxpc3QnPjxsaT4wNzkxMjM0NTY3LDwvbGk+PGxpPjA3OSAxMjMgNDUgNjcsPC9saT48bGk+KzQxNzkxMjM0NTY3IG91PC9saT48bGk+KzQxIDc5IDEyMyA0NSA2NzwvbGk+PC91bD5cIjtcblxuZXhwb3J0IGNvbnN0IEJBRF9QQVJBTVNfSEVMUF9URVhUID1cbiAgICAnTWF1dmFpcyBwYXJhbcOpdHJhZ2UgZHUgY29tcG9zYW50LiBVbiB0w6lsw6lwaG9uZSBlc3Qgc29pdCBpbnRlcm5hdGlvbmFsLCBtb2JpbGUsIGZpeGUgb3UgbGVzIGRldXggbWFpcyBwYXMgcmllbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4taW5wdXQtcGhvbmUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9laG4taW5wdXQuY29tcG9uZW50LmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5JbnB1dFBob25lQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuSW5wdXRQaG9uZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgRm9laG5JbnB1dFN0cmluZ0NvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIGFjY2VwdEludGVybmF0aW9uYWwgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgYWNjZXB0TW9iaWxlUGhvbmUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBhY2NlcHRQaG9uZSA9IHRydWU7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy50eXBlID0gJ3RlbCc7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlID0gJ3RlbCc7XG4gICAgICAgIC8vIFBhdHRlcm4gdXNlZCBvbmx5IGZvciBudW1wYWQgdHJpZ2dlciBvbiBtb2JpbGUgcGhvbmVzXG4gICAgICAgIHRoaXMucGF0dGVybiA9IEhUTUxfUEhPTkVfUEFUVEVSTjtcblxuICAgICAgICB0aGlzLmhlbHBUZXh0ID0gW3RoaXMuaGVscFRleHQsIHRoaXMuZ2V0SGVscFRleHQoKV1cbiAgICAgICAgICAgIC5maWx0ZXIodmFsID0+IHZhbClcbiAgICAgICAgICAgIC5qb2luKCc8YnIvPicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SGVscFRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5hY2NlcHRJbnRlcm5hdGlvbmFsICYmXG4gICAgICAgICAgICAhdGhpcy5hY2NlcHRQaG9uZSAmJlxuICAgICAgICAgICAgIXRoaXMuYWNjZXB0TW9iaWxlUGhvbmVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gREVGQVVMVF9JTlRFUk5BVElPTkFMX0FORF9OT19TV0lTUztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hY2NlcHRJbnRlcm5hdGlvbmFsICYmICF0aGlzLmFjY2VwdFBob25lKSB7XG4gICAgICAgICAgICByZXR1cm4gREVGQVVMVF9JTlRFUk5BVElPTkFMX0FORF9OT19TV0lTU19QSE9ORTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hY2NlcHRJbnRlcm5hdGlvbmFsICYmICF0aGlzLmFjY2VwdE1vYmlsZVBob25lKSB7XG4gICAgICAgICAgICByZXR1cm4gREVGQVVMVF9JTlRFUk5BVElPTkFMX0FORF9OT19TV0lTU19NT0JJTEU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWNjZXB0SW50ZXJuYXRpb25hbCkge1xuICAgICAgICAgICAgcmV0dXJuIERFRkFVTFRfSU5URVJOQVRJT05BTF9IRUxQX1RFWFQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWNjZXB0TW9iaWxlUGhvbmUgJiYgdGhpcy5hY2NlcHRQaG9uZSkge1xuICAgICAgICAgICAgcmV0dXJuIERFRkFVTFRfU1dJU1NfSEVMUF9URVhUO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmFjY2VwdFBob25lKSB7XG4gICAgICAgICAgICByZXR1cm4gREVGQVVMVF9TV0lTU19QSE9ORV9IRUxQX1RFWFQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWNjZXB0TW9iaWxlUGhvbmUpIHtcbiAgICAgICAgICAgIHJldHVybiBERUZBVUxUX1NXSVNTX01PQklMRV9QSE9ORV9IRUxQX1RFWFQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEJBRF9QQVJBTVNfSEVMUF9URVhUO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAgY2xlYXJhYmxlLWlucHV0LWZvcm0tZ3JvdXBcIlxuICAgIFtjbGFzcy5oYXMtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbY2xhc3MudmQtZm9ybS1ncm91cC1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ0NvbnRhaW5lcicpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgICAgW2F0dHIuZm9yXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgICAgICpuZ0lmPVwibGFiZWwgJiYgdHlwZSAhPT0gJ2hpZGRlbidcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXNMYWJlbFNyT25seSA/ICdzci1vbmx5JyA6IGxhYmVsU3R5bGVNb2RpZmllclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgIDxmb2Vobi1oZWxwLW1vZGFsXG4gICAgICAgICAgICBjbGFzcz1cInJlbW92ZVBhZGRpbmdCdXR0b25cIlxuICAgICAgICAgICAgKm5nSWY9XCIhIWhlbHBNb2RhbFwiXG4gICAgICAgICAgICBbbW9kYWxDb250ZW50XT1cImhlbHBNb2RhbFwiXG4gICAgICAgID48L2ZvZWhuLWhlbHAtbW9kYWw+XG4gICAgPC9kaXY+XG5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cImhlbHBUZXh0ICYmIHR5cGUgIT09ICdoaWRkZW4nXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnSGVscCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPGlucHV0XG4gICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IGhhc0luaGVyaXRFcnJvckZyb21QYXJlbnQoKVwiXG4gICAgICAgIFtjbGFzcy5jbGVhcmFibGUtaW5wdXRdPVwiZGlzcGxheUNsZWFyQnV0dG9uKCkgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJnZXRNYXhMZW5ndGgoKVwiXG4gICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJnZXRBdXRvQ29tcGxldGUoKVwiXG4gICAgICAgIFthdHRyLmF1dG9jYXBpdGFsaXplXT1cImF1dG9jYXBpdGFsaXplXCJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICAgIFthdHRyLnBhdHRlcm5dPVwicGF0dGVyblwiXG4gICAgICAgIFthdHRyLm1pbl09XCJtaW5cIlxuICAgICAgICBbYXR0ci5tYXhdPVwibWF4XCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImdldERlc2NyaWJlZEJ5KClcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgfHwgbnVsbFwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcbiAgICAgICAgKHBhc3RlKT1cIm9uUGFzdGUoJGV2ZW50KVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU5nTW9kZWwoJGV2ZW50KVwiXG4gICAgICAgIChpbnB1dCk9XCJoYW5kbGVDaGFuZ2UoZW50cnlDb21wb25lbnQudmFsdWUpXCJcbiAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAjZW50cnlDb21wb25lbnRcbiAgICAvPlxuXG4gICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ0NsZWFyQnV0dG9uJ1wiXG4gICAgICAgICpuZ0lmPVwiZGlzcGxheUNsZWFyQnV0dG9uKCkgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwiY2xlYXJhYmxlLWlucHV0LWNsZWFyLWJ1dHRvbiBidG5cIlxuICAgICAgICAoY2xpY2spPVwib25DbGVhcigpXCJcbiAgICA+XG4gICAgICAgIDxmb2Vobi1pY29uLXRpbWVzXG4gICAgICAgICAgICBjbGFzcz1cImNsZWFyYWJsZS1pbnB1dC1jbGVhci1idXR0b24taWNvblwiXG4gICAgICAgICAgICB0aXRsZT1cIlLDqWluaXRpYWxpc2VyIGxlIGNoYW1wc1wiXG4gICAgICAgID48L2ZvZWhuLWljb24tdGltZXM+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
1
2
|
import { FoehnInputComponent } from './foehn-input.component';
|
|
2
|
-
import { Input, Directive } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class FoehnInputStringComponent extends FoehnInputComponent {
|
|
5
5
|
constructor() {
|
|
@@ -13,11 +13,11 @@ export class FoehnInputStringComponent extends FoehnInputComponent {
|
|
|
13
13
|
super.onBlur(e);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
FoehnInputStringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
17
|
-
FoehnInputStringComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
FoehnInputStringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputStringComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
17
|
+
FoehnInputStringComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: FoehnInputStringComponent, inputs: { trimOnBlur: "trimOnBlur" }, usesInheritance: true, ngImport: i0 });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputStringComponent, decorators: [{
|
|
19
19
|
type: Directive
|
|
20
20
|
}], propDecorators: { trimOnBlur: [{
|
|
21
21
|
type: Input
|
|
22
22
|
}] } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtc3RyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC1zdHJpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUc5RCxNQUFNLE9BQWdCLHlCQUEwQixTQUFRLG1CQUEyQjtJQURuRjs7UUFHSSxlQUFVLEdBQUcsSUFBSSxDQUFDO0tBUXJCO0lBTkcsTUFBTSxDQUFDLENBQWE7UUFDaEIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2xDO1FBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDOztzSEFUaUIseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEOUMsU0FBUzs4QkFHTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQgZXh0ZW5kcyBGb2VobklucHV0Q29tcG9uZW50PHN0cmluZz4ge1xuICAgIEBJbnB1dCgpXG4gICAgdHJpbU9uQmx1ciA9IHRydWU7XG5cbiAgICBvbkJsdXIoZTogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50cmltT25CbHVyICYmIHRoaXMubW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSB0aGlzLm1vZGVsLnRyaW0oKTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5vbkJsdXIoZSk7XG4gICAgfVxufVxuIl19
|