vcomply-workflow-engine 3.5.3 → 3.5.4
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/esm2022/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +897 -0
- package/esm2022/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.mjs +204 -0
- package/esm2022/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +1569 -0
- package/esm2022/lib/add-multiple-risk/add-multiple-risk.component.mjs +774 -0
- package/esm2022/lib/configurations.mjs +6 -0
- package/esm2022/lib/confirmation-alert/confirmation-alert.component.mjs +28 -0
- package/esm2022/lib/constants/link-responsibility.constants.mjs +9 -0
- package/esm2022/lib/constants/time.constants.mjs +3 -0
- package/esm2022/lib/create-documents/create-documents.component.mjs +145 -0
- package/esm2022/lib/formgroup/cs-checkbox/cs-checkbox.component.mjs +36 -0
- package/esm2022/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.mjs +35 -0
- package/esm2022/lib/formgroup/cs-radio/cs-radio.component.mjs +34 -0
- package/esm2022/lib/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
- package/esm2022/lib/formgroup/cs-select/cs-select.component.mjs +95 -0
- package/esm2022/lib/formgroup/cs-switch/cs-switch.component.mjs +31 -0
- package/esm2022/lib/formgroup/formgroup.module.mjs +56 -0
- package/esm2022/lib/formgroup/pipes/pascal.pipe.mjs +19 -0
- package/esm2022/lib/formgroup/select/cs-option/cs-option.component.mjs +42 -0
- package/esm2022/lib/formgroup/select/cs-select/cs-select.component.mjs +106 -0
- package/esm2022/lib/formgroup/select/select.module.mjs +21 -0
- package/esm2022/lib/formgroup/select/select.service.mjs +48 -0
- package/esm2022/lib/interfaces/categoryList.mjs +2 -0
- package/esm2022/lib/interfaces/confirmation-alert.mjs +2 -0
- package/esm2022/lib/interfaces/issue-data.mjs +2 -0
- package/esm2022/lib/log-an-issue/log-an-issue.component.mjs +1212 -0
- package/esm2022/lib/more-option/more-option.component.mjs +790 -0
- package/esm2022/lib/pipes/data-type.pipe.mjs +16 -0
- package/esm2022/lib/pipes/dom-sanitizer.pipe.mjs +24 -0
- package/esm2022/lib/pipes/filter.pipe.mjs +24 -0
- package/esm2022/lib/pipes/is-read-more.pipe.mjs +21 -0
- package/esm2022/lib/pipes/list-mapper.pipe.mjs +21 -0
- package/esm2022/lib/pipes/pipes.module.mjs +67 -0
- package/esm2022/lib/pipes/search.pipe.mjs +37 -0
- package/esm2022/lib/pipes/space-breaker.pipe.mjs +21 -0
- package/esm2022/lib/pipes/uncategorized-filter.pipe.mjs +21 -0
- package/esm2022/lib/pipes/user-filter.pipe.mjs +30 -0
- package/esm2022/lib/services/bulk-upload.service.mjs +44 -0
- package/esm2022/lib/services/common.service.mjs +41 -0
- package/esm2022/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +265 -0
- package/esm2022/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.mjs +73 -0
- package/esm2022/lib/sharedComponents/approval-workflow/approval-workflow.component.mjs +83 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.mjs +347 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.mjs +75 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.mjs +33 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.mjs +124 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.mjs +154 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/build.module.mjs +111 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.mjs +37 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.mjs +74 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.mjs +18 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.mjs +37 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.mjs +15 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.mjs +37 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.mjs +28 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.mjs +56 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.mjs +179 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/error.mjs +2 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/question.mjs +2 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.mjs +2 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic/logic.component.mjs +104 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.mjs +26 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.mjs +56 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.mjs +33 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.mjs +17 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.mjs +26 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.mjs +16 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.mjs +101 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.mjs +16 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.mjs +24 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.mjs +16 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/move/move.component.mjs +103 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.mjs +23 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.mjs +22 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.mjs +27 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.mjs +21 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.mjs +17 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.mjs +16 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.mjs +21 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.mjs +16 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.mjs +28 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.mjs +49 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.mjs +30 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.mjs +21 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.mjs +17 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.mjs +31 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.mjs +28 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.mjs +28 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.mjs +16 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.mjs +16 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.mjs +16 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.mjs +16 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.mjs +78 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview.module.mjs +152 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.mjs +19 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.mjs +252 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.mjs +35 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.mjs +61 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.mjs +163 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.mjs +118 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.mjs +23 -0
- package/esm2022/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.mjs +97 -0
- package/esm2022/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.mjs +493 -0
- package/esm2022/lib/sharedComponents/assessment-editor/create-assessment.module.mjs +154 -0
- package/esm2022/lib/sharedComponents/assessment-editor/services/editor.service.mjs +635 -0
- package/esm2022/lib/sharedComponents/assessment-editor/services/result-criteria.service.mjs +48 -0
- package/esm2022/lib/sharedComponents/assessment-editor/services/validator.service.mjs +546 -0
- package/esm2022/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.mjs +15 -0
- package/esm2022/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.mjs +15 -0
- package/esm2022/lib/sharedComponents/assessment-list/assessment-list.component.mjs +207 -0
- package/esm2022/lib/sharedComponents/assessment-list/service/assessment.interface.mjs +2 -0
- package/esm2022/lib/sharedComponents/assessment-list/service/assessment.service.mjs +31 -0
- package/esm2022/lib/sharedComponents/assessment-preview/assessment-preview.module.mjs +113 -0
- package/esm2022/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.mjs +33 -0
- package/esm2022/lib/sharedComponents/assessment-preview/date-time/date-time.component.mjs +53 -0
- package/esm2022/lib/sharedComponents/assessment-preview/description-preview/description-preview.component.mjs +24 -0
- package/esm2022/lib/sharedComponents/assessment-preview/device/device.component.mjs +21 -0
- package/esm2022/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.mjs +22 -0
- package/esm2022/lib/sharedComponents/assessment-preview/page-header/page-header.component.mjs +21 -0
- package/esm2022/lib/sharedComponents/assessment-preview/pipes/get-section-order.pipe.mjs +24 -0
- package/esm2022/lib/sharedComponents/assessment-preview/preview/preview.component.mjs +62 -0
- package/esm2022/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.mjs +22 -0
- package/esm2022/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.mjs +22 -0
- package/esm2022/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.mjs +33 -0
- package/esm2022/lib/sharedComponents/assessment-preview/section-details/section-details.component.mjs +20 -0
- package/esm2022/lib/sharedComponents/assessment-preview/select-question/select-question.component.mjs +35 -0
- package/esm2022/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.mjs +21 -0
- package/esm2022/lib/sharedComponents/assessment-preview/welcome/welcome.component.mjs +17 -0
- package/esm2022/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +61 -0
- package/esm2022/lib/sharedComponents/audit-category-list/audit-category.model.mjs +2 -0
- package/esm2022/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +72 -0
- package/esm2022/lib/sharedComponents/bulk-view/bulk-view.component.mjs +75 -0
- package/esm2022/lib/sharedComponents/category-list/category-list.component.mjs +84 -0
- package/esm2022/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +166 -0
- package/esm2022/lib/sharedComponents/checkbox-list/checkbox-list.component.mjs +92 -0
- package/esm2022/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.mjs +315 -0
- package/esm2022/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.mjs +25 -0
- package/esm2022/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.mjs +149 -0
- package/esm2022/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.mjs +48 -0
- package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.mjs +77 -0
- package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.mjs +197 -0
- package/esm2022/lib/sharedComponents/directive/autofocus.directive.mjs +22 -0
- package/esm2022/lib/sharedComponents/directive/conditional-focus.directive.mjs +35 -0
- package/esm2022/lib/sharedComponents/directive/drag-drop.directive.mjs +52 -0
- package/esm2022/lib/sharedComponents/directive/input-trim.directive.mjs +21 -0
- package/esm2022/lib/sharedComponents/directive/scroll-in-view.directive.mjs +35 -0
- package/esm2022/lib/sharedComponents/document-section/document-section.component.mjs +184 -0
- package/esm2022/lib/sharedComponents/floating-bar/floating-bar.component.mjs +122 -0
- package/esm2022/lib/sharedComponents/floating-bar/floating-bar.module.mjs +20 -0
- package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +308 -0
- package/esm2022/lib/sharedComponents/framework-list/framework-integration-interfaces.mjs +2 -0
- package/esm2022/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.mjs +38 -0
- package/esm2022/lib/sharedComponents/framework-list/framework-list.component.mjs +429 -0
- package/esm2022/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.mjs +43 -0
- package/esm2022/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.mjs +15 -0
- package/esm2022/lib/sharedComponents/framework-list/parent-table/parent-table.component.mjs +95 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +297 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +218 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.mjs +36 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +303 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +152 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-due-date/due-date.contant.mjs +21 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.mjs +83 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +199 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-lifecycle/lifecycl.constant.mjs +12 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +223 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.mjs +170 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +189 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +75 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +214 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.mjs +36 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +253 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.mjs +213 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +133 -0
- package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +200 -0
- package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +573 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +300 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +216 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.mjs +29 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.mjs +296 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.mjs +110 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +227 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +213 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +212 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.mjs +33 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.mjs +128 -0
- package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.mjs +197 -0
- package/esm2022/lib/sharedComponents/group-users-list/group-users-list.component.mjs +259 -0
- package/esm2022/lib/sharedComponents/link-program/link-program/link-program.component.mjs +472 -0
- package/esm2022/lib/sharedComponents/link-program/link-program/program-list-model.mjs +2 -0
- package/esm2022/lib/sharedComponents/link-program/program-integration-interfaces.mjs +2 -0
- package/esm2022/lib/sharedComponents/link-program/restapi.service.mjs +149 -0
- package/esm2022/lib/sharedComponents/link-program/tooltip-validation.pipe.mjs +28 -0
- package/esm2022/lib/sharedComponents/link-responsibility/link-responsibility.component.mjs +221 -0
- package/esm2022/lib/sharedComponents/list-loader/list-loader.component.mjs +15 -0
- package/esm2022/lib/sharedComponents/list-loader/list-loader.module.mjs +18 -0
- package/esm2022/lib/sharedComponents/no-data/no-data.component.mjs +36 -0
- package/esm2022/lib/sharedComponents/no-data/no-data.module.mjs +18 -0
- package/esm2022/lib/sharedComponents/owner-list/owner-list.component.mjs +176 -0
- package/esm2022/lib/sharedComponents/pipes/array-filter.pipe.mjs +18 -0
- package/esm2022/lib/sharedComponents/pipes/filterPipe.mjs +30 -0
- package/esm2022/lib/sharedComponents/pipes/rcTreeToolTip.pipe.mjs +26 -0
- package/esm2022/lib/sharedComponents/pipes/short-merge.pipe.mjs +24 -0
- package/esm2022/lib/sharedComponents/pipes/spaceTrim.pipe.mjs +18 -0
- package/esm2022/lib/sharedComponents/pipes/within-data.pipe.mjs +21 -0
- package/esm2022/lib/sharedComponents/policy-access/policy-access.component.mjs +88 -0
- package/esm2022/lib/sharedComponents/program-listing/program-list-model.mjs +2 -0
- package/esm2022/lib/sharedComponents/program-listing/program-listing.component.mjs +739 -0
- package/esm2022/lib/sharedComponents/radio-list/radio-list.component.mjs +82 -0
- package/esm2022/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.mjs +14 -0
- package/esm2022/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +128 -0
- package/esm2022/lib/sharedComponents/responsibility-centers-list/rc-list.module.mjs +40 -0
- package/esm2022/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +125 -0
- package/esm2022/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.mjs +81 -0
- package/esm2022/lib/sharedComponents/review-frequency/review-frequency.component.mjs +44 -0
- package/esm2022/lib/sharedComponents/risk-classification/risk-classification.component.mjs +102 -0
- package/esm2022/lib/sharedComponents/roles-list/roles-list.component.mjs +30 -0
- package/esm2022/lib/sharedComponents/select-approvers/select-approvers.component.mjs +78 -0
- package/esm2022/lib/sharedComponents/table-card-loader/table-card-loader.component.mjs +15 -0
- package/esm2022/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +83 -0
- package/esm2022/lib/sharedComponents/v-loader/loader/loader.component.mjs +21 -0
- package/esm2022/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.mjs +21 -0
- package/esm2022/lib/sharedComponents/v-loader/v-loader.module.mjs +19 -0
- package/esm2022/lib/ui-kit/action-dialog/action-dialog.module.mjs +21 -0
- package/esm2022/lib/ui-kit/action-dialog/active/active.component.mjs +32 -0
- package/esm2022/lib/ui-kit/action-dialog/deactivate/deactivate.component.mjs +33 -0
- package/esm2022/lib/ui-kit/action-dialog/delete/delete.component.mjs +26 -0
- package/esm2022/lib/ui-kit/action-dialog/duplicate/duplicate.component.mjs +28 -0
- package/esm2022/lib/ui-kit/click-outside/click-outside.directive.mjs +29 -0
- package/esm2022/lib/ui-kit/click-outside/click-outside.module.mjs +22 -0
- package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +3 -0
- package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +14 -0
- package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -0
- package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +88 -0
- package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -0
- package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +58 -0
- package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +16 -0
- package/esm2022/lib/ui-kit/directive/directive.module.mjs +24 -0
- package/esm2022/lib/ui-kit/directive/stop-propagation.directive.mjs +20 -0
- package/esm2022/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.mjs +15 -0
- package/esm2022/lib/ui-kit/editor-loader/editor-loader.module.mjs +22 -0
- package/esm2022/lib/ui-kit/format-html.pipe.mjs +20 -0
- package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +29 -0
- package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +31 -0
- package/esm2022/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.mjs +35 -0
- package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +30 -0
- package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
- package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +100 -0
- package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +32 -0
- package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +60 -0
- package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -0
- package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -0
- package/esm2022/lib/ui-kit/line-loader/line-loader.component.mjs +15 -0
- package/esm2022/lib/ui-kit/line-loader/line-loader.module.mjs +18 -0
- package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +45 -0
- package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -0
- package/esm2022/lib/ui-kit/pagination/pagination/pagination.component.mjs +116 -0
- package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +28 -0
- package/esm2022/lib/ui-kit/popover/popover-event.directive.mjs +28 -0
- package/esm2022/lib/ui-kit/popover/popover-longpress.directive.mjs +44 -0
- package/esm2022/lib/ui-kit/popover/popover.component.mjs +138 -0
- package/esm2022/lib/ui-kit/popover/popover.directive.mjs +97 -0
- package/esm2022/lib/ui-kit/popover/popover.module.mjs +23 -0
- package/esm2022/lib/ui-kit/popover/popover.service.mjs +15 -0
- package/esm2022/lib/ui-kit/popover-hover/popover-hover.component.mjs +109 -0
- package/esm2022/lib/ui-kit/popover-hover/popover-hover.directive.mjs +34 -0
- package/esm2022/lib/ui-kit/popover-hover/popover-hover.module.mjs +31 -0
- package/esm2022/lib/ui-kit/popover-hover/popover-hover.service.mjs +14 -0
- package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +43 -0
- package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -0
- package/esm2022/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.mjs +43 -0
- package/esm2022/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.mjs +18 -0
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.component.mjs +51 -0
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +32 -0
- package/esm2022/lib/ui-kit/time-picker/constants/constant.mjs +5 -0
- package/esm2022/lib/ui-kit/time-picker/time-picker/time-picker.component.mjs +220 -0
- package/esm2022/lib/ui-kit/time-picker/time-picker.module.mjs +24 -0
- package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +156 -0
- package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -0
- package/esm2022/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +831 -0
- package/esm2022/lib/workflow/grc-object/grc-object.module.mjs +64 -0
- package/esm2022/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.mjs +95 -0
- package/esm2022/lib/workflow/shared/components/attributes/attributes-dropdown/attributes-dropdown.component.mjs +110 -0
- package/esm2022/lib/workflow/shared/components/attributes/attributes-text-box/attributes-text-box.component.mjs +118 -0
- package/esm2022/lib/workflow/shared/components/attributes/attributes.component.mjs +100 -0
- package/esm2022/lib/workflow/shared/components/attributes/date-picker/date-picker.component.mjs +116 -0
- package/esm2022/lib/workflow/shared/components/edit-mode/edit-mode.component.mjs +216 -0
- package/esm2022/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.mjs +119 -0
- package/esm2022/lib/workflow/shared/components/grc-object-list/grc-object-list.component.mjs +198 -0
- package/esm2022/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.mjs +202 -0
- package/esm2022/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.mjs +191 -0
- package/esm2022/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.mjs +86 -0
- package/esm2022/lib/workflow/shared/components/list-popup/list-popup.component.mjs +209 -0
- package/esm2022/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.mjs +411 -0
- package/esm2022/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.mjs +241 -0
- package/esm2022/lib/workflow/shared/components/table-card/table-card.component.mjs +32 -0
- package/esm2022/lib/workflow/shared/components/text-field/text-field.component.mjs +143 -0
- package/esm2022/lib/workflow/shared/components/text-field-icon/text-field-icon.component.mjs +56 -0
- package/esm2022/lib/workflow/shared/constants/cdn-link.constant.mjs +11 -0
- package/esm2022/lib/workflow/shared/constants/field-text.constant.mjs +17 -0
- package/esm2022/lib/workflow/shared/constants/grcObject.constant.mjs +88 -0
- package/esm2022/lib/workflow/shared/constants/link-responsibility.constant.mjs +19 -0
- package/esm2022/lib/workflow/shared/constants/message.contstant.mjs +5 -0
- package/esm2022/lib/workflow/shared/constants/pagination-limits.constant.mjs +6 -0
- package/esm2022/lib/workflow/shared/constants/svg-link.constant.mjs +4 -0
- package/esm2022/lib/workflow/shared/constants/validation-message.constant.mjs +8 -0
- package/esm2022/lib/workflow/shared/interfaces/add-grc.mjs +2 -0
- package/esm2022/lib/workflow/shared/services/grc.service.mjs +310 -0
- package/esm2022/lib/workflow/shared/workflow-pipes/get-selected-value.pipe.mjs +30 -0
- package/esm2022/lib/workflow/shared/workflow-pipes/is-attributes-valid.pipe.mjs +48 -0
- package/esm2022/lib/workflow/shared/workflow-pipes/unique-responsibilities.pipe.mjs +24 -0
- package/esm2022/lib/workflow/shared/workflow-pipes/workflow-pipes.module.mjs +32 -0
- package/esm2022/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +668 -0
- package/esm2022/lib/workflow-assessment/workflow-assessment.component.mjs +254 -0
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +3913 -0
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +734 -0
- package/esm2022/lib/workflow-engine.module.mjs +467 -0
- package/esm2022/lib/workflow-engine.service.mjs +14 -0
- package/esm2022/lib/workflow-interfaces/create-policy-form.mjs +2 -0
- package/esm2022/lib/workflow-pagination/workflow-pagination.component.mjs +116 -0
- package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +1875 -0
- package/esm2022/lib/workflow-program/constants.mjs +51 -0
- package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.mjs +15 -0
- package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +292 -0
- package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.mjs +15 -0
- package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.mjs +43 -0
- package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/selected-assessment.pipe.mjs +22 -0
- package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.mjs +116 -0
- package/esm2022/lib/workflow-program/create-program-ui/checkbox/checkbox.component.mjs +39 -0
- package/esm2022/lib/workflow-program/create-program-ui/create-program-ui.module.mjs +194 -0
- package/esm2022/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.mjs +44 -0
- package/esm2022/lib/workflow-program/create-program-ui/custom-field/custom-field.component.mjs +82 -0
- package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +267 -0
- package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/framework.service.mjs +44 -0
- package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.mjs +15 -0
- package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/category-all-select.pipe.mjs +23 -0
- package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/search.pipe.mjs +23 -0
- package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.mjs +26 -0
- package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/tooltip-message.pipe.mjs +68 -0
- package/esm2022/lib/workflow-program/create-program-ui/directives/input-trim.directive.mjs +21 -0
- package/esm2022/lib/workflow-program/create-program-ui/file-pill/file-pill.component.mjs +27 -0
- package/esm2022/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.mjs +106 -0
- package/esm2022/lib/workflow-program/create-program-ui/form-field/form-field.component.mjs +16 -0
- package/esm2022/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.mjs +30 -0
- package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +166 -0
- package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination.module.mjs +28 -0
- package/esm2022/lib/workflow-program/create-program-ui/pipes/array-concat.pipe.mjs +16 -0
- package/esm2022/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.mjs +27 -0
- package/esm2022/lib/workflow-program/create-program-ui/pipes/filter.pipe.mjs +30 -0
- package/esm2022/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.mjs +16 -0
- package/esm2022/lib/workflow-program/create-program-ui/pipes/pager.pipe.mjs +21 -0
- package/esm2022/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.mjs +17 -0
- package/esm2022/lib/workflow-program/create-program-ui/pipes/search.pipe.mjs +23 -0
- package/esm2022/lib/workflow-program/create-program-ui/role-list/loader/loader.component.mjs +15 -0
- package/esm2022/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +240 -0
- package/esm2022/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.mjs +43 -0
- package/esm2022/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.mjs +15 -0
- package/esm2022/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +434 -0
- package/esm2022/lib/workflow-program/workflow-program.component.mjs +1550 -0
- package/esm2022/lib/workflow-risk/workflow-risk.component.mjs +1642 -0
- package/esm2022/lib/workflow-services/add-risk.service.mjs +150 -0
- package/esm2022/lib/workflow-services/assessment.service.mjs +117 -0
- package/esm2022/lib/workflow-services/auth.service.mjs +229 -0
- package/esm2022/lib/workflow-services/frequency.service.mjs +173 -0
- package/esm2022/lib/workflow-services/log-issue.service.mjs +360 -0
- package/esm2022/lib/workflow-services/policy.service.mjs +163 -0
- package/esm2022/lib/workflow-services/programs.service.mjs +319 -0
- package/esm2022/lib/workflow-services/responsibility.service.mjs +293 -0
- package/esm2022/lib/workflow-services/token-decoder.service.mjs +38 -0
- package/esm2022/lib/workflow-services/ui-kit.service.mjs +17 -0
- package/esm2022/lib/workflow-survey-form/workflow-survey-form.component.mjs +26 -0
- package/esm2022/public-api.mjs +8 -0
- package/esm2022/vcomply-workflow-engine.mjs +5 -0
- package/fesm2022/vcomply-workflow-engine.mjs +44351 -0
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -0
- package/lib/add-multiple-responsibility/add-multiple-responsibility.component.d.ts +1 -1
- package/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.d.ts +1 -1
- package/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.d.ts +1 -1
- package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +1 -1
- package/lib/confirmation-alert/confirmation-alert.component.d.ts +1 -1
- package/lib/create-documents/create-documents.component.d.ts +1 -1
- package/lib/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
- package/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +1 -1
- package/lib/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
- package/lib/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
- package/lib/formgroup/cs-select/cs-select.component.d.ts +1 -1
- package/lib/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
- package/lib/formgroup/select/cs-option/cs-option.component.d.ts +1 -1
- package/lib/formgroup/select/cs-select/cs-select.component.d.ts +1 -1
- package/lib/log-an-issue/log-an-issue.component.d.ts +7 -3
- package/lib/more-option/more-option.component.d.ts +1 -1
- package/lib/services/common.service.d.ts +14 -0
- package/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.d.ts +1 -1
- package/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.d.ts +1 -1
- package/lib/sharedComponents/approval-workflow/approval-workflow.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic/logic.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.d.ts +7 -3
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/move/move.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.d.ts +8 -5
- package/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/date-time/date-time.component.d.ts +8 -5
- package/lib/sharedComponents/assessment-preview/description-preview/description-preview.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/device/device.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/page-header/page-header.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/preview/preview.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/section-details/section-details.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/select-question/select-question.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-preview/welcome/welcome.component.d.ts +1 -1
- package/lib/sharedComponents/audit-category-list/audit-category-list.component.d.ts +1 -1
- package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +1 -1
- package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +1 -1
- package/lib/sharedComponents/category-list/category-list.component.d.ts +1 -1
- package/lib/sharedComponents/category-multiselect/category-multi-select.component.d.ts +1 -1
- package/lib/sharedComponents/checkbox-list/checkbox-list.component.d.ts +1 -1
- package/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.d.ts +1 -1
- package/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.d.ts +1 -1
- package/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.d.ts +6 -2
- package/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.d.ts +1 -1
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.d.ts +1 -1
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.d.ts +1 -1
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.d.ts +1 -1
- package/lib/sharedComponents/directive/autofocus.directive.d.ts +1 -1
- package/lib/sharedComponents/directive/conditional-focus.directive.d.ts +1 -1
- package/lib/sharedComponents/directive/drag-drop.directive.d.ts +1 -1
- package/lib/sharedComponents/directive/input-trim.directive.d.ts +1 -1
- package/lib/sharedComponents/directive/scroll-in-view.directive.d.ts +1 -1
- package/lib/sharedComponents/document-section/document-section.component.d.ts +1 -1
- package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +1 -1
- package/lib/sharedComponents/format-and-evidence/format-and-evidence.component.d.ts +1 -1
- package/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.d.ts +1 -1
- package/lib/sharedComponents/framework-list/framework-list.component.d.ts +1 -1
- package/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.d.ts +1 -1
- package/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.d.ts +1 -1
- package/lib/sharedComponents/framework-list/parent-table/parent-table.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +10 -4
- package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts +9 -5
- package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-top/frequency-top.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency.service.d.ts +1 -0
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.d.ts +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.d.ts +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.d.ts +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.d.ts +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.d.ts +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.d.ts +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.d.ts +10 -5
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.d.ts +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.d.ts +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.d.ts +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.d.ts +1 -1
- package/lib/sharedComponents/group-users-list/group-users-list.component.d.ts +1 -1
- package/lib/sharedComponents/link-program/link-program/link-program.component.d.ts +1 -1
- package/lib/sharedComponents/link-responsibility/link-responsibility.component.d.ts +1 -1
- package/lib/sharedComponents/list-loader/list-loader.component.d.ts +1 -1
- package/lib/sharedComponents/no-data/no-data.component.d.ts +1 -1
- package/lib/sharedComponents/owner-list/owner-list.component.d.ts +1 -1
- package/lib/sharedComponents/policy-access/policy-access.component.d.ts +1 -1
- package/lib/sharedComponents/program-listing/program-listing.component.d.ts +1 -1
- package/lib/sharedComponents/radio-list/radio-list.component.d.ts +1 -1
- package/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.d.ts +1 -1
- package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.d.ts +1 -1
- package/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.d.ts +1 -1
- package/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.d.ts +1 -1
- package/lib/sharedComponents/review-frequency/review-frequency.component.d.ts +1 -1
- package/lib/sharedComponents/risk-classification/risk-classification.component.d.ts +1 -1
- package/lib/sharedComponents/roles-list/roles-list.component.d.ts +1 -1
- package/lib/sharedComponents/select-approvers/select-approvers.component.d.ts +1 -1
- package/lib/sharedComponents/table-card-loader/table-card-loader.component.d.ts +1 -1
- package/lib/sharedComponents/users-radio-list/users-radio-list.component.d.ts +1 -1
- package/lib/sharedComponents/v-loader/loader/loader.component.d.ts +1 -1
- package/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.d.ts +1 -1
- package/lib/ui-kit/action-dialog/active/active.component.d.ts +1 -1
- package/lib/ui-kit/action-dialog/deactivate/deactivate.component.d.ts +1 -1
- package/lib/ui-kit/action-dialog/delete/delete.component.d.ts +1 -1
- package/lib/ui-kit/action-dialog/duplicate/duplicate.component.d.ts +1 -1
- package/lib/ui-kit/click-outside/click-outside.directive.d.ts +1 -1
- package/lib/ui-kit/dialog/dialog-injector.d.ts +2 -2
- package/lib/ui-kit/dialog/dialog.component.d.ts +6 -4
- package/lib/ui-kit/dialog/dialog.service.d.ts +3 -3
- package/lib/ui-kit/dialog/insertion.directive.d.ts +1 -1
- package/lib/ui-kit/directive/stop-propagation.directive.d.ts +1 -1
- package/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/click-outside.directive.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
- package/lib/ui-kit/line-loader/line-loader.component.d.ts +1 -1
- package/lib/ui-kit/no-data/no-data.component.d.ts +1 -1
- package/lib/ui-kit/pagination/pagination/pagination.component.d.ts +1 -1
- package/lib/ui-kit/popover/popover-event.directive.d.ts +1 -1
- package/lib/ui-kit/popover/popover-longpress.directive.d.ts +1 -1
- package/lib/ui-kit/popover/popover.component.d.ts +1 -1
- package/lib/ui-kit/popover/popover.directive.d.ts +1 -1
- package/lib/ui-kit/popover-hover/popover-hover.component.d.ts +1 -1
- package/lib/ui-kit/popover-hover/popover-hover.directive.d.ts +1 -1
- package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +1 -1
- package/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.d.ts +1 -1
- package/lib/ui-kit/snack-bar/snack-bar.component.d.ts +1 -1
- package/lib/ui-kit/time-picker/time-picker/time-picker.component.d.ts +1 -1
- package/lib/ui-kit/tooltip/tooltip.directive.d.ts +1 -1
- package/lib/workflow/grc-object/grc-object-container/grc-object-container.component.d.ts +1 -1
- package/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.d.ts +1 -1
- package/lib/workflow/shared/components/attributes/attributes-dropdown/attributes-dropdown.component.d.ts +1 -1
- package/lib/workflow/shared/components/attributes/attributes-text-box/attributes-text-box.component.d.ts +1 -1
- package/lib/workflow/shared/components/attributes/attributes.component.d.ts +1 -1
- package/lib/workflow/shared/components/attributes/date-picker/date-picker.component.d.ts +1 -1
- package/lib/workflow/shared/components/edit-mode/edit-mode.component.d.ts +1 -1
- package/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.d.ts +1 -1
- package/lib/workflow/shared/components/grc-object-list/grc-object-list.component.d.ts +1 -1
- package/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.d.ts +1 -1
- package/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.d.ts +1 -1
- package/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.d.ts +1 -1
- package/lib/workflow/shared/components/list-popup/list-popup.component.d.ts +1 -1
- package/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.d.ts +1 -1
- package/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.d.ts +1 -1
- package/lib/workflow/shared/components/table-card/table-card.component.d.ts +1 -1
- package/lib/workflow/shared/components/text-field/text-field.component.d.ts +1 -1
- package/lib/workflow/shared/components/text-field-icon/text-field-icon.component.d.ts +1 -1
- package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +1 -1
- package/lib/workflow-assessment/workflow-assessment.component.d.ts +1 -1
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +1 -1
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +1 -1
- package/lib/workflow-pagination/workflow-pagination.component.d.ts +1 -1
- package/lib/workflow-policy/workflow-policy.component.d.ts +7 -3
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/checkbox/checkbox.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/custom-field/custom-field.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/directives/input-trim.directive.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/file-pill/file-pill.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/form-field/form-field.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/role-list/loader/loader.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/role-list/role-list.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.d.ts +1 -1
- package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +1 -1
- package/lib/workflow-program/workflow-program.component.d.ts +1 -1
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/lib/workflow-services/auth.service.d.ts +0 -1
- package/lib/workflow-services/log-issue.service.d.ts +1 -0
- package/lib/workflow-survey-form/workflow-survey-form.component.d.ts +1 -1
- package/package.json +5 -12
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class FrequencyBulkService {
|
|
4
|
+
constructor() { }
|
|
5
|
+
shortHand_freqCal(frequency, day, month, year, dueDate, ongoingValues) {
|
|
6
|
+
const monthNames = [
|
|
7
|
+
{ value: 1, month: 'Jan' },
|
|
8
|
+
{ value: 2, month: 'Feb' },
|
|
9
|
+
{ value: 3, month: 'Mar' },
|
|
10
|
+
{ value: 4, month: 'Apr' },
|
|
11
|
+
{ value: 5, month: 'May' },
|
|
12
|
+
{ value: 6, month: 'Jun' },
|
|
13
|
+
{ value: 7, month: 'Jul' },
|
|
14
|
+
{ value: 8, month: 'Aug' },
|
|
15
|
+
{ value: 9, month: 'Sep' },
|
|
16
|
+
{ value: 10, month: 'Oct' },
|
|
17
|
+
{ value: 11, month: 'Nov' },
|
|
18
|
+
{ value: 12, month: 'Dec' },
|
|
19
|
+
];
|
|
20
|
+
let frequency_details;
|
|
21
|
+
const date_value = new Date();
|
|
22
|
+
if (month) {
|
|
23
|
+
date_value?.setMonth(typeof month !== 'number' ? monthNames?.filter((x) => x?.month === month?.substring(0, 3))[0]?.value - 1 : month);
|
|
24
|
+
}
|
|
25
|
+
if (!year) {
|
|
26
|
+
if (month?.includes("'")) {
|
|
27
|
+
date_value?.setFullYear(20 + month?.split("'")[1]);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
date_value?.setFullYear(year);
|
|
32
|
+
}
|
|
33
|
+
if (day) {
|
|
34
|
+
date_value?.setDate(day);
|
|
35
|
+
}
|
|
36
|
+
let quarterPattern = '~1,4,7,10~0';
|
|
37
|
+
const firstHalfMonth = ['1', '2', '3', '4', '5', '6'];
|
|
38
|
+
const secondHalfMonth = ['7', '8', '9', '10', '11', '12'];
|
|
39
|
+
frequency = frequency?.toLowerCase();
|
|
40
|
+
switch (date_value?.getMonth()) {
|
|
41
|
+
case 0:
|
|
42
|
+
case 3:
|
|
43
|
+
case 6:
|
|
44
|
+
case 9:
|
|
45
|
+
quarterPattern = '~1,4,7,10~0';
|
|
46
|
+
break;
|
|
47
|
+
case 1:
|
|
48
|
+
case 4:
|
|
49
|
+
case 7:
|
|
50
|
+
case 10:
|
|
51
|
+
quarterPattern = '~2,5,8,11~0';
|
|
52
|
+
break;
|
|
53
|
+
case 2:
|
|
54
|
+
case 5:
|
|
55
|
+
case 8:
|
|
56
|
+
case 11:
|
|
57
|
+
quarterPattern = '~3,6,9,12~0';
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
const getDay = date_value?.getDay() === 0 ? 7 : date_value?.getDay();
|
|
61
|
+
switch (frequency) {
|
|
62
|
+
case 'every week':
|
|
63
|
+
frequency_details = '2~' + getDay + '~0~1';
|
|
64
|
+
break;
|
|
65
|
+
case 'weekly':
|
|
66
|
+
frequency_details = '2~' + getDay + '~0~1';
|
|
67
|
+
break;
|
|
68
|
+
case 'one time':
|
|
69
|
+
frequency_details = '0~' + '' + date_value.getFullYear() + '~' + (date_value.getMonth() + 1) + '~' + date_value.getDate();
|
|
70
|
+
break;
|
|
71
|
+
case 'every day':
|
|
72
|
+
frequency_details = '1~0~0~1';
|
|
73
|
+
break;
|
|
74
|
+
case 'daily':
|
|
75
|
+
frequency_details = '1~0~0~1';
|
|
76
|
+
break;
|
|
77
|
+
case 'every alternate day':
|
|
78
|
+
frequency_details = '1~0~0~2';
|
|
79
|
+
break;
|
|
80
|
+
case 'every 10 days':
|
|
81
|
+
frequency_details = '1~0~0~10';
|
|
82
|
+
break;
|
|
83
|
+
case 'every 2 weeks':
|
|
84
|
+
frequency_details = '2~' + getDay + '~0~2';
|
|
85
|
+
break;
|
|
86
|
+
case 'every fortnight':
|
|
87
|
+
frequency_details = '1~' + getDay + '~0~14';
|
|
88
|
+
break;
|
|
89
|
+
case 'every 3 weeks':
|
|
90
|
+
frequency_details = '2~' + getDay + '~0~3';
|
|
91
|
+
break;
|
|
92
|
+
case 'every month':
|
|
93
|
+
frequency_details = '3~' + date_value.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';
|
|
94
|
+
break;
|
|
95
|
+
case 'monthly':
|
|
96
|
+
frequency_details = '3~' + date_value.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';
|
|
97
|
+
break;
|
|
98
|
+
case 'every 45 days':
|
|
99
|
+
frequency_details = '1~0~0~45';
|
|
100
|
+
break;
|
|
101
|
+
case 'every alternate month':
|
|
102
|
+
frequency_details = '3~' + date_value.getDate() + '~' + ((date_value.getMonth() + 1) % 2 === 0 ? '2,4,6,8,10,12' : '1,3,5,7,9,11') + '~0';
|
|
103
|
+
break;
|
|
104
|
+
case 'every quarter':
|
|
105
|
+
frequency_details = '7~' + date_value.getDate() + quarterPattern;
|
|
106
|
+
break;
|
|
107
|
+
case 'quarterly':
|
|
108
|
+
frequency_details = '7~' + date_value.getDate() + quarterPattern;
|
|
109
|
+
break;
|
|
110
|
+
case 'every 120 days':
|
|
111
|
+
frequency_details = '1~0~0~120';
|
|
112
|
+
break;
|
|
113
|
+
case 'half yearly':
|
|
114
|
+
const index1 = firstHalfMonth.indexOf((date_value.getMonth() + 1).toString());
|
|
115
|
+
const index2 = secondHalfMonth.indexOf((date_value.getMonth() + 1).toString());
|
|
116
|
+
const pattern = index1 > -1 ? '~' + firstHalfMonth[index1] + ',' + secondHalfMonth[index1] + '~0' : '~' + firstHalfMonth[index2] + ',' + secondHalfMonth[index2] + '~0';
|
|
117
|
+
frequency_details = '9~' + date_value.getDate() + pattern;
|
|
118
|
+
break;
|
|
119
|
+
case 'biannual':
|
|
120
|
+
const biannualIndex = firstHalfMonth.indexOf((date_value.getMonth() + 1).toString());
|
|
121
|
+
const biannualIndex1 = secondHalfMonth.indexOf((date_value.getMonth() + 1).toString());
|
|
122
|
+
const biannualPattern = biannualIndex > -1 ? '~' + firstHalfMonth[biannualIndex] + ',' + secondHalfMonth[biannualIndex] + '~0' : '~' + firstHalfMonth[biannualIndex1] + ',' + secondHalfMonth[biannualIndex1] + '~0';
|
|
123
|
+
frequency_details = '9~' + date_value.getDate() + biannualPattern;
|
|
124
|
+
break;
|
|
125
|
+
case 'annual':
|
|
126
|
+
case 'yearly':
|
|
127
|
+
frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~1';
|
|
128
|
+
break;
|
|
129
|
+
case 'every 2 years':
|
|
130
|
+
frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~2';
|
|
131
|
+
break;
|
|
132
|
+
case 'every 3 years':
|
|
133
|
+
frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~3';
|
|
134
|
+
break;
|
|
135
|
+
case 'every 4 years':
|
|
136
|
+
frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~4';
|
|
137
|
+
break;
|
|
138
|
+
case 'every 5 years':
|
|
139
|
+
frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~5';
|
|
140
|
+
break;
|
|
141
|
+
case 'every 10 years':
|
|
142
|
+
frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~10';
|
|
143
|
+
break;
|
|
144
|
+
case 'ongoing':
|
|
145
|
+
if (ongoingValues?.setReminder?.toLowerCase() === 'yes') {
|
|
146
|
+
frequency_details = '10~1~' + (ongoingValues?.frequencyReminder ? ongoingValues?.frequencyReminder?.toString() : '0') + '~0';
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
frequency_details = '10~0~0~0';
|
|
150
|
+
}
|
|
151
|
+
break;
|
|
152
|
+
case 'on completion of':
|
|
153
|
+
frequency_details = '6~0~0~' + (dueDate ? dueDate?.toString() : '1');
|
|
154
|
+
break;
|
|
155
|
+
case 'onCompletion':
|
|
156
|
+
frequency_details = '6~0~0~' + (dueDate ? dueDate?.toString() : '1');
|
|
157
|
+
break;
|
|
158
|
+
case 'to be decided later':
|
|
159
|
+
default:
|
|
160
|
+
frequency_details = '5~0~0~0';
|
|
161
|
+
}
|
|
162
|
+
return frequency_details;
|
|
163
|
+
}
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyBulkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
165
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyBulkService, providedIn: 'root' }); }
|
|
166
|
+
}
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyBulkService, decorators: [{
|
|
168
|
+
type: Injectable,
|
|
169
|
+
args: [{
|
|
170
|
+
providedIn: 'root',
|
|
171
|
+
}]
|
|
172
|
+
}], ctorParameters: function () { return []; } });
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9mcmVxdWVuY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sb0JBQW9CO0lBRTdCLGdCQUFnQixDQUFDO0lBQ2pCLGlCQUFpQixDQUFDLFNBQWEsRUFBRSxHQUFRLEVBQUUsS0FBVSxFQUFFLElBQVMsRUFBRSxPQUFhLEVBQUUsYUFBbUI7UUFDaEcsTUFBTSxVQUFVLEdBQUc7WUFDZixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUMxQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUMxQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUMxQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUMxQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUMxQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUMxQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUMxQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUMxQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUMxQixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUMzQixFQUFFLEtBQUssRUFBRSxFQUFFLEVB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QUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RFLE1BQU07WUFDVixLQUFLLHFCQUFxQixDQUFDO1lBQzNCO2dCQUNJLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztTQUNyQztRQUVELE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQzsrR0FqS1Esb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGakIsTUFBTTs7NEZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5QnVsa1NlcnZpY2Uge1xyXG4gICAgcHVibGljIGVudiAhOiBhbnk7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG4gICAgc2hvcnRIYW5kX2ZyZXFDYWwoZnJlcXVlbmN5OmFueSwgZGF5PzphbnksIG1vbnRoPzphbnksIHllYXI/OmFueSwgZHVlRGF0ZT86IGFueSwgb25nb2luZ1ZhbHVlcz86IGFueSkge1xyXG4gICAgICAgIGNvbnN0IG1vbnRoTmFtZXMgPSBbXHJcbiAgICAgICAgICAgIHsgdmFsdWU6IDEsIG1vbnRoOiAnSmFuJyB9LFxyXG4gICAgICAgICAgICB7IHZhbHVlOiAyLCBtb250aDogJ0ZlYicgfSxcclxuICAgICAgICAgICAgeyB2YWx1ZTogMywgbW9udGg6ICdNYXInIH0sXHJcbiAgICAgICAgICAgIHsgdmFsdWU6IDQsIG1vbnRoOiAnQXByJyB9LFxyXG4gICAgICAgICAgICB7IHZhbHVlOiA1LCBtb250aDogJ01heScgfSxcclxuICAgICAgICAgICAgeyB2YWx1ZTogNiwgbW9udGg6ICdKdW4nIH0sXHJcbiAgICAgICAgICAgIHsgdmFsdWU6IDcsIG1vbnRoOiAnSnVsJyB9LFxyXG4gICAgICAgICAgICB7IHZhbHVlOiA4LCBtb250aDogJ0F1ZycgfSxcclxuICAgICAgICAgICAgeyB2YWx1ZTogOSwgbW9udGg6ICdTZXAnIH0sXHJcbiAgICAgICAgICAgIHsgdmFsdWU6IDEwLCBtb250aDogJ09jdCcgfSxcclxuICAgICAgICAgICAgeyB2YWx1ZTogMTEsIG1vbnRoOiAnTm92JyB9LFxyXG4gICAgICAgICAgICB7IHZhbHVlOiAxMiwgbW9udGg6ICdEZWMnIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICBsZXQgZnJlcXVlbmN5X2RldGFpbHM7XHJcbiAgICAgICAgY29uc3QgZGF0ZV92YWx1ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgaWYobW9udGgpe1xyXG4gICAgICAgICAgICBkYXRlX3ZhbHVlPy5zZXRNb250aCh0eXBlb2YgbW9udGggIT09ICdudW1iZXInID8gbW9udGhOYW1lcz8uZmlsdGVyKCh4KSA9PiB4Py5tb250aCA9PT0gbW9udGg/LnN1YnN0cmluZygwLCAzKSlbMF0/LnZhbHVlIC0gMSA6IG1vbnRoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF5ZWFyKSB7XHJcbiAgICAgICAgICAgIGlmKG1vbnRoPy5pbmNsdWRlcyhcIidcIikpe1xyXG4gICAgICAgICAgICAgICAgZGF0ZV92YWx1ZT8uc2V0RnVsbFllYXIoMjAgKyBtb250aD8uc3BsaXQoXCInXCIpWzFdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGVfdmFsdWU/LnNldEZ1bGxZZWFyKHllYXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkYXkpe1xyXG4gICAgICAgICAgICBkYXRlX3ZhbHVlPy5zZXREYXRlKGRheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBxdWFydGVyUGF0dGVybiA9ICd+MSw0LDcsMTB+MCc7XHJcbiAgICAgICAgY29uc3QgZmlyc3RIYWxmTW9udGggPSBbJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2J107XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kSGFsZk1vbnRoID0gWyc3JywgJzgnLCAnOScsICcxMCcsICcxMScsICcxMiddO1xyXG4gICAgICAgIGZyZXF1ZW5jeSA9IGZyZXF1ZW5jeT8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgc3dpdGNoIChkYXRlX3ZhbHVlPy5nZXRNb250aCgpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgICBjYXNlIDY6XHJcbiAgICAgICAgICAgIGNhc2UgOTpcclxuICAgICAgICAgICAgICAgIHF1YXJ0ZXJQYXR0ZXJuID0gJ34xLDQsNywxMH4wJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgIGNhc2UgNDpcclxuICAgICAgICAgICAgY2FzZSA3OlxyXG4gICAgICAgICAgICBjYXNlIDEwOlxyXG4gICAgICAgICAgICAgICAgcXVhcnRlclBhdHRlcm4gPSAnfjIsNSw4LDExfjAnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgY2FzZSA1OlxyXG4gICAgICAgICAgICBjYXNlIDg6XHJcbiAgICAgICAgICAgIGNhc2UgMTE6XHJcbiAgICAgICAgICAgICAgICBxdWFydGVyUGF0dGVybiA9ICd+Myw2LDksMTJ+MCc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZ2V0RGF5ID0gZGF0ZV92YWx1ZT8uZ2V0RGF5KCkgPT09IDAgPyA3IDogZGF0ZV92YWx1ZT8uZ2V0RGF5KCk7XHJcbiAgICAgICAgc3dpdGNoIChmcmVxdWVuY3kpIHtcclxuICAgICAgICAgICAgY2FzZSAnZXZlcnkgd2Vlayc6XHJcbiAgICAgICAgICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcyficgKyBnZXREYXkgKyAnfjB+MSc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnd2Vla2x5JzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzJ+JyArIGdldERheSArICd+MH4xJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdvbmUgdGltZSc6XHJcbiAgICAgICAgICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcwficgKyAnJyArIGRhdGVfdmFsdWUuZ2V0RnVsbFllYXIoKSArICd+JyArIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArICd+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2V2ZXJ5IGRheSc6XHJcbiAgICAgICAgICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxfjB+MH4xJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdkYWlseSc6XHJcbiAgICAgICAgICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxfjB+MH4xJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdldmVyeSBhbHRlcm5hdGUgZGF5JzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzF+MH4wfjInO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2V2ZXJ5IDEwIGRheXMnOlxyXG4gICAgICAgICAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMX4wfjB+MTAnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2V2ZXJ5IDIgd2Vla3MnOlxyXG4gICAgICAgICAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMn4nICsgZ2V0RGF5ICsgJ34wfjInO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2V2ZXJ5IGZvcnRuaWdodCc6XHJcbiAgICAgICAgICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxficgKyBnZXREYXkgKyAnfjB+MTQnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2V2ZXJ5IDMgd2Vla3MnOlxyXG4gICAgICAgICAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMn4nICsgZ2V0RGF5ICsgJ34wfjMnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2V2ZXJ5IG1vbnRoJzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzN+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgJ34xLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMn4wJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdtb250aGx5JzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzN+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgJ34xLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMn4wJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdldmVyeSA0NSBkYXlzJzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzF+MH4wfjQ1JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdldmVyeSBhbHRlcm5hdGUgbW9udGgnOlxyXG4gICAgICAgICAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnM34nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyAnficgKyAoKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICUgMiA9PT0gMCA/ICcyLDQsNiw4LDEwLDEyJyA6ICcxLDMsNSw3LDksMTEnKSArICd+MCc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZXZlcnkgcXVhcnRlcic6XHJcbiAgICAgICAgICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc3ficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArIHF1YXJ0ZXJQYXR0ZXJuO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXJseSc6XHJcbiAgICAgICAgICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc3ficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArIHF1YXJ0ZXJQYXR0ZXJuO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2V2ZXJ5IDEyMCBkYXlzJzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzF+MH4wfjEyMCc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnaGFsZiB5ZWFybHknOlxyXG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXgxID0gZmlyc3RIYWxmTW9udGguaW5kZXhPZigoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleDIgPSBzZWNvbmRIYWxmTW9udGguaW5kZXhPZigoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXR0ZXJuID0gaW5kZXgxID4gLTEgPyAnficgKyBmaXJzdEhhbGZNb250aFtpbmRleDFdICsgJywnICsgc2Vjb25kSGFsZk1vbnRoW2luZGV4MV0gKyAnfjAnIDogJ34nICsgZmlyc3RIYWxmTW9udGhbaW5kZXgyXSArICcsJyArIHNlY29uZEhhbGZNb250aFtpbmRleDJdICsgJ34wJztcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzl+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgcGF0dGVybjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdiaWFubnVhbCc6XHJcbiAgICAgICAgICAgICAgICBjb25zdCBiaWFubnVhbEluZGV4ID0gZmlyc3RIYWxmTW9udGguaW5kZXhPZigoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBiaWFubnVhbEluZGV4MSA9IHNlY29uZEhhbGZNb250aC5pbmRleE9mKChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGJpYW5udWFsUGF0dGVybiA9IGJpYW5udWFsSW5kZXggPiAtMSA/ICd+JyArIGZpcnN0SGFsZk1vbnRoW2JpYW5udWFsSW5kZXhdICsgJywnICsgc2Vjb25kSGFsZk1vbnRoW2JpYW5udWFsSW5kZXhdICsgJ34wJyA6ICd+JyArIGZpcnN0SGFsZk1vbnRoW2JpYW5udWFsSW5kZXgxXSArICcsJyArIHNlY29uZEhhbGZNb250aFtiaWFubnVhbEluZGV4MV0gKyAnfjAnO1xyXG4gICAgICAgICAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnOX4nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyBiaWFubnVhbFBhdHRlcm47XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYW5udWFsJzpcclxuICAgICAgICAgICAgY2FzZSAneWVhcmx5JzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzR+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgJ34nICsgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICsgJ34xJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdldmVyeSAyIHllYXJzJzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzR+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgJ34nICsgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICsgJ34yJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdldmVyeSAzIHllYXJzJzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzR+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgJ34nICsgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICsgJ34zJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdldmVyeSA0IHllYXJzJzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzR+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgJ34nICsgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICsgJ340JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdldmVyeSA1IHllYXJzJzpcclxuICAgICAgICAgICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzR+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgJ34nICsgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICsgJ341JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdldmVyeSAxMCB5ZWFycyc6XHJcbiAgICAgICAgICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc0ficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArICd+JyArIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArICd+MTAnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ29uZ29pbmcnOlxyXG4gICAgICAgICAgICAgICAgaWYob25nb2luZ1ZhbHVlcz8uc2V0UmVtaW5kZXI/LnRvTG93ZXJDYXNlKCkgPT09ICd5ZXMnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMTB+MX4nICsgKCBvbmdvaW5nVmFsdWVzPy5mcmVxdWVuY3lSZW1pbmRlciA/IG9uZ29pbmdWYWx1ZXM/LmZyZXF1ZW5jeVJlbWluZGVyPy50b1N0cmluZygpIDogJzAnKSArICd+MCc7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMTB+MH4wfjAnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ29uIGNvbXBsZXRpb24gb2YnOlxyXG4gICAgICAgICAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnNn4wfjB+JyArICggZHVlRGF0ZSA/IGR1ZURhdGU/LnRvU3RyaW5nKCkgOiAnMScpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ29uQ29tcGxldGlvbic6XHJcbiAgICAgICAgICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc2fjB+MH4nICsgKCBkdWVEYXRlID8gZHVlRGF0ZT8udG9TdHJpbmcoKSA6ICcxJyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndG8gYmUgZGVjaWRlZCBsYXRlcic6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc1fjB+MH4wJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmcmVxdWVuY3lfZGV0YWlscztcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { Injectable, Optional } from '@angular/core';
|
|
3
|
+
import { map, retry } from 'rxjs/operators';
|
|
4
|
+
import moment from 'moment/moment';
|
|
5
|
+
import { DEFAULT_24HR, DEFAULT_TIME } from '../constants/time.constants';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common/http";
|
|
8
|
+
import * as i2 from "./auth.service";
|
|
9
|
+
import * as i3 from "../configurations";
|
|
10
|
+
export class LogIssueService {
|
|
11
|
+
constructor(http, authService, config) {
|
|
12
|
+
this.http = http;
|
|
13
|
+
this.authService = authService;
|
|
14
|
+
this.convertFrom12To24Format = (time12) => {
|
|
15
|
+
if (time12) {
|
|
16
|
+
const [sHours, minutes, period] = time12
|
|
17
|
+
.match(/([0-9]{1,2}):([0-9]{2}) (am|pm|AM|PM)/)
|
|
18
|
+
.slice(1);
|
|
19
|
+
const PM = period === 'PM';
|
|
20
|
+
const hours = (+sHours % 12) + (PM ? 12 : 0);
|
|
21
|
+
return `${('0' + hours).slice(-2)}:${minutes}:00`;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return DEFAULT_24HR;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
if (config) {
|
|
28
|
+
this.env = config.envConfig;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
getIssueTypes() {
|
|
32
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
33
|
+
return this.http
|
|
34
|
+
.get(this.env.organizationGet + 'issueTypeList', { headers })
|
|
35
|
+
.pipe(retry(2));
|
|
36
|
+
}
|
|
37
|
+
getOrgPeople() {
|
|
38
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
39
|
+
return this.http
|
|
40
|
+
.get(this.env.organizationGet + 'people', { headers })
|
|
41
|
+
.pipe(retry(2));
|
|
42
|
+
}
|
|
43
|
+
getIssueCategories() {
|
|
44
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
45
|
+
return this.http
|
|
46
|
+
.get(this.env.assurance + 'Issue/Category/CatList?categories=true', { headers })
|
|
47
|
+
.pipe(retry(2));
|
|
48
|
+
//https://devapi.v-comply.com/Assurance/Issue/Category/CatList/1?isBusinessCycle=true&categories=true
|
|
49
|
+
}
|
|
50
|
+
getResponsibilityCenterList() {
|
|
51
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
52
|
+
return this.http
|
|
53
|
+
.get(this.env.complianceGet + 'responsibilityCenterTree', {
|
|
54
|
+
headers,
|
|
55
|
+
})
|
|
56
|
+
.pipe(retry(2));
|
|
57
|
+
}
|
|
58
|
+
createIssue(payload) {
|
|
59
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
60
|
+
return this.http
|
|
61
|
+
.post(this.env.assurance + 'Issue', payload, { headers })
|
|
62
|
+
.pipe(retry(2));
|
|
63
|
+
}
|
|
64
|
+
updateIssue(payload, issueId) {
|
|
65
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
66
|
+
return this.http
|
|
67
|
+
.put(this.env.assurance + 'Issue/' + issueId, payload, { headers })
|
|
68
|
+
.pipe(retry(2));
|
|
69
|
+
}
|
|
70
|
+
getControlRisk(auditPlanId, type) {
|
|
71
|
+
// Get Linked Audit Plan Responsibilities by Audit_Plan_Id
|
|
72
|
+
// URL: https://devapi.v-comply.com/responsibilities/?mode=manage_audit_plan_responsibilities&id=610b329144c81a0009cbb598 Method: GET
|
|
73
|
+
// Get Linked Audit Plan Risk by Audit_Plan_Id
|
|
74
|
+
// URL: https://devapi.v-comply.com/risk/?mode=risk/manage_audit_plan_risk&id=610b329144c81a0009cbb598
|
|
75
|
+
// Method: GET
|
|
76
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
77
|
+
if (type === 'RESPONSIBILITY') {
|
|
78
|
+
return this.http
|
|
79
|
+
.get(this.env.responsibilitiesGet +
|
|
80
|
+
'manage_audit_plan_responsibilities&id=' +
|
|
81
|
+
auditPlanId, { headers })
|
|
82
|
+
.pipe(map((items) => {
|
|
83
|
+
return items.map((item) => ({
|
|
84
|
+
itemId: item?.report_id,
|
|
85
|
+
itemControlId: item?.control_id,
|
|
86
|
+
itemControlName: item?.report_name,
|
|
87
|
+
itemType: 'RESPONSIBILITY',
|
|
88
|
+
}));
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
else if (type === 'RISK') {
|
|
92
|
+
return this.http
|
|
93
|
+
.get(this.env.risk + 'risk/manage_audit_plan_risk&id=' + auditPlanId, { headers })
|
|
94
|
+
.pipe(map((items) => {
|
|
95
|
+
return items.map((item) => ({
|
|
96
|
+
itemId: item?.risk_id,
|
|
97
|
+
itemControlId: item?.risk_control_id,
|
|
98
|
+
itemControlName: item?.title,
|
|
99
|
+
itemType: 'RISK',
|
|
100
|
+
}));
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
validate(issueData, openedFrom, isRCMandatory) {
|
|
108
|
+
const errors = [];
|
|
109
|
+
if (!issueData.issueName || issueData.issueName.trim().length === 0) {
|
|
110
|
+
errors.push('issueName');
|
|
111
|
+
}
|
|
112
|
+
if (issueData.issueRC.length === 0 && isRCMandatory) {
|
|
113
|
+
errors.push('issueRC');
|
|
114
|
+
}
|
|
115
|
+
if (issueData.entrustTo.length === 0) {
|
|
116
|
+
errors.push('entrustTo');
|
|
117
|
+
}
|
|
118
|
+
if (!issueData.issueDueDate) {
|
|
119
|
+
errors.push('issueDueDate');
|
|
120
|
+
}
|
|
121
|
+
if (issueData.issueRecommendation
|
|
122
|
+
.replace(/ /g, '')
|
|
123
|
+
.replace(/\<br\s*[\/]?>/gi, '')
|
|
124
|
+
.trim().length === 0) {
|
|
125
|
+
errors.push('issueRecommendation');
|
|
126
|
+
}
|
|
127
|
+
return errors;
|
|
128
|
+
}
|
|
129
|
+
generatePayload(issueData, optionFieldsStatus) {
|
|
130
|
+
const selectedDate = new Date(issueData.issueDueDate);
|
|
131
|
+
const dateSplit = [
|
|
132
|
+
selectedDate.getFullYear(),
|
|
133
|
+
selectedDate.getMonth() + 1,
|
|
134
|
+
selectedDate.getDate(),
|
|
135
|
+
];
|
|
136
|
+
const time = this.convertFrom12To24Format(issueData.issueDueTime).split(':');
|
|
137
|
+
const date = new Date(dateSplit[0], dateSplit[1] - 1, dateSplit[2], time[0], time[1], 0);
|
|
138
|
+
const createIssue = {
|
|
139
|
+
issue_description_attachments: issueData?.issueDescriptionAttachements,
|
|
140
|
+
associated_risk: optionFieldsStatus.ASSOCIATED_RISKS
|
|
141
|
+
? issueData.issueAssociatedRisk
|
|
142
|
+
: '',
|
|
143
|
+
issue_name: issueData.issueName,
|
|
144
|
+
report_id: '0',
|
|
145
|
+
issue_description: issueData.issueDescription,
|
|
146
|
+
issue_type: optionFieldsStatus.ISSUE_TYPE
|
|
147
|
+
? this.arrayToId(issueData.issueType, 'issue_id').toString()
|
|
148
|
+
: '',
|
|
149
|
+
exception_type: optionFieldsStatus.EXCEPTION_TYPE
|
|
150
|
+
? issueData.exceptionType.toString()
|
|
151
|
+
: '',
|
|
152
|
+
risk_class: issueData.issueRiskRating.toString() ?? '',
|
|
153
|
+
priority: optionFieldsStatus.PRIORITY
|
|
154
|
+
? issueData.issuePriority.toString()
|
|
155
|
+
: '',
|
|
156
|
+
issue_category_id: this.arrayToId(issueData.issueCategory, 'category_id') ?? 0,
|
|
157
|
+
recommendation: issueData.issueRecommendation,
|
|
158
|
+
entrusted_to: this.arrayToId(issueData.entrustTo, 'employee_id') ?? 0,
|
|
159
|
+
issue_date: dateSplit[0] +
|
|
160
|
+
'-' +
|
|
161
|
+
dateSplit[1] +
|
|
162
|
+
'-' +
|
|
163
|
+
dateSplit[2] +
|
|
164
|
+
' ' +
|
|
165
|
+
this.convertFrom12To24Format(issueData.issueDueTime),
|
|
166
|
+
failed_time: this.convertFrom12To24Format(issueData.issueDueTime),
|
|
167
|
+
issue_due_date: dateSplit[0] +
|
|
168
|
+
'-' +
|
|
169
|
+
dateSplit[1] +
|
|
170
|
+
'-' +
|
|
171
|
+
dateSplit[2] +
|
|
172
|
+
' ' +
|
|
173
|
+
this.convertFrom12To24Format(issueData.issueDueTime),
|
|
174
|
+
grc_area: '',
|
|
175
|
+
cc_employee_email: optionFieldsStatus.OVERSIGHT
|
|
176
|
+
? this.arrayToIDsDtring(issueData.issueCCUsers, 'employee_email')
|
|
177
|
+
: '',
|
|
178
|
+
failure_cc_employee_email: optionFieldsStatus.OVERSIGHT
|
|
179
|
+
? this.arrayToIDsDtring(issueData.failureCCUsers, 'employee_email')
|
|
180
|
+
: '',
|
|
181
|
+
custom_tag_value: '',
|
|
182
|
+
issue_resolve_timestamp: (date.getTime() / 1000).toString(),
|
|
183
|
+
evidence_upload_flag: optionFieldsStatus.EVIDENCE
|
|
184
|
+
? issueData.evidenceRequired
|
|
185
|
+
? '1'
|
|
186
|
+
: '0'
|
|
187
|
+
: '0',
|
|
188
|
+
};
|
|
189
|
+
if (issueData.issueRC.length) {
|
|
190
|
+
createIssue.rc_id = this.arrayToId(issueData.issueRC, 'rc_id') ?? 0;
|
|
191
|
+
}
|
|
192
|
+
return createIssue;
|
|
193
|
+
}
|
|
194
|
+
payloadBuilder(issueData, optionFieldsStatus) {
|
|
195
|
+
const isMoment = moment.isMoment(issueData.issueDueDate);
|
|
196
|
+
const selectedDate = isMoment
|
|
197
|
+
? moment(issueData.issueDueDate).toDate()
|
|
198
|
+
: new Date(issueData.issueDueDate);
|
|
199
|
+
const dateSplit = [
|
|
200
|
+
selectedDate.getFullYear(),
|
|
201
|
+
selectedDate.getMonth() + 1,
|
|
202
|
+
selectedDate.getDate(),
|
|
203
|
+
];
|
|
204
|
+
const payload = {
|
|
205
|
+
description: [],
|
|
206
|
+
associated_risk: [],
|
|
207
|
+
recommendation: [],
|
|
208
|
+
};
|
|
209
|
+
payload.title = issueData.issueName.trim() ?? '';
|
|
210
|
+
payload.rc_id = issueData.issueRC.length
|
|
211
|
+
? this.getArrayId(issueData.issueRC, 'rc_id')
|
|
212
|
+
: [];
|
|
213
|
+
payload.responsibilities_Linked = issueData.responsibilityLinked.length
|
|
214
|
+
? this.getArrayId(issueData.responsibilityLinked, 'ReportId')
|
|
215
|
+
: [];
|
|
216
|
+
payload.category_id = issueData.issueCategory.length
|
|
217
|
+
? this.arrayToId(issueData.issueCategory, 'category_id')
|
|
218
|
+
: null;
|
|
219
|
+
payload.description[0] = {
|
|
220
|
+
text: issueData.issueDescription ?? '',
|
|
221
|
+
attachments: issueData?.issueDescriptionAttachements.length
|
|
222
|
+
? issueData?.issueDescriptionAttachements
|
|
223
|
+
: [],
|
|
224
|
+
};
|
|
225
|
+
payload.exception_type = optionFieldsStatus.EXCEPTION_TYPE
|
|
226
|
+
? Number(issueData.exceptionType)
|
|
227
|
+
: null;
|
|
228
|
+
payload.risk_class = issueData.issueRiskRating ?? null;
|
|
229
|
+
payload.priority = optionFieldsStatus.PRIORITY
|
|
230
|
+
? Number(issueData.issuePriority)
|
|
231
|
+
: null;
|
|
232
|
+
payload.assignee_id = issueData.entrustTo
|
|
233
|
+
? this.arrayToId(issueData.entrustTo, 'my_member_id')
|
|
234
|
+
: null;
|
|
235
|
+
payload.associated_risk[0] = {
|
|
236
|
+
text: optionFieldsStatus.ASSOCIATED_RISKS
|
|
237
|
+
? issueData.issueAssociatedRisk
|
|
238
|
+
: '',
|
|
239
|
+
attachments: [],
|
|
240
|
+
};
|
|
241
|
+
payload.recommendation[0] = {
|
|
242
|
+
text: issueData.issueRecommendation ?? '',
|
|
243
|
+
attachments: issueData?.recommendedActionsAttachments.length
|
|
244
|
+
? issueData?.recommendedActionsAttachments
|
|
245
|
+
: [],
|
|
246
|
+
};
|
|
247
|
+
payload.evidence = {
|
|
248
|
+
evidence_flag: optionFieldsStatus.EVIDENCE
|
|
249
|
+
? issueData.evidenceRequired
|
|
250
|
+
? 1
|
|
251
|
+
: 0
|
|
252
|
+
: 0,
|
|
253
|
+
};
|
|
254
|
+
payload.frequency_details = {
|
|
255
|
+
frequency_time: this.convertFrom12To24Format(issueData.issueDueTime) ?? DEFAULT_TIME,
|
|
256
|
+
frequency_date: dateSplit[0] +
|
|
257
|
+
'-' +
|
|
258
|
+
(dateSplit[1] < 10 ? '0' + dateSplit[1] : dateSplit[1]) +
|
|
259
|
+
'-' +
|
|
260
|
+
(dateSplit[2] < 10 ? '0' + dateSplit[2] : dateSplit[2]),
|
|
261
|
+
};
|
|
262
|
+
payload.overseer = {
|
|
263
|
+
cc_email: optionFieldsStatus.OVERSIGHT
|
|
264
|
+
? issueData.issueCCUsers.length
|
|
265
|
+
? issueData.issueCCUsers.map((x) => {
|
|
266
|
+
return { member_id: x.my_member_id ?? 0, alert_enable: 1 };
|
|
267
|
+
})
|
|
268
|
+
: []
|
|
269
|
+
: [],
|
|
270
|
+
failure_cc_email: optionFieldsStatus.OVERSIGHT
|
|
271
|
+
? issueData.failureCCUsers.length
|
|
272
|
+
? issueData.failureCCUsers.map((x) => {
|
|
273
|
+
return { member_id: x.my_member_id ?? 0, alert_enable: 1 };
|
|
274
|
+
})
|
|
275
|
+
: []
|
|
276
|
+
: [],
|
|
277
|
+
};
|
|
278
|
+
payload.custom_tags = issueData?.issueCustomTag;
|
|
279
|
+
payload.issueType = issueData?.issueType;
|
|
280
|
+
payload.linked_assessment_issues = {
|
|
281
|
+
resp_id: issueData?.respId ?? '',
|
|
282
|
+
due_date_id: issueData?.dueDateId ?? '',
|
|
283
|
+
assessment_id: issueData?.assessmentId ?? '',
|
|
284
|
+
question_id: issueData?.questionId ?? '',
|
|
285
|
+
auditee_id: issueData?.auditeeId ?? null,
|
|
286
|
+
};
|
|
287
|
+
payload.source = issueData?.source;
|
|
288
|
+
return payload;
|
|
289
|
+
}
|
|
290
|
+
arrayToId(array, key) {
|
|
291
|
+
if (array.length === 0) {
|
|
292
|
+
return '';
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
return array[0][key];
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
getArrayId(array, key) {
|
|
299
|
+
return array.map((ele) => ele[key]);
|
|
300
|
+
}
|
|
301
|
+
convertFrom24To12Format(time) {
|
|
302
|
+
const hhmm = time.split(':');
|
|
303
|
+
time = `${hhmm[0]}:${hhmm[1]}`;
|
|
304
|
+
// Check correct time format and split into components
|
|
305
|
+
time = time
|
|
306
|
+
.toString()
|
|
307
|
+
.match(/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];
|
|
308
|
+
if (time.length > 1) {
|
|
309
|
+
// If time format correct
|
|
310
|
+
time = time.slice(1); // Remove full string match value
|
|
311
|
+
time[5] = +time[0] < 12 ? ' AM' : ' PM'; // Set AM/PM
|
|
312
|
+
time[0] = +time[0] % 12 || 12; // Adjust hours
|
|
313
|
+
}
|
|
314
|
+
return time.join(''); // return adjusted time or original string
|
|
315
|
+
}
|
|
316
|
+
arrayToIDsDtring(array, identifierKey) {
|
|
317
|
+
const list = array.map((el) => {
|
|
318
|
+
return el[identifierKey];
|
|
319
|
+
});
|
|
320
|
+
return list.join();
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Uploads the given file to server
|
|
324
|
+
* @param payload payload File data to be uploaded
|
|
325
|
+
* @param path path Path of file to be uploaded
|
|
326
|
+
* @returns response after uploading a file
|
|
327
|
+
*/
|
|
328
|
+
uploadFiles(payload, path) {
|
|
329
|
+
// {
|
|
330
|
+
// reportProgress: true,
|
|
331
|
+
// observe: 'events'}
|
|
332
|
+
const ORG_PATH = `o/${path}`;
|
|
333
|
+
return this.http.post(this.env.fileUploadEndPoint + ORG_PATH + '&ngsw-bypass=true', payload);
|
|
334
|
+
}
|
|
335
|
+
getIssueDetails(issueId) {
|
|
336
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
337
|
+
return this.http
|
|
338
|
+
.get(this.env.assurance + 'Issue/Edit/' + issueId, { headers })
|
|
339
|
+
.pipe(retry(3));
|
|
340
|
+
}
|
|
341
|
+
formatDate() {
|
|
342
|
+
const currentDate = new Date();
|
|
343
|
+
const day = String(currentDate.getDate()).padStart(2, '0');
|
|
344
|
+
const month = String(currentDate.getMonth() + 1).padStart(2, '0');
|
|
345
|
+
const year = currentDate.getFullYear();
|
|
346
|
+
const formattedDate = `${day}-${month}-${year}`;
|
|
347
|
+
return formattedDate;
|
|
348
|
+
}
|
|
349
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LogIssueService, deps: [{ token: i1.HttpClient }, { token: i2.AuthService }, { token: i3.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
350
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LogIssueService, providedIn: 'root' }); }
|
|
351
|
+
}
|
|
352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LogIssueService, decorators: [{
|
|
353
|
+
type: Injectable,
|
|
354
|
+
args: [{
|
|
355
|
+
providedIn: 'root',
|
|
356
|
+
}]
|
|
357
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
|
|
358
|
+
type: Optional
|
|
359
|
+
}] }]; } });
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFJbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFLekUsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBa1ZsQyw0QkFBdUIsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hDLElBQUksTUFBTSxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU07cUJBQ3JDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQztxQkFDOUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxJQUFJLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRTdDLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FB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WlUsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgREVGQVVMVF8yNEhSLCBERUZBVUxUX1RJTUUgfSBmcm9tICcuLi9jb25zdGFudHMvdGltZS5jb25zdGFudHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ0lzc3VlU2VydmljZSB7XHJcbiAgZW52ITogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xyXG4gICkge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZVR5cGVzKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ2lzc3VlVHlwZUxpc3QnLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JnUGVvcGxlKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ3Blb3BsZScsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZUNhdGVnb3JpZXMoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICB0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdD9jYXRlZ29yaWVzPXRydWUnLFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gICAgLy9odHRwczovL2RldmFwaS52LWNvbXBseS5jb20vQXNzdXJhbmNlL0lzc3VlL0NhdGVnb3J5L0NhdExpc3QvMT9pc0J1c2luZXNzQ3ljbGU9dHJ1ZSZjYXRlZ29yaWVzPXRydWVcclxuICB9XHJcbiAgZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdyZXNwb25zaWJpbGl0eUNlbnRlclRyZWUnLCB7XHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBjcmVhdGVJc3N1ZShwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZScsIHBheWxvYWQsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIHVwZGF0ZUlzc3VlKHBheWxvYWQ6IGFueSwgaXNzdWVJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0KHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZS8nICsgaXNzdWVJZCwgcGF5bG9hZCwgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRyb2xSaXNrKGF1ZGl0UGxhbklkOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xyXG4gICAgLy8gICAgIEdldCBMaW5rZWQgQXVkaXQgUGxhbiBSZXNwb25zaWJpbGl0aWVzIGJ5IEF1ZGl0X1BsYW5fSWRcclxuICAgIC8vIFVSTDogaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL3Jlc3BvbnNpYmlsaXRpZXMvP21vZGU9bWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD02MTBiMzI5MTQ0YzgxYTAwMDljYmI1OTggTWV0aG9kOiBHRVRcclxuXHJcbiAgICAvLyBHZXQgTGlua2VkIEF1ZGl0IFBsYW4gUmlzayBieSBBdWRpdF9QbGFuX0lkXHJcbiAgICAvLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yaXNrLz9tb2RlPXJpc2svbWFuYWdlX2F1ZGl0X3BsYW5fcmlzayZpZD02MTBiMzI5MTQ0YzgxYTAwMDljYmI1OThcclxuICAgIC8vIE1ldGhvZDogR0VUXHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgaWYgKHR5cGUgPT09ICdSRVNQT05TSUJJTElUWScpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgIC5nZXQ8YW55W10+KFxyXG4gICAgICAgICAgdGhpcy5lbnYucmVzcG9uc2liaWxpdGllc0dldCArXHJcbiAgICAgICAgICAgICdtYW5hZ2VfYXVkaXRfcGxhbl9yZXNwb25zaWJpbGl0aWVzJmlkPScgK1xyXG4gICAgICAgICAgICBhdWRpdFBsYW5JZCxcclxuICAgICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gKHtcclxuICAgICAgICAgICAgICBpdGVtSWQ6IGl0ZW0/LnJlcG9ydF9pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbElkOiBpdGVtPy5jb250cm9sX2lkLFxyXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sTmFtZTogaXRlbT8ucmVwb3J0X25hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6ICdSRVNQT05TSUJJTElUWScsXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ1JJU0snKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICAgIHRoaXMuZW52LnJpc2sgKyAncmlzay9tYW5hZ2VfYXVkaXRfcGxhbl9yaXNrJmlkPScgKyBhdWRpdFBsYW5JZCxcclxuICAgICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gKHtcclxuICAgICAgICAgICAgICBpdGVtSWQ6IGl0ZW0/LnJpc2tfaWQsXHJcbiAgICAgICAgICAgICAgaXRlbUNvbnRyb2xJZDogaXRlbT8ucmlza19jb250cm9sX2lkLFxyXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sTmFtZTogaXRlbT8udGl0bGUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6ICdSSVNLJyxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZShpc3N1ZURhdGE6IGFueSwgb3BlbmVkRnJvbTogYW55LCBpc1JDTWFuZGF0b3J5OiBhbnkpIHtcclxuICAgIGNvbnN0IGVycm9ycyA9IFtdO1xyXG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVOYW1lIHx8IGlzc3VlRGF0YS5pc3N1ZU5hbWUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBlcnJvcnMucHVzaCgnaXNzdWVOYW1lJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoID09PSAwICYmIGlzUkNNYW5kYXRvcnkpIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlUkMnKTtcclxuICAgIH1cclxuICAgIGlmIChpc3N1ZURhdGEuZW50cnVzdFRvLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBlcnJvcnMucHVzaCgnZW50cnVzdFRvJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlRHVlRGF0ZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvblxyXG4gICAgICAgIC5yZXBsYWNlKC8mbmJzcDsvZywgJycpXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcPGJyXFxzKltcXC9dPz4vZ2ksICcnKVxyXG4gICAgICAgIC50cmltKCkubGVuZ3RoID09PSAwXHJcbiAgICApIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlUmVjb21tZW5kYXRpb24nKTtcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVBheWxvYWQoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgIGNvbnN0IGRhdGVTcGxpdCA9IFtcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRNb250aCgpICsgMSxcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldERhdGUoKSxcclxuICAgIF07XHJcbiAgICBjb25zdCB0aW1lOiBhbnkgPSB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KFxyXG4gICAgICBpc3N1ZURhdGEuaXNzdWVEdWVUaW1lXHJcbiAgICApLnNwbGl0KCc6Jyk7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoXHJcbiAgICAgIGRhdGVTcGxpdFswXSxcclxuICAgICAgZGF0ZVNwbGl0WzFdIC0gMSxcclxuICAgICAgZGF0ZVNwbGl0WzJdLFxyXG4gICAgICB0aW1lWzBdLFxyXG4gICAgICB0aW1lWzFdLFxyXG4gICAgICAwXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZUlzc3VlOiBhbnkgPSB7XHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMsXHJcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogb3B0aW9uRmllbGRzU3RhdHVzLkFTU09DSUFURURfUklTS1NcclxuICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUFzc29jaWF0ZWRSaXNrXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVfbmFtZTogaXNzdWVEYXRhLmlzc3VlTmFtZSxcclxuICAgICAgcmVwb3J0X2lkOiAnMCcsXHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uOiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbixcclxuICAgICAgaXNzdWVfdHlwZTogb3B0aW9uRmllbGRzU3RhdHVzLklTU1VFX1RZUEVcclxuICAgICAgICA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZVR5cGUsICdpc3N1ZV9pZCcpLnRvU3RyaW5nKClcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBleGNlcHRpb25fdHlwZTogb3B0aW9uRmllbGRzU3RhdHVzLkVYQ0VQVElPTl9UWVBFXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZS50b1N0cmluZygpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgcmlza19jbGFzczogaXNzdWVEYXRhLmlzc3VlUmlza1JhdGluZy50b1N0cmluZygpID8/ICcnLFxyXG4gICAgICBwcmlvcml0eTogb3B0aW9uRmllbGRzU3RhdHVzLlBSSU9SSVRZXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVQcmlvcml0eS50b1N0cmluZygpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVfY2F0ZWdvcnlfaWQ6XHJcbiAgICAgICAgdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlQ2F0ZWdvcnksICdjYXRlZ29yeV9pZCcpID8/IDAsXHJcbiAgICAgIHJlY29tbWVuZGF0aW9uOiBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvbixcclxuICAgICAgZW50cnVzdGVkX3RvOiB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuZW50cnVzdFRvLCAnZW1wbG95ZWVfaWQnKSA/PyAwLFxyXG4gICAgICBpc3N1ZV9kYXRlOlxyXG4gICAgICAgIGRhdGVTcGxpdFswXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICBkYXRlU3BsaXRbMV0gK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgZGF0ZVNwbGl0WzJdICtcclxuICAgICAgICAnICcgK1xyXG4gICAgICAgIHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSksXHJcbiAgICAgIGZhaWxlZF90aW1lOiB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBpc3N1ZV9kdWVfZGF0ZTpcclxuICAgICAgICBkYXRlU3BsaXRbMF0gK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgZGF0ZVNwbGl0WzFdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsyXSArXHJcbiAgICAgICAgJyAnICtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBncmNfYXJlYTogJycsXHJcbiAgICAgIGNjX2VtcGxveWVlX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUXHJcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JRHNEdHJpbmcoaXNzdWVEYXRhLmlzc3VlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJylcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBmYWlsdXJlX2NjX2VtcGxveWVlX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUXHJcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JRHNEdHJpbmcoaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLCAnZW1wbG95ZWVfZW1haWwnKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGN1c3RvbV90YWdfdmFsdWU6ICcnLFxyXG4gICAgICBpc3N1ZV9yZXNvbHZlX3RpbWVzdGFtcDogKGRhdGUuZ2V0VGltZSgpIC8gMTAwMCkudG9TdHJpbmcoKSxcclxuICAgICAgZXZpZGVuY2VfdXBsb2FkX2ZsYWc6IG9wdGlvbkZpZWxkc1N0YXR1cy5FVklERU5DRVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmV2aWRlbmNlUmVxdWlyZWRcclxuICAgICAgICAgID8gJzEnXHJcbiAgICAgICAgICA6ICcwJ1xyXG4gICAgICAgIDogJzAnLFxyXG4gICAgfTtcclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGgpIHtcclxuICAgICAgY3JlYXRlSXNzdWUucmNfaWQgPSB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVSQywgJ3JjX2lkJykgPz8gMDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY3JlYXRlSXNzdWU7XHJcbiAgfVxyXG5cclxuICBwYXlsb2FkQnVpbGRlcihpc3N1ZURhdGE6IGFueSwgb3B0aW9uRmllbGRzU3RhdHVzOiBhbnkpIHtcclxuICAgIGNvbnN0IGlzTW9tZW50ID0gbW9tZW50LmlzTW9tZW50KGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gaXNNb21lbnRcclxuICAgICAgPyBtb21lbnQoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSkudG9EYXRlKClcclxuICAgICAgOiBuZXcgRGF0ZShpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgIGNvbnN0IGRhdGVTcGxpdCA9IFtcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRNb250aCgpICsgMSxcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldERhdGUoKSxcclxuICAgIF07XHJcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgIGRlc2NyaXB0aW9uOiBbXSxcclxuICAgICAgYXNzb2NpYXRlZF9yaXNrOiBbXSxcclxuICAgICAgcmVjb21tZW5kYXRpb246IFtdLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQudGl0bGUgPSBpc3N1ZURhdGEuaXNzdWVOYW1lLnRyaW0oKSA/PyAnJztcclxuICAgIHBheWxvYWQucmNfaWQgPSBpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGhcclxuICAgICAgPyB0aGlzLmdldEFycmF5SWQoaXNzdWVEYXRhLmlzc3VlUkMsICdyY19pZCcpXHJcbiAgICAgIDogW107XHJcbiAgICBwYXlsb2FkLnJlc3BvbnNpYmlsaXRpZXNfTGlua2VkID0gaXNzdWVEYXRhLnJlc3BvbnNpYmlsaXR5TGlua2VkLmxlbmd0aFxyXG4gICAgICA/IHRoaXMuZ2V0QXJyYXlJZChpc3N1ZURhdGEucmVzcG9uc2liaWxpdHlMaW5rZWQsICdSZXBvcnRJZCcpXHJcbiAgICAgIDogW107XHJcbiAgICBwYXlsb2FkLmNhdGVnb3J5X2lkID0gaXNzdWVEYXRhLmlzc3VlQ2F0ZWdvcnkubGVuZ3RoXHJcbiAgICAgID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlQ2F0ZWdvcnksICdjYXRlZ29yeV9pZCcpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHBheWxvYWQuZGVzY3JpcHRpb25bMF0gPSB7XHJcbiAgICAgIHRleHQ6IGlzc3VlRGF0YS5pc3N1ZURlc2NyaXB0aW9uID8/ICcnLFxyXG4gICAgICBhdHRhY2htZW50czogaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzLmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzXHJcbiAgICAgICAgOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLmV4Y2VwdGlvbl90eXBlID0gb3B0aW9uRmllbGRzU3RhdHVzLkVYQ0VQVElPTl9UWVBFXHJcbiAgICAgID8gTnVtYmVyKGlzc3VlRGF0YS5leGNlcHRpb25UeXBlKVxyXG4gICAgICA6IG51bGw7XHJcbiAgICBwYXlsb2FkLnJpc2tfY2xhc3MgPSBpc3N1ZURhdGEuaXNzdWVSaXNrUmF0aW5nID8/IG51bGw7XHJcbiAgICBwYXlsb2FkLnByaW9yaXR5ID0gb3B0aW9uRmllbGRzU3RhdHVzLlBSSU9SSVRZXHJcbiAgICAgID8gTnVtYmVyKGlzc3VlRGF0YS5pc3N1ZVByaW9yaXR5KVxyXG4gICAgICA6IG51bGw7XHJcbiAgICBwYXlsb2FkLmFzc2lnbmVlX2lkID0gaXNzdWVEYXRhLmVudHJ1c3RUb1xyXG4gICAgICA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5lbnRydXN0VG8sICdteV9tZW1iZXJfaWQnKVxyXG4gICAgICA6IG51bGw7XHJcbiAgICBwYXlsb2FkLmFzc29jaWF0ZWRfcmlza1swXSA9IHtcclxuICAgICAgdGV4dDogb3B0aW9uRmllbGRzU3RhdHVzLkFTU09DSUFURURfUklTS1NcclxuICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUFzc29jaWF0ZWRSaXNrXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgYXR0YWNobWVudHM6IFtdLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQucmVjb21tZW5kYXRpb25bMF0gPSB7XHJcbiAgICAgIHRleHQ6IGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uID8/ICcnLFxyXG4gICAgICBhdHRhY2htZW50czogaXNzdWVEYXRhPy5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50cy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQuZXZpZGVuY2UgPSB7XHJcbiAgICAgIGV2aWRlbmNlX2ZsYWc6IG9wdGlvbkZpZWxkc1N0YXR1cy5FVklERU5DRVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmV2aWRlbmNlUmVxdWlyZWRcclxuICAgICAgICAgID8gMVxyXG4gICAgICAgICAgOiAwXHJcbiAgICAgICAgOiAwLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQuZnJlcXVlbmN5X2RldGFpbHMgPSB7XHJcbiAgICAgIGZyZXF1ZW5jeV90aW1lOlxyXG4gICAgICAgIHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSkgPz8gREVGQVVMVF9USU1FLFxyXG4gICAgICBmcmVxdWVuY3lfZGF0ZTpcclxuICAgICAgICBkYXRlU3BsaXRbMF0gK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgKGRhdGVTcGxpdFsxXSA8IDEwID8gJzAnICsgZGF0ZVNwbGl0WzFdIDogZGF0ZVNwbGl0WzFdKSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICAoZGF0ZVNwbGl0WzJdIDwgMTAgPyAnMCcgKyBkYXRlU3BsaXRbMl0gOiBkYXRlU3BsaXRbMl0pLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQub3ZlcnNlZXIgPSB7XHJcbiAgICAgIGNjX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVDQ1VzZXJzLmxlbmd0aFxyXG4gICAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVDQ1VzZXJzLm1hcCgoeDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHsgbWVtYmVyX2lkOiB4Lm15X21lbWJlcl9pZCA/PyAwLCBhbGVydF9lbmFibGU6IDEgfTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIDogW11cclxuICAgICAgICA6IFtdLFxyXG4gICAgICBmYWlsdXJlX2NjX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuZmFpbHVyZUNDVXNlcnMubGVuZ3RoXHJcbiAgICAgICAgICA/IGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2Vycy5tYXAoKHg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7IG1lbWJlcl9pZDogeC5teV9tZW1iZXJfaWQgPz8gMCwgYWxlcnRfZW5hYmxlOiAxIH07XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICA6IFtdXHJcbiAgICAgICAgOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLmN1c3RvbV90YWdzID0gaXNzdWVEYXRhPy5pc3N1ZUN1c3RvbVRhZztcclxuICAgIHBheWxvYWQuaXNzdWVUeXBlID0gaXNzdWVEYXRhPy5pc3N1ZVR5cGU7XHJcbiAgICBwYXlsb2FkLmxpbmtlZF9hc3Nlc3NtZW50X2lzc3VlcyA9e1xyXG4gICAgICByZXNwX2lkOiBpc3N1ZURhdGE/LnJlc3BJZCA/PyAnJyxcclxuICAgICAgZHVlX2RhdGVfaWQ6IGlzc3VlRGF0YT8uZHVlRGF0ZUlkID8/ICcnLFxyXG4gICAgICBhc3Nlc3NtZW50X2lkOiBpc3N1ZURhdGE/LmFzc2Vzc21lbnRJZCA/PyAnJyxcclxuICAgICAgcXVlc3Rpb25faWQ6IGlzc3VlRGF0YT8ucXVlc3Rpb25JZCA/PyAnJyxcclxuICAgICAgYXVkaXRlZV9pZDogaXNzdWVEYXRhPy5hdWRpdGVlSWQgPz8gbnVsbCxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLnNvdXJjZSA9IGlzc3VlRGF0YT8uc291cmNlO1xyXG5cclxuICAgIHJldHVybiBwYXlsb2FkO1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lkKGFycmF5OiBhbnksIGtleTogYW55KSB7XHJcbiAgICBpZiAoYXJyYXkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhcnJheVswXVtrZXldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QXJyYXlJZChhcnJheTogYW55LCBrZXk6IGFueSkge1xyXG4gICAgcmV0dXJuIGFycmF5Lm1hcCgoZWxlOiBhbnkpID0+IGVsZVtrZXldKTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0ID0gKHRpbWUxMjogYW55KSA9PiB7XHJcbiAgICBpZiAodGltZTEyKSB7XHJcbiAgICAgIGNvbnN0IFtzSG91cnMsIG1pbnV0ZXMsIHBlcmlvZF0gPSB0aW1lMTJcclxuICAgICAgICAubWF0Y2goLyhbMC05XXsxLDJ9KTooWzAtOV17Mn0pIChhbXxwbXxBTXxQTSkvKVxyXG4gICAgICAgIC5zbGljZSgxKTtcclxuICAgICAgY29uc3QgUE0gPSBwZXJpb2QgPT09ICdQTSc7XHJcbiAgICAgIGNvbnN0IGhvdXJzID0gKCtzSG91cnMgJSAxMikgKyAoUE0gPyAxMiA6IDApO1xyXG5cclxuICAgICAgcmV0dXJuIGAkeygnMCcgKyBob3Vycykuc2xpY2UoLTIpfToke21pbnV0ZXN9OjAwYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBERUZBVUxUXzI0SFI7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29udmVydEZyb20yNFRvMTJGb3JtYXQodGltZTogYW55KSB7XHJcbiAgICBjb25zdCBoaG1tID0gdGltZS5zcGxpdCgnOicpO1xyXG4gICAgdGltZSA9IGAke2hobW1bMF19OiR7aGhtbVsxXX1gO1xyXG4gICAgLy8gQ2hlY2sgY29ycmVjdCB0aW1lIGZvcm1hdCBhbmQgc3BsaXQgaW50byBjb21wb25lbnRzXHJcbiAgICB0aW1lID0gdGltZVxyXG4gICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAubWF0Y2goL14oWzAxXVxcZHwyWzAtM10pKDopKFswLTVdXFxkKSg6WzAtNV1cXGQpPyQvKSB8fCBbdGltZV07XHJcblxyXG4gICAgaWYgKHRpbWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAvLyBJZiB0aW1lIGZvcm1hdCBjb3JyZWN0XHJcbiAgICAgIHRpbWUgPSB0aW1lLnNsaWNlKDEpOyAvLyBSZW1vdmUgZnVsbCBzdHJpbmcgbWF0Y2ggdmFsdWVcclxuICAgICAgdGltZVs1XSA9ICt0aW1lWzBdIDwgMTIgPyAnIEFNJyA6ICcgUE0nOyAvLyBTZXQgQU0vUE1cclxuICAgICAgdGltZVswXSA9ICt0aW1lWzBdICUgMTIgfHwgMTI7IC8vIEFkanVzdCBob3Vyc1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRpbWUuam9pbignJyk7IC8vIHJldHVybiBhZGp1c3RlZCB0aW1lIG9yIG9yaWdpbmFsIHN0cmluZ1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lEc0R0cmluZyhhcnJheTogYW55LCBpZGVudGlmaWVyS2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IGxpc3QgPSBhcnJheS5tYXAoKGVsOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIGVsW2lkZW50aWZpZXJLZXldO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbGlzdC5qb2luKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHBhcmFtIHBhdGggcGF0aCBQYXRoIG9mIGZpbGUgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXHJcbiAgICovXHJcbiAgdXBsb2FkRmlsZXMocGF5bG9hZDogYW55LCBwYXRoOiBhbnkpIHtcclxuICAgIC8vIHtcclxuICAgIC8vICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAvLyAgIG9ic2VydmU6ICdldmVudHMnfVxyXG4gICAgY29uc3QgT1JHX1BBVEggPSBgby8ke3BhdGh9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgdGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgT1JHX1BBVEggKyAnJm5nc3ctYnlwYXNzPXRydWUnLFxyXG4gICAgICBwYXlsb2FkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVEZXRhaWxzKGlzc3VlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvRWRpdC8nICsgaXNzdWVJZCwgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDMpKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUoKSB7XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBkYXkgPSBTdHJpbmcoY3VycmVudERhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbW9udGggPSBTdHJpbmcoY3VycmVudERhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCB5ZWFyID0gY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBgJHtkYXl9LSR7bW9udGh9LSR7eWVhcn1gO1xyXG4gICAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XHJcbiAgfVxyXG4gIFxyXG59XHJcbiJdfQ==
|