@ohioepa/oepa-ui-lib 1.1.0
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/README.md +24 -0
- package/esm2022/lib/account-search-input/account-search-input.component.mjs +147 -0
- package/esm2022/lib/account-search-modal/account-search-modal.component.mjs +151 -0
- package/esm2022/lib/action-btn/action-btn.component.mjs +70 -0
- package/esm2022/lib/action-btn/oepa-action-event.mjs +2 -0
- package/esm2022/lib/action-btn/oepa-action.mjs +2 -0
- package/esm2022/lib/action-btn-modal/action-btn-modal.component.mjs +21 -0
- package/esm2022/lib/address/address.component.mjs +174 -0
- package/esm2022/lib/address/oepa-address.service.mjs +64 -0
- package/esm2022/lib/address/oepa-form-address.mjs +2 -0
- package/esm2022/lib/blank/blank.component.mjs +14 -0
- package/esm2022/lib/checkbox/checkbox.component.mjs +33 -0
- package/esm2022/lib/checkbox-input/checkbox-input.component.mjs +41 -0
- package/esm2022/lib/comment-modal/comment-modal.component.mjs +56 -0
- package/esm2022/lib/common-forms.module.mjs +291 -0
- package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +120 -0
- package/esm2022/lib/contact/contact.component.mjs +102 -0
- package/esm2022/lib/contact/oepa-form-contact.mjs +2 -0
- package/esm2022/lib/date-input/date-input.component.mjs +52 -0
- package/esm2022/lib/date-input-modal/date-input-modal.component.mjs +68 -0
- package/esm2022/lib/datepicker/datepicker.component.mjs +131 -0
- package/esm2022/lib/daterangepicker/daterangepicker.component.mjs +70 -0
- package/esm2022/lib/document/document-editor/document-editor.component.mjs +225 -0
- package/esm2022/lib/document/document-event-entity-type.mjs +7 -0
- package/esm2022/lib/document/document-event-type.mjs +7 -0
- package/esm2022/lib/document/document-event.mjs +2 -0
- package/esm2022/lib/document/document-group/document-group.component.mjs +210 -0
- package/esm2022/lib/document/document-part/document-part.component.mjs +19 -0
- package/esm2022/lib/document/document-part-editor/document-part-editor.component.mjs +296 -0
- package/esm2022/lib/document/document-placeholder-modal/document-placeholder-modal.component.mjs +49 -0
- package/esm2022/lib/document/document-section/document-section.component.mjs +226 -0
- package/esm2022/lib/document/document.service.mjs +325 -0
- package/esm2022/lib/document/group-modal/group-modal.component.mjs +46 -0
- package/esm2022/lib/document/part-modal/part-modal.component.mjs +48 -0
- package/esm2022/lib/document/portal-document-class.mjs +2 -0
- package/esm2022/lib/document/portal-document-group.mjs +2 -0
- package/esm2022/lib/document/portal-document-part.mjs +2 -0
- package/esm2022/lib/document/portal-document-placeholder.mjs +2 -0
- package/esm2022/lib/document/portal-document-section.mjs +2 -0
- package/esm2022/lib/document/portal-document-text.mjs +2 -0
- package/esm2022/lib/document/portal-document-type.mjs +2 -0
- package/esm2022/lib/document/portal-document.mjs +2 -0
- package/esm2022/lib/document/portal-email-attachment-type.mjs +2 -0
- package/esm2022/lib/document/portal-email-attachment.mjs +2 -0
- package/esm2022/lib/document/portal-email-filter.mjs +2 -0
- package/esm2022/lib/document/portal-email.mjs +2 -0
- package/esm2022/lib/document/section-modal/section-modal.component.mjs +46 -0
- package/esm2022/lib/dual-list-box/array.pipes.mjs +71 -0
- package/esm2022/lib/dual-list-box/dual-list-box.component.mjs +339 -0
- package/esm2022/lib/dual-list-box/items-moved-event.mjs +2 -0
- package/esm2022/lib/dual-list-box/list-box-item.mjs +2 -0
- package/esm2022/lib/ebiz-address/ebiz-address.component.mjs +62 -0
- package/esm2022/lib/edoc-attachment/edoc-attachment.component.mjs +216 -0
- package/esm2022/lib/edoc-attachment/edoc-attachment.service.mjs +38 -0
- package/esm2022/lib/edoc-attachment/edocument-attachment-metadata.mjs +2 -0
- package/esm2022/lib/edoc-attachment/edocument-attachment.mjs +2 -0
- package/esm2022/lib/edoc-attachment/edocument-reference.mjs +2 -0
- package/esm2022/lib/entity/entity.service.mjs +104 -0
- package/esm2022/lib/entity/organization-create-modal/organization-create-modal.component.mjs +307 -0
- package/esm2022/lib/entity/organization-search-input/organization-search-input.component.mjs +127 -0
- package/esm2022/lib/entity/organization-search-modal/organization-search-modal.component.mjs +304 -0
- package/esm2022/lib/entity/person-create-modal/person-create-modal.component.mjs +316 -0
- package/esm2022/lib/entity/person-search-input/person-search-input.component.mjs +129 -0
- package/esm2022/lib/entity/person-search-modal/person-search-modal.component.mjs +311 -0
- package/esm2022/lib/entity/place-create-modal/place-create-modal.component.mjs +14 -0
- package/esm2022/lib/entity/place-search-input/place-search-input.component.mjs +126 -0
- package/esm2022/lib/entity/place-search-modal/place-search-modal.component.mjs +216 -0
- package/esm2022/lib/esri-map/esri-map.component.mjs +416 -0
- package/esm2022/lib/file-upload/file-upload.component.mjs +148 -0
- package/esm2022/lib/lynx-image-upload/lynx-image-upload.component.mjs +143 -0
- package/esm2022/lib/lynx-image-upload/lynx.service.mjs +47 -0
- package/esm2022/lib/masks/oepa-create-integer-mask.mjs +39 -0
- package/esm2022/lib/masks/oepa-integer-mask-args.mjs +2 -0
- package/esm2022/lib/message/message.component.mjs +19 -0
- package/esm2022/lib/message/oepa-message-type.mjs +7 -0
- package/esm2022/lib/message/oepa-message.mjs +31 -0
- package/esm2022/lib/message-list/message-list.component.mjs +24 -0
- package/esm2022/lib/multi-file-upload/multi-file-upload.component.mjs +137 -0
- package/esm2022/lib/notes-modal/notes-modal.component.mjs +177 -0
- package/esm2022/lib/notes-modal/oepa-note-result.mjs +2 -0
- package/esm2022/lib/notes-modal/oepa-note.mjs +2 -0
- package/esm2022/lib/numeric-input/numeric-input.component.mjs +50 -0
- package/esm2022/lib/numeric-input.directive.mjs +76 -0
- package/esm2022/lib/oepa-error-message/oepa-error-message.component.mjs +39 -0
- package/esm2022/lib/oepa-forms.service.mjs +199 -0
- package/esm2022/lib/oepa-images.mjs +59 -0
- package/esm2022/lib/oepa-wait-message/oepa-wait-message.component.mjs +29 -0
- package/esm2022/lib/ohio-lat-long/ohio-lat-long.component.mjs +176 -0
- package/esm2022/lib/parameter/parameter.mjs +2 -0
- package/esm2022/lib/parameter/parameter.service.mjs +47 -0
- package/esm2022/lib/params-help-button/params-help-button.component.mjs +42 -0
- package/esm2022/lib/phone-number/phone-number.component.mjs +44 -0
- package/esm2022/lib/pin-modal/oepa-attestation.mjs +2 -0
- package/esm2022/lib/pin-modal/oepa-pin.mjs +2 -0
- package/esm2022/lib/pin-modal/oepa-pin.service.mjs +54 -0
- package/esm2022/lib/pin-modal/oepa-security-question.mjs +2 -0
- package/esm2022/lib/pin-modal/pin-modal.component.mjs +186 -0
- package/esm2022/lib/progress-indicator/progress-info.mjs +2 -0
- package/esm2022/lib/select-input/select-input.component.mjs +96 -0
- package/esm2022/lib/server-timeout-modal/server-timeout-modal.component.mjs +63 -0
- package/esm2022/lib/shopping-cart/shopping-cart-summary/shopping-cart-summary.component.mjs +54 -0
- package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view-parameters.mjs +2 -0
- package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.mjs +190 -0
- package/esm2022/lib/shopping-cart/shopping-cart.service.mjs +89 -0
- package/esm2022/lib/start-end-timepicker/start-end-timepicker.component.mjs +126 -0
- package/esm2022/lib/table/oepa-p-column.mjs +2 -0
- package/esm2022/lib/table/oepa-table-cell-classname.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-click-event.mjs +2 -0
- package/esm2022/lib/table/oepa-table-cell-colspan.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-hidden.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-icon-classname.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-img-src.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-inner-html.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-input-component.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-not-selectable.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-value.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell.mjs +2 -0
- package/esm2022/lib/table/oepa-table-column.mjs +2 -0
- package/esm2022/lib/table/oepa-table-config.mjs +2 -0
- package/esm2022/lib/table/oepa-table-filter.mjs +2 -0
- package/esm2022/lib/table/oepa-table-filtering.directive.mjs +57 -0
- package/esm2022/lib/table/oepa-table-header.mjs +2 -0
- package/esm2022/lib/table/oepa-table-page-info.mjs +2 -0
- package/esm2022/lib/table/oepa-table-popover.mjs +2 -0
- package/esm2022/lib/table/oepa-table-row.mjs +2 -0
- package/esm2022/lib/table/oepa-table-sort-criterion.mjs +2 -0
- package/esm2022/lib/table/oepa-table-sorting.directive.mjs +57 -0
- package/esm2022/lib/table/oepa-table.mjs +2 -0
- package/esm2022/lib/table/p-table/p-table.component.mjs +826 -0
- package/esm2022/lib/table/table-data-cell/table-data-cell-click-event.mjs +2 -0
- package/esm2022/lib/table/table-data-cell/table-data-cell.component.mjs +60 -0
- package/esm2022/lib/table/table-export.service.mjs +57 -0
- package/esm2022/lib/table/table-header-cell/table-header-cell.component.mjs +61 -0
- package/esm2022/lib/table/table.component.mjs +793 -0
- package/esm2022/lib/table/table.service.mjs +112 -0
- package/esm2022/lib/template-confirmation-modal/template-confirmation-modal.component.mjs +46 -0
- package/esm2022/lib/text-area-input/text-area-input.component.mjs +48 -0
- package/esm2022/lib/text-input/text-input.component.mjs +48 -0
- package/esm2022/lib/timeout-modal/timeout-modal.component.mjs +31 -0
- package/esm2022/lib/timepicker/timepicker.component.mjs +48 -0
- package/esm2022/lib/validation/form-validator.mjs +2 -0
- package/esm2022/lib/validation/validation.service.mjs +134 -0
- package/esm2022/lib/yes-no/yes-no.component.mjs +44 -0
- package/esm2022/lib/yes-no-boolean/yes-no.component.mjs +44 -0
- package/esm2022/lib/yes-no-other-input/yes-no-other-input.component.mjs +41 -0
- package/esm2022/lib/zip-code/zip-code.component.mjs +42 -0
- package/esm2022/ohioepa-oepa-ui-lib.mjs +5 -0
- package/esm2022/public-api.mjs +142 -0
- package/fesm2022/ohioepa-oepa-ui-lib.mjs +10720 -0
- package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/account-search-input/account-search-input.component.d.ts +36 -0
- package/lib/account-search-modal/account-search-modal.component.d.ts +40 -0
- package/lib/action-btn/action-btn.component.d.ts +34 -0
- package/lib/action-btn/oepa-action-event.d.ts +19 -0
- package/lib/action-btn/oepa-action.d.ts +13 -0
- package/lib/action-btn-modal/action-btn-modal.component.d.ts +12 -0
- package/lib/address/address.component.d.ts +43 -0
- package/lib/address/oepa-address.service.d.ts +28 -0
- package/lib/address/oepa-form-address.d.ts +19 -0
- package/lib/blank/blank.component.d.ts +8 -0
- package/lib/checkbox/checkbox.component.d.ts +15 -0
- package/lib/checkbox-input/checkbox-input.component.d.ts +17 -0
- package/lib/comment-modal/comment-modal.component.d.ts +22 -0
- package/lib/common-forms.module.d.ts +104 -0
- package/lib/confirmation-modal/confirmation-modal.component.d.ts +49 -0
- package/lib/contact/contact.component.d.ts +33 -0
- package/lib/contact/oepa-form-contact.d.ts +58 -0
- package/lib/date-input/date-input.component.d.ts +18 -0
- package/lib/date-input-modal/date-input-modal.component.d.ts +25 -0
- package/lib/datepicker/datepicker.component.d.ts +28 -0
- package/lib/daterangepicker/daterangepicker.component.d.ts +22 -0
- package/lib/document/document-editor/document-editor.component.d.ts +34 -0
- package/lib/document/document-event-entity-type.d.ts +5 -0
- package/lib/document/document-event-type.d.ts +5 -0
- package/lib/document/document-event.d.ts +9 -0
- package/lib/document/document-group/document-group.component.d.ts +38 -0
- package/lib/document/document-part/document-part.component.d.ts +10 -0
- package/lib/document/document-part-editor/document-part-editor.component.d.ts +46 -0
- package/lib/document/document-placeholder-modal/document-placeholder-modal.component.d.ts +19 -0
- package/lib/document/document-section/document-section.component.d.ts +37 -0
- package/lib/document/document.service.d.ts +90 -0
- package/lib/document/group-modal/group-modal.component.d.ts +20 -0
- package/lib/document/part-modal/part-modal.component.d.ts +20 -0
- package/lib/document/portal-document-class.d.ts +10 -0
- package/lib/document/portal-document-group.d.ts +15 -0
- package/lib/document/portal-document-part.d.ts +22 -0
- package/lib/document/portal-document-placeholder.d.ts +12 -0
- package/lib/document/portal-document-section.d.ts +13 -0
- package/lib/document/portal-document-text.d.ts +7 -0
- package/lib/document/portal-document-type.d.ts +15 -0
- package/lib/document/portal-document.d.ts +27 -0
- package/lib/document/portal-email-attachment-type.d.ts +6 -0
- package/lib/document/portal-email-attachment.d.ts +12 -0
- package/lib/document/portal-email-filter.d.ts +12 -0
- package/lib/document/portal-email.d.ts +18 -0
- package/lib/document/section-modal/section-modal.component.d.ts +20 -0
- package/lib/dual-list-box/array.pipes.d.ts +36 -0
- package/lib/dual-list-box/dual-list-box.component.d.ts +91 -0
- package/lib/dual-list-box/items-moved-event.d.ts +11 -0
- package/lib/dual-list-box/list-box-item.d.ts +7 -0
- package/lib/ebiz-address/ebiz-address.component.d.ts +23 -0
- package/lib/edoc-attachment/edoc-attachment.component.d.ts +44 -0
- package/lib/edoc-attachment/edoc-attachment.service.d.ts +16 -0
- package/lib/edoc-attachment/edocument-attachment-metadata.d.ts +16 -0
- package/lib/edoc-attachment/edocument-attachment.d.ts +12 -0
- package/lib/edoc-attachment/edocument-reference.d.ts +5 -0
- package/lib/entity/entity.service.d.ts +31 -0
- package/lib/entity/organization-create-modal/organization-create-modal.component.d.ts +53 -0
- package/lib/entity/organization-search-input/organization-search-input.component.d.ts +34 -0
- package/lib/entity/organization-search-modal/organization-search-modal.component.d.ts +56 -0
- package/lib/entity/person-create-modal/person-create-modal.component.d.ts +53 -0
- package/lib/entity/person-search-input/person-search-input.component.d.ts +34 -0
- package/lib/entity/person-search-modal/person-search-modal.component.d.ts +56 -0
- package/lib/entity/place-create-modal/place-create-modal.component.d.ts +8 -0
- package/lib/entity/place-search-input/place-search-input.component.d.ts +34 -0
- package/lib/entity/place-search-modal/place-search-modal.component.d.ts +41 -0
- package/lib/esri-map/esri-map.component.d.ts +41 -0
- package/lib/file-upload/file-upload.component.d.ts +37 -0
- package/lib/lynx-image-upload/lynx-image-upload.component.d.ts +36 -0
- package/lib/lynx-image-upload/lynx.service.d.ts +16 -0
- package/lib/masks/oepa-create-integer-mask.d.ts +8 -0
- package/lib/masks/oepa-integer-mask-args.d.ts +5 -0
- package/lib/message/message.component.d.ts +10 -0
- package/lib/message/oepa-message-type.d.ts +5 -0
- package/lib/message/oepa-message.d.ts +7 -0
- package/lib/message-list/message-list.component.d.ts +11 -0
- package/lib/multi-file-upload/multi-file-upload.component.d.ts +36 -0
- package/lib/notes-modal/notes-modal.component.d.ts +50 -0
- package/lib/notes-modal/oepa-note-result.d.ts +10 -0
- package/lib/notes-modal/oepa-note.d.ts +13 -0
- package/lib/numeric-input/numeric-input.component.d.ts +20 -0
- package/lib/numeric-input.directive.d.ts +19 -0
- package/lib/oepa-error-message/oepa-error-message.component.d.ts +9 -0
- package/lib/oepa-forms.service.d.ts +28 -0
- package/lib/oepa-images.d.ts +53 -0
- package/lib/oepa-wait-message/oepa-wait-message.component.d.ts +9 -0
- package/lib/ohio-lat-long/ohio-lat-long.component.d.ts +63 -0
- package/lib/parameter/parameter.d.ts +7 -0
- package/lib/parameter/parameter.service.d.ts +18 -0
- package/lib/params-help-button/params-help-button.component.d.ts +15 -0
- package/lib/phone-number/phone-number.component.d.ts +19 -0
- package/lib/pin-modal/oepa-attestation.d.ts +10 -0
- package/lib/pin-modal/oepa-pin.d.ts +26 -0
- package/lib/pin-modal/oepa-pin.service.d.ts +38 -0
- package/lib/pin-modal/oepa-security-question.d.ts +8 -0
- package/lib/pin-modal/pin-modal.component.d.ts +46 -0
- package/lib/progress-indicator/progress-info.d.ts +4 -0
- package/lib/select-input/select-input.component.d.ts +27 -0
- package/lib/server-timeout-modal/server-timeout-modal.component.d.ts +23 -0
- package/lib/shopping-cart/shopping-cart-summary/shopping-cart-summary.component.d.ts +18 -0
- package/lib/shopping-cart/shopping-cart-view/shopping-cart-view-parameters.d.ts +10 -0
- package/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.d.ts +51 -0
- package/lib/shopping-cart/shopping-cart.service.d.ts +44 -0
- package/lib/start-end-timepicker/start-end-timepicker.component.d.ts +29 -0
- package/lib/table/oepa-p-column.d.ts +4 -0
- package/lib/table/oepa-table-cell-classname.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-click-event.d.ts +15 -0
- package/lib/table/oepa-table-cell-colspan.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-hidden.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-icon-classname.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-img-src.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-inner-html.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-input-component.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-not-selectable.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-value.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell.d.ts +66 -0
- package/lib/table/oepa-table-column.d.ts +71 -0
- package/lib/table/oepa-table-config.d.ts +72 -0
- package/lib/table/oepa-table-filter.d.ts +10 -0
- package/lib/table/oepa-table-filtering.directive.d.ts +17 -0
- package/lib/table/oepa-table-header.d.ts +9 -0
- package/lib/table/oepa-table-page-info.d.ts +22 -0
- package/lib/table/oepa-table-popover.d.ts +28 -0
- package/lib/table/oepa-table-row.d.ts +84 -0
- package/lib/table/oepa-table-sort-criterion.d.ts +4 -0
- package/lib/table/oepa-table-sorting.directive.d.ts +16 -0
- package/lib/table/oepa-table.d.ts +42 -0
- package/lib/table/p-table/p-table.component.d.ts +155 -0
- package/lib/table/table-data-cell/table-data-cell-click-event.d.ts +5 -0
- package/lib/table/table-data-cell/table-data-cell.component.d.ts +23 -0
- package/lib/table/table-export.service.d.ts +33 -0
- package/lib/table/table-header-cell/table-header-cell.component.d.ts +24 -0
- package/lib/table/table.component.d.ts +144 -0
- package/lib/table/table.service.d.ts +28 -0
- package/lib/template-confirmation-modal/template-confirmation-modal.component.d.ts +19 -0
- package/lib/text-area-input/text-area-input.component.d.ts +19 -0
- package/lib/text-input/text-input.component.d.ts +19 -0
- package/lib/timeout-modal/timeout-modal.component.d.ts +13 -0
- package/lib/timepicker/timepicker.component.d.ts +17 -0
- package/lib/validation/form-validator.d.ts +10 -0
- package/lib/validation/validation.service.d.ts +16 -0
- package/lib/yes-no/yes-no.component.d.ts +19 -0
- package/lib/yes-no-boolean/yes-no.component.d.ts +19 -0
- package/lib/yes-no-other-input/yes-no-other-input.component.d.ts +18 -0
- package/lib/zip-code/zip-code.component.d.ts +19 -0
- package/ohioepa-oepa-ui-lib-1.1.0.tgz +0 -0
- package/package.json +25 -0
- package/public-api.d.ts +138 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ohioepa/oepa-common-lib";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "./oepa-pin.service";
|
|
7
|
+
import * as i4 from "ngx-bootstrap/modal";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
export class PinModalComponent {
|
|
10
|
+
userAccountService;
|
|
11
|
+
fb;
|
|
12
|
+
pinService;
|
|
13
|
+
bsModalRef;
|
|
14
|
+
_attestationID = '';
|
|
15
|
+
set attestationID(id) {
|
|
16
|
+
this._attestationID = id;
|
|
17
|
+
this.retrieveAttestations(id);
|
|
18
|
+
}
|
|
19
|
+
get attestationID() {
|
|
20
|
+
return this._attestationID;
|
|
21
|
+
}
|
|
22
|
+
submitCallback;
|
|
23
|
+
submittingComponent;
|
|
24
|
+
close = new EventEmitter();
|
|
25
|
+
imageRoot = '/AngularWebApp/assets/images';
|
|
26
|
+
oepaSubmissionForm;
|
|
27
|
+
pinAttestation = {};
|
|
28
|
+
serviceAttestation = {};
|
|
29
|
+
securityQuestion = { question: '' };
|
|
30
|
+
noPin = false;
|
|
31
|
+
loadingQuestion = false;
|
|
32
|
+
submitInProgress = false;
|
|
33
|
+
submitDisabled = false;
|
|
34
|
+
errorMessage = '';
|
|
35
|
+
showValidation = false;
|
|
36
|
+
loadingAttestations = false;
|
|
37
|
+
currentUserID = '';
|
|
38
|
+
userAccount;
|
|
39
|
+
// public parentURL: string = undefined;
|
|
40
|
+
// public parentSessionID: string = undefined;
|
|
41
|
+
constructor(userAccountService, fb, pinService, bsModalRef) {
|
|
42
|
+
this.userAccountService = userAccountService;
|
|
43
|
+
this.fb = fb;
|
|
44
|
+
this.pinService = pinService;
|
|
45
|
+
this.bsModalRef = bsModalRef;
|
|
46
|
+
}
|
|
47
|
+
ngOnInit() {
|
|
48
|
+
this.retrieveNewSecurityQuestion();
|
|
49
|
+
this.createForm();
|
|
50
|
+
this.retrievePin();
|
|
51
|
+
}
|
|
52
|
+
retrievePin() {
|
|
53
|
+
this.errorMessage = '';
|
|
54
|
+
this.userAccountService.retrieveAccountForCurrentUser().subscribe(account => {
|
|
55
|
+
if (account) {
|
|
56
|
+
this.userAccount = account;
|
|
57
|
+
this.currentUserID = account.loginName;
|
|
58
|
+
this.noPin = true;
|
|
59
|
+
if (this.currentUserID) {
|
|
60
|
+
this.pinService.retrievePin(this.currentUserID).subscribe({
|
|
61
|
+
next: (result) => {
|
|
62
|
+
if (result) {
|
|
63
|
+
if (result.status == 'ACTIVE') {
|
|
64
|
+
this.noPin = false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}, error: (err) => {
|
|
68
|
+
console.error('Could not retrieve pin:' + JSON.stringify(err));
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.errorMessage = 'No current user';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
console.log('No account found');
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
submit() {
|
|
82
|
+
this.submitInProgress = true;
|
|
83
|
+
this.errorMessage = '';
|
|
84
|
+
this.showValidation = false;
|
|
85
|
+
// console.log('is form valid? ' + this.oepaSubmissionForm.valid);
|
|
86
|
+
const securityAnswer = this.oepaSubmissionForm.get('securityAnswer')?.value;
|
|
87
|
+
const securityPIN = this.oepaSubmissionForm.get('securityPIN')?.value;
|
|
88
|
+
// console.log('securityAnswer = ' + securityAnswer + ', correct answer is ' + this.securityQuestion.answer);
|
|
89
|
+
if (securityAnswer && this.securityQuestion.answer && this.securityQuestion.answer.toUpperCase() === securityAnswer.toUpperCase()) {
|
|
90
|
+
this.pinService.validate({ pin: securityPIN }).subscribe((isPINValid) => {
|
|
91
|
+
if (isPINValid) {
|
|
92
|
+
this.invokeSubmitCallback();
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.retrieveNewSecurityQuestion();
|
|
96
|
+
this.errorMessage = 'The PIN entered was incorrect. Please try again.';
|
|
97
|
+
this.submitInProgress = false;
|
|
98
|
+
}
|
|
99
|
+
}, (err) => {
|
|
100
|
+
console.error('Could not validate PIN:' + JSON.stringify(err));
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
this.errorMessage = 'The answer to the security question is incorrect. Please try again.';
|
|
105
|
+
this.submitInProgress = false;
|
|
106
|
+
this.showValidation = true;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
cancel() {
|
|
110
|
+
this.bsModalRef.hide();
|
|
111
|
+
this.close.emit();
|
|
112
|
+
}
|
|
113
|
+
createForm() {
|
|
114
|
+
this.oepaSubmissionForm = this.fb.group({
|
|
115
|
+
securityAnswer: ['', Validators.required],
|
|
116
|
+
securityPIN: ['', Validators.required],
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
invokeSubmitCallback() {
|
|
120
|
+
if (this.submittingComponent && this.submitCallback && this.submitCallback instanceof Function) {
|
|
121
|
+
this.submitCallback.call(this.submittingComponent).subscribe((result) => {
|
|
122
|
+
this.submitInProgress = false;
|
|
123
|
+
this.bsModalRef.hide();
|
|
124
|
+
}, (err) => {
|
|
125
|
+
this.submitInProgress = false;
|
|
126
|
+
console.error('Error processing submission: ' + JSON.stringify(err));
|
|
127
|
+
this.errorMessage = 'Submission failed: ' + err;
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
this.submitInProgress = false;
|
|
132
|
+
this.errorMessage = 'No submit callback defined';
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
retrieveAttestations(attestationId) {
|
|
136
|
+
// console.log('retrieveAttestations: ' + attestationId);
|
|
137
|
+
this.loadingAttestations = true;
|
|
138
|
+
if (attestationId && attestationId.length > 0) {
|
|
139
|
+
this.pinService.retrieveAttestation('PIN').subscribe((attestation) => {
|
|
140
|
+
this.pinAttestation = attestation;
|
|
141
|
+
}, (err) => {
|
|
142
|
+
console.error('Could not retrieve PIN attestation: ' + JSON.stringify(err));
|
|
143
|
+
});
|
|
144
|
+
this.pinService.retrieveAttestationByID(attestationId).subscribe((attestation) => {
|
|
145
|
+
this.serviceAttestation = attestation;
|
|
146
|
+
this.loadingAttestations = false;
|
|
147
|
+
}, (err) => {
|
|
148
|
+
console.error('Could not retrieve attestation for service: "' + attestationId + '" :' + JSON.stringify(err));
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
console.error('ERROR: Attempt to retrieve invalid attestationId: ' + attestationId);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
retrieveNewSecurityQuestion() {
|
|
156
|
+
this.loadingQuestion = true;
|
|
157
|
+
this.pinService.retrieveSecurityQuestion().subscribe((question) => {
|
|
158
|
+
this.securityQuestion = question;
|
|
159
|
+
if (this.securityQuestion === null) {
|
|
160
|
+
this.securityQuestion = { questionID: '', question: '', answer: '' };
|
|
161
|
+
}
|
|
162
|
+
this.loadingQuestion = false;
|
|
163
|
+
if (!this.securityQuestion) {
|
|
164
|
+
this.errorMessage = 'There is no PIN enabled for your account. ' +
|
|
165
|
+
'To continue, you must first request a PIN by selecting the "Request New PIN" option from the eBusiness Center "My Account" menu.';
|
|
166
|
+
}
|
|
167
|
+
}, (err) => {
|
|
168
|
+
console.error('Could not retrieve security question:' + JSON.stringify(err));
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PinModalComponent, deps: [{ token: i1.OepaUserAccountService }, { token: i2.FormBuilder }, { token: i3.OepaPinService }, { token: i4.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
172
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PinModalComponent, selector: "oepa-pin-modal", inputs: { attestationID: "attestationID", submitCallback: "submitCallback", submittingComponent: "submittingComponent" }, outputs: { close: "close" }, ngImport: i0, template: "<form [formGroup]=\"oepaSubmissionForm\">\n <div class=\"modal-body\">\n\n <div [hidden]=\"noPin\">\n <div class=\"card-header\">\n <div class=\"row\" *ngIf=\"pinAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"pinAttestation.text\"></div>\n </div>\n </div>\n </div>\n <br>\n <div class=\"card-header\" *ngIf=\"serviceAttestation\">\n <div class=\"row\" *ngIf=\"serviceAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"serviceAttestation.text\">\"</div>\n </div>\n </div>\n </div>\n </div>\n <br>\n\n <div class=\"row\" *ngIf=\"loadingAttestations\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span> Loading PIN information...\n </div>\n </div>\n </div>\n\n <div [hidden]=\"loadingAttestations || noPin\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label style=\"padding: 5px;\"><b>Security Question:</b></label>\n <label>{{securityQuestion.question}}</label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid}\"\n formControlName=\"securityAnswer\" type=\"password\" class=\"form-control\" name=\"securityAnswer\" placeholder=\"Answer\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid\">Answer to security question is required</small>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label><b>PIN: </b></label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityPIN'].valid}\"\n formControlName=\"securityPIN\" type=\"password\" class=\"form-control\" name=\"securityPIN\" placeholder=\"PIN\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityPIN'].valid\">A valid PIN is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div >\n <div class=\"row\">\n <div class=\"col-md-12\">\n <!-- toggle hasPin message -->\n <div *ngIf=\"noPin\">\n <b>Attention:</b> Before you can submit, you first must activate your PIN. Cancel this submission, save the application/report and go back to the main eBusiness Home Page. \n Select <b>MY Account- Request New PIN</b> to get started. <br>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"row\" *ngIf=\"errorMessage\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"modal-footer\">\n <span *ngIf=\"submitInProgress === true\" id=\"wait\"><span class=\"spinner-border text-primary\" role=\"status\"></span>Please wait... </span>\n <button class=\"btn btn-primary mr-1\" (click)=\"submit()\" [disabled]=\"submitInProgress || !oepaSubmissionForm.valid\">Submit</button>\n <button class=\"btn btn-primary mr-1\" (click)=\"cancel()\" [disabled]=\"submitInProgress\">Cancel</button>\n </div>\n\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
173
|
+
}
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PinModalComponent, decorators: [{
|
|
175
|
+
type: Component,
|
|
176
|
+
args: [{ selector: 'oepa-pin-modal', template: "<form [formGroup]=\"oepaSubmissionForm\">\n <div class=\"modal-body\">\n\n <div [hidden]=\"noPin\">\n <div class=\"card-header\">\n <div class=\"row\" *ngIf=\"pinAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"pinAttestation.text\"></div>\n </div>\n </div>\n </div>\n <br>\n <div class=\"card-header\" *ngIf=\"serviceAttestation\">\n <div class=\"row\" *ngIf=\"serviceAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"serviceAttestation.text\">\"</div>\n </div>\n </div>\n </div>\n </div>\n <br>\n\n <div class=\"row\" *ngIf=\"loadingAttestations\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span> Loading PIN information...\n </div>\n </div>\n </div>\n\n <div [hidden]=\"loadingAttestations || noPin\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label style=\"padding: 5px;\"><b>Security Question:</b></label>\n <label>{{securityQuestion.question}}</label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid}\"\n formControlName=\"securityAnswer\" type=\"password\" class=\"form-control\" name=\"securityAnswer\" placeholder=\"Answer\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid\">Answer to security question is required</small>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label><b>PIN: </b></label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityPIN'].valid}\"\n formControlName=\"securityPIN\" type=\"password\" class=\"form-control\" name=\"securityPIN\" placeholder=\"PIN\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityPIN'].valid\">A valid PIN is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div >\n <div class=\"row\">\n <div class=\"col-md-12\">\n <!-- toggle hasPin message -->\n <div *ngIf=\"noPin\">\n <b>Attention:</b> Before you can submit, you first must activate your PIN. Cancel this submission, save the application/report and go back to the main eBusiness Home Page. \n Select <b>MY Account- Request New PIN</b> to get started. <br>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"row\" *ngIf=\"errorMessage\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"modal-footer\">\n <span *ngIf=\"submitInProgress === true\" id=\"wait\"><span class=\"spinner-border text-primary\" role=\"status\"></span>Please wait... </span>\n <button class=\"btn btn-primary mr-1\" (click)=\"submit()\" [disabled]=\"submitInProgress || !oepaSubmissionForm.valid\">Submit</button>\n <button class=\"btn btn-primary mr-1\" (click)=\"cancel()\" [disabled]=\"submitInProgress\">Cancel</button>\n </div>\n\n</form>" }]
|
|
177
|
+
}], ctorParameters: () => [{ type: i1.OepaUserAccountService }, { type: i2.FormBuilder }, { type: i3.OepaPinService }, { type: i4.BsModalRef }], propDecorators: { attestationID: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], submitCallback: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], submittingComponent: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], close: [{
|
|
184
|
+
type: Output
|
|
185
|
+
}] } });
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL3Bpbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3Bpbi1tb2RhbC9waW4tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFvQixZQUFZLEVBQUcsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWVwRSxNQUFNLE9BQU8saUJBQWlCO0lBcUNSO0lBQW9EO0lBQXlCO0lBQW1DO0lBcEM1SCxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBRTVCLElBQ0ksYUFBYSxDQUFDLEVBQVU7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVRLGNBQWMsQ0FBeUI7SUFDdEMsbUJBQW1CLENBQU07SUFFekIsS0FBSyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBRXhELFNBQVMsR0FBRyw4QkFBOEIsQ0FBQztJQUUzQyxrQkFBa0IsQ0FBYTtJQUMvQixjQUFjLEdBQW9CLEVBQUUsQ0FBQztJQUNyQyxrQkFBa0IsR0FBb0IsRUFBRSxDQUFDO0lBQ3pDLGdCQUFnQixHQUF5QixFQUFFLFFBQVEsRUFBRyxFQUFFLEVBQUUsQ0FBQztJQUMzRCxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUN4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QyxZQUFZLEdBQUcsNENBQTRDO29CQUNoRSxrSUFBa0ksQ0FBQztZQUNySSxDQUFDO1FBQ0gsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7d0dBL0tVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDZNQ2hCOUIsNmpIQXFGTzs7NEZEckVNLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxnQkFBZ0I7MktBUXRCLGFBQWE7c0JBRGhCLEtBQUs7Z0JBU0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxtQkFBbUI7c0JBQTVCLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIE9wdGlvbmFsLCBJbmplY3QsIEV2ZW50RW1pdHRlciAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcblxuaW1wb3J0IHsgT2VwYVVzZXJBY2NvdW50U2VydmljZSwgT2VwYVVzZXJBY2NvdW50IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcbmltcG9ydCB7IE9lcGFBdHRlc3RhdGlvbiB9IGZyb20gJy4vb2VwYS1hdHRlc3RhdGlvbic7XG5pbXBvcnQgeyBPZXBhU2VjdXJpdHlRdWVzdGlvbiB9IGZyb20gJy4vb2VwYS1zZWN1cml0eS1xdWVzdGlvbic7XG5pbXBvcnQgeyBPZXBhUGluU2VydmljZSB9IGZyb20gJy4vb2VwYS1waW4uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtcGluLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bpbi1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bpbi1tb2RhbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGluTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF9hdHRlc3RhdGlvbklEID0gJyc7XG5cbiAgQElucHV0KClcbiAgc2V0IGF0dGVzdGF0aW9uSUQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuX2F0dGVzdGF0aW9uSUQgPSBpZDtcbiAgICB0aGlzLnJldHJpZXZlQXR0ZXN0YXRpb25zKGlkKTtcbiAgfVxuICBnZXQgYXR0ZXN0YXRpb25JRCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXR0ZXN0YXRpb25JRDtcbiAgfVxuXG4gIEBJbnB1dCgpIHN1Ym1pdENhbGxiYWNrITogKCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICBASW5wdXQoKSAgc3VibWl0dGluZ0NvbXBvbmVudDogYW55O1xuXG4gIEBPdXRwdXQoKSBjbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBpbWFnZVJvb3QgPSAnL0FuZ3VsYXJXZWJBcHAvYXNzZXRzL2ltYWdlcyc7XG5cbiAgcHVibGljIG9lcGFTdWJtaXNzaW9uRm9ybSE6IEZvcm1Hcm91cDtcbiAgcHVibGljIHBpbkF0dGVzdGF0aW9uOiBPZXBhQXR0ZXN0YXRpb24gPSB7fTtcbiAgcHVibGljIHNlcnZpY2VBdHRlc3RhdGlvbjogT2VwYUF0dGVzdGF0aW9uID0ge307XG4gIHB1YmxpYyBzZWN1cml0eVF1ZXN0aW9uOiBPZXBhU2VjdXJpdHlRdWVzdGlvbiA9IHsgcXVlc3Rpb246ICAnJyB9O1xuICBwdWJsaWMgbm9QaW4gPSBmYWxzZTtcbiAgcHVibGljIGxvYWRpbmdRdWVzdGlvbiA9IGZhbHNlO1xuICBwdWJsaWMgc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICBwdWJsaWMgc3VibWl0RGlzYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBzaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuICBwdWJsaWMgbG9hZGluZ0F0dGVzdGF0aW9ucyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjdXJyZW50VXNlcklEOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcbiAgcHVibGljIHVzZXJBY2NvdW50OiBPZXBhVXNlckFjY291bnQgfCB1bmRlZmluZWQ7XG4gIC8vIHB1YmxpYyBwYXJlbnRVUkw6IHN0cmluZyA9IHVuZGVmaW5lZDtcbiAgLy8gcHVibGljIHBhcmVudFNlc3Npb25JRDogc3RyaW5nID0gdW5kZWZpbmVkO1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyQWNjb3VudFNlcnZpY2U6IE9lcGFVc2VyQWNjb3VudFNlcnZpY2UsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHBpblNlcnZpY2U6IE9lcGFQaW5TZXJ2aWNlLCBwdWJsaWMgYnNNb2RhbFJlZjogQnNNb2RhbFJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXRyaWV2ZU5ld1NlY3VyaXR5UXVlc3Rpb24oKTtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICB0aGlzLnJldHJpZXZlUGluKCk7XG4gIH1cblxuICBwcml2YXRlIHJldHJpZXZlUGluKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgdGhpcy51c2VyQWNjb3VudFNlcnZpY2UucmV0cmlldmVBY2NvdW50Rm9yQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoYWNjb3VudCA9PiB7XG4gICAgICBpZiAoYWNjb3VudCkge1xuICAgICAgICB0aGlzLnVzZXJBY2NvdW50ID0gYWNjb3VudDtcbiAgICAgICAgdGhpcy5jdXJyZW50VXNlcklEID0gYWNjb3VudC5sb2dpbk5hbWU7XG4gICAgICAgIHRoaXMubm9QaW4gPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50VXNlcklEKSB7XG4gICAgICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlUGluKHRoaXMuY3VycmVudFVzZXJJRCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gJ0FDVElWRScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vUGluID0gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgfSwgZXJyb3I6IChlcnIpID0+IHsgIFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IHJldHJpZXZlIHBpbjonICsgSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgICAgICAgfX0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ05vIGN1cnJlbnQgdXNlcic7XG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coJ05vIGFjY291bnQgZm91bmQnKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpIHtcbiAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgdGhpcy5zaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuXG4gICAgLy8gY29uc29sZS5sb2coJ2lzIGZvcm0gdmFsaWQ/ICcgKyB0aGlzLm9lcGFTdWJtaXNzaW9uRm9ybS52YWxpZCk7XG4gICAgY29uc3Qgc2VjdXJpdHlBbnN3ZXIgPSB0aGlzLm9lcGFTdWJtaXNzaW9uRm9ybS5nZXQoJ3NlY3VyaXR5QW5zd2VyJyk/LnZhbHVlO1xuICAgIGNvbnN0IHNlY3VyaXR5UElOID0gdGhpcy5vZXBhU3VibWlzc2lvbkZvcm0uZ2V0KCdzZWN1cml0eVBJTicpPy52YWx1ZTtcblxuICAgIC8vIGNvbnNvbGUubG9nKCdzZWN1cml0eUFuc3dlciA9ICcgKyBzZWN1cml0eUFuc3dlciArICcsIGNvcnJlY3QgYW5zd2VyIGlzICcgKyB0aGlzLnNlY3VyaXR5UXVlc3Rpb24uYW5zd2VyKTtcbiAgICBpZiAoc2VjdXJpdHlBbnN3ZXIgJiYgdGhpcy5zZWN1cml0eVF1ZXN0aW9uLmFuc3dlciAmJiB0aGlzLnNlY3VyaXR5UXVlc3Rpb24uYW5zd2VyLnRvVXBwZXJDYXNlKCkgPT09IHNlY3VyaXR5QW5zd2VyLnRvVXBwZXJDYXNlKCkpIHtcbiAgICAgIHRoaXMucGluU2VydmljZS52YWxpZGF0ZSh7IHBpbjogc2VjdXJpdHlQSU4gfSkuc3Vic2NyaWJlKChpc1BJTlZhbGlkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIGlmIChpc1BJTlZhbGlkKSB7XG4gICAgICAgICAgdGhpcy5pbnZva2VTdWJtaXRDYWxsYmFjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCk7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnVGhlIFBJTiBlbnRlcmVkIHdhcyBpbmNvcnJlY3QuIFBsZWFzZSB0cnkgYWdhaW4uJztcbiAgICAgICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgdmFsaWRhdGUgUElOOicgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdUaGUgYW5zd2VyIHRvIHRoZSBzZWN1cml0eSBxdWVzdGlvbiBpcyBpbmNvcnJlY3QuIFBsZWFzZSB0cnkgYWdhaW4uJztcbiAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93VmFsaWRhdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMub2VwYVN1Ym1pc3Npb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWN1cml0eUFuc3dlcjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkIF0sXG4gICAgICBzZWN1cml0eVBJTjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGludm9rZVN1Ym1pdENhbGxiYWNrKCkge1xuICAgIGlmICh0aGlzLnN1Ym1pdHRpbmdDb21wb25lbnQgJiYgdGhpcy5zdWJtaXRDYWxsYmFjayAmJiB0aGlzLnN1Ym1pdENhbGxiYWNrIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIHRoaXMuc3VibWl0Q2FsbGJhY2suY2FsbCh0aGlzLnN1Ym1pdHRpbmdDb21wb25lbnQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJvY2Vzc2luZyBzdWJtaXNzaW9uOiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1N1Ym1pc3Npb24gZmFpbGVkOiAnICsgZXJyOyBcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ05vIHN1Ym1pdCBjYWxsYmFjayBkZWZpbmVkJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJldHJpZXZlQXR0ZXN0YXRpb25zKGF0dGVzdGF0aW9uSWQ6IHN0cmluZykge1xuICAgIC8vIGNvbnNvbGUubG9nKCdyZXRyaWV2ZUF0dGVzdGF0aW9uczogJyArIGF0dGVzdGF0aW9uSWQpO1xuXG4gICAgdGhpcy5sb2FkaW5nQXR0ZXN0YXRpb25zID0gdHJ1ZTtcblxuICAgIGlmIChhdHRlc3RhdGlvbklkICYmIGF0dGVzdGF0aW9uSWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlQXR0ZXN0YXRpb24oJ1BJTicpLnN1YnNjcmliZSgoYXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbikgPT4ge1xuICAgICAgICB0aGlzLnBpbkF0dGVzdGF0aW9uID0gYXR0ZXN0YXRpb247XG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCByZXRyaWV2ZSBQSU4gYXR0ZXN0YXRpb246ICcgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlQXR0ZXN0YXRpb25CeUlEKGF0dGVzdGF0aW9uSWQpLnN1YnNjcmliZSgoYXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbikgPT4ge1xuICAgICAgICB0aGlzLnNlcnZpY2VBdHRlc3RhdGlvbiA9IGF0dGVzdGF0aW9uO1xuXG4gICAgICAgIHRoaXMubG9hZGluZ0F0dGVzdGF0aW9ucyA9IGZhbHNlO1xuXG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCByZXRyaWV2ZSBhdHRlc3RhdGlvbiBmb3Igc2VydmljZTogXCInICsgYXR0ZXN0YXRpb25JZCArICdcIiA6JyArIEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0VSUk9SOiBBdHRlbXB0IHRvIHJldHJpZXZlIGludmFsaWQgYXR0ZXN0YXRpb25JZDogJyArIGF0dGVzdGF0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCkge1xuXG4gICAgdGhpcy5sb2FkaW5nUXVlc3Rpb24gPSB0cnVlO1xuXG4gICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlU2VjdXJpdHlRdWVzdGlvbigpLnN1YnNjcmliZSgocXVlc3Rpb246IE9lcGFTZWN1cml0eVF1ZXN0aW9uKSA9PiB7XG4gICAgICB0aGlzLnNlY3VyaXR5UXVlc3Rpb24gPSBxdWVzdGlvbjtcbiAgICAgIGlmICh0aGlzLnNlY3VyaXR5UXVlc3Rpb24gPT09IG51bGwpIHtcbiAgICAgICAgIHRoaXMuc2VjdXJpdHlRdWVzdGlvbiA9IHsgcXVlc3Rpb25JRDonJywgcXVlc3Rpb246JycsIGFuc3dlcjonJyAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZGluZ1F1ZXN0aW9uID0gZmFsc2U7XG5cbiAgICAgIGlmICghdGhpcy5zZWN1cml0eVF1ZXN0aW9uKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZXJlIGlzIG5vIFBJTiBlbmFibGVkIGZvciB5b3VyIGFjY291bnQuICcgKyBcbiAgICAgICAgJ1RvIGNvbnRpbnVlLCB5b3UgbXVzdCBmaXJzdCByZXF1ZXN0IGEgUElOIGJ5IHNlbGVjdGluZyB0aGUgXCJSZXF1ZXN0IE5ldyBQSU5cIiBvcHRpb24gZnJvbSB0aGUgZUJ1c2luZXNzIENlbnRlciBcIk15IEFjY291bnRcIiBtZW51Lic7XG4gICAgICB9XG4gICAgfSwgKGVycikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IHJldHJpZXZlIHNlY3VyaXR5IHF1ZXN0aW9uOicgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICB9KTtcblxuICB9XG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwib2VwYVN1Ym1pc3Npb25Gb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG5cbiAgICA8ZGl2IFtoaWRkZW5dPVwibm9QaW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInBpbkF0dGVzdGF0aW9uLnRleHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWxsXCIgW2lubmVySFRNTF09XCJwaW5BdHRlc3RhdGlvbi50ZXh0XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxicj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiICpuZ0lmPVwic2VydmljZUF0dGVzdGF0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwic2VydmljZUF0dGVzdGF0aW9uLnRleHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWxsXCIgW2lubmVySFRNTF09XCJzZXJ2aWNlQXR0ZXN0YXRpb24udGV4dFwiPlwiPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJsb2FkaW5nQXR0ZXN0YXRpb25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnlcIiByb2xlPVwic3RhdHVzXCI+PC9zcGFuPiBMb2FkaW5nIFBJTiBpbmZvcm1hdGlvbi4uLlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBbaGlkZGVuXT1cImxvYWRpbmdBdHRlc3RhdGlvbnMgfHwgbm9QaW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJwYWRkaW5nOiA1cHg7XCI+PGI+U2VjdXJpdHkgUXVlc3Rpb246PC9iPjwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWw+e3tzZWN1cml0eVF1ZXN0aW9uLnF1ZXN0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGlucHV0ICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmICFvZXBhU3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ3NlY3VyaXR5QW5zd2VyJ10udmFsaWR9XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWN1cml0eUFuc3dlclwiIHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbmFtZT1cInNlY3VyaXR5QW5zd2VyXCIgcGxhY2Vob2xkZXI9XCJBbnN3ZXJcIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwic2hvd1ZhbGlkYXRpb24gJiYgIW9lcGFTdWJtaXNzaW9uRm9ybS5jb250cm9sc1snc2VjdXJpdHlBbnN3ZXInXS52YWxpZFwiPkFuc3dlciB0byBzZWN1cml0eSBxdWVzdGlvbiBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+PGI+UElOOiA8L2I+PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxpbnB1dCBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmICFvZXBhU3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ3NlY3VyaXR5UElOJ10udmFsaWR9XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWN1cml0eVBJTlwiIHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbmFtZT1cInNlY3VyaXR5UElOXCIgcGxhY2Vob2xkZXI9XCJQSU5cIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwic2hvd1ZhbGlkYXRpb24gJiYgIW9lcGFTdWJtaXNzaW9uRm9ybS5jb250cm9sc1snc2VjdXJpdHlQSU4nXS52YWxpZFwiPkEgdmFsaWQgUElOIGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPCEtLSB0b2dnbGUgaGFzUGluIG1lc3NhZ2UgLS0+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm5vUGluXCI+XG4gICAgICAgICAgICA8Yj5BdHRlbnRpb246PC9iPiBCZWZvcmUgeW91IGNhbiBzdWJtaXQsIHlvdSBmaXJzdCBtdXN0IGFjdGl2YXRlIHlvdXIgUElOLiBDYW5jZWwgdGhpcyBzdWJtaXNzaW9uLCBzYXZlIHRoZSBhcHBsaWNhdGlvbi9yZXBvcnQgYW5kIGdvIGJhY2sgdG8gdGhlIG1haW4gZUJ1c2luZXNzIEhvbWUgUGFnZS4gXG4gICAgICAgICAgICBTZWxlY3QgPGI+TVkgQWNjb3VudC0gUmVxdWVzdCBOZXcgUElOPC9iPiB0byBnZXQgc3RhcnRlZC4gPGJyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiByb2xlPVwiYWxlcnRcIj57eyBlcnJvck1lc3NhZ2UgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxzcGFuICpuZ0lmPVwic3VibWl0SW5Qcm9ncmVzcyA9PT0gdHJ1ZVwiIGlkPVwid2FpdFwiPjxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj5QbGVhc2Ugd2FpdC4uLiZuYnNwOyZuYnNwOzwvc3Bhbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTFcIiAoY2xpY2spPVwic3VibWl0KClcIiBbZGlzYWJsZWRdPVwic3VibWl0SW5Qcm9ncmVzcyB8fCAhb2VwYVN1Ym1pc3Npb25Gb3JtLnZhbGlkXCI+U3VibWl0PC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtci0xXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgW2Rpc2FibGVkXT1cInN1Ym1pdEluUHJvZ3Jlc3NcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbjwvZm9ybT4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcHJvZ3Jlc3MtaW5kaWNhdG9yL3Byb2dyZXNzLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUHJvZ3Jlc3NJbmZvIHtcbiAgICB0b3RhbD86IG51bWJlcjtcbiAgICBjb21wbGV0ZWQ/OiBudW1iZXI7XG59Il19
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ohioepa/oepa-common-lib";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/forms";
|
|
6
|
+
export class SelectInputComponent {
|
|
7
|
+
idService;
|
|
8
|
+
smallService;
|
|
9
|
+
elRef;
|
|
10
|
+
componentId = 'SelectInputComponent';
|
|
11
|
+
group;
|
|
12
|
+
field = '';
|
|
13
|
+
tableIdx;
|
|
14
|
+
title = 'Select';
|
|
15
|
+
pickList = [];
|
|
16
|
+
fullList = [];
|
|
17
|
+
valueField = '';
|
|
18
|
+
displayField = '';
|
|
19
|
+
small = false;
|
|
20
|
+
onValueSelected = new EventEmitter();
|
|
21
|
+
internalPickList;
|
|
22
|
+
constructor(idService, smallService, elRef) {
|
|
23
|
+
this.idService = idService;
|
|
24
|
+
this.smallService = smallService;
|
|
25
|
+
this.elRef = elRef;
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
this.small = this.smallService.isSmall(this.elRef.nativeElement);
|
|
29
|
+
if (this.group) {
|
|
30
|
+
this.componentId = (this.field || 'selectInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
|
|
31
|
+
this.group.get(this.field)?.valueChanges.subscribe(value => {
|
|
32
|
+
this.onValueSelected.emit(value);
|
|
33
|
+
});
|
|
34
|
+
this.addCurrentValueToListIfMissing();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
ngOnChanges(changes) {
|
|
38
|
+
for (const propName in changes) {
|
|
39
|
+
if (changes.hasOwnProperty(propName)) {
|
|
40
|
+
switch (propName) {
|
|
41
|
+
case 'pickList':
|
|
42
|
+
case 'fullList':
|
|
43
|
+
this.addCurrentValueToListIfMissing();
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
addCurrentValueToListIfMissing() {
|
|
50
|
+
let currValue = this.group.get(this.field)?.value;
|
|
51
|
+
if (!this.internalPickList && this.pickList && this.pickList.length > 0) {
|
|
52
|
+
this.internalPickList = Object.assign([], this.pickList);
|
|
53
|
+
}
|
|
54
|
+
if (currValue && this.pickList && this.pickList.length > 0 && this.fullList && this.fullList.length > 0) {
|
|
55
|
+
this.internalPickList = Object.assign([], this.pickList);
|
|
56
|
+
let matches = this.pickList.filter(item => {
|
|
57
|
+
return (item[this.valueField] === currValue);
|
|
58
|
+
});
|
|
59
|
+
if (!matches || matches.length === 0 && this.fullList) {
|
|
60
|
+
let inactiveItems = this.fullList.filter(item => {
|
|
61
|
+
return (item[this.valueField] === currValue);
|
|
62
|
+
});
|
|
63
|
+
if (inactiveItems && inactiveItems.length > 0) {
|
|
64
|
+
this.internalPickList.push(inactiveItems[0]);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectInputComponent, deps: [{ token: i1.OepaComponentIdService }, { token: i1.OepaSmallService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
70
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SelectInputComponent, selector: "oepa-select-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", title: "title", pickList: "pickList", fullList: "fullList", valueField: "valueField", displayField: "displayField", small: "small" }, outputs: { onValueSelected: "onValueSelected" }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"group\">\n<select class=\"form-select\" [formControlName]=\"field\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" \n [id]=\"componentId\">\n<option *ngFor=\"let item of internalPickList\" [ngValue]=\"item[valueField]\">{{item[displayField]}}</option>\n</select>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
71
|
+
}
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectInputComponent, decorators: [{
|
|
73
|
+
type: Component,
|
|
74
|
+
args: [{ selector: 'oepa-select-input', template: "<div [formGroup]=\"group\">\n<select class=\"form-select\" [formControlName]=\"field\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" \n [id]=\"componentId\">\n<option *ngFor=\"let item of internalPickList\" [ngValue]=\"item[valueField]\">{{item[displayField]}}</option>\n</select>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>\n" }]
|
|
75
|
+
}], ctorParameters: () => [{ type: i1.OepaComponentIdService }, { type: i1.OepaSmallService }, { type: i0.ElementRef }], propDecorators: { group: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], field: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], tableIdx: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], title: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], pickList: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], fullList: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], valueField: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], displayField: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], small: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], onValueSelected: [{
|
|
94
|
+
type: Output
|
|
95
|
+
}] } });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBd0MsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3JILE1BQU0sT0FBTyxvQkFBb0I7SUFnQlg7SUFDVjtJQUNBO0lBakJILFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztJQUNuQyxLQUFLLENBQWE7SUFDbEIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixRQUFRLENBQXFCO0lBQzdCLEtBQUssR0FBRyxRQUFRLENBQUM7SUFDakIsUUFBUSxHQUFVLEVBQUUsQ0FBQztJQUNyQixRQUFRLEdBQVUsRUFBRSxDQUFDO0lBQ3JCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUMxQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWIsZUFBZSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXRFLGdCQUFnQixDQUFvQjtJQUUzQyxZQUFvQixTQUFpQyxFQUMzQyxZQUE4QixFQUM5QixLQUFpQjtRQUZQLGNBQVMsR0FBVCxTQUFTLENBQXdCO1FBQzNDLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMvRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxLQUFLLE1BQU0sUUFBUSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQy9CLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxRQUFRLFFBQVEsRUFBRSxDQUFDO29CQUNqQixLQUFLLFVBQVUsQ0FBQztvQkFDaEIsS0FBSyxVQUFVO3dCQUNiLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO3dCQUN0QyxNQUFNO2dCQUNWLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyw4QkFBOEI7UUFDcEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4RyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0RCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDOUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7Z0JBQy9DLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7d0dBaEVVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLHFVQ1RqQyxvYkFPQTs7NEZERWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLG1CQUFtQjttSkFNcEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlLCBPZXBhU21hbGxTZXJ2aWNlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1zZWxlY3QtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWlucHV0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHVibGljIGNvbXBvbmVudElkID0gJ1NlbGVjdElucHV0Q29tcG9uZW50JztcbiAgQElucHV0KCkgZ3JvdXAhOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGZpZWxkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdGFibGVJZHg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgdGl0bGUgPSAnU2VsZWN0JztcbiAgQElucHV0KCkgcGlja0xpc3Q6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGZ1bGxMaXN0OiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSB2YWx1ZUZpZWxkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGlzcGxheUZpZWxkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc21hbGwgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgb25WYWx1ZVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBpbnRlcm5hbFBpY2tMaXN0OiBhbnlbXSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlkU2VydmljZTogT2VwYUNvbXBvbmVudElkU2VydmljZSwgXG4gICAgcHJpdmF0ZSBzbWFsbFNlcnZpY2U6IE9lcGFTbWFsbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZikgeyBcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc21hbGwgPSB0aGlzLnNtYWxsU2VydmljZS5pc1NtYWxsKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgaWYgKHRoaXMuZ3JvdXApIHtcbiAgICAgIHRoaXMuY29tcG9uZW50SWQgPSAodGhpcy5maWVsZCB8fCAnc2VsZWN0SW5wdXQnKSArICh0aGlzLnRhYmxlSWR4IHx8IHRoaXMudGFibGVJZHggPT09IDAgPyB0aGlzLnRhYmxlSWR4IDogJycpO1xuICAgICAgdGhpcy5ncm91cC5nZXQodGhpcy5maWVsZCk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLm9uVmFsdWVTZWxlY3RlZC5lbWl0KHZhbHVlKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRDdXJyZW50VmFsdWVUb0xpc3RJZk1pc3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGFuZ2VzKSB7XG4gICAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgc3dpdGNoIChwcm9wTmFtZSkge1xuICAgICAgICAgIGNhc2UgJ3BpY2tMaXN0JzpcbiAgICAgICAgICBjYXNlICdmdWxsTGlzdCc6XG4gICAgICAgICAgICB0aGlzLmFkZEN1cnJlbnRWYWx1ZVRvTGlzdElmTWlzc2luZygpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gXG5cbiAgcHJpdmF0ZSBhZGRDdXJyZW50VmFsdWVUb0xpc3RJZk1pc3NpbmcoKSB7XG4gICAgbGV0IGN1cnJWYWx1ZSA9IHRoaXMuZ3JvdXAuZ2V0KHRoaXMuZmllbGQpPy52YWx1ZTtcbiAgICBpZiAoIXRoaXMuaW50ZXJuYWxQaWNrTGlzdCAmJiB0aGlzLnBpY2tMaXN0ICYmIHRoaXMucGlja0xpc3QubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pbnRlcm5hbFBpY2tMaXN0ID0gT2JqZWN0LmFzc2lnbihbXSwgdGhpcy5waWNrTGlzdCk7XG4gICAgfVxuICAgIGlmIChjdXJyVmFsdWUgJiYgdGhpcy5waWNrTGlzdCAmJiB0aGlzLnBpY2tMaXN0Lmxlbmd0aCA+IDAgJiYgdGhpcy5mdWxsTGlzdCAmJiB0aGlzLmZ1bGxMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxQaWNrTGlzdCA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMucGlja0xpc3QpO1xuICAgICAgbGV0IG1hdGNoZXMgPSB0aGlzLnBpY2tMaXN0LmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgcmV0dXJuIChpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT09IGN1cnJWYWx1ZSk7XG4gICAgICB9KTtcbiAgICAgIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmZ1bGxMaXN0KSB7XG4gICAgICAgIGxldCBpbmFjdGl2ZUl0ZW1zID0gdGhpcy5mdWxsTGlzdC5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT09IGN1cnJWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaW5hY3RpdmVJdGVtcyAmJiBpbmFjdGl2ZUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmludGVybmFsUGlja0xpc3QucHVzaChpbmFjdGl2ZUl0ZW1zWzBdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbjxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGRcIiBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOmdyb3VwLmNvbnRyb2xzW2ZpZWxkXS5pbnZhbGlkLCAnZm9ybS1jb250cm9sLXNtJzogc21hbGx9XCIgXG4gW2lkXT1cImNvbXBvbmVudElkXCI+XG48b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGludGVybmFsUGlja0xpc3RcIiBbbmdWYWx1ZV09XCJpdGVtW3ZhbHVlRmllbGRdXCI+e3tpdGVtW2Rpc3BsYXlGaWVsZF19fTwvb3B0aW9uPlxuPC9zZWxlY3Q+XG48c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1tmaWVsZF0uaW52YWxpZFwiPnt7dGl0bGV9fSBpcyByZXF1aXJlZDwvc21hbGw+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Component, Output, EventEmitter, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ohioepa/oepa-common-lib";
|
|
4
|
+
import * as i2 from "ngx-bootstrap/modal";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
export class ServerTimeoutModalComponent {
|
|
7
|
+
userAccountService;
|
|
8
|
+
bsModalRef;
|
|
9
|
+
mm = '01';
|
|
10
|
+
ss = '00';
|
|
11
|
+
errorMessage = '';
|
|
12
|
+
connectionLost = false;
|
|
13
|
+
timeoutID;
|
|
14
|
+
countdownSeconds = 60;
|
|
15
|
+
onKeepAlive = new EventEmitter();
|
|
16
|
+
constructor(userAccountService, bsModalRef) {
|
|
17
|
+
this.userAccountService = userAccountService;
|
|
18
|
+
this.bsModalRef = bsModalRef;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.setMMSS();
|
|
22
|
+
this.tick();
|
|
23
|
+
}
|
|
24
|
+
setMMSS() {
|
|
25
|
+
let minutes = Math.floor(this.countdownSeconds / 60);
|
|
26
|
+
let seconds = this.countdownSeconds % 60;
|
|
27
|
+
this.mm = (minutes < 10) ? ('0' + minutes) : ('' + minutes);
|
|
28
|
+
this.ss = (seconds < 10) ? ('0' + seconds) : ('' + seconds);
|
|
29
|
+
}
|
|
30
|
+
tick() {
|
|
31
|
+
let me = this;
|
|
32
|
+
this.timeoutID = setTimeout(() => {
|
|
33
|
+
me.countdownSeconds--;
|
|
34
|
+
me.setMMSS();
|
|
35
|
+
if (this.countdownSeconds > 0) {
|
|
36
|
+
me.tick();
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
me.connectionLost = true;
|
|
40
|
+
me.userAccountService.redirectToLogout();
|
|
41
|
+
}
|
|
42
|
+
}, 1000);
|
|
43
|
+
}
|
|
44
|
+
keepAlive() {
|
|
45
|
+
clearTimeout(this.timeoutID);
|
|
46
|
+
this.onKeepAlive.emit(true);
|
|
47
|
+
this.bsModalRef.hide();
|
|
48
|
+
}
|
|
49
|
+
close() {
|
|
50
|
+
this.bsModalRef.hide();
|
|
51
|
+
}
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ServerTimeoutModalComponent, deps: [{ token: i1.OepaUserAccountService }, { token: i2.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ServerTimeoutModalComponent, selector: "oepa-server-timeout-modal", inputs: { countdownSeconds: "countdownSeconds" }, outputs: { onKeepAlive: "onKeepAlive" }, ngImport: i0, template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">\n <span>Connection Timeout</span>\n <span *ngIf=\"!connectionLost\"> Pending</span>\n </h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div *ngIf=\"!connectionLost\">\n Your connection is about to time out: {{mm}}:{{ss}}\n <!-- : <countdown [config]=\"config\" (event)=\"handleEvent($event)\"></countdown> -->\n <br/>\n Click the button below to keep from being logged out.\n </div>\n <div *ngIf=\"connectionLost\">\n Connection timeout.\n </div>\n </div>\n <div class=\"modal-footer\">\n <div class=\"row\">\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">\n {{errorMessage}}\n </div>\n </div>\n </div>\n <div class=\"col-sm-12 text-right\">\n <button *ngIf=\"!connectionLost\" type=\"button\" class=\"btn btn-primary mr-2\" (click)=\"keepAlive()\">Stay Logged In</button>\n <button *ngIf=\"connectionLost\" type=\"button\" class=\"btn btn-primary mr-2\" (click)=\"close()\">Close</button>\n </div>\n </div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ServerTimeoutModalComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{ selector: 'oepa-server-timeout-modal', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">\n <span>Connection Timeout</span>\n <span *ngIf=\"!connectionLost\"> Pending</span>\n </h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div *ngIf=\"!connectionLost\">\n Your connection is about to time out: {{mm}}:{{ss}}\n <!-- : <countdown [config]=\"config\" (event)=\"handleEvent($event)\"></countdown> -->\n <br/>\n Click the button below to keep from being logged out.\n </div>\n <div *ngIf=\"connectionLost\">\n Connection timeout.\n </div>\n </div>\n <div class=\"modal-footer\">\n <div class=\"row\">\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">\n {{errorMessage}}\n </div>\n </div>\n </div>\n <div class=\"col-sm-12 text-right\">\n <button *ngIf=\"!connectionLost\" type=\"button\" class=\"btn btn-primary mr-2\" (click)=\"keepAlive()\">Stay Logged In</button>\n <button *ngIf=\"connectionLost\" type=\"button\" class=\"btn btn-primary mr-2\" (click)=\"close()\">Close</button>\n </div>\n </div>\n" }]
|
|
58
|
+
}], ctorParameters: () => [{ type: i1.OepaUserAccountService }, { type: i2.BsModalRef }], propDecorators: { countdownSeconds: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], onKeepAlive: [{
|
|
61
|
+
type: Output
|
|
62
|
+
}] } });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLXRpbWVvdXQtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9zZXJ2ZXItdGltZW91dC1tb2RhbC9zZXJ2ZXItdGltZW91dC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3NlcnZlci10aW1lb3V0LW1vZGFsL3NlcnZlci10aW1lb3V0LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUy9FLE1BQU0sT0FBTywyQkFBMkI7SUFXbEI7SUFDWDtJQVhGLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDVixFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ1YsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNsQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLFNBQVMsQ0FBTTtJQUVkLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUVyQixXQUFXLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7SUFFM0UsWUFBb0Isa0JBQTBDLEVBQ3JELFVBQXNCO1FBRFgsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF3QjtRQUNyRCxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUksQ0FBQztJQUVwQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLElBQUk7UUFDVixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLENBQUM7aUJBQU0sQ0FBQztnQkFDTixFQUFFLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDekIsRUFBRSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxTQUFTO1FBQ2QsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQWhEVSwyQkFBMkI7NEZBQTNCLDJCQUEyQiw0SkNUeEMseXpDQWlDQTs7NEZEeEJhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwyQkFBMkI7b0hBVzVCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2VwYVVzZXJBY2NvdW50U2VydmljZSB9IGZyb20gJ0BvaGlvZXBhL29lcGEtY29tbW9uLWxpYic7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtc2VydmVyLXRpbWVvdXQtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VydmVyLXRpbWVvdXQtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXJ2ZXItdGltZW91dC1tb2RhbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VydmVyVGltZW91dE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIG1tID0gJzAxJztcbiAgcHVibGljIHNzID0gJzAwJztcbiAgcHVibGljIGVycm9yTWVzc2FnZSA9ICcnO1xuICBwdWJsaWMgY29ubmVjdGlvbkxvc3QgPSBmYWxzZTtcbiAgcHJpdmF0ZSB0aW1lb3V0SUQ6IGFueTtcbiAgXG4gIEBJbnB1dCgpIGNvdW50ZG93blNlY29uZHMgPSA2MDtcblxuICBAT3V0cHV0KCkgb25LZWVwQWxpdmU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXJBY2NvdW50U2VydmljZTogT2VwYVVzZXJBY2NvdW50U2VydmljZSxcbiAgICBwdWJsaWMgYnNNb2RhbFJlZjogQnNNb2RhbFJlZikgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRNTVNTKCk7XG4gICAgdGhpcy50aWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHNldE1NU1MoKSB7XG4gICAgbGV0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKHRoaXMuY291bnRkb3duU2Vjb25kcy82MCk7XG4gICAgbGV0IHNlY29uZHMgPSB0aGlzLmNvdW50ZG93blNlY29uZHMgJSA2MDtcbiAgICB0aGlzLm1tID0gKG1pbnV0ZXMgPCAxMCkgPyAoJzAnK21pbnV0ZXMpIDogKCcnK21pbnV0ZXMpO1xuICAgIHRoaXMuc3MgPSAoc2Vjb25kcyA8IDEwKSA/ICgnMCcrc2Vjb25kcykgOiAoJycrc2Vjb25kcyk7XG4gIH1cblxuICBwcml2YXRlIHRpY2soKSB7XG4gICAgbGV0IG1lID0gdGhpcztcbiAgICB0aGlzLnRpbWVvdXRJRCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbWUuY291bnRkb3duU2Vjb25kcy0tO1xuICAgICAgbWUuc2V0TU1TUygpO1xuICAgICAgaWYgKHRoaXMuY291bnRkb3duU2Vjb25kcyA+IDApIHtcbiAgICAgICAgbWUudGljaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWUuY29ubmVjdGlvbkxvc3QgPSB0cnVlO1xuICAgICAgICBtZS51c2VyQWNjb3VudFNlcnZpY2UucmVkaXJlY3RUb0xvZ291dCgpO1xuICAgICAgfVxuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgcHVibGljIGtlZXBBbGl2ZSgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SUQpO1xuICAgIHRoaXMub25LZWVwQWxpdmUuZW1pdCh0cnVlKTtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCkge1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlIHB1bGwtbGVmdFwiPlxuICAgICAgICA8c3Bhbj5Db25uZWN0aW9uIFRpbWVvdXQ8L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWNvbm5lY3Rpb25Mb3N0XCI+Jm5ic3A7UGVuZGluZzwvc3Bhbj5cbiAgICA8L2g0PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2UgcHVsbC1yaWdodFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGRpdiAqbmdJZj1cIiFjb25uZWN0aW9uTG9zdFwiPlxuICAgICAgICBZb3VyIGNvbm5lY3Rpb24gaXMgYWJvdXQgdG8gdGltZSBvdXQ6IHt7bW19fTp7e3NzfX1cbiAgICAgICAgPCEtLSA6IDxjb3VudGRvd24gW2NvbmZpZ109XCJjb25maWdcIiAoZXZlbnQpPVwiaGFuZGxlRXZlbnQoJGV2ZW50KVwiPjwvY291bnRkb3duPiAtLT5cbiAgICAgICAgPGJyLz5cbiAgICAgICAgQ2xpY2sgdGhlIGJ1dHRvbiBiZWxvdyB0byBrZWVwIGZyb20gYmVpbmcgbG9nZ2VkIG91dC5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29ubmVjdGlvbkxvc3RcIj5cbiAgICAgICAgQ29ubmVjdGlvbiB0aW1lb3V0LlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZVwiIGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPlxuICAgICAgICAgICAgICAgIHt7ZXJyb3JNZXNzYWdlfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFjb25uZWN0aW9uTG9zdFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtci0yXCIgKGNsaWNrKT1cImtlZXBBbGl2ZSgpXCI+U3RheSBMb2dnZWQgSW48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbm5lY3Rpb25Mb3N0XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTJcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkNsb3NlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuIl19
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../shopping-cart.service";
|
|
4
|
+
import * as i2 from "ngx-toastr";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
export class ShoppingCartSummaryComponent {
|
|
7
|
+
shoppingCartService;
|
|
8
|
+
toastr;
|
|
9
|
+
serviceName = '';
|
|
10
|
+
cartChange = new EventEmitter();
|
|
11
|
+
itemsText = '';
|
|
12
|
+
totalCost = 0;
|
|
13
|
+
constructor(shoppingCartService, toastr) {
|
|
14
|
+
this.shoppingCartService = shoppingCartService;
|
|
15
|
+
this.toastr = toastr;
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.loadCart();
|
|
19
|
+
}
|
|
20
|
+
loadCart() {
|
|
21
|
+
this.itemsText = 'Loading...';
|
|
22
|
+
this.totalCost = 0;
|
|
23
|
+
this.shoppingCartService.retrieveShoppingCart(this.serviceName).subscribe({
|
|
24
|
+
next: shoppingCart => {
|
|
25
|
+
if (shoppingCart && shoppingCart.cartItems) {
|
|
26
|
+
if (shoppingCart.cartItems.length === 1) {
|
|
27
|
+
this.itemsText = 'One item';
|
|
28
|
+
}
|
|
29
|
+
else if (shoppingCart.cartItems.length > 1) {
|
|
30
|
+
this.itemsText = shoppingCart.cartItems.length + ' items';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.itemsText = 'No items';
|
|
35
|
+
}
|
|
36
|
+
this.cartChange.emit(shoppingCart);
|
|
37
|
+
this.totalCost = shoppingCart.totalAmount?.amount;
|
|
38
|
+
}, error: err => {
|
|
39
|
+
this.toastr.error('Failed retrieving shopping cart: ' + err);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShoppingCartSummaryComponent, deps: [{ token: i1.ShoppingCartService }, { token: i2.ToastrService }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ShoppingCartSummaryComponent, selector: "oepa-shopping-cart-summary", inputs: { serviceName: "serviceName" }, outputs: { cartChange: "cartChange" }, ngImport: i0, template: "<div class=\"cart-summary\">\n <div class=\"cart-summary-icon\">\n <svg version=\"1.1\" class=\"summary-icon\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\">\n <path stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" fill=\"none\" stroke-linejoin=\"round\"\n d=\"M2,4 L6,4 L10,20 L21,20 L25,10 L8,10 M13,10 L13,20 M18,20 L18,10 M10,15 L23,15\"/>\n <circle fill=\"currentColor\" cx=\"11\" cy=\"24\" r=\"2\"/>\n <circle fill=\"currentColor\" cx=\"21\" cy=\"24\" r=\"2\"/>\n </svg>\n </div>\n <div class=\"cart-summary-contents\">\n <div class=\"cart-summary-items\">\n {{itemsText}}\n </div>\n <div class=\"cart-summary-cost\">\n {{totalCost | currency}}\n </div>\n </div>\n </div>\n", styles: [".cart-summary{display:inline-block}.cart-summary-icon{float:left;width:32px;height:32px}img.summary-icon{width:100%;height:100%;object-fit:cover}.cart-summary-contents{padding-left:5px;float:left;font-size:.75}\n"], dependencies: [{ kind: "pipe", type: i3.CurrencyPipe, name: "currency" }] });
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShoppingCartSummaryComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ selector: 'oepa-shopping-cart-summary', template: "<div class=\"cart-summary\">\n <div class=\"cart-summary-icon\">\n <svg version=\"1.1\" class=\"summary-icon\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\">\n <path stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" fill=\"none\" stroke-linejoin=\"round\"\n d=\"M2,4 L6,4 L10,20 L21,20 L25,10 L8,10 M13,10 L13,20 M18,20 L18,10 M10,15 L23,15\"/>\n <circle fill=\"currentColor\" cx=\"11\" cy=\"24\" r=\"2\"/>\n <circle fill=\"currentColor\" cx=\"21\" cy=\"24\" r=\"2\"/>\n </svg>\n </div>\n <div class=\"cart-summary-contents\">\n <div class=\"cart-summary-items\">\n {{itemsText}}\n </div>\n <div class=\"cart-summary-cost\">\n {{totalCost | currency}}\n </div>\n </div>\n </div>\n", styles: [".cart-summary{display:inline-block}.cart-summary-icon{float:left;width:32px;height:32px}img.summary-icon{width:100%;height:100%;object-fit:cover}.cart-summary-contents{padding-left:5px;float:left;font-size:.75}\n"] }]
|
|
49
|
+
}], ctorParameters: () => [{ type: i1.ShoppingCartService }, { type: i2.ToastrService }], propDecorators: { serviceName: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], cartChange: [{
|
|
52
|
+
type: Output
|
|
53
|
+
}] } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LXN1bW1hcnkvc2hvcHBpbmctY2FydC1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LXN1bW1hcnkvc2hvcHBpbmctY2FydC1zdW1tYXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVS9FLE1BQU0sT0FBTyw0QkFBNEI7SUFRbkI7SUFBa0Q7SUFON0QsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUN4QixVQUFVLEdBQStCLElBQUksWUFBWSxFQUFnQixDQUFDO0lBRXBGLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsU0FBUyxHQUF1QixDQUFDLENBQUM7SUFFbEMsWUFBb0IsbUJBQXdDLEVBQVUsTUFBcUI7UUFBdkUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWU7SUFBSSxDQUFDO0lBRWhHLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVPLFFBQVE7UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN4RSxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ3JCLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDM0MsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7b0JBQzlCLENBQUM7eUJBQU0sSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7b0JBQzVELENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO2dCQUM5QixDQUFDO2dCQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO1lBQ3BELENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDL0QsQ0FBQztTQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7d0dBakNVLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLGlKQ1Z6Qyw2MUJBbUJBOzs0RkRUYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsNEJBQTRCO29IQU03QixXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaG9wcGluZ0NhcnQgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWViaXotbGliJ1xuaW1wb3J0IHsgU2hvcHBpbmdDYXJ0U2VydmljZSB9IGZyb20gJy4uL3Nob3BwaW5nLWNhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtc2hvcHBpbmctY2FydC1zdW1tYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Nob3BwaW5nLWNhcnQtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Nob3BwaW5nLWNhcnQtc3VtbWFyeS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2hvcHBpbmdDYXJ0U3VtbWFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgc2VydmljZU5hbWU6IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgY2FydENoYW5nZTogRXZlbnRFbWl0dGVyPFNob3BwaW5nQ2FydD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNob3BwaW5nQ2FydD4oKTtcbiBcbiAgaXRlbXNUZXh0OiBzdHJpbmcgPSAnJztcbiAgdG90YWxDb3N0OiBudW1iZXIgfCB1bmRlZmluZWQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2hvcHBpbmdDYXJ0U2VydmljZTogU2hvcHBpbmdDYXJ0U2VydmljZSwgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZENhcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZENhcnQoKSB7XG4gICAgdGhpcy5pdGVtc1RleHQgPSAnTG9hZGluZy4uLic7XG4gICAgdGhpcy50b3RhbENvc3QgPSAwO1xuICAgIHRoaXMuc2hvcHBpbmdDYXJ0U2VydmljZS5yZXRyaWV2ZVNob3BwaW5nQ2FydCh0aGlzLnNlcnZpY2VOYW1lKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogc2hvcHBpbmdDYXJ0ID0+IHtcbiAgICAgIGlmIChzaG9wcGluZ0NhcnQgJiYgc2hvcHBpbmdDYXJ0LmNhcnRJdGVtcykge1xuICAgICAgICBpZiAoc2hvcHBpbmdDYXJ0LmNhcnRJdGVtcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICB0aGlzLml0ZW1zVGV4dCA9ICdPbmUgaXRlbSc7XG4gICAgICAgIH0gZWxzZSBpZiAoc2hvcHBpbmdDYXJ0LmNhcnRJdGVtcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhpcy5pdGVtc1RleHQgPSBzaG9wcGluZ0NhcnQuY2FydEl0ZW1zLmxlbmd0aCArICcgaXRlbXMnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLml0ZW1zVGV4dCA9ICdObyBpdGVtcyc7XG4gICAgICB9XG4gICAgICB0aGlzLmNhcnRDaGFuZ2UuZW1pdChzaG9wcGluZ0NhcnQpO1xuICAgICAgdGhpcy50b3RhbENvc3QgPSBzaG9wcGluZ0NhcnQudG90YWxBbW91bnQ/LmFtb3VudDtcbiAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgcmV0cmlldmluZyBzaG9wcGluZyBjYXJ0OiAnICsgZXJyKTtcbiAgICB9fSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNhcnQtc3VtbWFyeVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXN1bW1hcnktaWNvblwiPlxuICAgICAgPHN2ZyB2ZXJzaW9uPVwiMS4xXCIgY2xhc3M9XCJzdW1tYXJ5LWljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgICAgICA8cGF0aCBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICBkPVwiTTIsNCBMNiw0IEwxMCwyMCBMMjEsMjAgTDI1LDEwIEw4LDEwIE0xMywxMCBMMTMsMjAgTTE4LDIwIEwxOCwxMCBNMTAsMTUgTDIzLDE1XCIvPlxuICAgICAgICA8Y2lyY2xlIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBjeD1cIjExXCIgY3k9XCIyNFwiIHI9XCIyXCIvPlxuICAgICAgICA8Y2lyY2xlIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBjeD1cIjIxXCIgY3k9XCIyNFwiIHI9XCIyXCIvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcnQtc3VtbWFyeS1jb250ZW50c1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcnQtc3VtbWFyeS1pdGVtc1wiPlxuICAgICAgICB7e2l0ZW1zVGV4dH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXN1bW1hcnktY29zdFwiPlxuICAgICAgICB7e3RvdGFsQ29zdCB8IGN1cnJlbmN5fX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC12aWV3LXBhcmFtZXRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3Nob3BwaW5nLWNhcnQvc2hvcHBpbmctY2FydC12aWV3L3Nob3BwaW5nLWNhcnQtdmlldy1wYXJhbWV0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzIHtcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgcmV0dXJuTGFiZWw6IHN0cmluZztcbiAgICByZXR1cm5Vcmw6IHN0cmluZztcbiAgICBpdGVtTnVtYmVyTGFiZWw6IHN0cmluZztcbiAgICBpdGVtQ2xhc3NpZmljYXRpb25MYWJlbDogc3RyaW5nO1xuICAgIGl0ZW1OYW1lTGFiZWw6IHN0cmluZztcbiAgICBpdGVtRGVzY3JpcHRpb25MYWJlbDogc3RyaW5nO1xufSJdfQ==
|