@dsivd/prestations-ng 14.5.20 → 15.0.0-beta3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -6
- package/CONTRIBUTING.md +1 -1
- package/README.md +2 -0
- package/UPGRADING_V14.md +8 -11
- package/UPGRADING_V15.md +51 -0
- package/dsivd-prestations-ng-v15.0.0-beta3.tgz +0 -0
- package/esm2020/abstract-page-component.mjs +226 -0
- package/{esm2015/directives/currency-formatter.directive.js → esm2020/directives/currency-formatter.directive.mjs} +3 -3
- package/{esm2015/directives/formatter.module.js → esm2020/directives/formatter.module.mjs} +4 -4
- package/{esm2015/directives/iban-formatter.directive.js → esm2020/directives/iban-formatter.directive.mjs} +3 -3
- package/{esm2015/directives/ide-formatter.directive.js → esm2020/directives/ide-formatter.directive.mjs} +3 -3
- package/{esm2015/directives/ndc-formatter.directive.js → esm2020/directives/ndc-formatter.directive.mjs} +3 -3
- package/{esm2015/dsivd-prestations-ng.js → esm2020/dsivd-prestations-ng.mjs} +0 -0
- package/{esm2015/foehn-address/address.type.js → esm2020/foehn-address/address.type.mjs} +0 -0
- package/{esm2015/foehn-address/foehn-address.module.js → esm2020/foehn-address/foehn-address.module.mjs} +4 -4
- package/{esm2015/foehn-address/foehn-display-address.component.js → esm2020/foehn-address/foehn-display-address.component.mjs} +5 -9
- package/esm2020/foehn-address/foehn-input-address.component.mjs +366 -0
- package/esm2020/foehn-address/foehn-input-foreign-locality.component.mjs +66 -0
- package/{esm2015/foehn-address/foehn-input-foreign-street.component.js → esm2020/foehn-address/foehn-input-foreign-street.component.mjs} +6 -11
- package/esm2020/foehn-autocomplete/foehn-autocomplete.component.mjs +548 -0
- package/{esm2015/foehn-autocomplete/foehn-autocomplete.module.js → esm2020/foehn-autocomplete/foehn-autocomplete.module.mjs} +4 -4
- package/esm2020/foehn-boolean/foehn-boolean-checkbox.component.mjs +28 -0
- package/esm2020/foehn-boolean/foehn-boolean-radio.component.mjs +37 -0
- package/{esm2015/foehn-boolean/foehn-boolean.module.js → esm2020/foehn-boolean/foehn-boolean.module.mjs} +4 -4
- package/{esm2015/foehn-breadcrumb/breadcrumb-event.service.js → esm2020/foehn-breadcrumb/breadcrumb-event.service.mjs} +10 -10
- package/{esm2015/foehn-breadcrumb/breadcrumb.js → esm2020/foehn-breadcrumb/breadcrumb.mjs} +0 -0
- package/{esm2015/foehn-breadcrumb/foehn-breadcrumb.component.js → esm2020/foehn-breadcrumb/foehn-breadcrumb.component.mjs} +5 -9
- package/{esm2015/foehn-breadcrumb/foehn-breadcrumb.module.js → esm2020/foehn-breadcrumb/foehn-breadcrumb.module.mjs} +4 -4
- package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +283 -0
- package/{esm2015/foehn-checkables/foehn-checkables.module.js → esm2020/foehn-checkables/foehn-checkables.module.mjs} +4 -4
- package/esm2020/foehn-checkables/foehn-checkbox.component.mjs +36 -0
- package/esm2020/foehn-checkables/foehn-radio.component.mjs +63 -0
- package/esm2020/foehn-checkables/foehn-select.component.mjs +62 -0
- package/{esm2015/foehn-checkables/form-select-option-group.js → esm2020/foehn-checkables/form-select-option-group.mjs} +0 -0
- package/{esm2015/foehn-checkables/form-select-option.js → esm2020/foehn-checkables/form-select-option.mjs} +0 -0
- package/{esm2015/foehn-confirm-modal/foehn-confirm-modal-content.js → esm2020/foehn-confirm-modal/foehn-confirm-modal-content.mjs} +0 -0
- package/esm2020/foehn-confirm-modal/foehn-confirm-modal.component.mjs +39 -0
- package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.module.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.module.mjs} +4 -4
- package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.service.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.service.mjs} +3 -3
- package/{esm2015/foehn-date-picker/date-picker-navigation.helper.js → esm2020/foehn-date-picker/date-picker-navigation.helper.mjs} +7 -7
- package/{esm2015/foehn-date-picker/date-picker.helper.js → esm2020/foehn-date-picker/date-picker.helper.mjs} +4 -4
- package/{esm2015/foehn-date-picker/day-month.type.js → esm2020/foehn-date-picker/day-month.type.mjs} +0 -0
- package/{esm2015/foehn-date-picker/focused-day.type.js → esm2020/foehn-date-picker/focused-day.type.mjs} +0 -0
- package/{esm2015/foehn-date-picker/foehn-date-picker.component.js → esm2020/foehn-date-picker/foehn-date-picker.component.mjs} +22 -25
- package/{esm2015/foehn-date-picker/foehn-date-picker.module.js → esm2020/foehn-date-picker/foehn-date-picker.module.mjs} +4 -4
- package/{esm2015/foehn-date-picker/month-year.type.js → esm2020/foehn-date-picker/month-year.type.mjs} +0 -0
- package/esm2020/foehn-date-picker-button/foehn-date-picker-button.component.mjs +70 -0
- package/{esm2015/foehn-date-picker-button/foehn-date-picker-button.module.js → esm2020/foehn-date-picker-button/foehn-date-picker-button.module.mjs} +4 -4
- package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.mjs} +8 -11
- package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.module.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.module.mjs} +4 -4
- package/esm2020/foehn-decision-electronique/foehn-decision-electronique.component.mjs +36 -0
- package/{esm2015/foehn-decision-electronique/foehn-decision-electronique.module.js → esm2020/foehn-decision-electronique/foehn-decision-electronique.module.mjs} +4 -4
- package/esm2020/foehn-footer/foehn-footer.component.mjs +129 -0
- package/{esm2015/foehn-footer/foehn-footer.module.js → esm2020/foehn-footer/foehn-footer.module.mjs} +4 -4
- package/{esm2015/foehn-footer/footer-link.type.js → esm2020/foehn-footer/footer-link.type.mjs} +0 -0
- package/{esm2015/foehn-form/foehn-form.component.js → esm2020/foehn-form/foehn-form.component.mjs} +5 -8
- package/{esm2015/foehn-form/foehn-form.module.js → esm2020/foehn-form/foehn-form.module.mjs} +4 -4
- package/{esm2015/foehn-growl/foehn-growl.component.js → esm2020/foehn-growl/foehn-growl.component.mjs} +8 -12
- package/{esm2015/foehn-growl/foehn-growl.module.js → esm2020/foehn-growl/foehn-growl.module.mjs} +4 -4
- package/{esm2015/foehn-growl/growl-broker.service.js → esm2020/foehn-growl/growl-broker.service.mjs} +3 -3
- package/{esm2015/foehn-growl/growl-message.js → esm2020/foehn-growl/growl-message.mjs} +0 -0
- package/{esm2015/foehn-growl/growl-types.js → esm2020/foehn-growl/growl-types.mjs} +0 -0
- package/esm2020/foehn-header/foehn-header.component.mjs +69 -0
- package/{esm2015/foehn-header/foehn-header.module.js → esm2020/foehn-header/foehn-header.module.mjs} +4 -4
- package/{esm2015/foehn-header/foehn-skip-link.component.js → esm2020/foehn-header/foehn-skip-link.component.mjs} +5 -8
- package/{esm2015/foehn-help-modal/foehn-help-modal.component.js → esm2020/foehn-help-modal/foehn-help-modal.component.mjs} +5 -9
- package/{esm2015/foehn-help-modal/foehn-help-modal.module.js → esm2020/foehn-help-modal/foehn-help-modal.module.mjs} +4 -4
- package/{esm2015/foehn-help-modal/foehn-help-modal.type.js → esm2020/foehn-help-modal/foehn-help-modal.type.mjs} +0 -0
- package/{esm2015/foehn-icons/abstract-icon-component.js → esm2020/foehn-icons/abstract-icon-component.mjs} +4 -4
- package/{esm2015/foehn-icons/foehn-icon-calendar.component.js → esm2020/foehn-icons/foehn-icon-calendar.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-check-square-o.component.js → esm2020/foehn-icons/foehn-icon-check-square-o.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-check.component.js → esm2020/foehn-icons/foehn-icon-check.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-down.component.js → esm2020/foehn-icons/foehn-icon-chevron-down.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-left.component.js → esm2020/foehn-icons/foehn-icon-chevron-left.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-right.component.js → esm2020/foehn-icons/foehn-icon-chevron-right.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-up.component.js → esm2020/foehn-icons/foehn-icon-chevron-up.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-clock.component.js → esm2020/foehn-icons/foehn-icon-clock.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-comment-dots.component.js → esm2020/foehn-icons/foehn-icon-comment-dots.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-edit.component.js → esm2020/foehn-icons/foehn-icon-edit.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-external-link-alt.component.js → esm2020/foehn-icons/foehn-icon-external-link-alt.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-file-pdf.component.js → esm2020/foehn-icons/foehn-icon-file-pdf.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-info-circle.component.js → esm2020/foehn-icons/foehn-icon-info-circle.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-lock.component.js → esm2020/foehn-icons/foehn-icon-lock.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-map-marker.component.js → esm2020/foehn-icons/foehn-icon-map-marker.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-minus-circle.component.js → esm2020/foehn-icons/foehn-icon-minus-circle.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-plus-circle.component.js → esm2020/foehn-icons/foehn-icon-plus-circle.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-plus-square.component.js → esm2020/foehn-icons/foehn-icon-plus-square.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-search.component.js → esm2020/foehn-icons/foehn-icon-search.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-times.component.js → esm2020/foehn-icons/foehn-icon-times.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-trash-alt.component.js → esm2020/foehn-icons/foehn-icon-trash-alt.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-unlock-alt.component.js → esm2020/foehn-icons/foehn-icon-unlock-alt.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icons.module.js → esm2020/foehn-icons/foehn-icons.module.mjs} +4 -4
- package/esm2020/foehn-input/foehn-input-email.component.mjs +50 -0
- package/esm2020/foehn-input/foehn-input-hidden.component.mjs +53 -0
- package/{esm2015/foehn-input/foehn-input-number.component.js → esm2020/foehn-input/foehn-input-number.component.mjs} +10 -15
- package/esm2020/foehn-input/foehn-input-password.component.mjs +50 -0
- package/{esm2015/foehn-input/foehn-input-phone.component.js → esm2020/foehn-input/foehn-input-phone.component.mjs} +6 -11
- package/{esm2015/foehn-input/foehn-input-string.component.js → esm2020/foehn-input/foehn-input-string.component.mjs} +3 -3
- package/{esm2015/foehn-input/foehn-input-text.component.js → esm2020/foehn-input/foehn-input-text.component.mjs} +6 -11
- package/{esm2015/foehn-input/foehn-input-textarea.component.js → esm2020/foehn-input/foehn-input-textarea.component.mjs} +6 -11
- package/{esm2015/foehn-input/foehn-input.component.js → esm2020/foehn-input/foehn-input.component.mjs} +14 -14
- package/{esm2015/foehn-input/foehn-input.module.js → esm2020/foehn-input/foehn-input.module.mjs} +4 -4
- package/{esm2015/foehn-input/pattern.const.js → esm2020/foehn-input/pattern.const.mjs} +0 -0
- package/esm2020/foehn-input-date/foehn-input-date.component.mjs +90 -0
- package/esm2020/foehn-input-time/foehn-input-time.component.mjs +75 -0
- package/esm2020/foehn-list/foehn-list.component.mjs +128 -0
- package/{esm2015/foehn-list/foehn-list.module.js → esm2020/foehn-list/foehn-list.module.mjs} +4 -4
- package/{esm2015/foehn-list/page-change-event.js → esm2020/foehn-list/page-change-event.mjs} +0 -0
- package/esm2020/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +122 -0
- package/{esm2015/foehn-menu-prestation/abstract-menu-page.component.js → esm2020/foehn-menu-prestation/abstract-menu-page.component.mjs} +3 -3
- package/{esm2015/foehn-menu-prestation/abstract-page-from-menu.component.js → esm2020/foehn-menu-prestation/abstract-page-from-menu.component.mjs} +3 -3
- package/{esm2015/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.js → esm2020/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs} +5 -8
- package/{esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.js → esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.mjs} +0 -0
- package/{esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-item.js → esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-item.mjs} +0 -0
- package/esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +71 -0
- package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +35 -0
- package/{esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.js → esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs} +5 -8
- package/{esm2015/foehn-menu-prestation/foehn-menu-prestation.module.js → esm2020/foehn-menu-prestation/foehn-menu-prestation.module.mjs} +4 -4
- package/{esm2015/foehn-misc/foehn-abbr.component.js → esm2020/foehn-misc/foehn-abbr.component.mjs} +5 -9
- package/{esm2015/foehn-misc/foehn-misc.module.js → esm2020/foehn-misc/foehn-misc.module.mjs} +4 -4
- package/esm2020/foehn-modal/foehn-modal.component.mjs +96 -0
- package/{esm2015/foehn-modal/foehn-modal.module.js → esm2020/foehn-modal/foehn-modal.module.mjs} +4 -4
- package/esm2020/foehn-nav13/foehn-input-nav13.component.mjs +94 -0
- package/{esm2015/foehn-nav13/foehn-input-nav13.module.js → esm2020/foehn-nav13/foehn-input-nav13.module.mjs} +4 -4
- package/esm2020/foehn-navigation/foehn-navigation.component.mjs +94 -0
- package/{esm2015/foehn-navigation/foehn-navigation.module.js → esm2020/foehn-navigation/foehn-navigation.module.mjs} +4 -4
- package/{esm2015/foehn-navigation/foehn-navigation.service.js → esm2020/foehn-navigation/foehn-navigation.service.mjs} +12 -12
- package/{esm2015/foehn-notfound/foehn-notfound.component.js → esm2020/foehn-notfound/foehn-notfound.component.mjs} +5 -8
- package/{esm2015/foehn-notfound/foehn-notfound.module.js → esm2020/foehn-notfound/foehn-notfound.module.mjs} +4 -4
- package/{esm2015/foehn-page/foehn-page-counter.component.js → esm2020/foehn-page/foehn-page-counter.component.mjs} +5 -8
- package/esm2020/foehn-page/foehn-page-modal.component.mjs +52 -0
- package/{esm2015/foehn-page/foehn-page-modal.service.js → esm2020/foehn-page/foehn-page-modal.service.mjs} +3 -3
- package/esm2020/foehn-page/foehn-page.component.mjs +215 -0
- package/{esm2015/foehn-page/foehn-page.module.js → esm2020/foehn-page/foehn-page.module.mjs} +4 -4
- package/{esm2015/foehn-page/foehn-page.service.js → esm2020/foehn-page/foehn-page.service.mjs} +4 -4
- package/{esm2015/foehn-recap-section/foehn-recap-section.component.js → esm2020/foehn-recap-section/foehn-recap-section.component.mjs} +5 -8
- package/{esm2015/foehn-recap-section/foehn-recap-section.module.js → esm2020/foehn-recap-section/foehn-recap-section.module.mjs} +4 -4
- package/{esm2015/foehn-recap-section/foehn-recap-section.type.js → esm2020/foehn-recap-section/foehn-recap-section.type.mjs} +0 -0
- package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.mjs} +5 -9
- package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs} +4 -4
- package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +37 -0
- package/{esm2015/foehn-status-progress-bar/foehn-status-progress-bar.module.js → esm2020/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs} +4 -4
- package/{esm2015/foehn-table/foehn-table-column-configuration.js → esm2020/foehn-table/foehn-table-column-configuration.mjs} +0 -0
- package/{esm2015/foehn-table/foehn-table-page-change-event.js → esm2020/foehn-table/foehn-table-page-change-event.mjs} +0 -0
- package/esm2020/foehn-table/foehn-table.component.mjs +147 -0
- package/{esm2015/foehn-table/foehn-table.module.js → esm2020/foehn-table/foehn-table.module.mjs} +4 -4
- package/{esm2015/foehn-table/tableSort.js → esm2020/foehn-table/tableSort.mjs} +0 -0
- package/{esm2015/foehn-upload/abstract-foehn-uploader.component.js → esm2020/foehn-upload/abstract-foehn-uploader.component.mjs} +17 -17
- package/{esm2015/foehn-upload/document-reference.js → esm2020/foehn-upload/document-reference.mjs} +0 -0
- package/{esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.js → esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs} +3 -3
- package/{esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.js → esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.mjs} +0 -0
- package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +165 -0
- package/{esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.js → esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs} +4 -4
- package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +214 -0
- package/{esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.js → esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs} +4 -4
- package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.service.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.service.mjs} +3 -3
- package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.type.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.type.mjs} +0 -0
- package/{esm2015/foehn-upload/foehn-multi-upload/pending-upload.service.js → esm2020/foehn-upload/foehn-multi-upload/pending-upload.service.mjs} +3 -3
- package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +163 -0
- package/{esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.js → esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs} +4 -4
- package/{esm2015/foehn-upload/pending-upload.type.js → esm2020/foehn-upload/pending-upload.type.mjs} +0 -0
- package/esm2020/foehn-upload/uploader.helper.mjs +326 -0
- package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.component.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.component.mjs} +5 -8
- package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.module.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.module.mjs} +4 -4
- package/{esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.component.js → esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs} +5 -9
- package/{esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.module.js → esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs} +4 -4
- package/esm2020/foehn-validation-alerts/foehn-validation-alerts.component.mjs +29 -0
- package/{esm2015/foehn-validation-alerts/foehn-validation-alerts.module.js → esm2020/foehn-validation-alerts/foehn-validation-alerts.module.mjs} +4 -4
- package/esm2020/form-error.mjs +2 -0
- package/esm2020/form-post-response.mjs +10 -0
- package/{esm2015/gesdem/gesdem-error-handler.service.js → esm2020/gesdem/gesdem-error-handler.service.mjs} +3 -3
- package/esm2020/gesdem/gesdem-event.service.mjs +38 -0
- package/esm2020/gesdem/gesdem-handler.service.mjs +151 -0
- package/{esm2015/gesdem/gesdem-loader.guard.js → esm2020/gesdem/gesdem-loader.guard.mjs} +3 -3
- package/{esm2015/gesdem/gesdem-statut-utils.js → esm2020/gesdem/gesdem-statut-utils.mjs} +0 -0
- package/{esm2015/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.js → esm2020/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs} +5 -10
- package/esm2020/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +128 -0
- package/{esm2015/gesdem-action-recovery/gesdem-action-recovery.module.js → esm2020/gesdem-action-recovery/gesdem-action-recovery.module.mjs} +4 -4
- package/esm2020/gesdem-action-recovery/gesdem-action-recovery.service.mjs +82 -0
- package/{esm2015/gesdem-action-recovery/reprise-info.js → esm2020/gesdem-action-recovery/reprise-info.mjs} +0 -0
- package/esm2020/gesdem-confirmation/gesdem-confirmation.component.mjs +189 -0
- package/{esm2015/gesdem-confirmation/gesdem-confirmation.module.js → esm2020/gesdem-confirmation/gesdem-confirmation.module.mjs} +4 -4
- package/{esm2015/gesdem-error/gesdem-error.component.js → esm2020/gesdem-error/gesdem-error.component.mjs} +5 -9
- package/{esm2015/gesdem-error/gesdem-error.module.js → esm2020/gesdem-error/gesdem-error.module.mjs} +4 -4
- package/{esm2015/helpers/object.helper.js → esm2020/helpers/object.helper.mjs} +2 -2
- package/{esm2015/i18n-form.js → esm2020/i18n-form.mjs} +0 -0
- package/{esm2015/index.js → esm2020/index.mjs} +3 -3
- package/{esm2015/pipes/currency.pipe.js → esm2020/pipes/currency.pipe.mjs} +3 -3
- package/{esm2015/pipes/date.pipe.js → esm2020/pipes/date.pipe.mjs} +3 -3
- package/{esm2015/pipes/formatIde.pipe.js → esm2020/pipes/formatIde.pipe.mjs} +3 -3
- package/{esm2015/pipes/pipes.module.js → esm2020/pipes/pipes.module.mjs} +4 -4
- package/{esm2015/prestations-ng-core.module.js → esm2020/prestations-ng-core.module.mjs} +4 -4
- package/{esm2015/sdk-appinfo/application-info.js → esm2020/sdk-appinfo/application-info.mjs} +0 -0
- package/esm2020/sdk-appinfo/application-info.service.mjs +102 -0
- package/{esm2015/sdk-currency/currency.helper.js → esm2020/sdk-currency/currency.helper.mjs} +3 -3
- package/esm2020/sdk-date/date.helper.mjs +91 -0
- package/{esm2015/sdk-dictionary/default-dictionary.js → esm2020/sdk-dictionary/default-dictionary.mjs} +0 -0
- package/{esm2015/sdk-dictionary/sdk-dictionary.module.js → esm2020/sdk-dictionary/sdk-dictionary.module.mjs} +4 -4
- package/{esm2015/sdk-dictionary/sdk-dictionary.pipe.js → esm2020/sdk-dictionary/sdk-dictionary.pipe.mjs} +5 -5
- package/{esm2015/sdk-dictionary/sdk-dictionary.service.js → esm2020/sdk-dictionary/sdk-dictionary.service.mjs} +3 -3
- package/{esm2015/sdk-epayment/model/EPaymentParameters.js → esm2020/sdk-epayment/model/EPaymentParameters.mjs} +0 -0
- package/esm2020/sdk-epayment/sdk-epayment.component.mjs +79 -0
- package/{esm2015/sdk-epayment/sdk-epayment.module.js → esm2020/sdk-epayment/sdk-epayment.module.mjs} +4 -4
- package/esm2020/sdk-epayment/sdk-epayment.service.mjs +51 -0
- package/{esm2015/sdk-recaptcha/grecaptcha/grecaptcha.component.js → esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs} +5 -9
- package/esm2020/sdk-recaptcha/recaptcha.service.mjs +162 -0
- package/esm2020/sdk-recaptcha/sdk-recaptcha.component.mjs +68 -0
- package/{esm2015/sdk-recaptcha/sdk-recaptcha.module.js → esm2020/sdk-recaptcha/sdk-recaptcha.module.mjs} +4 -4
- package/{esm2015/sdk-redirect/iam-expired-interceptor.service.js → esm2020/sdk-redirect/iam-expired-interceptor.service.mjs} +3 -3
- package/{esm2015/sdk-redirect/redirect.component.js → esm2020/sdk-redirect/redirect.component.mjs} +5 -9
- package/{esm2015/sdk-redirect/sdk-redirect.module.js → esm2020/sdk-redirect/sdk-redirect.module.mjs} +4 -4
- package/{esm2015/sdk-session-info/session-info-data.js → esm2020/sdk-session-info/session-info-data.mjs} +1 -1
- package/{esm2015/sdk-session-info/session-info-with-application.service.js → esm2020/sdk-session-info/session-info-with-application.service.mjs} +3 -3
- package/esm2020/sdk-session-info/session-info.service.mjs +73 -0
- package/{esm2015/sdk-support-alert/support-alert-container.component.js → esm2020/sdk-support-alert/support-alert-container.component.mjs} +5 -9
- package/esm2020/sdk-support-alert/support-alert.component.mjs +34 -0
- package/{esm2015/sdk-support-alert/support-alert.model.js → esm2020/sdk-support-alert/support-alert.model.mjs} +0 -0
- package/{esm2015/sdk-support-alert/support-alert.module.js → esm2020/sdk-support-alert/support-alert.module.mjs} +4 -4
- package/{esm2015/sdk-support-alert/support-alert.service.js → esm2020/sdk-support-alert/support-alert.service.mjs} +3 -3
- package/{esm2015/service-locator.js → esm2020/service-locator.mjs} +0 -0
- package/esm2020/supported-browser.mjs +2 -0
- package/esm2020/validation/validation-handler.service.mjs +44 -0
- package/fesm2015/{dsivd-prestations-ng.js → dsivd-prestations-ng.mjs} +973 -1300
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -0
- package/fesm2020/dsivd-prestations-ng.mjs +11532 -0
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -0
- package/foehn-breadcrumb/breadcrumb-event.service.d.ts +2 -2
- package/foehn-checkables/foehn-checkable-group.component.d.ts +3 -3
- package/foehn-confirm-modal/foehn-confirm-modal.component.d.ts +1 -1
- package/foehn-date-picker/date-picker-navigation.helper.d.ts +1 -1
- package/foehn-date-picker/date-picker.helper.d.ts +1 -1
- package/foehn-date-picker/foehn-date-picker.component.d.ts +3 -3
- package/foehn-date-picker-button/foehn-date-picker-button.component.d.ts +2 -2
- package/foehn-debug-summary/foehn-debug-summary.component.d.ts +1 -1
- package/foehn-growl/foehn-growl.component.d.ts +1 -1
- package/foehn-header/foehn-header.component.d.ts +2 -2
- package/foehn-input/foehn-input-number.component.d.ts +1 -1
- package/foehn-input/foehn-input.component.d.ts +4 -4
- package/foehn-list/foehn-list.component.d.ts +2 -2
- package/foehn-menu-prestation/abstract-list-item-detail-page.component.d.ts +1 -1
- package/foehn-modal/foehn-modal.component.d.ts +1 -1
- package/foehn-navigation/foehn-navigation.service.d.ts +2 -2
- package/foehn-page/foehn-page.service.d.ts +2 -2
- package/foehn-table/foehn-table.component.d.ts +2 -2
- package/foehn-upload/abstract-foehn-uploader.component.d.ts +2 -2
- package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.d.ts +1 -1
- package/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.d.ts +2 -2
- package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +1 -1
- package/foehn-upload/uploader.helper.d.ts +12 -12
- package/foehn-validation-alerts/foehn-validation-alerts.component.d.ts +3 -3
- package/{error-template.d.ts → form-error.d.ts} +1 -1
- package/form-post-response.d.ts +17 -0
- package/gesdem/gesdem-event.service.d.ts +6 -6
- package/gesdem/gesdem-handler.service.d.ts +3 -3
- package/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.d.ts +2 -2
- package/gesdem-action-recovery/gesdem-action-recovery.service.d.ts +2 -2
- package/gesdem-confirmation/gesdem-confirmation.component.d.ts +4 -4
- package/index.d.ts +2 -2
- package/package.json +26 -13
- package/schematics/ng-add/index.js +6 -6
- package/schematics/ng-update/migrations/update-13_1_0/index.js +2 -2
- package/schematics/ng-update/migrations/update-13_2_0/index.js +3 -3
- package/schematics/ng-update/migrations/update-13_5_1/index.js +2 -2
- package/schematics/ng-update/migrations/update-14_5_0/index.js +2 -2
- package/schematics/update-karma-config/index.js +2 -2
- package/schematics/utility/migrate-to-karma-coverage.js +3 -3
- package/sdk-appinfo/application-info.service.d.ts +2 -2
- package/sdk-epayment/sdk-epayment.component.d.ts +3 -13
- package/sdk-epayment/sdk-epayment.service.d.ts +2 -5
- package/sdk-recaptcha/recaptcha.service.d.ts +2 -2
- package/sdk-recaptcha/sdk-recaptcha.component.d.ts +2 -2
- package/sdk-session-info/session-info-data.d.ts +0 -1
- package/sdk-session-info/session-info.service.d.ts +9 -2
- package/validation/validation-handler.service.d.ts +4 -4
- package/backend-response.d.ts +0 -18
- package/bundles/dsivd-prestations-ng.umd.js +0 -13472
- package/bundles/dsivd-prestations-ng.umd.js.map +0 -1
- package/dsivd-prestations-ng-v14.5.20.tgz +0 -0
- package/esm2015/abstract-page-component.js +0 -224
- package/esm2015/backend-response.js +0 -10
- package/esm2015/error-template.js +0 -2
- package/esm2015/foehn-address/foehn-input-address.component.js +0 -365
- package/esm2015/foehn-address/foehn-input-foreign-locality.component.js +0 -71
- package/esm2015/foehn-autocomplete/foehn-autocomplete.component.js +0 -556
- package/esm2015/foehn-boolean/foehn-boolean-checkbox.component.js +0 -32
- package/esm2015/foehn-boolean/foehn-boolean-radio.component.js +0 -41
- package/esm2015/foehn-checkables/foehn-checkable-group.component.js +0 -294
- package/esm2015/foehn-checkables/foehn-checkbox.component.js +0 -40
- package/esm2015/foehn-checkables/foehn-radio.component.js +0 -67
- package/esm2015/foehn-checkables/foehn-select.component.js +0 -66
- package/esm2015/foehn-confirm-modal/foehn-confirm-modal.component.js +0 -42
- package/esm2015/foehn-date-picker-button/foehn-date-picker-button.component.js +0 -74
- package/esm2015/foehn-decision-electronique/foehn-decision-electronique.component.js +0 -40
- package/esm2015/foehn-footer/foehn-footer.component.js +0 -132
- package/esm2015/foehn-header/foehn-header.component.js +0 -73
- package/esm2015/foehn-input/foehn-input-email.component.js +0 -55
- package/esm2015/foehn-input/foehn-input-hidden.component.js +0 -57
- package/esm2015/foehn-input/foehn-input-password.component.js +0 -55
- package/esm2015/foehn-input-date/foehn-input-date.component.js +0 -94
- package/esm2015/foehn-input-time/foehn-input-time.component.js +0 -79
- package/esm2015/foehn-list/foehn-list.component.js +0 -134
- package/esm2015/foehn-menu-prestation/abstract-list-item-detail-page.component.js +0 -122
- package/esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.js +0 -75
- package/esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.js +0 -38
- package/esm2015/foehn-modal/foehn-modal.component.js +0 -100
- package/esm2015/foehn-nav13/foehn-input-nav13.component.js +0 -98
- package/esm2015/foehn-navigation/foehn-navigation.component.js +0 -98
- package/esm2015/foehn-page/foehn-page-modal.component.js +0 -55
- package/esm2015/foehn-page/foehn-page.component.js +0 -217
- package/esm2015/foehn-status-progress-bar/foehn-status-progress-bar.component.js +0 -42
- package/esm2015/foehn-table/foehn-table.component.js +0 -151
- package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.js +0 -171
- package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.js +0 -220
- package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.js +0 -167
- package/esm2015/foehn-upload/uploader.helper.js +0 -322
- package/esm2015/foehn-validation-alerts/foehn-validation-alerts.component.js +0 -32
- package/esm2015/gesdem/gesdem-event.service.js +0 -38
- package/esm2015/gesdem/gesdem-handler.service.js +0 -151
- package/esm2015/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.js +0 -133
- package/esm2015/gesdem-action-recovery/gesdem-action-recovery.service.js +0 -82
- package/esm2015/gesdem-confirmation/gesdem-confirmation.component.js +0 -194
- package/esm2015/sdk-appinfo/application-info.service.js +0 -111
- package/esm2015/sdk-date/date.helper.js +0 -90
- package/esm2015/sdk-epayment/model/EPaymentRequest.js +0 -3
- package/esm2015/sdk-epayment/sdk-epayment.component.js +0 -113
- package/esm2015/sdk-epayment/sdk-epayment.service.js +0 -46
- package/esm2015/sdk-recaptcha/recaptcha.service.js +0 -162
- package/esm2015/sdk-recaptcha/sdk-recaptcha.component.js +0 -72
- package/esm2015/sdk-session-info/session-info.service.js +0 -44
- package/esm2015/sdk-support-alert/support-alert.component.js +0 -38
- package/esm2015/supported-browser.js +0 -2
- package/esm2015/validation/validation-handler.service.js +0 -44
- package/fesm2015/dsivd-prestations-ng.js.map +0 -1
- package/sdk-epayment/model/EPaymentRequest.d.ts +0 -5
|
@@ -52,29 +52,24 @@ export class FoehnInputTextComponent extends FoehnInputStringComponent {
|
|
|
52
52
|
(keyCode >= 48 && keyCode <= 57));
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
FoehnInputTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
56
|
-
FoehnInputTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
55
|
+
FoehnInputTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnInputTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
+
FoehnInputTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FoehnInputTextComponent, selector: "foehn-input-text", inputs: { numberOnly: "numberOnly" }, providers: [
|
|
57
57
|
{
|
|
58
58
|
provide: FoehnInputComponent,
|
|
59
59
|
useExisting: forwardRef(() => FoehnInputTextComponent),
|
|
60
60
|
multi: true
|
|
61
61
|
}
|
|
62
62
|
], 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 <label\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-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.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}.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"], components: [{ type: i1.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i2.FoehnIconTimesComponent, selector: "foehn-icon-times" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "fromDictionary": i5.SdkDictionaryPipe, "async": i3.AsyncPipe } });
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnInputTextComponent, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
|
-
args: [{
|
|
66
|
-
selector: 'foehn-input-text',
|
|
67
|
-
templateUrl: './foehn-input.component.html',
|
|
68
|
-
styleUrls: ['./foehn-input.component.css'],
|
|
69
|
-
providers: [
|
|
65
|
+
args: [{ selector: 'foehn-input-text', providers: [
|
|
70
66
|
{
|
|
71
67
|
provide: FoehnInputComponent,
|
|
72
68
|
useExisting: forwardRef(() => FoehnInputTextComponent),
|
|
73
69
|
multi: true
|
|
74
70
|
}
|
|
75
|
-
]
|
|
76
|
-
}]
|
|
71
|
+
], 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 <label\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-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.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}.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"] }]
|
|
77
72
|
}], propDecorators: { numberOnly: [{
|
|
78
73
|
type: Input
|
|
79
74
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4taW5wdXQvZm9laG4taW5wdXQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBYzlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx5QkFBeUI7SUFPbEUsU0FBUyxDQUFDLEtBQW9CO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDdkIsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1Q7SUFDTCxDQUFDO0lBRUQsOERBQThEO0lBQ3RELFVBQVUsQ0FBQyxLQUFvQjtRQUNuQyx5RUFBeUU7UUFDekUsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzNDLElBQUksT0FBTyxJQUFJLEVBQUUsSUFBSSxPQUFPLElBQUksR0FBRyxFQUFFO1lBQ2pDLGNBQWM7WUFDZCxPQUFPLElBQUksRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQW9CO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsc0VBQXNFO1FBQ3RFLE9BQU8sQ0FDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDOUMsZ0JBQWdCO1lBQ2hCLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELGdCQUFnQjtZQUNoQixDQUFDLE9BQU8sS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxnQkFBZ0I7WUFDaEIsQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEQsZ0JBQWdCO1lBQ2hCLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELGdDQUFnQztZQUNoQyxDQUFDLE9BQU8sSUFBSSxFQUFFLElBQUksT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNoQyx1QkFBdUI7WUFDdkIsQ0FBQyxPQUFPLElBQUksRUFBRSxJQUFJLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FDbkMsQ0FBQztJQUNOLENBQUM7O29IQXJEUSx1QkFBdUI7d0dBQXZCLHVCQUF1QixpRkFSckI7UUFDUDtZQUNJLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztZQUN0RCxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osaURDZEwsMjNFQXVFQTsyRkR2RGEsdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNJLGtCQUFrQixhQUdqQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7OEJBSUQsVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9laG5JbnB1dFN0cmluZ0NvbXBvbmVudCB9IGZyb20gJy4vZm9laG4taW5wdXQtc3RyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWlucHV0LXRleHQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9laG4taW5wdXQuY29tcG9uZW50LmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5JbnB1dFRleHRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5JbnB1dFRleHRDb21wb25lbnQgZXh0ZW5kcyBGb2VobklucHV0U3RyaW5nQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIG51bWJlck9ubHk6IGJvb2xlYW47XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHRpbWVvdXRSZWZlcmVuY2U6IGFueTtcblxuICAgIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5udW1iZXJPbmx5ICYmICF0aGlzLmFjY2VwdGVkS2V5c0Zvck51bWJlcihldmVudCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFJlZmVyZW5jZSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8ICEhdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVvdXRSZWZlcmVuY2UgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwobnVsbCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBnZXRLZXlDb2RlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYW55IHtcbiAgICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgd2Ugc3RpbGwgbmVlZCB0byBzdXBwb3J0IElFMTEgYW5kIGlmIG5vdCwgdXNlIGV2ZW50LmtleVxuICAgICAgICBsZXQga2V5Q29kZSA9IGV2ZW50LmtleUNvZGUgfHwgZXZlbnQud2hpY2g7XG4gICAgICAgIGlmIChrZXlDb2RlID49IDk2ICYmIGtleUNvZGUgPD0gMTA1KSB7XG4gICAgICAgICAgICAvLyBOdW1wYWQga2V5c1xuICAgICAgICAgICAga2V5Q29kZSAtPSA0ODtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ga2V5Q29kZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFjY2VwdGVkS2V5c0Zvck51bWJlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBrZXlDb2RlID0gdGhpcy5nZXRLZXlDb2RlKGV2ZW50KTtcbiAgICAgICAgLy8gQWxsb3c6IGRlbGV0ZSwgYmFja3NwYWNlLCB0YWIsIGVzY2FwZSwgZW50ZXIsIGRlY2ltYWwgcG9pbnQsIHBlcmlvZFxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgWzQ2LCA4LCA5LCAyNywgMTMsIDExMCwgMTkwXS5pbmNsdWRlcyhrZXlDb2RlKSB8fFxuICAgICAgICAgICAgLy8gQWxsb3c6IEN0cmwrQVxuICAgICAgICAgICAgKGtleUNvZGUgPT09IDY1ICYmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpKSB8fFxuICAgICAgICAgICAgLy8gQWxsb3c6IEN0cmwrQ1xuICAgICAgICAgICAgKGtleUNvZGUgPT09IDY3ICYmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpKSB8fFxuICAgICAgICAgICAgLy8gQWxsb3c6IEN0cmwrVlxuICAgICAgICAgICAgKGtleUNvZGUgPT09IDg2ICYmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpKSB8fFxuICAgICAgICAgICAgLy8gQWxsb3c6IEN0cmwrWFxuICAgICAgICAgICAgKGtleUNvZGUgPT09IDg4ICYmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpKSB8fFxuICAgICAgICAgICAgLy8gQWxsb3c6IGhvbWUsIGVuZCwgbGVmdCwgcmlnaHRcbiAgICAgICAgICAgIChrZXlDb2RlID49IDM1ICYmIGtleUNvZGUgPD0gMzkpIHx8XG4gICAgICAgICAgICAvLyBBbGxvdzogbnVtYmVycyBbMC05XVxuICAgICAgICAgICAgKGtleUNvZGUgPj0gNDggJiYga2V5Q29kZSA8PSA1NylcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwIGNsZWFyYWJsZS1pbnB1dC1mb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICpuZ0lmPVwibGFiZWwgJiYgdHlwZSAhPT0gJ2hpZGRlbidcIlxuICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3NyLW9ubHknIDogbGFiZWxTdHlsZU1vZGlmaWVyXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cImhlbHBUZXh0ICYmIHR5cGUgIT09ICdoaWRkZW4nXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnSGVscCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPGlucHV0XG4gICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IGhhc0luaGVyaXRFcnJvckZyb21QYXJlbnQoKVwiXG4gICAgICAgIFtjbGFzcy5jbGVhcmFibGUtaW5wdXRdPVwiZGlzcGxheUNsZWFyQnV0dG9uKCkgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJnZXRNYXhMZW5ndGgoKVwiXG4gICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJnZXRBdXRvQ29tcGxldGUoKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgICBbYXR0ci5wYXR0ZXJuXT1cInBhdHRlcm5cIlxuICAgICAgICBbYXR0ci5taW5dPVwibWluXCJcbiAgICAgICAgW2F0dHIubWF4XT1cIm1heFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJnZXREZXNjcmliZWRCeSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXG4gICAgICAgIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudClcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVOZ01vZGVsKCRldmVudClcIlxuICAgICAgICAoaW5wdXQpPVwiaGFuZGxlQ2hhbmdlKGVudHJ5Q29tcG9uZW50LnZhbHVlKVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgI2VudHJ5Q29tcG9uZW50XG4gICAgLz5cblxuICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoKSArICdDbGVhckJ1dHRvbidcIlxuICAgICAgICAqbmdJZj1cImRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cImNsZWFyYWJsZS1pbnB1dC1jbGVhci1idXR0b24gYnRuXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiXG4gICAgPlxuICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgY2xhc3M9XCJjbGVhcmFibGUtaW5wdXQtY2xlYXItYnV0dG9uLWljb25cIlxuICAgICAgICAgICAgdGl0bGU9XCJSw6lpbml0aWFsaXNlciBsZSBjaGFtcHNcIlxuICAgICAgICA+PC9mb2Vobi1pY29uLXRpbWVzPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -74,31 +74,26 @@ export class FoehnInputTextareaComponent extends FoehnInputStringComponent {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
FoehnInputTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
78
|
-
FoehnInputTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
77
|
+
FoehnInputTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnInputTextareaComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
+
FoehnInputTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FoehnInputTextareaComponent, selector: "foehn-input-textarea", inputs: { rows: "rows", displayCharCount: "displayCharCount" }, providers: [
|
|
79
79
|
{
|
|
80
80
|
provide: FoehnInputComponent,
|
|
81
81
|
useExisting: forwardRef(() => FoehnInputTextareaComponent),
|
|
82
82
|
multi: true
|
|
83
83
|
}
|
|
84
84
|
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\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-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <textarea\n [class.is-invalid]=\"hasErrorsToDisplay()\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.maxlength]=\"getMaxLength()\"\n [attr.autocomplete]=\"getAutoComplete()\"\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]=\"\n hasErrorsToDisplay() || null || isCharCountExceeded\n \"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [rows]=\"rows\"\n (paste)=\"onPaste($event)\"\n (input)=\"handleChange(entryComponent.value)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n #entryComponent\n ></textarea>\n\n <div\n *ngIf=\"displayCharCount && max\"\n [innerHTML]=\"charCountLabel\"\n id=\"chars-remaining\"\n class=\"chars-remaining\"\n [class.char-count-exceeded]=\"isCharCountExceeded\"\n [attr.aria-live]=\"ariaLiveStatus\"\n ></div>\n</div>\n", styles: ["input::-ms-clear{display:none}input.clearable-input{padding-right:30px}.clearable-input-form-group{position:relative}.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"], components: [{ type: i1.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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]" }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "fromDictionary": i4.SdkDictionaryPipe } });
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnInputTextareaComponent, decorators: [{
|
|
86
86
|
type: Component,
|
|
87
|
-
args: [{
|
|
88
|
-
selector: 'foehn-input-textarea',
|
|
89
|
-
templateUrl: './foehn-input-textarea.component.html',
|
|
90
|
-
styleUrls: ['./foehn-input.component.css'],
|
|
91
|
-
providers: [
|
|
87
|
+
args: [{ selector: 'foehn-input-textarea', providers: [
|
|
92
88
|
{
|
|
93
89
|
provide: FoehnInputComponent,
|
|
94
90
|
useExisting: forwardRef(() => FoehnInputTextareaComponent),
|
|
95
91
|
multi: true
|
|
96
92
|
}
|
|
97
|
-
]
|
|
98
|
-
}]
|
|
93
|
+
], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\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-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <textarea\n [class.is-invalid]=\"hasErrorsToDisplay()\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.maxlength]=\"getMaxLength()\"\n [attr.autocomplete]=\"getAutoComplete()\"\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]=\"\n hasErrorsToDisplay() || null || isCharCountExceeded\n \"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [rows]=\"rows\"\n (paste)=\"onPaste($event)\"\n (input)=\"handleChange(entryComponent.value)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n #entryComponent\n ></textarea>\n\n <div\n *ngIf=\"displayCharCount && max\"\n [innerHTML]=\"charCountLabel\"\n id=\"chars-remaining\"\n class=\"chars-remaining\"\n [class.char-count-exceeded]=\"isCharCountExceeded\"\n [attr.aria-live]=\"ariaLiveStatus\"\n ></div>\n</div>\n", styles: ["input::-ms-clear{display:none}input.clearable-input{padding-right:30px}.clearable-input-form-group{position:relative}.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"] }]
|
|
99
94
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { rows: [{
|
|
100
95
|
type: Input
|
|
101
96
|
}], displayCharCount: [{
|
|
102
97
|
type: Input
|
|
103
98
|
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LXRleHRhcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBY3ZDLE1BQU0sT0FBTywyQkFDVCxTQUFRLHlCQUF5QjtJQWFqQyxZQUFvQixNQUFjO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFEsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVZsQyxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBS1Qsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRzVCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBSXZCLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxD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QUF1QztvQkFDcEQsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzFDLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7aUJBQ0o7NkZBS0csSUFBSTtzQkFESCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgTmdab25lLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWlucHV0LXN0cmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWlucHV0LXRleHRhcmVhJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4taW5wdXQtdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuSW5wdXRUZXh0YXJlYUNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobklucHV0VGV4dGFyZWFDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICByb3dzID0gMztcblxuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheUNoYXJDb3VudDogYm9vbGVhbjtcblxuICAgIGlzQ2hhckNvdW50RXhjZWVkZWQgPSBmYWxzZTtcbiAgICBjaGFyQ291bnRMZWZ0OiBudW1iZXI7XG4gICAgY2hhckNvdW50TGFiZWw6IHN0cmluZztcbiAgICBhcmlhTGl2ZVN0YXR1cyA9ICdvZmYnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlDaGFyQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMuY291bnRDaGFyTGVmdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8ICEhdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwobnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlDaGFyQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tDaGFyQ291bnRFeGNlZWRlZCgpO1xuICAgICAgICAgICAgdGhpcy5jb3VudENoYXJMZWZ0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb3VudENoYXJMZWZ0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubWF4KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCAhPT0gbnVsbCAmJiB0aGlzLm1vZGVsICE9PSB1bmRlZmluZWQgJiYgdGhpcy5tYXgpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhckNvdW50TGVmdCA9IHRoaXMubWF4IC0gdGhpcy5tb2RlbC5sZW5ndGg7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGFyQ291bnRMZWZ0ID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBsdXJhbCA9IHRoaXMuY2hhckNvdW50TGVmdCA9PT0gMSA/ICcnIDogJ3MnO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhckNvdW50TGFiZWwgPSBgJHt0aGlzLmNoYXJDb3VudExlZnR9IGNhcmFjdMOocmUke3BsdXJhbH0gcmVzdGFudCR7cGx1cmFsfWA7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hhckNvdW50TGVmdCA8PSAxMCAmJiB0aGlzLmNoYXJDb3VudExlZnQgPj0gMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFyaWFMaXZlU3RhdHVzID0gJ2Fzc2VydGl2ZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcmlhTGl2ZVN0YXR1cyA9ICdvZmYnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyQ291bnRMZWZ0ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcmlhTGl2ZVN0YXR1cyA9ICdhc3NlcnRpdmUnO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhckNvdW50TGFiZWwgPVxuICAgICAgICAgICAgICAgICAgICAnVm91cyBhdmV6IGF0dGVpbnQgbGUgbm9tYnJlIGRlIGNhcmFjdMOocmUgYXV0b3Jpc8OpISc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYXJpYUxpdmVTdGF0dXMgPSAnYXNzZXJ0aXZlJztcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJDb3VudExhYmVsID0gYFZvdXMgYXZleiBkw6lwYXNzw6kgbGUgbm9tYnJlIGRlIGNhcmFjdMOocmVzIGF1dG9yaXPDqXMgZGUgJHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMZWZ0ICogLTFcbiAgICAgICAgICAgICAgICB9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hhckNvdW50TGVmdCA9IHRoaXMubWF4O1xuICAgICAgICAgICAgY29uc3QgcGx1cmFsID0gdGhpcy5jaGFyQ291bnRMZWZ0ID09PSAxID8gJycgOiAncyc7XG4gICAgICAgICAgICB0aGlzLmNoYXJDb3VudExhYmVsID0gYCR7dGhpcy5jaGFyQ291bnRMZWZ0fSBjYXJhY3TDqHJlJHtwbHVyYWx9IHJlc3RhbnQke3BsdXJhbH1gO1xuICAgICAgICAgICAgdGhpcy5hcmlhTGl2ZVN0YXR1cyA9ICdvZmYnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hlY2tDaGFyQ291bnRFeGNlZWRlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZWwgJiYgdGhpcy5tYXgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNDaGFyQ291bnRFeGNlZWRlZCA9IHRoaXMubW9kZWwubGVuZ3RoID4gdGhpcy5tYXg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAnc3Itb25seScgOiBsYWJlbFN0eWxlTW9kaWZpZXJcIlxuICAgID5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0cyBbY29tcG9uZW50XT1cInRoaXNcIj48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8dGV4dGFyZWFcbiAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWUgfHwgbGFiZWxcIlxuICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwiZ2V0TWF4TGVuZ3RoKClcIlxuICAgICAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiZ2V0QXV0b0NvbXBsZXRlKClcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgICAgW2F0dHIucGF0dGVybl09XCJwYXR0ZXJuXCJcbiAgICAgICAgW2F0dHIubWluXT1cIm1pblwiXG4gICAgICAgIFthdHRyLm1heF09XCJtYXhcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJcbiAgICAgICAgICAgIGhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IG51bGwgfHwgaXNDaGFyQ291bnRFeGNlZWRlZFxuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU5nTW9kZWwoJGV2ZW50KVwiXG4gICAgICAgIFtyb3dzXT1cInJvd3NcIlxuICAgICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICAgICAgKGlucHV0KT1cImhhbmRsZUNoYW5nZShlbnRyeUNvbXBvbmVudC52YWx1ZSlcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgID48L3RleHRhcmVhPlxuXG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImRpc3BsYXlDaGFyQ291bnQgJiYgbWF4XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJjaGFyQ291bnRMYWJlbFwiXG4gICAgICAgIGlkPVwiY2hhcnMtcmVtYWluaW5nXCJcbiAgICAgICAgY2xhc3M9XCJjaGFycy1yZW1haW5pbmdcIlxuICAgICAgICBbY2xhc3MuY2hhci1jb3VudC1leGNlZWRlZF09XCJpc0NoYXJDb3VudEV4Y2VlZGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlU3RhdHVzXCJcbiAgICA+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LXRleHRhcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBY3ZDLE1BQU0sT0FBTywyQkFDVCxTQUFRLHlCQUF5QjtJQWFqQyxZQUFvQixNQUFjO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFEsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVZsQyxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBS1Qsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRzVCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBSXZCLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxD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NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjs2RkFNRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBOZ1pvbmUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9laG5JbnB1dFN0cmluZ0NvbXBvbmVudCB9IGZyb20gJy4vZm9laG4taW5wdXQtc3RyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4taW5wdXQtdGV4dGFyZWEnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1pbnB1dC10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9laG4taW5wdXQuY29tcG9uZW50LmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5JbnB1dFRleHRhcmVhQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuSW5wdXRUZXh0YXJlYUNvbXBvbmVudFxuICAgIGV4dGVuZHMgRm9laG5JbnB1dFN0cmluZ0NvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIHJvd3MgPSAzO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5Q2hhckNvdW50OiBib29sZWFuO1xuXG4gICAgaXNDaGFyQ291bnRFeGNlZWRlZCA9IGZhbHNlO1xuICAgIGNoYXJDb3VudExlZnQ6IG51bWJlcjtcbiAgICBjaGFyQ291bnRMYWJlbDogc3RyaW5nO1xuICAgIGFyaWFMaXZlU3RhdHVzID0gJ29mZic7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheUNoYXJDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5jb3VudENoYXJMZWZ0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgISF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLm9uTWljcm90YXNrRW1wdHkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheUNoYXJDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5jaGVja0NoYXJDb3VudEV4Y2VlZGVkKCk7XG4gICAgICAgICAgICB0aGlzLmNvdW50Q2hhckxlZnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvdW50Q2hhckxlZnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5tYXgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsICE9PSBudWxsICYmIHRoaXMubW9kZWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm1heCkge1xuICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMZWZ0ID0gdGhpcy5tYXggLSB0aGlzLm1vZGVsLmxlbmd0aDtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoYXJDb3VudExlZnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGx1cmFsID0gdGhpcy5jaGFyQ291bnRMZWZ0ID09PSAxID8gJycgOiAncyc7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMYWJlbCA9IGAke3RoaXMuY2hhckNvdW50TGVmdH0gY2FyYWN0w6hyZSR7cGx1cmFsfSByZXN0YW50JHtwbHVyYWx9YDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGFyQ291bnRMZWZ0IDw9IDEwICYmIHRoaXMuY2hhckNvdW50TGVmdCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXJpYUxpdmVTdGF0dXMgPSAnYXNzZXJ0aXZlJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFyaWFMaXZlU3RhdHVzID0gJ29mZic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXJDb3VudExlZnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFyaWFMaXZlU3RhdHVzID0gJ2Fzc2VydGl2ZSc7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMYWJlbCA9XG4gICAgICAgICAgICAgICAgICAgICdWb3VzIGF2ZXogYXR0ZWludCBsZSBub21icmUgZGUgY2FyYWN0w6hyZSBhdXRvcmlzw6khJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcmlhTGl2ZVN0YXR1cyA9ICdhc3NlcnRpdmUnO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhckNvdW50TGFiZWwgPSBgVm91cyBhdmV6IGTDqXBhc3PDqSBsZSBub21icmUgZGUgY2FyYWN0w6hyZXMgYXV0b3Jpc8OpcyBkZSAke1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXJDb3VudExlZnQgKiAtMVxuICAgICAgICAgICAgICAgIH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMZWZ0ID0gdGhpcy5tYXg7XG4gICAgICAgICAgICBjb25zdCBwbHVyYWwgPSB0aGlzLmNoYXJDb3VudExlZnQgPT09IDEgPyAnJyA6ICdzJztcbiAgICAgICAgICAgIHRoaXMuY2hhckNvdW50TGFiZWwgPSBgJHt0aGlzLmNoYXJDb3VudExlZnR9IGNhcmFjdMOocmUke3BsdXJhbH0gcmVzdGFudCR7cGx1cmFsfWA7XG4gICAgICAgICAgICB0aGlzLmFyaWFMaXZlU3RhdHVzID0gJ29mZic7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja0NoYXJDb3VudEV4Y2VlZGVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tb2RlbCAmJiB0aGlzLm1heCkge1xuICAgICAgICAgICAgdGhpcy5pc0NoYXJDb3VudEV4Y2VlZGVkID0gdGhpcy5tb2RlbC5sZW5ndGggPiB0aGlzLm1heDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgIFtjbGFzcy5oYXMtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbY2xhc3MudmQtZm9ybS1ncm91cC1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ0NvbnRhaW5lcicpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbj5cbiAgICA8bGFiZWxcbiAgICAgICAgW2F0dHIuZm9yXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgKm5nSWY9XCIhIWxhYmVsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNMYWJlbFNyT25seSA/ICdzci1vbmx5JyA6IGxhYmVsU3R5bGVNb2RpZmllclwiXG4gICAgPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhcmVxdWlyZWQgJiYgIWhpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWxcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgJ2ZvZWhuLWlucHV0Lm9wdGlvbmFsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuXG4gICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzIFtjb21wb25lbnRdPVwidGhpc1wiPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICA8c21hbGxcbiAgICAgICAgKm5nSWY9XCJoZWxwVGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ0hlbHAnXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImhlbHBUZXh0XCJcbiAgICA+PC9zbWFsbD5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDx0ZXh0YXJlYVxuICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJnZXRNYXhMZW5ndGgoKVwiXG4gICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJnZXRBdXRvQ29tcGxldGUoKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgICBbYXR0ci5wYXR0ZXJuXT1cInBhdHRlcm5cIlxuICAgICAgICBbYXR0ci5taW5dPVwibWluXCJcbiAgICAgICAgW2F0dHIubWF4XT1cIm1heFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJnZXREZXNjcmliZWRCeSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIlxuICAgICAgICAgICAgaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbCB8fCBpc0NoYXJDb3VudEV4Y2VlZGVkXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgfHwgbnVsbFwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTmdNb2RlbCgkZXZlbnQpXCJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudClcIlxuICAgICAgICAoaW5wdXQpPVwiaGFuZGxlQ2hhbmdlKGVudHJ5Q29tcG9uZW50LnZhbHVlKVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgI2VudHJ5Q29tcG9uZW50XG4gICAgPjwvdGV4dGFyZWE+XG5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiZGlzcGxheUNoYXJDb3VudCAmJiBtYXhcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImNoYXJDb3VudExhYmVsXCJcbiAgICAgICAgaWQ9XCJjaGFycy1yZW1haW5pbmdcIlxuICAgICAgICBjbGFzcz1cImNoYXJzLXJlbWFpbmluZ1wiXG4gICAgICAgIFtjbGFzcy5jaGFyLWNvdW50LWV4Y2VlZGVkXT1cImlzQ2hhckNvdW50RXhjZWVkZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmVTdGF0dXNcIlxuICAgID48L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -48,6 +48,15 @@ export class FoehnInputComponent {
|
|
|
48
48
|
this.refreshErrors(values);
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
|
+
get errors() {
|
|
52
|
+
return this._errors;
|
|
53
|
+
}
|
|
54
|
+
get model() {
|
|
55
|
+
return this.model_;
|
|
56
|
+
}
|
|
57
|
+
set model(value) {
|
|
58
|
+
this.onModelChange(value);
|
|
59
|
+
}
|
|
51
60
|
ngOnInit() {
|
|
52
61
|
// Ensures that the host has an Id for instrumentalization of the DOM by automated tests.
|
|
53
62
|
this.hostId = this.buildId();
|
|
@@ -72,12 +81,6 @@ export class FoehnInputComponent {
|
|
|
72
81
|
this.userInputSubscription.unsubscribe();
|
|
73
82
|
}
|
|
74
83
|
}
|
|
75
|
-
set model(value) {
|
|
76
|
-
this.onModelChange(value);
|
|
77
|
-
}
|
|
78
|
-
get model() {
|
|
79
|
-
return this.model_;
|
|
80
|
-
}
|
|
81
84
|
onModelChange(value) {
|
|
82
85
|
this.updateNgModel(value);
|
|
83
86
|
}
|
|
@@ -129,9 +132,6 @@ export class FoehnInputComponent {
|
|
|
129
132
|
}
|
|
130
133
|
return result;
|
|
131
134
|
}
|
|
132
|
-
get errors() {
|
|
133
|
-
return this._errors;
|
|
134
|
-
}
|
|
135
135
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
136
136
|
refreshErrors(results) {
|
|
137
137
|
const errors = results[0];
|
|
@@ -274,7 +274,7 @@ export class FoehnInputComponent {
|
|
|
274
274
|
}
|
|
275
275
|
return null;
|
|
276
276
|
}
|
|
277
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
277
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
278
278
|
isEmpty(data) {
|
|
279
279
|
return data === null || data === undefined || data === '';
|
|
280
280
|
}
|
|
@@ -288,9 +288,9 @@ export class FoehnInputComponent {
|
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
|
-
FoehnInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
292
|
-
FoehnInputComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
293
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
291
|
+
FoehnInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
292
|
+
FoehnInputComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: FoehnInputComponent, inputs: { id: "id", required: "required", label: "label", isLabelSrOnly: "isLabelSrOnly", helpText: "helpText", name: "name", pattern: "pattern", labelStyleModifier: "labelStyleModifier", customErrors: "customErrors", maxlength: "maxlength", overrideGesdemMaxlength: "overrideGesdemMaxlength", min: "min", max: "max", autocomplete: "autocomplete", disabled: "disabled", preventPaste: "preventPaste", clearButton: "clearButton", excludeFromErrorSummary: "excludeFromErrorSummary", hideNotRequiredExtraLabel: "hideNotRequiredExtraLabel", isErrorInherited: "isErrorInherited", showErrorWhenDisabled: "showErrorWhenDisabled", model: "model" }, outputs: { modelChange: "modelChange", userInput: "userInput", blurHandler: "blur", focusHandler: "focus" }, host: { properties: { "attr.id": "this.hostId" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["entryComponent"], descendants: true }, { propertyName: "inputModelList", predicate: NgModel, descendants: true }, { propertyName: "subComponents", predicate: FoehnInputComponent, descendants: true }], ngImport: i0 });
|
|
293
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnInputComponent, decorators: [{
|
|
294
294
|
type: Directive
|
|
295
295
|
}], ctorParameters: function () { return []; }, propDecorators: { id: [{
|
|
296
296
|
type: Input
|
|
@@ -361,4 +361,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
361
361
|
}], model: [{
|
|
362
362
|
type: Input
|
|
363
363
|
}] } });
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVuRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLENBQUM7QUFHNUMsTUFBTSxPQUFnQixtQkFBbUI7SUE0SHJDO1FBOUZBLGlCQUFZLEdBQThCLEVBQUUsQ0FBQztRQU03Qyw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFlaEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEI7O1dBRUc7UUFFSCw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFFaEM7O1dBRUc7UUFFSCw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFHbEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCOztXQUVHO1FBRUgsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBWTlCOztXQUVHO1FBRUgsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBSyxD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ICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JUZW1wbGF0ZSB9IGZyb20gJy4uL2Vycm9yLXRlbXBsYXRlJztcbmltcG9ydCB7IFNlcnZpY2VMb2NhdG9yIH0gZnJvbSAnLi4vc2VydmljZS1sb2NhdG9yJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHsgVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IEdFU0RFTV9NQVhfREFUQV9MRU5HVEggPSAxMDAwMDtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9laG5JbnB1dENvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBUUlVFLCBhZGRzIGNsYXNzICdzci1vbmx5JyAob25seSBmb3Igc2NyZWVuIHJlYWRlcnMpIG9uIHRhZyA8bGFiZWw+IG9yIDxsZWdlbmQ+XG4gICAgICogZGVwZW5kaW5nIG9uIGNvbXBvbmVudCBleHRlbmRpbmcgdGhpcyBjbGFzc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNMYWJlbFNyT25seTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgaGVscFRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwYXR0ZXJuOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsU3R5bGVNb2RpZmllcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjdXN0b21FcnJvcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4bGVuZ3RoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIG92ZXJyaWRlR2VzZGVtTWF4bGVuZ3RoID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbjogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBtYXg6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgYXV0b2NvbXBsZXRlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwcmV2ZW50UGFzdGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgY2xlYXJCdXR0b24gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEV4Y2x1ZGUgdGhlIGNvbXBvbmVudCBmcm9tIHRoZSBlcnJvciBzdW1tYXJ5IGlmIHRoZSBjb21wb25lbnQgaGFzIGFuIGVycm9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXhjbHVkZUZyb21FcnJvclN1bW1hcnkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlICdmYWN1bHRhdGlmJyBleHRyYSBsYWJlbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWwgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaXNFcnJvckluaGVyaXRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBzZXQgdG8gVFJVRTogU2hvd3MgZXJyb3IgZXZlbiBpZiBpbnB1dCBpcyBkaXNhYmxlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Vycm9yV2hlbkRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkcmVuKE5nTW9kZWwpXG4gICAgaW5wdXRNb2RlbExpc3Q6IFF1ZXJ5TGlzdDxOZ01vZGVsPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2VudHJ5Q29tcG9uZW50JylcbiAgICBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkcmVuKEZvZWhuSW5wdXRDb21wb25lbnQpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBzdWJDb21wb25lbnRzOiBRdWVyeUxpc3Q8Rm9laG5JbnB1dENvbXBvbmVudDxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gdGhlIG1vZGVsIGNoYW5nZXMgZm9yIGFueSByZWFzb25cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gdGhlIHVzZXIgY2hhbmdlcyBhIHZhbHVlLCBhZnRlciB0aGUgbW9kZWwgaXMgdXBkYXRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICB1c2VySW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmUsQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWVcbiAgICBAT3V0cHV0KCdibHVyJylcbiAgICBibHVySGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZSxAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZVxuICAgIEBPdXRwdXQoJ2ZvY3VzJylcbiAgICBmb2N1c0hhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIGhvc3RJZDogc3RyaW5nO1xuXG4gICAgdHlwZTogc3RyaW5nO1xuXG4gICAgdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlOiBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2U7XG5cbiAgICBtb2RlbF86IFQ7XG5cbiAgICBwcml2YXRlIF9lcnJvcnM6IEVycm9yVGVtcGxhdGVbXTtcblxuICAgIHByaXZhdGUgdmFsaWRhdGlvbkVycm9yc1N1YmplY3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgc2hvd0NsZWFyQnV0dG9uOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHByaXZhdGUgdXNlcklucHV0T2JzZXJ2YWJsZSA9IG5ldyBTdWJqZWN0PFQ+KCk7XG4gICAgcHJpdmF0ZSB1c2VySW5wdXRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIFZhbGlkYXRpb25IYW5kbGVyU2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UudmFsaWRhdGlvbkVycm9yc1N1YmplY3QsXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZS52YWxpZGF0aW9uRGlzcGxheVN1YmplY3RcbiAgICAgICAgXSkuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hFcnJvcnModmFsdWVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgaG9zdCBoYXMgYW4gSWQgZm9yIGluc3RydW1lbnRhbGl6YXRpb24gb2YgdGhlIERPTSBieSBhdXRvbWF0ZWQgdGVzdHMuXG4gICAgICAgIHRoaXMuaG9zdElkID0gdGhpcy5idWlsZElkKCk7XG5cbiAgICAgICAgdGhpcy5zaG93Q2xlYXJCdXR0b24gPSB0aGlzLm1vZGVsQ2hhbmdlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKG1hcChtb2RlbCA9PiB0aGlzLmNsZWFyQnV0dG9uICYmICEhbW9kZWwgJiYgIXRoaXMuZGlzYWJsZWQpKTtcblxuICAgICAgICB0aGlzLnVzZXJJbnB1dFN1YnNjcmlwdGlvbiA9IHRoaXMudXNlcklucHV0T2JzZXJ2YWJsZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IHdlIG9ubHkgY2F0Y2ggdGhlIGxhdGVzdCBvZiBtdWx0aXBsZVxuICAgICAgICAgICAgICAgIC8vIHF1aWNrIHVwZGF0ZXMsIGFuZCB0byBtYWtlIHN1cmUgdGhlIHVzZXJJbnB1dCBpcyBmaXJlZCB3aGVuXG4gICAgICAgICAgICAgICAgLy8gdGhlIGNvbXBvbmVudCBpcyBkb25lIHVwZGF0aW5nLlxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgwKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQuZW1pdCh2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkVycm9yc1N1YmplY3RTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yc1N1YmplY3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnVzZXJJbnB1dFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy51c2VySW5wdXRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IG1vZGVsKHZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IG1vZGVsKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbF87XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRyaWdnZXJVc2VySW5wdXQodmFsdWUpO1xuICAgIH1cblxuICAgIHVwZGF0ZU5nTW9kZWwodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlbF8gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBoYXNFcnJvcnNUb0Rpc3BsYXkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmhhc0Vycm9ycygpICYmICghdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnNob3dFcnJvcldoZW5EaXNhYmxlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lcnJvcnMgJiYgdGhpcy5fZXJyb3JzLmxlbmd0aCA+IDAgJiYgdGhpcy5pc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgaGFzSW5oZXJpdEVycm9yRnJvbVBhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFcnJvckluaGVyaXRlZDtcbiAgICB9XG5cbiAgICBpc1ByaXN0aW5lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pbnB1dE1vZGVsTGlzdC5maWx0ZXIobSA9PiAhbS5wcmlzdGluZSkubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZmlsdGVyKGMgPT4gIWMuaXNQcmlzdGluZSgpKS5sZW5ndGggPT09IDBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBtYXJrQXNEaXJ0eSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dE1vZGVsTGlzdC5mb3JFYWNoKG5nTW9kZWwgPT4ge1xuICAgICAgICAgICAgbmdNb2RlbC5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG1hcmtBc1ByaXN0aW5lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0TW9kZWxMaXN0LmZvckVhY2gobmdNb2RlbCA9PiB7XG4gICAgICAgICAgICBuZ01vZGVsLmNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0TmF0aXZlSW5wdXRMaXN0KCk6IE5nTW9kZWxbXSB7XG4gICAgICAgIGxldCByZXN1bHQ6IE5nTW9kZWxbXSA9IHRoaXMuaW5wdXRNb2RlbExpc3QudG9BcnJheSgpO1xuICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYy5nZXROYXRpdmVJbnB1dExpc3QoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZ2V0TWVBbmRTdWJDb21wb25lbnRzKCk6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgbGV0IHJlc3VsdDogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPSBbdGhpc107XG4gICAgICAgIGlmICh0aGlzLnN1YkNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYy5nZXRNZUFuZFN1YkNvbXBvbmVudHMoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGdldCBlcnJvcnMoKTogRXJyb3JUZW1wbGF0ZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9ycztcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZnJlc2hFcnJvcnMocmVzdWx0czogYW55W10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXJyb3JzOiBFcnJvclRlbXBsYXRlW10gPSByZXN1bHRzWzBdO1xuICAgICAgICBjb25zdCBzaG91bGREaXNwbGF5RXJyb3JzOiBib29sZWFuID0gcmVzdWx0c1sxXTtcbiAgICAgICAgaWYgKHNob3VsZERpc3BsYXlFcnJvcnMpIHtcbiAgICAgICAgICAgIHRoaXMuX2Vycm9ycyA9IGVycm9ycy5maWx0ZXIoZSA9PiBlLm5hbWUgPT09IHRoaXMubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgbGV0IGVsZW1lbnRDb250YWluZXI7XG4gICAgICAgIGlmICh0aGlzLmlucHV0RWxlbWVudCAmJiB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZElkKCdDb250YWluZXInKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50Q29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgLy8gU2Nyb2xsIGluIHZpZXcgc2hvdWxkIGJlIGRvbmUgb24gaW5wdXQgY29udGFpbmVyXG4gICAgICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lci5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRm9jdXMgc2hvdWxkIGJlIG9uIHRoZSBpbnB1dCBpdHNlbGZcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cyAmJlxuICAgICAgICAgICAgdGhpcy5nZXRGaXJzdElucHV0Q29tcG9uZW50RW5hYmxlZCh0aGlzLnN1YkNvbXBvbmVudHMpXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgaW5wdXRDb21wb25lbnQgPSB0aGlzLmdldEZpcnN0SW5wdXRDb21wb25lbnRFbmFibGVkKFxuICAgICAgICAgICAgICAgIHRoaXMuc3ViQ29tcG9uZW50c1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgICAgICBpbnB1dENvbXBvbmVudC5idWlsZElkKCdDb250YWluZXInKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50Q29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgLy8gU2Nyb2xsIGluIHZpZXcgc2hvdWxkIGJlIGRvbmUgb24gaW5wdXQgY29udGFpbmVyXG4gICAgICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lci5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRm9jdXMgc2hvdWxkIGJlIG9uIHRoZSBpbnB1dCBpdHNlbGZcbiAgICAgICAgICAgIGlucHV0Q29tcG9uZW50LmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDYXNlIGZvciBjb21wb25lbnQgd2hvIGRvIG5vdCBoYXZlIGFueSAnI2VudHJ5Q29tcG9uZW50JyBpbiB0aGVpciBodG1sIHRlbXBsYXRlIChpLmUuIGZvZWhuLXJhZGlvLCBmb2Vobi1jaGVja2JveCwuLi4pXG4gICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZElkKCdDb250YWluZXInKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50Q29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgLy8gU2Nyb2xsIGluIHZpZXcgc2hvdWxkIGJlIGRvbmUgb24gaW5wdXQgY29udGFpbmVyXG4gICAgICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lci5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZWxlbWVudE5vZGVMaXN0T2YgPSBlbGVtZW50Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAgICAgYGlucHV0W2lkXj1cIiR7dGhpcy5uYW1lfVwiXWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudE5vZGVMaXN0T2YgJiYgZWxlbWVudE5vZGVMaXN0T2YubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuZmluZEZpcnN0SHRtbElucHV0RWxlbWVudEVuYWJsZWQoXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnROb2RlTGlzdE9mXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEZvY3VzIHNob3VsZCBiZSBvbiB0aGUgaW5wdXQgaXRzZWxmXG4gICAgICAgICAgICAgICAgICAgIGlucHV0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldE1heExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMubWF4bGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gR0VTREVNX01BWF9EQVRBX0xFTkdUSDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMubWF4bGVuZ3RoID4gR0VTREVNX01BWF9EQVRBX0xFTkdUSCAmJlxuICAgICAgICAgICAgIXRoaXMub3ZlcnJpZGVHZXNkZW1NYXhsZW5ndGhcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICBgbWF4TGVuZ3RoIGluICR7dGhpcy5uYW1lfSBjYW5ub3QgYmUgbW9yZSB0aGFuICR7R0VTREVNX01BWF9EQVRBX0xFTkdUSH0gIWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gR0VTREVNX01BWF9EQVRBX0xFTkdUSDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1heGxlbmd0aDtcbiAgICB9XG5cbiAgICBidWlsZElkKHN1ZmZpeDogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgICAgICAvLyBUaGUgYmFzZUlkIGlzIGVpdGhlciBhbiBpZCBnaXZlbiBieSB0aGUgdXNlciBvciB0aGUgdmFsdWUgb2YgdGhlIG5hbWUuXG4gICAgICAgIC8vIEZvciBpbnRlZ3JhdGlvbiBwdXJwb3NlcywgdGhlIGNvbnRhaW5lciBmb2Vobi0qIG11c3QgaGF2ZSBhbiBJZC5cbiAgICAgICAgY29uc3QgYmFzZUlkID0gdGhpcy5pZCB8fCB0aGlzLm5hbWU7XG4gICAgICAgIGlmICghYmFzZUlkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtiYXNlSWR9JHtzdWZmaXh9YDtcbiAgICB9XG5cbiAgICBidWlsZENoaWxkSWQoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkSWQoYENoaWxkJHtzdWZmaXh9YCk7XG4gICAgfVxuXG4gICAgYnVpbGRDaGlsZE5hbWUoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLm5hbWV9Q2hpbGQke3N1ZmZpeH1gO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBvbktleWRvd24oa2V5OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcsIG92ZXJyaWRlbiBieSBzdWJjb21wb25lbnRcbiAgICB9XG5cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKG51bGwpO1xuICAgIH1cblxuICAgIG9uUGFzdGUoZTogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucHJldmVudFBhc3RlID09PSB0cnVlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJsdXIoZTogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJsdXJIYW5kbGVyLmVtaXQoZSk7XG4gICAgfVxuXG4gICAgb25Gb2N1cyhlOiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNIYW5kbGVyLmVtaXQoZSk7XG4gICAgfVxuXG4gICAgb25DbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKG51bGwpO1xuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZShudWxsKTtcbiAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cblxuICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgLy8gVGhpcyBoYXMgdG8gYmUgYW4gb2JzZXJ2YWJsZSB0byByZWFjdCB0byB0aGUgY2hhbmdlIG9mIG1vZGVsIHZhbHVlLlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93Q2xlYXJCdXR0b247XG4gICAgfVxuXG4gICAgZ2V0RGVzY3JpYmVkQnkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaGVscFRleHRJZCA9IHRoaXMuaGVscFRleHQgPyBgJHt0aGlzLmJ1aWxkQ2hpbGRJZCgpfUhlbHBgIDogbnVsbDtcbiAgICAgICAgY29uc3QgZXJyb3JJZCA9IHRoaXMuaGFzRXJyb3JzVG9EaXNwbGF5KClcbiAgICAgICAgICAgID8gYCR7dGhpcy5idWlsZElkKCl9RXJyb3JzQ29udGFpbmVyYFxuICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIC8vIGFyaWEtZGVzY3JpYmVkYnkgY2FuIGJlIGxpbmtlZCB0byBtdWx0aXBsZSBJZHMgc2VwYXJhdGVkIGJ5IGEgY29tbWEuXG4gICAgICAgIHJldHVybiBbaGVscFRleHRJZCwgZXJyb3JJZF0uZmlsdGVyKGlkID0+ICEhaWQpLmpvaW4oJywnKSB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldEF1dG9Db21wbGV0ZSgpOiBzdHJpbmcge1xuICAgICAgICAvLyByZXRybyBjb21wYXRpYmlsaXR5IChhdXRvY29tcGxldGUgdXNlZCB0byBiZSBhIGJvb2xlYW4pXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJ29mZic7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZpcnN0SW5wdXRDb21wb25lbnRFbmFibGVkKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBzdWJDb21wb25lbnRzOiBRdWVyeUxpc3Q8Rm9laG5JbnB1dENvbXBvbmVudDxhbnk+PlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICk6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PiB7XG4gICAgICAgIGNvbnN0IGZvZWhuSW5wdXRDb21wb25lbnRzID0gc3ViQ29tcG9uZW50cy5maWx0ZXIoXG4gICAgICAgICAgICBpdGVtID0+IGl0ZW0uaW5wdXRFbGVtZW50ICYmICFpdGVtLmRpc2FibGVkXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCEhZm9laG5JbnB1dENvbXBvbmVudHMgJiYgZm9laG5JbnB1dENvbXBvbmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9laG5JbnB1dENvbXBvbmVudHNbMF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZmluZEZpcnN0SHRtbElucHV0RWxlbWVudEVuYWJsZWQoXG4gICAgICAgIGVsZW1lbnROb2RlTGlzdE9mOiBOb2RlTGlzdE9mPEVsZW1lbnQ+XG4gICAgKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudE5vZGVMaXN0T2YubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxJbnB1dEVsZW1lbnQgPSBlbGVtZW50Tm9kZUxpc3RPZi5pdGVtKFxuICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICAgIGlmICghaHRtbElucHV0RWxlbWVudC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBodG1sSW5wdXRFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbiAgICBwcm90ZWN0ZWQgaXNFbXB0eShkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdW5kZWZpbmVkIHx8IGRhdGEgPT09ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0cmlnZ2VyVXNlcklucHV0KHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIElmIHRoZSBjYWxsYmFjayBpcyBkZWZpbmVkXG4gICAgICAgICAgICAhIXRoaXMudXNlcklucHV0ICYmXG4gICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYWN0dWFsbHkgc29tZXRoaW5nIChUIG9yIG51bGwpXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51c2VySW5wdXRPYnNlcnZhYmxlLm5leHQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
364
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVuRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLENBQUM7QUFHNUMsTUFBTSxPQUFnQixtQkFBbUI7SUE0SHJDO1FBOUZBLGlCQUFZLEdBQThCLEVBQUUsQ0FBQztRQU03Qyw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFlaEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEI7O1dBRUc7UUFFSCw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFFaEM7O1dBRUc7UUFFSCw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFHbEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCOztXQUVHO1FBRUgsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBWTlCOztXQUVHO1FBRUgsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBSyxD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ICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUVycm9yIH0gZnJvbSAnLi4vZm9ybS1lcnJvcic7XG5pbXBvcnQgeyBTZXJ2aWNlTG9jYXRvciB9IGZyb20gJy4uL3NlcnZpY2UtbG9jYXRvcic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBHRVNERU1fTUFYX0RBVEFfTEVOR1RIID0gMTAwMDA7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvZWhuSW5wdXRDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICByZXF1aXJlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdoZW4gVFJVRSwgYWRkcyBjbGFzcyAnc3Itb25seScgKG9ubHkgZm9yIHNjcmVlbiByZWFkZXJzKSBvbiB0YWcgPGxhYmVsPiBvciA8bGVnZW5kPlxuICAgICAqIGRlcGVuZGluZyBvbiBjb21wb25lbnQgZXh0ZW5kaW5nIHRoaXMgY2xhc3NcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzTGFiZWxTck9ubHk6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIGhlbHBUZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcGF0dGVybjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbFN0eWxlTW9kaWZpZXI6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY3VzdG9tRXJyb3JzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgICBASW5wdXQoKVxuICAgIG1heGxlbmd0aDogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBvdmVycmlkZUdlc2RlbU1heGxlbmd0aCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBtaW46IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIGF1dG9jb21wbGV0ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHJldmVudFBhc3RlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsZWFyQnV0dG9uID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFeGNsdWRlIHRoZSBjb21wb25lbnQgZnJvbSB0aGUgZXJyb3Igc3VtbWFyeSBpZiB0aGUgY29tcG9uZW50IGhhcyBhbiBlcnJvci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGV4Y2x1ZGVGcm9tRXJyb3JTdW1tYXJ5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRoZSAnZmFjdWx0YXRpZicgZXh0cmEgbGFiZWwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGlzRXJyb3JJbmhlcml0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZW4gc2V0IHRvIFRSVUU6IFNob3dzIGVycm9yIGV2ZW4gaWYgaW5wdXQgaXMgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dFcnJvcldoZW5EaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZHJlbihOZ01vZGVsKVxuICAgIGlucHV0TW9kZWxMaXN0OiBRdWVyeUxpc3Q8TmdNb2RlbD47XG5cbiAgICBAVmlld0NoaWxkKCdlbnRyeUNvbXBvbmVudCcpXG4gICAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZHJlbihGb2VobklucHV0Q29tcG9uZW50KVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgc3ViQ29tcG9uZW50czogUXVlcnlMaXN0PEZvZWhuSW5wdXRDb21wb25lbnQ8YW55Pj47XG5cbiAgICAvKipcbiAgICAgKiBGaXJlZCB3aGVuIHRoZSBtb2RlbCBjaGFuZ2VzIGZvciBhbnkgcmVhc29uXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBGaXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgYSB2YWx1ZSwgYWZ0ZXIgdGhlIG1vZGVsIGlzIHVwZGF0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgdXNlcklucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlLEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lXG4gICAgQE91dHB1dCgnYmx1cicpXG4gICAgYmx1ckhhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmUsQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWVcbiAgICBAT3V0cHV0KCdmb2N1cycpXG4gICAgZm9jdXNIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBob3N0SWQ6IHN0cmluZztcblxuICAgIHR5cGU6IHN0cmluZztcblxuICAgIHZhbGlkYXRpb25IYW5kbGVyU2VydmljZTogVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlO1xuXG4gICAgbW9kZWxfOiBUO1xuXG4gICAgcHJpdmF0ZSBfZXJyb3JzOiBGb3JtRXJyb3JbXTtcblxuICAgIHByaXZhdGUgdmFsaWRhdGlvbkVycm9yc1N1YmplY3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgc2hvd0NsZWFyQnV0dG9uOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHByaXZhdGUgdXNlcklucHV0T2JzZXJ2YWJsZSA9IG5ldyBTdWJqZWN0PFQ+KCk7XG4gICAgcHJpdmF0ZSB1c2VySW5wdXRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIFZhbGlkYXRpb25IYW5kbGVyU2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UudmFsaWRhdGlvbkVycm9yc1N1YmplY3QsXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZS52YWxpZGF0aW9uRGlzcGxheVN1YmplY3RcbiAgICAgICAgXSkuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hFcnJvcnModmFsdWVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGVycm9ycygpOiBGb3JtRXJyb3JbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lcnJvcnM7XG4gICAgfVxuXG4gICAgZ2V0IG1vZGVsKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbF87XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbW9kZWwodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gRW5zdXJlcyB0aGF0IHRoZSBob3N0IGhhcyBhbiBJZCBmb3IgaW5zdHJ1bWVudGFsaXphdGlvbiBvZiB0aGUgRE9NIGJ5IGF1dG9tYXRlZCB0ZXN0cy5cbiAgICAgICAgdGhpcy5ob3N0SWQgPSB0aGlzLmJ1aWxkSWQoKTtcblxuICAgICAgICB0aGlzLnNob3dDbGVhckJ1dHRvbiA9IHRoaXMubW9kZWxDaGFuZ2VcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUobWFwKG1vZGVsID0+IHRoaXMuY2xlYXJCdXR0b24gJiYgISFtb2RlbCAmJiAhdGhpcy5kaXNhYmxlZCkpO1xuXG4gICAgICAgIHRoaXMudXNlcklucHV0U3Vic2NyaXB0aW9uID0gdGhpcy51c2VySW5wdXRPYnNlcnZhYmxlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHVzZWQgdG8gZW5zdXJlIHRoYXQgd2Ugb25seSBjYXRjaCB0aGUgbGF0ZXN0IG9mIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgLy8gcXVpY2sgdXBkYXRlcywgYW5kIHRvIG1ha2Ugc3VyZSB0aGUgdXNlcklucHV0IGlzIGZpcmVkIHdoZW5cbiAgICAgICAgICAgICAgICAvLyB0aGUgY29tcG9uZW50IGlzIGRvbmUgdXBkYXRpbmcuXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJJbnB1dC5lbWl0KHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudXNlcklucHV0U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnVzZXJJbnB1dFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRyaWdnZXJVc2VySW5wdXQodmFsdWUpO1xuICAgIH1cblxuICAgIHVwZGF0ZU5nTW9kZWwodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlbF8gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBoYXNFcnJvcnNUb0Rpc3BsYXkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmhhc0Vycm9ycygpICYmICghdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnNob3dFcnJvcldoZW5EaXNhYmxlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lcnJvcnMgJiYgdGhpcy5fZXJyb3JzLmxlbmd0aCA+IDAgJiYgdGhpcy5pc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgaGFzSW5oZXJpdEVycm9yRnJvbVBhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFcnJvckluaGVyaXRlZDtcbiAgICB9XG5cbiAgICBpc1ByaXN0aW5lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pbnB1dE1vZGVsTGlzdC5maWx0ZXIobSA9PiAhbS5wcmlzdGluZSkubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZmlsdGVyKGMgPT4gIWMuaXNQcmlzdGluZSgpKS5sZW5ndGggPT09IDBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBtYXJrQXNEaXJ0eSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dE1vZGVsTGlzdC5mb3JFYWNoKG5nTW9kZWwgPT4ge1xuICAgICAgICAgICAgbmdNb2RlbC5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG1hcmtBc1ByaXN0aW5lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0TW9kZWxMaXN0LmZvckVhY2gobmdNb2RlbCA9PiB7XG4gICAgICAgICAgICBuZ01vZGVsLmNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0TmF0aXZlSW5wdXRMaXN0KCk6IE5nTW9kZWxbXSB7XG4gICAgICAgIGxldCByZXN1bHQ6IE5nTW9kZWxbXSA9IHRoaXMuaW5wdXRNb2RlbExpc3QudG9BcnJheSgpO1xuICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYy5nZXROYXRpdmVJbnB1dExpc3QoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZ2V0TWVBbmRTdWJDb21wb25lbnRzKCk6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgbGV0IHJlc3VsdDogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPSBbdGhpc107XG4gICAgICAgIGlmICh0aGlzLnN1YkNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYy5nZXRNZUFuZFN1YkNvbXBvbmVudHMoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVmcmVzaEVycm9ycyhyZXN1bHRzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBlcnJvcnM6IEZvcm1FcnJvcltdID0gcmVzdWx0c1swXTtcbiAgICAgICAgY29uc3Qgc2hvdWxkRGlzcGxheUVycm9yczogYm9vbGVhbiA9IHJlc3VsdHNbMV07XG4gICAgICAgIGlmIChzaG91bGREaXNwbGF5RXJyb3JzKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnJvcnMgPSBlcnJvcnMuZmlsdGVyKGUgPT4gZS5uYW1lID09PSB0aGlzLm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGxldCBlbGVtZW50Q29udGFpbmVyO1xuICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQgJiYgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRJZCgnQ29udGFpbmVyJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudENvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIC8vIFNjcm9sbCBpbiB2aWV3IHNob3VsZCBiZSBkb25lIG9uIGlucHV0IGNvbnRhaW5lclxuICAgICAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZvY3VzIHNob3VsZCBiZSBvbiB0aGUgaW5wdXQgaXRzZWxmXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMgJiZcbiAgICAgICAgICAgIHRoaXMuZ2V0Rmlyc3RJbnB1dENvbXBvbmVudEVuYWJsZWQodGhpcy5zdWJDb21wb25lbnRzKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0Q29tcG9uZW50ID0gdGhpcy5nZXRGaXJzdElucHV0Q29tcG9uZW50RW5hYmxlZChcbiAgICAgICAgICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgICAgICAgICAgaW5wdXRDb21wb25lbnQuYnVpbGRJZCgnQ29udGFpbmVyJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudENvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIC8vIFNjcm9sbCBpbiB2aWV3IHNob3VsZCBiZSBkb25lIG9uIGlucHV0IGNvbnRhaW5lclxuICAgICAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZvY3VzIHNob3VsZCBiZSBvbiB0aGUgaW5wdXQgaXRzZWxmXG4gICAgICAgICAgICBpbnB1dENvbXBvbmVudC5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQ2FzZSBmb3IgY29tcG9uZW50IHdobyBkbyBub3QgaGF2ZSBhbnkgJyNlbnRyeUNvbXBvbmVudCcgaW4gdGhlaXIgaHRtbCB0ZW1wbGF0ZSAoaS5lLiBmb2Vobi1yYWRpbywgZm9laG4tY2hlY2tib3gsLi4uKVxuICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRJZCgnQ29udGFpbmVyJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudENvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIC8vIFNjcm9sbCBpbiB2aWV3IHNob3VsZCBiZSBkb25lIG9uIGlucHV0IGNvbnRhaW5lclxuICAgICAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnROb2RlTGlzdE9mID0gZWxlbWVudENvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgIGBpbnB1dFtpZF49XCIke3RoaXMubmFtZX1cIl1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnROb2RlTGlzdE9mICYmIGVsZW1lbnROb2RlTGlzdE9mLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLmZpbmRGaXJzdEh0bWxJbnB1dEVsZW1lbnRFbmFibGVkKFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50Tm9kZUxpc3RPZlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBGb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0IGl0c2VsZlxuICAgICAgICAgICAgICAgICAgICBpbnB1dEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRNYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLm1heGxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIEdFU0RFTV9NQVhfREFUQV9MRU5HVEg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm1heGxlbmd0aCA+IEdFU0RFTV9NQVhfREFUQV9MRU5HVEggJiZcbiAgICAgICAgICAgICF0aGlzLm92ZXJyaWRlR2VzZGVtTWF4bGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgYG1heExlbmd0aCBpbiAke3RoaXMubmFtZX0gY2Fubm90IGJlIG1vcmUgdGhhbiAke0dFU0RFTV9NQVhfREFUQV9MRU5HVEh9ICFgXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIEdFU0RFTV9NQVhfREFUQV9MRU5HVEg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tYXhsZW5ndGg7XG4gICAgfVxuXG4gICAgYnVpbGRJZChzdWZmaXg6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgLy8gVGhlIGJhc2VJZCBpcyBlaXRoZXIgYW4gaWQgZ2l2ZW4gYnkgdGhlIHVzZXIgb3IgdGhlIHZhbHVlIG9mIHRoZSBuYW1lLlxuICAgICAgICAvLyBGb3IgaW50ZWdyYXRpb24gcHVycG9zZXMsIHRoZSBjb250YWluZXIgZm9laG4tKiBtdXN0IGhhdmUgYW4gSWQuXG4gICAgICAgIGNvbnN0IGJhc2VJZCA9IHRoaXMuaWQgfHwgdGhpcy5uYW1lO1xuICAgICAgICBpZiAoIWJhc2VJZCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7YmFzZUlkfSR7c3VmZml4fWA7XG4gICAgfVxuXG4gICAgYnVpbGRDaGlsZElkKHN1ZmZpeDogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZElkKGBDaGlsZCR7c3VmZml4fWApO1xuICAgIH1cblxuICAgIGJ1aWxkQ2hpbGROYW1lKHN1ZmZpeDogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5uYW1lfUNoaWxkJHtzdWZmaXh9YDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgb25LZXlkb3duKGtleTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nLCBvdmVycmlkZW4gYnkgc3ViY29tcG9uZW50XG4gICAgfVxuXG4gICAgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChudWxsKTtcbiAgICB9XG5cbiAgICBvblBhc3RlKGU6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnByZXZlbnRQYXN0ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyKGU6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ibHVySGFuZGxlci5lbWl0KGUpO1xuICAgIH1cblxuICAgIG9uRm9jdXMoZTogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzSGFuZGxlci5lbWl0KGUpO1xuICAgIH1cblxuICAgIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChudWxsKTtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UobnVsbCk7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBkaXNwbGF5Q2xlYXJCdXR0b24oKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIC8vIFRoaXMgaGFzIHRvIGJlIGFuIG9ic2VydmFibGUgdG8gcmVhY3QgdG8gdGhlIGNoYW5nZSBvZiBtb2RlbCB2YWx1ZS5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0NsZWFyQnV0dG9uO1xuICAgIH1cblxuICAgIGdldERlc2NyaWJlZEJ5KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGhlbHBUZXh0SWQgPSB0aGlzLmhlbHBUZXh0ID8gYCR7dGhpcy5idWlsZENoaWxkSWQoKX1IZWxwYCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGVycm9ySWQgPSB0aGlzLmhhc0Vycm9yc1RvRGlzcGxheSgpXG4gICAgICAgICAgICA/IGAke3RoaXMuYnVpbGRJZCgpfUVycm9yc0NvbnRhaW5lcmBcbiAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAvLyBhcmlhLWRlc2NyaWJlZGJ5IGNhbiBiZSBsaW5rZWQgdG8gbXVsdGlwbGUgSWRzIHNlcGFyYXRlZCBieSBhIGNvbW1hLlxuICAgICAgICByZXR1cm4gW2hlbHBUZXh0SWQsIGVycm9ySWRdLmZpbHRlcihpZCA9PiAhIWlkKS5qb2luKCcsJykgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXRBdXRvQ29tcGxldGUoKTogc3RyaW5nIHtcbiAgICAgICAgLy8gcmV0cm8gY29tcGF0aWJpbGl0eSAoYXV0b2NvbXBsZXRlIHVzZWQgdG8gYmUgYSBib29sZWFuKVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuICdvZmYnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGaXJzdElucHV0Q29tcG9uZW50RW5hYmxlZChcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgc3ViQ29tcG9uZW50czogUXVlcnlMaXN0PEZvZWhuSW5wdXRDb21wb25lbnQ8YW55Pj5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICApOiBGb2VobklucHV0Q29tcG9uZW50PGFueT4ge1xuICAgICAgICBjb25zdCBmb2VobklucHV0Q29tcG9uZW50cyA9IHN1YkNvbXBvbmVudHMuZmlsdGVyKFxuICAgICAgICAgICAgaXRlbSA9PiBpdGVtLmlucHV0RWxlbWVudCAmJiAhaXRlbS5kaXNhYmxlZFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghIWZvZWhuSW5wdXRDb21wb25lbnRzICYmIGZvZWhuSW5wdXRDb21wb25lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZvZWhuSW5wdXRDb21wb25lbnRzWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZpbmRGaXJzdEh0bWxJbnB1dEVsZW1lbnRFbmFibGVkKFxuICAgICAgICBlbGVtZW50Tm9kZUxpc3RPZjogTm9kZUxpc3RPZjxFbGVtZW50PlxuICAgICk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnROb2RlTGlzdE9mLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBodG1sSW5wdXRFbGVtZW50ID0gZWxlbWVudE5vZGVMaXN0T2YuaXRlbShcbiAgICAgICAgICAgICAgICBpXG4gICAgICAgICAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoIWh0bWxJbnB1dEVsZW1lbnQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaHRtbElucHV0RWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByb3RlY3RlZCBpc0VtcHR5KGRhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRyaWdnZXJVc2VySW5wdXQodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgLy8gSWYgdGhlIGNhbGxiYWNrIGlzIGRlZmluZWRcbiAgICAgICAgICAgICEhdGhpcy51c2VySW5wdXQgJiZcbiAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhY3R1YWxseSBzb21ldGhpbmcgKFQgb3IgbnVsbClcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVzZXJJbnB1dE9ic2VydmFibGUubmV4dCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
package/{esm2015/foehn-input/foehn-input.module.js → esm2020/foehn-input/foehn-input.module.mjs}
RENAMED
|
@@ -16,8 +16,8 @@ import { SdkDictionaryModule } from '../sdk-dictionary/sdk-dictionary.module';
|
|
|
16
16
|
import * as i0 from "@angular/core";
|
|
17
17
|
export class FoehnInputModule {
|
|
18
18
|
}
|
|
19
|
-
FoehnInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
20
|
-
FoehnInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
19
|
+
FoehnInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20
|
+
FoehnInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnInputModule, declarations: [FoehnInputTextComponent,
|
|
21
21
|
FoehnInputNumberComponent,
|
|
22
22
|
FoehnInputEmailComponent,
|
|
23
23
|
FoehnInputHiddenComponent,
|
|
@@ -38,14 +38,14 @@ FoehnInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
38
38
|
FoehnDateComponent,
|
|
39
39
|
FoehnTimeComponent,
|
|
40
40
|
FoehnInputPhoneComponent] });
|
|
41
|
-
FoehnInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
41
|
+
FoehnInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnInputModule, imports: [[
|
|
42
42
|
FoehnIconsModule,
|
|
43
43
|
CommonModule,
|
|
44
44
|
FormsModule,
|
|
45
45
|
FoehnValidationAlertsModule,
|
|
46
46
|
SdkDictionaryModule
|
|
47
47
|
]] });
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnInputModule, decorators: [{
|
|
49
49
|
type: NgModule,
|
|
50
50
|
args: [{
|
|
51
51
|
imports: [
|
|
File without changes
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Component, forwardRef, Input } from '@angular/core';
|
|
2
|
+
import { FoehnInputComponent } from '../foehn-input/foehn-input.component';
|
|
3
|
+
import { of } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../foehn-validation-alerts/foehn-validation-alerts.component";
|
|
6
|
+
import * as i2 from "../foehn-input/foehn-input-number.component";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
9
|
+
export class FoehnDateComponent extends FoehnInputComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.disableDay = false;
|
|
13
|
+
this.disableMonth = false;
|
|
14
|
+
this.disableYear = false;
|
|
15
|
+
}
|
|
16
|
+
updateDate() {
|
|
17
|
+
const validValue = this.getValidValue();
|
|
18
|
+
if (typeof validValue !== 'undefined') {
|
|
19
|
+
this.updateNgModel(validValue);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
handleUserInput() {
|
|
23
|
+
const validValue = this.getValidValue();
|
|
24
|
+
if (typeof validValue !== 'undefined') {
|
|
25
|
+
this.handleChange(validValue);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
onModelChange(value) {
|
|
29
|
+
if (value && value.length > 2) {
|
|
30
|
+
this.year = this.toString(value[0]);
|
|
31
|
+
this.month = this.toString(value[1]);
|
|
32
|
+
this.day = this.toString(value[2]);
|
|
33
|
+
}
|
|
34
|
+
else if (!value) {
|
|
35
|
+
this.year = null;
|
|
36
|
+
this.month = null;
|
|
37
|
+
this.day = null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
displayClearButton() {
|
|
41
|
+
// Override the clear button fonction not worry about the model at this stage.
|
|
42
|
+
return of(this.clearButton);
|
|
43
|
+
}
|
|
44
|
+
getValidValue() {
|
|
45
|
+
if (this.isEmpty(this.day) &&
|
|
46
|
+
this.isEmpty(this.month) &&
|
|
47
|
+
this.isEmpty(this.year)) {
|
|
48
|
+
if (this.model_ !== undefined) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
return [
|
|
54
|
+
this.toNumber(this.year),
|
|
55
|
+
this.toNumber(this.month),
|
|
56
|
+
this.toNumber(this.day)
|
|
57
|
+
];
|
|
58
|
+
}
|
|
59
|
+
toNumber(str) {
|
|
60
|
+
return str ? Number(str) : null;
|
|
61
|
+
}
|
|
62
|
+
toString(num) {
|
|
63
|
+
return num ? num.toString() : null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
FoehnDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
FoehnDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FoehnDateComponent, selector: "foehn-input-date", inputs: { disableDay: "disableDay", disableMonth: "disableMonth", disableYear: "disableYear" }, providers: [
|
|
68
|
+
{
|
|
69
|
+
provide: FoehnInputComponent,
|
|
70
|
+
useExisting: forwardRef(() => FoehnDateComponent),
|
|
71
|
+
multi: true
|
|
72
|
+
}
|
|
73
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend *ngIf=\"!!label\" [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\">\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_day'\"\n [name]=\"name + '_day'\"\n [label]=\"'foehn-input-date.day.label' | fromDictionary\"\n [(model)]=\"day\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableDay\"\n [maxlength]=\"2\"\n [allowNegative]=\"false\"\n [max]=\"31\"\n [clearButton]=\"displayClearButton() | async\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_month'\"\n [name]=\"name + '_month'\"\n [label]=\"'foehn-input-date.month.label' | fromDictionary\"\n [(model)]=\"month\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableMonth\"\n [maxlength]=\"2\"\n [clearButton]=\"displayClearButton() | async\"\n [allowNegative]=\"false\"\n [max]=\"12\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n ></foehn-input-number>\n </div>\n <div class=\"vd-form-flex__item vd-form-flex__item--4-char-width\">\n <foehn-input-number\n [id]=\"buildId() + '_year'\"\n [name]=\"name + '_year'\"\n [label]=\"'foehn-input-date.year.label' | fromDictionary\"\n [(model)]=\"year\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableYear\"\n [allowNegative]=\"false\"\n [maxlength]=\"4\"\n [clearButton]=\"displayClearButton() | async\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n ></foehn-input-number>\n </div>\n <ng-content select=\"[date-picker-button]\"></ng-content>\n </div>\n </fieldset>\n</div>\n", components: [{ type: i1.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i2.FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["allowDecimal", "allowNegative", "maxDecimalCount", "model"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "fromDictionary": i4.SdkDictionaryPipe, "async": i3.AsyncPipe } });
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnDateComponent, decorators: [{
|
|
75
|
+
type: Component,
|
|
76
|
+
args: [{ selector: 'foehn-input-date', providers: [
|
|
77
|
+
{
|
|
78
|
+
provide: FoehnInputComponent,
|
|
79
|
+
useExisting: forwardRef(() => FoehnDateComponent),
|
|
80
|
+
multi: true
|
|
81
|
+
}
|
|
82
|
+
], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend *ngIf=\"!!label\" [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\">\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_day'\"\n [name]=\"name + '_day'\"\n [label]=\"'foehn-input-date.day.label' | fromDictionary\"\n [(model)]=\"day\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableDay\"\n [maxlength]=\"2\"\n [allowNegative]=\"false\"\n [max]=\"31\"\n [clearButton]=\"displayClearButton() | async\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_month'\"\n [name]=\"name + '_month'\"\n [label]=\"'foehn-input-date.month.label' | fromDictionary\"\n [(model)]=\"month\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableMonth\"\n [maxlength]=\"2\"\n [clearButton]=\"displayClearButton() | async\"\n [allowNegative]=\"false\"\n [max]=\"12\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n ></foehn-input-number>\n </div>\n <div class=\"vd-form-flex__item vd-form-flex__item--4-char-width\">\n <foehn-input-number\n [id]=\"buildId() + '_year'\"\n [name]=\"name + '_year'\"\n [label]=\"'foehn-input-date.year.label' | fromDictionary\"\n [(model)]=\"year\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableYear\"\n [allowNegative]=\"false\"\n [maxlength]=\"4\"\n [clearButton]=\"displayClearButton() | async\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n ></foehn-input-number>\n </div>\n <ng-content select=\"[date-picker-button]\"></ng-content>\n </div>\n </fieldset>\n</div>\n" }]
|
|
83
|
+
}], propDecorators: { disableDay: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], disableMonth: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], disableYear: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}] } });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4taW5wdXQtZGF0ZS9mb2Vobi1pbnB1dC1kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC1kYXRlL2ZvZWhuLWlucHV0LWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQWF0QyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsbUJBQTZCO0lBWHJFOztRQWFJLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFHbkIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0ErRHZCO0lBekRHLFVBQVU7UUFDTixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEMsSUFBSSxPQUFPLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWU7UUFDekIsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsOEVBQThFO1FBQzlFLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU8sYUFBYTtRQUNqQixJQUNJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ3pCO1lBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDM0IsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUVELE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTztZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQzFCLENBQUM7SUFDTixDQUFDO0lBRU8sUUFBUSxDQUFDLEdBQVc7UUFDeEIsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxRQUFRLENBQUMsR0FBVztRQUN4QixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkMsQ0FBQzs7K0dBdEVRLGtCQUFrQjttR0FBbEIsa0JBQWtCLDJJQVJoQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQ2pELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixpRENiTCxtOUlBOEdBOzJGRC9GYSxrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0ksa0JBQWtCLGFBRWpCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDOzRCQUNqRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjs4QkFJRCxVQUFVO3NCQURULEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1pbnB1dC1kYXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4taW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2VobkRhdGVDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5EYXRlQ29tcG9uZW50IGV4dGVuZHMgRm9laG5JbnB1dENvbXBvbmVudDxudW1iZXJbXT4ge1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZURheSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlTW9udGggPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZVllYXIgPSBmYWxzZTtcblxuICAgIGRheTogc3RyaW5nO1xuICAgIG1vbnRoOiBzdHJpbmc7XG4gICAgeWVhcjogc3RyaW5nO1xuXG4gICAgdXBkYXRlRGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0VmFsaWRWYWx1ZSgpO1xuICAgICAgICBpZiAodHlwZW9mIHZhbGlkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVVc2VySW5wdXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldFZhbGlkVmFsdWUoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWxpZFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgdGhpcy55ZWFyID0gdGhpcy50b1N0cmluZyh2YWx1ZVswXSk7XG4gICAgICAgICAgICB0aGlzLm1vbnRoID0gdGhpcy50b1N0cmluZyh2YWx1ZVsxXSk7XG4gICAgICAgICAgICB0aGlzLmRheSA9IHRoaXMudG9TdHJpbmcodmFsdWVbMl0pO1xuICAgICAgICB9IGVsc2UgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy55ZWFyID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMubW9udGggPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5kYXkgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzcGxheUNsZWFyQnV0dG9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICAvLyBPdmVycmlkZSB0aGUgY2xlYXIgYnV0dG9uIGZvbmN0aW9uIG5vdCB3b3JyeSBhYm91dCB0aGUgbW9kZWwgYXQgdGhpcyBzdGFnZS5cbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuY2xlYXJCdXR0b24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmFsaWRWYWx1ZSgpOiBudW1iZXJbXSB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmlzRW1wdHkodGhpcy5kYXkpICYmXG4gICAgICAgICAgICB0aGlzLmlzRW1wdHkodGhpcy5tb250aCkgJiZcbiAgICAgICAgICAgIHRoaXMuaXNFbXB0eSh0aGlzLnllYXIpXG4gICAgICAgICkge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWxfICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy50b051bWJlcih0aGlzLnllYXIpLFxuICAgICAgICAgICAgdGhpcy50b051bWJlcih0aGlzLm1vbnRoKSxcbiAgICAgICAgICAgIHRoaXMudG9OdW1iZXIodGhpcy5kYXkpXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b051bWJlcihzdHI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBzdHIgPyBOdW1iZXIoc3RyKSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b1N0cmluZyhudW06IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBudW0gPyBudW0udG9TdHJpbmcoKSA6IG51bGw7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cFwiXG4gICAgW2NsYXNzLmhhcy1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFtjbGFzcy52ZC1mb3JtLWdyb3VwLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxmaWVsZHNldFxuICAgICAgICBjbGFzcz1cIm1iLTNcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImdldERlc2NyaWJlZEJ5KClcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgPlxuICAgICAgICA8bGVnZW5kICpuZ0lmPVwiISFsYWJlbFwiIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAnc3Itb25seScgOiAndmQtcCdcIj5cbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xlZ2VuZD5cblxuICAgICAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgpICsgJ0hlbHAnXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgICAgID48L3NtYWxsPlxuXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidmQtZm9ybS1mbGV4XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAndmQtZm9ybS1mbGV4X19pdGVtLS0zLWNoYXItd2lkdGgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUNsZWFyQnV0dG9uKCkgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgJ3ZkLWZvcm0tZmxleF9faXRlbS0tMi1jaGFyLXdpZHRoJzogIShcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmQtZm9ybS1mbGV4X19pdGVtXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Zm9laG4taW5wdXQtbnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCkgKyAnX2RheSdcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJ19kYXknXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidmb2Vobi1pbnB1dC1kYXRlLmRheS5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRheVwiXG4gICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ1cGRhdGVEYXRlKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgZGlzYWJsZURheVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd05lZ2F0aXZlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW21heF09XCIzMVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGVhckJ1dHRvbl09XCJkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICh1c2VySW5wdXQpPVwiaGFuZGxlVXNlcklucHV0KClcIlxuICAgICAgICAgICAgICAgICAgICBbaXNFcnJvckluaGVyaXRlZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgICAgICAgICAgICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgICAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LW51bWJlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ3ZkLWZvcm0tZmxleF9faXRlbS0tMy1jaGFyLXdpZHRoJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICd2ZC1mb3JtLWZsZXhfX2l0ZW0tLTItY2hhci13aWR0aCc6ICEoXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZkLWZvcm0tZmxleF9faXRlbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWlucHV0LW51bWJlclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgpICsgJ19tb250aCdcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJ19tb250aCdcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2ZvZWhuLWlucHV0LWRhdGUubW9udGgubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb250aFwiXG4gICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ1cGRhdGVEYXRlKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgZGlzYWJsZU1vbnRoXCJcbiAgICAgICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsZWFyQnV0dG9uXT1cImRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dOZWdhdGl2ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiMTJcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKHVzZXJJbnB1dCk9XCJoYW5kbGVVc2VySW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0Vycm9ySW5oZXJpdGVkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICAgICAgICAgICAgICA+PC9mb2Vobi1pbnB1dC1udW1iZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZC1mb3JtLWZsZXhfX2l0ZW0gdmQtZm9ybS1mbGV4X19pdGVtLS00LWNoYXItd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8Zm9laG4taW5wdXQtbnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCkgKyAnX3llYXInXCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZSArICdfeWVhcidcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2ZvZWhuLWlucHV0LWRhdGUueWVhci5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInllYXJcIlxuICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwidXBkYXRlRGF0ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGRpc2FibGVZZWFyXCJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93TmVnYXRpdmVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIjRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xlYXJCdXR0b25dPVwiZGlzcGxheUNsZWFyQnV0dG9uKCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAodXNlcklucHV0KT1cImhhbmRsZVVzZXJJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzRXJyb3JJbmhlcml0ZWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgICAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LW51bWJlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RhdGUtcGlja2VyLWJ1dHRvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG48L2Rpdj5cbiJdfQ==
|