@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,176 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/forms";
|
|
5
|
+
import * as i3 from "ngx-mask";
|
|
6
|
+
import * as i4 from "../esri-map/esri-map.component";
|
|
7
|
+
import * as i5 from "../yes-no/yes-no.component";
|
|
8
|
+
export class OhioLatLongComponent {
|
|
9
|
+
group;
|
|
10
|
+
/** Form validation will be displayed when showValidation is true. */
|
|
11
|
+
showValidation = false;
|
|
12
|
+
latLongCollectionMethods = [];
|
|
13
|
+
OHIO = { latMin: 38, latMax: 42, longMin: -85, longMax: -80 };
|
|
14
|
+
collectionMethods = [];
|
|
15
|
+
isSatelliteView = false;
|
|
16
|
+
coordsOutsideOfOhio = false;
|
|
17
|
+
customPatterns = { '9': { pattern: new RegExp('[-?0-9]') },
|
|
18
|
+
'0': { pattern: new RegExp('[0-9]') } };
|
|
19
|
+
// Set our map properties
|
|
20
|
+
mapCenter = [-82.996822, 39.959011];
|
|
21
|
+
basemapType = 'streets-vector';
|
|
22
|
+
mapZoomLevel = 7;
|
|
23
|
+
// See app.component.html
|
|
24
|
+
mapLoadedEvent(status) {
|
|
25
|
+
console.log('The map loaded: ' + status);
|
|
26
|
+
}
|
|
27
|
+
useDMS = false;
|
|
28
|
+
dmsLat = {
|
|
29
|
+
deg: undefined,
|
|
30
|
+
min: undefined,
|
|
31
|
+
sec: undefined
|
|
32
|
+
};
|
|
33
|
+
dmsLong = {
|
|
34
|
+
deg: undefined,
|
|
35
|
+
min: undefined,
|
|
36
|
+
sec: undefined
|
|
37
|
+
};
|
|
38
|
+
constructor() { }
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
this.updateLatDMSValue(this.group.controls['latDecimal'].value);
|
|
41
|
+
this.updateLonDMSValue(this.group.controls['longDecimal'].value);
|
|
42
|
+
this.group.controls['latDecimal'].valueChanges.subscribe(latDecimal => {
|
|
43
|
+
this.updateLatDMSValue(latDecimal);
|
|
44
|
+
});
|
|
45
|
+
this.group.controls['longDecimal'].valueChanges.subscribe(longDecimal => {
|
|
46
|
+
this.updateLonDMSValue(longDecimal);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
updateLatDMSValue(latDecimal) {
|
|
50
|
+
if (this.isNum(latDecimal)) {
|
|
51
|
+
this.dmsLat = this.decimalToDMS(latDecimal);
|
|
52
|
+
this.group.controls['dmsLat'].get('deg')?.patchValue(this.dmsLat.deg);
|
|
53
|
+
this.group.controls['dmsLat'].get('min')?.patchValue(this.dmsLat.min);
|
|
54
|
+
this.group.controls['dmsLat'].get('sec')?.patchValue(this.dmsLat.sec);
|
|
55
|
+
this.coordsOutsideOfOhio = !this.checkCoordsInOhio(this.group.controls['latDecimal'].value, this.group.controls['longDecimal'].value);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
updateLonDMSValue(longDecimal) {
|
|
59
|
+
if (this.isNum(longDecimal)) {
|
|
60
|
+
this.dmsLong = this.decimalToDMS(longDecimal);
|
|
61
|
+
this.group.controls['dmsLong'].get('deg')?.patchValue(this.dmsLong.deg);
|
|
62
|
+
this.group.controls['dmsLong'].get('min')?.patchValue(this.dmsLong.min);
|
|
63
|
+
this.group.controls['dmsLong'].get('sec')?.patchValue(this.dmsLong.sec);
|
|
64
|
+
this.coordsOutsideOfOhio = !this.checkCoordsInOhio(this.group.controls['latDecimal'].value, this.group.controls['longDecimal'].value);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// default to required if oepaRequired is not specified
|
|
68
|
+
// public isRequired() {
|
|
69
|
+
// // return (this.oepaRequired() !== false);
|
|
70
|
+
// };
|
|
71
|
+
async zoomToCoordinates(latDecimal, longDecimal, facilityMap) {
|
|
72
|
+
facilityMap.resetMap();
|
|
73
|
+
facilityMap.addPoint(latDecimal, longDecimal, 'xxx');
|
|
74
|
+
facilityMap.zoomToFacility(latDecimal, longDecimal);
|
|
75
|
+
console.log(this.group.value);
|
|
76
|
+
}
|
|
77
|
+
convertCoordsToDMS(dmsLatitude, dmsLongitude) {
|
|
78
|
+
if (this.isNum(dmsLatitude.controls['deg'].value) &&
|
|
79
|
+
this.isNum(dmsLatitude.controls['min'].value) &&
|
|
80
|
+
this.isNum(dmsLatitude.controls['sec'].value) &&
|
|
81
|
+
this.isNum(dmsLongitude.controls['deg'].value) &&
|
|
82
|
+
this.isNum(dmsLongitude.controls['min'].value) &&
|
|
83
|
+
this.isNum(dmsLongitude.controls['sec'].value)) {
|
|
84
|
+
var decimalLat;
|
|
85
|
+
var decimalLong;
|
|
86
|
+
var dmsLat = {
|
|
87
|
+
deg: dmsLatitude.controls['deg'].value,
|
|
88
|
+
min: dmsLatitude.controls['min'].value,
|
|
89
|
+
sec: dmsLatitude.controls['sec'].value
|
|
90
|
+
};
|
|
91
|
+
var dmsLong = {
|
|
92
|
+
deg: Number(dmsLongitude.controls['deg'].value) < 0 ? dmsLongitude.controls['deg'].value : -1 * Number(dmsLongitude.controls['deg'].value),
|
|
93
|
+
min: dmsLongitude.controls['min'].value,
|
|
94
|
+
sec: dmsLongitude.controls['sec'].value
|
|
95
|
+
};
|
|
96
|
+
decimalLat = this.dmsToDecimal(dmsLat);
|
|
97
|
+
decimalLong = this.dmsToDecimal(dmsLong);
|
|
98
|
+
this.group.controls['latDecimal'].patchValue(decimalLat);
|
|
99
|
+
this.group.controls['longDecimal'].patchValue(decimalLong);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
dmsToDecimal(dms) {
|
|
103
|
+
if (null != dms.deg && null != dms.min && null != dms.sec) {
|
|
104
|
+
var decimal = undefined;
|
|
105
|
+
var decimalFraction = dms.min / 60.0 + dms.sec / 3600.0;
|
|
106
|
+
decimal = (dms.deg > 0) ? dms.deg + decimalFraction : dms.deg - decimalFraction;
|
|
107
|
+
return decimal.toFixed(6);
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
;
|
|
112
|
+
decimalToDMS(decimal) {
|
|
113
|
+
var dms = {
|
|
114
|
+
deg: undefined,
|
|
115
|
+
min: undefined,
|
|
116
|
+
sec: undefined,
|
|
117
|
+
};
|
|
118
|
+
var absolute = Math.abs(decimal);
|
|
119
|
+
dms.deg = Math.floor(absolute);
|
|
120
|
+
var minsec = (absolute - dms.deg) * 60.0;
|
|
121
|
+
dms.min = Math.floor(minsec);
|
|
122
|
+
dms.sec = Number(((minsec - dms.min) * 60.0).toFixed(6));
|
|
123
|
+
if (dms.sec === 60) {
|
|
124
|
+
dms.min += 1;
|
|
125
|
+
dms.sec = 0;
|
|
126
|
+
}
|
|
127
|
+
if (dms.min === 60) {
|
|
128
|
+
dms.deg += 1;
|
|
129
|
+
dms.min = 0;
|
|
130
|
+
}
|
|
131
|
+
return dms;
|
|
132
|
+
}
|
|
133
|
+
;
|
|
134
|
+
checkCoordsInOhio(latitude, longitude) {
|
|
135
|
+
var coordsInOhio = true;
|
|
136
|
+
try {
|
|
137
|
+
if ((Number(latitude) < this.OHIO.latMin || Number(latitude) > this.OHIO.latMax ||
|
|
138
|
+
Number(longitude) < this.OHIO.longMin || Number(longitude) > this.OHIO.longMax)) {
|
|
139
|
+
coordsInOhio = false;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch (e) {
|
|
143
|
+
console.log('ERROR: bad lat/long: ' + latitude + '/' + longitude);
|
|
144
|
+
}
|
|
145
|
+
return coordsInOhio;
|
|
146
|
+
}
|
|
147
|
+
updateCoordinates(coords) {
|
|
148
|
+
this.group.controls['latDecimal'].patchValue(coords.latDecimal);
|
|
149
|
+
this.group.controls['longDecimal'].patchValue(coords.longDecimal);
|
|
150
|
+
}
|
|
151
|
+
isNum(value) {
|
|
152
|
+
if (value && null != value && undefined != value && value != '') {
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
getDMSLatFormGroup() {
|
|
158
|
+
return this.group.controls['dmsLat'];
|
|
159
|
+
}
|
|
160
|
+
getDMSLongFormGroup() {
|
|
161
|
+
return this.group.controls['dmsLong'];
|
|
162
|
+
}
|
|
163
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OhioLatLongComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
164
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OhioLatLongComponent, selector: "oepa-ohio-lat-long", inputs: { group: "group", showValidation: "showValidation", latLongCollectionMethods: "latLongCollectionMethods" }, ngImport: i0, template: "<div [style.pointer-events]=\"group.enabled ? null : 'none'\">\n\n<form [formGroup]=\"group\" novalidate>\n <div class=\"oepa-workflow-component-50\">\n <div class=\"oepa-section-component-body\">\n <div class=\"form-group\">\n <div class=\"alert alert-info\">\n Use the map on the right to set the latitude and longitude values and verify they are correct.\n You may click on the map to choose latitude and longitude coordinates or enter the latitude and longitude\n values in the input fields below.\n Alternately, you may enter an address in the input field at the top of the map to find coordinates by\n address.\n </div>\n </div>\n <div *ngIf=\"useDMS\">\n <button class=\"btn btn-primary\" (click)=\"convertCoordsToDMS(getDMSLatFormGroup(), getDMSLongFormGroup()); useDMS = !useDMS\">Convert\n Coordinates to Decimal Degrees</button>\n <div class=\"row\" formGroupName=\"dmsLat\">\n <div class=\"col-md-12\">\n <label>Latitude</label>\n <div class=\"row\">\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"deg\" name=\"latDegrees\" class=\"form-control\" type=\"number\" placeholder=\"Degrees\"\n min=\"-89\" max=\"89\" ng-blur=\"onLatDMSChange()\" maxlength=\"\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['deg'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['deg'].hasError('required')\">xxx is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"min\" name=\"latMinutes\" class=\"form-control\" type=\"number\" placeholder=\"Minutes\"\n min=\"0\" max=\"59\" ng-blur=\"onLatDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['min'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['min'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"sec\" name=\"latSeconds\" class=\"form-control\" type=\"number\" placeholder=\"Seconds\"\n min=\"0\" max=\"59.999999\" ng-blur=\"onLatDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['sec'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['sec'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\" formGroupName=\"dmsLong\">\n <div class=\"col-md-12\">\n <label>Longitude</label>\n <div class=\"row\">\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"deg\" name=\"longDegrees\" class=\"form-control\" type=\"number\" placeholder=\"Degrees\"\n min=\"-179\" max=\"179\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['deg'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['deg'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"min\" name=\"longMinutes\" class=\"form-control\" type=\"number\" placeholder=\"Minutes\"\n min=\"0\" max=\"59\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['min'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['min'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"sec\" name=\"longSeconds\" class=\"form-control\" type=\"number\" placeholder=\"Seconds\"\n min=\"0\" max=\"59.999999\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['sec'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['sec'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!useDMS\">\n <button class=\"btn btn-primary\" (click)=\"useDMS = !useDMS\">Enter Coordinates in Degrees, Minutes, Seconds</button>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Latitude</label>\n <input formControlName=\"latDecimal\" name=\"Latitude\" class=\"form-control\" type=\"text\" placeholder=\"Latitude\"\n ng-blur=\"onLatLongInputChange()\" mask=\"separator.6\" decimalMarker=\".\" [allowNegativeNumbers]=\"true\" [dropSpecialCharacters]=\"false\" \n [ngClass]=\"{'is-invalid':showValidation && group['controls']['latDecimal'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['latDecimal'].hasError('required')\">Latitude is required</small>\n </div>\n <div class=\"form-group\">\n <label>Longitude</label>\n <input formControlName=\"longDecimal\" name=\"Longitude\" class=\"form-control\" type=\"text\" placeholder=\"Longitude\"\n ng-blur=\"onLatLongInputChange()\" mask=\"separator.6\" decimalMarker=\".\" [allowNegativeNumbers]=\"true\" [dropSpecialCharacters]=\"false\"\n [ngClass]=\"{'is-invalid':showValidation && group['controls']['longDecimal'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['longDecimal'].hasError('required')\">Longitude is required</small>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"group['controls']['latDecimal'].value !== '' && group['controls']['longDecimal'].value !== ''\">\n <button class=\"btn btn-primary\" (click)=\"zoomToCoordinates(group['controls']['latDecimal'].value,group['controls']['longDecimal'].value, facilityMap)\">Zoom To These Coordinates</button>\n </div>\n\n <div *ngIf=\"latLongCollectionMethods && latLongCollectionMethods.length > 0\" class=\"form-group\">\n <label>Collection Method</label>\n <select class=\"form-select\" id=\"collectionMethodType\" name=\"collectionMethodType\" formControlName=\"collectionMethodType\"\n [ngClass]=\"{'is-invalid':showValidation && group['controls']['collectionMethodType'].status === 'INVALID'}\">\n <option value=\"\">--Select Collection Method--</option>\n <option *ngFor=\"let n of latLongCollectionMethods\" [ngValue]=\"n.codeValue\">{{n.description}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['collectionMethodType'].hasError('required')\">Collection Method is required</small>\n </div>\n\n <div *ngIf=\"coordsOutsideOfOhio\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"group.get('allowOutsideOfOhio')?.value!=='yes'\">\n The Latitude and Longitude values entered are not within the state of Ohio. Please enter a latitude value\n between 38 and 42 and a\n longitude value between -85 and -80 or indicate below that this location is outside of Ohio.\n </div>\n <div>\n <oepa-yes-no [group]=\"group\" field=\"allowOutsideOfOhio\" id=\"allowOutsideOfOhio\" [showValidation]=\"showValidation\">Is\n this location outside of Ohio?</oepa-yes-no>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"oepa-action-component-50\">\n <div class=\"oepa-section-component-body\">\n <oepa-esri-map\n #facilityMap [center]=\"mapCenter\"\n [basemap]=\"basemapType\"\n [zoom]=\"mapZoomLevel\"\n (mapLoaded)=\"mapLoadedEvent($event)\"\n [currentLatLong]=\"group.value\"\n (onNewCoordinates)=\"updateCoordinates($event)\"\n [showSearch]=\"group.enabled\">\n </oepa-esri-map>\n </div>\n </div>\n\n</form>\n\n</div>", styles: [".oepa-workflow-component-50{float:left;width:50%;overflow-y:auto}.oepa-section-component-body{overflow-y:auto;overflow-x:hidden;box-sizing:border-box;padding:10px}.oepa-action-component-50{width:50%;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { 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"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "component", type: i4.EsriMapComponent, selector: "oepa-esri-map", inputs: ["currentLatLong", "zoom", "center", "basemap", "showSearch"], outputs: ["mapLoaded", "onNewCoordinates"] }, { kind: "component", type: i5.YesNoComponent, selector: "oepa-yes-no", inputs: ["group", "field", "showValidation", "disabled"] }] });
|
|
165
|
+
}
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OhioLatLongComponent, decorators: [{
|
|
167
|
+
type: Component,
|
|
168
|
+
args: [{ selector: 'oepa-ohio-lat-long', template: "<div [style.pointer-events]=\"group.enabled ? null : 'none'\">\n\n<form [formGroup]=\"group\" novalidate>\n <div class=\"oepa-workflow-component-50\">\n <div class=\"oepa-section-component-body\">\n <div class=\"form-group\">\n <div class=\"alert alert-info\">\n Use the map on the right to set the latitude and longitude values and verify they are correct.\n You may click on the map to choose latitude and longitude coordinates or enter the latitude and longitude\n values in the input fields below.\n Alternately, you may enter an address in the input field at the top of the map to find coordinates by\n address.\n </div>\n </div>\n <div *ngIf=\"useDMS\">\n <button class=\"btn btn-primary\" (click)=\"convertCoordsToDMS(getDMSLatFormGroup(), getDMSLongFormGroup()); useDMS = !useDMS\">Convert\n Coordinates to Decimal Degrees</button>\n <div class=\"row\" formGroupName=\"dmsLat\">\n <div class=\"col-md-12\">\n <label>Latitude</label>\n <div class=\"row\">\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"deg\" name=\"latDegrees\" class=\"form-control\" type=\"number\" placeholder=\"Degrees\"\n min=\"-89\" max=\"89\" ng-blur=\"onLatDMSChange()\" maxlength=\"\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['deg'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['deg'].hasError('required')\">xxx is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"min\" name=\"latMinutes\" class=\"form-control\" type=\"number\" placeholder=\"Minutes\"\n min=\"0\" max=\"59\" ng-blur=\"onLatDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['min'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['min'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"sec\" name=\"latSeconds\" class=\"form-control\" type=\"number\" placeholder=\"Seconds\"\n min=\"0\" max=\"59.999999\" ng-blur=\"onLatDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['sec'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['sec'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\" formGroupName=\"dmsLong\">\n <div class=\"col-md-12\">\n <label>Longitude</label>\n <div class=\"row\">\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"deg\" name=\"longDegrees\" class=\"form-control\" type=\"number\" placeholder=\"Degrees\"\n min=\"-179\" max=\"179\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['deg'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['deg'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"min\" name=\"longMinutes\" class=\"form-control\" type=\"number\" placeholder=\"Minutes\"\n min=\"0\" max=\"59\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['min'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['min'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"sec\" name=\"longSeconds\" class=\"form-control\" type=\"number\" placeholder=\"Seconds\"\n min=\"0\" max=\"59.999999\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['sec'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['sec'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!useDMS\">\n <button class=\"btn btn-primary\" (click)=\"useDMS = !useDMS\">Enter Coordinates in Degrees, Minutes, Seconds</button>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Latitude</label>\n <input formControlName=\"latDecimal\" name=\"Latitude\" class=\"form-control\" type=\"text\" placeholder=\"Latitude\"\n ng-blur=\"onLatLongInputChange()\" mask=\"separator.6\" decimalMarker=\".\" [allowNegativeNumbers]=\"true\" [dropSpecialCharacters]=\"false\" \n [ngClass]=\"{'is-invalid':showValidation && group['controls']['latDecimal'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['latDecimal'].hasError('required')\">Latitude is required</small>\n </div>\n <div class=\"form-group\">\n <label>Longitude</label>\n <input formControlName=\"longDecimal\" name=\"Longitude\" class=\"form-control\" type=\"text\" placeholder=\"Longitude\"\n ng-blur=\"onLatLongInputChange()\" mask=\"separator.6\" decimalMarker=\".\" [allowNegativeNumbers]=\"true\" [dropSpecialCharacters]=\"false\"\n [ngClass]=\"{'is-invalid':showValidation && group['controls']['longDecimal'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['longDecimal'].hasError('required')\">Longitude is required</small>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"group['controls']['latDecimal'].value !== '' && group['controls']['longDecimal'].value !== ''\">\n <button class=\"btn btn-primary\" (click)=\"zoomToCoordinates(group['controls']['latDecimal'].value,group['controls']['longDecimal'].value, facilityMap)\">Zoom To These Coordinates</button>\n </div>\n\n <div *ngIf=\"latLongCollectionMethods && latLongCollectionMethods.length > 0\" class=\"form-group\">\n <label>Collection Method</label>\n <select class=\"form-select\" id=\"collectionMethodType\" name=\"collectionMethodType\" formControlName=\"collectionMethodType\"\n [ngClass]=\"{'is-invalid':showValidation && group['controls']['collectionMethodType'].status === 'INVALID'}\">\n <option value=\"\">--Select Collection Method--</option>\n <option *ngFor=\"let n of latLongCollectionMethods\" [ngValue]=\"n.codeValue\">{{n.description}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['collectionMethodType'].hasError('required')\">Collection Method is required</small>\n </div>\n\n <div *ngIf=\"coordsOutsideOfOhio\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"group.get('allowOutsideOfOhio')?.value!=='yes'\">\n The Latitude and Longitude values entered are not within the state of Ohio. Please enter a latitude value\n between 38 and 42 and a\n longitude value between -85 and -80 or indicate below that this location is outside of Ohio.\n </div>\n <div>\n <oepa-yes-no [group]=\"group\" field=\"allowOutsideOfOhio\" id=\"allowOutsideOfOhio\" [showValidation]=\"showValidation\">Is\n this location outside of Ohio?</oepa-yes-no>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"oepa-action-component-50\">\n <div class=\"oepa-section-component-body\">\n <oepa-esri-map\n #facilityMap [center]=\"mapCenter\"\n [basemap]=\"basemapType\"\n [zoom]=\"mapZoomLevel\"\n (mapLoaded)=\"mapLoadedEvent($event)\"\n [currentLatLong]=\"group.value\"\n (onNewCoordinates)=\"updateCoordinates($event)\"\n [showSearch]=\"group.enabled\">\n </oepa-esri-map>\n </div>\n </div>\n\n</form>\n\n</div>", styles: [".oepa-workflow-component-50{float:left;width:50%;overflow-y:auto}.oepa-section-component-body{overflow-y:auto;overflow-x:hidden;box-sizing:border-box;padding:10px}.oepa-action-component-50{width:50%;overflow-y:auto}\n"] }]
|
|
169
|
+
}], ctorParameters: () => [], propDecorators: { group: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], showValidation: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], latLongCollectionMethods: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}] } });
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2hpby1sYXQtbG9uZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL29oaW8tbGF0LWxvbmcvb2hpby1sYXQtbG9uZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL29oaW8tbGF0LWxvbmcvb2hpby1sYXQtbG9uZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVd6RCxNQUFNLE9BQU8sb0JBQW9CO0lBRXRCLEtBQUssQ0FBYTtJQUMzQixxRUFBcUU7SUFDNUQsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2Qix3QkFBd0IsR0FBVyxFQUFFLENBQUM7SUFFeEMsSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUU5RCxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDdkIsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUN4QixtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFFNUIsY0FBYyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3ZDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBQyxFQUFDLENBQUM7SUFFaEUseUJBQXlCO0lBQ3pCLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztJQUMvQixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBRWpCLHlCQUF5QjtJQUN6QixjQUFjLENBQUMsTUFBZTtRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2YsTUFBTSxHQUFnRjtRQUMzRixHQUFHLEVBQUUsU0FBUztRQUNkLEdBQUcsRUFBRSxTQUFTO1FBQ2QsR0FBRyxFQUFFLFNBQVM7S0FDZixDQUFDO0lBQ0ssT0FBTyxHQUFnRjtRQUM1RixHQUFHLEVBQUUsU0FBUztRQUNkLEdBQUcsRUFBRSxTQUFTO1FBQ2QsR0FBRyxFQUFFLFNBQVM7S0FDZixDQUFDO0lBRUYsZ0JBQWUsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFVBQWtCO1FBQ3pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hJLENBQUM7SUFDSCxDQUFDO0lBRU0saUJBQWlCLENBQUMsV0FBbUI7UUFDMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEksQ0FBQztJQUNILENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsd0JBQXdCO0lBQ3hCLDhDQUE4QztJQUM5QyxLQUFLO0lBRUwsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFVBQWtCLEVBQUUsV0FBbUIsRUFBRSxXQUE2QjtRQUM1RixXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsV0FBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JELFdBQVcsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsV0FBc0IsRUFBRSxZQUF1QjtRQUN2RSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxJQUFJLFVBQWtCLENBQUM7WUFDdkIsSUFBSSxXQUFtQixDQUFDO1lBQ3hCLElBQUksTUFBTSxHQUFHO2dCQUNYLEdBQUcsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUs7Z0JBQ3RDLEdBQUcsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUs7Z0JBQ3RDLEdBQUcsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUs7YUFDdkMsQ0FBQTtZQUNELElBQUksT0FBTyxHQUFHO2dCQUNaLEdBQUcsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQzFJLEdBQUcsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUs7Z0JBQ3ZDLEdBQUcsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUs7YUFDeEMsQ0FBQTtZQUVELFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFFTSxZQUFZLENBQUMsR0FBUTtRQUMxQixJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUQsSUFBSSxPQUFPLEdBQUcsU0FBUyxDQUFDO1lBQ3hCLElBQUksZUFBZSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1lBQ3hELE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQztZQUNoRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUFBLENBQUM7SUFFSyxZQUFZLENBQUMsT0FBVztRQUM3QixJQUFJLEdBQUcsR0FBZ0Y7WUFDckYsR0FBRyxFQUFFLFNBQVM7WUFDZCxHQUFHLEVBQUUsU0FBUztZQUNkLEdBQUcsRUFBRSxTQUFTO1NBQ2YsQ0FBQztRQUNGLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLElBQUksTUFBTSxHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDekMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNuQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNiLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztRQUNELElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNuQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNiLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUFBLENBQUM7SUFFSyxpQkFBaUIsQ0FBQyxRQUFhLEVBQUUsU0FBYztRQUNwRCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO2dCQUM3RSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDbEYsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixHQUFHLFFBQVEsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFlO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQVU7UUFDZCxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVMsSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBYyxDQUFDO0lBQ3BELENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQWMsQ0FBQztJQUNyRCxDQUFDO3dHQWhMVSxvQkFBb0I7NEZBQXBCLG9CQUFvQiw4S0NYakMsMjBSQWtKTTs7NEZEdklPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxvQkFBb0I7d0RBTXJCLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGF0TG9uZyB9IGZyb20gJ0BvaGlvZXBhL29lcGEtZWJpei1saWInO1xuaW1wb3J0IHsgQ29kZSB9IGZyb20gJ0BvaGlvZXBhL29lcGEtZWJpei1saWInO1xuaW1wb3J0IHsgRXNyaU1hcENvbXBvbmVudCB9IGZyb20gJy4uL2VzcmktbWFwL2VzcmktbWFwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtb2hpby1sYXQtbG9uZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9vaGlvLWxhdC1sb25nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2hpby1sYXQtbG9uZy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgT2hpb0xhdExvbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGdyb3VwITogRm9ybUdyb3VwO1xuICAvKiogRm9ybSB2YWxpZGF0aW9uIHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gc2hvd1ZhbGlkYXRpb24gaXMgdHJ1ZS4gKi9cbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgbGF0TG9uZ0NvbGxlY3Rpb25NZXRob2RzOiBDb2RlW10gPSBbXTtcblxuICBwdWJsaWMgT0hJTyA9IHsgbGF0TWluOiAzOCwgbGF0TWF4OiA0MiwgbG9uZ01pbjogLTg1LCBsb25nTWF4OiAtODAgfTtcblxuICBwdWJsaWMgY29sbGVjdGlvbk1ldGhvZHMgPSBbXTtcbiAgcHVibGljIGlzU2F0ZWxsaXRlVmlldyA9IGZhbHNlO1xuICBwdWJsaWMgY29vcmRzT3V0c2lkZU9mT2hpbyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjdXN0b21QYXR0ZXJucyA9IHsgJzknOiB7IHBhdHRlcm46IG5ldyBSZWdFeHAoJ1stPzAtOV0nKSB9ICxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCc6IHsgcGF0dGVybjogbmV3IFJlZ0V4cCgnWzAtOV0nKX19O1xuXG4gIC8vIFNldCBvdXIgbWFwIHByb3BlcnRpZXNcbiAgbWFwQ2VudGVyID0gWy04Mi45OTY4MjIsIDM5Ljk1OTAxMV07XG4gIGJhc2VtYXBUeXBlID0gJ3N0cmVldHMtdmVjdG9yJztcbiAgbWFwWm9vbUxldmVsID0gNztcblxuICAvLyBTZWUgYXBwLmNvbXBvbmVudC5odG1sXG4gIG1hcExvYWRlZEV2ZW50KHN0YXR1czogYm9vbGVhbikge1xuICAgIGNvbnNvbGUubG9nKCdUaGUgbWFwIGxvYWRlZDogJyArIHN0YXR1cyk7XG4gIH1cblxuICBwdWJsaWMgdXNlRE1TID0gZmFsc2U7XG4gIHB1YmxpYyBkbXNMYXQ6IHtkZWc6IG51bWJlciB8IHVuZGVmaW5lZCwgbWluOiBudW1iZXIgfCB1bmRlZmluZWQsIHNlYzogbnVtYmVyIHwgdW5kZWZpbmVkfSA9IHtcbiAgICBkZWc6IHVuZGVmaW5lZCxcbiAgICBtaW46IHVuZGVmaW5lZCxcbiAgICBzZWM6IHVuZGVmaW5lZFxuICB9O1xuICBwdWJsaWMgZG1zTG9uZzoge2RlZzogbnVtYmVyIHwgdW5kZWZpbmVkLCBtaW46IG51bWJlciB8IHVuZGVmaW5lZCwgc2VjOiBudW1iZXIgfCB1bmRlZmluZWR9ID0ge1xuICAgIGRlZzogdW5kZWZpbmVkLFxuICAgIG1pbjogdW5kZWZpbmVkLFxuICAgIHNlYzogdW5kZWZpbmVkXG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuIFxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUxhdERNU1ZhbHVlKHRoaXMuZ3JvdXAuY29udHJvbHNbJ2xhdERlY2ltYWwnXS52YWx1ZSk7XG4gICAgdGhpcy51cGRhdGVMb25ETVNWYWx1ZSh0aGlzLmdyb3VwLmNvbnRyb2xzWydsb25nRGVjaW1hbCddLnZhbHVlKTtcblxuICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2xhdERlY2ltYWwnXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGxhdERlY2ltYWwgPT4ge1xuICAgICAgdGhpcy51cGRhdGVMYXRETVNWYWx1ZShsYXREZWNpbWFsKTtcbiAgICB9KTtcbiAgICB0aGlzLmdyb3VwLmNvbnRyb2xzWydsb25nRGVjaW1hbCddLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUobG9uZ0RlY2ltYWwgPT4ge1xuICAgICAgdGhpcy51cGRhdGVMb25ETVNWYWx1ZShsb25nRGVjaW1hbCk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMYXRETVNWYWx1ZShsYXREZWNpbWFsOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc051bShsYXREZWNpbWFsKSkge1xuICAgICAgdGhpcy5kbXNMYXQgPSB0aGlzLmRlY2ltYWxUb0RNUyhsYXREZWNpbWFsKTtcbiAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2Rtc0xhdCddLmdldCgnZGVnJyk/LnBhdGNoVmFsdWUodGhpcy5kbXNMYXQuZGVnKTtcbiAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2Rtc0xhdCddLmdldCgnbWluJyk/LnBhdGNoVmFsdWUodGhpcy5kbXNMYXQubWluKTtcbiAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2Rtc0xhdCddLmdldCgnc2VjJyk/LnBhdGNoVmFsdWUodGhpcy5kbXNMYXQuc2VjKTtcbiAgICAgIHRoaXMuY29vcmRzT3V0c2lkZU9mT2hpbyA9ICF0aGlzLmNoZWNrQ29vcmRzSW5PaGlvKHRoaXMuZ3JvdXAuY29udHJvbHNbJ2xhdERlY2ltYWwnXS52YWx1ZSwgdGhpcy5ncm91cC5jb250cm9sc1snbG9uZ0RlY2ltYWwnXS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUxvbkRNU1ZhbHVlKGxvbmdEZWNpbWFsOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc051bShsb25nRGVjaW1hbCkpIHtcbiAgICAgIHRoaXMuZG1zTG9uZyA9IHRoaXMuZGVjaW1hbFRvRE1TKGxvbmdEZWNpbWFsKTtcbiAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2Rtc0xvbmcnXS5nZXQoJ2RlZycpPy5wYXRjaFZhbHVlKHRoaXMuZG1zTG9uZy5kZWcpO1xuICAgICAgdGhpcy5ncm91cC5jb250cm9sc1snZG1zTG9uZyddLmdldCgnbWluJyk/LnBhdGNoVmFsdWUodGhpcy5kbXNMb25nLm1pbik7XG4gICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzWydkbXNMb25nJ10uZ2V0KCdzZWMnKT8ucGF0Y2hWYWx1ZSh0aGlzLmRtc0xvbmcuc2VjKTtcbiAgICAgIHRoaXMuY29vcmRzT3V0c2lkZU9mT2hpbyA9ICF0aGlzLmNoZWNrQ29vcmRzSW5PaGlvKHRoaXMuZ3JvdXAuY29udHJvbHNbJ2xhdERlY2ltYWwnXS52YWx1ZSwgdGhpcy5ncm91cC5jb250cm9sc1snbG9uZ0RlY2ltYWwnXS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gZGVmYXVsdCB0byByZXF1aXJlZCBpZiBvZXBhUmVxdWlyZWQgaXMgbm90IHNwZWNpZmllZFxuICAvLyBwdWJsaWMgaXNSZXF1aXJlZCgpIHtcbiAgLy8gXHQvLyByZXR1cm4gKHRoaXMub2VwYVJlcXVpcmVkKCkgIT09IGZhbHNlKTtcbiAgLy8gfTtcblxuICBhc3luYyB6b29tVG9Db29yZGluYXRlcyhsYXREZWNpbWFsOiBzdHJpbmcsIGxvbmdEZWNpbWFsOiBzdHJpbmcsIGZhY2lsaXR5TWFwOiBFc3JpTWFwQ29tcG9uZW50KSB7XG4gICAgZmFjaWxpdHlNYXAucmVzZXRNYXAoKTtcbiAgICBmYWNpbGl0eU1hcC5hZGRQb2ludChsYXREZWNpbWFsLCBsb25nRGVjaW1hbCwgJ3h4eCcpO1xuICAgIGZhY2lsaXR5TWFwLnpvb21Ub0ZhY2lsaXR5KGxhdERlY2ltYWwsIGxvbmdEZWNpbWFsKTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmdyb3VwLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjb252ZXJ0Q29vcmRzVG9ETVMoZG1zTGF0aXR1ZGU6IEZvcm1Hcm91cCwgZG1zTG9uZ2l0dWRlOiBGb3JtR3JvdXApIHtcbiAgICBpZiAodGhpcy5pc051bShkbXNMYXRpdHVkZS5jb250cm9sc1snZGVnJ10udmFsdWUpICYmXG4gICAgICAgIHRoaXMuaXNOdW0oZG1zTGF0aXR1ZGUuY29udHJvbHNbJ21pbiddLnZhbHVlKSAmJlxuICAgICAgICB0aGlzLmlzTnVtKGRtc0xhdGl0dWRlLmNvbnRyb2xzWydzZWMnXS52YWx1ZSkgJiZcbiAgICAgICAgdGhpcy5pc051bShkbXNMb25naXR1ZGUuY29udHJvbHNbJ2RlZyddLnZhbHVlKSAmJlxuICAgICAgICB0aGlzLmlzTnVtKGRtc0xvbmdpdHVkZS5jb250cm9sc1snbWluJ10udmFsdWUpICYmXG4gICAgICAgIHRoaXMuaXNOdW0oZG1zTG9uZ2l0dWRlLmNvbnRyb2xzWydzZWMnXS52YWx1ZSkpIHtcbiAgICAgIHZhciBkZWNpbWFsTGF0OiBzdHJpbmc7XG4gICAgICB2YXIgZGVjaW1hbExvbmc6IHN0cmluZztcbiAgICAgIHZhciBkbXNMYXQgPSB7XG4gICAgICAgIGRlZzogZG1zTGF0aXR1ZGUuY29udHJvbHNbJ2RlZyddLnZhbHVlLFxuICAgICAgICBtaW46IGRtc0xhdGl0dWRlLmNvbnRyb2xzWydtaW4nXS52YWx1ZSxcbiAgICAgICAgc2VjOiBkbXNMYXRpdHVkZS5jb250cm9sc1snc2VjJ10udmFsdWVcbiAgICAgIH1cbiAgICAgIHZhciBkbXNMb25nID0geyAvLyBmb3JjZSBsYXQvbG9uZyB0byBiZSBpbiBXZXN0ZXJuIEhlbWlzcGhlcmVcbiAgICAgICAgZGVnOiBOdW1iZXIoZG1zTG9uZ2l0dWRlLmNvbnRyb2xzWydkZWcnXS52YWx1ZSkgPCAwID8gZG1zTG9uZ2l0dWRlLmNvbnRyb2xzWydkZWcnXS52YWx1ZSA6IC0xICogTnVtYmVyKGRtc0xvbmdpdHVkZS5jb250cm9sc1snZGVnJ10udmFsdWUpLFxuICAgICAgICBtaW46IGRtc0xvbmdpdHVkZS5jb250cm9sc1snbWluJ10udmFsdWUsXG4gICAgICAgIHNlYzogZG1zTG9uZ2l0dWRlLmNvbnRyb2xzWydzZWMnXS52YWx1ZVxuICAgICAgfVxuXG4gICAgICBkZWNpbWFsTGF0ID0gdGhpcy5kbXNUb0RlY2ltYWwoZG1zTGF0KTtcbiAgICAgIGRlY2ltYWxMb25nID0gdGhpcy5kbXNUb0RlY2ltYWwoZG1zTG9uZyk7XG4gIFxuICAgICAgdGhpcy5ncm91cC5jb250cm9sc1snbGF0RGVjaW1hbCddLnBhdGNoVmFsdWUoZGVjaW1hbExhdCk7XG4gICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzWydsb25nRGVjaW1hbCddLnBhdGNoVmFsdWUoZGVjaW1hbExvbmcpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkbXNUb0RlY2ltYWwoZG1zOiBhbnkpIHtcbiAgICBpZiAobnVsbCAhPSBkbXMuZGVnICYmIG51bGwgIT0gZG1zLm1pbiAmJiBudWxsICE9IGRtcy5zZWMpIHtcbiAgICAgIHZhciBkZWNpbWFsID0gdW5kZWZpbmVkO1xuICAgICAgdmFyIGRlY2ltYWxGcmFjdGlvbiA9IGRtcy5taW4gLyA2MC4wICsgZG1zLnNlYyAvIDM2MDAuMDtcbiAgICAgIGRlY2ltYWwgPSAoZG1zLmRlZyA+IDApID8gZG1zLmRlZyArIGRlY2ltYWxGcmFjdGlvbiA6IGRtcy5kZWcgLSBkZWNpbWFsRnJhY3Rpb247XG4gICAgICByZXR1cm4gZGVjaW1hbC50b0ZpeGVkKDYpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBwdWJsaWMgZGVjaW1hbFRvRE1TKGRlY2ltYWw6YW55KSB7XG4gICAgdmFyIGRtczoge2RlZzogbnVtYmVyIHwgdW5kZWZpbmVkLCBtaW46IG51bWJlciB8IHVuZGVmaW5lZCwgc2VjOiBudW1iZXIgfCB1bmRlZmluZWR9ID0ge1xuICAgICAgZGVnOiB1bmRlZmluZWQsXG4gICAgICBtaW46IHVuZGVmaW5lZCxcbiAgICAgIHNlYzogdW5kZWZpbmVkLFxuICAgIH07XG4gICAgdmFyIGFic29sdXRlID0gTWF0aC5hYnMoZGVjaW1hbCk7XG4gICAgZG1zLmRlZyA9IE1hdGguZmxvb3IoYWJzb2x1dGUpO1xuICAgIHZhciBtaW5zZWMgPSAoYWJzb2x1dGUgLSBkbXMuZGVnKSAqIDYwLjA7XG4gICAgZG1zLm1pbiA9IE1hdGguZmxvb3IobWluc2VjKTtcbiAgICBkbXMuc2VjID0gTnVtYmVyKCgobWluc2VjIC0gZG1zLm1pbikgKiA2MC4wKS50b0ZpeGVkKDYpKTtcbiAgICBpZiAoZG1zLnNlYyA9PT0gNjApIHtcbiAgICAgIGRtcy5taW4gKz0gMTtcbiAgICAgIGRtcy5zZWMgPSAwO1xuICAgIH1cbiAgICBpZiAoZG1zLm1pbiA9PT0gNjApIHtcbiAgICAgIGRtcy5kZWcgKz0gMTtcbiAgICAgIGRtcy5taW4gPSAwO1xuICAgIH1cbiAgICByZXR1cm4gZG1zO1xuICB9O1xuXG4gIHB1YmxpYyBjaGVja0Nvb3Jkc0luT2hpbyhsYXRpdHVkZTogYW55LCBsb25naXR1ZGU6IGFueSkge1xuICAgIHZhciBjb29yZHNJbk9oaW8gPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICBpZiAoKE51bWJlcihsYXRpdHVkZSkgPCB0aGlzLk9ISU8ubGF0TWluIHx8IE51bWJlcihsYXRpdHVkZSkgPiB0aGlzLk9ISU8ubGF0TWF4IHx8XG4gICAgICAgIE51bWJlcihsb25naXR1ZGUpIDwgdGhpcy5PSElPLmxvbmdNaW4gfHwgTnVtYmVyKGxvbmdpdHVkZSkgPiB0aGlzLk9ISU8ubG9uZ01heCkpIHtcbiAgICAgICAgY29vcmRzSW5PaGlvID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coJ0VSUk9SOiBiYWQgbGF0L2xvbmc6ICcgKyBsYXRpdHVkZSArICcvJyArIGxvbmdpdHVkZSk7XG4gICAgfVxuICAgIHJldHVybiBjb29yZHNJbk9oaW87XG4gIH1cblxuICB1cGRhdGVDb29yZGluYXRlcyhjb29yZHM6IExhdExvbmcpIHtcbiAgICB0aGlzLmdyb3VwLmNvbnRyb2xzWydsYXREZWNpbWFsJ10ucGF0Y2hWYWx1ZShjb29yZHMubGF0RGVjaW1hbCk7XG4gICAgdGhpcy5ncm91cC5jb250cm9sc1snbG9uZ0RlY2ltYWwnXS5wYXRjaFZhbHVlKGNvb3Jkcy5sb25nRGVjaW1hbCk7XG4gIH1cblxuICBpc051bSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlICYmIG51bGwgIT0gdmFsdWUgJiYgdW5kZWZpbmVkICE9IHZhbHVlICYmIHZhbHVlICE9ICcnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldERNU0xhdEZvcm1Hcm91cCgpIDogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5ncm91cC5jb250cm9sc1snZG1zTGF0J10gYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgcHVibGljIGdldERNU0xvbmdGb3JtR3JvdXAoKSA6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2Rtc0xvbmcnXSBhcyBGb3JtR3JvdXA7XG4gIH1cblxufVxuIiwiPGRpdiBbc3R5bGUucG9pbnRlci1ldmVudHNdPVwiZ3JvdXAuZW5hYmxlZCA/IG51bGwgOiAnbm9uZSdcIj5cblxuPGZvcm0gW2Zvcm1Hcm91cF09XCJncm91cFwiIG5vdmFsaWRhdGU+XG4gIDxkaXYgY2xhc3M9XCJvZXBhLXdvcmtmbG93LWNvbXBvbmVudC01MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJvZXBhLXNlY3Rpb24tY29tcG9uZW50LWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCI+XG4gICAgICAgICAgVXNlIHRoZSBtYXAgb24gdGhlIHJpZ2h0IHRvIHNldCB0aGUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB2YWx1ZXMgYW5kIHZlcmlmeSB0aGV5IGFyZSBjb3JyZWN0LlxuICAgICAgICAgIFlvdSBtYXkgY2xpY2sgb24gdGhlIG1hcCB0byBjaG9vc2UgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBjb29yZGluYXRlcyBvciBlbnRlciB0aGUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZVxuICAgICAgICAgIHZhbHVlcyBpbiB0aGUgaW5wdXQgZmllbGRzIGJlbG93LlxuICAgICAgICAgIEFsdGVybmF0ZWx5LCB5b3UgbWF5IGVudGVyIGFuIGFkZHJlc3MgaW4gdGhlIGlucHV0IGZpZWxkIGF0IHRoZSB0b3Agb2YgdGhlIG1hcCB0byBmaW5kIGNvb3JkaW5hdGVzIGJ5XG4gICAgICAgICAgYWRkcmVzcy5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJ1c2VETVNcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJjb252ZXJ0Q29vcmRzVG9ETVMoZ2V0RE1TTGF0Rm9ybUdyb3VwKCksIGdldERNU0xvbmdGb3JtR3JvdXAoKSk7IHVzZURNUyA9ICF1c2VETVNcIj5Db252ZXJ0XG4gICAgICAgICAgQ29vcmRpbmF0ZXMgdG8gRGVjaW1hbCBEZWdyZWVzPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBmb3JtR3JvdXBOYW1lPVwiZG1zTGF0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgPGxhYmVsPkxhdGl0dWRlPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZWdcIiBuYW1lPVwibGF0RGVncmVlc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiRGVncmVlc1wiXG4gICAgICAgICAgICAgICAgICAgIG1pbj1cIi04OVwiIG1heD1cIjg5XCIgbmctYmx1cj1cIm9uTGF0RE1TQ2hhbmdlKClcIiBtYXhsZW5ndGg9XCJcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdldERNU0xhdEZvcm1Hcm91cCgpWydjb250cm9scyddWydkZWcnXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIj5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdldERNU0xhdEZvcm1Hcm91cCgpWydjb250cm9scyddWydkZWcnXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnh4eCBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIm1pblwiIG5hbWU9XCJsYXRNaW51dGVzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJNaW51dGVzXCJcbiAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiIG1heD1cIjU5XCIgbmctYmx1cj1cIm9uTGF0RE1TQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdldERNU0xhdEZvcm1Hcm91cCgpWydjb250cm9scyddWydtaW4nXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIj5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdldERNU0xhdEZvcm1Hcm91cCgpWydjb250cm9scyddWydtaW4nXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlByaW1hcnkgU0lDIENvZGUgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzZWNcIiBuYW1lPVwibGF0U2Vjb25kc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiU2Vjb25kc1wiXG4gICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIiBtYXg9XCI1OS45OTk5OTlcIiBuZy1ibHVyPVwib25MYXRETVNDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ2V0RE1TTGF0Rm9ybUdyb3VwKClbJ2NvbnRyb2xzJ11bJ3NlYyddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ2V0RE1TTGF0Rm9ybUdyb3VwKClbJ2NvbnRyb2xzJ11bJ3NlYyddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+UHJpbWFyeSBTSUMgQ29kZSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgZm9ybUdyb3VwTmFtZT1cImRtc0xvbmdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICA8bGFiZWw+TG9uZ2l0dWRlPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZWdcIiBuYW1lPVwibG9uZ0RlZ3JlZXNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIkRlZ3JlZXNcIlxuICAgICAgICAgICAgICAgICAgICBtaW49XCItMTc5XCIgbWF4PVwiMTc5XCIgbmctYmx1cj1cIm9uTG9uZ0RNU0NoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBnZXRETVNMb25nRm9ybUdyb3VwKClbJ2NvbnRyb2xzJ11bJ2RlZyddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ2V0RE1TTG9uZ0Zvcm1Hcm91cCgpWydjb250cm9scyddWydkZWcnXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlByaW1hcnkgU0lDIENvZGUgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJtaW5cIiBuYW1lPVwibG9uZ01pbnV0ZXNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIk1pbnV0ZXNcIlxuICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCIgbWF4PVwiNTlcIiBuZy1ibHVyPVwib25Mb25nRE1TQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdldERNU0xvbmdGb3JtR3JvdXAoKVsnY29udHJvbHMnXVsnbWluJ10uc3RhdHVzID09PSAnSU5WQUxJRCd9XCI+XG4gICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJnZXRETVNMb25nRm9ybUdyb3VwKClbJ2NvbnRyb2xzJ11bJ21pbiddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+UHJpbWFyeSBTSUMgQ29kZSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cInNlY1wiIG5hbWU9XCJsb25nU2Vjb25kc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiU2Vjb25kc1wiXG4gICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIiBtYXg9XCI1OS45OTk5OTlcIiBuZy1ibHVyPVwib25Mb25nRE1TQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdldERNU0xvbmdGb3JtR3JvdXAoKVsnY29udHJvbHMnXVsnc2VjJ10uc3RhdHVzID09PSAnSU5WQUxJRCd9XCI+XG4gICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJnZXRETVNMb25nRm9ybUdyb3VwKClbJ2NvbnRyb2xzJ11bJ3NlYyddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+UHJpbWFyeSBTSUMgQ29kZSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIXVzZURNU1wiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInVzZURNUyA9ICF1c2VETVNcIj5FbnRlciBDb29yZGluYXRlcyBpbiBEZWdyZWVzLCBNaW51dGVzLCBTZWNvbmRzPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICA8bGFiZWw+TGF0aXR1ZGU8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibGF0RGVjaW1hbFwiIG5hbWU9XCJMYXRpdHVkZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkxhdGl0dWRlXCJcbiAgICAgICAgICAgICAgICBuZy1ibHVyPVwib25MYXRMb25nSW5wdXRDaGFuZ2UoKVwiIG1hc2s9XCJzZXBhcmF0b3IuNlwiIGRlY2ltYWxNYXJrZXI9XCIuXCIgW2FsbG93TmVnYXRpdmVOdW1iZXJzXT1cInRydWVcIiBbZHJvcFNwZWNpYWxDaGFyYWN0ZXJzXT1cImZhbHNlXCIgXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBncm91cFsnY29udHJvbHMnXVsnbGF0RGVjaW1hbCddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiPlxuICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cFsnY29udHJvbHMnXVsnbGF0RGVjaW1hbCddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+TGF0aXR1ZGUgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICA8bGFiZWw+TG9uZ2l0dWRlPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImxvbmdEZWNpbWFsXCIgbmFtZT1cIkxvbmdpdHVkZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkxvbmdpdHVkZVwiXG4gICAgICAgICAgICAgICAgbmctYmx1cj1cIm9uTGF0TG9uZ0lucHV0Q2hhbmdlKClcIiBtYXNrPVwic2VwYXJhdG9yLjZcIiBkZWNpbWFsTWFya2VyPVwiLlwiIFthbGxvd05lZ2F0aXZlTnVtYmVyc109XCJ0cnVlXCIgW2Ryb3BTcGVjaWFsQ2hhcmFjdGVyc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBncm91cFsnY29udHJvbHMnXVsnbG9uZ0RlY2ltYWwnXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIj5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXBbJ2NvbnRyb2xzJ11bJ2xvbmdEZWNpbWFsJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5Mb25naXR1ZGUgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJncm91cFsnY29udHJvbHMnXVsnbGF0RGVjaW1hbCddLnZhbHVlICE9PSAnJyAmJiBncm91cFsnY29udHJvbHMnXVsnbG9uZ0RlY2ltYWwnXS52YWx1ZSAhPT0gJydcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJ6b29tVG9Db29yZGluYXRlcyhncm91cFsnY29udHJvbHMnXVsnbGF0RGVjaW1hbCddLnZhbHVlLGdyb3VwWydjb250cm9scyddWydsb25nRGVjaW1hbCddLnZhbHVlLCBmYWNpbGl0eU1hcClcIj5ab29tIFRvIFRoZXNlIENvb3JkaW5hdGVzPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cImxhdExvbmdDb2xsZWN0aW9uTWV0aG9kcyAmJiBsYXRMb25nQ29sbGVjdGlvbk1ldGhvZHMubGVuZ3RoID4gMFwiIGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWw+Q29sbGVjdGlvbiBNZXRob2Q8L2xhYmVsPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBpZD1cImNvbGxlY3Rpb25NZXRob2RUeXBlXCIgbmFtZT1cImNvbGxlY3Rpb25NZXRob2RUeXBlXCIgZm9ybUNvbnRyb2xOYW1lPVwiY29sbGVjdGlvbk1ldGhvZFR5cGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXBbJ2NvbnRyb2xzJ11bJ2NvbGxlY3Rpb25NZXRob2RUeXBlJ10uc3RhdHVzID09PSAnSU5WQUxJRCd9XCI+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPi0tU2VsZWN0IENvbGxlY3Rpb24gTWV0aG9kLS08L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBuIG9mIGxhdExvbmdDb2xsZWN0aW9uTWV0aG9kc1wiIFtuZ1ZhbHVlXT1cIm4uY29kZVZhbHVlXCI+e3tuLmRlc2NyaXB0aW9ufX08L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwWydjb250cm9scyddWydjb2xsZWN0aW9uTWV0aG9kVHlwZSddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+Q29sbGVjdGlvbiBNZXRob2QgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb29yZHNPdXRzaWRlT2ZPaGlvXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiByb2xlPVwiYWxlcnRcIiAqbmdJZj1cImdyb3VwLmdldCgnYWxsb3dPdXRzaWRlT2ZPaGlvJyk/LnZhbHVlIT09J3llcydcIj5cbiAgICAgICAgICBUaGUgTGF0aXR1ZGUgYW5kIExvbmdpdHVkZSB2YWx1ZXMgZW50ZXJlZCBhcmUgbm90IHdpdGhpbiB0aGUgc3RhdGUgb2YgT2hpby4gUGxlYXNlIGVudGVyIGEgbGF0aXR1ZGUgdmFsdWVcbiAgICAgICAgICBiZXR3ZWVuIDM4IGFuZCA0MiBhbmQgYVxuICAgICAgICAgIGxvbmdpdHVkZSB2YWx1ZSBiZXR3ZWVuIC04NSBhbmQgLTgwIG9yIGluZGljYXRlIGJlbG93IHRoYXQgdGhpcyBsb2NhdGlvbiBpcyBvdXRzaWRlIG9mIE9oaW8uXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxvZXBhLXllcy1ubyBbZ3JvdXBdPVwiZ3JvdXBcIiBmaWVsZD1cImFsbG93T3V0c2lkZU9mT2hpb1wiIGlkPVwiYWxsb3dPdXRzaWRlT2ZPaGlvXCIgW3Nob3dWYWxpZGF0aW9uXT1cInNob3dWYWxpZGF0aW9uXCI+SXNcbiAgICAgICAgICAgIHRoaXMgbG9jYXRpb24gb3V0c2lkZSBvZiBPaGlvPzwvb2VwYS15ZXMtbm8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJvZXBhLWFjdGlvbi1jb21wb25lbnQtNTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwib2VwYS1zZWN0aW9uLWNvbXBvbmVudC1ib2R5XCI+XG4gICAgICA8b2VwYS1lc3JpLW1hcFxuICAgICAgICNmYWNpbGl0eU1hcCBbY2VudGVyXT1cIm1hcENlbnRlclwiXG4gICAgICAgW2Jhc2VtYXBdPVwiYmFzZW1hcFR5cGVcIlxuICAgICAgIFt6b29tXT1cIm1hcFpvb21MZXZlbFwiXG4gICAgICAgKG1hcExvYWRlZCk9XCJtYXBMb2FkZWRFdmVudCgkZXZlbnQpXCJcbiAgICAgICBbY3VycmVudExhdExvbmddPVwiZ3JvdXAudmFsdWVcIlxuICAgICAgIChvbk5ld0Nvb3JkaW5hdGVzKT1cInVwZGF0ZUNvb3JkaW5hdGVzKCRldmVudClcIlxuICAgICAgIFtzaG93U2VhcmNoXT1cImdyb3VwLmVuYWJsZWRcIj5cbiAgICAgIDwvb2VwYS1lc3JpLW1hcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvZm9ybT5cblxuPC9kaXY+Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9wYXJhbWV0ZXIvcGFyYW1ldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb21haW5PYmplY3QgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWViaXotbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXIgZXh0ZW5kcyBEb21haW5PYmplY3Qge1xuICAgIG5hbWUgPzogc3RyaW5nO1xuICAgIHZhbHVlID8gOiBzdHJpbmc7XG4gICAgZGF0YSA/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24gPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common/http";
|
|
4
|
+
export class ParameterService {
|
|
5
|
+
http;
|
|
6
|
+
baseUrl = '/ebiz/api/v1/parameters';
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
}
|
|
10
|
+
retrieveParameterByName(parameterName) {
|
|
11
|
+
let url = this.baseUrl + '/names/' + parameterName;
|
|
12
|
+
return this.http.get(url);
|
|
13
|
+
}
|
|
14
|
+
retrieveParameterByID(parameterID) {
|
|
15
|
+
let url = this.baseUrl + '/' + parameterID;
|
|
16
|
+
return this.http.get(url);
|
|
17
|
+
}
|
|
18
|
+
createParameter(parameter) {
|
|
19
|
+
let url = this.baseUrl;
|
|
20
|
+
return this.http.post(url, parameter);
|
|
21
|
+
}
|
|
22
|
+
deleteParameter(parameterID) {
|
|
23
|
+
let url = this.baseUrl + '/' + parameterID;
|
|
24
|
+
return this.http.delete(url);
|
|
25
|
+
}
|
|
26
|
+
deleteParameterByName(parameterName) {
|
|
27
|
+
let url = this.baseUrl + '/names/' + parameterName;
|
|
28
|
+
return this.http.delete(url);
|
|
29
|
+
}
|
|
30
|
+
retrieveParameterByPrefix(prefix) {
|
|
31
|
+
let url = this.baseUrl + '/namePrefix/' + prefix;
|
|
32
|
+
return this.http.get(url);
|
|
33
|
+
}
|
|
34
|
+
updateParameter(parameter) {
|
|
35
|
+
let url = this.baseUrl + '/' + parameter.id;
|
|
36
|
+
return this.http.put(url, parameter);
|
|
37
|
+
}
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParameterService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParameterService, providedIn: 'root' });
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParameterService, decorators: [{
|
|
42
|
+
type: Injectable,
|
|
43
|
+
args: [{
|
|
44
|
+
providedIn: 'root'
|
|
45
|
+
}]
|
|
46
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3BhcmFtZXRlci9wYXJhbWV0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUdIO0lBRlosT0FBTyxHQUFXLHlCQUF5QixDQUFDO0lBRXRELFlBQXNCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFBSyxDQUFDO0lBRXJDLHVCQUF1QixDQUFDLGFBQXFCO1FBQ2hELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxHQUFHLGFBQWEsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxXQUFtQjtRQUM1QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBWSxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sZUFBZSxDQUFDLFNBQW9CO1FBQ3ZDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBUyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxXQUFtQjtRQUN0QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0scUJBQXFCLENBQUMsYUFBcUI7UUFDOUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLEdBQUcsYUFBYSxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLHlCQUF5QixDQUFDLE1BQWM7UUFDM0MsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLGVBQWUsQ0FBQyxTQUFvQjtRQUN2QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7d0dBdENRLGdCQUFnQjs0R0FBaEIsZ0JBQWdCLGNBRmIsTUFBTTs7NEZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4vcGFyYW1ldGVyJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlclNlcnZpY2Uge1xuICAgIHByb3RlY3RlZCBiYXNlVXJsOiBzdHJpbmcgPSAnL2ViaXovYXBpL3YxL3BhcmFtZXRlcnMnO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQpIHsgIH1cblxuICAgIHB1YmxpYyByZXRyaWV2ZVBhcmFtZXRlckJ5TmFtZShwYXJhbWV0ZXJOYW1lOiBzdHJpbmcpIDogT2JzZXJ2YWJsZTxQYXJhbWV0ZXI+IHtcbiAgICAgICAgbGV0IHVybCA9IHRoaXMuYmFzZVVybCArICcvbmFtZXMvJyArIHBhcmFtZXRlck5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhcmFtZXRlcj4odXJsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmV0cmlldmVQYXJhbWV0ZXJCeUlEKHBhcmFtZXRlcklEOiBzdHJpbmcpIDogT2JzZXJ2YWJsZTxQYXJhbWV0ZXI+IHtcbiAgICAgICAgbGV0IHVybCA9IHRoaXMuYmFzZVVybCArICcvJyArIHBhcmFtZXRlcklEO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQYXJhbWV0ZXI+KHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVBhcmFtZXRlcihwYXJhbWV0ZXI6IFBhcmFtZXRlcikgOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBsZXQgdXJsID0gdGhpcy5iYXNlVXJsO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8c3RyaW5nPih1cmwsIHBhcmFtZXRlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZVBhcmFtZXRlcihwYXJhbWV0ZXJJRDogc3RyaW5nKSA6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnLycgKyBwYXJhbWV0ZXJJRDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodXJsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVsZXRlUGFyYW1ldGVyQnlOYW1lKHBhcmFtZXRlck5hbWU6IHN0cmluZykgOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBsZXQgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9uYW1lcy8nICsgcGFyYW1ldGVyTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodXJsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmV0cmlldmVQYXJhbWV0ZXJCeVByZWZpeChwcmVmaXg6IHN0cmluZykgOiBPYnNlcnZhYmxlPFBhcmFtZXRlcltdPiB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL25hbWVQcmVmaXgvJyArIHByZWZpeDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UGFyYW1ldGVyW10+KHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVBhcmFtZXRlcihwYXJhbWV0ZXI6IFBhcmFtZXRlcikgOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBsZXQgdXJsID0gdGhpcy5iYXNlVXJsICsgJy8nICsgcGFyYW1ldGVyLmlkO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIHBhcmFtZXRlcik7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
4
|
+
import * as i2 from "@angular/common/http";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
export class ParamsHelpButtonComponent {
|
|
7
|
+
router;
|
|
8
|
+
http;
|
|
9
|
+
helpURL = '';
|
|
10
|
+
title = 'Click here for instructions or call (614) 466-0061';
|
|
11
|
+
anchorClass = '';
|
|
12
|
+
constructor(router, http) {
|
|
13
|
+
this.router = router;
|
|
14
|
+
this.http = http;
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
const helpURLParamName = this.router.url.replace(new RegExp('/', 'g'), '.');
|
|
18
|
+
this.http.get('/ebiz/api/v1/gateway/helpURLs/' + helpURLParamName, { responseType: 'text' }).subscribe({
|
|
19
|
+
next: url => {
|
|
20
|
+
if (url && url.length > 0) {
|
|
21
|
+
this.helpURL = url;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log('Help URL was empty for: ' + helpURLParamName);
|
|
25
|
+
}
|
|
26
|
+
}, error: err => {
|
|
27
|
+
console.log('Failed retrieving Help URL for: ' + helpURLParamName + ' - ' + err);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParamsHelpButtonComponent, deps: [{ token: i1.Router }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ParamsHelpButtonComponent, selector: "oepa-params-help-button", inputs: { title: "title", anchorClass: "anchorClass" }, ngImport: i0, template: "<a *ngIf=\"helpURL\" [href]=\"helpURL\" [class]=\"anchorClass\" target=\"_blank\" [title]=\"title\">\n <i class=\"bi bi-question-circle\"></i>\n</a>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParamsHelpButtonComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'oepa-params-help-button', template: "<a *ngIf=\"helpURL\" [href]=\"helpURL\" [class]=\"anchorClass\" target=\"_blank\" [title]=\"title\">\n <i class=\"bi bi-question-circle\"></i>\n</a>\n" }]
|
|
37
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.HttpClient }], propDecorators: { title: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], anchorClass: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLWhlbHAtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGFyYW1zLWhlbHAtYnV0dG9uL3BhcmFtcy1oZWxwLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3BhcmFtcy1oZWxwLWJ1dHRvbi9wYXJhbXMtaGVscC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3pELE1BQU0sT0FBTyx5QkFBeUI7SUFNaEI7SUFBd0I7SUFMckMsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUVuQixLQUFLLEdBQUcsb0RBQW9ELENBQUM7SUFDN0QsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUUxQixZQUFvQixNQUFjLEVBQVUsSUFBZ0I7UUFBeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7SUFBSSxDQUFDO0lBRWpFLFFBQVE7UUFDTixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEdBQUcsZ0JBQWdCLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDckcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNaLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNyQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO1lBQ0gsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxHQUFHLGdCQUFnQixHQUFHLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNuRixDQUFDO1NBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzt3R0FwQlUseUJBQXlCOzRGQUF6Qix5QkFBeUIsdUhDVHRDLHlKQUdBOzs0RkRNYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UseUJBQXlCO29HQU8xQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtcGFyYW1zLWhlbHAtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhcmFtcy1oZWxwLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcmFtcy1oZWxwLWJ1dHRvbi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFyYW1zSGVscEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBoZWxwVVJMOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSB0aXRsZSA9ICdDbGljayBoZXJlIGZvciBpbnN0cnVjdGlvbnMgb3IgY2FsbCAoNjE0KSA0NjYtMDA2MSc7XG4gIEBJbnB1dCgpIGFuY2hvckNsYXNzID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBoZWxwVVJMUGFyYW1OYW1lID0gdGhpcy5yb3V0ZXIudXJsLnJlcGxhY2UobmV3IFJlZ0V4cCgnLycsICdnJyksICcuJyk7XG4gICAgdGhpcy5odHRwLmdldCgnL2ViaXovYXBpL3YxL2dhdGV3YXkvaGVscFVSTHMvJyArIGhlbHBVUkxQYXJhbU5hbWUsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHVybCA9PiB7XG4gICAgICBpZiAodXJsICYmIHVybC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuaGVscFVSTCA9IHVybDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdIZWxwIFVSTCB3YXMgZW1wdHkgZm9yOiAnICsgaGVscFVSTFBhcmFtTmFtZSk7XG4gICAgICB9XG4gICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnRmFpbGVkIHJldHJpZXZpbmcgSGVscCBVUkwgZm9yOiAnICsgaGVscFVSTFBhcmFtTmFtZSArICcgLSAnICsgZXJyKTtcbiAgICB9fSk7XG4gIH1cblxufVxuIiwiPGEgKm5nSWY9XCJoZWxwVVJMXCIgW2hyZWZdPVwiaGVscFVSTFwiIFtjbGFzc109XCJhbmNob3JDbGFzc1wiIHRhcmdldD1cIl9ibGFua1wiIFt0aXRsZV09XCJ0aXRsZVwiPlxuICA8aSBjbGFzcz1cImJpIGJpLXF1ZXN0aW9uLWNpcmNsZVwiPjwvaT5cbjwvYT5cbiJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Component, 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 "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/forms";
|
|
6
|
+
import * as i4 from "ngx-mask";
|
|
7
|
+
export class PhoneNumberComponent {
|
|
8
|
+
idService;
|
|
9
|
+
componentId = 'OepaPhoneNumberComponent';
|
|
10
|
+
/** The form group for which this address is a member. */
|
|
11
|
+
group;
|
|
12
|
+
field = 'phoneNumber';
|
|
13
|
+
/** Form validation will be displayed when showValidation is true. */
|
|
14
|
+
showValidation = false;
|
|
15
|
+
isSearch = false;
|
|
16
|
+
phoneLabel = 'Phone';
|
|
17
|
+
constructor(idService) {
|
|
18
|
+
this.idService = idService;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
if (this.group) {
|
|
22
|
+
this.componentId = this.idService.getComponentId(this.group);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PhoneNumberComponent, deps: [{ token: i1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PhoneNumberComponent, selector: "oepa-phone-number", inputs: { group: "group", field: "field", showValidation: "showValidation", isSearch: "isSearch", phoneLabel: "phoneLabel" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n\t<label>{{phoneLabel}}</label>\n\t<input [type]=\"isSearch ? 'search' : 'text'\" class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls[field].status === 'INVALID'}\"\n\t\tplaceholder=\"(xxx) xxx-xxxx\" [formControlName]=\"field\" [id]=\"componentId+'_PhoneInput'\" mask=\"(000) 000-0000\" minlength=\"10\">\n\t<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].hasError('required')\">{{phoneLabel}} is required</small>\n\t<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].hasError('minlength')\">Please enter a valid phone number</small>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { 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"] }, { kind: "directive", type: i4.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] });
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PhoneNumberComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'oepa-phone-number', template: "<div [formGroup]=\"group\">\n\t<label>{{phoneLabel}}</label>\n\t<input [type]=\"isSearch ? 'search' : 'text'\" class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls[field].status === 'INVALID'}\"\n\t\tplaceholder=\"(xxx) xxx-xxxx\" [formControlName]=\"field\" [id]=\"componentId+'_PhoneInput'\" mask=\"(000) 000-0000\" minlength=\"10\">\n\t<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].hasError('required')\">{{phoneLabel}} is required</small>\n\t<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].hasError('minlength')\">Please enter a valid phone number</small>\n</div>" }]
|
|
31
|
+
}], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: { group: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], field: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], showValidation: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], isSearch: [{
|
|
38
|
+
type: Input,
|
|
39
|
+
args: ['isSearch']
|
|
40
|
+
}], phoneLabel: [{
|
|
41
|
+
type: Input,
|
|
42
|
+
args: ['phoneLabel']
|
|
43
|
+
}] } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVV6RCxNQUFNLE9BQU8sb0JBQW9CO0lBWVg7SUFWYixXQUFXLEdBQUcsMEJBQTBCLENBQUM7SUFDaEQsMERBQTBEO0lBQ2pELEtBQUssQ0FBYTtJQUNsQixLQUFLLEdBQVcsYUFBYSxDQUFDO0lBQ3ZDLHFFQUFxRTtJQUM1RCxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ04sUUFBUSxHQUFZLEtBQUssQ0FBQztJQUV4QixVQUFVLEdBQVcsT0FBTyxDQUFDO0lBRXpELFlBQW9CLFNBQWlDO1FBQWpDLGNBQVMsR0FBVCxTQUFTLENBQXdCO0lBQ3JELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQzt3R0FuQlUsb0JBQW9COzRGQUFwQixvQkFBb0IsdUxDVmpDLHduQkFNTTs7NEZESU8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLG1CQUFtQjsyRkFRcEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNvQixRQUFRO3NCQUFqQyxLQUFLO3VCQUFDLFVBQVU7Z0JBRVcsVUFBVTtzQkFBckMsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE9lcGFDb21wb25lbnRJZFNlcnZpY2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLXBob25lLW51bWJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waG9uZS1udW1iZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBob25lTnVtYmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnT2VwYVBob25lTnVtYmVyQ29tcG9uZW50JztcbiAgLyoqICBUaGUgZm9ybSBncm91cCBmb3Igd2hpY2ggdGhpcyBhZGRyZXNzIGlzIGEgbWVtYmVyLiAqL1xuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZyA9ICdwaG9uZU51bWJlcic7XG4gIC8qKiBGb3JtIHZhbGlkYXRpb24gd2lsbCBiZSBkaXNwbGF5ZWQgd2hlbiBzaG93VmFsaWRhdGlvbiBpcyB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoJ2lzU2VhcmNoJykgcHVibGljIGlzU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdwaG9uZUxhYmVsJykgcHVibGljIHBob25lTGFiZWw6IHN0cmluZyA9ICdQaG9uZSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpZFNlcnZpY2U6IE9lcGFDb21wb25lbnRJZFNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gdGhpcy5pZFNlcnZpY2UuZ2V0Q29tcG9uZW50SWQodGhpcy5ncm91cCk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuXHQ8bGFiZWw+e3twaG9uZUxhYmVsfX08L2xhYmVsPlxuXHQ8aW5wdXQgW3R5cGVdPVwiaXNTZWFyY2ggPyAnc2VhcmNoJyA6ICd0ZXh0J1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBncm91cC5jb250cm9sc1tmaWVsZF0uc3RhdHVzID09PSAnSU5WQUxJRCd9XCJcblx0XHRwbGFjZWhvbGRlcj1cIih4eHgpIHh4eC14eHh4XCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZFwiIFtpZF09XCJjb21wb25lbnRJZCsnX1Bob25lSW5wdXQnXCIgbWFzaz1cIigwMDApIDAwMC0wMDAwXCIgbWlubGVuZ3RoPVwiMTBcIj5cblx0PHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbZmllbGRdLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3twaG9uZUxhYmVsfX0gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuXHQ8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1tmaWVsZF0uaGFzRXJyb3IoJ21pbmxlbmd0aCcpXCI+UGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyPC9zbWFsbD5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1hdHRlc3RhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL29lcGEtYXR0ZXN0YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNsYXNzOiB1cy5vaC5zdGF0ZS5lcGEucG9ydGFsLnNlY3VyaXR5LkF0dGVzdGF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2VwYUF0dGVzdGF0aW9uIHtcbiAgICBpZD86IHN0cmluZztcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBlbmREYXRlPzogRGF0ZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1waW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3Bpbi1tb2RhbC9vZXBhLXBpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2VwYUZvcm1BZGRyZXNzIH0gZnJvbSBcIi4uL2FkZHJlc3Mvb2VwYS1mb3JtLWFkZHJlc3NcIjtcbmltcG9ydCB7IE9lcGFGb3JtQ29udGFjdCB9IGZyb20gXCIuLi9jb250YWN0L29lcGEtZm9ybS1jb250YWN0XCI7XG5pbXBvcnQgeyBPZXBhU2VjdXJpdHlRdWVzdGlvbiB9IGZyb20gXCIuL29lcGEtc2VjdXJpdHktcXVlc3Rpb25cIjtcblxuXG5leHBvcnQgaW50ZXJmYWNlIE9lcGFQaW4ge1xuICAgIHBpbj86IHN0cmluZztcbiAgICBlbmNyeXB0ZWRQaW4/OiBzdHJpbmc7XG4gICAgdHlwZT86IHN0cmluZztcbiAgICB1c2VyaWQ/OiBzdHJpbmc7XG4gICAgc3RhdHVzPzogc3RyaW5nO1xuICAgIHJlcXVlc3RJRD86IHN0cmluZztcbiAgICBwcmludFN0YXR1cz86IHN0cmluZztcbiAgICBwaW5Ib2xkZXI/OiBPZXBhRm9ybUNvbnRhY3Q7XG4gICAgcGluSG9sZGVyQWRkcmVzcz86IE9lcGFGb3JtQWRkcmVzcztcbiAgICBlbmREYXRlPzogRGF0ZTtcbiAgICBxdWVzdGlvbnM/OiBBcnJheTxPZXBhU2VjdXJpdHlRdWVzdGlvbj47XG4gICAgbm90ZXM/OiBzdHJpbmc7XG4gICAga2V5VmVyc2lvbj86IHN0cmluZztcbiAgICBsb2NvdXRDb3VudD86IG51bWJlcjtcblxuICAgIC8vIGlkZW50aXR5IHByb29maW5nIGluZm9cbiAgICBpZGVudGl0eVByb29maW5nU2VjdXJpdHlUb2tlbj86IHN0cmluZztcbiAgICBpZGVudGl0eVByb29maW5nQWN0aXZpdHlJRD86IHN0cmluZztcbiAgICBwaW5Ib2xkZXJEYXRlT2ZCaXJ0aD86IERhdGU7XG4gICAgcGluSG9sZGVyTGFzdEZvdXJPZlNTTj86IHN0cmluZztcblxuICAgIC8vIHBpbiBhY3RpdmF0aW9uIGluZm9cbiAgICByYW5kb21TZWN1cml0eVF1ZXN0aW9uPzogT2VwYVNlY3VyaXR5UXVlc3Rpb247XG4gICAgdXNlckVudGVyZWRTZWN1cml0eUFuc3dlcj86IHN0cmluZztcbiAgICB1c2VyRW50ZXJlZFBpbj86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common/http";
|
|
4
|
+
export class OepaPinService {
|
|
5
|
+
http;
|
|
6
|
+
pinsUrl = '/ebiz/api/v1/pins';
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Retrieve an attestation by id.
|
|
12
|
+
* @param attestationID
|
|
13
|
+
*/
|
|
14
|
+
retrieveAttestationByID(attestationID) {
|
|
15
|
+
return this.http.get(this.pinsUrl + '/attestationId/' + attestationID);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Retrieve an attestation of the specified type.
|
|
19
|
+
* @param attestationType
|
|
20
|
+
*/
|
|
21
|
+
retrieveAttestation(attestationType) {
|
|
22
|
+
return this.http.get(this.pinsUrl + '/attestation/' + attestationType);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Retrieve a random security question for the current user.
|
|
26
|
+
*/
|
|
27
|
+
retrieveSecurityQuestion() {
|
|
28
|
+
return this.http.get(this.pinsUrl + '/securityQuestion');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Validate the pin entered by a user.
|
|
32
|
+
* @param pin
|
|
33
|
+
*/
|
|
34
|
+
validate(pin) {
|
|
35
|
+
return this.http.post(this.pinsUrl + '/validate', pin);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
* @param userID Retrieve the Pin for the specified userID
|
|
40
|
+
* @returns OepaPin
|
|
41
|
+
*/
|
|
42
|
+
retrievePin(userID) {
|
|
43
|
+
return this.http.get(this.pinsUrl + '/' + userID);
|
|
44
|
+
}
|
|
45
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OepaPinService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OepaPinService, providedIn: 'root' });
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OepaPinService, decorators: [{
|
|
49
|
+
type: Injectable,
|
|
50
|
+
args: [{
|
|
51
|
+
providedIn: 'root'
|
|
52
|
+
}]
|
|
53
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1waW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL29lcGEtcGluLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBWTNDLE1BQU0sT0FBTyxjQUFjO0lBR0w7SUFGWixPQUFPLEdBQUcsbUJBQW1CLENBQUM7SUFFdEMsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksdUJBQXVCLENBQUMsYUFBcUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsR0FBRyxhQUFhLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksbUJBQW1CLENBQUMsZUFBdUI7UUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXVCLElBQUksQ0FBQyxPQUFPLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxDQUFDLEdBQVk7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVSxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxNQUFjO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVUsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQzt3R0E1Q1UsY0FBYzs0R0FBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPZXBhQXR0ZXN0YXRpb24gfSBmcm9tICcuL29lcGEtYXR0ZXN0YXRpb24nO1xuaW1wb3J0IHsgT2VwYVNlY3VyaXR5UXVlc3Rpb24gfSBmcm9tICcuL29lcGEtc2VjdXJpdHktcXVlc3Rpb24nO1xuaW1wb3J0IHsgT2VwYVBpbiB9IGZyb20gJy4vb2VwYS1waW4nO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9lcGFQaW5TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwaW5zVXJsID0gJy9lYml6L2FwaS92MS9waW5zJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbiBhdHRlc3RhdGlvbiBieSBpZC5cbiAgICogQHBhcmFtIGF0dGVzdGF0aW9uSURcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZUF0dGVzdGF0aW9uQnlJRChhdHRlc3RhdGlvbklEOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFBdHRlc3RhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9lcGFBdHRlc3RhdGlvbj4odGhpcy5waW5zVXJsICsgJy9hdHRlc3RhdGlvbklkLycgKyBhdHRlc3RhdGlvbklEKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbiBhdHRlc3RhdGlvbiBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAqIEBwYXJhbSBhdHRlc3RhdGlvblR5cGVcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZUF0dGVzdGF0aW9uKGF0dGVzdGF0aW9uVHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxPZXBhQXR0ZXN0YXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPZXBhQXR0ZXN0YXRpb24+KHRoaXMucGluc1VybCArICcvYXR0ZXN0YXRpb24vJyArIGF0dGVzdGF0aW9uVHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgYSByYW5kb20gc2VjdXJpdHkgcXVlc3Rpb24gZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmVTZWN1cml0eVF1ZXN0aW9uKCk6IE9ic2VydmFibGU8T2VwYVNlY3VyaXR5UXVlc3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPZXBhU2VjdXJpdHlRdWVzdGlvbj4odGhpcy5waW5zVXJsICsgJy9zZWN1cml0eVF1ZXN0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIHBpbiBlbnRlcmVkIGJ5IGEgdXNlci5cbiAgICogQHBhcmFtIHBpblxuICAgKi9cbiAgcHVibGljIHZhbGlkYXRlKHBpbjogT2VwYVBpbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxib29sZWFuPih0aGlzLnBpbnNVcmwgKyAnL3ZhbGlkYXRlJywgcGluKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcbiAgICogQHBhcmFtIHVzZXJJRCBSZXRyaWV2ZSB0aGUgUGluIGZvciB0aGUgc3BlY2lmaWVkIHVzZXJJRFxuICAgKiBAcmV0dXJucyBPZXBhUGluXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmVQaW4odXNlcklEOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFQaW4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPZXBhUGluPih0aGlzLnBpbnNVcmwgKyAnLycgKyB1c2VySUQpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1zZWN1cml0eS1xdWVzdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL29lcGEtc2VjdXJpdHktcXVlc3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNsYXNzOiB1cy5vaC5zdGF0ZS5lcGEucG9ydGFsLnNlY3VyaXR5LlNlY3VyaXR5UXVlc3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZXBhU2VjdXJpdHlRdWVzdGlvbiB7XG4gICAgcXVlc3Rpb25JRD86IHN0cmluZztcbiAgICBxdWVzdGlvbj86IHN0cmluZztcbiAgICBhbnN3ZXI/OiBzdHJpbmc7XG59XG4iXX0=
|