@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
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# OepaUiLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project oepa-ui-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project oepa-ui-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project oepa-ui-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build oepa-ui-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build oepa-ui-lib`, go to the dist folder `cd dist/oepa-ui-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test oepa-ui-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import { mergeMap, map } from 'rxjs/operators';
|
|
5
|
+
import { AccountSearchModalComponent } from '../account-search-modal/account-search-modal.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ohioepa/oepa-common-lib";
|
|
8
|
+
import * as i2 from "ngx-bootstrap/modal";
|
|
9
|
+
import * as i3 from "@angular/common/http";
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
11
|
+
import * as i5 from "@angular/forms";
|
|
12
|
+
import * as i6 from "ngx-bootstrap/typeahead";
|
|
13
|
+
export class AccountSearchInputComponent {
|
|
14
|
+
idService;
|
|
15
|
+
modalService;
|
|
16
|
+
http;
|
|
17
|
+
nameSearch = '';
|
|
18
|
+
nameSource;
|
|
19
|
+
componentId;
|
|
20
|
+
errorMessage;
|
|
21
|
+
searching;
|
|
22
|
+
group;
|
|
23
|
+
userID;
|
|
24
|
+
field;
|
|
25
|
+
title = 'Account';
|
|
26
|
+
searchURL = '/ebiz/api/v1/accounts/revenuesSearch';
|
|
27
|
+
errorMessageAddendum = '';
|
|
28
|
+
rowLayout = false;
|
|
29
|
+
accountSelected = new EventEmitter();
|
|
30
|
+
constructor(idService, modalService, http) {
|
|
31
|
+
this.idService = idService;
|
|
32
|
+
this.modalService = modalService;
|
|
33
|
+
this.http = http;
|
|
34
|
+
this.nameSource = new Observable((observer) => {
|
|
35
|
+
observer.next(this.group.get(this.field)?.value);
|
|
36
|
+
}).pipe(mergeMap((token) => this.searchAccounts(token)));
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.componentId = this.idService.getComponentId(this.group);
|
|
40
|
+
if (this.userID) {
|
|
41
|
+
const filter = {
|
|
42
|
+
userID: this.userID
|
|
43
|
+
};
|
|
44
|
+
this.searching = true;
|
|
45
|
+
this.searchAccountsFromDB(filter).subscribe({
|
|
46
|
+
next: accountList => {
|
|
47
|
+
if (accountList && accountList.length == 1) {
|
|
48
|
+
this.loadAccountInForm(accountList[0]);
|
|
49
|
+
}
|
|
50
|
+
else if (accountList.length > 1) {
|
|
51
|
+
accountList.forEach(account => {
|
|
52
|
+
if (account.userID === this.userID) {
|
|
53
|
+
this.loadAccountInForm(account);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.errorMessage = 'An initialization error occurred: No accounts wih id: ' + this.userID;
|
|
59
|
+
}
|
|
60
|
+
this.searching = false;
|
|
61
|
+
}, error: err => {
|
|
62
|
+
this.searching = false;
|
|
63
|
+
this.errorMessage = 'An initialization error occurred: ' + err;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
this.group.get(this.field)?.valueChanges.subscribe(value => {
|
|
68
|
+
if (!value || value === '') {
|
|
69
|
+
this.accountSelected.emit(undefined);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
onAccountSelect(e) {
|
|
74
|
+
if (e.item) {
|
|
75
|
+
this.loadAccountInForm(e.item);
|
|
76
|
+
this.accountSelected.emit(e.item);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
loadAccountInForm(account) {
|
|
80
|
+
let data = {};
|
|
81
|
+
data[this.field] = account ? (account.userID + ' - ' + account.firstName + ' ' + account.lastName || ''
|
|
82
|
+
+ (account.company ? ' (' + account.company + ')' : '')) : '';
|
|
83
|
+
if (account) {
|
|
84
|
+
this.group.patchValue(data);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
searchAccounts(token) {
|
|
88
|
+
this.errorMessage = undefined;
|
|
89
|
+
this.searching = true;
|
|
90
|
+
const filter = {
|
|
91
|
+
userID: token
|
|
92
|
+
};
|
|
93
|
+
return this.searchAccountsFromDB(filter).pipe(map((accounts) => {
|
|
94
|
+
this.searching = false;
|
|
95
|
+
return accounts;
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
searchAccountsFromDB(filter) {
|
|
99
|
+
const headers = new HttpHeaders();
|
|
100
|
+
headers.append('Content-Type', 'application/json');
|
|
101
|
+
const url = this.searchURL;
|
|
102
|
+
console.log('URL: ' + url);
|
|
103
|
+
return this.http.post(url, filter, { headers: headers, responseType: 'json' });
|
|
104
|
+
}
|
|
105
|
+
advancedSearch() {
|
|
106
|
+
console.log('URL: ' + this.searchURL);
|
|
107
|
+
const initialState = {
|
|
108
|
+
searchURL: this.searchURL
|
|
109
|
+
};
|
|
110
|
+
let modal = this.modalService.show(AccountSearchModalComponent, { initialState, class: 'modal-lg', ignoreBackdropClick: true });
|
|
111
|
+
modal.content.onAccountSelected.subscribe(account => {
|
|
112
|
+
this.loadAccountInForm(account);
|
|
113
|
+
this.accountSelected.emit(account);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountSearchInputComponent, deps: [{ token: i1.OepaComponentIdService }, { token: i2.BsModalService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
117
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AccountSearchInputComponent, selector: "oepa-account-search-input", inputs: { group: "group", userID: "userID", field: "field", title: "title", searchURL: "searchURL", errorMessageAddendum: "errorMessageAddendum", rowLayout: "rowLayout" }, outputs: { accountSelected: "accountSelected" }, ngImport: i0, template: "<div [formGroup]=\"group\" class=\"form-group\" [ngClass]=\"{'row text-right': rowLayout}\">\n <ng-template #accountTemplate let-model=\"item\" let-index=\"index\">\n <h5>{{ (model.userID || '') +\n (' - ' + model.firstName + ' ' + model.lastName + (model.company ? ' (' + model.company + ')' : '')) }}</h5>\n </ng-template>\n <label [ngClass]=\"{'col-sm-4 col-form-label': rowLayout}\">\n {{title}}\n <span *ngIf=\"searching\" class=\"spinner-border text-primary\" role=\"status\"></span>\n <a id=\"AdvancedSearch\" href=\"javascript:void(0)\" (click)=\"advancedSearch()\">Advanced Search</a>\n </label>\n <div [ngClass]=\"{'col-sm-8': rowLayout}\">\n <input class=\"form-control\" type=\"search\"\n [ngClass]=\"{'is-invalid':group.controls[field].status === 'INVALID', 'col-sm-8': rowLayout}\"\n [formControlName]=\"field\" [typeahead]=\"nameSource\" [typeaheadScrollable]=\"true\"\n (typeaheadOnSelect)=\"onAccountSelect($event)\" [id]=\"componentId + '_AccountSearch'\"\n [typeaheadItemTemplate]=\"accountTemplate\" [typeaheadMinLength]=\"3\" placeholder=\"Search Account\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field]?.hasError('required')\">{{title}} is required\n {{errorMessageAddendum}}</small>\n </div>\n</div>\n<div *ngIf=\"errorMessage\" class=\"alert alert-danger\">\n {{errorMessage}}\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.TypeaheadDirective, selector: "[typeahead]", inputs: ["typeahead", "typeaheadMinLength", "adaptivePosition", "isAnimated", "typeaheadWaitMs", "typeaheadOptionsLimit", "typeaheadOptionField", "typeaheadGroupField", "typeaheadOrderBy", "typeaheadAsync", "typeaheadLatinize", "typeaheadSingleWords", "typeaheadWordDelimiters", "typeaheadMultipleSearch", "typeaheadMultipleSearchDelimiters", "typeaheadPhraseDelimiters", "typeaheadItemTemplate", "optionsListTemplate", "typeaheadScrollable", "typeaheadOptionsInScrollableView", "typeaheadHideResultsOnBlur", "typeaheadSelectFirstItem", "typeaheadIsFirstItemActive", "container", "dropup"], outputs: ["typeaheadLoading", "typeaheadNoResults", "typeaheadOnSelect", "typeaheadOnPreview", "typeaheadOnBlur"], exportAs: ["bs-typeahead"] }] });
|
|
118
|
+
}
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountSearchInputComponent, decorators: [{
|
|
120
|
+
type: Component,
|
|
121
|
+
args: [{ selector: 'oepa-account-search-input', template: "<div [formGroup]=\"group\" class=\"form-group\" [ngClass]=\"{'row text-right': rowLayout}\">\n <ng-template #accountTemplate let-model=\"item\" let-index=\"index\">\n <h5>{{ (model.userID || '') +\n (' - ' + model.firstName + ' ' + model.lastName + (model.company ? ' (' + model.company + ')' : '')) }}</h5>\n </ng-template>\n <label [ngClass]=\"{'col-sm-4 col-form-label': rowLayout}\">\n {{title}}\n <span *ngIf=\"searching\" class=\"spinner-border text-primary\" role=\"status\"></span>\n <a id=\"AdvancedSearch\" href=\"javascript:void(0)\" (click)=\"advancedSearch()\">Advanced Search</a>\n </label>\n <div [ngClass]=\"{'col-sm-8': rowLayout}\">\n <input class=\"form-control\" type=\"search\"\n [ngClass]=\"{'is-invalid':group.controls[field].status === 'INVALID', 'col-sm-8': rowLayout}\"\n [formControlName]=\"field\" [typeahead]=\"nameSource\" [typeaheadScrollable]=\"true\"\n (typeaheadOnSelect)=\"onAccountSelect($event)\" [id]=\"componentId + '_AccountSearch'\"\n [typeaheadItemTemplate]=\"accountTemplate\" [typeaheadMinLength]=\"3\" placeholder=\"Search Account\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field]?.hasError('required')\">{{title}} is required\n {{errorMessageAddendum}}</small>\n </div>\n</div>\n<div *ngIf=\"errorMessage\" class=\"alert alert-danger\">\n {{errorMessage}}\n</div>" }]
|
|
122
|
+
}], ctorParameters: () => [{ type: i1.OepaComponentIdService }, { type: i2.BsModalService }, { type: i3.HttpClient }], propDecorators: { group: [{
|
|
123
|
+
type: Input,
|
|
124
|
+
args: ['group']
|
|
125
|
+
}], userID: [{
|
|
126
|
+
type: Input,
|
|
127
|
+
args: ['userID']
|
|
128
|
+
}], field: [{
|
|
129
|
+
type: Input,
|
|
130
|
+
args: ['field']
|
|
131
|
+
}], title: [{
|
|
132
|
+
type: Input,
|
|
133
|
+
args: ['title']
|
|
134
|
+
}], searchURL: [{
|
|
135
|
+
type: Input,
|
|
136
|
+
args: ['searchURL']
|
|
137
|
+
}], errorMessageAddendum: [{
|
|
138
|
+
type: Input,
|
|
139
|
+
args: ['errorMessageAddendum']
|
|
140
|
+
}], rowLayout: [{
|
|
141
|
+
type: Input,
|
|
142
|
+
args: ['rowLayout']
|
|
143
|
+
}], accountSelected: [{
|
|
144
|
+
type: Output,
|
|
145
|
+
args: ['accountSelected']
|
|
146
|
+
}] } });
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZWFyY2gtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9hY2NvdW50LXNlYXJjaC1pbnB1dC9hY2NvdW50LXNlYXJjaC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjY291bnQtc2VhcmNoLWlucHV0L2FjY291bnQtc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFhLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7Ozs7QUFPckcsTUFBTSxPQUFPLDJCQUEyQjtJQWlCbEI7SUFDVjtJQUNBO0lBbEJWLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIsVUFBVSxDQUF3QjtJQUNsQyxXQUFXLENBQVU7SUFDckIsWUFBWSxDQUFzQjtJQUNsQyxTQUFTLENBQVc7SUFFSixLQUFLLENBQWE7SUFDakIsTUFBTSxDQUFVO0lBQ2pCLEtBQUssQ0FBVTtJQUNmLEtBQUssR0FBVyxTQUFTLENBQUM7SUFDdEIsU0FBUyxHQUFXLHNDQUFzQyxDQUFDO0lBQ2hELG9CQUFvQixHQUFHLEVBQUUsQ0FBQztJQUNyQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRVgsZUFBZSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBRWhHLFlBQW9CLFNBQWlDLEVBQzNDLFlBQTRCLEVBQzVCLElBQWdCO1FBRk4sY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDM0MsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxNQUFNLEdBQVk7Z0JBQ3RCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTthQUNwQixDQUFBO1lBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFFdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDMUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUFFO29CQUNwQixJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUMzQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3pDLENBQUM7eUJBQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNsQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFOzRCQUM1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dDQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7NEJBQ2xDLENBQUM7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsd0RBQXdELEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDN0YsQ0FBQztvQkFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDekIsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxvQ0FBb0MsR0FBRyxHQUFHLENBQUM7Z0JBQ2pFLENBQUM7YUFBQyxDQUFDLENBQUM7UUFDTixDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxlQUFlLENBQUMsQ0FBaUI7UUFDdEMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQWdCO1FBQ3hDLElBQUksSUFBSSxHQUFPLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUU7Y0FDbkcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsS0FBVTtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBWTtZQUN0QixNQUFNLEVBQUUsS0FBSztTQUNkLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxNQUFlO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHO1lBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDO1FBQ0YsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQy9GLEtBQUssQ0FBQyxPQUFRLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBM0dVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLDhSQ2hCeEMsbTdDQXNCTTs7NEZETk8sMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDJCQUEyQjtpSkFXckIsS0FBSztzQkFBcEIsS0FBSzt1QkFBQyxPQUFPO2dCQUNHLE1BQU07c0JBQXRCLEtBQUs7dUJBQUMsUUFBUTtnQkFDQyxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBQ0UsS0FBSztzQkFBcEIsS0FBSzt1QkFBQyxPQUFPO2dCQUNNLFNBQVM7c0JBQTVCLEtBQUs7dUJBQUMsV0FBVztnQkFDYSxvQkFBb0I7c0JBQWxELEtBQUs7dUJBQUMsc0JBQXNCO2dCQUNULFNBQVM7c0JBQTVCLEtBQUs7dUJBQUMsV0FBVztnQkFFUyxlQUFlO3NCQUF6QyxNQUFNO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEhlYWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFR5cGVhaGVhZE1hdGNoIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90eXBlYWhlYWQnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWViaXotbGliJztcbmltcG9ydCB7IEFjY291bnRTZWFyY2hNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2FjY291bnQtc2VhcmNoLW1vZGFsL2FjY291bnQtc2VhcmNoLW1vZGFsLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtYWNjb3VudC1zZWFyY2gtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3VudC1zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY2NvdW50LXNlYXJjaC1pbnB1dC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudFNlYXJjaElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbmFtZVNlYXJjaCA9ICcnO1xuICBuYW1lU291cmNlOiBPYnNlcnZhYmxlPEFjY291bnRbXT47XG4gIGNvbXBvbmVudElkITogc3RyaW5nO1xuICBlcnJvck1lc3NhZ2UhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHNlYXJjaGluZyE6IGJvb2xlYW47XG5cbiAgQElucHV0KCdncm91cCcpIGdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoJ3VzZXJJRCcpIHVzZXJJRCE6IHN0cmluZztcbiAgQElucHV0KCdmaWVsZCcpIGZpZWxkITogc3RyaW5nO1xuICBASW5wdXQoJ3RpdGxlJykgdGl0bGU6IHN0cmluZyA9ICdBY2NvdW50JztcbiAgQElucHV0KCdzZWFyY2hVUkwnKSBzZWFyY2hVUkw6IHN0cmluZyA9ICcvZWJpei9hcGkvdjEvYWNjb3VudHMvcmV2ZW51ZXNTZWFyY2gnO1xuICBASW5wdXQoJ2Vycm9yTWVzc2FnZUFkZGVuZHVtJykgZXJyb3JNZXNzYWdlQWRkZW5kdW0gPSAnJztcbiAgQElucHV0KCdyb3dMYXlvdXQnKSByb3dMYXlvdXQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCdhY2NvdW50U2VsZWN0ZWQnKSBhY2NvdW50U2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxBY2NvdW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWNjb3VudD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlkU2VydmljZTogT2VwYUNvbXBvbmVudElkU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgICB0aGlzLm5hbWVTb3VyY2UgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLmdyb3VwLmdldCh0aGlzLmZpZWxkKT8udmFsdWUpO1xuICAgICAgfSkucGlwZShtZXJnZU1hcCgodG9rZW46IGFueSkgPT4gdGhpcy5zZWFyY2hBY2NvdW50cyh0b2tlbikpKTtcbiAgICAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29tcG9uZW50SWQgPSB0aGlzLmlkU2VydmljZS5nZXRDb21wb25lbnRJZCh0aGlzLmdyb3VwKTtcbiAgICBpZiAodGhpcy51c2VySUQpIHtcbiAgICAgIGNvbnN0IGZpbHRlcjogQWNjb3VudCA9IHtcbiAgICAgICAgdXNlcklEOiB0aGlzLnVzZXJJRFxuICAgICAgfVxuICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xuICAgICAgXG4gICAgICB0aGlzLnNlYXJjaEFjY291bnRzRnJvbURCKGZpbHRlcikuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogYWNjb3VudExpc3QgPT4ge1xuICAgICAgICBpZiAoYWNjb3VudExpc3QgJiYgYWNjb3VudExpc3QubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICB0aGlzLmxvYWRBY2NvdW50SW5Gb3JtKGFjY291bnRMaXN0WzBdKTtcbiAgICAgICAgfSBlbHNlIGlmIChhY2NvdW50TGlzdC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgYWNjb3VudExpc3QuZm9yRWFjaChhY2NvdW50ID0+IHtcbiAgICAgICAgICAgIGlmIChhY2NvdW50LnVzZXJJRCA9PT0gdGhpcy51c2VySUQpIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkQWNjb3VudEluRm9ybShhY2NvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdBbiBpbml0aWFsaXphdGlvbiBlcnJvciBvY2N1cnJlZDogTm8gYWNjb3VudHMgd2loIGlkOiAnICsgdGhpcy51c2VySUQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcbiAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdBbiBpbml0aWFsaXphdGlvbiBlcnJvciBvY2N1cnJlZDogJyArIGVycjtcbiAgICAgIH19KTtcbiAgICB9XG4gICAgdGhpcy5ncm91cC5nZXQodGhpcy5maWVsZCk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgdGhpcy5hY2NvdW50U2VsZWN0ZWQuZW1pdCh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uQWNjb3VudFNlbGVjdChlOiBUeXBlYWhlYWRNYXRjaCkge1xuICAgIGlmIChlLml0ZW0pIHtcbiAgICAgIHRoaXMubG9hZEFjY291bnRJbkZvcm0oZS5pdGVtKTtcbiAgICAgIHRoaXMuYWNjb3VudFNlbGVjdGVkLmVtaXQoZS5pdGVtKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRBY2NvdW50SW5Gb3JtKGFjY291bnQ6IEFjY291bnQpIHtcbiAgICBsZXQgZGF0YTphbnkgPSB7fTtcbiAgICBkYXRhW3RoaXMuZmllbGRdID0gYWNjb3VudCA/IChhY2NvdW50LnVzZXJJRCArICcgLSAnICsgYWNjb3VudC5maXJzdE5hbWUgKyAnICcgKyBhY2NvdW50Lmxhc3ROYW1lIHx8ICcnXG4gICAgICArIChhY2NvdW50LmNvbXBhbnkgPyAnICgnICsgYWNjb3VudC5jb21wYW55ICsgJyknIDogJycpKSA6ICcnO1xuICAgIGlmIChhY2NvdW50KSB7XG4gICAgICB0aGlzLmdyb3VwLnBhdGNoVmFsdWUoZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hBY2NvdW50cyh0b2tlbjogYW55KTogT2JzZXJ2YWJsZTxBY2NvdW50W10+IHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XG4gICAgY29uc3QgZmlsdGVyOiBBY2NvdW50ID0ge1xuICAgICAgdXNlcklEOiB0b2tlblxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZWFyY2hBY2NvdW50c0Zyb21EQihmaWx0ZXIpLnBpcGUoXG4gICAgICBtYXAoKGFjY291bnRzKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBhY2NvdW50cztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hBY2NvdW50c0Zyb21EQihmaWx0ZXI6IEFjY291bnQpOiBPYnNlcnZhYmxlPEFjY291bnRbXT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnNlYXJjaFVSTDtcbiAgICBjb25zb2xlLmxvZygnVVJMOiAnICsgdXJsKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QWNjb3VudFtdPih1cmwsIGZpbHRlciwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZHZhbmNlZFNlYXJjaCgpIHtcbiAgICBjb25zb2xlLmxvZygnVVJMOiAnICsgdGhpcy5zZWFyY2hVUkwpO1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIHNlYXJjaFVSTDogdGhpcy5zZWFyY2hVUkxcbiAgICB9O1xuICAgIGxldCBtb2RhbCA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coQWNjb3VudFNlYXJjaE1vZGFsQ29tcG9uZW50LCB7aW5pdGlhbFN0YXRlLCBjbGFzczogJ21vZGFsLWxnJyxpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlfSk7XG4gICAgKDxBY2NvdW50U2VhcmNoTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkub25BY2NvdW50U2VsZWN0ZWQuc3Vic2NyaWJlKGFjY291bnQgPT4ge1xuICAgICAgdGhpcy5sb2FkQWNjb3VudEluRm9ybShhY2NvdW50KTtcbiAgICAgIHRoaXMuYWNjb3VudFNlbGVjdGVkLmVtaXQoYWNjb3VudCk7XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydyb3cgdGV4dC1yaWdodCc6IHJvd0xheW91dH1cIj5cbiAgICA8bmctdGVtcGxhdGUgI2FjY291bnRUZW1wbGF0ZSBsZXQtbW9kZWw9XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICAgICAgPGg1Pnt7IChtb2RlbC51c2VySUQgfHwgJycpICtcbiAgICAgICAgICAgICgnIC0gJyArIG1vZGVsLmZpcnN0TmFtZSArICcgJyArIG1vZGVsLmxhc3ROYW1lICsgKG1vZGVsLmNvbXBhbnkgPyAnICgnICsgbW9kZWwuY29tcGFueSArICcpJyA6ICcnKSkgfX08L2g1PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGxhYmVsIFtuZ0NsYXNzXT1cInsnY29sLXNtLTQgY29sLWZvcm0tbGFiZWwnOiByb3dMYXlvdXR9XCI+XG4gICAgICAgIHt7dGl0bGV9fVxuICAgICAgICA8c3BhbiAqbmdJZj1cInNlYXJjaGluZ1wiIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj5cbiAgICAgICAgPGEgaWQ9XCJBZHZhbmNlZFNlYXJjaFwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiYWR2YW5jZWRTZWFyY2goKVwiPkFkdmFuY2VkIFNlYXJjaDwvYT5cbiAgICA8L2xhYmVsPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydjb2wtc20tOCc6IHJvd0xheW91dH1cIj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOmdyb3VwLmNvbnRyb2xzW2ZpZWxkXS5zdGF0dXMgPT09ICdJTlZBTElEJywgJ2NvbC1zbS04Jzogcm93TGF5b3V0fVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkXCIgW3R5cGVhaGVhZF09XCJuYW1lU291cmNlXCIgW3R5cGVhaGVhZFNjcm9sbGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAodHlwZWFoZWFkT25TZWxlY3QpPVwib25BY2NvdW50U2VsZWN0KCRldmVudClcIiBbaWRdPVwiY29tcG9uZW50SWQgKyAnX0FjY291bnRTZWFyY2gnXCJcbiAgICAgICAgICAgIFt0eXBlYWhlYWRJdGVtVGVtcGxhdGVdPVwiYWNjb3VudFRlbXBsYXRlXCIgW3R5cGVhaGVhZE1pbkxlbmd0aF09XCIzXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggQWNjb3VudFwiPlxuICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1tmaWVsZF0/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3t0aXRsZX19IGlzIHJlcXVpcmVkXG4gICAgICAgICAgICB7e2Vycm9yTWVzc2FnZUFkZGVuZHVtfX08L3NtYWxsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj5cbiAgICB7e2Vycm9yTWVzc2FnZX19XG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { Component, Output, EventEmitter, Input } from '@angular/core';
|
|
2
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/forms";
|
|
5
|
+
import * as i2 from "ngx-bootstrap/modal";
|
|
6
|
+
import * as i3 from "@angular/common/http";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
import * as i5 from "ngx-bootstrap/accordion";
|
|
9
|
+
import * as i6 from "../table/table.component";
|
|
10
|
+
export class AccountSearchModalComponent {
|
|
11
|
+
fb;
|
|
12
|
+
bsModalRef;
|
|
13
|
+
http;
|
|
14
|
+
modalFormGroup;
|
|
15
|
+
errorMessage;
|
|
16
|
+
inProgressMsg;
|
|
17
|
+
filter;
|
|
18
|
+
selectedAccount;
|
|
19
|
+
openSearchCriteria = true;
|
|
20
|
+
tableData = [];
|
|
21
|
+
tableHeader = undefined;
|
|
22
|
+
tableConfig = {
|
|
23
|
+
rowsPerPage: 5,
|
|
24
|
+
classNames: ['table-striped', 'table-bordered', 'table-sm']
|
|
25
|
+
};
|
|
26
|
+
searchURL = '/ebiz/api/v1/accounts/revenuesSearch';
|
|
27
|
+
onAccountSelected = new EventEmitter();
|
|
28
|
+
constructor(fb, bsModalRef, http) {
|
|
29
|
+
this.fb = fb;
|
|
30
|
+
this.bsModalRef = bsModalRef;
|
|
31
|
+
this.http = http;
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
this.createForm();
|
|
35
|
+
}
|
|
36
|
+
createForm() {
|
|
37
|
+
this.modalFormGroup = this.fb.group({
|
|
38
|
+
userID: '',
|
|
39
|
+
firstName: '',
|
|
40
|
+
lastName: ''
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
getFilterFromForm() {
|
|
44
|
+
let filter = {
|
|
45
|
+
userID: this.modalFormGroup.get('userID')?.value,
|
|
46
|
+
firstName: this.modalFormGroup.get('firstName')?.value,
|
|
47
|
+
lastName: this.modalFormGroup.get('lastName')?.value
|
|
48
|
+
};
|
|
49
|
+
return filter;
|
|
50
|
+
}
|
|
51
|
+
filterIsEmpty(filter) {
|
|
52
|
+
let empty = true;
|
|
53
|
+
if (filter.userID && filter.userID.length > 0) {
|
|
54
|
+
empty = false;
|
|
55
|
+
}
|
|
56
|
+
if (filter.firstName && filter.firstName.length > 0) {
|
|
57
|
+
empty = false;
|
|
58
|
+
}
|
|
59
|
+
if (filter.lastName && filter.lastName.length > 0) {
|
|
60
|
+
empty = false;
|
|
61
|
+
}
|
|
62
|
+
return empty;
|
|
63
|
+
}
|
|
64
|
+
submitSearch() {
|
|
65
|
+
console.log("SEAARCH");
|
|
66
|
+
this.errorMessage = undefined;
|
|
67
|
+
let filter = this.getFilterFromForm();
|
|
68
|
+
if (this.filterIsEmpty(filter)) {
|
|
69
|
+
this.errorMessage = 'Please specify search criteria';
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
this.inProgressMsg = 'Searching...';
|
|
73
|
+
this.tableData = [];
|
|
74
|
+
this.buildTableHeader();
|
|
75
|
+
this.searchAccountsFromDB(filter).subscribe({
|
|
76
|
+
next: accounts => {
|
|
77
|
+
this.inProgressMsg = undefined;
|
|
78
|
+
if (accounts && accounts.length > 0) {
|
|
79
|
+
this.openSearchCriteria = false;
|
|
80
|
+
accounts.forEach(account => {
|
|
81
|
+
let row = this.convertAccountToTableRow(account);
|
|
82
|
+
this.tableData.push(row);
|
|
83
|
+
this.tableData = this.tableData.slice();
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.openSearchCriteria = true;
|
|
88
|
+
this.errorMessage = 'No ebiz accounts found matching search criteria.';
|
|
89
|
+
}
|
|
90
|
+
}, error: (error) => {
|
|
91
|
+
this.inProgressMsg = undefined;
|
|
92
|
+
this.errorMessage = 'Search Failed: ' + error;
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
buildTableHeader() {
|
|
97
|
+
this.tableHeader = {
|
|
98
|
+
columns: [
|
|
99
|
+
{ title: '', id: 'select', sort: 'none', singleSelectColumn: true, className: 'select-col' },
|
|
100
|
+
{ title: 'User ID', id: 'userID', sort: 'none', filterable: true },
|
|
101
|
+
{ title: 'First Name', id: 'firstName', sort: 'none', filterable: true },
|
|
102
|
+
{ title: 'Last Name', id: 'lastName', sort: 'none', filterable: true },
|
|
103
|
+
{ title: 'Company', id: 'company', sort: 'none', filterable: true }
|
|
104
|
+
]
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
convertAccountToTableRow(account) {
|
|
108
|
+
let cells = [
|
|
109
|
+
{ id: 'userID', value: account.userID },
|
|
110
|
+
{ id: 'firstName', value: account.firstName },
|
|
111
|
+
{ id: 'lastName', value: account.lastName },
|
|
112
|
+
{ id: 'company', value: account.company }
|
|
113
|
+
];
|
|
114
|
+
return {
|
|
115
|
+
cells: cells,
|
|
116
|
+
dataSource: account,
|
|
117
|
+
selectable: true
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
resetSearch() {
|
|
121
|
+
this.openSearchCriteria = true;
|
|
122
|
+
this.modalFormGroup.reset();
|
|
123
|
+
this.tableData = [];
|
|
124
|
+
}
|
|
125
|
+
onRowSelect(event) {
|
|
126
|
+
this.selectedAccount = event[0].dataSource;
|
|
127
|
+
}
|
|
128
|
+
save() {
|
|
129
|
+
this.onAccountSelected.emit(this.selectedAccount);
|
|
130
|
+
this.bsModalRef.hide();
|
|
131
|
+
}
|
|
132
|
+
searchAccountsFromDB(filter) {
|
|
133
|
+
const headers = new HttpHeaders();
|
|
134
|
+
headers.append('Content-Type', 'application/json');
|
|
135
|
+
const url = this.searchURL;
|
|
136
|
+
console.log('URL: ' + url);
|
|
137
|
+
return this.http.post(url, filter, { headers: headers, responseType: 'json' });
|
|
138
|
+
}
|
|
139
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountSearchModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.BsModalRef }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
140
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AccountSearchModalComponent, selector: "oepa-account-search-modal", inputs: { searchURL: "searchURL" }, outputs: { onAccountSelected: "onAccountSelected" }, ngImport: i0, template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">Advanced Ebiz Account Search</h4>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n </button>\n</div>\n<div class=\"modal-body\">\n <accordion>\n <accordion-group panelClass=\"panel-info\" #searchGroup [isOpen]=\"openSearchCriteria\">\n <div accordion-heading>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <i class=\"float-xs-right bi\" id=\"accountSearchCriteria\" name=\"accountSearchCriteria\" \n [ngClass]=\"{'bi-chevron-down': searchGroup?.isOpen, 'bi-chevron-right': !searchGroup?.isOpen}\"></i>\n <b>Ebiz Account Search Criteria</b>\n </div>\n </div>\n </div>\n <form [formGroup]=\"modalFormGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Ebiz User ID</label>\n <input type=\"search\" class=\"form-control\" id=\"userUIDInput\" formControlName=\"userID\">\n </div>\n </div>\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>First Name</label>\n <input type=\"search\" class=\"form-control\" id=\"firstNameInput\" formControlName=\"firstName\">\n </div>\n </div>\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Last Name</label>\n <input type=\"search\" class=\"form-control\" id=\"lastNameInput\" formControlName=\"lastName\">\n </div>\n </div>\n </div>\n \n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <span *ngIf=\"inProgressMsg\" class=\"spinner-border text-primary\" role=\"status\"></span>\n <button *ngIf=\"!inProgressMsg\" type=\"submit\" class=\"btn btn-primary mr-2\" id=\"submitSearchBtn\" (click)=\"submitSearch()\">Search</button>\n <button id=\"resetSearchBtn\" type=\"button\" class=\"btn btn-primary\" (click)=\"resetSearch()\">Reset</button>\n </div>\n </div>\n </form>\n </accordion-group>\n </accordion>\n <div *ngIf=\"tableData && tableData.length > 0\" class=\"card\">\n <div class=\"card-header\">\n <b>Ebiz Account List </b><span class=\"badge bg-secondary\">{{tableData.length}}</span>\n </div>\n <div class=\"card-body\" *ngIf=\"tableHeader\">\n <oepa-table tableId=\"accountSearchTable\" [config]=\"tableConfig\" [data]=\"tableData\" [header]=\"tableHeader\" (rowSelected)=\"onRowSelect($event)\">\n </oepa-table>\n </div>\n </div>\n</div>\n<div class=\"modal-footer d-block\">\n <div *ngIf=\"errorMessage\">\n <div class=\"alert alert-danger\">\n {{errorMessage}}\n </div>\n </div>\n <div *ngIf=\"inProgressMsg\">\n <div class=\"alert alert-info\">\n {{inProgressMsg}}\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <button type=\"button\" class=\"btn btn-primary mr-2\"\n id=\"SaveAccountBtn\"\n [disabled]=\"!selectedAccount || inProgressMsg\"\n (click)=\"save()\">Save</button>\n <button id=\"CancelPaymentBtn\" type=\"button\" class=\"btn btn-primary\"\n (click)=\"bsModalRef.hide()\">Cancel</button>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.AccordionComponent, selector: "accordion", inputs: ["isAnimated", "closeOthers"] }, { kind: "component", type: i5.AccordionPanelComponent, selector: "accordion-group, accordion-panel", inputs: ["heading", "panelClass", "isDisabled", "isOpen"], outputs: ["isOpenChange"] }, { kind: "component", type: i6.TableComponent, selector: "oepa-table", inputs: ["tableId", "config", "complexHeader", "header", "customBtnLabel", "customBtnVisible", "customBtnEnabled", "data", "totalRow"], outputs: ["cellClicked", "actionClicked", "rowSelected", "customBtnClicked"] }] });
|
|
141
|
+
}
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountSearchModalComponent, decorators: [{
|
|
143
|
+
type: Component,
|
|
144
|
+
args: [{ selector: 'oepa-account-search-modal', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">Advanced Ebiz Account Search</h4>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n </button>\n</div>\n<div class=\"modal-body\">\n <accordion>\n <accordion-group panelClass=\"panel-info\" #searchGroup [isOpen]=\"openSearchCriteria\">\n <div accordion-heading>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <i class=\"float-xs-right bi\" id=\"accountSearchCriteria\" name=\"accountSearchCriteria\" \n [ngClass]=\"{'bi-chevron-down': searchGroup?.isOpen, 'bi-chevron-right': !searchGroup?.isOpen}\"></i>\n <b>Ebiz Account Search Criteria</b>\n </div>\n </div>\n </div>\n <form [formGroup]=\"modalFormGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Ebiz User ID</label>\n <input type=\"search\" class=\"form-control\" id=\"userUIDInput\" formControlName=\"userID\">\n </div>\n </div>\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>First Name</label>\n <input type=\"search\" class=\"form-control\" id=\"firstNameInput\" formControlName=\"firstName\">\n </div>\n </div>\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Last Name</label>\n <input type=\"search\" class=\"form-control\" id=\"lastNameInput\" formControlName=\"lastName\">\n </div>\n </div>\n </div>\n \n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <span *ngIf=\"inProgressMsg\" class=\"spinner-border text-primary\" role=\"status\"></span>\n <button *ngIf=\"!inProgressMsg\" type=\"submit\" class=\"btn btn-primary mr-2\" id=\"submitSearchBtn\" (click)=\"submitSearch()\">Search</button>\n <button id=\"resetSearchBtn\" type=\"button\" class=\"btn btn-primary\" (click)=\"resetSearch()\">Reset</button>\n </div>\n </div>\n </form>\n </accordion-group>\n </accordion>\n <div *ngIf=\"tableData && tableData.length > 0\" class=\"card\">\n <div class=\"card-header\">\n <b>Ebiz Account List </b><span class=\"badge bg-secondary\">{{tableData.length}}</span>\n </div>\n <div class=\"card-body\" *ngIf=\"tableHeader\">\n <oepa-table tableId=\"accountSearchTable\" [config]=\"tableConfig\" [data]=\"tableData\" [header]=\"tableHeader\" (rowSelected)=\"onRowSelect($event)\">\n </oepa-table>\n </div>\n </div>\n</div>\n<div class=\"modal-footer d-block\">\n <div *ngIf=\"errorMessage\">\n <div class=\"alert alert-danger\">\n {{errorMessage}}\n </div>\n </div>\n <div *ngIf=\"inProgressMsg\">\n <div class=\"alert alert-info\">\n {{inProgressMsg}}\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <button type=\"button\" class=\"btn btn-primary mr-2\"\n id=\"SaveAccountBtn\"\n [disabled]=\"!selectedAccount || inProgressMsg\"\n (click)=\"save()\">Save</button>\n <button id=\"CancelPaymentBtn\" type=\"button\" class=\"btn btn-primary\"\n (click)=\"bsModalRef.hide()\">Cancel</button>\n </div>\n </div>\n</div>" }]
|
|
145
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.BsModalRef }, { type: i3.HttpClient }], propDecorators: { searchURL: [{
|
|
146
|
+
type: Input,
|
|
147
|
+
args: ['searchURL']
|
|
148
|
+
}], onAccountSelected: [{
|
|
149
|
+
type: Output
|
|
150
|
+
}] } });
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZWFyY2gtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9hY2NvdW50LXNlYXJjaC1tb2RhbC9hY2NvdW50LXNlYXJjaC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjY291bnQtc2VhcmNoLW1vZGFsL2FjY291bnQtc2VhcmNoLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPL0UsT0FBTyxFQUFFLFdBQVcsRUFBYyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVEvRCxNQUFNLE9BQU8sMkJBQTJCO0lBbUJsQjtJQUF3QjtJQUFnQztJQWxCckUsY0FBYyxDQUFhO0lBQzNCLFlBQVksQ0FBc0I7SUFDbEMsYUFBYSxDQUFzQjtJQUNuQyxNQUFNLENBQVc7SUFDakIsZUFBZSxDQUFXO0lBQzFCLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUUxQixTQUFTLEdBQXdCLEVBQUUsQ0FBQztJQUNwQyxXQUFXLEdBQWdDLFNBQVMsQ0FBQztJQUNyRCxXQUFXLEdBQW9CO1FBQ3BDLFdBQVcsRUFBRSxDQUFDO1FBQ2QsVUFBVSxFQUFFLENBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQztLQUM5RCxDQUFDO0lBRWtCLFNBQVMsR0FBVyxzQ0FBc0MsQ0FBQztJQUVyRSxpQkFBaUIsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUUvRSxZQUFvQixFQUFlLEVBQVMsVUFBc0IsRUFBVSxJQUFnQjtRQUF4RSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFV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RUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO3dHQXhJVSwyQkFBMkI7NEZBQTNCLDJCQUEyQiwwSkNmeEMsbzhIQWdGTTs7NEZEakVPLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwyQkFBMkI7a0lBbUJuQixTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBRVIsaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IE9lcGFUYWJsZVJvdyB9IGZyb20gJy4uL3RhYmxlL29lcGEtdGFibGUtcm93JztcbmltcG9ydCB7IE9lcGFUYWJsZUhlYWRlciB9IGZyb20gJy4uL3RhYmxlL29lcGEtdGFibGUtaGVhZGVyJztcbmltcG9ydCB7IE9lcGFUYWJsZUNvbmZpZyB9IGZyb20gJy4uL3RhYmxlL29lcGEtdGFibGUtY29uZmlnJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBIZWFkZXJzLCBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWNjb3VudCB9IGZyb20gJ0BvaGlvZXBhL29lcGEtZWJpei1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWFjY291bnQtc2VhcmNoLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY291bnQtc2VhcmNoLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWNjb3VudC1zZWFyY2gtbW9kYWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRTZWFyY2hNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBtb2RhbEZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcbiAgcHVibGljIGVycm9yTWVzc2FnZSE6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGluUHJvZ3Jlc3NNc2chOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBmaWx0ZXIhOiBBY2NvdW50O1xuICBwdWJsaWMgc2VsZWN0ZWRBY2NvdW50ITogQWNjb3VudDtcbiAgcHVibGljIG9wZW5TZWFyY2hDcml0ZXJpYSA9IHRydWU7XG5cbiAgcHVibGljIHRhYmxlRGF0YTogQXJyYXk8T2VwYVRhYmxlUm93PiA9IFtdO1xuICBwdWJsaWMgdGFibGVIZWFkZXI6IE9lcGFUYWJsZUhlYWRlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHVibGljIHRhYmxlQ29uZmlnOiBPZXBhVGFibGVDb25maWcgPSB7XG4gICAgcm93c1BlclBhZ2U6IDUsXG4gICAgY2xhc3NOYW1lczogWyd0YWJsZS1zdHJpcGVkJywgJ3RhYmxlLWJvcmRlcmVkJywgJ3RhYmxlLXNtJ11cbn07XG5cbkBJbnB1dCgnc2VhcmNoVVJMJykgc2VhcmNoVVJMOiBzdHJpbmcgPSAnL2ViaXovYXBpL3YxL2FjY291bnRzL3JldmVudWVzU2VhcmNoJztcblxuQE91dHB1dCgpIG9uQWNjb3VudFNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8QWNjb3VudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjY291bnQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyBic01vZGFsUmVmOiBCc01vZGFsUmVmLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMubW9kYWxGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHVzZXJJRDogJycsXG4gICAgICBmaXJzdE5hbWU6ICcnLFxuICAgICAgbGFzdE5hbWU6ICcnXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbHRlckZyb21Gb3JtKCk6IEFjY291bnQge1xuICAgIGxldCBmaWx0ZXI6IEFjY291bnQgPSB7XG4gICAgICB1c2VySUQ6IHRoaXMubW9kYWxGb3JtR3JvdXAuZ2V0KCd1c2VySUQnKT8udmFsdWUsXG4gICAgICBmaXJzdE5hbWU6IHRoaXMubW9kYWxGb3JtR3JvdXAuZ2V0KCdmaXJzdE5hbWUnKT8udmFsdWUsXG4gICAgICBsYXN0TmFtZTogdGhpcy5tb2RhbEZvcm1Hcm91cC5nZXQoJ2xhc3ROYW1lJyk/LnZhbHVlIFxuICAgIH07XG4gICAgcmV0dXJuIGZpbHRlcjtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVySXNFbXB0eShmaWx0ZXI6IEFjY291bnQpOiBib29sZWFuIHtcbiAgICBsZXQgZW1wdHkgPSB0cnVlO1xuICAgIGlmIChmaWx0ZXIudXNlcklEICYmIGZpbHRlci51c2VySUQubGVuZ3RoID4gMCkge1xuICAgICAgZW1wdHkgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGZpbHRlci5maXJzdE5hbWUgJiYgZmlsdGVyLmZpcnN0TmFtZS5sZW5ndGggPiAwKSB7XG4gICAgICBlbXB0eSA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoZmlsdGVyLmxhc3ROYW1lICYmIGZpbHRlci5sYXN0TmFtZS5sZW5ndGggPiAwKSB7XG4gICAgICBlbXB0eSA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZW1wdHk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0U2VhcmNoKCkge1xuICAgIGNvbnNvbGUubG9nKFwiU0VBQVJDSFwiKVxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdW5kZWZpbmVkO1xuICAgIGxldCBmaWx0ZXIgPSB0aGlzLmdldEZpbHRlckZyb21Gb3JtKCk7XG4gICAgaWYgKHRoaXMuZmlsdGVySXNFbXB0eShmaWx0ZXIpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdQbGVhc2Ugc3BlY2lmeSBzZWFyY2ggY3JpdGVyaWEnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluUHJvZ3Jlc3NNc2cgPSAnU2VhcmNoaW5nLi4uJztcbiAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xuICAgIHRoaXMuYnVpbGRUYWJsZUhlYWRlcigpO1xuICAgIHRoaXMuc2VhcmNoQWNjb3VudHNGcm9tREIoZmlsdGVyKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogYWNjb3VudHMgPT4ge1xuICAgICAgdGhpcy5pblByb2dyZXNzTXNnID0gdW5kZWZpbmVkO1xuICAgICAgaWYgKGFjY291bnRzICYmIGFjY291bnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5vcGVuU2VhcmNoQ3JpdGVyaWEgPSBmYWxzZTtcbiAgICAgICAgYWNjb3VudHMuZm9yRWFjaChhY2NvdW50ID0+IHtcbiAgICAgICAgICBsZXQgcm93ID0gdGhpcy5jb252ZXJ0QWNjb3VudFRvVGFibGVSb3coYWNjb3VudCk7XG4gICAgICAgICAgdGhpcy50YWJsZURhdGEucHVzaChyb3cpO1xuICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZURhdGEuc2xpY2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9wZW5TZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ05vIGViaXogYWNjb3VudHMgZm91bmQgbWF0Y2hpbmcgc2VhcmNoIGNyaXRlcmlhLic7XG4gICAgICB9XG4gICAgfSwgZXJyb3I6KGVycm9yKSA9PiB7XG4gICAgICB0aGlzLmluUHJvZ3Jlc3NNc2cgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdTZWFyY2ggRmFpbGVkOiAnICsgZXJyb3I7XG4gICAgfX0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFRhYmxlSGVhZGVyKCl7XG4gICAgICB0aGlzLnRhYmxlSGVhZGVyID0ge1xuICAgICAgICBjb2x1bW5zOiBbXG4gICAgICAgICAgICB7IHRpdGxlOiAnJywgaWQ6ICdzZWxlY3QnLCBzb3J0OiAnbm9uZScsIHNpbmdsZVNlbGVjdENvbHVtbjogdHJ1ZSwgY2xhc3NOYW1lOiAnc2VsZWN0LWNvbCcgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdVc2VyIElEJywgaWQ6ICd1c2VySUQnLCBzb3J0OiAnbm9uZScsIGZpbHRlcmFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdGaXJzdCBOYW1lJywgaWQ6ICdmaXJzdE5hbWUnLCBzb3J0OiAnbm9uZScsIGZpbHRlcmFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdMYXN0IE5hbWUnLCBpZDogJ2xhc3ROYW1lJywgc29ydDogJ25vbmUnLCBmaWx0ZXJhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IHRpdGxlOiAnQ29tcGFueScsIGlkOiAnY29tcGFueScsIHNvcnQ6ICdub25lJywgZmlsdGVyYWJsZTogdHJ1ZSB9ICBcbiAgICAgICAgXVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRBY2NvdW50VG9UYWJsZVJvdyhhY2NvdW50OiBBY2NvdW50KTogT2VwYVRhYmxlUm93IHtcbiAgICAgIGxldCBjZWxsczpBcnJheTxhbnk+PSBbXG4gICAgICAgIHsgaWQ6ICd1c2VySUQnLCB2YWx1ZTogYWNjb3VudC51c2VySUQgfSxcbiAgICAgICAgeyBpZDogJ2ZpcnN0TmFtZScsIHZhbHVlOiBhY2NvdW50LmZpcnN0TmFtZSB9LFxuICAgICAgICB7IGlkOiAnbGFzdE5hbWUnLCB2YWx1ZTogYWNjb3VudC5sYXN0TmFtZSB9LFxuICAgICAgICB7IGlkOiAnY29tcGFueScsIHZhbHVlOiBhY2NvdW50LmNvbXBhbnkgfVxuICAgICAgXTtcblxuICAgIHJldHVybiB7XG4gICAgICBjZWxsczogY2VsbHMsXG4gICAgICBkYXRhU291cmNlOiBhY2NvdW50LFxuICAgICAgc2VsZWN0YWJsZTogdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldFNlYXJjaCgpIHtcbiAgICB0aGlzLm9wZW5TZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gICAgdGhpcy5tb2RhbEZvcm1Hcm91cC5yZXNldCgpO1xuICAgIHRoaXMudGFibGVEYXRhID0gW107XG4gIH1cblxuICBwdWJsaWMgb25Sb3dTZWxlY3QoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRBY2NvdW50ID0gZXZlbnRbMF0uZGF0YVNvdXJjZTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlKCkge1xuICAgIHRoaXMub25BY2NvdW50U2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkQWNjb3VudCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hBY2NvdW50c0Zyb21EQihmaWx0ZXI6IEFjY291bnQpOiBPYnNlcnZhYmxlPEFjY291bnRbXT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnNlYXJjaFVSTDtcbiAgICBjb25zb2xlLmxvZygnVVJMOiAnICsgdXJsKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QWNjb3VudFtdPih1cmwsIGZpbHRlciwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlIHB1bGwtbGVmdFwiPkFkdmFuY2VkIEViaXogQWNjb3VudCBTZWFyY2g8L2g0PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlIGZsb2F0LWVuZFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJic01vZGFsUmVmLmhpZGUoKVwiPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICA8YWNjb3JkaW9uPlxuICAgICAgICAgICAgPGFjY29yZGlvbi1ncm91cCBwYW5lbENsYXNzPVwicGFuZWwtaW5mb1wiICNzZWFyY2hHcm91cCBbaXNPcGVuXT1cIm9wZW5TZWFyY2hDcml0ZXJpYVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgYWNjb3JkaW9uLWhlYWRpbmc+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmxvYXQteHMtcmlnaHQgYmlcIiBpZD1cImFjY291bnRTZWFyY2hDcml0ZXJpYVwiIG5hbWU9XCJhY2NvdW50U2VhcmNoQ3JpdGVyaWFcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2JpLWNoZXZyb24tZG93bic6IHNlYXJjaEdyb3VwPy5pc09wZW4sICdiaS1jaGV2cm9uLXJpZ2h0JzogIXNlYXJjaEdyb3VwPy5pc09wZW59XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj5FYml6IEFjY291bnQgU2VhcmNoIENyaXRlcmlhPC9iPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwibW9kYWxGb3JtR3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkViaXogVXNlciBJRDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJzZWFyY2hcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwidXNlclVJRElucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlcklEXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkZpcnN0IE5hbWU8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwic2VhcmNoXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImZpcnN0TmFtZUlucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3ROYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkxhc3QgTmFtZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJzZWFyY2hcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwibGFzdE5hbWVJbnB1dFwiIGZvcm1Db250cm9sTmFtZT1cImxhc3ROYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImluUHJvZ3Jlc3NNc2dcIiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWluUHJvZ3Jlc3NNc2dcIiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMlwiIGlkPVwic3VibWl0U2VhcmNoQnRuXCIgKGNsaWNrKT1cInN1Ym1pdFNlYXJjaCgpXCI+U2VhcmNoPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwicmVzZXRTZWFyY2hCdG5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwicmVzZXRTZWFyY2goKVwiPlJlc2V0PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPC9hY2NvcmRpb24tZ3JvdXA+XG4gICAgICAgIDwvYWNjb3JkaW9uPlxuICAgIDxkaXYgKm5nSWY9XCJ0YWJsZURhdGEgJiYgdGFibGVEYXRhLmxlbmd0aCA+IDBcIiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICA8Yj5FYml6IEFjY291bnQgTGlzdCZuYnNwOzwvYj48c3BhbiBjbGFzcz1cImJhZGdlIGJnLXNlY29uZGFyeVwiPnt7dGFibGVEYXRhLmxlbmd0aH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiICpuZ0lmPVwidGFibGVIZWFkZXJcIj5cbiAgICAgICAgICAgIDxvZXBhLXRhYmxlIHRhYmxlSWQ9XCJhY2NvdW50U2VhcmNoVGFibGVcIiBbY29uZmlnXT1cInRhYmxlQ29uZmlnXCIgW2RhdGFdPVwidGFibGVEYXRhXCIgW2hlYWRlcl09XCJ0YWJsZUhlYWRlclwiIChyb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdCgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L29lcGEtdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyIGQtYmxvY2tcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj5cbiAgICAgICAgICAgIHt7ZXJyb3JNZXNzYWdlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImluUHJvZ3Jlc3NNc2dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIj5cbiAgICAgICAgICAgIHt7aW5Qcm9ncmVzc01zZ319XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMlwiXG4gICAgICAgICAgICAgICAgaWQ9XCJTYXZlQWNjb3VudEJ0blwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZEFjY291bnQgfHwgaW5Qcm9ncmVzc01zZ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiPlNhdmU8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gaWQ9XCJDYW5jZWxQYXltZW50QnRuXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYnNNb2RhbFJlZi5oaWRlKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "ngx-bootstrap/dropdown";
|
|
6
|
+
/**
|
|
7
|
+
* A dropdown button with a list of actions.
|
|
8
|
+
*/
|
|
9
|
+
export class ActionBtnComponent {
|
|
10
|
+
sanitizer;
|
|
11
|
+
busy = false;
|
|
12
|
+
/** Button label */
|
|
13
|
+
label = 'Actions';
|
|
14
|
+
/** Unique id for this button */
|
|
15
|
+
btnId = '';
|
|
16
|
+
/** Data to be passed to emitter */
|
|
17
|
+
data;
|
|
18
|
+
/** List of actions for this button */
|
|
19
|
+
actions = [];
|
|
20
|
+
/** Make button "normal" size (default is btn-sm) */
|
|
21
|
+
normalSize = false;
|
|
22
|
+
/** dropup? */
|
|
23
|
+
dropup = false;
|
|
24
|
+
/** Event emitted when an action is selected */
|
|
25
|
+
actionClicked = new EventEmitter();
|
|
26
|
+
constructor(sanitizer) {
|
|
27
|
+
this.sanitizer = sanitizer;
|
|
28
|
+
}
|
|
29
|
+
sanitize(html) {
|
|
30
|
+
return this.sanitizer.bypassSecurityTrustHtml(html);
|
|
31
|
+
}
|
|
32
|
+
onActionClicked(action) {
|
|
33
|
+
const data = this.data;
|
|
34
|
+
this.actionClicked.emit({
|
|
35
|
+
action: action,
|
|
36
|
+
data: data,
|
|
37
|
+
buttonObj: this
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
setBusy() {
|
|
41
|
+
this.busy = true;
|
|
42
|
+
}
|
|
43
|
+
clearBusy() {
|
|
44
|
+
this.busy = false;
|
|
45
|
+
}
|
|
46
|
+
getID() {
|
|
47
|
+
return this.btnId + '_ActionBtn';
|
|
48
|
+
}
|
|
49
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionBtnComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionBtnComponent, selector: "oepa-action-btn", inputs: { label: "label", btnId: "btnId", data: "data", actions: "actions", normalSize: "normalSize", dropup: "dropup" }, outputs: { actionClicked: "actionClicked" }, ngImport: i0, template: "<div *ngIf=\"actions && actions.length > 0\" class=\"btn-group\" dropdown [dropup]=\"dropup\">\n <button dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\" [ngClass]=\"{ 'btn-sm' : !normalSize }\"\n [id]=\"btnId+'_ActionBtn'\">\n <span *ngIf=\"busy\" class=\"spinner-border text-primary\" role=\"status\"></span>\n {{label}} \n <span class=\"caret\"></span>\n </button>\n\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right\" role=\"menu\">\n <li *ngFor=\"let action of actions; let i = index;\" role=\"menuitem\">\n <a *ngIf=\"!busy\" class=\"dropdown-item\" (click)=\"onActionClicked(action)\" [id]=\"btnId+'_ActionLink_'+i\">\n <i ngClass=\"{{action.className || ''}}\"></i> {{action.title}}\n </a>\n </li>\n </ul>\n</div> \n<!-- display disabled button if no actions are available -->\n<div *ngIf=\"!actions || actions.length === 0\">\n <button type=\"button\" class=\"btn btn-primary\" [ngClass]=\"{ 'btn-sm' : !normalSize }\" [id]=\"btnId+'_ActionBtn'\" disabled>\n N/A \n </button>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i3.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i3.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }] });
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionBtnComponent, decorators: [{
|
|
53
|
+
type: Component,
|
|
54
|
+
args: [{ selector: 'oepa-action-btn', template: "<div *ngIf=\"actions && actions.length > 0\" class=\"btn-group\" dropdown [dropup]=\"dropup\">\n <button dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\" [ngClass]=\"{ 'btn-sm' : !normalSize }\"\n [id]=\"btnId+'_ActionBtn'\">\n <span *ngIf=\"busy\" class=\"spinner-border text-primary\" role=\"status\"></span>\n {{label}} \n <span class=\"caret\"></span>\n </button>\n\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right\" role=\"menu\">\n <li *ngFor=\"let action of actions; let i = index;\" role=\"menuitem\">\n <a *ngIf=\"!busy\" class=\"dropdown-item\" (click)=\"onActionClicked(action)\" [id]=\"btnId+'_ActionLink_'+i\">\n <i ngClass=\"{{action.className || ''}}\"></i> {{action.title}}\n </a>\n </li>\n </ul>\n</div> \n<!-- display disabled button if no actions are available -->\n<div *ngIf=\"!actions || actions.length === 0\">\n <button type=\"button\" class=\"btn btn-primary\" [ngClass]=\"{ 'btn-sm' : !normalSize }\" [id]=\"btnId+'_ActionBtn'\" disabled>\n N/A \n </button>\n</div>" }]
|
|
55
|
+
}], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { label: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], btnId: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], data: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], actions: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], normalSize: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], dropup: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], actionClicked: [{
|
|
68
|
+
type: Output
|
|
69
|
+
}] } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vYWN0aW9uLWJ0bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vYWN0aW9uLWJ0bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU12RTs7R0FFRztBQU1ILE1BQU0sT0FBTyxrQkFBa0I7SUFtQlQ7SUFsQnBCLElBQUksR0FBRyxLQUFLLENBQUM7SUFFYixtQkFBbUI7SUFDVixLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQzNCLGdDQUFnQztJQUN2QixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLG1DQUFtQztJQUMxQixJQUFJLENBQU07SUFDbkIsc0NBQXNDO0lBQzdCLE9BQU8sR0FBc0IsRUFBRSxDQUFDO0lBQ3pDLG9EQUFvRDtJQUMzQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzVCLGNBQWM7SUFDTCxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRXhCLCtDQUErQztJQUNyQyxhQUFhLEdBQWtDLElBQUksWUFBWSxFQUFFLENBQUM7SUFFNUUsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFJLENBQUM7SUFFekMsUUFBUSxDQUFDLElBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxlQUFlLENBQUMsTUFBa0I7UUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFTSxLQUFLO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO3dHQTVDVSxrQkFBa0I7NEZBQWxCLGtCQUFrQiw4TkNkL0Isa2tDQXFCTTs7NEZEUE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGlCQUFpQjtpRkFRbEIsS0FBSztzQkFBYixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBPZXBhQWN0aW9uIH0gZnJvbSAnLi9vZXBhLWFjdGlvbic7XG5pbXBvcnQgeyBPZXBhQWN0aW9uRXZlbnQgfSBmcm9tICcuL29lcGEtYWN0aW9uLWV2ZW50JztcblxuLyoqXG4gKiBBIGRyb3Bkb3duIGJ1dHRvbiB3aXRoIGEgbGlzdCBvZiBhY3Rpb25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWFjdGlvbi1idG4nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWJ0bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1idG4uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkJ0bkNvbXBvbmVudCB7XG4gIGJ1c3kgPSBmYWxzZTtcblxuICAvKiogQnV0dG9uIGxhYmVsICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJ0FjdGlvbnMnO1xuICAvKiogVW5pcXVlIGlkIGZvciB0aGlzIGJ1dHRvbiAqL1xuICBASW5wdXQoKSBidG5JZCA9ICcnO1xuICAvKiogRGF0YSB0byBiZSBwYXNzZWQgdG8gZW1pdHRlciAqL1xuICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gIC8qKiBMaXN0IG9mIGFjdGlvbnMgZm9yIHRoaXMgYnV0dG9uICovXG4gIEBJbnB1dCgpIGFjdGlvbnM6IEFycmF5PE9lcGFBY3Rpb24+ID0gW107XG4gIC8qKiBNYWtlIGJ1dHRvbiBcIm5vcm1hbFwiIHNpemUgKGRlZmF1bHQgaXMgYnRuLXNtKSAqL1xuICBASW5wdXQoKSBub3JtYWxTaXplID0gZmFsc2U7XG4gIC8qKiBkcm9wdXA/ICovXG4gIEBJbnB1dCgpIGRyb3B1cCA9IGZhbHNlO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYW4gYWN0aW9uIGlzIHNlbGVjdGVkICovXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8T2VwYUFjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7IH1cblxuICBwdWJsaWMgc2FuaXRpemUoaHRtbDogc3RyaW5nKTogU2FmZUh0bWwge1xuICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpO1xuICB9XG5cbiAgcHVibGljIG9uQWN0aW9uQ2xpY2tlZChhY3Rpb246IE9lcGFBY3Rpb24pOiB2b2lkIHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGE7XG4gICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7IFxuICAgICAgICBhY3Rpb246IGFjdGlvbiwgXG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJ1dHRvbk9iajogdGhpc1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0QnVzeSgpIHtcbiAgICB0aGlzLmJ1c3kgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQnVzeSgpIHtcbiAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJRCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJ0bklkICsgJ19BY3Rpb25CdG4nO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJhY3Rpb25zICYmIGFjdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiYnRuLWdyb3VwXCIgZHJvcGRvd24gW2Ryb3B1cF09XCJkcm9wdXBcIj5cbiAgPGJ1dHRvbiBkcm9wZG93blRvZ2dsZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgZHJvcGRvd24tdG9nZ2xlXCIgW25nQ2xhc3NdPVwieyAnYnRuLXNtJyA6ICFub3JtYWxTaXplIH1cIlxuICAgIFtpZF09XCJidG5JZCsnX0FjdGlvbkJ0bidcIj5cbiAgICA8c3BhbiAqbmdJZj1cImJ1c3lcIiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj48L3NwYW4+XG4gICAge3tsYWJlbH19IFxuICAgIDxzcGFuIGNsYXNzPVwiY2FyZXRcIj48L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDx1bCAqZHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXJpZ2h0XCIgcm9sZT1cIm1lbnVcIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnM7IGxldCBpID0gaW5kZXg7XCIgcm9sZT1cIm1lbnVpdGVtXCI+XG4gICAgICAgICAgPGEgKm5nSWY9XCIhYnVzeVwiIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJvbkFjdGlvbkNsaWNrZWQoYWN0aW9uKVwiIFtpZF09XCJidG5JZCsnX0FjdGlvbkxpbmtfJytpXCI+XG4gICAgICAgICAgICA8aSBuZ0NsYXNzPVwie3thY3Rpb24uY2xhc3NOYW1lIHx8ICcnfX1cIj48L2k+IHt7YWN0aW9uLnRpdGxlfX1cbiAgICAgICAgICA8L2E+XG4gICAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+IFxuPCEtLSBkaXNwbGF5IGRpc2FibGVkIGJ1dHRvbiBpZiBubyBhY3Rpb25zIGFyZSBhdmFpbGFibGUgLS0+XG48ZGl2ICpuZ0lmPVwiIWFjdGlvbnMgfHwgYWN0aW9ucy5sZW5ndGggPT09IDBcIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiBbbmdDbGFzc109XCJ7ICdidG4tc20nIDogIW5vcm1hbFNpemUgfVwiIFtpZF09XCJidG5JZCsnX0FjdGlvbkJ0bidcIiBkaXNhYmxlZD5cbiAgICBOL0EgXG4gIDwvYnV0dG9uPlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1hY3Rpb24tZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vb2VwYS1hY3Rpb24tZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9lcGFBY3Rpb24gfSBmcm9tICcuL29lcGEtYWN0aW9uJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgZGVzY3JpYmluZyB0aGUgZGF0YSBwYXNzZWQgdG8gYW4gYWN0aW9uIGNsaWNrIGV2ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9lcGFBY3Rpb25FdmVudCB7XG4gICAgLyoqXG4gICAgICogRGVmaW5pdGlvbiBvZiB0aGUgQWN0aW9uL1xuICAgICAqL1xuICAgIGFjdGlvbjogT2VwYUFjdGlvbjtcbiAgICAvKipcbiAgICAgKiBEYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWN0aW9uLiBGb3IgYSB0YWJsZSBhY3Rpb24sIHRoaXMgd2lsbCBiZSB0aGUgcm93J3MgZGF0YVNvdXJjZSBwcm9wZXJ0eS5cbiAgICAgKi9cbiAgICBkYXRhOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYnV0dG9uIG9iamVjdC4gUHVibGljIG1ldGhvZHMgY2FuIGJlIGNhbGxlZCBvbiB0aGUgYnV0dG9uLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGNhbGwgdGhlXG4gICAgICogc2V0QnVzeSgpIGFuZCBjbGVhckJ1c3koKSBtZXRob2RzIHRvIGRpc3BsYXkgYSBzcGlubmVyIG9uIHRoZSBidXR0b24gd2hlbiBpdCBpcyBidXN5IChhbmQgY2xlYXIgaXQpLlxuICAgICAqL1xuICAgIGJ1dHRvbk9iaj86IGFueTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vb2VwYS1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGRlc2NyaWJpbmcgYW4gZW50cnkgb24gYW4gQWN0aW9uIEJ1dHRvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZXBhQWN0aW9uIHtcbiAgICAvKipcbiAgICAgKiBUaGUgc3RyaW5nIGRpc3BsYXllZCBpbiB0aGUgYWN0aW9uIGJ1dHRvbiBmb3IgdGhpcyBhY3Rpb24uXG4gICAgICovXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgY3NzIGNsYXNzIHVzZWQgZm9yIHRoZSBpY29uIGRpc3BsYXllZCBpbiBmcm9udCBvZiB0aGUgYWN0aW9uIHRpdGxlLlxuICAgICAqL1xuICAgIGNsYXNzTmFtZTogYW55O1xufVxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "ngx-bootstrap/modal";
|
|
4
|
+
import * as i2 from "ngx-bootstrap/dropdown";
|
|
5
|
+
import * as i3 from "../action-btn/action-btn.component";
|
|
6
|
+
export class ActionBtnModalComponent {
|
|
7
|
+
bsModalRef;
|
|
8
|
+
actions = [{ title: 'Hello', className: 'bi bi-person-raised-hand' }, { title: 'Goodbye', className: 'bi bi-person-walking' }];
|
|
9
|
+
constructor(bsModalRef) {
|
|
10
|
+
this.bsModalRef = bsModalRef;
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
}
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionBtnModalComponent, deps: [{ token: i1.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionBtnModalComponent, selector: "oepa-action-btn-modal", ngImport: i0, template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">Action Button Test</h4>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n </button>\n</div>\n<div class=\"modal-body\">\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <oepa-action-btn [actions]=\"actions\"></oepa-action-btn>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <div class=\"btn-group\" dropdown placement=\"bottom right\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\"\n aria-controls=\"dropdown-basic\">\n Button dropdown <span class=\"caret\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu\" role=\"menu\"\n aria-labelledby=\"button-basic\">\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Another action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Something else here</a></li>\n <li class=\"divider dropdown-divider\"></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Separated link</a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-primary mr-1\" (click)=\"bsModalRef.hide()\">Close</button>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i3.ActionBtnComponent, selector: "oepa-action-btn", inputs: ["label", "btnId", "data", "actions", "normalSize", "dropup"], outputs: ["actionClicked"] }] });
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionBtnModalComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'oepa-action-btn-modal', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">Action Button Test</h4>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n </button>\n</div>\n<div class=\"modal-body\">\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <oepa-action-btn [actions]=\"actions\"></oepa-action-btn>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <div class=\"btn-group\" dropdown placement=\"bottom right\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\"\n aria-controls=\"dropdown-basic\">\n Button dropdown <span class=\"caret\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu\" role=\"menu\"\n aria-labelledby=\"button-basic\">\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Another action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Something else here</a></li>\n <li class=\"divider dropdown-divider\"></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Separated link</a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-primary mr-1\" (click)=\"bsModalRef.hide()\">Close</button>\n</div>" }]
|
|
20
|
+
}], ctorParameters: () => [{ type: i1.BsModalRef }] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ0bi1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4tbW9kYWwvYWN0aW9uLWJ0bi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4tbW9kYWwvYWN0aW9uLWJ0bi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQVNsRCxNQUFNLE9BQU8sdUJBQXVCO0lBR2Y7SUFGbkIsT0FBTyxHQUFzQixDQUFDLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFDLENBQUMsQ0FBQztJQUUvSSxZQUFtQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUksQ0FBQztJQUU5QyxRQUFRO0lBQ1IsQ0FBQzt3R0FOVSx1QkFBdUI7NEZBQXZCLHVCQUF1Qiw2RENUcEMsbXdEQWlDTTs7NEZEeEJPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgT2VwYUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbi1idG4vb2VwYS1hY3Rpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWFjdGlvbi1idG4tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWJ0bi1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1idG4tbW9kYWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkJ0bk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYWN0aW9uczogQXJyYXk8T2VwYUFjdGlvbj4gPSBbe3RpdGxlOiAnSGVsbG8nLCBjbGFzc05hbWU6ICdiaSBiaS1wZXJzb24tcmFpc2VkLWhhbmQnfSwgeyB0aXRsZTogJ0dvb2RieWUnLCBjbGFzc05hbWU6ICdiaSBiaS1wZXJzb24td2Fsa2luZyd9XTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYnNNb2RhbFJlZjogQnNNb2RhbFJlZikgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlIHB1bGwtbGVmdFwiPkFjdGlvbiBCdXR0b24gVGVzdDwvaDQ+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2UgZmxvYXQtZW5kXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImJzTW9kYWxSZWYuaGlkZSgpXCI+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8b2VwYS1hY3Rpb24tYnRuIFthY3Rpb25zXT1cImFjdGlvbnNcIj48L29lcGEtYWN0aW9uLWJ0bj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgZHJvcGRvd24gcGxhY2VtZW50PVwiYm90dG9tIHJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9XCJidXR0b24tYmFzaWNcIiBkcm9wZG93blRvZ2dsZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgZHJvcGRvd24tdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJkcm9wZG93bi1iYXNpY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uIGRyb3Bkb3duIDxzcGFuIGNsYXNzPVwiY2FyZXRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8dWwgaWQ9XCJkcm9wZG93bi1iYXNpY1wiICpkcm9wZG93bk1lbnUgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgcm9sZT1cIm1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiYnV0dG9uLWJhc2ljXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT1cIm1lbnVpdGVtXCI+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgaHJlZj1cIiNcIj5BY3Rpb248L2E+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPVwibWVudWl0ZW1cIj48YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBocmVmPVwiI1wiPkFub3RoZXIgYWN0aW9uPC9hPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT1cIm1lbnVpdGVtXCI+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgaHJlZj1cIiNcIj5Tb21ldGhpbmcgZWxzZSBoZXJlPC9hPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJkaXZpZGVyIGRyb3Bkb3duLWRpdmlkZXJcIj48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIGhyZWY9XCIjXCI+U2VwYXJhdGVkIGxpbms8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMVwiIChjbGljayk9XCJic01vZGFsUmVmLmhpZGUoKVwiPkNsb3NlPC9idXR0b24+XG48L2Rpdj4iXX0=
|