@ohioepa/oepa-ui-lib 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2022/lib/account-search-input/account-search-input.component.mjs +147 -0
- package/esm2022/lib/account-search-modal/account-search-modal.component.mjs +151 -0
- package/esm2022/lib/action-btn/action-btn.component.mjs +70 -0
- package/esm2022/lib/action-btn/oepa-action-event.mjs +2 -0
- package/esm2022/lib/action-btn/oepa-action.mjs +2 -0
- package/esm2022/lib/action-btn-modal/action-btn-modal.component.mjs +21 -0
- package/esm2022/lib/address/address.component.mjs +174 -0
- package/esm2022/lib/address/oepa-address.service.mjs +64 -0
- package/esm2022/lib/address/oepa-form-address.mjs +2 -0
- package/esm2022/lib/blank/blank.component.mjs +14 -0
- package/esm2022/lib/checkbox/checkbox.component.mjs +33 -0
- package/esm2022/lib/checkbox-input/checkbox-input.component.mjs +41 -0
- package/esm2022/lib/comment-modal/comment-modal.component.mjs +56 -0
- package/esm2022/lib/common-forms.module.mjs +291 -0
- package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +120 -0
- package/esm2022/lib/contact/contact.component.mjs +102 -0
- package/esm2022/lib/contact/oepa-form-contact.mjs +2 -0
- package/esm2022/lib/date-input/date-input.component.mjs +52 -0
- package/esm2022/lib/date-input-modal/date-input-modal.component.mjs +68 -0
- package/esm2022/lib/datepicker/datepicker.component.mjs +131 -0
- package/esm2022/lib/daterangepicker/daterangepicker.component.mjs +70 -0
- package/esm2022/lib/document/document-editor/document-editor.component.mjs +225 -0
- package/esm2022/lib/document/document-event-entity-type.mjs +7 -0
- package/esm2022/lib/document/document-event-type.mjs +7 -0
- package/esm2022/lib/document/document-event.mjs +2 -0
- package/esm2022/lib/document/document-group/document-group.component.mjs +210 -0
- package/esm2022/lib/document/document-part/document-part.component.mjs +19 -0
- package/esm2022/lib/document/document-part-editor/document-part-editor.component.mjs +296 -0
- package/esm2022/lib/document/document-placeholder-modal/document-placeholder-modal.component.mjs +49 -0
- package/esm2022/lib/document/document-section/document-section.component.mjs +226 -0
- package/esm2022/lib/document/document.service.mjs +325 -0
- package/esm2022/lib/document/group-modal/group-modal.component.mjs +46 -0
- package/esm2022/lib/document/part-modal/part-modal.component.mjs +48 -0
- package/esm2022/lib/document/portal-document-class.mjs +2 -0
- package/esm2022/lib/document/portal-document-group.mjs +2 -0
- package/esm2022/lib/document/portal-document-part.mjs +2 -0
- package/esm2022/lib/document/portal-document-placeholder.mjs +2 -0
- package/esm2022/lib/document/portal-document-section.mjs +2 -0
- package/esm2022/lib/document/portal-document-text.mjs +2 -0
- package/esm2022/lib/document/portal-document-type.mjs +2 -0
- package/esm2022/lib/document/portal-document.mjs +2 -0
- package/esm2022/lib/document/portal-email-attachment-type.mjs +2 -0
- package/esm2022/lib/document/portal-email-attachment.mjs +2 -0
- package/esm2022/lib/document/portal-email-filter.mjs +2 -0
- package/esm2022/lib/document/portal-email.mjs +2 -0
- package/esm2022/lib/document/section-modal/section-modal.component.mjs +46 -0
- package/esm2022/lib/dual-list-box/array.pipes.mjs +71 -0
- package/esm2022/lib/dual-list-box/dual-list-box.component.mjs +339 -0
- package/esm2022/lib/dual-list-box/items-moved-event.mjs +2 -0
- package/esm2022/lib/dual-list-box/list-box-item.mjs +2 -0
- package/esm2022/lib/ebiz-address/ebiz-address.component.mjs +62 -0
- package/esm2022/lib/edoc-attachment/edoc-attachment.component.mjs +216 -0
- package/esm2022/lib/edoc-attachment/edoc-attachment.service.mjs +38 -0
- package/esm2022/lib/edoc-attachment/edocument-attachment-metadata.mjs +2 -0
- package/esm2022/lib/edoc-attachment/edocument-attachment.mjs +2 -0
- package/esm2022/lib/edoc-attachment/edocument-reference.mjs +2 -0
- package/esm2022/lib/entity/entity.service.mjs +104 -0
- package/esm2022/lib/entity/organization-create-modal/organization-create-modal.component.mjs +307 -0
- package/esm2022/lib/entity/organization-search-input/organization-search-input.component.mjs +127 -0
- package/esm2022/lib/entity/organization-search-modal/organization-search-modal.component.mjs +304 -0
- package/esm2022/lib/entity/person-create-modal/person-create-modal.component.mjs +316 -0
- package/esm2022/lib/entity/person-search-input/person-search-input.component.mjs +129 -0
- package/esm2022/lib/entity/person-search-modal/person-search-modal.component.mjs +311 -0
- package/esm2022/lib/entity/place-create-modal/place-create-modal.component.mjs +14 -0
- package/esm2022/lib/entity/place-search-input/place-search-input.component.mjs +126 -0
- package/esm2022/lib/entity/place-search-modal/place-search-modal.component.mjs +216 -0
- package/esm2022/lib/esri-map/esri-map.component.mjs +416 -0
- package/esm2022/lib/file-upload/file-upload.component.mjs +148 -0
- package/esm2022/lib/lynx-image-upload/lynx-image-upload.component.mjs +143 -0
- package/esm2022/lib/lynx-image-upload/lynx.service.mjs +47 -0
- package/esm2022/lib/masks/oepa-create-integer-mask.mjs +39 -0
- package/esm2022/lib/masks/oepa-integer-mask-args.mjs +2 -0
- package/esm2022/lib/message/message.component.mjs +19 -0
- package/esm2022/lib/message/oepa-message-type.mjs +7 -0
- package/esm2022/lib/message/oepa-message.mjs +31 -0
- package/esm2022/lib/message-list/message-list.component.mjs +24 -0
- package/esm2022/lib/multi-file-upload/multi-file-upload.component.mjs +137 -0
- package/esm2022/lib/notes-modal/notes-modal.component.mjs +177 -0
- package/esm2022/lib/notes-modal/oepa-note-result.mjs +2 -0
- package/esm2022/lib/notes-modal/oepa-note.mjs +2 -0
- package/esm2022/lib/numeric-input/numeric-input.component.mjs +50 -0
- package/esm2022/lib/numeric-input.directive.mjs +76 -0
- package/esm2022/lib/oepa-error-message/oepa-error-message.component.mjs +39 -0
- package/esm2022/lib/oepa-forms.service.mjs +199 -0
- package/esm2022/lib/oepa-images.mjs +59 -0
- package/esm2022/lib/oepa-wait-message/oepa-wait-message.component.mjs +29 -0
- package/esm2022/lib/ohio-lat-long/ohio-lat-long.component.mjs +176 -0
- package/esm2022/lib/parameter/parameter.mjs +2 -0
- package/esm2022/lib/parameter/parameter.service.mjs +47 -0
- package/esm2022/lib/params-help-button/params-help-button.component.mjs +42 -0
- package/esm2022/lib/phone-number/phone-number.component.mjs +44 -0
- package/esm2022/lib/pin-modal/oepa-attestation.mjs +2 -0
- package/esm2022/lib/pin-modal/oepa-pin.mjs +2 -0
- package/esm2022/lib/pin-modal/oepa-pin.service.mjs +54 -0
- package/esm2022/lib/pin-modal/oepa-security-question.mjs +2 -0
- package/esm2022/lib/pin-modal/pin-modal.component.mjs +186 -0
- package/esm2022/lib/progress-indicator/progress-info.mjs +2 -0
- package/esm2022/lib/select-input/select-input.component.mjs +96 -0
- package/esm2022/lib/server-timeout-modal/server-timeout-modal.component.mjs +63 -0
- package/esm2022/lib/shopping-cart/shopping-cart-summary/shopping-cart-summary.component.mjs +54 -0
- package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view-parameters.mjs +2 -0
- package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.mjs +190 -0
- package/esm2022/lib/shopping-cart/shopping-cart.service.mjs +89 -0
- package/esm2022/lib/start-end-timepicker/start-end-timepicker.component.mjs +126 -0
- package/esm2022/lib/table/oepa-p-column.mjs +2 -0
- package/esm2022/lib/table/oepa-table-cell-classname.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-click-event.mjs +2 -0
- package/esm2022/lib/table/oepa-table-cell-colspan.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-hidden.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-icon-classname.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-img-src.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-inner-html.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-input-component.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-not-selectable.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell-value.pipe.mjs +22 -0
- package/esm2022/lib/table/oepa-table-cell.mjs +2 -0
- package/esm2022/lib/table/oepa-table-column.mjs +2 -0
- package/esm2022/lib/table/oepa-table-config.mjs +2 -0
- package/esm2022/lib/table/oepa-table-filter.mjs +2 -0
- package/esm2022/lib/table/oepa-table-filtering.directive.mjs +57 -0
- package/esm2022/lib/table/oepa-table-header.mjs +2 -0
- package/esm2022/lib/table/oepa-table-page-info.mjs +2 -0
- package/esm2022/lib/table/oepa-table-popover.mjs +2 -0
- package/esm2022/lib/table/oepa-table-row.mjs +2 -0
- package/esm2022/lib/table/oepa-table-sort-criterion.mjs +2 -0
- package/esm2022/lib/table/oepa-table-sorting.directive.mjs +57 -0
- package/esm2022/lib/table/oepa-table.mjs +2 -0
- package/esm2022/lib/table/p-table/p-table.component.mjs +826 -0
- package/esm2022/lib/table/table-data-cell/table-data-cell-click-event.mjs +2 -0
- package/esm2022/lib/table/table-data-cell/table-data-cell.component.mjs +60 -0
- package/esm2022/lib/table/table-export.service.mjs +57 -0
- package/esm2022/lib/table/table-header-cell/table-header-cell.component.mjs +61 -0
- package/esm2022/lib/table/table.component.mjs +793 -0
- package/esm2022/lib/table/table.service.mjs +112 -0
- package/esm2022/lib/template-confirmation-modal/template-confirmation-modal.component.mjs +46 -0
- package/esm2022/lib/text-area-input/text-area-input.component.mjs +48 -0
- package/esm2022/lib/text-input/text-input.component.mjs +48 -0
- package/esm2022/lib/timeout-modal/timeout-modal.component.mjs +31 -0
- package/esm2022/lib/timepicker/timepicker.component.mjs +48 -0
- package/esm2022/lib/validation/form-validator.mjs +2 -0
- package/esm2022/lib/validation/validation.service.mjs +134 -0
- package/esm2022/lib/yes-no/yes-no.component.mjs +44 -0
- package/esm2022/lib/yes-no-boolean/yes-no.component.mjs +44 -0
- package/esm2022/lib/yes-no-other-input/yes-no-other-input.component.mjs +41 -0
- package/esm2022/lib/zip-code/zip-code.component.mjs +42 -0
- package/esm2022/ohioepa-oepa-ui-lib.mjs +5 -0
- package/esm2022/public-api.mjs +142 -0
- package/fesm2022/ohioepa-oepa-ui-lib.mjs +10720 -0
- package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/account-search-input/account-search-input.component.d.ts +36 -0
- package/lib/account-search-modal/account-search-modal.component.d.ts +40 -0
- package/lib/action-btn/action-btn.component.d.ts +34 -0
- package/lib/action-btn/oepa-action-event.d.ts +19 -0
- package/lib/action-btn/oepa-action.d.ts +13 -0
- package/lib/action-btn-modal/action-btn-modal.component.d.ts +12 -0
- package/lib/address/address.component.d.ts +43 -0
- package/lib/address/oepa-address.service.d.ts +28 -0
- package/lib/address/oepa-form-address.d.ts +19 -0
- package/lib/blank/blank.component.d.ts +8 -0
- package/lib/checkbox/checkbox.component.d.ts +15 -0
- package/lib/checkbox-input/checkbox-input.component.d.ts +17 -0
- package/lib/comment-modal/comment-modal.component.d.ts +22 -0
- package/lib/common-forms.module.d.ts +104 -0
- package/lib/confirmation-modal/confirmation-modal.component.d.ts +49 -0
- package/lib/contact/contact.component.d.ts +33 -0
- package/lib/contact/oepa-form-contact.d.ts +58 -0
- package/lib/date-input/date-input.component.d.ts +18 -0
- package/lib/date-input-modal/date-input-modal.component.d.ts +25 -0
- package/lib/datepicker/datepicker.component.d.ts +28 -0
- package/lib/daterangepicker/daterangepicker.component.d.ts +22 -0
- package/lib/document/document-editor/document-editor.component.d.ts +34 -0
- package/lib/document/document-event-entity-type.d.ts +5 -0
- package/lib/document/document-event-type.d.ts +5 -0
- package/lib/document/document-event.d.ts +9 -0
- package/lib/document/document-group/document-group.component.d.ts +38 -0
- package/lib/document/document-part/document-part.component.d.ts +10 -0
- package/lib/document/document-part-editor/document-part-editor.component.d.ts +46 -0
- package/lib/document/document-placeholder-modal/document-placeholder-modal.component.d.ts +19 -0
- package/lib/document/document-section/document-section.component.d.ts +37 -0
- package/lib/document/document.service.d.ts +90 -0
- package/lib/document/group-modal/group-modal.component.d.ts +20 -0
- package/lib/document/part-modal/part-modal.component.d.ts +20 -0
- package/lib/document/portal-document-class.d.ts +10 -0
- package/lib/document/portal-document-group.d.ts +15 -0
- package/lib/document/portal-document-part.d.ts +22 -0
- package/lib/document/portal-document-placeholder.d.ts +12 -0
- package/lib/document/portal-document-section.d.ts +13 -0
- package/lib/document/portal-document-text.d.ts +7 -0
- package/lib/document/portal-document-type.d.ts +15 -0
- package/lib/document/portal-document.d.ts +27 -0
- package/lib/document/portal-email-attachment-type.d.ts +6 -0
- package/lib/document/portal-email-attachment.d.ts +12 -0
- package/lib/document/portal-email-filter.d.ts +12 -0
- package/lib/document/portal-email.d.ts +18 -0
- package/lib/document/section-modal/section-modal.component.d.ts +20 -0
- package/lib/dual-list-box/array.pipes.d.ts +36 -0
- package/lib/dual-list-box/dual-list-box.component.d.ts +91 -0
- package/lib/dual-list-box/items-moved-event.d.ts +11 -0
- package/lib/dual-list-box/list-box-item.d.ts +7 -0
- package/lib/ebiz-address/ebiz-address.component.d.ts +23 -0
- package/lib/edoc-attachment/edoc-attachment.component.d.ts +44 -0
- package/lib/edoc-attachment/edoc-attachment.service.d.ts +16 -0
- package/lib/edoc-attachment/edocument-attachment-metadata.d.ts +16 -0
- package/lib/edoc-attachment/edocument-attachment.d.ts +12 -0
- package/lib/edoc-attachment/edocument-reference.d.ts +5 -0
- package/lib/entity/entity.service.d.ts +31 -0
- package/lib/entity/organization-create-modal/organization-create-modal.component.d.ts +53 -0
- package/lib/entity/organization-search-input/organization-search-input.component.d.ts +34 -0
- package/lib/entity/organization-search-modal/organization-search-modal.component.d.ts +56 -0
- package/lib/entity/person-create-modal/person-create-modal.component.d.ts +53 -0
- package/lib/entity/person-search-input/person-search-input.component.d.ts +34 -0
- package/lib/entity/person-search-modal/person-search-modal.component.d.ts +56 -0
- package/lib/entity/place-create-modal/place-create-modal.component.d.ts +8 -0
- package/lib/entity/place-search-input/place-search-input.component.d.ts +34 -0
- package/lib/entity/place-search-modal/place-search-modal.component.d.ts +41 -0
- package/lib/esri-map/esri-map.component.d.ts +41 -0
- package/lib/file-upload/file-upload.component.d.ts +37 -0
- package/lib/lynx-image-upload/lynx-image-upload.component.d.ts +36 -0
- package/lib/lynx-image-upload/lynx.service.d.ts +16 -0
- package/lib/masks/oepa-create-integer-mask.d.ts +8 -0
- package/lib/masks/oepa-integer-mask-args.d.ts +5 -0
- package/lib/message/message.component.d.ts +10 -0
- package/lib/message/oepa-message-type.d.ts +5 -0
- package/lib/message/oepa-message.d.ts +7 -0
- package/lib/message-list/message-list.component.d.ts +11 -0
- package/lib/multi-file-upload/multi-file-upload.component.d.ts +36 -0
- package/lib/notes-modal/notes-modal.component.d.ts +50 -0
- package/lib/notes-modal/oepa-note-result.d.ts +10 -0
- package/lib/notes-modal/oepa-note.d.ts +13 -0
- package/lib/numeric-input/numeric-input.component.d.ts +20 -0
- package/lib/numeric-input.directive.d.ts +19 -0
- package/lib/oepa-error-message/oepa-error-message.component.d.ts +9 -0
- package/lib/oepa-forms.service.d.ts +28 -0
- package/lib/oepa-images.d.ts +53 -0
- package/lib/oepa-wait-message/oepa-wait-message.component.d.ts +9 -0
- package/lib/ohio-lat-long/ohio-lat-long.component.d.ts +63 -0
- package/lib/parameter/parameter.d.ts +7 -0
- package/lib/parameter/parameter.service.d.ts +18 -0
- package/lib/params-help-button/params-help-button.component.d.ts +15 -0
- package/lib/phone-number/phone-number.component.d.ts +19 -0
- package/lib/pin-modal/oepa-attestation.d.ts +10 -0
- package/lib/pin-modal/oepa-pin.d.ts +26 -0
- package/lib/pin-modal/oepa-pin.service.d.ts +38 -0
- package/lib/pin-modal/oepa-security-question.d.ts +8 -0
- package/lib/pin-modal/pin-modal.component.d.ts +46 -0
- package/lib/progress-indicator/progress-info.d.ts +4 -0
- package/lib/select-input/select-input.component.d.ts +27 -0
- package/lib/server-timeout-modal/server-timeout-modal.component.d.ts +23 -0
- package/lib/shopping-cart/shopping-cart-summary/shopping-cart-summary.component.d.ts +18 -0
- package/lib/shopping-cart/shopping-cart-view/shopping-cart-view-parameters.d.ts +10 -0
- package/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.d.ts +51 -0
- package/lib/shopping-cart/shopping-cart.service.d.ts +44 -0
- package/lib/start-end-timepicker/start-end-timepicker.component.d.ts +29 -0
- package/lib/table/oepa-p-column.d.ts +4 -0
- package/lib/table/oepa-table-cell-classname.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-click-event.d.ts +15 -0
- package/lib/table/oepa-table-cell-colspan.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-hidden.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-icon-classname.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-img-src.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-inner-html.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-input-component.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-not-selectable.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell-value.pipe.d.ts +9 -0
- package/lib/table/oepa-table-cell.d.ts +66 -0
- package/lib/table/oepa-table-column.d.ts +71 -0
- package/lib/table/oepa-table-config.d.ts +72 -0
- package/lib/table/oepa-table-filter.d.ts +10 -0
- package/lib/table/oepa-table-filtering.directive.d.ts +17 -0
- package/lib/table/oepa-table-header.d.ts +9 -0
- package/lib/table/oepa-table-page-info.d.ts +22 -0
- package/lib/table/oepa-table-popover.d.ts +28 -0
- package/lib/table/oepa-table-row.d.ts +84 -0
- package/lib/table/oepa-table-sort-criterion.d.ts +4 -0
- package/lib/table/oepa-table-sorting.directive.d.ts +16 -0
- package/lib/table/oepa-table.d.ts +42 -0
- package/lib/table/p-table/p-table.component.d.ts +155 -0
- package/lib/table/table-data-cell/table-data-cell-click-event.d.ts +5 -0
- package/lib/table/table-data-cell/table-data-cell.component.d.ts +23 -0
- package/lib/table/table-export.service.d.ts +33 -0
- package/lib/table/table-header-cell/table-header-cell.component.d.ts +24 -0
- package/lib/table/table.component.d.ts +144 -0
- package/lib/table/table.service.d.ts +28 -0
- package/lib/template-confirmation-modal/template-confirmation-modal.component.d.ts +19 -0
- package/lib/text-area-input/text-area-input.component.d.ts +19 -0
- package/lib/text-input/text-input.component.d.ts +19 -0
- package/lib/timeout-modal/timeout-modal.component.d.ts +13 -0
- package/lib/timepicker/timepicker.component.d.ts +17 -0
- package/lib/validation/form-validator.d.ts +10 -0
- package/lib/validation/validation.service.d.ts +16 -0
- package/lib/yes-no/yes-no.component.d.ts +19 -0
- package/lib/yes-no-boolean/yes-no.component.d.ts +19 -0
- package/lib/yes-no-other-input/yes-no-other-input.component.d.ts +18 -0
- package/lib/zip-code/zip-code.component.d.ts +19 -0
- package/ohioepa-oepa-ui-lib-1.1.0.tgz +0 -0
- package/package.json +25 -0
- package/public-api.d.ts +138 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { SectionModalComponent } from '../section-modal/section-modal.component';
|
|
3
|
+
import { ConfirmationModalComponent } from '../../confirmation-modal/confirmation-modal.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "ngx-bootstrap/modal";
|
|
6
|
+
import * as i2 from "ngx-toastr";
|
|
7
|
+
import * as i3 from "../document.service";
|
|
8
|
+
import * as i4 from "@angular/common";
|
|
9
|
+
import * as i5 from "ngx-bootstrap/tabs";
|
|
10
|
+
import * as i6 from "../document-section/document-section.component";
|
|
11
|
+
export class DocumentEditorComponent {
|
|
12
|
+
modalService;
|
|
13
|
+
toastr;
|
|
14
|
+
documentService;
|
|
15
|
+
document;
|
|
16
|
+
allowRemoveSection = false;
|
|
17
|
+
showSectionOptions = false;
|
|
18
|
+
documentSectionTabs;
|
|
19
|
+
busy = false;
|
|
20
|
+
static selectedTabIndex = 0;
|
|
21
|
+
constructor(modalService, toastr, documentService) {
|
|
22
|
+
this.modalService = modalService;
|
|
23
|
+
this.toastr = toastr;
|
|
24
|
+
this.documentService = documentService;
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
// TODO add check for DSWSWIMSSystemAdmin to the NPDES code
|
|
28
|
+
// this.userAccountService.retrieveAccountForCurrentUser().subscribe((account) => {
|
|
29
|
+
// if (account && account.roleList) {
|
|
30
|
+
// account.roleList.forEach(role => {
|
|
31
|
+
// if (role.name == 'DSWSWIMSSystemAdmin') {
|
|
32
|
+
// this.showSectionOptions = true;
|
|
33
|
+
// }
|
|
34
|
+
// });
|
|
35
|
+
// } else {
|
|
36
|
+
// alert('No Account could be found in the OepaAccountService!');
|
|
37
|
+
// }
|
|
38
|
+
// });
|
|
39
|
+
}
|
|
40
|
+
ngAfterViewInit() {
|
|
41
|
+
if (this.documentSectionTabs?.tabs[DocumentEditorComponent.selectedTabIndex]) {
|
|
42
|
+
this.documentSectionTabs.tabs[DocumentEditorComponent.selectedTabIndex].active = true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
onSectionTabSelect(index) {
|
|
46
|
+
console.log(index);
|
|
47
|
+
console.log(DocumentEditorComponent.selectedTabIndex);
|
|
48
|
+
DocumentEditorComponent.selectedTabIndex = index;
|
|
49
|
+
if (this.documentSectionTabs?.tabs[DocumentEditorComponent.selectedTabIndex]) {
|
|
50
|
+
this.documentService.updateSelectedSectionName(this.documentSectionTabs.tabs[DocumentEditorComponent.selectedTabIndex].heading);
|
|
51
|
+
}
|
|
52
|
+
else if (this.documentSectionTabs?.tabs[DocumentEditorComponent.selectedTabIndex]) {
|
|
53
|
+
this.editSection(this.documentSectionTabs.tabs[DocumentEditorComponent.selectedTabIndex]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
moveSectionUp(section) {
|
|
57
|
+
if (section.sequence && section.sequence > 1) {
|
|
58
|
+
let clone = Object.assign({}, this.document);
|
|
59
|
+
if (clone.sections) {
|
|
60
|
+
clone.sections.splice(section.sequence - 2, 0, clone.sections.splice(section.sequence - 1, 1)[0]);
|
|
61
|
+
this.resequence(clone);
|
|
62
|
+
this.documentService.updateDocumentGroup(clone).subscribe({
|
|
63
|
+
next: () => {
|
|
64
|
+
this.documentService.updateDcoumentID(clone.id || '');
|
|
65
|
+
}, error: err => {
|
|
66
|
+
this.toastr.error('Failed updating document: ' + err, 'ERROR');
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.toastr.info('Cannot move top section up', '', { disableTimeOut: false, timeOut: 5000 });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
insertAboveSection(section) {
|
|
76
|
+
if (section.sequence) {
|
|
77
|
+
let newSection = this.newSection(section.sequence - 1 || 1);
|
|
78
|
+
this.insertSection(section.sequence - 1, newSection);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
moveSectionDown(section) {
|
|
82
|
+
if (section.sequence && this.document && this.document.sections && section.sequence < this.document.sections.length - 1) {
|
|
83
|
+
let clone = Object.assign({}, this.document);
|
|
84
|
+
if (clone.sections) {
|
|
85
|
+
clone.sections.splice(section.sequence, 0, clone.sections.splice(section.sequence - 1, 1)[0]);
|
|
86
|
+
this.resequence(clone);
|
|
87
|
+
this.documentService.updateDocumentGroup(clone).subscribe({
|
|
88
|
+
next: () => {
|
|
89
|
+
this.documentService.updateDcoumentID(clone.id || '');
|
|
90
|
+
}, error: err => {
|
|
91
|
+
this.toastr.error('Failed updating document: ' + err, 'ERROR');
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
this.toastr.info('Cannot move bottom section down', '', { disableTimeOut: false, timeOut: 5000 });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
insertBelowSection(section) {
|
|
101
|
+
if (section.sequence) {
|
|
102
|
+
let newSection = this.newSection(section.sequence + 1);
|
|
103
|
+
this.insertSection(section.sequence, newSection);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
newSection(sequence) {
|
|
107
|
+
return {
|
|
108
|
+
documentID: this.document?.id,
|
|
109
|
+
sequence: sequence,
|
|
110
|
+
name: 'Section ' + sequence,
|
|
111
|
+
groups: [
|
|
112
|
+
{
|
|
113
|
+
name: 'Group 1',
|
|
114
|
+
parts: [
|
|
115
|
+
{
|
|
116
|
+
name: 'Paragraph 1',
|
|
117
|
+
text: {
|
|
118
|
+
text: ''
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
insertSection(insertIndex, newSection) {
|
|
127
|
+
const initialState = {
|
|
128
|
+
label: 'Insert Section',
|
|
129
|
+
section: newSection
|
|
130
|
+
};
|
|
131
|
+
let modal = this.modalService.show(SectionModalComponent, { initialState, ignoreBackdropClick: true });
|
|
132
|
+
modal.content.onSectionSave.subscribe(updatedSection => {
|
|
133
|
+
this.busy = true;
|
|
134
|
+
let clone = Object.assign({}, this.document);
|
|
135
|
+
if (clone.sections) {
|
|
136
|
+
clone.sections.splice(insertIndex, 0, updatedSection);
|
|
137
|
+
this.resequence(clone);
|
|
138
|
+
this.documentService.updateDocument(clone).subscribe({
|
|
139
|
+
next: () => {
|
|
140
|
+
this.documentService.updateDcoumentID(clone.id || '');
|
|
141
|
+
this.busy = false;
|
|
142
|
+
}, error: err => {
|
|
143
|
+
this.toastr.error('Failed updating section: ' + err, 'ERROR');
|
|
144
|
+
this.busy = false;
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
resequence(document) {
|
|
151
|
+
let sequence = 1;
|
|
152
|
+
if (document.sections) {
|
|
153
|
+
document.sections.forEach(section => {
|
|
154
|
+
section.sequence = sequence++;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
deleteSection(section) {
|
|
159
|
+
const initialState = {
|
|
160
|
+
headerText: 'Delete Section',
|
|
161
|
+
bodyText: 'Delete Section ' + section.name + '?',
|
|
162
|
+
confirmBtnLabel: 'Yes',
|
|
163
|
+
cancelBtnLabel: 'No'
|
|
164
|
+
};
|
|
165
|
+
let modal = this.modalService.show(ConfirmationModalComponent, { initialState, ignoreBackdropClick: true });
|
|
166
|
+
modal.content.confirmClicked.subscribe(() => {
|
|
167
|
+
this.busy = true;
|
|
168
|
+
let clone = Object.assign({}, this.document);
|
|
169
|
+
if (clone.sections) {
|
|
170
|
+
clone.sections = clone.sections.filter(keep => {
|
|
171
|
+
keep.id != section.id;
|
|
172
|
+
});
|
|
173
|
+
this.resequence(clone);
|
|
174
|
+
this.documentService.updateDocument(clone).subscribe({
|
|
175
|
+
next: () => {
|
|
176
|
+
this.documentService.deleteDocumentSection(section).subscribe({
|
|
177
|
+
next: () => {
|
|
178
|
+
this.documentService.updateDcoumentID(clone.id || '');
|
|
179
|
+
this.busy = false;
|
|
180
|
+
}, error: err => {
|
|
181
|
+
this.toastr.error('Failed deleting section: ' + err, 'ERROR');
|
|
182
|
+
this.busy = false;
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}, error: err => {
|
|
186
|
+
this.toastr.error('Failed updating document: ' + err, 'ERROR');
|
|
187
|
+
this.busy = false;
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
editSection(section) {
|
|
194
|
+
const initialState = {
|
|
195
|
+
label: 'Edit Section Attributes',
|
|
196
|
+
section: section
|
|
197
|
+
};
|
|
198
|
+
let modal = this.modalService.show(SectionModalComponent, { initialState, ignoreBackdropClick: true });
|
|
199
|
+
modal.content.onSectionSave.subscribe(updatedSection => {
|
|
200
|
+
this.busy = true;
|
|
201
|
+
this.documentService.updateDocumentSection(updatedSection).subscribe(() => {
|
|
202
|
+
this.busy = false;
|
|
203
|
+
}, err => {
|
|
204
|
+
this.toastr.error('Failed updating section: ' + err, 'ERROR');
|
|
205
|
+
this.busy = false;
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentEditorComponent, deps: [{ token: i1.BsModalService }, { token: i2.ToastrService }, { token: i3.DocumentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
210
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentEditorComponent, selector: "oepa-document-editor", inputs: { document: "document", allowRemoveSection: "allowRemoveSection", showSectionOptions: "showSectionOptions" }, viewQueries: [{ propertyName: "documentSectionTabs", first: true, predicate: ["documentSectionTabs"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"document\">\n <div *ngIf=\"document.sections && document.sections.length > 0\">\n <div class=\"row\">\n <div class=\"col-sm-4\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\"\n (click)=\"insertBelowSection(document.sections[document.sections.length-1])\">\n Add new section\n </button>\n </div>\n <div class=\"col-sm-8\">\n </div>\n <div class=\"col-sm-12\" class=\"row\">\n <tabset #documentSectionTabs>\n <tab *ngFor=\"let s of document.sections; let i = index;\" (selectTab)=\"onSectionTabSelect(i)\"\n [removable]=\"allowRemoveSection\" (removed)=\"deleteSection(s)\">\n <ng-template tabHeading>\n <span>\n <span>{{s.name}}</span>\n <span *ngIf=\"showSectionOptions\"> <i class=\"bi bi-pencil-fill\"\n (click)=\"editSection(s)\"></i> <i class=\"bi bi-x-lg\"\n (click)=\"deleteSection(s)\"></i></span>\n </span>\n </ng-template>\n <oepa-document-section [section]=\"s\" (onMoveUp)=\"moveSectionUp($event)\"\n (onInsertAbove)=\"insertAboveSection($event)\" (onMoveDown)=\"moveSectionDown($event)\"\n (onInsertBelow)=\"insertBelowSection($event)\" (onDelete)=\"deleteSection($event)\">\n </oepa-document-section>\n </tab>\n </tabset>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TabDirective, selector: "tab, [tab]", inputs: ["heading", "id", "disabled", "removable", "customClass", "active"], outputs: ["selectTab", "deselect", "removed"], exportAs: ["tab"] }, { kind: "component", type: i5.TabsetComponent, selector: "tabset", inputs: ["vertical", "justified", "type"] }, { kind: "directive", type: i5.TabHeadingDirective, selector: "[tabHeading]" }, { kind: "component", type: i6.DocumentSectionComponent, selector: "oepa-document-section", inputs: ["section"], outputs: ["onMoveUp", "onInsertAbove", "onMoveDown", "onInsertBelow", "onDelete"] }] });
|
|
211
|
+
}
|
|
212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentEditorComponent, decorators: [{
|
|
213
|
+
type: Component,
|
|
214
|
+
args: [{ selector: 'oepa-document-editor', template: "<div *ngIf=\"document\">\n <div *ngIf=\"document.sections && document.sections.length > 0\">\n <div class=\"row\">\n <div class=\"col-sm-4\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\"\n (click)=\"insertBelowSection(document.sections[document.sections.length-1])\">\n Add new section\n </button>\n </div>\n <div class=\"col-sm-8\">\n </div>\n <div class=\"col-sm-12\" class=\"row\">\n <tabset #documentSectionTabs>\n <tab *ngFor=\"let s of document.sections; let i = index;\" (selectTab)=\"onSectionTabSelect(i)\"\n [removable]=\"allowRemoveSection\" (removed)=\"deleteSection(s)\">\n <ng-template tabHeading>\n <span>\n <span>{{s.name}}</span>\n <span *ngIf=\"showSectionOptions\"> <i class=\"bi bi-pencil-fill\"\n (click)=\"editSection(s)\"></i> <i class=\"bi bi-x-lg\"\n (click)=\"deleteSection(s)\"></i></span>\n </span>\n </ng-template>\n <oepa-document-section [section]=\"s\" (onMoveUp)=\"moveSectionUp($event)\"\n (onInsertAbove)=\"insertAboveSection($event)\" (onMoveDown)=\"moveSectionDown($event)\"\n (onInsertBelow)=\"insertBelowSection($event)\" (onDelete)=\"deleteSection($event)\">\n </oepa-document-section>\n </tab>\n </tabset>\n </div>\n </div>\n </div>\n</div>" }]
|
|
215
|
+
}], ctorParameters: () => [{ type: i1.BsModalService }, { type: i2.ToastrService }, { type: i3.DocumentService }], propDecorators: { document: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], allowRemoveSection: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], showSectionOptions: [{
|
|
220
|
+
type: Input
|
|
221
|
+
}], documentSectionTabs: [{
|
|
222
|
+
type: ViewChild,
|
|
223
|
+
args: ['documentSectionTabs', { static: false }]
|
|
224
|
+
}] } });
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvZG9jdW1lbnQvZG9jdW1lbnQtZWRpdG9yL2RvY3VtZW50LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LWVkaXRvci9kb2N1bWVudC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQU1uRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7Ozs7QUFPbkcsTUFBTSxPQUFPLHVCQUF1QjtJQVdkO0lBQ1Y7SUFDQTtJQVhELFFBQVEsQ0FBNkI7SUFDckMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQzNCLGtCQUFrQixHQUFZLEtBQUssQ0FBQztJQUVRLG1CQUFtQixDQUFtQjtJQUVwRixJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ1osTUFBTSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUVwQyxZQUFvQixZQUE0QixFQUN0QyxNQUFxQixFQUNyQixlQUFnQztRQUZ0QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDdEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFFMUMsQ0FBQztJQUVELFFBQVE7UUFDTiwyREFBMkQ7UUFDM0QsbUZBQW1GO1FBQ25GLHVDQUF1QztRQUN2Qyx5Q0FBeUM7UUFDekMsa0RBQWtEO1FBQ2xELDBDQUEwQztRQUMxQyxVQUFVO1FBQ1YsVUFB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LEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsR0FBRyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQWhOVSx1QkFBdUI7NEZBQXZCLHVCQUF1Qiw4U0NmcEMsaXdEQWdDTTs7NEZEakJPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0I7NklBTXZCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFK0MsbUJBQW1CO3NCQUF2RSxTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudCB9IGZyb20gJy4uL3BvcnRhbC1kb2N1bWVudCc7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudFNlY3Rpb24gfSBmcm9tICcuLi9wb3J0YWwtZG9jdW1lbnQtc2VjdGlvbic7XG5pbXBvcnQgeyBEb2N1bWVudFNlcnZpY2UgfSBmcm9tICcuLi9kb2N1bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBTZWN0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9zZWN0aW9uLW1vZGFsL3NlY3Rpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYnNldENvbXBvbmVudCB9IGZyb20gJ25neC1ib290c3RyYXAvdGFicyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1kb2N1bWVudC1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtZWRpdG9yLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgZG9jdW1lbnQ6IFBvcnRhbERvY3VtZW50IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBhbGxvd1JlbW92ZVNlY3Rpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd1NlY3Rpb25PcHRpb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZG9jdW1lbnRTZWN0aW9uVGFicycsIHsgc3RhdGljOiBmYWxzZSB9KSBkb2N1bWVudFNlY3Rpb25UYWJzPzogVGFic2V0Q29tcG9uZW50O1xuXG4gIHB1YmxpYyBidXN5ID0gZmFsc2U7XG4gIHByaXZhdGUgc3RhdGljIHNlbGVjdGVkVGFiSW5kZXggPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIFRPRE8gYWRkIGNoZWNrIGZvciBEU1dTV0lNU1N5c3RlbUFkbWluIHRvIHRoZSBOUERFUyBjb2RlXG4gICAgLy8gdGhpcy51c2VyQWNjb3VudFNlcnZpY2UucmV0cmlldmVBY2NvdW50Rm9yQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKGFjY291bnQpID0+IHtcbiAgICAvLyAgIGlmIChhY2NvdW50ICYmIGFjY291bnQucm9sZUxpc3QpIHtcbiAgICAvLyAgICAgYWNjb3VudC5yb2xlTGlzdC5mb3JFYWNoKHJvbGUgPT4ge1xuICAgIC8vICAgICAgIGlmIChyb2xlLm5hbWUgPT0gJ0RTV1NXSU1TU3lzdGVtQWRtaW4nKSB7XG4gICAgLy8gICAgICAgICB0aGlzLnNob3dTZWN0aW9uT3B0aW9ucyA9IHRydWU7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9KTtcbiAgICAvLyAgIH0gZWxzZSB7XG4gICAgLy8gICAgIGFsZXJ0KCdObyBBY2NvdW50IGNvdWxkIGJlIGZvdW5kIGluIHRoZSBPZXBhQWNjb3VudFNlcnZpY2UhJyk7XG4gICAgLy8gICB9XG4gICAgLy8gfSk7XG4gIH1cblxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudFNlY3Rpb25UYWJzPy50YWJzW0RvY3VtZW50RWRpdG9yQ29tcG9uZW50LnNlbGVjdGVkVGFiSW5kZXhdKSB7XG4gICAgICB0aGlzLmRvY3VtZW50U2VjdGlvblRhYnMudGFic1tEb2N1bWVudEVkaXRvckNvbXBvbmVudC5zZWxlY3RlZFRhYkluZGV4XS5hY3RpdmUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNlY3Rpb25UYWJTZWxlY3QoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnNvbGUubG9nKGluZGV4KVxuICAgIGNvbnNvbGUubG9nKERvY3VtZW50RWRpdG9yQ29tcG9uZW50LnNlbGVjdGVkVGFiSW5kZXgpXG4gICAgRG9jdW1lbnRFZGl0b3JDb21wb25lbnQuc2VsZWN0ZWRUYWJJbmRleCA9IGluZGV4O1xuICAgIGlmICh0aGlzLmRvY3VtZW50U2VjdGlvblRhYnM/LnRhYnNbRG9jdW1lbnRFZGl0b3JDb21wb25lbnQuc2VsZWN0ZWRUYWJJbmRleF0pIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZVNlbGVjdGVkU2VjdGlvbk5hbWUodGhpcy5kb2N1bWVudFNlY3Rpb25UYWJzLnRhYnNbRG9jdW1lbnRFZGl0b3JDb21wb25lbnQuc2VsZWN0ZWRUYWJJbmRleF0uaGVhZGluZyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRvY3VtZW50U2VjdGlvblRhYnM/LnRhYnNbRG9jdW1lbnRFZGl0b3JDb21wb25lbnQuc2VsZWN0ZWRUYWJJbmRleF0pIHtcbiAgICAgIHRoaXMuZWRpdFNlY3Rpb24odGhpcy5kb2N1bWVudFNlY3Rpb25UYWJzLnRhYnNbRG9jdW1lbnRFZGl0b3JDb21wb25lbnQuc2VsZWN0ZWRUYWJJbmRleF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBtb3ZlU2VjdGlvblVwKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGlmIChzZWN0aW9uLnNlcXVlbmNlICYmIHNlY3Rpb24uc2VxdWVuY2UgPiAxKSB7XG4gICAgICBsZXQgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRvY3VtZW50KTtcbiAgICAgIGlmIChjbG9uZS5zZWN0aW9ucykge1xuICAgICAgICBjbG9uZS5zZWN0aW9ucy5zcGxpY2Uoc2VjdGlvbi5zZXF1ZW5jZSAtIDIsIDAsIGNsb25lLnNlY3Rpb25zLnNwbGljZShzZWN0aW9uLnNlcXVlbmNlIC0gMSwgMSlbMF0pO1xuICAgICAgICB0aGlzLnJlc2VxdWVuY2UoY2xvbmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEb2N1bWVudEdyb3VwKGNsb25lKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuaWQgfHwgJycpO1xuICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB1cGRhdGluZyBkb2N1bWVudDogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b2FzdHIuaW5mbygnQ2Fubm90IG1vdmUgdG9wIHNlY3Rpb24gdXAnLCAnJywgeyBkaXNhYmxlVGltZU91dDogZmFsc2UsIHRpbWVPdXQ6IDUwMDAgfSk7XG4gICAgfVxuXG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0QWJvdmVTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGlmIChzZWN0aW9uLnNlcXVlbmNlKSB7XG4gICAgICBsZXQgbmV3U2VjdGlvbiA9IHRoaXMubmV3U2VjdGlvbihzZWN0aW9uLnNlcXVlbmNlIC0gMSB8fCAxKTtcbiAgICAgIHRoaXMuaW5zZXJ0U2VjdGlvbihzZWN0aW9uLnNlcXVlbmNlIC0gMSwgbmV3U2VjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1vdmVTZWN0aW9uRG93bihzZWN0aW9uOiBQb3J0YWxEb2N1bWVudFNlY3Rpb24pIHtcbiAgICBpZiAoc2VjdGlvbi5zZXF1ZW5jZSAmJiB0aGlzLmRvY3VtZW50ICYmIHRoaXMuZG9jdW1lbnQuc2VjdGlvbnMgJiYgc2VjdGlvbi5zZXF1ZW5jZSA8IHRoaXMuZG9jdW1lbnQuc2VjdGlvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgbGV0IGNsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kb2N1bWVudCk7XG4gICAgICBpZiAoY2xvbmUuc2VjdGlvbnMpIHtcbiAgICAgICAgY2xvbmUuc2VjdGlvbnMuc3BsaWNlKHNlY3Rpb24uc2VxdWVuY2UsIDAsIGNsb25lLnNlY3Rpb25zLnNwbGljZShzZWN0aW9uLnNlcXVlbmNlIC0gMSwgMSlbMF0pO1xuICAgICAgICB0aGlzLnJlc2VxdWVuY2UoY2xvbmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEb2N1bWVudEdyb3VwKGNsb25lKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuaWQgfHwgJycpO1xuICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB1cGRhdGluZyBkb2N1bWVudDogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b2FzdHIuaW5mbygnQ2Fubm90IG1vdmUgYm90dG9tIHNlY3Rpb24gZG93bicsICcnLCB7IGRpc2FibGVUaW1lT3V0OiBmYWxzZSwgdGltZU91dDogNTAwMCB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0QmVsb3dTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGlmIChzZWN0aW9uLnNlcXVlbmNlKSB7XG4gICAgICBsZXQgbmV3U2VjdGlvbiA9IHRoaXMubmV3U2VjdGlvbihzZWN0aW9uLnNlcXVlbmNlICsgMSk7XG4gICAgICB0aGlzLmluc2VydFNlY3Rpb24oc2VjdGlvbi5zZXF1ZW5jZSwgbmV3U2VjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuZXdTZWN0aW9uKHNlcXVlbmNlOiBudW1iZXIpOiBQb3J0YWxEb2N1bWVudFNlY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBkb2N1bWVudElEOiB0aGlzLmRvY3VtZW50Py5pZCxcbiAgICAgIHNlcXVlbmNlOiBzZXF1ZW5jZSxcbiAgICAgIG5hbWU6ICdTZWN0aW9uICcgKyBzZXF1ZW5jZSxcbiAgICAgIGdyb3VwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0dyb3VwIDEnLFxuICAgICAgICAgIHBhcnRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdQYXJhZ3JhcGggMScsXG4gICAgICAgICAgICAgIHRleHQ6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiAnJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG4gIHByaXZhdGUgaW5zZXJ0U2VjdGlvbihpbnNlcnRJbmRleDogbnVtYmVyLCBuZXdTZWN0aW9uOiBQb3J0YWxEb2N1bWVudFNlY3Rpb24pIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICBsYWJlbDogJ0luc2VydCBTZWN0aW9uJyxcbiAgICAgIHNlY3Rpb246IG5ld1NlY3Rpb25cbiAgICB9XG4gICAgbGV0IG1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhTZWN0aW9uTW9kYWxDb21wb25lbnQsIHsgaW5pdGlhbFN0YXRlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuICAgICg8U2VjdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLm9uU2VjdGlvblNhdmUuc3Vic2NyaWJlKHVwZGF0ZWRTZWN0aW9uID0+IHtcbiAgICAgIHRoaXMuYnVzeSA9IHRydWU7XG4gICAgICBsZXQgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRvY3VtZW50KTtcbiAgICAgIGlmIChjbG9uZS5zZWN0aW9ucykge1xuICAgICAgICBjbG9uZS5zZWN0aW9ucy5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIHVwZGF0ZWRTZWN0aW9uKTtcbiAgICAgICAgdGhpcy5yZXNlcXVlbmNlKGNsb25lKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlRG9jdW1lbnQoY2xvbmUpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlRGNvdW1lbnRJRChjbG9uZS5pZCB8fCAnJyk7XG4gICAgICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgc2VjdGlvbjogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNlcXVlbmNlKGRvY3VtZW50OiBQb3J0YWxEb2N1bWVudCkge1xuICAgIGxldCBzZXF1ZW5jZSA9IDE7XG4gICAgaWYgKGRvY3VtZW50LnNlY3Rpb25zKSB7XG4gICAgICBkb2N1bWVudC5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgICBzZWN0aW9uLnNlcXVlbmNlID0gc2VxdWVuY2UrKztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGhlYWRlclRleHQ6ICdEZWxldGUgU2VjdGlvbicsXG4gICAgICBib2R5VGV4dDogJ0RlbGV0ZSBTZWN0aW9uICcgKyBzZWN0aW9uLm5hbWUgKyAnPycsXG4gICAgICBjb25maXJtQnRuTGFiZWw6ICdZZXMnLFxuICAgICAgY2FuY2VsQnRuTGFiZWw6ICdObydcbiAgICB9XG4gICAgbGV0IG1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpbml0aWFsU3RhdGUsIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUgfSk7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICAgIGxldCBjbG9uZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZG9jdW1lbnQpO1xuICAgICAgaWYgKGNsb25lLnNlY3Rpb25zKSB7XG4gICAgICAgIGNsb25lLnNlY3Rpb25zID0gY2xvbmUuc2VjdGlvbnMuZmlsdGVyKGtlZXAgPT4ge1xuICAgICAgICAgIGtlZXAuaWQgIT0gc2VjdGlvbi5pZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVzZXF1ZW5jZShjbG9uZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50KGNsb25lKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmRlbGV0ZURvY3VtZW50U2VjdGlvbihzZWN0aW9uKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlRGNvdW1lbnRJRChjbG9uZS5pZCB8fCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgZGVsZXRpbmcgc2VjdGlvbjogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB1cGRhdGluZyBkb2N1bWVudDogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVkaXRTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGxhYmVsOiAnRWRpdCBTZWN0aW9uIEF0dHJpYnV0ZXMnLFxuICAgICAgc2VjdGlvbjogc2VjdGlvblxuICAgIH1cbiAgICBsZXQgbW9kYWwgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KFNlY3Rpb25Nb2RhbENvbXBvbmVudCwgeyBpbml0aWFsU3RhdGUsIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUgfSk7XG4gICAgKDxTZWN0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkub25TZWN0aW9uU2F2ZS5zdWJzY3JpYmUodXBkYXRlZFNlY3Rpb24gPT4ge1xuICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50U2VjdGlvbih1cGRhdGVkU2VjdGlvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHVwZGF0aW5nIHNlY3Rpb246ICcgKyBlcnIsICdFUlJPUicpO1xuICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cImRvY3VtZW50XCI+XG4gICAgPGRpdiAqbmdJZj1cImRvY3VtZW50LnNlY3Rpb25zICYmIGRvY3VtZW50LnNlY3Rpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluc2VydEJlbG93U2VjdGlvbihkb2N1bWVudC5zZWN0aW9uc1tkb2N1bWVudC5zZWN0aW9ucy5sZW5ndGgtMV0pXCI+XG4gICAgICAgICAgICAgICAgICAgIEFkZCBuZXcgc2VjdGlvblxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiIGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPHRhYnNldCAjZG9jdW1lbnRTZWN0aW9uVGFicz5cbiAgICAgICAgICAgICAgICAgICAgPHRhYiAqbmdGb3I9XCJsZXQgcyBvZiBkb2N1bWVudC5zZWN0aW9uczsgbGV0IGkgPSBpbmRleDtcIiAoc2VsZWN0VGFiKT1cIm9uU2VjdGlvblRhYlNlbGVjdChpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cImFsbG93UmVtb3ZlU2VjdGlvblwiIChyZW1vdmVkKT1cImRlbGV0ZVNlY3Rpb24ocylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0YWJIZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3MubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dTZWN0aW9uT3B0aW9uc1wiPiZuYnNwOzxpIGNsYXNzPVwiYmkgYmktcGVuY2lsLWZpbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0U2VjdGlvbihzKVwiPjwvaT4gJm5ic3A7PGkgY2xhc3M9XCJiaSBiaS14LWxnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2VjdGlvbihzKVwiPjwvaT48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvZXBhLWRvY3VtZW50LXNlY3Rpb24gW3NlY3Rpb25dPVwic1wiIChvbk1vdmVVcCk9XCJtb3ZlU2VjdGlvblVwKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkluc2VydEFib3ZlKT1cImluc2VydEFib3ZlU2VjdGlvbigkZXZlbnQpXCIgKG9uTW92ZURvd24pPVwibW92ZVNlY3Rpb25Eb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkluc2VydEJlbG93KT1cImluc2VydEJlbG93U2VjdGlvbigkZXZlbnQpXCIgKG9uRGVsZXRlKT1cImRlbGV0ZVNlY3Rpb24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vZXBhLWRvY3VtZW50LXNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvdGFiPlxuICAgICAgICAgICAgICAgIDwvdGFic2V0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var DocumentEventEntityType;
|
|
2
|
+
(function (DocumentEventEntityType) {
|
|
3
|
+
DocumentEventEntityType[DocumentEventEntityType["Section"] = 0] = "Section";
|
|
4
|
+
DocumentEventEntityType[DocumentEventEntityType["Group"] = 1] = "Group";
|
|
5
|
+
DocumentEventEntityType[DocumentEventEntityType["Part"] = 2] = "Part";
|
|
6
|
+
})(DocumentEventEntityType || (DocumentEventEntityType = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZXZlbnQtZW50aXR5LXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LWV2ZW50LWVudGl0eS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHVCQUlYO0FBSkQsV0FBWSx1QkFBdUI7SUFDL0IsMkVBQU8sQ0FBQTtJQUNQLHVFQUFLLENBQUE7SUFDTCxxRUFBSSxDQUFBO0FBQ1IsQ0FBQyxFQUpXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFJbEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBEb2N1bWVudEV2ZW50RW50aXR5VHlwZSB7XG4gICAgU2VjdGlvbixcbiAgICBHcm91cCxcbiAgICBQYXJ0XG59Il19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var DocumentEventType;
|
|
2
|
+
(function (DocumentEventType) {
|
|
3
|
+
DocumentEventType[DocumentEventType["Create"] = 0] = "Create";
|
|
4
|
+
DocumentEventType[DocumentEventType["Update"] = 1] = "Update";
|
|
5
|
+
DocumentEventType[DocumentEventType["Delete"] = 2] = "Delete";
|
|
6
|
+
})(DocumentEventType || (DocumentEventType = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZXZlbnQtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvZG9jdW1lbnQvZG9jdW1lbnQtZXZlbnQtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxpQkFJWDtBQUpELFdBQVksaUJBQWlCO0lBQ3pCLDZEQUFNLENBQUE7SUFDTiw2REFBTSxDQUFBO0lBQ04sNkRBQU0sQ0FBQTtBQUNWLENBQUMsRUFKVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBSTVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRG9jdW1lbnRFdmVudFR5cGUge1xuICAgIENyZWF0ZSxcbiAgICBVcGRhdGUsXG4gICAgRGVsZXRlXG59Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N1bWVudEV2ZW50RW50aXR5VHlwZSB9IGZyb20gXCIuL2RvY3VtZW50LWV2ZW50LWVudGl0eS10eXBlXCI7XG5pbXBvcnQgeyBEb2N1bWVudEV2ZW50VHlwZSB9IGZyb20gXCIuL2RvY3VtZW50LWV2ZW50LXR5cGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudEV2ZW50IHtcbiAgICBldmVudFR5cGU/OiBEb2N1bWVudEV2ZW50VHlwZTtcbiAgICBlbnRpdHlUeXBlPzogRG9jdW1lbnRFdmVudEVudGl0eVR5cGU7XG4gICAgZW50aXR5SUQ/OiBzdHJpbmc7XG4gICAgY29uZmlybWF0aW9uTWVzc2FnZT86IHN0cmluZztcbiAgICBlbnRpdHk/OiBhbnk7XG59Il19
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { GroupModalComponent } from '../group-modal/group-modal.component';
|
|
3
|
+
import { DocumentEventType } from '../document-event-type';
|
|
4
|
+
import { DocumentEventEntityType } from '../document-event-entity-type';
|
|
5
|
+
import { ConfirmationModalComponent } from '../../confirmation-modal/confirmation-modal.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "ngx-bootstrap/modal";
|
|
8
|
+
import * as i2 from "ngx-toastr";
|
|
9
|
+
import * as i3 from "../document.service";
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
11
|
+
import * as i5 from "ngx-bootstrap/tooltip";
|
|
12
|
+
import * as i6 from "../document-part-editor/document-part-editor.component";
|
|
13
|
+
export class DocumentGroupComponent {
|
|
14
|
+
modalService;
|
|
15
|
+
toastr;
|
|
16
|
+
documentService;
|
|
17
|
+
group;
|
|
18
|
+
onMoveUp = new EventEmitter();
|
|
19
|
+
onInsertAbove = new EventEmitter();
|
|
20
|
+
onMoveDown = new EventEmitter();
|
|
21
|
+
onInsertBelow = new EventEmitter();
|
|
22
|
+
onDelete = new EventEmitter();
|
|
23
|
+
busy = false;
|
|
24
|
+
constructor(modalService, toastr, documentService) {
|
|
25
|
+
this.modalService = modalService;
|
|
26
|
+
this.toastr = toastr;
|
|
27
|
+
this.documentService = documentService;
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
}
|
|
31
|
+
moveUp() {
|
|
32
|
+
this.onMoveUp.emit(this.group);
|
|
33
|
+
}
|
|
34
|
+
insertAbove() {
|
|
35
|
+
this.onInsertAbove.emit(this.group);
|
|
36
|
+
}
|
|
37
|
+
moveDown() {
|
|
38
|
+
this.onMoveDown.emit(this.group);
|
|
39
|
+
}
|
|
40
|
+
insertBelow() {
|
|
41
|
+
this.onInsertBelow.emit(this.group);
|
|
42
|
+
}
|
|
43
|
+
delete() {
|
|
44
|
+
this.onDelete.emit(this.group);
|
|
45
|
+
}
|
|
46
|
+
movePartUp(part) {
|
|
47
|
+
if (part.sequence && part.sequence > 1) {
|
|
48
|
+
let clone = Object.assign({}, this.group);
|
|
49
|
+
if (clone.parts && clone.documentID) {
|
|
50
|
+
clone.parts.splice(part.sequence - 2, 0, clone.parts.splice(part.sequence - 1, 1)[0]);
|
|
51
|
+
this.resequence(clone);
|
|
52
|
+
this.documentService.updateDocumentGroup(clone).subscribe({
|
|
53
|
+
next: () => {
|
|
54
|
+
this.documentService.updateDcoumentID(clone.documentID || '');
|
|
55
|
+
}, error: err => {
|
|
56
|
+
this.toastr.error('Failed updating group: ' + err, 'ERROR');
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
insertAbovePart(part) {
|
|
63
|
+
if (part.sequence) {
|
|
64
|
+
let newPart = this.newPart(part.sequence - 1 || 1);
|
|
65
|
+
this.insertPart(part.sequence - 1, newPart);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
movePartDown(part) {
|
|
69
|
+
if (part.sequence && this.group.parts && part.sequence < this.group.parts.length) {
|
|
70
|
+
let clone = Object.assign({}, this.group);
|
|
71
|
+
if (clone.parts && clone.documentID) {
|
|
72
|
+
clone.parts.splice(part.sequence, 0, clone.parts.splice(part.sequence - 1, 1)[0]);
|
|
73
|
+
this.resequence(clone);
|
|
74
|
+
this.documentService.updateDocumentGroup(clone).subscribe({
|
|
75
|
+
next: () => {
|
|
76
|
+
this.documentService.updateDcoumentID(clone.documentID || '');
|
|
77
|
+
}, error: err => {
|
|
78
|
+
this.toastr.error('Failed updating group: ' + err, 'ERROR');
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
insertBelowPart(part) {
|
|
85
|
+
if (part.sequence) {
|
|
86
|
+
let newPart = this.newPart(part.sequence + 1);
|
|
87
|
+
this.insertPart(part.sequence, newPart);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
newPart(sequence) {
|
|
91
|
+
return {
|
|
92
|
+
groupID: this.group.id,
|
|
93
|
+
documentID: this.group.documentID,
|
|
94
|
+
sequence: sequence,
|
|
95
|
+
name: 'Paragraph ' + sequence,
|
|
96
|
+
display: true,
|
|
97
|
+
required: true
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
insertPart(insertIndex, newPart) {
|
|
101
|
+
const initialState = {
|
|
102
|
+
headerText: 'Insert Paragraph',
|
|
103
|
+
bodyText: 'Insert new paragraph?'
|
|
104
|
+
};
|
|
105
|
+
let modal = this.modalService.show(ConfirmationModalComponent, { initialState, ignoreBackdropClick: true });
|
|
106
|
+
modal.content.confirmClicked.subscribe(() => {
|
|
107
|
+
let clone = Object.assign({}, this.group);
|
|
108
|
+
if (clone.parts && clone.documentID) {
|
|
109
|
+
clone.parts.splice(insertIndex, 0, newPart);
|
|
110
|
+
this.resequence(clone);
|
|
111
|
+
this.documentService.createDocumentPart(newPart).subscribe({
|
|
112
|
+
next: partID => {
|
|
113
|
+
newPart.id = partID;
|
|
114
|
+
this.documentService.updateDocumentGroup(clone).subscribe({
|
|
115
|
+
next: () => {
|
|
116
|
+
this.documentService.updateDcoumentID(clone.documentID || '');
|
|
117
|
+
}, error: err => {
|
|
118
|
+
this.toastr.error('Failed updating group: ' + err, 'ERROR');
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}, error: err => {
|
|
122
|
+
this.toastr.error('Failed inserting paragraph: ' + err, 'ERROR');
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
deletePart(part) {
|
|
129
|
+
let bodyText = 'Delete paragraph ' + part.name + '?';
|
|
130
|
+
const eventOverride = this.documentService.isOverriddenEvent({ eventType: DocumentEventType.Delete, entityType: DocumentEventEntityType.Part });
|
|
131
|
+
if (eventOverride && eventOverride.confirmationMessage) {
|
|
132
|
+
bodyText = eventOverride.confirmationMessage;
|
|
133
|
+
}
|
|
134
|
+
const initialState = {
|
|
135
|
+
headerText: 'Delete Paragraph',
|
|
136
|
+
bodyText: bodyText,
|
|
137
|
+
confirmBtnLabel: 'Yes',
|
|
138
|
+
cancelBtnLabel: 'No'
|
|
139
|
+
};
|
|
140
|
+
let modal = this.modalService.show(ConfirmationModalComponent, { initialState, ignoreBackdropClick: true });
|
|
141
|
+
modal.content.confirmClicked.subscribe(() => {
|
|
142
|
+
this.doDeletePart(part);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
doDeletePart(part) {
|
|
146
|
+
let clone = Object.assign({}, this.group);
|
|
147
|
+
if (clone.parts && clone.documentID) {
|
|
148
|
+
clone.parts = clone.parts.filter(keep => {
|
|
149
|
+
keep.id != part.id;
|
|
150
|
+
});
|
|
151
|
+
this.resequence(clone);
|
|
152
|
+
this.documentService.updateDocumentGroup(clone).subscribe({
|
|
153
|
+
next: () => {
|
|
154
|
+
this.documentService.deleteDocumentPart(part).subscribe({
|
|
155
|
+
next: () => {
|
|
156
|
+
this.documentService.updateDcoumentID(clone.documentID || '');
|
|
157
|
+
}, error: err => {
|
|
158
|
+
this.toastr.error('Failed deleting paragraph: ' + err, 'ERROR');
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}, error: err => {
|
|
162
|
+
this.toastr.error('Failed updating group: ' + err, 'ERROR');
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
resequence(group) {
|
|
168
|
+
let sequence = 1;
|
|
169
|
+
if (group.parts) {
|
|
170
|
+
group.parts.forEach(part => {
|
|
171
|
+
part.sequence = sequence++;
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
editGroup(group) {
|
|
176
|
+
const initialState = {
|
|
177
|
+
label: 'Edit Group Attributes',
|
|
178
|
+
group: group
|
|
179
|
+
};
|
|
180
|
+
let modal = this.modalService.show(GroupModalComponent, { initialState, ignoreBackdropClick: true });
|
|
181
|
+
modal.content.onGroupSave.subscribe(updatedGroup => {
|
|
182
|
+
this.busy = true;
|
|
183
|
+
this.documentService.updateDocumentGroup(updatedGroup).subscribe(() => {
|
|
184
|
+
this.busy = false;
|
|
185
|
+
}, err => {
|
|
186
|
+
this.toastr.error('Failed updating group: ' + err, 'ERROR');
|
|
187
|
+
this.busy = false;
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentGroupComponent, deps: [{ token: i1.BsModalService }, { token: i2.ToastrService }, { token: i3.DocumentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
192
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentGroupComponent, selector: "oepa-document-group", inputs: { group: "group" }, outputs: { onMoveUp: "onMoveUp", onInsertAbove: "onInsertAbove", onMoveDown: "onMoveDown", onInsertBelow: "onInsertBelow", onDelete: "onDelete" }, ngImport: i0, template: "<div *ngIf=\"group\" class=\"card\">\n <div *ngIf=\"!group.isCollapsed\" class=\"row\">\n <div class=\"col-sm-10\">\n <div *ngIf=\"group.parts && group.parts.length > 0\">\n <div *ngFor=\"let p of group.parts\" class=\"row\">\n <div class=\"col-sm-12\">\n <oepa-document-part-editor [part]=\"p\" (onMoveUp)=\"movePartUp($event)\"\n (onInsertAbove)=\"insertAbovePart($event)\" (onMoveDown)=\"movePartDown($event)\"\n (onInsertBelow)=\"insertBelowPart($event)\" (onDelete)=\"deletePart($event)\">\n </oepa-document-part-editor>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-sm-2 alert alert-info\" role=\"alert\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <button [id]=\"'deleteGroup'+group.sequence\" class=\"btn\" (click)=\"this.delete()\" tooltip=\"Delete Group\">\n <i class=\"bi bi-trash\"></i> \n </button>\n {{group.name || ''}}\n </div>\n <div class=\"col-sm-12\">\n <button [id]=\"'moveGroupUp'+group.sequence\" class=\"btn\" (click)=\"moveUp()\" tooltip=\"Move Group Up\">\n <i class=\"bi bi-chevron-double-up\"></i>\n </button>\n <button [id]=\"'insertaboveGroup'+group.sequence\" class=\"btn\" (click)=\"insertAbove()\" tooltip=\"Insert Group Above\">\n <i class=\"bi bi-arrow-up-circle\"></i>\n </button>\n </div>\n <div class=\"col-sm-12\">\n <button [id]=\"'moveGroupDown'+group.sequence\" class=\"btn\" (click)=\"moveDown()\" tooltip=\"Move Group Down\">\n <i class=\"bi bi-chevron-double-down\"></i>\n </button>\n <button [id]=\"'insertBelowGroup'+group.sequence\" class=\"btn\" (click)=\"insertBelow()\" tooltip=\"Insert Group Below\">\n <i class=\"bi bi-arrow-down-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i6.DocumentPartEditorComponent, selector: "oepa-document-part-editor", inputs: ["part", "editing"], outputs: ["partChange", "onMoveUp", "onInsertAbove", "onMoveDown", "onInsertBelow", "onDelete"] }] });
|
|
193
|
+
}
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentGroupComponent, decorators: [{
|
|
195
|
+
type: Component,
|
|
196
|
+
args: [{ selector: 'oepa-document-group', template: "<div *ngIf=\"group\" class=\"card\">\n <div *ngIf=\"!group.isCollapsed\" class=\"row\">\n <div class=\"col-sm-10\">\n <div *ngIf=\"group.parts && group.parts.length > 0\">\n <div *ngFor=\"let p of group.parts\" class=\"row\">\n <div class=\"col-sm-12\">\n <oepa-document-part-editor [part]=\"p\" (onMoveUp)=\"movePartUp($event)\"\n (onInsertAbove)=\"insertAbovePart($event)\" (onMoveDown)=\"movePartDown($event)\"\n (onInsertBelow)=\"insertBelowPart($event)\" (onDelete)=\"deletePart($event)\">\n </oepa-document-part-editor>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-sm-2 alert alert-info\" role=\"alert\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <button [id]=\"'deleteGroup'+group.sequence\" class=\"btn\" (click)=\"this.delete()\" tooltip=\"Delete Group\">\n <i class=\"bi bi-trash\"></i> \n </button>\n {{group.name || ''}}\n </div>\n <div class=\"col-sm-12\">\n <button [id]=\"'moveGroupUp'+group.sequence\" class=\"btn\" (click)=\"moveUp()\" tooltip=\"Move Group Up\">\n <i class=\"bi bi-chevron-double-up\"></i>\n </button>\n <button [id]=\"'insertaboveGroup'+group.sequence\" class=\"btn\" (click)=\"insertAbove()\" tooltip=\"Insert Group Above\">\n <i class=\"bi bi-arrow-up-circle\"></i>\n </button>\n </div>\n <div class=\"col-sm-12\">\n <button [id]=\"'moveGroupDown'+group.sequence\" class=\"btn\" (click)=\"moveDown()\" tooltip=\"Move Group Down\">\n <i class=\"bi bi-chevron-double-down\"></i>\n </button>\n <button [id]=\"'insertBelowGroup'+group.sequence\" class=\"btn\" (click)=\"insertBelow()\" tooltip=\"Insert Group Below\">\n <i class=\"bi bi-arrow-down-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>" }]
|
|
197
|
+
}], ctorParameters: () => [{ type: i1.BsModalService }, { type: i2.ToastrService }, { type: i3.DocumentService }], propDecorators: { group: [{
|
|
198
|
+
type: Input
|
|
199
|
+
}], onMoveUp: [{
|
|
200
|
+
type: Output
|
|
201
|
+
}], onInsertAbove: [{
|
|
202
|
+
type: Output
|
|
203
|
+
}], onMoveDown: [{
|
|
204
|
+
type: Output
|
|
205
|
+
}], onInsertBelow: [{
|
|
206
|
+
type: Output
|
|
207
|
+
}], onDelete: [{
|
|
208
|
+
type: Output
|
|
209
|
+
}] } });
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9kb2N1bWVudC9kb2N1bWVudC1ncm91cC9kb2N1bWVudC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LWdyb3VwL2RvY3VtZW50LWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7Ozs7O0FBT25HLE1BQU0sT0FBTyxzQkFBc0I7SUFZYjtJQUNWO0lBQ0E7SUFiRCxLQUFLLENBQXVCO0lBRTNCLFFBQVEsR0FBdUMsSUFBSSxZQUFZLEVBQXVCLENBQUM7SUFDdkYsYUFBYSxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztJQUMzRixVQUFVLEdBQXNDLElBQUksWUFBWSxFQUF1QixDQUFDO0lBQ3hGLGFBQWEsR0FBc0MsSUFBSSxZQUFZLEVBQXVCLENBQUM7SUFDM0YsUUFBUSxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztJQUd6RixJQUFJLEdBQUcsS0FBSyxDQUFDO0lBRXBCLFlBQW9CLFlBQTRCLEVBQ3RDLE1BQXFCLEVBQ3JCLGVBQWdDO1FBRnRCLGlCQUFZLEdBQVosWUFBWSxDQUFn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RkFBdEIsc0JBQXNCLDBPQ2pCbkMsazhFQXlDTTs7NEZEeEJPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7NklBS3RCLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudEdyb3VwIH0gZnJvbSAnLi4vcG9ydGFsLWRvY3VtZW50LWdyb3VwJztcbmltcG9ydCB7IFBvcnRhbERvY3VtZW50UGFydCB9IGZyb20gJy4uL3BvcnRhbC1kb2N1bWVudC1wYXJ0JztcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4uL2RvY3VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IEdyb3VwTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9ncm91cC1tb2RhbC9ncm91cC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jdW1lbnRFdmVudFR5cGUgfSBmcm9tICcuLi9kb2N1bWVudC1ldmVudC10eXBlJztcbmltcG9ydCB7IERvY3VtZW50RXZlbnRFbnRpdHlUeXBlIH0gZnJvbSAnLi4vZG9jdW1lbnQtZXZlbnQtZW50aXR5LXR5cGUnO1xuaW1wb3J0IHsgRG9jdW1lbnRFdmVudCB9IGZyb20gJy4uL2RvY3VtZW50LWV2ZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29uZmlybWF0aW9uLW1vZGFsL2NvbmZpcm1hdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWRvY3VtZW50LWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtZ3JvdXAuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50R3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBncm91cCE6IFBvcnRhbERvY3VtZW50R3JvdXA7XG5cbiAgQE91dHB1dCgpIG9uTW92ZVVwOiAgRXZlbnRFbWl0dGVyPFBvcnRhbERvY3VtZW50R3JvdXA+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPigpO1xuICBAT3V0cHV0KCkgb25JbnNlcnRBYm92ZTogRXZlbnRFbWl0dGVyPFBvcnRhbERvY3VtZW50R3JvdXA+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPigpO1xuICBAT3V0cHV0KCkgb25Nb3ZlRG93bjogRXZlbnRFbWl0dGVyPFBvcnRhbERvY3VtZW50R3JvdXA+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPigpO1xuICBAT3V0cHV0KCkgb25JbnNlcnRCZWxvdzogRXZlbnRFbWl0dGVyPFBvcnRhbERvY3VtZW50R3JvdXA+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPigpO1xuICBAT3V0cHV0KCkgb25EZWxldGU6IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPiA9IG5ldyBFdmVudEVtaXR0ZXI8UG9ydGFsRG9jdW1lbnRHcm91cD4oKTtcblxuXG4gIHB1YmxpYyBidXN5ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgcHVibGljIG1vdmVVcCgpIHtcbiAgICB0aGlzLm9uTW92ZVVwLmVtaXQodGhpcy5ncm91cCk7XG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0QWJvdmUoKSB7XG4gICAgdGhpcy5vbkluc2VydEFib3ZlLmVtaXQodGhpcy5ncm91cCk7XG4gIH1cblxuICBwdWJsaWMgbW92ZURvd24oKSB7XG4gICAgdGhpcy5vbk1vdmVEb3duLmVtaXQodGhpcy5ncm91cCk7XG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0QmVsb3coKSB7XG4gICAgdGhpcy5vbkluc2VydEJlbG93LmVtaXQodGhpcy5ncm91cCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKCkge1xuICAgIHRoaXMub25EZWxldGUuZW1pdCh0aGlzLmdyb3VwKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlUGFydFVwKHBhcnQ6IFBvcnRhbERvY3VtZW50UGFydCkge1xuICAgIGlmIChwYXJ0LnNlcXVlbmNlICYmIHBhcnQuc2VxdWVuY2UgPiAxKSB7XG4gICAgICBsZXQgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdyb3VwKTtcbiAgICAgIGlmIChjbG9uZS5wYXJ0cyAmJiBjbG9uZS5kb2N1bWVudElEKSB7XG4gICAgICAgIGNsb25lLnBhcnRzLnNwbGljZShwYXJ0LnNlcXVlbmNlIC0gMiwgMCwgY2xvbmUucGFydHMuc3BsaWNlKHBhcnQuc2VxdWVuY2UgLSAxLCAxKVswXSk7XG4gICAgICAgIHRoaXMucmVzZXF1ZW5jZShjbG9uZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50R3JvdXAoY2xvbmUpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuZG9jdW1lbnRJRCB8fCAnJyk7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgZ3JvdXA6ICcgKyBlcnIsICdFUlJPUicpO1xuICAgICAgICB9fSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGluc2VydEFib3ZlUGFydChwYXJ0OiBQb3J0YWxEb2N1bWVudFBhcnQpIHtcbiAgICBpZiAocGFydC5zZXF1ZW5jZSkge1xuICAgICAgbGV0IG5ld1BhcnQgPSB0aGlzLm5ld1BhcnQocGFydC5zZXF1ZW5jZSAtIDEgfHwgMSk7XG4gICAgICB0aGlzLmluc2VydFBhcnQocGFydC5zZXF1ZW5jZSAtMSwgbmV3UGFydCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1vdmVQYXJ0RG93bihwYXJ0OiBQb3J0YWxEb2N1bWVudFBhcnQpIHtcbiAgICBpZiAocGFydC5zZXF1ZW5jZSAmJiB0aGlzLmdyb3VwLnBhcnRzICYmIHBhcnQuc2VxdWVuY2UgPCB0aGlzLmdyb3VwLnBhcnRzLmxlbmd0aCkge1xuICAgICAgbGV0IGNsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5ncm91cCk7XG4gICAgICBpZiAoY2xvbmUucGFydHMgJiYgY2xvbmUuZG9jdW1lbnRJRCkge1xuICAgICAgICBjbG9uZS5wYXJ0cy5zcGxpY2UocGFydC5zZXF1ZW5jZSwgMCwgY2xvbmUucGFydHMuc3BsaWNlKHBhcnQuc2VxdWVuY2UgLSAgMSwgMSlbMF0pO1xuICAgICAgICB0aGlzLnJlc2VxdWVuY2UoY2xvbmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEb2N1bWVudEdyb3VwKGNsb25lKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEY291bWVudElEKGNsb25lLmRvY3VtZW50SUQgfHwgJycpO1xuICAgICAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHVwZGF0aW5nIGdyb3VwOiAnICsgZXJyLCAnRVJST1InKTtcbiAgICAgICAgfX0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpbnNlcnRCZWxvd1BhcnQocGFydDogUG9ydGFsRG9jdW1lbnRQYXJ0KSB7XG4gICAgaWYgKHBhcnQuc2VxdWVuY2UpIHtcbiAgICAgIGxldCBuZXdQYXJ0ID0gdGhpcy5uZXdQYXJ0KHBhcnQuc2VxdWVuY2UgKyAxKTtcbiAgICAgIHRoaXMuaW5zZXJ0UGFydChwYXJ0LnNlcXVlbmNlLCBuZXdQYXJ0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5ld1BhcnQoc2VxdWVuY2U6IG51bWJlcikgOiBQb3J0YWxEb2N1bWVudFBhcnQge1xuICAgIHJldHVybiB7XG4gICAgICBncm91cElEOiB0aGlzLmdyb3VwLmlkLFxuICAgICAgZG9jdW1lbnRJRDogdGhpcy5ncm91cC5kb2N1bWVudElELFxuICAgICAgc2VxdWVuY2U6IHNlcXVlbmNlLFxuICAgICAgbmFtZTogJ1BhcmFncmFwaCAnICsgc2VxdWVuY2UsXG4gICAgICBkaXNwbGF5OiB0cnVlLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbnNlcnRQYXJ0KGluc2VydEluZGV4OiBudW1iZXIsIG5ld1BhcnQ6IFBvcnRhbERvY3VtZW50UGFydCkge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGhlYWRlclRleHQ6ICdJbnNlcnQgUGFyYWdyYXBoJyxcbiAgICAgIGJvZHlUZXh0OiAnSW5zZXJ0IG5ldyBwYXJhZ3JhcGg/J1xuICAgIH1cbiAgICBsZXQgbW9kYWwgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LCB7aW5pdGlhbFN0YXRlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlfSk7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgbGV0IGNsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5ncm91cCk7XG4gICAgICBpZiAoY2xvbmUucGFydHMgJiYgY2xvbmUuZG9jdW1lbnRJRCkge1xuICAgICAgICBjbG9uZS5wYXJ0cy5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIG5ld1BhcnQpO1xuICAgICAgICB0aGlzLnJlc2VxdWVuY2UoY2xvbmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5jcmVhdGVEb2N1bWVudFBhcnQobmV3UGFydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiBwYXJ0SUQgPT4ge1xuICAgICAgICAgIG5ld1BhcnQuaWQgPSBwYXJ0SUQ7XG4gICAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlRG9jdW1lbnRHcm91cChjbG9uZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuZG9jdW1lbnRJRCB8fCAnJyk7XG4gICAgICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHVwZGF0aW5nIGdyb3VwOiAnICsgZXJyLCAnRVJST1InKTtcbiAgICAgICAgICB9fSk7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgaW5zZXJ0aW5nIHBhcmFncmFwaDogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgIH19KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVQYXJ0KHBhcnQ6IFBvcnRhbERvY3VtZW50UGFydCkge1xuICAgIGxldCBib2R5VGV4dCA9ICdEZWxldGUgcGFyYWdyYXBoICcgKyBwYXJ0Lm5hbWUgKyAnPyc7XG4gICAgY29uc3QgZXZlbnRPdmVycmlkZTogRG9jdW1lbnRFdmVudCB8IHVuZGVmaW5lZCA9IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmlzT3ZlcnJpZGRlbkV2ZW50KHtldmVudFR5cGU6IERvY3VtZW50RXZlbnRUeXBlLkRlbGV0ZSwgZW50aXR5VHlwZTogRG9jdW1lbnRFdmVudEVudGl0eVR5cGUuUGFydH0pO1xuICAgIGlmIChldmVudE92ZXJyaWRlICYmIGV2ZW50T3ZlcnJpZGUuY29uZmlybWF0aW9uTWVzc2FnZSkge1xuICAgICAgYm9keVRleHQgPSBldmVudE92ZXJyaWRlLmNvbmZpcm1hdGlvbk1lc3NhZ2U7XG4gICAgfVxuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGhlYWRlclRleHQ6ICdEZWxldGUgUGFyYWdyYXBoJyxcbiAgICAgIGJvZHlUZXh0OiBib2R5VGV4dCxcbiAgICAgIGNvbmZpcm1CdG5MYWJlbDogJ1llcycsXG4gICAgICBjYW5jZWxCdG5MYWJlbDogJ05vJ1xuICAgIH1cbiAgICBsZXQgbW9kYWwgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LCB7aW5pdGlhbFN0YXRlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlfSk7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5kb0RlbGV0ZVBhcnQocGFydCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRvRGVsZXRlUGFydChwYXJ0OiBQb3J0YWxEb2N1bWVudFBhcnQpIHtcbiAgICBsZXQgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdyb3VwKTtcbiAgICBpZiAoY2xvbmUucGFydHMgJiYgY2xvbmUuZG9jdW1lbnRJRCkge1xuICAgICAgY2xvbmUucGFydHMgPSBjbG9uZS5wYXJ0cy5maWx0ZXIoa2VlcCA9PiB7XG4gICAgICAgIGtlZXAuaWQgIT0gcGFydC5pZDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5yZXNlcXVlbmNlKGNsb25lKTtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50R3JvdXAoY2xvbmUpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZGVsZXRlRG9jdW1lbnRQYXJ0KHBhcnQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuZG9jdW1lbnRJRCB8fCAnJyk7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgZGVsZXRpbmcgcGFyYWdyYXBoOiAnICsgZXJyLCAnRVJST1InKTtcbiAgICAgICAgfX0pO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgZ3JvdXA6ICcgKyBlcnIsICdFUlJPUicpO1xuICAgICAgfX0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXF1ZW5jZShncm91cDogUG9ydGFsRG9jdW1lbnRHcm91cCkge1xuICAgIGxldCBzZXF1ZW5jZSA9IDE7XG4gICAgaWYgKGdyb3VwLnBhcnRzKSB7XG4gICAgICBncm91cC5wYXJ0cy5mb3JFYWNoKHBhcnQgPT4ge1xuICAgICAgICBwYXJ0LnNlcXVlbmNlID0gc2VxdWVuY2UrKztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlZGl0R3JvdXAoZ3JvdXA6IFBvcnRhbERvY3VtZW50R3JvdXApIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICBsYWJlbDogJ0VkaXQgR3JvdXAgQXR0cmlidXRlcycsXG4gICAgICBncm91cDogZ3JvdXBcbiAgICB9XG4gICAgbGV0IG1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhHcm91cE1vZGFsQ29tcG9uZW50LCB7aW5pdGlhbFN0YXRlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlfSk7XG4gICAgKDxHcm91cE1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLm9uR3JvdXBTYXZlLnN1YnNjcmliZSh1cGRhdGVkR3JvdXAgPT4ge1xuICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50R3JvdXAodXBkYXRlZEdyb3VwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgZ3JvdXA6ICcgKyBlcnIsICdFUlJPUicpO1xuICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cImdyb3VwXCIgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZ3JvdXAuaXNDb2xsYXBzZWRcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJncm91cC5wYXJ0cyAmJiBncm91cC5wYXJ0cy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHAgb2YgZ3JvdXAucGFydHNcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvZXBhLWRvY3VtZW50LXBhcnQtZWRpdG9yIFtwYXJ0XT1cInBcIiAob25Nb3ZlVXApPVwibW92ZVBhcnRVcCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uSW5zZXJ0QWJvdmUpPVwiaW5zZXJ0QWJvdmVQYXJ0KCRldmVudClcIiAob25Nb3ZlRG93bik9XCJtb3ZlUGFydERvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkluc2VydEJlbG93KT1cImluc2VydEJlbG93UGFydCgkZXZlbnQpXCIgKG9uRGVsZXRlKT1cImRlbGV0ZVBhcnQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb2VwYS1kb2N1bWVudC1wYXJ0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0yIGFsZXJ0IGFsZXJ0LWluZm9cIiByb2xlPVwiYWxlcnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2lkXT1cIidkZWxldGVHcm91cCcrZ3JvdXAuc2VxdWVuY2VcIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJ0aGlzLmRlbGV0ZSgpXCIgdG9vbHRpcD1cIkRlbGV0ZSBHcm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdHJhc2hcIj48L2k+IFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDt7e2dyb3VwLm5hbWUgfHwgJyd9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbaWRdPVwiJ21vdmVHcm91cFVwJytncm91cC5zZXF1ZW5jZVwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cIm1vdmVVcCgpXCIgdG9vbHRpcD1cIk1vdmUgR3JvdXAgVXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tZG91YmxlLXVwXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtpZF09XCInaW5zZXJ0YWJvdmVHcm91cCcrZ3JvdXAuc2VxdWVuY2VcIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJpbnNlcnRBYm92ZSgpXCIgdG9vbHRpcD1cIkluc2VydCBHcm91cCBBYm92ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktYXJyb3ctdXAtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtpZF09XCInbW92ZUdyb3VwRG93bicrZ3JvdXAuc2VxdWVuY2VcIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJtb3ZlRG93bigpXCIgdG9vbHRpcD1cIk1vdmUgR3JvdXAgRG93blwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1kb3VibGUtZG93blwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbaWRdPVwiJ2luc2VydEJlbG93R3JvdXAnK2dyb3VwLnNlcXVlbmNlXCIgY2xhc3M9XCJidG5cIiAoY2xpY2spPVwiaW5zZXJ0QmVsb3coKVwiIHRvb2x0aXA9XCJJbnNlcnQgR3JvdXAgQmVsb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWFycm93LWRvd24tY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "../document-part-editor/document-part-editor.component";
|
|
5
|
+
export class DocumentPartComponent {
|
|
6
|
+
part;
|
|
7
|
+
constructor() { }
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
}
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentPartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentPartComponent, selector: "oepa-document-part", inputs: { part: "part" }, ngImport: i0, template: "<div *ngIf=\"part\">\n <oepa-document-part-editor [part]=\"part\"></oepa-document-part-editor>\n</div>\n<div *ngIf=\"part.parts && part.parts.length > 0\">\n <div *ngFor=\"let p of part.parts\">\n <oepa-document-part-editor [part]=\"p\"></oepa-document-part-editor>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DocumentPartEditorComponent, selector: "oepa-document-part-editor", inputs: ["part", "editing"], outputs: ["partChange", "onMoveUp", "onInsertAbove", "onMoveDown", "onInsertBelow", "onDelete"] }] });
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentPartComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ selector: 'oepa-document-part', template: "<div *ngIf=\"part\">\n <oepa-document-part-editor [part]=\"part\"></oepa-document-part-editor>\n</div>\n<div *ngIf=\"part.parts && part.parts.length > 0\">\n <div *ngFor=\"let p of part.parts\">\n <oepa-document-part-editor [part]=\"p\"></oepa-document-part-editor>\n </div>\n</div>\n" }]
|
|
16
|
+
}], ctorParameters: () => [], propDecorators: { part: [{
|
|
17
|
+
type: Input
|
|
18
|
+
}] } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtcGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LXBhcnQvZG9jdW1lbnQtcGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LXBhcnQvZG9jdW1lbnQtcGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLElBQUksQ0FBc0I7SUFFbkMsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7d0dBTlUscUJBQXFCOzRGQUFyQixxQkFBcUIsb0ZDUmxDLDhTQVFBOzs0RkRBYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usb0JBQW9CO3dEQUtyQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvcnRhbERvY3VtZW50UGFydCB9IGZyb20gJy4uL3BvcnRhbC1kb2N1bWVudC1wYXJ0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1kb2N1bWVudC1wYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXBhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2N1bWVudC1wYXJ0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFBhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwYXJ0ITogUG9ydGFsRG9jdW1lbnRQYXJ0O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cInBhcnRcIj5cbiAgICA8b2VwYS1kb2N1bWVudC1wYXJ0LWVkaXRvciBbcGFydF09XCJwYXJ0XCI+PC9vZXBhLWRvY3VtZW50LXBhcnQtZWRpdG9yPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwicGFydC5wYXJ0cyAmJiBwYXJ0LnBhcnRzLmxlbmd0aCA+IDBcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwIG9mIHBhcnQucGFydHNcIj5cbiAgICAgICAgPG9lcGEtZG9jdW1lbnQtcGFydC1lZGl0b3IgW3BhcnRdPVwicFwiPjwvb2VwYS1kb2N1bWVudC1wYXJ0LWVkaXRvcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|