@dsivd/prestations-ng 17.10.9 → 18.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2478 -2466
- package/CONTRIBUTING.md +66 -66
- package/ESLINT_MIGRATION_GUIDE.md +19 -33
- package/MODULES.md +88 -88
- package/MULTI_ETAPES.md +9 -9
- package/README.md +25 -24
- package/README_COMMON.md +10 -10
- package/UPGRADING_V12.md +36 -36
- package/UPGRADING_V13.md +3 -3
- package/UPGRADING_V14.md +2 -2
- package/UPGRADING_V15.md +4 -4
- package/UPGRADING_V16.md +38 -38
- package/UPGRADING_V17.md +51 -51
- package/UPGRADING_V18.md +596 -8
- package/UPGRADING_V8.md +5 -5
- package/abstract-page-component.d.ts +1 -1
- package/dsivd-prestations-ng-18.0.0-beta.10.tgz +0 -0
- package/fesm2022/dsivd-prestations-ng.mjs +903 -868
- package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-checkables/foehn-checkable-group.component.d.ts +1 -1
- package/foehn-checkables/foehn-checkables.module.d.ts +6 -7
- package/foehn-date-picker/date-picker.helper.d.ts +1 -1
- package/foehn-icons/abstract-icon-component.d.ts +1 -1
- package/foehn-input/foehn-input-string.component.d.ts +1 -1
- package/foehn-input/foehn-input.component.d.ts +1 -1
- package/foehn-menu-prestation/abstract-list-item-detail-page.component.d.ts +1 -1
- package/foehn-menu-prestation/abstract-menu-page.component.d.ts +1 -1
- package/foehn-menu-prestation/abstract-page-from-menu.component.d.ts +1 -1
- package/foehn-navigation/abstract-foehn-navigation.component.d.ts +1 -1
- package/foehn-table/foehn-table.component.d.ts +1 -6
- package/foehn-upload/abstract-foehn-uploader.component.d.ts +1 -2
- package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +1 -3
- package/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.d.ts +1 -1
- package/index.d.ts +1 -1
- package/index.html +1 -1
- package/package.json +15 -17
- package/prestations-ng-core.module.d.ts +5 -4
- package/sdk-appinfo/application-info.service.d.ts +1 -0
- package/sdk-drafts/drafts.module.d.ts +7 -8
- package/sdk-support-alert/support-alert.module.d.ts +2 -3
- package/dsivd-prestations-ng-17.10.9.tgz +0 -0
- package/esm2022/abstract-page-component.mjs +0 -232
- package/esm2022/directives/currency-formatter.directive.mjs +0 -143
- package/esm2022/directives/formatter.module.mjs +0 -37
- package/esm2022/directives/iban-formatter.directive.mjs +0 -29
- package/esm2022/directives/ide-formatter.directive.mjs +0 -37
- package/esm2022/directives/ndc-formatter.directive.mjs +0 -75
- package/esm2022/dsivd-prestations-ng.mjs +0 -5
- package/esm2022/foehn-address/address.type.mjs +0 -10
- package/esm2022/foehn-address/foehn-address.module.mjs +0 -55
- package/esm2022/foehn-address/foehn-display-address.component.mjs +0 -69
- package/esm2022/foehn-address/foehn-input-address.component.mjs +0 -498
- package/esm2022/foehn-address/foehn-input-foreign-locality.component.mjs +0 -66
- package/esm2022/foehn-address/foehn-input-foreign-street.component.mjs +0 -56
- package/esm2022/foehn-agenda/calendar.type.mjs +0 -3
- package/esm2022/foehn-agenda/current-week.type.mjs +0 -4
- package/esm2022/foehn-agenda/day-slots.type.mjs +0 -3
- package/esm2022/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.mjs +0 -75
- package/esm2022/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.mjs +0 -242
- package/esm2022/foehn-agenda/foehn-agenda.component.mjs +0 -95
- package/esm2022/foehn-agenda/foehn-agenda.module.mjs +0 -62
- package/esm2022/foehn-agenda/pagination-week.type.mjs +0 -3
- package/esm2022/foehn-agenda/selected-slot.type.mjs +0 -3
- package/esm2022/foehn-autocomplete/foehn-autocomplete.component.mjs +0 -684
- package/esm2022/foehn-autocomplete/foehn-autocomplete.module.mjs +0 -40
- package/esm2022/foehn-boolean/foehn-boolean-checkbox.component.mjs +0 -28
- package/esm2022/foehn-boolean/foehn-boolean-radio.component.mjs +0 -40
- package/esm2022/foehn-boolean/foehn-boolean.module.mjs +0 -33
- package/esm2022/foehn-breadcrumb/breadcrumb-event.service.mjs +0 -177
- package/esm2022/foehn-breadcrumb/breadcrumb.mjs +0 -5
- package/esm2022/foehn-breadcrumb/foehn-breadcrumb.component.mjs +0 -106
- package/esm2022/foehn-breadcrumb/foehn-breadcrumb.module.mjs +0 -20
- package/esm2022/foehn-checkables/foehn-checkable-group.component.mjs +0 -291
- package/esm2022/foehn-checkables/foehn-checkables.module.mjs +0 -68
- package/esm2022/foehn-checkables/foehn-checkbox.component.mjs +0 -37
- package/esm2022/foehn-checkables/foehn-radio.component.mjs +0 -64
- package/esm2022/foehn-checkables/foehn-select.component.mjs +0 -55
- package/esm2022/foehn-checkables/form-select-option-group.mjs +0 -3
- package/esm2022/foehn-checkables/form-select-option.mjs +0 -3
- package/esm2022/foehn-confirm-modal/foehn-confirm-modal-content.mjs +0 -7
- package/esm2022/foehn-confirm-modal/foehn-confirm-modal.component.mjs +0 -40
- package/esm2022/foehn-confirm-modal/foehn-confirm-modal.module.mjs +0 -19
- package/esm2022/foehn-confirm-modal/foehn-confirm-modal.service.mjs +0 -53
- package/esm2022/foehn-date-picker/date-picker-navigation.helper.mjs +0 -168
- package/esm2022/foehn-date-picker/date-picker.helper.mjs +0 -132
- package/esm2022/foehn-date-picker/day-month.type.mjs +0 -3
- package/esm2022/foehn-date-picker/focused-day.type.mjs +0 -3
- package/esm2022/foehn-date-picker/foehn-date-picker.component.mjs +0 -392
- package/esm2022/foehn-date-picker/foehn-date-picker.module.mjs +0 -40
- package/esm2022/foehn-date-picker/month-year.type.mjs +0 -3
- package/esm2022/foehn-date-picker-button/foehn-date-picker-button.component.mjs +0 -97
- package/esm2022/foehn-date-picker-button/foehn-date-picker-button.module.mjs +0 -36
- package/esm2022/foehn-debug-summary/foehn-debug-summary.component.mjs +0 -84
- package/esm2022/foehn-debug-summary/foehn-debug-summary.component.module.mjs +0 -20
- package/esm2022/foehn-decision-electronique/foehn-decision-electronique.component.mjs +0 -37
- package/esm2022/foehn-decision-electronique/foehn-decision-electronique.module.mjs +0 -32
- package/esm2022/foehn-dropdown-menu/dropdown-menu-group.type.mjs +0 -3
- package/esm2022/foehn-dropdown-menu/dropdown-menu-item.type.mjs +0 -6
- package/esm2022/foehn-dropdown-menu/foehn-dropdown-menu.component.mjs +0 -212
- package/esm2022/foehn-dropdown-menu/foehn-dropdown-menu.module.mjs +0 -21
- package/esm2022/foehn-feedback-notification/foehn-feedback-notification.component.mjs +0 -113
- package/esm2022/foehn-feedback-notification/foehn-feedback-notification.module.mjs +0 -32
- package/esm2022/foehn-feedback-notification/foehn-feedback-notification.type.mjs +0 -3
- package/esm2022/foehn-footer/foehn-footer.component.mjs +0 -130
- package/esm2022/foehn-footer/foehn-footer.module.mjs +0 -19
- package/esm2022/foehn-footer/footer-link.type.mjs +0 -3
- package/esm2022/foehn-form/foehn-form.component.mjs +0 -136
- package/esm2022/foehn-form/foehn-form.module.mjs +0 -32
- package/esm2022/foehn-form/register-ng-model.service.mjs +0 -23
- package/esm2022/foehn-growl/foehn-growl.component.mjs +0 -45
- package/esm2022/foehn-growl/foehn-growl.module.mjs +0 -18
- package/esm2022/foehn-growl/growl-broker.service.mjs +0 -37
- package/esm2022/foehn-growl/growl-message.mjs +0 -9
- package/esm2022/foehn-growl/growl-types.mjs +0 -7
- package/esm2022/foehn-header/foehn-header.component.mjs +0 -159
- package/esm2022/foehn-header/foehn-header.module.mjs +0 -40
- package/esm2022/foehn-header/foehn-skip-link.component.mjs +0 -51
- package/esm2022/foehn-help-modal/foehn-help-modal.component.mjs +0 -44
- package/esm2022/foehn-help-modal/foehn-help-modal.module.mjs +0 -20
- package/esm2022/foehn-help-modal/foehn-help-modal.type.mjs +0 -2
- package/esm2022/foehn-icons/abstract-icon-component.mjs +0 -12
- package/esm2022/foehn-icons/foehn-icon-calendar.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-check-square-o.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-check.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-chevron-down.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-chevron-left.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-chevron-right.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-chevron-up.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-clock.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-comment-dots.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-edit.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-external-link-alt.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-file-pdf.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-info-circle.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-lock.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-map-marker.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-minus-circle.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-pencil.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-plus-circle.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-plus-square.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-search.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-times.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-trash-alt.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-unlock-alt.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icon-user.component.mjs +0 -19
- package/esm2022/foehn-icons/foehn-icons.module.mjs +0 -139
- package/esm2022/foehn-input/foehn-input-email.component.mjs +0 -74
- package/esm2022/foehn-input/foehn-input-hidden.component.mjs +0 -54
- package/esm2022/foehn-input/foehn-input-number.component.mjs +0 -319
- package/esm2022/foehn-input/foehn-input-password.component.mjs +0 -51
- package/esm2022/foehn-input/foehn-input-phone.component.mjs +0 -99
- package/esm2022/foehn-input/foehn-input-prefixed-text.component.mjs +0 -116
- package/esm2022/foehn-input/foehn-input-string.component.mjs +0 -27
- package/esm2022/foehn-input/foehn-input-text.component.mjs +0 -69
- package/esm2022/foehn-input/foehn-input-textarea.component.mjs +0 -97
- package/esm2022/foehn-input/foehn-input.component.mjs +0 -418
- package/esm2022/foehn-input/foehn-input.module.mjs +0 -98
- package/esm2022/foehn-input/pattern.const.mjs +0 -16
- package/esm2022/foehn-input-date/foehn-input-date.component.mjs +0 -163
- package/esm2022/foehn-input-date-time/foehn-input-date-time.component.mjs +0 -201
- package/esm2022/foehn-input-time/foehn-input-time.component.mjs +0 -89
- package/esm2022/foehn-list/foehn-list.component.mjs +0 -127
- package/esm2022/foehn-list/foehn-list.module.mjs +0 -19
- package/esm2022/foehn-list/page-change-event.mjs +0 -3
- package/esm2022/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +0 -122
- package/esm2022/foehn-menu-prestation/abstract-menu-page.component.mjs +0 -31
- package/esm2022/foehn-menu-prestation/abstract-page-from-menu.component.mjs +0 -87
- package/esm2022/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs +0 -25
- package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.mjs +0 -2
- package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-item.mjs +0 -3
- package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +0 -161
- package/esm2022/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +0 -38
- package/esm2022/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs +0 -58
- package/esm2022/foehn-menu-prestation/foehn-menu-prestation.module.mjs +0 -67
- package/esm2022/foehn-misc/foehn-abbr.component.mjs +0 -15
- package/esm2022/foehn-misc/foehn-misc.module.mjs +0 -17
- package/esm2022/foehn-modal/foehn-modal.component.mjs +0 -94
- package/esm2022/foehn-modal/foehn-modal.module.mjs +0 -21
- package/esm2022/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +0 -287
- package/esm2022/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.mjs +0 -40
- package/esm2022/foehn-nav13/foehn-input-nav13.component.mjs +0 -114
- package/esm2022/foehn-nav13/foehn-input-nav13.module.mjs +0 -32
- package/esm2022/foehn-navigation/abstract-foehn-navigation.component.mjs +0 -55
- package/esm2022/foehn-navigation/foehn-navigation/foehn-navigation.component.mjs +0 -67
- package/esm2022/foehn-navigation/foehn-navigation.module.mjs +0 -37
- package/esm2022/foehn-navigation/foehn-navigation.service.mjs +0 -322
- package/esm2022/foehn-navigation/foehn-simple-navigation/foehn-simple-navigation.component.mjs +0 -26
- package/esm2022/foehn-notfound/foehn-notfound.component.mjs +0 -61
- package/esm2022/foehn-notfound/foehn-notfound.module.mjs +0 -20
- package/esm2022/foehn-page/foehn-page-counter.component.mjs +0 -31
- package/esm2022/foehn-page/foehn-page-expiration-timer/current-session-expiration.mjs +0 -3
- package/esm2022/foehn-page/foehn-page-expiration-timer/demande-expiration-interceptor.mjs +0 -68
- package/esm2022/foehn-page/foehn-page-expiration-timer/demande-expiration.service.mjs +0 -53
- package/esm2022/foehn-page/foehn-page-expiration-timer/foehn-page-expiration-timer.component.mjs +0 -175
- package/esm2022/foehn-page/foehn-page-expiration-timer/interval.helper.mjs +0 -29
- package/esm2022/foehn-page/foehn-page-modal.component.mjs +0 -54
- package/esm2022/foehn-page/foehn-page-modal.service.mjs +0 -38
- package/esm2022/foehn-page/foehn-page.component.mjs +0 -223
- package/esm2022/foehn-page/foehn-page.module.mjs +0 -101
- package/esm2022/foehn-page/foehn-page.service.mjs +0 -54
- package/esm2022/foehn-page/foehn-transmit-waiting-modal/demande-transmit-interceptor.mjs +0 -52
- package/esm2022/foehn-page/foehn-transmit-waiting-modal/foehn-transmit-waiting-modal.component.mjs +0 -23
- package/esm2022/foehn-page/foehn-transmit-waiting-modal/foehn-transmit-waiting-modal.service.mjs +0 -32
- package/esm2022/foehn-recap-section/foehn-recap-section.component.mjs +0 -98
- package/esm2022/foehn-recap-section/foehn-recap-section.module.mjs +0 -20
- package/esm2022/foehn-recap-section/foehn-recap-section.type.mjs +0 -2
- package/esm2022/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.mjs +0 -50
- package/esm2022/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs +0 -18
- package/esm2022/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +0 -56
- package/esm2022/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs +0 -20
- package/esm2022/foehn-table/foehn-table-column-configuration.mjs +0 -3
- package/esm2022/foehn-table/foehn-table-page-change-event.mjs +0 -3
- package/esm2022/foehn-table/foehn-table.component.mjs +0 -190
- package/esm2022/foehn-table/foehn-table.module.mjs +0 -40
- package/esm2022/foehn-table/row-element.type.mjs +0 -3
- package/esm2022/foehn-table/tableSort.mjs +0 -3
- package/esm2022/foehn-upload/abstract-foehn-uploader.component.mjs +0 -242
- package/esm2022/foehn-upload/document-reference.mjs +0 -6
- package/esm2022/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs +0 -116
- package/esm2022/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.mjs +0 -6
- package/esm2022/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +0 -199
- package/esm2022/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs +0 -40
- package/esm2022/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +0 -250
- package/esm2022/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs +0 -40
- package/esm2022/foehn-upload/foehn-multi-upload/multi-upload.service.mjs +0 -125
- package/esm2022/foehn-upload/foehn-multi-upload/multi-upload.type.mjs +0 -6
- package/esm2022/foehn-upload/foehn-multi-upload/pending-upload.service.mjs +0 -163
- package/esm2022/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +0 -178
- package/esm2022/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs +0 -44
- package/esm2022/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.component.mjs +0 -83
- package/esm2022/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.module.mjs +0 -21
- package/esm2022/foehn-upload/foehn-upload-progress-bar/upload-progress.service.mjs +0 -66
- package/esm2022/foehn-upload/foehn-upload-progress-bar/upload-progress.type.mjs +0 -7
- package/esm2022/foehn-upload/page-upload-limit.service.mjs +0 -80
- package/esm2022/foehn-upload/pending-upload.type.mjs +0 -3
- package/esm2022/foehn-upload/uploader.helper.mjs +0 -329
- package/esm2022/foehn-user-connected-as/foehn-user-connected-as.component.mjs +0 -21
- package/esm2022/foehn-user-connected-as/foehn-user-connected-as.module.mjs +0 -19
- package/esm2022/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs +0 -96
- package/esm2022/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs +0 -19
- package/esm2022/foehn-validation-alerts/foehn-validation-alerts.component.mjs +0 -29
- package/esm2022/foehn-validation-alerts/foehn-validation-alerts.module.mjs +0 -18
- package/esm2022/form-error.mjs +0 -2
- package/esm2022/form-post-response.mjs +0 -10
- package/esm2022/gesdem/gesdem-error-handler.service.mjs +0 -85
- package/esm2022/gesdem/gesdem-event.service.mjs +0 -38
- package/esm2022/gesdem/gesdem-handler.service.mjs +0 -201
- package/esm2022/gesdem/gesdem-loader.guard.mjs +0 -25
- package/esm2022/gesdem/gesdem-statut-utils.mjs +0 -25
- package/esm2022/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs +0 -170
- package/esm2022/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +0 -227
- package/esm2022/gesdem-action-recovery/gesdem-action-recovery.module.mjs +0 -62
- package/esm2022/gesdem-action-recovery/gesdem-action-recovery.service.mjs +0 -97
- package/esm2022/gesdem-action-recovery/reprise-info.mjs +0 -4
- package/esm2022/gesdem-confirmation/gesdem-confirmation.component.mjs +0 -241
- package/esm2022/gesdem-confirmation/gesdem-confirmation.module.mjs +0 -36
- package/esm2022/gesdem-error/gesdem-error.component.mjs +0 -96
- package/esm2022/gesdem-error/gesdem-error.module.mjs +0 -36
- package/esm2022/global.const.mjs +0 -5
- package/esm2022/helpers/demande.helper.mjs +0 -19
- package/esm2022/helpers/object.helper.mjs +0 -124
- package/esm2022/i18n-form.mjs +0 -7
- package/esm2022/pipes/currency.pipe.mjs +0 -18
- package/esm2022/pipes/date.pipe.mjs +0 -43
- package/esm2022/pipes/formatIde.pipe.mjs +0 -22
- package/esm2022/pipes/pipes.module.mjs +0 -18
- package/esm2022/prestations-ng-core.module.mjs +0 -31
- package/esm2022/public_api.mjs +0 -288
- package/esm2022/refinf/model/address-type-light.mjs +0 -3
- package/esm2022/refinf/model/canton.mjs +0 -3
- package/esm2022/refinf/model/district.mjs +0 -3
- package/esm2022/refinf/model/municipality.mjs +0 -3
- package/esm2022/refinf/model/place-of-origin.mjs +0 -3
- package/esm2022/refinf/model/postal-locality.mjs +0 -3
- package/esm2022/sdk-appinfo/application-info.mjs +0 -22
- package/esm2022/sdk-appinfo/application-info.service.mjs +0 -146
- package/esm2022/sdk-currency/currency.helper.mjs +0 -34
- package/esm2022/sdk-date/date.helper.mjs +0 -109
- package/esm2022/sdk-dictionary/default-dictionary.mjs +0 -312
- package/esm2022/sdk-dictionary/sdk-dictionary.module.mjs +0 -16
- package/esm2022/sdk-dictionary/sdk-dictionary.pipe.mjs +0 -28
- package/esm2022/sdk-dictionary/sdk-dictionary.service.mjs +0 -122
- package/esm2022/sdk-drafts/draft.model.mjs +0 -2
- package/esm2022/sdk-drafts/drafts-container.component.mjs +0 -99
- package/esm2022/sdk-drafts/drafts.module.mjs +0 -47
- package/esm2022/sdk-drafts/drafts.service.mjs +0 -51
- package/esm2022/sdk-epayment/model/EPaymentParameters.mjs +0 -2
- package/esm2022/sdk-epayment/pending-payment/pending-payment.component.mjs +0 -24
- package/esm2022/sdk-epayment/sdk-epayment.component.mjs +0 -76
- package/esm2022/sdk-epayment/sdk-epayment.module.mjs +0 -23
- package/esm2022/sdk-epayment/sdk-epayment.service.mjs +0 -51
- package/esm2022/sdk-events-logger/sdk-event-type.mjs +0 -14
- package/esm2022/sdk-events-logger/sdk-event.mjs +0 -3
- package/esm2022/sdk-events-logger/sdk-events-logger.service.mjs +0 -43
- package/esm2022/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs +0 -113
- package/esm2022/sdk-recaptcha/recaptcha.service.mjs +0 -180
- package/esm2022/sdk-recaptcha/sdk-recaptcha.component.mjs +0 -75
- package/esm2022/sdk-recaptcha/sdk-recaptcha.module.mjs +0 -19
- package/esm2022/sdk-redirect/iam-expired-interceptor.service.mjs +0 -62
- package/esm2022/sdk-redirect/redirect.component.mjs +0 -55
- package/esm2022/sdk-redirect/sdk-redirect.module.mjs +0 -19
- package/esm2022/sdk-session-info/session-info-data.mjs +0 -6
- package/esm2022/sdk-session-info/session-info-with-application.service.mjs +0 -68
- package/esm2022/sdk-session-info/session-info.service.mjs +0 -50
- package/esm2022/sdk-statistics/sdk-statistics.service.mjs +0 -74
- package/esm2022/sdk-support-alert/support-alert-container.component.mjs +0 -49
- package/esm2022/sdk-support-alert/support-alert.component.mjs +0 -32
- package/esm2022/sdk-support-alert/support-alert.model.mjs +0 -7
- package/esm2022/sdk-support-alert/support-alert.module.mjs +0 -21
- package/esm2022/sdk-support-alert/support-alert.service.mjs +0 -139
- package/esm2022/service-locator.mjs +0 -4
- package/esm2022/supported-browser.mjs +0 -2
- package/esm2022/validation/validation-handler.service.mjs +0 -44
- /package/{public_api.d.ts → public-api.d.ts} +0 -0
|
@@ -1,319 +0,0 @@
|
|
|
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
|
-
this.allowLeadingZero = false;
|
|
27
|
-
}
|
|
28
|
-
get model() {
|
|
29
|
-
// If the setter is overridden, it's critical to override the getter too.
|
|
30
|
-
return this.model_;
|
|
31
|
-
}
|
|
32
|
-
set model(value) {
|
|
33
|
-
// This doesn't trigger the component's version of updateNgModel strait away as this might
|
|
34
|
-
// be called before allowDecimal or allowNegative are properly set (before the init lifecycle
|
|
35
|
-
// of the component). This is critical to not re-format the input before the OnInit, otherwise
|
|
36
|
-
// we might end up with invalid value displayed to the user. this.updateNgModel is called implicitly
|
|
37
|
-
// as super.updateNgModel will emit a change on this.modelChange.
|
|
38
|
-
// FIXME this is a hack and should be refactored.
|
|
39
|
-
super.updateNgModel(value);
|
|
40
|
-
}
|
|
41
|
-
ngOnInit() {
|
|
42
|
-
super.ngOnInit();
|
|
43
|
-
this.type = 'text';
|
|
44
|
-
// Pattern used only for numpad trigger on mobile phones
|
|
45
|
-
this.pattern = this.allowDecimal
|
|
46
|
-
? HTML_DECIMAL_PATTERN
|
|
47
|
-
: HTML_NO_DECIMAL_PATTERN;
|
|
48
|
-
this.maxlength = !!this.maxlength ? this.maxlength : 9;
|
|
49
|
-
}
|
|
50
|
-
ngOnChanges(changes) {
|
|
51
|
-
const hasChanges = Object.keys(changes)
|
|
52
|
-
.filter(k => k !== 'model')
|
|
53
|
-
.map(k => changes[k])
|
|
54
|
-
.find(change => change.currentValue !== change.previousValue);
|
|
55
|
-
const helpTextHasChanged = changes.helpText?.currentValue !== changes.helpText?.previousValue;
|
|
56
|
-
if (helpTextHasChanged) {
|
|
57
|
-
this.initialHelpText = changes.helpText.currentValue;
|
|
58
|
-
}
|
|
59
|
-
if (hasChanges) {
|
|
60
|
-
this.manageHelpText();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
getMaxLength() {
|
|
64
|
-
if (this.allowFreeInput) {
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
return super.getMaxLength();
|
|
68
|
-
}
|
|
69
|
-
updateNgModel(value) {
|
|
70
|
-
if (this.isEmpty(value)) {
|
|
71
|
-
this.setToEmpty(value);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
const isDeleting = value.toString()?.length < this.model?.length;
|
|
75
|
-
let cleanNumber;
|
|
76
|
-
if (!this.allowFreeInput) {
|
|
77
|
-
cleanNumber = this.getCleanNumber(value.toString());
|
|
78
|
-
const isModelValid = this.isModelValid(cleanNumber);
|
|
79
|
-
if (!isModelValid && !isDeleting) {
|
|
80
|
-
cleanNumber = this.model;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
const noCommaString = this.replaceCommaWithDot(value);
|
|
85
|
-
cleanNumber =
|
|
86
|
-
noCommaString && typeof noCommaString === 'string'
|
|
87
|
-
? noCommaString.replace(CLEAN_NEGATIVE_AND_DECIMAL_NUMBERS_PATTERN, '')
|
|
88
|
-
: noCommaString;
|
|
89
|
-
// check that it is a number in any of its possible form
|
|
90
|
-
// to avoid -3.14-23--534
|
|
91
|
-
if (!NEGATIVE_AND_DECIMAL_NUMBERS_PATTERN.test(cleanNumber) &&
|
|
92
|
-
!isDeleting) {
|
|
93
|
-
cleanNumber = this.model;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
super.updateNgModel(cleanNumber);
|
|
97
|
-
// Need to update HTML input value because we let user input what he wants and then we clean model
|
|
98
|
-
this.updateInputElementValue(cleanNumber);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* To be used for post-formatting by directives.
|
|
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 cleanNonNumericCharacters = this.removeNonNumericCharacters(cleanDecimals);
|
|
157
|
-
const cleanNumber = !this.allowLeadingZero
|
|
158
|
-
? this.removeLeadingZero(cleanNonNumericCharacters, this.allowDecimal)
|
|
159
|
-
: cleanNonNumericCharacters;
|
|
160
|
-
if (this.isEmptyWhenTrimmedIfString(cleanNumber)) {
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
return cleanNumber.substring(0, this.getMaxLength());
|
|
164
|
-
}
|
|
165
|
-
updateInputElementValue(cleanNumber) {
|
|
166
|
-
if (!this.inputElement) {
|
|
167
|
-
// No need to update the native element if it doesn't yet exist.
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
const inputElemValue = this.inputElement.nativeElement.value;
|
|
171
|
-
if (inputElemValue !== cleanNumber) {
|
|
172
|
-
// Need to update HTML input value because we let user input what he wants and then we clean model
|
|
173
|
-
// Do not set an undefined value into a "nativeElement" value otherwise it will print out "undefined" in input field
|
|
174
|
-
this.inputElement.nativeElement.value =
|
|
175
|
-
cleanNumber === undefined ? null : cleanNumber;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
setToEmpty(value) {
|
|
179
|
-
// Empty means null, otherwise the backend doesn't handle numbers properly. We have to keep 'undefined'
|
|
180
|
-
// if 'undefined' otherwise Angular complains about the value of the model being changed without updating
|
|
181
|
-
// the view.
|
|
182
|
-
const emptyValue = value === undefined ? undefined : null;
|
|
183
|
-
super.updateNgModel(emptyValue);
|
|
184
|
-
this.updateInputElementValue(emptyValue);
|
|
185
|
-
}
|
|
186
|
-
manageHelpText() {
|
|
187
|
-
if (!!this.hideStandardHelpText) {
|
|
188
|
-
this.helpText = this.initialHelpText;
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
if (!this.allowFreeInput) {
|
|
192
|
-
if (isDefined(this.min) && isDefined(this.max)) {
|
|
193
|
-
if (!!this.initialHelpText?.length) {
|
|
194
|
-
this.helpText = `${this.initialHelpText}<br/>`;
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
this.helpText = '';
|
|
198
|
-
}
|
|
199
|
-
this.helpText += this.dictionaryService.getKeySync('foehn-input-number.standard-help-text.label', {
|
|
200
|
-
minValue: formatNumberAsGiven(this.min.toString()),
|
|
201
|
-
maxValue: formatNumberAsGiven(this.max.toString())
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
if (!!this.initialHelpText?.length) {
|
|
207
|
-
this.helpText = `${this.initialHelpText}<br/>`;
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
this.helpText = '';
|
|
211
|
-
}
|
|
212
|
-
const maxIntegerCount = this.allowDecimal
|
|
213
|
-
? this.maxlength - this.maxDecimalCount - 1
|
|
214
|
-
: this.maxlength;
|
|
215
|
-
let maxAsString;
|
|
216
|
-
if (!!this.max) {
|
|
217
|
-
maxAsString = this.max;
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
maxAsString = '9'.repeat(maxIntegerCount);
|
|
221
|
-
if (this.allowDecimal) {
|
|
222
|
-
maxAsString += `.${'9'.repeat(this.maxDecimalCount)}`;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
let minAsString;
|
|
226
|
-
if (this.min) {
|
|
227
|
-
minAsString = this.min;
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
minAsString = this.allowNegative
|
|
231
|
-
? `-${'9'.repeat(maxIntegerCount - 1)}`
|
|
232
|
-
: '0';
|
|
233
|
-
if (this.allowDecimal) {
|
|
234
|
-
minAsString += this.allowNegative
|
|
235
|
-
? `.${'9'.repeat(this.maxDecimalCount || 0)}`
|
|
236
|
-
: `.${'0'.repeat(this.maxDecimalCount || 0)}`;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
this.helpText += this.dictionaryService.getKeySync('foehn-input-number.standard-help-text.label', {
|
|
240
|
-
minValue: this.formatValue(minAsString),
|
|
241
|
-
maxValue: this.formatValue(maxAsString)
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
formatValue(value) {
|
|
245
|
-
if (this.allowDecimal) {
|
|
246
|
-
return formatDecimalCurrency(value?.toString(), this.maxDecimalCount, this.maxlength, this.allowFreeInput);
|
|
247
|
-
}
|
|
248
|
-
return formatNonDecimalCurrency(value?.toString());
|
|
249
|
-
}
|
|
250
|
-
removeLeadingZero(value, allowDecimal = false) {
|
|
251
|
-
if (value === undefined || value === null) {
|
|
252
|
-
return null;
|
|
253
|
-
}
|
|
254
|
-
// Never clean first character because it could be only "0" or "-"
|
|
255
|
-
if (value.length === 1) {
|
|
256
|
-
return value;
|
|
257
|
-
}
|
|
258
|
-
// For decimal values, we can't remove "0" from "0." or "-0." because we can't predict what comes after the dot
|
|
259
|
-
if (allowDecimal && (value === '0.' || value === '-0.')) {
|
|
260
|
-
return value;
|
|
261
|
-
}
|
|
262
|
-
// Remove "0" from "-0" for forbidden decimal values
|
|
263
|
-
if (!allowDecimal &&
|
|
264
|
-
value.includes('-') &&
|
|
265
|
-
value.length === 2 &&
|
|
266
|
-
value.substring(1) === '0') {
|
|
267
|
-
return value.substring(0, 1);
|
|
268
|
-
}
|
|
269
|
-
// Clean positive or negative integer
|
|
270
|
-
if (!value.includes(DECIMALS_SEPARATOR)) {
|
|
271
|
-
// Remove "0" from "01", "02"... numbers
|
|
272
|
-
if (!value.includes('-') &&
|
|
273
|
-
value.length === 2 &&
|
|
274
|
-
value.substring(0, 1) === '0') {
|
|
275
|
-
return value.substring(1);
|
|
276
|
-
}
|
|
277
|
-
// Remove "0" from "-01", "-02"... numbers
|
|
278
|
-
if (value.includes('-') &&
|
|
279
|
-
value.length === 3 &&
|
|
280
|
-
value.substring(1, 2) === '0') {
|
|
281
|
-
return value.substring(0, 1) + value.substring(2);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
return value;
|
|
285
|
-
}
|
|
286
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnInputNumberComponent, deps: [{ token: i1.CurrencyHelper }, { token: i2.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
287
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnInputNumberComponent, selector: "foehn-input-number", inputs: { hideStandardHelpText: "hideStandardHelpText", allowDecimal: "allowDecimal", allowNegative: "allowNegative", maxDecimalCount: "maxDecimalCount", allowFreeInput: "allowFreeInput", allowLeadingZero: "allowLeadingZero", model: "model" }, providers: [
|
|
288
|
-
{
|
|
289
|
-
provide: FoehnInputComponent,
|
|
290
|
-
useExisting: forwardRef(() => FoehnInputNumberComponent),
|
|
291
|
-
multi: true
|
|
292
|
-
}
|
|
293
|
-
], 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 class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 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=\"standardHelpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'StandardHelpText'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"standardHelpText\"\n ></small>\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]=\"'foehn-input.clear-button.label' | fromDictionary\"\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;box-shadow: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.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" }] }); }
|
|
294
|
-
}
|
|
295
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnInputNumberComponent, decorators: [{
|
|
296
|
-
type: Component,
|
|
297
|
-
args: [{ selector: 'foehn-input-number', providers: [
|
|
298
|
-
{
|
|
299
|
-
provide: FoehnInputComponent,
|
|
300
|
-
useExisting: forwardRef(() => FoehnInputNumberComponent),
|
|
301
|
-
multi: true
|
|
302
|
-
}
|
|
303
|
-
], 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 class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 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=\"standardHelpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'StandardHelpText'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"standardHelpText\"\n ></small>\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]=\"'foehn-input.clear-button.label' | fromDictionary\"\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;box-shadow: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"] }]
|
|
304
|
-
}], ctorParameters: () => [{ type: i1.CurrencyHelper }, { type: i2.SdkDictionaryService }], propDecorators: { hideStandardHelpText: [{
|
|
305
|
-
type: Input
|
|
306
|
-
}], allowDecimal: [{
|
|
307
|
-
type: Input
|
|
308
|
-
}], allowNegative: [{
|
|
309
|
-
type: Input
|
|
310
|
-
}], maxDecimalCount: [{
|
|
311
|
-
type: Input
|
|
312
|
-
}], allowFreeInput: [{
|
|
313
|
-
type: Input
|
|
314
|
-
}], allowLeadingZero: [{
|
|
315
|
-
type: Input
|
|
316
|
-
}], model: [{
|
|
317
|
-
type: Input
|
|
318
|
-
}] } });
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFJUixNQUFNLGVBQWUsQ0FBQztBQUV2QiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNILHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ3RCLE1BQU0sNENBQTRDLENBQUM7QUFDcEQsT0FBTyxFQUVILGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IsMENBQTBDLEVBQzFDLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDdkIsb0NBQW9DLEVBQ3BDLHdCQUF3QixFQUN4QixlQUFlLEVBQ2xCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7QUFFekIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFhLEVBQVcsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztBQWNyRSxNQUFNLE9BQU8seUJBQ1QsU0FBUSx5QkFBeUI7SUF1QmpDLFlBQ1ksY0FBOEIsRUFDOUIsaUJBQXVDO1FBRS9DLEtBQUssRUFBRSxDQUFDO1FBSEEs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QUNuQixLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFDL0IsQ0FBQztnQkFDQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEQsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOytHQXpXUSx5QkFBeUI7bUdBQXpCLHlCQUF5QixpU0FSdkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osc0VDL0NMLDQvRkF3RkE7OzRGRHZDYSx5QkFBeUI7a0JBWnJDLFNBQVM7K0JBQ0ksb0JBQW9CLGFBR25CO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtzSEFPRCxvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQWtCRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHtcbiAgICBmb3JtYXREZWNpbWFsQ3VycmVuY3ksXG4gICAgZm9ybWF0Tm9uRGVjaW1hbEN1cnJlbmN5LFxuICAgIGZvcm1hdE51bWJlckFzR2l2ZW5cbn0gZnJvbSAnLi4vZGlyZWN0aXZlcy9jdXJyZW5jeS1mb3JtYXR0ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgQ3VycmVuY3lIZWxwZXIsXG4gICAgREVDSU1BTFNfU0VQQVJBVE9SXG59IGZyb20gJy4uL3Nkay1jdXJyZW5jeS9jdXJyZW5jeS5oZWxwZXInO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VobklucHV0U3RyaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC1zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgQ0xFQU5fREVDSU1BTF9OVU1CRVJTX1BBVFRFUk4sXG4gICAgQ0xFQU5fTkVHQVRJVkVfQU5EX0RFQ0lNQUxfTlVNQkVSU19QQVRURVJOLFxuICAgIENMRUFOX05FR0FUSVZFX05VTUJFUlNfUEFUVEVSTixcbiAgICBDTEVBTl9OVU1CRVJTX1BBVFRFUk4sXG4gICAgREVDSU1BTF9OVU1CRVJTX1BBVFRFUk4sXG4gICAgSFRNTF9ERUNJTUFMX1BBVFRFUk4sXG4gICAgSFRNTF9OT19ERUNJTUFMX1BBVFRFUk4sXG4gICAgTkVHQVRJVkVfQU5EX0RFQ0lNQUxfTlVNQkVSU19QQVRURVJOLFxuICAgIE5FR0FUSVZFX05VTUJFUlNfUEFUVEVSTixcbiAgICBOVU1CRVJTX1BBVFRFUk5cbn0gZnJvbSAnLi9wYXR0ZXJuLmNvbnN0JztcblxuY29uc3QgaXNEZWZpbmVkID0gKHZhbHVlOiBudW1iZXIpOiBib29sZWFuID0+IHZhbHVlID09PSAwIHx8ICEhdmFsdWU7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4taW5wdXQtbnVtYmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuSW5wdXROdW1iZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5JbnB1dE51bWJlckNvbXBvbmVudFxuICAgIGV4dGVuZHMgRm9laG5JbnB1dFN0cmluZ0NvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgICBASW5wdXQoKVxuICAgIGhpZGVTdGFuZGFyZEhlbHBUZXh0ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGFsbG93RGVjaW1hbDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dOZWdhdGl2ZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4RGVjaW1hbENvdW50ID0gMjtcblxuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dGcmVlSW5wdXQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dMZWFkaW5nWmVybyA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsSGVscFRleHQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGN1cnJlbmN5SGVscGVyOiBDdXJyZW5jeUhlbHBlcixcbiAgICAgICAgcHJpdmF0ZSBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBnZXQgbW9kZWwoKTogc3RyaW5nIHtcbiAgICAgICAgLy8gSWYgdGhlIHNldHRlciBpcyBvdmVycmlkZGVuLCBpdCdzIGNyaXRpY2FsIHRvIG92ZXJyaWRlIHRoZSBnZXR0ZXIgdG9vLlxuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbF87XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbW9kZWwodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyBUaGlzIGRvZXNuJ3QgdHJpZ2dlciB0aGUgY29tcG9uZW50J3MgdmVyc2lvbiBvZiB1cGRhdGVOZ01vZGVsIHN0cmFpdCBhd2F5IGFzIHRoaXMgbWlnaHRcbiAgICAgICAgLy8gYmUgY2FsbGVkIGJlZm9yZSBhbGxvd0RlY2ltYWwgb3IgYWxsb3dOZWdhdGl2ZSBhcmUgcHJvcGVybHkgc2V0IChiZWZvcmUgdGhlIGluaXQgbGlmZWN5Y2xlXG4gICAgICAgIC8vIG9mIHRoZSBjb21wb25lbnQpLiBUaGlzIGlzIGNyaXRpY2FsIHRvIG5vdCByZS1mb3JtYXQgdGhlIGlucHV0IGJlZm9yZSB0aGUgT25Jbml0LCBvdGhlcndpc2VcbiAgICAgICAgLy8gd2UgbWlnaHQgZW5kIHVwIHdpdGggaW52YWxpZCB2YWx1ZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuIHRoaXMudXBkYXRlTmdNb2RlbCBpcyBjYWxsZWQgaW1wbGljaXRseVxuICAgICAgICAvLyBhcyBzdXBlci51cGRhdGVOZ01vZGVsIHdpbGwgZW1pdCBhIGNoYW5nZSBvbiB0aGlzLm1vZGVsQ2hhbmdlLlxuICAgICAgICAvLyBGSVhNRSB0aGlzIGlzIGEgaGFjayBhbmQgc2hvdWxkIGJlIHJlZmFjdG9yZWQuXG4gICAgICAgIHN1cGVyLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMudHlwZSA9ICd0ZXh0JztcblxuICAgICAgICAvLyBQYXR0ZXJuIHVzZWQgb25seSBmb3IgbnVtcGFkIHRyaWdnZXIgb24gbW9iaWxlIHBob25lc1xuICAgICAgICB0aGlzLnBhdHRlcm4gPSB0aGlzLmFsbG93RGVjaW1hbFxuICAgICAgICAgICAgPyBIVE1MX0RFQ0lNQUxfUEFUVEVSTlxuICAgICAgICAgICAgOiBIVE1MX05PX0RFQ0lNQUxfUEFUVEVSTjtcblxuICAgICAgICB0aGlzLm1heGxlbmd0aCA9ICEhdGhpcy5tYXhsZW5ndGggPyB0aGlzLm1heGxlbmd0aCA6IDk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBoYXNDaGFuZ2VzID0gT2JqZWN0LmtleXMoY2hhbmdlcylcbiAgICAgICAgICAgIC5maWx0ZXIoayA9PiBrICE9PSAnbW9kZWwnKVxuICAgICAgICAgICAgLm1hcChrID0+IGNoYW5nZXNba10pXG4gICAgICAgICAgICAuZmluZChjaGFuZ2UgPT4gY2hhbmdlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlLnByZXZpb3VzVmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IGhlbHBUZXh0SGFzQ2hhbmdlZCA9XG4gICAgICAgICAgICBjaGFuZ2VzLmhlbHBUZXh0Py5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuaGVscFRleHQ/LnByZXZpb3VzVmFsdWU7XG5cbiAgICAgICAgaWYgKGhlbHBUZXh0SGFzQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsSGVscFRleHQgPSBjaGFuZ2VzLmhlbHBUZXh0LmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNDaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZUhlbHBUZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRNYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuYWxsb3dGcmVlSW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRNYXhMZW5ndGgoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVOZ01vZGVsKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VG9FbXB0eSh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNEZWxldGluZyA9IHZhbHVlLnRvU3RyaW5nKCk/Lmxlbmd0aCA8IHRoaXMubW9kZWw/Lmxlbmd0aDtcblxuICAgICAgICBsZXQgY2xlYW5OdW1iZXI7XG4gICAgICAgIGlmICghdGhpcy5hbGxvd0ZyZWVJbnB1dCkge1xuICAgICAgICAgICAgY2xlYW5OdW1iZXIgPSB0aGlzLmdldENsZWFuTnVtYmVyKHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgY29uc3QgaXNNb2RlbFZhbGlkID0gdGhpcy5pc01vZGVsVmFsaWQoY2xlYW5OdW1iZXIpO1xuICAgICAgICAgICAgaWYgKCFpc01vZGVsVmFsaWQgJiYgIWlzRGVsZXRpbmcpIHtcbiAgICAgICAgICAgICAgICBjbGVhbk51bWJlciA9IHRoaXMubW9kZWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub0NvbW1hU3RyaW5nID0gdGhpcy5yZXBsYWNlQ29tbWFXaXRoRG90KHZhbHVlKTtcbiAgICAgICAgICAgIGNsZWFuTnVtYmVyID1cbiAgICAgICAgICAgICAgICBub0NvbW1hU3RyaW5nICYmIHR5cGVvZiBub0NvbW1hU3RyaW5nID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgICAgICA/IG5vQ29tbWFTdHJpbmcucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xFQU5fTkVHQVRJVkVfQU5EX0RFQ0lNQUxfTlVNQkVSU19QQVRURVJOLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiBub0NvbW1hU3RyaW5nO1xuICAgICAgICAgICAgLy8gY2hlY2sgdGhhdCBpdCBpcyBhIG51bWJlciBpbiBhbnkgb2YgaXRzIHBvc3NpYmxlIGZvcm1cbiAgICAgICAgICAgIC8vIHRvIGF2b2lkIC0zLjE0LTIzLS01MzRcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhTkVHQVRJVkVfQU5EX0RFQ0lNQUxfTlVNQkVSU19QQVRURVJOLnRlc3QoY2xlYW5OdW1iZXIpICYmXG4gICAgICAgICAgICAgICAgIWlzRGVsZXRpbmdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNsZWFuTnVtYmVyID0gdGhpcy5tb2RlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLnVwZGF0ZU5nTW9kZWwoY2xlYW5OdW1iZXIpO1xuXG4gICAgICAgIC8vIE5lZWQgdG8gdXBkYXRlIEhUTUwgaW5wdXQgdmFsdWUgYmVjYXVzZSB3ZSBsZXQgdXNlciBpbnB1dCB3aGF0IGhlIHdhbnRzIGFuZCB0aGVuIHdlIGNsZWFuIG1vZGVsXG4gICAgICAgIHRoaXMudXBkYXRlSW5wdXRFbGVtZW50VmFsdWUoY2xlYW5OdW1iZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRvIGJlIHVzZWQgZm9yIHBvc3QtZm9ybWF0dGluZyBieSBkaXJlY3RpdmVzLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBvZiBtb2RlbFxuICAgICAqL1xuICAgIGZvcmNlVXBkYXRlTmdNb2RlbCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZWxfID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlSW5wdXRFbGVtZW50VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNTdHJpbmdBVmFsaWROdW1iZXIodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0aW9uUmVnZXgoKS50ZXN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTW9kZWxWYWxpZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU3RyaW5nQVZhbGlkTnVtYmVyKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhbGlkYXRpb25SZWdleChpc0ZvckNsZWFuOiBib29sZWFuID0gZmFsc2UpOiBSZWdFeHAge1xuICAgICAgICBpZiAodGhpcy5hbGxvd0RlY2ltYWwgfHwgdGhpcy5hbGxvd05lZ2F0aXZlKSB7XG4gICAgICAgICAgICAvLyBBbGxvdyBkZWNpbWFsIGFuZCBuZWdhdGl2ZVxuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dEZWNpbWFsICYmIHRoaXMuYWxsb3dOZWdhdGl2ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhaXNGb3JDbGVhblxuICAgICAgICAgICAgICAgICAgICA/IE5FR0FUSVZFX0FORF9ERUNJTUFMX05VTUJFUlNfUEFUVEVSTlxuICAgICAgICAgICAgICAgICAgICA6IENMRUFOX05FR0FUSVZFX0FORF9ERUNJTUFMX05VTUJFUlNfUEFUVEVSTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEFsbG93IGRlY2ltYWxcbiAgICAgICAgICAgIGlmICh0aGlzLmFsbG93RGVjaW1hbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhaXNGb3JDbGVhblxuICAgICAgICAgICAgICAgICAgICA/IERFQ0lNQUxfTlVNQkVSU19QQVRURVJOXG4gICAgICAgICAgICAgICAgICAgIDogQ0xFQU5fREVDSU1BTF9OVU1CRVJTX1BBVFRFUk47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBBbGxvdyBuZWdhdGl2ZVxuICAgICAgICAgICAgcmV0dXJuICFpc0ZvckNsZWFuXG4gICAgICAgICAgICAgICAgPyBORUdBVElWRV9OVU1CRVJTX1BBVFRFUk5cbiAgICAgICAgICAgICAgICA6IENMRUFOX05FR0FUSVZFX05VTUJFUlNfUEFUVEVSTjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIWlzRm9yQ2xlYW4gPyBOVU1CRVJTX1BBVFRFUk4gOiBDTEVBTl9OVU1CRVJTX1BBVFRFUk47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXBsYWNlQ29tbWFXaXRoRG90KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoJywnLCAnZycpLCBERUNJTUFMU19TRVBBUkFUT1IpXG4gICAgICAgICAgICA6IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlTm9uTnVtZXJpY0NoYXJhY3RlcnModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IHZhbHVlLnJlcGxhY2UodGhpcy5nZXRWYWxpZGF0aW9uUmVnZXgodHJ1ZSksICcnKVxuICAgICAgICAgICAgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFuRGVjaW1hbHMoXG4gICAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgICAgIHNlcGFyYXRvcjogc3RyaW5nID0gREVDSU1BTFNfU0VQQVJBVE9SXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdGhpcy5hbGxvd0RlY2ltYWwgfHwgIXZhbHVlLmluY2x1ZGVzKHNlcGFyYXRvcikpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFtpbnRnLCBkZWNdID0gdmFsdWUuc3BsaXQoc2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3QgY2xlYW5EZWMgPSBkZWMuc3Vic3RyaW5nKDAsIHRoaXMubWF4RGVjaW1hbENvdW50KTtcblxuICAgICAgICByZXR1cm4gaW50ZyArIHNlcGFyYXRvciArIGNsZWFuRGVjO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2xlYW5OdW1iZXIodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG5vQ29tbWFTdHJpbmcgPSB0aGlzLnJlcGxhY2VDb21tYVdpdGhEb3QodmFsdWUpO1xuICAgICAgICBjb25zdCBjbGVhbkRlY2ltYWxzID0gdGhpcy5jbGVhbkRlY2ltYWxzKG5vQ29tbWFTdHJpbmcpO1xuICAgICAgICBjb25zdCBjbGVhbk5vbk51bWVyaWNDaGFyYWN0ZXJzID1cbiAgICAgICAgICAgIHRoaXMucmVtb3ZlTm9uTnVtZXJpY0NoYXJhY3RlcnMoY2xlYW5EZWNpbWFscyk7XG4gICAgICAgIGNvbnN0IGNsZWFuTnVtYmVyID0gIXRoaXMuYWxsb3dMZWFkaW5nWmVyb1xuICAgICAgICAgICAgPyB0aGlzLnJlbW92ZUxlYWRpbmdaZXJvKFxuICAgICAgICAgICAgICAgICAgY2xlYW5Ob25OdW1lcmljQ2hhcmFjdGVycyxcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dEZWNpbWFsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogY2xlYW5Ob25OdW1lcmljQ2hhcmFjdGVycztcblxuICAgICAgICBpZiAodGhpcy5pc0VtcHR5V2hlblRyaW1tZWRJZlN0cmluZyhjbGVhbk51bWJlcikpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNsZWFuTnVtYmVyLnN1YnN0cmluZygwLCB0aGlzLmdldE1heExlbmd0aCgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUlucHV0RWxlbWVudFZhbHVlKGNsZWFuTnVtYmVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgLy8gTm8gbmVlZCB0byB1cGRhdGUgdGhlIG5hdGl2ZSBlbGVtZW50IGlmIGl0IGRvZXNuJ3QgeWV0IGV4aXN0LlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5wdXRFbGVtVmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgICAgICBpZiAoaW5wdXRFbGVtVmFsdWUgIT09IGNsZWFuTnVtYmVyKSB7XG4gICAgICAgICAgICAvLyBOZWVkIHRvIHVwZGF0ZSBIVE1MIGlucHV0IHZhbHVlIGJlY2F1c2Ugd2UgbGV0IHVzZXIgaW5wdXQgd2hhdCBoZSB3YW50cyBhbmQgdGhlbiB3ZSBjbGVhbiBtb2RlbFxuICAgICAgICAgICAgLy8gRG8gbm90IHNldCBhbiB1bmRlZmluZWQgdmFsdWUgaW50byBhIFwibmF0aXZlRWxlbWVudFwiIHZhbHVlIG90aGVyd2lzZSBpdCB3aWxsIHByaW50IG91dCBcInVuZGVmaW5lZFwiIGluIGlucHV0IGZpZWxkXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID1cbiAgICAgICAgICAgICAgICBjbGVhbk51bWJlciA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNsZWFuTnVtYmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRUb0VtcHR5KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gRW1wdHkgbWVhbnMgbnVsbCwgb3RoZXJ3aXNlIHRoZSBiYWNrZW5kIGRvZXNuJ3QgaGFuZGxlIG51bWJlcnMgcHJvcGVybHkuIFdlIGhhdmUgdG8ga2VlcCAndW5kZWZpbmVkJ1xuICAgICAgICAvLyBpZiAndW5kZWZpbmVkJyBvdGhlcndpc2UgQW5ndWxhciBjb21wbGFpbnMgYWJvdXQgdGhlIHZhbHVlIG9mIHRoZSBtb2RlbCBiZWluZyBjaGFuZ2VkIHdpdGhvdXQgdXBkYXRpbmdcbiAgICAgICAgLy8gdGhlIHZpZXcuXG4gICAgICAgIGNvbnN0IGVtcHR5VmFsdWUgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogbnVsbDtcbiAgICAgICAgc3VwZXIudXBkYXRlTmdNb2RlbChlbXB0eVZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dEVsZW1lbnRWYWx1ZShlbXB0eVZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZUhlbHBUZXh0KCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLmhpZGVTdGFuZGFyZEhlbHBUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmhlbHBUZXh0ID0gdGhpcy5pbml0aWFsSGVscFRleHQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuYWxsb3dGcmVlSW5wdXQpIHtcbiAgICAgICAgICAgIGlmIChpc0RlZmluZWQodGhpcy5taW4pICYmIGlzRGVmaW5lZCh0aGlzLm1heCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoISF0aGlzLmluaXRpYWxIZWxwVGV4dD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGVscFRleHQgPSBgJHt0aGlzLmluaXRpYWxIZWxwVGV4dH08YnIvPmA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWxwVGV4dCA9ICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmhlbHBUZXh0ICs9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5U3luYyhcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWlucHV0LW51bWJlci5zdGFuZGFyZC1oZWxwLXRleHQubGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5WYWx1ZTogZm9ybWF0TnVtYmVyQXNHaXZlbih0aGlzLm1pbi50b1N0cmluZygpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heFZhbHVlOiBmb3JtYXROdW1iZXJBc0dpdmVuKHRoaXMubWF4LnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy5pbml0aWFsSGVscFRleHQ/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5oZWxwVGV4dCA9IGAke3RoaXMuaW5pdGlhbEhlbHBUZXh0fTxici8+YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGVscFRleHQgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1heEludGVnZXJDb3VudCA9IHRoaXMuYWxsb3dEZWNpbWFsXG4gICAgICAgICAgICA/IHRoaXMubWF4bGVuZ3RoIC0gdGhpcy5tYXhEZWNpbWFsQ291bnQgLSAxXG4gICAgICAgICAgICA6IHRoaXMubWF4bGVuZ3RoO1xuXG4gICAgICAgIGxldCBtYXhBc1N0cmluZztcbiAgICAgICAgaWYgKCEhdGhpcy5tYXgpIHtcbiAgICAgICAgICAgIG1heEFzU3RyaW5nID0gdGhpcy5tYXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXhBc1N0cmluZyA9ICc5Jy5yZXBlYXQobWF4SW50ZWdlckNvdW50KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFsbG93RGVjaW1hbCkge1xuICAgICAgICAgICAgICAgIG1heEFzU3RyaW5nICs9IGAuJHsnOScucmVwZWF0KHRoaXMubWF4RGVjaW1hbENvdW50KX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1pbkFzU3RyaW5nO1xuICAgICAgICBpZiAodGhpcy5taW4pIHtcbiAgICAgICAgICAgIG1pbkFzU3RyaW5nID0gdGhpcy5taW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtaW5Bc1N0cmluZyA9IHRoaXMuYWxsb3dOZWdhdGl2ZVxuICAgICAgICAgICAgICAgID8gYC0keyc5Jy5yZXBlYXQobWF4SW50ZWdlckNvdW50IC0gMSl9YFxuICAgICAgICAgICAgICAgIDogJzAnO1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dEZWNpbWFsKSB7XG4gICAgICAgICAgICAgICAgbWluQXNTdHJpbmcgKz0gdGhpcy5hbGxvd05lZ2F0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gYC4keyc5Jy5yZXBlYXQodGhpcy5tYXhEZWNpbWFsQ291bnQgfHwgMCl9YFxuICAgICAgICAgICAgICAgICAgICA6IGAuJHsnMCcucmVwZWF0KHRoaXMubWF4RGVjaW1hbENvdW50IHx8IDApfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhlbHBUZXh0ICs9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5U3luYyhcbiAgICAgICAgICAgICdmb2Vobi1pbnB1dC1udW1iZXIuc3RhbmRhcmQtaGVscC10ZXh0LmxhYmVsJyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtaW5WYWx1ZTogdGhpcy5mb3JtYXRWYWx1ZShtaW5Bc1N0cmluZyksXG4gICAgICAgICAgICAgICAgbWF4VmFsdWU6IHRoaXMuZm9ybWF0VmFsdWUobWF4QXNTdHJpbmcpXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuYWxsb3dEZWNpbWFsKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGVjaW1hbEN1cnJlbmN5KFxuICAgICAgICAgICAgICAgIHZhbHVlPy50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHRoaXMubWF4RGVjaW1hbENvdW50LFxuICAgICAgICAgICAgICAgIHRoaXMubWF4bGVuZ3RoLFxuICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dGcmVlSW5wdXRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1hdE5vbkRlY2ltYWxDdXJyZW5jeSh2YWx1ZT8udG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVMZWFkaW5nWmVybyhcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgYWxsb3dEZWNpbWFsOiBib29sZWFuID0gZmFsc2VcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBOZXZlciBjbGVhbiBmaXJzdCBjaGFyYWN0ZXIgYmVjYXVzZSBpdCBjb3VsZCBiZSBvbmx5IFwiMFwiIG9yIFwiLVwiXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvciBkZWNpbWFsIHZhbHVlcywgd2UgY2FuJ3QgcmVtb3ZlIFwiMFwiIGZyb20gXCIwLlwiIG9yIFwiLTAuXCIgYmVjYXVzZSB3ZSBjYW4ndCBwcmVkaWN0IHdoYXQgY29tZXMgYWZ0ZXIgdGhlIGRvdFxuICAgICAgICBpZiAoYWxsb3dEZWNpbWFsICYmICh2YWx1ZSA9PT0gJzAuJyB8fCB2YWx1ZSA9PT0gJy0wLicpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgXCIwXCIgZnJvbSBcIi0wXCIgZm9yIGZvcmJpZGRlbiBkZWNpbWFsIHZhbHVlc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhYWxsb3dEZWNpbWFsICYmXG4gICAgICAgICAgICB2YWx1ZS5pbmNsdWRlcygnLScpICYmXG4gICAgICAgICAgICB2YWx1ZS5sZW5ndGggPT09IDIgJiZcbiAgICAgICAgICAgIHZhbHVlLnN1YnN0cmluZygxKSA9PT0gJzAnXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnN1YnN0cmluZygwLCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENsZWFuIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGludGVnZXJcbiAgICAgICAgaWYgKCF2YWx1ZS5pbmNsdWRlcyhERUNJTUFMU19TRVBBUkFUT1IpKSB7XG4gICAgICAgICAgICAvLyBSZW1vdmUgXCIwXCIgZnJvbSBcIjAxXCIsIFwiMDJcIi4uLiBudW1iZXJzXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgIXZhbHVlLmluY2x1ZGVzKCctJykgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5sZW5ndGggPT09IDIgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5zdWJzdHJpbmcoMCwgMSkgPT09ICcwJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUmVtb3ZlIFwiMFwiIGZyb20gXCItMDFcIiwgXCItMDJcIi4uLiBudW1iZXJzXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdmFsdWUuaW5jbHVkZXMoJy0nKSAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmxlbmd0aCA9PT0gMyAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLnN1YnN0cmluZygxLCAyKSA9PT0gJzAnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3Vic3RyaW5nKDAsIDEpICsgdmFsdWUuc3Vic3RyaW5nKDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAgY2xlYXJhYmxlLWlucHV0LWZvcm0tZ3JvdXBcIlxuICAgIFtjbGFzcy5oYXMtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbY2xhc3MudmQtZm9ybS1ncm91cC1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ0NvbnRhaW5lcicpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWxhYmVsXCJcbiAgICAgICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICAgICAqbmdJZj1cImxhYmVsICYmIHR5cGUgIT09ICdoaWRkZW4nXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAndmlzdWFsbHktaGlkZGVuJyA6IGxhYmVsU3R5bGVNb2RpZmllclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgIDxmb2Vobi1oZWxwLW1vZGFsXG4gICAgICAgICAgICBjbGFzcz1cInJlbW92ZVBhZGRpbmdCdXR0b25cIlxuICAgICAgICAgICAgKm5nSWY9XCIhIWhlbHBNb2RhbFwiXG4gICAgICAgICAgICBbbW9kYWxDb250ZW50XT1cImhlbHBNb2RhbFwiXG4gICAgICAgID48L2ZvZWhuLWhlbHAtbW9kYWw+XG4gICAgPC9kaXY+XG5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cInN0YW5kYXJkSGVscFRleHQgJiYgdHlwZSAhPT0gJ2hpZGRlbidcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdTdGFuZGFyZEhlbHBUZXh0J1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJzdGFuZGFyZEhlbHBUZXh0XCJcbiAgICA+PC9zbWFsbD5cblxuICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cImhlbHBUZXh0ICYmIHR5cGUgIT09ICdoaWRkZW4nXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnSGVscCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPGlucHV0XG4gICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IGhhc0luaGVyaXRFcnJvckZyb21QYXJlbnQoKVwiXG4gICAgICAgIFtjbGFzcy5jbGVhcmFibGUtaW5wdXRdPVwiZGlzcGxheUNsZWFyQnV0dG9uKCkgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJnZXRNYXhMZW5ndGgoKVwiXG4gICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJnZXRBdXRvQ29tcGxldGUoKVwiXG4gICAgICAgIFthdHRyLmF1dG9jYXBpdGFsaXplXT1cImF1dG9jYXBpdGFsaXplXCJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICAgIFthdHRyLnBhdHRlcm5dPVwicGF0dGVyblwiXG4gICAgICAgIFthdHRyLm1pbl09XCJtaW5cIlxuICAgICAgICBbYXR0ci5tYXhdPVwibWF4XCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImdldERlc2NyaWJlZEJ5KClcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgfHwgbnVsbFwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcbiAgICAgICAgKHBhc3RlKT1cIm9uUGFzdGUoJGV2ZW50KVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU5nTW9kZWwoJGV2ZW50KVwiXG4gICAgICAgIChpbnB1dCk9XCJoYW5kbGVDaGFuZ2UoZW50cnlDb21wb25lbnQudmFsdWUpXCJcbiAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAjZW50cnlDb21wb25lbnRcbiAgICAvPlxuXG4gICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ0NsZWFyQnV0dG9uJ1wiXG4gICAgICAgICpuZ0lmPVwiZGlzcGxheUNsZWFyQnV0dG9uKCkgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwiY2xlYXJhYmxlLWlucHV0LWNsZWFyLWJ1dHRvbiBidG5cIlxuICAgICAgICAoY2xpY2spPVwib25DbGVhcigpXCJcbiAgICA+XG4gICAgICAgIDxmb2Vobi1pY29uLXRpbWVzXG4gICAgICAgICAgICBjbGFzcz1cImNsZWFyYWJsZS1pbnB1dC1jbGVhci1idXR0b24taWNvblwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ2ZvZWhuLWlucHV0LmNsZWFyLWJ1dHRvbi5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgICAgID48L2ZvZWhuLWljb24tdGltZXM+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Component, forwardRef } from '@angular/core';
|
|
2
|
-
import { FoehnInputComponent } from './foehn-input.component';
|
|
3
|
-
import { FoehnInputStringComponent } from './foehn-input-string.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../foehn-icons/foehn-icon-times.component";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "@angular/forms";
|
|
8
|
-
import * as i4 from "../foehn-validation-alerts/foehn-validation-alerts.component";
|
|
9
|
-
import * as i5 from "../foehn-help-modal/foehn-help-modal.component";
|
|
10
|
-
import * as i6 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
11
|
-
export class FoehnInputPasswordComponent extends FoehnInputStringComponent {
|
|
12
|
-
constructor(ngZone) {
|
|
13
|
-
super();
|
|
14
|
-
this.ngZone = ngZone;
|
|
15
|
-
}
|
|
16
|
-
ngOnInit() {
|
|
17
|
-
super.ngOnInit();
|
|
18
|
-
this.type = 'password';
|
|
19
|
-
this.autocomplete = 'current-password';
|
|
20
|
-
}
|
|
21
|
-
onModelChange(value) {
|
|
22
|
-
clearTimeout(this.timeoutReference);
|
|
23
|
-
if (value === undefined || value === null || !!value) {
|
|
24
|
-
this.updateNgModel(value);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
this.timeoutReference = setTimeout(() => {
|
|
28
|
-
this.updateNgModel(null);
|
|
29
|
-
}, 0);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnInputPasswordComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnInputPasswordComponent, selector: "foehn-input-password", providers: [
|
|
34
|
-
{
|
|
35
|
-
provide: FoehnInputComponent,
|
|
36
|
-
useExisting: forwardRef(() => FoehnInputPasswordComponent),
|
|
37
|
-
multi: true
|
|
38
|
-
}
|
|
39
|
-
], 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 class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 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=\"standardHelpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'StandardHelpText'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"standardHelpText\"\n ></small>\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]=\"'foehn-input.clear-button.label' | fromDictionary\"\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;box-shadow: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.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" }] }); }
|
|
40
|
-
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnInputPasswordComponent, decorators: [{
|
|
42
|
-
type: Component,
|
|
43
|
-
args: [{ selector: 'foehn-input-password', providers: [
|
|
44
|
-
{
|
|
45
|
-
provide: FoehnInputComponent,
|
|
46
|
-
useExisting: forwardRef(() => FoehnInputPasswordComponent),
|
|
47
|
-
multi: true
|
|
48
|
-
}
|
|
49
|
-
], 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 class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 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=\"standardHelpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'StandardHelpText'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"standardHelpText\"\n ></small>\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]=\"'foehn-input.clear-button.label' | fromDictionary\"\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;box-shadow: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"] }]
|
|
50
|
-
}], ctorParameters: () => [{ type: i0.NgZone }] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LXBhc3N3b3JkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7O0FBYzNFLE1BQU0sT0FBTywyQkFDVCxTQUFRLHlCQUF5QjtJQUtqQyxZQUFvQixNQUFjO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFEsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUVsQyxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDO0lBQzNDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN2QixZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0wsQ0FBQzsrR0F6QlEsMkJBQTJCO21HQUEzQiwyQkFBMkIsK0NBUnpCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLG1CQUFtQjtnQkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztnQkFDMUQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKLGlEQ2ZMLDQvRkF3RkE7OzRGRHZFYSwyQkFBMkI7a0JBWnZDLFNBQVM7K0JBQ0ksc0JBQXNCLGFBR3JCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgTmdab25lLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWlucHV0LXN0cmluZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWlucHV0LXBhc3N3b3JkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuSW5wdXRQYXNzd29yZENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobklucHV0UGFzc3dvcmRDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgdGltZW91dFJlZmVyZW5jZTogYW55O1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy50eXBlID0gJ3Bhc3N3b3JkJztcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGUgPSAnY3VycmVudC1wYXNzd29yZCc7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRSZWZlcmVuY2UpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCAhIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50aW1lb3V0UmVmZXJlbmNlID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKG51bGwpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwIGNsZWFyYWJsZS1pbnB1dC1mb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1sYWJlbFwiXG4gICAgICAgICAgICBbYXR0ci5mb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAgICAgKm5nSWY9XCJsYWJlbCAmJiB0eXBlICE9PSAnaGlkZGVuJ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3Zpc3VhbGx5LWhpZGRlbicgOiBsYWJlbFN0eWxlTW9kaWZpZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICA8Zm9laG4taGVscC1tb2RhbFxuICAgICAgICAgICAgY2xhc3M9XCJyZW1vdmVQYWRkaW5nQnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiISFoZWxwTW9kYWxcIlxuICAgICAgICAgICAgW21vZGFsQ29udGVudF09XCJoZWxwTW9kYWxcIlxuICAgICAgICA+PC9mb2Vobi1oZWxwLW1vZGFsPlxuICAgIDwvZGl2PlxuXG4gICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzIFtjb21wb25lbnRdPVwidGhpc1wiPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICA8c21hbGxcbiAgICAgICAgKm5nSWY9XCJzdGFuZGFyZEhlbHBUZXh0ICYmIHR5cGUgIT09ICdoaWRkZW4nXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnU3RhbmRhcmRIZWxwVGV4dCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwic3RhbmRhcmRIZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8c21hbGxcbiAgICAgICAgKm5nSWY9XCJoZWxwVGV4dCAmJiB0eXBlICE9PSAnaGlkZGVuJ1wiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ0hlbHAnXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImhlbHBUZXh0XCJcbiAgICA+PC9zbWFsbD5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxpbnB1dFxuICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBoYXNJbmhlcml0RXJyb3JGcm9tUGFyZW50KClcIlxuICAgICAgICBbY2xhc3MuY2xlYXJhYmxlLWlucHV0XT1cImRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWUgfHwgbGFiZWxcIlxuICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwiZ2V0TWF4TGVuZ3RoKClcIlxuICAgICAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiZ2V0QXV0b0NvbXBsZXRlKClcIlxuICAgICAgICBbYXR0ci5hdXRvY2FwaXRhbGl6ZV09XCJhdXRvY2FwaXRhbGl6ZVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgICBbYXR0ci5wYXR0ZXJuXT1cInBhdHRlcm5cIlxuICAgICAgICBbYXR0ci5taW5dPVwibWluXCJcbiAgICAgICAgW2F0dHIubWF4XT1cIm1heFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJnZXREZXNjcmliZWRCeSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXG4gICAgICAgIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudClcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVOZ01vZGVsKCRldmVudClcIlxuICAgICAgICAoaW5wdXQpPVwiaGFuZGxlQ2hhbmdlKGVudHJ5Q29tcG9uZW50LnZhbHVlKVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgI2VudHJ5Q29tcG9uZW50XG4gICAgLz5cblxuICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoKSArICdDbGVhckJ1dHRvbidcIlxuICAgICAgICAqbmdJZj1cImRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cImNsZWFyYWJsZS1pbnB1dC1jbGVhci1idXR0b24gYnRuXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiXG4gICAgPlxuICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgY2xhc3M9XCJjbGVhcmFibGUtaW5wdXQtY2xlYXItYnV0dG9uLWljb25cIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidmb2Vobi1pbnB1dC5jbGVhci1idXR0b24ubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICA+PC9mb2Vobi1pY29uLXRpbWVzPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|