vcomply-workflow-engine 2.0.4 → 2.0.167
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/.editorconfig +16 -0
- package/.vscode/settings.json +23 -0
- package/README.md +11 -8
- package/angular.json +145 -0
- package/package.json +59 -25
- package/projects/vx-workflow-engine/README.md +24 -0
- package/projects/vx-workflow-engine/karma.conf.js +44 -0
- package/projects/vx-workflow-engine/ng-package.json +17 -0
- package/projects/vx-workflow-engine/package.json +18 -0
- package/projects/vx-workflow-engine/src/images/bottom-part.svg +3 -0
- package/projects/vx-workflow-engine/src/images/enter-icon.svg +6 -0
- package/projects/vx-workflow-engine/src/images/name.svg +32 -0
- package/projects/vx-workflow-engine/src/images/responsibility-center.svg +35 -0
- package/projects/vx-workflow-engine/src/images/risk-category.svg +57 -0
- package/projects/vx-workflow-engine/src/images/top-part.svg +3 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility/add-multiple-responsibility.component.html +43 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility/add-multiple-responsibility.component.less +133 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility/add-multiple-responsibility.component.spec.ts +141 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility/add-multiple-responsibility.component.ts +989 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility/data.ts +321 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.html +93 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.less +167 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.ts +226 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.html +48 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.less +133 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.spec.ts +220 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.ts +1729 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-risk/add-multiple-risk.component.html +74 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-risk/add-multiple-risk.component.less +151 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-risk/add-multiple-risk.component.spec.ts +169 -0
- package/projects/vx-workflow-engine/src/lib/add-multiple-risk/add-multiple-risk.component.ts +871 -0
- package/projects/vx-workflow-engine/src/lib/configurations.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/confirmation-alert/confirmation-alert.component.html +23 -0
- package/projects/vx-workflow-engine/src/lib/confirmation-alert/confirmation-alert.component.less +118 -0
- package/projects/vx-workflow-engine/src/lib/confirmation-alert/confirmation-alert.component.ts +21 -0
- package/projects/vx-workflow-engine/src/lib/create-documents/create-documents.component.html +281 -0
- package/projects/vx-workflow-engine/src/lib/create-documents/create-documents.component.less +333 -0
- package/projects/vx-workflow-engine/src/lib/create-documents/create-documents.component.ts +146 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox/cs-checkbox.component.html +14 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox/cs-checkbox.component.less +149 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox/cs-checkbox.component.ts +26 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.html +12 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.less +109 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ts +30 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-radio/cs-radio.component.html +14 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-radio/cs-radio.component.less +148 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-radio/cs-radio.component.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-radio-group/cs-radio-group.component.html +4 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-radio-group/cs-radio-group.component.less +0 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-radio-group/cs-radio-group.component.ts +12 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-select/cs-select.component.html +46 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-select/cs-select.component.less +177 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-select/cs-select.component.ts +80 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-switch/cs-switch.component.html +19 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-switch/cs-switch.component.less +100 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/cs-switch/cs-switch.component.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/formgroup.module.ts +35 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/pipes/pascal.pipe.ts +13 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/select/cs-option/cs-option.component.html +8 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/select/cs-option/cs-option.component.less +47 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/select/cs-option/cs-option.component.ts +33 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/select/cs-select/cs-select.component.html +32 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/select/cs-select/cs-select.component.less +113 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/select/cs-select/cs-select.component.ts +107 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/select/select.module.ts +13 -0
- package/projects/vx-workflow-engine/src/lib/formgroup/select/select.service.ts +45 -0
- package/projects/vx-workflow-engine/src/lib/forms.less +3361 -0
- package/projects/vx-workflow-engine/src/lib/interceptor/business-cycle.interceptor.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/interfaces/categoryList.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/interfaces/checkbox-list-config.ts +7 -0
- package/projects/vx-workflow-engine/src/lib/interfaces/confirmation-alert.ts +9 -0
- package/projects/vx-workflow-engine/src/lib/interfaces/issue-data.ts +29 -0
- package/projects/vx-workflow-engine/src/lib/interfaces/radio-list-config.ts +5 -0
- package/projects/vx-workflow-engine/src/lib/interfaces/submenu-option.ts +21 -0
- package/projects/vx-workflow-engine/src/lib/log-an-issue/data.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/log-an-issue/log-an-issue.component.html +701 -0
- package/projects/vx-workflow-engine/src/lib/log-an-issue/log-an-issue.component.less +9 -0
- package/projects/vx-workflow-engine/src/lib/log-an-issue/log-an-issue.component.spec.ts +101 -0
- package/projects/vx-workflow-engine/src/lib/log-an-issue/log-an-issue.component.ts +1205 -0
- package/projects/vx-workflow-engine/src/lib/more-option/more-option.component.html +108 -0
- package/projects/vx-workflow-engine/src/lib/more-option/more-option.component.less +377 -0
- package/projects/vx-workflow-engine/src/lib/more-option/more-option.component.spec.ts +132 -0
- package/projects/vx-workflow-engine/src/lib/more-option/more-option.component.ts +872 -0
- package/projects/vx-workflow-engine/src/lib/pipes/data-type.pipe.ts +12 -0
- package/projects/vx-workflow-engine/src/lib/pipes/dom-sanitizer.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/pipes/dom-sanitizer.pipe.ts +17 -0
- package/projects/vx-workflow-engine/src/lib/pipes/filter.pipe.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/pipes/list-mapper.pipe.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/pipes/pipes.module.ts +38 -0
- package/projects/vx-workflow-engine/src/lib/pipes/search.pipe.ts +63 -0
- package/projects/vx-workflow-engine/src/lib/pipes/space-breaker.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/pipes/space-breaker.pipe.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/pipes/uncategorized-filter.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/pipes/uncategorized-filter.pipe.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/pipes/user-filter.pipe.ts +28 -0
- package/projects/vx-workflow-engine/src/lib/services/auth.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/services/auth.service.ts +174 -0
- package/projects/vx-workflow-engine/src/lib/services/bulk-upload.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/services/bulk-upload.service.ts +43 -0
- package/projects/vx-workflow-engine/src/lib/services/event-bridge.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/services/event-bridge.service.ts +47 -0
- package/projects/vx-workflow-engine/src/lib/services/permission.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/services/permission.service.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.html +380 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.less +127 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.ts +285 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.html +335 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.less +290 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.ts +82 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow.component.html +21 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow.component.less +299 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow.component.ts +86 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.html +62 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.less +225 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ts +371 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.html +33 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.less +209 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ts +85 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.html +120 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.less +459 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ts +29 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.html +42 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.less +201 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ts +112 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.html +117 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.less +567 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ts +209 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/build.module.ts +70 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.html +30 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.less +151 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ts +22 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.html +14 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.less +74 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ts +66 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.html +14 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.less +87 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.html +30 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.less +151 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ts +21 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.html +17 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.less +147 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.html +45 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.less +113 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.html +32 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.less +74 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.html +30 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.less +98 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ts +22 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.html +13 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.less +103 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.html +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.less +74 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.html +17 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.less +43 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.html +120 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.less +193 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ts +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.html +10 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.less +59 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.html +6 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.less +64 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ts +54 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.html +10 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.less +59 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.html +89 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.less +256 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ts +160 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/errorInterface/error.ts +14 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/errorInterface/question.ts +5 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic/logic.component.html +52 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic/logic.component.less +193 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic/logic.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic/logic.component.ts +102 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.html +14 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.less +61 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ts +20 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.html +3 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.less +40 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.html +23 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.less +97 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ts +36 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.html +3 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.less +33 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ts +28 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.html +12 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.less +63 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.html +14 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.less +50 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ts +20 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.html +6 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.less +43 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ts +63 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.html +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.less +66 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.html +4 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.less +39 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.html +14 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.less +48 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.html +18 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.less +38 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/move/move.component.html +63 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/move/move.component.less +90 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/move/move.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/move/move.component.ts +95 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.html +6 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.less +41 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.ts +17 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.ts +12 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.ts +12 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.ts +17 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.ts +13 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.html +10 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.less +49 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.html +3 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.less +44 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.html +28 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.less +248 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ts +28 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.html +5 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.less +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ts +29 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.html +7 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.less +55 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ts +19 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.html +12 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.less +77 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.html +98 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.less +132 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ts +34 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.html +40 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.less +111 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ts +22 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.html +11 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.less +49 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.html +8 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.less +45 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.html +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.less +66 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.html +3 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.less +39 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.html +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.less +49 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.html +18 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.less +42 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.html +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.less +81 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ts +62 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview.module.ts +90 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.html +5 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.less +32 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.html +5 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.less +32 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.html +100 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.less +120 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.html +46 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.less +245 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ts +247 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.html +71 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.less +254 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ts +36 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.html +62 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.less +665 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ts +52 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.html +64 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.less +552 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ts +159 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.html +20 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.less +109 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ts +130 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.html +112 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.less +192 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.html +52 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.less +226 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ts +91 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.html +122 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.less +667 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ts +481 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/create-assessment.module.ts +96 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/editor.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/editor.service.ts +664 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/result-criteria.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/result-criteria.service.ts +51 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/validation-worker.worker.ts +7 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/validator.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/validator.service.ts +556 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.html +13 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.less +58 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.html +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.less +59 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list.component.html +126 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list.component.less +516 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list.component.spec.ts +78 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list.component.ts +218 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/service/assessment.interface.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/service/assessment.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/service/assessment.service.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/assessment-preview.module.ts +59 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.html +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.less +109 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.ts +26 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/date-time/date-time.component.html +35 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/date-time/date-time.component.less +302 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/date-time/date-time.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/date-time/date-time.component.ts +32 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/device/device.component.html +23 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/device/device.component.less +59 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/device/device.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/device/device.component.ts +17 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.html +35 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.less +144 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/page-header/page-header.component.html +7 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/page-header/page-header.component.less +51 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/page-header/page-header.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/page-header/page-header.component.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview/preview.component.html +132 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview/preview.component.less +386 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview/preview.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview/preview.component.ts +41 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.html +42 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.less +78 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.html +70 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.less +163 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.html +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.less +103 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/select-question/select-question.component.html +18 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/select-question/select-question.component.less +88 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/select-question/select-question.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/select-question/select-question.component.ts +32 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.html +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.less +91 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/welcome/welcome.component.html +5 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/welcome/welcome.component.less +48 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/welcome/welcome.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/welcome/welcome.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/audit-category-list/audit-category-list.component.html +35 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/audit-category-list/audit-category-list.component.less +202 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/audit-category-list/audit-category-list.component.ts +57 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/audit-category-list/audit-category-list.spec.ts +42 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/audit-category-list/audit-category.model.ts +6 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.html +566 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.less +337 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.spec.ts +32 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ts +63 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/bulk-responsibility-view/data.ts +175 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/bulk-view/bulk-view.component.html +117 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/bulk-view/bulk-view.component.less +211 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/bulk-view/bulk-view.component.ts +66 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/category-list/category-list.component.html +72 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/category-list/category-list.component.less +198 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/category-list/category-list.component.ts +77 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/category-multiselect/category-multi-select.component.html +89 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/category-multiselect/category-multi-select.component.less +337 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/category-multiselect/category-multi-select.component.ts +161 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkbox-list/checkbox-list.component.html +54 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkbox-list/checkbox-list.component.less +321 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkbox-list/checkbox-list.component.ts +67 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkbox-list/checkbox-list.spec.ts +76 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.html +17 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.less +96 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.ts +242 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.html +14 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.less +107 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.ts +19 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.html +317 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.less +713 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.ts +103 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.html +56 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.less +172 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.ts +31 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.html +34 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.less +112 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.ts +65 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.html +59 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.less +97 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.html +96 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.less +703 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.ts +181 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/directive/autofocus.directive.ts +19 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/directive/conditional-focus.directive.ts +33 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/directive/drag-drop.directive.ts +42 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/directive/input-trim.directive.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/directive/scroll-in-view.directive.ts +28 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/document-section/document-section.component.html +261 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/document-section/document-section.component.less +313 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/document-section/document-section.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/document-section/document-section.component.ts +181 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/floating-bar/floating-bar.component.html +299 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/floating-bar/floating-bar.component.less +711 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/floating-bar/floating-bar.component.ts +78 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/floating-bar/floating-bar.module.ts +12 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/format-and-evidence/format-and-evidence.component.html +293 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/format-and-evidence/format-and-evidence.component.less +108 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/format-and-evidence/format-and-evidence.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/format-and-evidence/format-and-evidence.component.ts +307 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-integration-interfaces.ts +9 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.html +56 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.less +268 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.ts +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list.component.html +116 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list.component.less +218 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list.component.spec.ts +308 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list.component.ts +431 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.html +76 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.less +273 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.ts +31 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.html +19 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.less +98 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/parent-table/parent-table.component.html +129 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/parent-table/parent-table.component.less +619 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/parent-table/parent-table.component.ts +84 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.html +39 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.less +3 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.ts +306 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.html +37 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.less +3 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.ts +231 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.html +19 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.less +81 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.ts +26 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-container/frequency-container.component.html +232 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-container/frequency-container.component.less +118 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ts +321 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-container/frequency-container.spec.ts +117 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.html +32 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.less +69 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.ts +171 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-due-date/due-date.contant.ts +21 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.html +170 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.less +124 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.ts +70 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.html +137 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.less +557 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.ts +205 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.spec.ts +35 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-lifecycle/lifecycl.constant.ts +11 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.html +39 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.less +3 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.ts +241 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.html +89 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.less +288 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.ts +166 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.html +80 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.less +297 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ts +206 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.html +42 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.less +53 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.ts +64 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.html +38 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.less +3 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.ts +235 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.html +28 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.less +64 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-random/frequency-random.component.html +55 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-random/frequency-random.component.less +67 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-random/frequency-random.component.ts +292 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.html +149 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.less +498 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.ts +208 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-top/frequency-top.component.html +53 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-top/frequency-top.component.less +89 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-top/frequency-top.component.ts +111 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-top/frequency-top.spec.ts +40 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.html +40 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.less +13 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.ts +220 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency.service.ts +609 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.html +34 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.less +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.ts +314 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.html +31 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.less +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.ts +225 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.html +34 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.less +103 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.ts +21 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.html +67 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.less +119 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.ts +299 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.html +76 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.less +95 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.ts +95 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.html +33 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.less +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.ts +233 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.html +39 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.less +275 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.ts +215 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.html +33 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.less +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.ts +221 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.html +32 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.less +73 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.html +35 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.less +74 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.ts +111 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.html +32 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.less +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.ts +209 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/group-users-list/group-users-list.component.html +342 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/group-users-list/group-users-list.component.less +338 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/group-users-list/group-users-list.component.ts +261 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/link-program/link-program/link-program.component.html +385 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/link-program/link-program/link-program.component.less +931 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/link-program/link-program/link-program.component.spec.ts +31 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/link-program/link-program/link-program.component.ts +474 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/link-program/link-program/program-list-model.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/link-program/link-program.module.ts +33 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/link-program/program-integration-interfaces.ts +9 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/link-program/restapi.service.ts +139 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/link-program/tooltip-validation.pipe.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/list-loader/list-loader.component.html +33 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/list-loader/list-loader.component.less +140 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/list-loader/list-loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/list-loader/list-loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/list-loader/list-loader.module.ts +10 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/no-data/no-data.component.html +9 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/no-data/no-data.component.less +78 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/no-data/no-data.component.ts +26 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/no-data/no-data.module.ts +10 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/owner-list/owner-list.component.html +49 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/owner-list/owner-list.component.less +213 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/owner-list/owner-list.component.ts +127 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/pipes/array-filter.pipe.ts +14 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/pipes/filterPipe.ts +22 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/pipes/rcTreeToolTip.pipe.ts +20 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/pipes/short-merge.pipe.ts +20 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/pipes/spaceTrim.pipe.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/pipes/within-data.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/pipes/within-data.pipe.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/policy-access/policy-access.component.html +101 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/policy-access/policy-access.component.less +295 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/policy-access/policy-access.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/policy-access/policy-access.component.ts +63 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/program-listing/program-list-model.ts +27 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/program-listing/program-listing.component.html +259 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/program-listing/program-listing.component.less +826 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/program-listing/program-listing.component.spec.ts +190 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/program-listing/program-listing.component.ts +696 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/radio-list/radio-list.component.html +51 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/radio-list/radio-list.component.less +233 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/radio-list/radio-list.component.ts +60 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.html +33 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.less +140 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.spec.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.ts +12 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/radio-list.component.html +55 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/radio-list.component.less +259 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/radio-list.component.ts +116 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-centers-list/rc-list.module.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.html +117 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.less +308 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.ts +102 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.html +37 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.less +450 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.ts +63 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/review-frequency/review-frequency.component.html +56 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/review-frequency/review-frequency.component.less +141 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/review-frequency/review-frequency.component.ts +37 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/risk-classification/risk-classification.component.html +77 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/risk-classification/risk-classification.component.less +235 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/risk-classification/risk-classification.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/risk-classification/risk-classification.component.ts +84 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/roles-list/roles-list.component.html +68 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/roles-list/roles-list.component.less +234 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/roles-list/roles-list.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/roles-list/roles-list.component.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/select-approvers/select-approvers.component.html +71 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/select-approvers/select-approvers.component.less +211 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/select-approvers/select-approvers.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/select-approvers/select-approvers.component.ts +73 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/table-card-loader/table-card-loader.component.html +12 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/table-card-loader/table-card-loader.component.less +43 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/table-card-loader/table-card-loader.component.spec.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/table-card-loader/table-card-loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/users-radio-list/users-radio-list.component.html +34 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/users-radio-list/users-radio-list.component.less +248 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/users-radio-list/users-radio-list.component.ts +55 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader/loader.component.html +6 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader/loader.component.less +54 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader/loader.component.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.html +6 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.less +54 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/v-loader.module.ts +13 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/action-dialog.module.ts +13 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/active/active.component.html +17 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/active/active.component.less +124 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/active/active.component.spec.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/active/active.component.ts +30 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/deactivate/deactivate.component.html +17 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/deactivate/deactivate.component.less +123 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/deactivate/deactivate.component.spec.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/deactivate/deactivate.component.ts +28 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/delete/delete.component.html +25 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/delete/delete.component.less +230 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/delete/delete.component.spec.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/delete/delete.component.ts +22 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/duplicate/duplicate.component.html +17 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/duplicate/duplicate.component.less +123 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/duplicate/duplicate.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/duplicate/duplicate.component.ts +26 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/click-outside/click-outside.directive.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/click-outside/click-outside.module.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog-config.ts +5 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog-injector.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog-ref.ts +11 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.component.css +97 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.component.html +27 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.component.ts +98 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.module.ts +11 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.service.ts +77 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/dialog/insertion.directive.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/directive/directive.module.ts +17 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/directive/stop-propagation.directive.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/directive/stop-propagation.directive.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.html +61 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.less +263 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/editor-loader/editor-loader.module.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/format-html.pipe.ts +14 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/click-outside.directive.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.html +11 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.less +102 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.html +12 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.less +109 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ts +30 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.html +11 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.less +125 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ts +21 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.html +4 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.less +0 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ts +12 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-select/cs-select.component.html +78 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-select/cs-select.component.less +279 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-select/cs-select.component.ts +83 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.html +30 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.less +103 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/formgroup.module.ts +38 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/pipes/pascal.pipe.ts +13 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/hover-popover/hover-popover.component.html +1 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/hover-popover/hover-popover.component.less +0 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/hover-popover/hover-popover.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/hover-popover/hover-popover.module.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/line-loader/line-loader.component.html +3 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/line-loader/line-loader.component.less +34 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/line-loader/line-loader.component.ts +14 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/line-loader/line-loader.module.ts +10 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/no-data/no-data.component.html +16 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/no-data/no-data.component.less +81 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/no-data/no-data.component.ts +31 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/no-data/no-data.module.ts +10 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/pagination/pagination/pagination.component.html +57 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/pagination/pagination/pagination.component.less +228 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/pagination/pagination/pagination.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/pagination/pagination/pagination.component.ts +112 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/pagination/pagination.module.ts +20 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover/popover-event.directive.ts +19 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover/popover-longpress.directive.ts +34 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.component.html +6 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.component.less +19 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.component.ts +113 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.directive.ts +77 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.module.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.service.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.component.html +6 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.component.less +29 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.component.ts +103 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.directive.ts +21 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.module.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.service.ts +14 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/ripple/ripple.directive.ts +33 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/ripple/ripple.module.ts +10 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.html +49 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.less +518 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.ts +36 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog/smiley-dialog.module.ts +11 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.html +49 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.less +471 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.ts +34 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.ts +11 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.component.html +9 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.component.less +112 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.component.ts +51 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.module.ts +10 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.service.ts +27 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/tooltip/tooltip.directive.ts +127 -0
- package/projects/vx-workflow-engine/src/lib/ui-kit/tooltip/tooltip.module.ts +10 -0
- package/projects/vx-workflow-engine/src/lib/vx-workflow-engine.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/vx-workflow-engine.component.ts +20 -0
- package/projects/vx-workflow-engine/src/lib/vx-workflow-engine.module.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/vx-workflow-engine.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/vx-workflow-engine.service.ts +9 -0
- package/projects/vx-workflow-engine/src/lib/workflow/grc-object/grc-object-container/grc-object-container.component.html +303 -0
- package/projects/vx-workflow-engine/src/lib/workflow/grc-object/grc-object-container/grc-object-container.component.less +11 -0
- package/projects/vx-workflow-engine/src/lib/workflow/grc-object/grc-object-container/grc-object-container.component.ts +980 -0
- package/projects/vx-workflow-engine/src/lib/workflow/grc-object/grc-object.module.ts +34 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.html +86 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.less +288 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.ts +111 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes-dropdown/attributes-dropdown.component.ts +86 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes-text-box/attributes-text-box.component.ts +86 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes.component.html +131 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes.component.less +28 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes.component.ts +112 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/date-picker/date-picker.component.ts +81 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/edit-mode/edit-mode.component.ts +129 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.html +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.less +244 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.ts +121 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-object-list/grc-object-list.component.html +239 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-object-list/grc-object-list.component.less +689 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-object-list/grc-object-list.component.spec.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-object-list/grc-object-list.component.ts +208 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.html +63 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.less +483 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.spec.ts +23 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.ts +239 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.html +63 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.less +483 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.spec.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.ts +211 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.html +32 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.less +242 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.ts +85 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/list-popup/list-popup.component.ts +165 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.html +48 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.less +113 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.ts +448 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.html +26 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.less +114 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.ts +275 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/table-card/table-card.component.html +46 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/table-card/table-card.component.less +19 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/table-card/table-card.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/table-card/table-card.component.ts +42 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/text-field/text-field.component.less +33 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/text-field/text-field.component.ts +87 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/components/text-field-icon/text-field-icon.component.ts +36 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/constants/cdn-link.constant.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/constants/field-text.constant.ts +17 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/constants/grcObject.constant.ts +94 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/constants/link-responsibility.constant.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/constants/message.contstant.ts +4 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/constants/pagination-limits.constant.ts +5 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/constants/svg-link.constant.ts +3 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/constants/validation-message.constant.ts +7 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/interfaces/add-grc.ts +169 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/services/grc.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/services/grc.service.ts +371 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/get-selected-value.pipe.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/is-attributes-valid.pipe.ts +46 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/unique-responsibilities.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/unique-responsibilities.pipe.ts +19 -0
- package/projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/workflow-pipes.module.ts +20 -0
- package/projects/vx-workflow-engine/src/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.html +46 -0
- package/projects/vx-workflow-engine/src/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.less +148 -0
- package/projects/vx-workflow-engine/src/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ts +577 -0
- package/projects/vx-workflow-engine/src/lib/workflow-assessment/workflow-assessment.component.html +212 -0
- package/projects/vx-workflow-engine/src/lib/workflow-assessment/workflow-assessment.component.less +77 -0
- package/projects/vx-workflow-engine/src/lib/workflow-assessment/workflow-assessment.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-assessment/workflow-assessment.component.ts +258 -0
- package/projects/vx-workflow-engine/src/lib/workflow-compliance/workflow-compliance.component.html +3393 -0
- package/projects/vx-workflow-engine/src/lib/workflow-compliance/workflow-compliance.component.less +325 -0
- package/projects/vx-workflow-engine/src/lib/workflow-compliance/workflow-compliance.component.spec.ts +552 -0
- package/projects/vx-workflow-engine/src/lib/workflow-compliance/workflow-compliance.component.ts +4713 -0
- package/projects/vx-workflow-engine/src/lib/workflow-engine-container/workflow-engine-container.component.html +497 -0
- package/projects/vx-workflow-engine/src/lib/workflow-engine-container/workflow-engine-container.component.less +426 -0
- package/projects/vx-workflow-engine/src/lib/workflow-engine-container/workflow-engine-container.component.ts +740 -0
- package/projects/vx-workflow-engine/src/lib/workflow-engine-container/workflow-engine-container.spec.ts +409 -0
- package/projects/vx-workflow-engine/src/lib/workflow-engine.module.ts +298 -0
- package/projects/vx-workflow-engine/src/lib/workflow-engine.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/workflow-engine.service.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-interfaces/create-policy-form.ts +75 -0
- package/projects/vx-workflow-engine/src/lib/workflow-pagination/workflow-pagination.component.html +37 -0
- package/projects/vx-workflow-engine/src/lib/workflow-pagination/workflow-pagination.component.less +269 -0
- package/projects/vx-workflow-engine/src/lib/workflow-pagination/workflow-pagination.component.ts +112 -0
- package/projects/vx-workflow-engine/src/lib/workflow-policy/workflow-policy.component.html +3586 -0
- package/projects/vx-workflow-engine/src/lib/workflow-policy/workflow-policy.component.less +92 -0
- package/projects/vx-workflow-engine/src/lib/workflow-policy/workflow-policy.component.spec.ts +636 -0
- package/projects/vx-workflow-engine/src/lib/workflow-policy/workflow-policy.component.ts +2217 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/constants.ts +51 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list-loader/assessment-list-loader.component.html +13 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list-loader/assessment-list-loader.component.less +58 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list-loader/assessment-list-loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list-loader/assessment-list-loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.html +15 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.less +59 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list.component.html +136 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list.component.less +519 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list.component.spec.ts +78 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/assessment-list.component.ts +211 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/service/assessment.interface.ts +24 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/service/assessment.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-list/service/assessment.service.ts +39 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.html +13 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.less +58 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.html +155 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.less +779 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ts +329 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.html +15 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.less +59 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.ts +39 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/selected-assessment.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/selected-assessment.pipe.ts +19 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.html +37 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.less +269 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ts +112 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/checkbox/checkbox.component.html +23 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/checkbox/checkbox.component.less +127 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/checkbox/checkbox.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ts +45 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/create-program-ui.module.ts +118 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.html +35 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.less +103 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ts +46 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/custom-field/custom-field.component.html +17 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/custom-field/custom-field.component.less +0 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/custom-field/custom-field.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/custom-field/custom-field.component.ts +83 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.html +240 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.less +700 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ts +252 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/framework.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/framework.service.ts +37 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.html +13 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.less +58 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/category-all-select.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/category-all-select.pipe.ts +17 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/search.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/search.pipe.ts +19 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.ts +22 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/tooltip-message.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/tooltip-message.pipe.ts +60 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/directives/input-trim.directive.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/directives/input-trim.directive.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/file-pill/file-pill.component.html +9 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/file-pill/file-pill.component.less +29 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/file-pill/file-pill.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ts +18 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.html +46 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.less +647 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ts +72 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/form-field/form-field.component.html +11 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/form-field/form-field.component.less +0 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/form-field/form-field.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/form-field/form-field.component.ts +20 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.html +9 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.less +12 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ts +19 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.html +53 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.less +225 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ts +140 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pagination/pagination.module.ts +20 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/array-concat.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/array-concat.pipe.ts +12 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.ts +19 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/filter.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/filter.pipe.ts +22 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.ts +12 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/pager.pipe.ts +14 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.ts +13 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/search.pipe.spec.ts +8 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/search.pipe.ts +19 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/removed-code.ts +101 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/loader/loader.component.html +13 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/loader/loader.component.less +58 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/loader/loader.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/loader/loader.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/role-list.component.html +121 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/role-list.component.less +596 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/role-list.component.spec.ts +55 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/role-list.component.ts +221 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.html +6 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.less +144 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ts +50 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.html +6 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.less +35 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ts +15 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.html +217 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.less +634 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ts +444 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/data.ts +37 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/workflow-program.component.html +984 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/workflow-program.component.less +449 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/workflow-program.component.spec.ts +322 -0
- package/projects/vx-workflow-engine/src/lib/workflow-program/workflow-program.component.ts +1448 -0
- package/projects/vx-workflow-engine/src/lib/workflow-risk/workflow-risk.component.html +1574 -0
- package/projects/vx-workflow-engine/src/lib/workflow-risk/workflow-risk.component.less +9 -0
- package/projects/vx-workflow-engine/src/lib/workflow-risk/workflow-risk.component.spec.ts +223 -0
- package/projects/vx-workflow-engine/src/lib/workflow-risk/workflow-risk.component.ts +1778 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/add-risk.service.ts +210 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/assessment.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/assessment.service.ts +167 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/auth.service.ts +234 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/frequency.service.ts +171 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/log-issue.service.ts +263 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/policy.service.ts +245 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/programs.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/programs.service.ts +211 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/responsibility.service.ts +484 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/token-decoder.service.spec.ts +16 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/token-decoder.service.ts +32 -0
- package/projects/vx-workflow-engine/src/lib/workflow-services/ui-kit.service.ts +11 -0
- package/projects/vx-workflow-engine/src/lib/workflow-survey-form/workflow-survey-form.component.html +272 -0
- package/projects/vx-workflow-engine/src/lib/workflow-survey-form/workflow-survey-form.component.less +27 -0
- package/projects/vx-workflow-engine/src/lib/workflow-survey-form/workflow-survey-form.component.spec.ts +25 -0
- package/projects/vx-workflow-engine/src/lib/workflow-survey-form/workflow-survey-form.component.ts +21 -0
- package/projects/vx-workflow-engine/src/public-api.ts +8 -0
- package/projects/vx-workflow-engine/src/test.ts +26 -0
- package/projects/vx-workflow-engine/tsconfig.lib.json +20 -0
- package/projects/vx-workflow-engine/tsconfig.lib.prod.json +10 -0
- package/projects/vx-workflow-engine/tsconfig.spec.json +17 -0
- package/projects/workflow-client/.browserslistrc +17 -0
- package/projects/workflow-client/karma.conf.js +44 -0
- package/projects/workflow-client/src/app/app-routing.module.ts +10 -0
- package/projects/workflow-client/src/app/app.component.html +26 -0
- package/projects/workflow-client/src/app/app.component.less +0 -0
- package/projects/workflow-client/src/app/app.component.spec.ts +29 -0
- package/projects/workflow-client/src/app/app.component.ts +111 -0
- package/projects/workflow-client/src/app/app.module.ts +37 -0
- package/projects/workflow-client/src/assets/.gitkeep +0 -0
- package/projects/workflow-client/src/assets/v-loader.json +1 -0
- package/projects/workflow-client/src/assets/vLoader.json +1 -0
- package/projects/workflow-client/src/environments/environment.prod.ts +92 -0
- package/projects/workflow-client/src/environments/environment.ts +100 -0
- package/projects/workflow-client/src/favicon.ico +0 -0
- package/projects/workflow-client/src/featureFlag/feature-flag.directive.spec.ts +46 -0
- package/projects/workflow-client/src/featureFlag/feature-flag.directive.ts +29 -0
- package/projects/workflow-client/src/featureFlag/feature-flag.module.ts +14 -0
- package/projects/workflow-client/src/featureFlag/feature-flag.service.spec.ts +175 -0
- package/projects/workflow-client/src/featureFlag/feature-flag.service.ts +94 -0
- package/projects/workflow-client/src/index.html +16 -0
- package/projects/workflow-client/src/main.ts +12 -0
- package/projects/workflow-client/src/polyfills.ts +53 -0
- package/projects/workflow-client/src/styles.less +416 -0
- package/projects/workflow-client/src/test.ts +27 -0
- package/projects/workflow-client/tsconfig.app.json +15 -0
- package/projects/workflow-client/tsconfig.spec.json +18 -0
- package/tsconfig.json +38 -0
- package/bundles/vcomply-workflow-engine.umd.js +0 -26431
- package/bundles/vcomply-workflow-engine.umd.js.map +0 -1
- package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.js +0 -700
- package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.ngfactory.js +0 -79
- package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.ngsummary.json +0 -1
- package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.js +0 -569
- package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.ngfactory.js +0 -102
- package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.ngsummary.json +0 -1
- package/esm2015/lib/configurations.js +0 -6
- package/esm2015/lib/configurations.ngsummary.json +0 -1
- package/esm2015/lib/confirmation-alert/confirmation-alert.component.js +0 -27
- package/esm2015/lib/confirmation-alert/confirmation-alert.component.ngfactory.js +0 -25
- package/esm2015/lib/confirmation-alert/confirmation-alert.component.ngsummary.json +0 -1
- package/esm2015/lib/create-documents/create-documents.component.js +0 -148
- package/esm2015/lib/create-documents/create-documents.component.ngfactory.js +0 -42
- package/esm2015/lib/create-documents/create-documents.component.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/cs-checkbox/cs-checkbox.component.js +0 -31
- package/esm2015/lib/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.js +0 -36
- package/esm2015/lib/formgroup/cs-checkbox/cs-checkbox.component.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +0 -33
- package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.js +0 -33
- package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/cs-radio/cs-radio.component.js +0 -30
- package/esm2015/lib/formgroup/cs-radio/cs-radio.component.ngfactory.js +0 -23
- package/esm2015/lib/formgroup/cs-radio/cs-radio.component.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/cs-radio-group/cs-radio-group.component.js +0 -14
- package/esm2015/lib/formgroup/cs-radio-group/cs-radio-group.component.ngfactory.js +0 -19
- package/esm2015/lib/formgroup/cs-radio-group/cs-radio-group.component.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/cs-select/cs-select.component.js +0 -79
- package/esm2015/lib/formgroup/cs-select/cs-select.component.ngfactory.js +0 -74
- package/esm2015/lib/formgroup/cs-select/cs-select.component.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/cs-switch/cs-switch.component.js +0 -29
- package/esm2015/lib/formgroup/cs-switch/cs-switch.component.ngfactory.js +0 -45
- package/esm2015/lib/formgroup/cs-switch/cs-switch.component.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/formgroup.module.js +0 -38
- package/esm2015/lib/formgroup/formgroup.module.ngfactory.js +0 -13
- package/esm2015/lib/formgroup/formgroup.module.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/pipes/pascal.pipe.js +0 -15
- package/esm2015/lib/formgroup/pipes/pascal.pipe.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/select/cs-option/cs-option.component.js +0 -41
- package/esm2015/lib/formgroup/select/cs-option/cs-option.component.ngfactory.js +0 -38
- package/esm2015/lib/formgroup/select/cs-option/cs-option.component.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/select/cs-select/cs-select.component.js +0 -98
- package/esm2015/lib/formgroup/select/cs-select/cs-select.component.ngfactory.js +0 -40
- package/esm2015/lib/formgroup/select/cs-select/cs-select.component.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/select/select.module.js +0 -16
- package/esm2015/lib/formgroup/select/select.module.ngfactory.js +0 -14
- package/esm2015/lib/formgroup/select/select.module.ngsummary.json +0 -1
- package/esm2015/lib/formgroup/select/select.service.js +0 -48
- package/esm2015/lib/formgroup/select/select.service.ngsummary.json +0 -1
- package/esm2015/lib/interfaces/categoryList.js +0 -2
- package/esm2015/lib/interfaces/categoryList.ngsummary.json +0 -1
- package/esm2015/lib/interfaces/confirmation-alert.js +0 -2
- package/esm2015/lib/interfaces/confirmation-alert.ngsummary.json +0 -1
- package/esm2015/lib/interfaces/issue-data.js +0 -2
- package/esm2015/lib/interfaces/issue-data.ngsummary.json +0 -1
- package/esm2015/lib/log-an-issue/log-an-issue.component.js +0 -904
- package/esm2015/lib/log-an-issue/log-an-issue.component.ngfactory.js +0 -517
- package/esm2015/lib/log-an-issue/log-an-issue.component.ngsummary.json +0 -1
- package/esm2015/lib/more-option/more-option.component.js +0 -498
- package/esm2015/lib/more-option/more-option.component.ngfactory.js +0 -60
- package/esm2015/lib/more-option/more-option.component.ngsummary.json +0 -1
- package/esm2015/lib/pipes/data-type.pipe.js +0 -12
- package/esm2015/lib/pipes/data-type.pipe.ngsummary.json +0 -1
- package/esm2015/lib/pipes/list-mapper.pipe.js +0 -17
- package/esm2015/lib/pipes/list-mapper.pipe.ngsummary.json +0 -1
- package/esm2015/lib/pipes/search.pipe.js +0 -64
- package/esm2015/lib/pipes/search.pipe.ngsummary.json +0 -1
- package/esm2015/lib/pipes/space-breaker.pipe.js +0 -17
- package/esm2015/lib/pipes/space-breaker.pipe.ngsummary.json +0 -1
- package/esm2015/lib/pipes/uncategorized-filter.pipe.js +0 -17
- package/esm2015/lib/pipes/uncategorized-filter.pipe.ngsummary.json +0 -1
- package/esm2015/lib/pipes/user-filter.pipe.js +0 -26
- package/esm2015/lib/pipes/user-filter.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.js +0 -333
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ngfactory.js +0 -160
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.js +0 -73
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ngfactory.js +0 -39
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.js +0 -27
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ngfactory.js +0 -153
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.js +0 -116
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ngfactory.js +0 -116
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.js +0 -165
- package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ngfactory.js +0 -85
- package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/build.module.js +0 -71
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/build.module.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/build.module.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.js +0 -35
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ngfactory.js +0 -89
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.js +0 -66
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ngfactory.js +0 -72
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.js +0 -18
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ngfactory.js +0 -51
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.js +0 -35
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ngfactory.js +0 -104
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ngfactory.js +0 -20
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.js +0 -35
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ngfactory.js +0 -104
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.js +0 -26
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ngfactory.js +0 -60
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.js +0 -55
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ngfactory.js +0 -51
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.js +0 -154
- package/esm2015/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ngfactory.js +0 -205
- package/esm2015/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/error.js +0 -2
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/error.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/question.js +0 -2
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/question.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.js +0 -2
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic/logic.component.js +0 -100
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic/logic.component.ngfactory.js +0 -119
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic/logic.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.js +0 -24
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ngfactory.js +0 -59
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.js +0 -37
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ngfactory.js +0 -105
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.js +0 -31
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ngfactory.js +0 -22
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ngfactory.js +0 -37
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.js +0 -24
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ngfactory.js +0 -59
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ngfactory.js +0 -35
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.js +0 -64
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ngfactory.js +0 -21
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ngfactory.js +0 -36
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.js +0 -24
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ngfactory.js +0 -36
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ngfactory.js +0 -40
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/move/move.component.js +0 -97
- package/esm2015/lib/sharedComponents/assessment-editor/components/move/move.component.ngfactory.js +0 -103
- package/esm2015/lib/sharedComponents/assessment-editor/components/move/move.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.js +0 -22
- package/esm2015/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ngfactory.js +0 -23
- package/esm2015/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.js +0 -18
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.js +0 -23
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.js +0 -13
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.js +0 -12
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.js +0 -12
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.js +0 -28
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ngfactory.js +0 -22
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.js +0 -31
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ngfactory.js +0 -81
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.js +0 -31
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ngfactory.js +0 -19
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.js +0 -23
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ngfactory.js +0 -20
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ngfactory.js +0 -37
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.js +0 -24
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ngfactory.js +0 -60
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.js +0 -24
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ngfactory.js +0 -60
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.js +0 -28
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ngfactory.js +0 -22
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ngfactory.js +0 -35
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ngfactory.js +0 -36
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.js +0 -18
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ngfactory.js +0 -40
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.js +0 -67
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ngfactory.js +0 -90
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.js +0 -90
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngfactory.js +0 -29
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.js +0 -20
- package/esm2015/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ngfactory.js +0 -76
- package/esm2015/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.js +0 -248
- package/esm2015/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ngfactory.js +0 -109
- package/esm2015/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.js +0 -35
- package/esm2015/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ngfactory.js +0 -95
- package/esm2015/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.js +0 -56
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ngfactory.js +0 -108
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.js +0 -153
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ngfactory.js +0 -130
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.js +0 -123
- package/esm2015/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ngfactory.js +0 -47
- package/esm2015/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.js +0 -24
- package/esm2015/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ngfactory.js +0 -97
- package/esm2015/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.js +0 -50
- package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngfactory.js +0 -47
- package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.js +0 -437
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngfactory.js +0 -236
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.js +0 -86
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.js +0 -37
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/services/editor.service.js +0 -636
- package/esm2015/lib/sharedComponents/assessment-editor/services/editor.service.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/services/result-criteria.service.js +0 -48
- package/esm2015/lib/sharedComponents/assessment-editor/services/result-criteria.service.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.js +0 -543
- package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.ngfactory.js +0 -19
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.ngfactory.js +0 -19
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list.component.js +0 -187
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list.component.ngfactory.js +0 -208
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-list/service/assessment.interface.js +0 -2
- package/esm2015/lib/sharedComponents/assessment-list/service/assessment.interface.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-list/service/assessment.service.js +0 -34
- package/esm2015/lib/sharedComponents/assessment-list/service/assessment.service.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/assessment-preview.module.js +0 -61
- package/esm2015/lib/sharedComponents/assessment-preview/assessment-preview.module.ngfactory.js +0 -21
- package/esm2015/lib/sharedComponents/assessment-preview/assessment-preview.module.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.js +0 -29
- package/esm2015/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.ngfactory.js +0 -57
- package/esm2015/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/date-time/date-time.component.js +0 -32
- package/esm2015/lib/sharedComponents/assessment-preview/date-time/date-time.component.ngfactory.js +0 -88
- package/esm2015/lib/sharedComponents/assessment-preview/date-time/date-time.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/device/device.component.js +0 -22
- package/esm2015/lib/sharedComponents/assessment-preview/device/device.component.ngfactory.js +0 -26
- package/esm2015/lib/sharedComponents/assessment-preview/device/device.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.js +0 -19
- package/esm2015/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.ngfactory.js +0 -39
- package/esm2015/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/page-header/page-header.component.js +0 -19
- package/esm2015/lib/sharedComponents/assessment-preview/page-header/page-header.component.ngfactory.js +0 -22
- package/esm2015/lib/sharedComponents/assessment-preview/page-header/page-header.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/preview/preview.component.js +0 -47
- package/esm2015/lib/sharedComponents/assessment-preview/preview/preview.component.ngfactory.js +0 -69
- package/esm2015/lib/sharedComponents/assessment-preview/preview/preview.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.js +0 -15
- package/esm2015/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.ngfactory.js +0 -109
- package/esm2015/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.js +0 -18
- package/esm2015/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.ngfactory.js +0 -96
- package/esm2015/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.js +0 -29
- package/esm2015/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.ngfactory.js +0 -56
- package/esm2015/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/select-question/select-question.component.js +0 -32
- package/esm2015/lib/sharedComponents/assessment-preview/select-question/select-question.component.ngfactory.js +0 -23
- package/esm2015/lib/sharedComponents/assessment-preview/select-question/select-question.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.js +0 -19
- package/esm2015/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.ngfactory.js +0 -21
- package/esm2015/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/assessment-preview/welcome/welcome.component.js +0 -18
- package/esm2015/lib/sharedComponents/assessment-preview/welcome/welcome.component.ngfactory.js +0 -21
- package/esm2015/lib/sharedComponents/assessment-preview/welcome/welcome.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/audit-category-list/audit-category-list.component.js +0 -54
- package/esm2015/lib/sharedComponents/audit-category-list/audit-category-list.component.ngfactory.js +0 -87
- package/esm2015/lib/sharedComponents/audit-category-list/audit-category-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/audit-category-list/audit-category.model.js +0 -2
- package/esm2015/lib/sharedComponents/audit-category-list/audit-category.model.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.js +0 -43
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ngfactory.js +0 -323
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/bulk-view/bulk-view.component.js +0 -63
- package/esm2015/lib/sharedComponents/bulk-view/bulk-view.component.ngfactory.js +0 -107
- package/esm2015/lib/sharedComponents/bulk-view/bulk-view.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/category-list/category-list.component.js +0 -76
- package/esm2015/lib/sharedComponents/category-list/category-list.component.ngfactory.js +0 -89
- package/esm2015/lib/sharedComponents/category-list/category-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/category-multiselect/category-multi-select.component.js +0 -155
- package/esm2015/lib/sharedComponents/category-multiselect/category-multi-select.component.ngfactory.js +0 -95
- package/esm2015/lib/sharedComponents/category-multiselect/category-multi-select.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/checkbox-list/checkbox-list.component.js +0 -78
- package/esm2015/lib/sharedComponents/checkbox-list/checkbox-list.component.ngfactory.js +0 -78
- package/esm2015/lib/sharedComponents/checkbox-list/checkbox-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.js +0 -247
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.ngfactory.js +0 -57
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.js +0 -25
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.ngfactory.js +0 -22
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.js +0 -114
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.ngfactory.js +0 -298
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.js +0 -40
- package/esm2015/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.ngfactory.js +0 -76
- package/esm2015/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.js +0 -73
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.ngfactory.js +0 -40
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.js +0 -15
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.js +0 -186
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.ngfactory.js +0 -144
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/define-framework-listing/define-framework-listing.component.js +0 -29
- package/esm2015/lib/sharedComponents/define-framework-listing/define-framework-listing.component.ngfactory.js +0 -211
- package/esm2015/lib/sharedComponents/define-framework-listing/define-framework-listing.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/directive/autofocus.directive.js +0 -21
- package/esm2015/lib/sharedComponents/directive/autofocus.directive.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/directive/conditional-focus.directive.js +0 -36
- package/esm2015/lib/sharedComponents/directive/conditional-focus.directive.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/directive/drag-drop.directive.js +0 -41
- package/esm2015/lib/sharedComponents/directive/drag-drop.directive.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/directive/scroll-in-view.directive.js +0 -36
- package/esm2015/lib/sharedComponents/directive/scroll-in-view.directive.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/document-section/document-section.component.js +0 -158
- package/esm2015/lib/sharedComponents/document-section/document-section.component.ngfactory.js +0 -44
- package/esm2015/lib/sharedComponents/document-section/document-section.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.js +0 -75
- package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.ngfactory.js +0 -107
- package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +0 -299
- package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.ngfactory.js +0 -149
- package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/framework-list/framework-list.component.js +0 -79
- package/esm2015/lib/sharedComponents/framework-list/framework-list.component.ngfactory.js +0 -90
- package/esm2015/lib/sharedComponents/framework-list/framework-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/framework-list/parent-table/parent-table.component.js +0 -87
- package/esm2015/lib/sharedComponents/framework-list/parent-table/parent-table.component.ngfactory.js +0 -147
- package/esm2015/lib/sharedComponents/framework-list/parent-table/parent-table.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.js +0 -209
- package/esm2015/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.ngfactory.js +0 -46
- package/esm2015/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.js +0 -184
- package/esm2015/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.ngfactory.js +0 -43
- package/esm2015/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.js +0 -30
- package/esm2015/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.ngfactory.js +0 -24
- package/esm2015/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.js +0 -277
- package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ngfactory.js +0 -92
- package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.js +0 -150
- package/esm2015/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.ngfactory.js +0 -38
- package/esm2015/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.js +0 -69
- package/esm2015/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.ngfactory.js +0 -197
- package/esm2015/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.js +0 -167
- package/esm2015/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.ngfactory.js +0 -102
- package/esm2015/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.js +0 -192
- package/esm2015/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.ngfactory.js +0 -43
- package/esm2015/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.js +0 -119
- package/esm2015/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.ngfactory.js +0 -90
- package/esm2015/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.js +0 -133
- package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ngfactory.js +0 -78
- package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.js +0 -66
- package/esm2015/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.ngfactory.js +0 -32
- package/esm2015/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.js +0 -178
- package/esm2015/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.ngfactory.js +0 -43
- package/esm2015/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.js +0 -31
- package/esm2015/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.ngfactory.js +0 -24
- package/esm2015/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-random/frequency-random.component.js +0 -244
- package/esm2015/lib/sharedComponents/frequency/frequency-random/frequency-random.component.ngfactory.js +0 -69
- package/esm2015/lib/sharedComponents/frequency/frequency-random/frequency-random.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-top/frequency-top.component.js +0 -102
- package/esm2015/lib/sharedComponents/frequency/frequency-top/frequency-top.component.ngfactory.js +0 -100
- package/esm2015/lib/sharedComponents/frequency/frequency-top/frequency-top.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.js +0 -180
- package/esm2015/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.ngfactory.js +0 -43
- package/esm2015/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/frequency/frequency.service.js +0 -456
- package/esm2015/lib/sharedComponents/frequency/frequency.service.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/group-users-list/group-users-list.component.js +0 -126
- package/esm2015/lib/sharedComponents/group-users-list/group-users-list.component.ngfactory.js +0 -92
- package/esm2015/lib/sharedComponents/group-users-list/group-users-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/list-loader/list-loader.component.js +0 -15
- package/esm2015/lib/sharedComponents/list-loader/list-loader.component.ngfactory.js +0 -19
- package/esm2015/lib/sharedComponents/list-loader/list-loader.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/no-data/no-data.component.js +0 -29
- package/esm2015/lib/sharedComponents/no-data/no-data.component.ngfactory.js +0 -23
- package/esm2015/lib/sharedComponents/no-data/no-data.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/no-data/no-data.module.js +0 -13
- package/esm2015/lib/sharedComponents/no-data/no-data.module.ngfactory.js +0 -12
- package/esm2015/lib/sharedComponents/no-data/no-data.module.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/owner-list/owner-list.component.js +0 -129
- package/esm2015/lib/sharedComponents/owner-list/owner-list.component.ngfactory.js +0 -81
- package/esm2015/lib/sharedComponents/owner-list/owner-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/pipes/array-filter.pipe.js +0 -14
- package/esm2015/lib/sharedComponents/pipes/array-filter.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/pipes/filterPipe.js +0 -26
- package/esm2015/lib/sharedComponents/pipes/filterPipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/pipes/short-merge.pipe.js +0 -20
- package/esm2015/lib/sharedComponents/pipes/short-merge.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/pipes/within-data.pipe.js +0 -17
- package/esm2015/lib/sharedComponents/pipes/within-data.pipe.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/radio-list/radio-list.component.js +0 -66
- package/esm2015/lib/sharedComponents/radio-list/radio-list.component.ngfactory.js +0 -97
- package/esm2015/lib/sharedComponents/radio-list/radio-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.js +0 -14
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.ngfactory.js +0 -19
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/radio-list.component.js +0 -111
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/radio-list.component.ngfactory.js +0 -103
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/radio-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.js +0 -109
- package/esm2015/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.ngfactory.js +0 -104
- package/esm2015/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.js +0 -70
- package/esm2015/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.ngfactory.js +0 -51
- package/esm2015/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/review-frequency/review-frequency.component.js +0 -41
- package/esm2015/lib/sharedComponents/review-frequency/review-frequency.component.ngfactory.js +0 -77
- package/esm2015/lib/sharedComponents/review-frequency/review-frequency.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.js +0 -92
- package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.ngfactory.js +0 -76
- package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/roles-list/roles-list.component.js +0 -25
- package/esm2015/lib/sharedComponents/roles-list/roles-list.component.ngfactory.js +0 -51
- package/esm2015/lib/sharedComponents/roles-list/roles-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/users-radio-list/users-radio-list.component.js +0 -55
- package/esm2015/lib/sharedComponents/users-radio-list/users-radio-list.component.ngfactory.js +0 -75
- package/esm2015/lib/sharedComponents/users-radio-list/users-radio-list.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/v-loader/loader/loader.component.js +0 -14
- package/esm2015/lib/sharedComponents/v-loader/loader/loader.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/v-loader/loader/loader.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.js +0 -14
- package/esm2015/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.ngfactory.js +0 -17
- package/esm2015/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/v-loader/v-loader.module.js +0 -14
- package/esm2015/lib/sharedComponents/v-loader/v-loader.module.ngfactory.js +0 -12
- package/esm2015/lib/sharedComponents/v-loader/v-loader.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/action-dialog/action-dialog.module.js +0 -16
- package/esm2015/lib/ui-kit/action-dialog/action-dialog.module.ngfactory.js +0 -12
- package/esm2015/lib/ui-kit/action-dialog/action-dialog.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/action-dialog/active/active.component.js +0 -36
- package/esm2015/lib/ui-kit/action-dialog/active/active.component.ngfactory.js +0 -25
- package/esm2015/lib/ui-kit/action-dialog/active/active.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/action-dialog/deactivate/deactivate.component.js +0 -38
- package/esm2015/lib/ui-kit/action-dialog/deactivate/deactivate.component.ngfactory.js +0 -25
- package/esm2015/lib/ui-kit/action-dialog/deactivate/deactivate.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/action-dialog/delete/delete.component.js +0 -30
- package/esm2015/lib/ui-kit/action-dialog/delete/delete.component.ngfactory.js +0 -25
- package/esm2015/lib/ui-kit/action-dialog/delete/delete.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/action-dialog/duplicate/duplicate.component.js +0 -32
- package/esm2015/lib/ui-kit/action-dialog/duplicate/duplicate.component.ngfactory.js +0 -25
- package/esm2015/lib/ui-kit/action-dialog/duplicate/duplicate.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/click-outside/click-outside.directive.js +0 -26
- package/esm2015/lib/ui-kit/click-outside/click-outside.directive.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/click-outside/click-outside.module.js +0 -17
- package/esm2015/lib/ui-kit/click-outside/click-outside.module.ngfactory.js +0 -12
- package/esm2015/lib/ui-kit/click-outside/click-outside.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/dialog/dialog-config.js +0 -3
- package/esm2015/lib/ui-kit/dialog/dialog-config.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/dialog/dialog-injector.js +0 -15
- package/esm2015/lib/ui-kit/dialog/dialog-injector.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/dialog/dialog-ref.js +0 -11
- package/esm2015/lib/ui-kit/dialog/dialog-ref.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/dialog/dialog.component.js +0 -90
- package/esm2015/lib/ui-kit/dialog/dialog.component.ngfactory.js +0 -29
- package/esm2015/lib/ui-kit/dialog/dialog.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/dialog/dialog.module.js +0 -16
- package/esm2015/lib/ui-kit/dialog/dialog.module.ngfactory.js +0 -14
- package/esm2015/lib/ui-kit/dialog/dialog.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/dialog/dialog.service.js +0 -60
- package/esm2015/lib/ui-kit/dialog/dialog.service.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/dialog/insertion.directive.js +0 -15
- package/esm2015/lib/ui-kit/dialog/insertion.directive.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.js +0 -15
- package/esm2015/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ngfactory.js +0 -23
- package/esm2015/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/editor-loader/editor-loader.module.js +0 -17
- package/esm2015/lib/ui-kit/editor-loader/editor-loader.module.ngfactory.js +0 -12
- package/esm2015/lib/ui-kit/editor-loader/editor-loader.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/format-html.pipe.js +0 -19
- package/esm2015/lib/ui-kit/format-html.pipe.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/formgroup/click-outside.directive.js +0 -26
- package/esm2015/lib/ui-kit/formgroup/click-outside.directive.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.js +0 -29
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.js +0 -33
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +0 -33
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.js +0 -33
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/formgroup/cs-radio/cs-radio.component.js +0 -27
- package/esm2015/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ngfactory.js +0 -20
- package/esm2015/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.js +0 -14
- package/esm2015/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ngfactory.js +0 -19
- package/esm2015/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/formgroup/cs-select/cs-select.component.js +0 -80
- package/esm2015/lib/ui-kit/formgroup/cs-select/cs-select.component.ngfactory.js +0 -89
- package/esm2015/lib/ui-kit/formgroup/cs-select/cs-select.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/formgroup/cs-switch/cs-switch.component.js +0 -29
- package/esm2015/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ngfactory.js +0 -62
- package/esm2015/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/formgroup/formgroup.module.js +0 -41
- package/esm2015/lib/ui-kit/formgroup/formgroup.module.ngfactory.js +0 -14
- package/esm2015/lib/ui-kit/formgroup/formgroup.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/formgroup/pipes/pascal.pipe.js +0 -15
- package/esm2015/lib/ui-kit/formgroup/pipes/pascal.pipe.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.js +0 -20
- package/esm2015/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/line-loader/line-loader.component.js +0 -17
- package/esm2015/lib/ui-kit/line-loader/line-loader.component.ngfactory.js +0 -17
- package/esm2015/lib/ui-kit/line-loader/line-loader.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/line-loader/line-loader.module.js +0 -13
- package/esm2015/lib/ui-kit/line-loader/line-loader.module.ngfactory.js +0 -12
- package/esm2015/lib/ui-kit/line-loader/line-loader.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/no-data/no-data.component.js +0 -36
- package/esm2015/lib/ui-kit/no-data/no-data.component.ngfactory.js +0 -27
- package/esm2015/lib/ui-kit/no-data/no-data.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/no-data/no-data.module.js +0 -13
- package/esm2015/lib/ui-kit/no-data/no-data.module.ngfactory.js +0 -12
- package/esm2015/lib/ui-kit/no-data/no-data.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/pagination/pagination/pagination.component.js +0 -109
- package/esm2015/lib/ui-kit/pagination/pagination/pagination.component.ngfactory.js +0 -57
- package/esm2015/lib/ui-kit/pagination/pagination/pagination.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/pagination/pagination.module.js +0 -21
- package/esm2015/lib/ui-kit/pagination/pagination.module.ngfactory.js +0 -13
- package/esm2015/lib/ui-kit/pagination/pagination.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/popover/popover-event.directive.js +0 -28
- package/esm2015/lib/ui-kit/popover/popover-event.directive.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/popover/popover-longpress.directive.js +0 -44
- package/esm2015/lib/ui-kit/popover/popover-longpress.directive.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/popover/popover.component.js +0 -121
- package/esm2015/lib/ui-kit/popover/popover.component.ngfactory.js +0 -31
- package/esm2015/lib/ui-kit/popover/popover.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/popover/popover.directive.js +0 -91
- package/esm2015/lib/ui-kit/popover/popover.directive.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/popover/popover.module.js +0 -18
- package/esm2015/lib/ui-kit/popover/popover.module.ngfactory.js +0 -13
- package/esm2015/lib/ui-kit/popover/popover.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/popover/popover.service.js +0 -14
- package/esm2015/lib/ui-kit/popover/popover.service.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.component.js +0 -109
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.component.ngfactory.js +0 -23
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.directive.js +0 -31
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.directive.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.module.js +0 -24
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.module.ngfactory.js +0 -13
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.service.js +0 -13
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.service.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/smiley-dialog/smiley-dialog.component.js +0 -39
- package/esm2015/lib/ui-kit/smiley-dialog/smiley-dialog.component.ngfactory.js +0 -28
- package/esm2015/lib/ui-kit/smiley-dialog/smiley-dialog.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/smiley-dialog/smiley-dialog.module.js +0 -13
- package/esm2015/lib/ui-kit/smiley-dialog/smiley-dialog.module.ngfactory.js +0 -12
- package/esm2015/lib/ui-kit/smiley-dialog/smiley-dialog.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.js +0 -39
- package/esm2015/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.ngfactory.js +0 -28
- package/esm2015/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.js +0 -13
- package/esm2015/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.ngfactory.js +0 -12
- package/esm2015/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/snack-bar/snack-bar.component.js +0 -47
- package/esm2015/lib/ui-kit/snack-bar/snack-bar.component.ngfactory.js +0 -23
- package/esm2015/lib/ui-kit/snack-bar/snack-bar.component.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/snack-bar/snack-bar.module.js +0 -13
- package/esm2015/lib/ui-kit/snack-bar/snack-bar.module.ngfactory.js +0 -12
- package/esm2015/lib/ui-kit/snack-bar/snack-bar.module.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/snack-bar/snack-bar.service.js +0 -31
- package/esm2015/lib/ui-kit/snack-bar/snack-bar.service.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/tooltip/tooltip.directive.js +0 -138
- package/esm2015/lib/ui-kit/tooltip/tooltip.directive.ngsummary.json +0 -1
- package/esm2015/lib/ui-kit/tooltip/tooltip.module.js +0 -13
- package/esm2015/lib/ui-kit/tooltip/tooltip.module.ngfactory.js +0 -12
- package/esm2015/lib/ui-kit/tooltip/tooltip.module.ngsummary.json +0 -1
- package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +0 -557
- package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngfactory.js +0 -82
- package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-assessment/workflow-assessment.component.js +0 -230
- package/esm2015/lib/workflow-assessment/workflow-assessment.component.ngfactory.js +0 -246
- package/esm2015/lib/workflow-assessment/workflow-assessment.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +0 -1772
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +0 -948
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +0 -426
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +0 -329
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-engine.module.js +0 -232
- package/esm2015/lib/workflow-engine.module.ngfactory.js +0 -52
- package/esm2015/lib/workflow-engine.module.ngsummary.json +0 -1
- package/esm2015/lib/workflow-engine.service.js +0 -13
- package/esm2015/lib/workflow-engine.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-interfaces/create-policy-form.js +0 -2
- package/esm2015/lib/workflow-interfaces/create-policy-form.ngsummary.json +0 -1
- package/esm2015/lib/workflow-pagination/workflow-pagination.component.js +0 -109
- package/esm2015/lib/workflow-pagination/workflow-pagination.component.ngfactory.js +0 -37
- package/esm2015/lib/workflow-pagination/workflow-pagination.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-policy/workflow-policy.component.js +0 -1148
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngfactory.js +0 -602
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/constants.js +0 -43
- package/esm2015/lib/workflow-program/constants.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.js +0 -15
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ngfactory.js +0 -19
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.js +0 -214
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngfactory.js +0 -229
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.js +0 -15
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ngfactory.js +0 -19
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.js +0 -46
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.js +0 -109
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ngfactory.js +0 -37
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/checkbox/checkbox.component.js +0 -40
- package/esm2015/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ngfactory.js +0 -24
- package/esm2015/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.js +0 -89
- package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngfactory.js +0 -25
- package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.js +0 -45
- package/esm2015/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ngfactory.js +0 -44
- package/esm2015/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.js +0 -29
- package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ngfactory.js +0 -209
- package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/directives/input-trim.directive.js +0 -17
- package/esm2015/lib/workflow-program/create-program-ui/directives/input-trim.directive.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.js +0 -24
- package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ngfactory.js +0 -38
- package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.js +0 -75
- package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngfactory.js +0 -25
- package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.js +0 -16
- package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.ngfactory.js +0 -24
- package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.js +0 -23
- package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngfactory.js +0 -23
- package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.js +0 -138
- package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ngfactory.js +0 -58
- package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination.module.js +0 -21
- package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination.module.ngfactory.js +0 -13
- package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination.module.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.js +0 -12
- package/esm2015/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.js +0 -13
- package/esm2015/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/pipes/search.pipe.js +0 -20
- package/esm2015/lib/workflow-program/create-program-ui/pipes/search.pipe.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.js +0 -160
- package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.ngfactory.js +0 -91
- package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.js +0 -41
- package/esm2015/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ngfactory.js +0 -23
- package/esm2015/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.js +0 -15
- package/esm2015/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ngfactory.js +0 -19
- package/esm2015/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.js +0 -239
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.js +0 -183
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-program/workflow-program.component.js +0 -894
- package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +0 -851
- package/esm2015/lib/workflow-program/workflow-program.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-risk/workflow-risk.component.js +0 -781
- package/esm2015/lib/workflow-risk/workflow-risk.component.ngfactory.js +0 -479
- package/esm2015/lib/workflow-risk/workflow-risk.component.ngsummary.json +0 -1
- package/esm2015/lib/workflow-services/add-risk.service.js +0 -123
- package/esm2015/lib/workflow-services/add-risk.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-services/assessment.service.js +0 -114
- package/esm2015/lib/workflow-services/assessment.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-services/auth.service.js +0 -232
- package/esm2015/lib/workflow-services/auth.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-services/frequency.service.js +0 -144
- package/esm2015/lib/workflow-services/frequency.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-services/log-issue.service.js +0 -240
- package/esm2015/lib/workflow-services/log-issue.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-services/policy.service.js +0 -131
- package/esm2015/lib/workflow-services/policy.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-services/programs.service.js +0 -240
- package/esm2015/lib/workflow-services/programs.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-services/responsibility.service.js +0 -127
- package/esm2015/lib/workflow-services/responsibility.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-services/token-decoder.service.js +0 -38
- package/esm2015/lib/workflow-services/token-decoder.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-services/ui-kit.service.js +0 -16
- package/esm2015/lib/workflow-services/ui-kit.service.ngsummary.json +0 -1
- package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.js +0 -22
- package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.ngfactory.js +0 -30
- package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.ngsummary.json +0 -1
- package/esm2015/public-api.js +0 -8
- package/esm2015/public-api.ngsummary.json +0 -1
- package/esm2015/vcomply-workflow-engine.js +0 -274
- package/esm2015/vcomply-workflow-engine.ngsummary.json +0 -1
- package/fesm2015/vcomply-workflow-engine.js +0 -24776
- package/fesm2015/vcomply-workflow-engine.js.map +0 -1
- package/lib/add-multiple-responsibility/add-multiple-responsibility.component.d.ts +0 -81
- package/lib/add-multiple-responsibility/add-multiple-responsibility.component.ngfactory.d.ts +0 -1
- package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +0 -65
- package/lib/add-multiple-risk/add-multiple-risk.component.ngfactory.d.ts +0 -1
- package/lib/configurations.d.ts +0 -4
- package/lib/confirmation-alert/confirmation-alert.component.d.ts +0 -10
- package/lib/confirmation-alert/confirmation-alert.component.ngfactory.d.ts +0 -1
- package/lib/create-documents/create-documents.component.d.ts +0 -36
- package/lib/create-documents/create-documents.component.ngfactory.d.ts +0 -1
- package/lib/formgroup/cs-checkbox/cs-checkbox.component.d.ts +0 -14
- package/lib/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.d.ts +0 -1
- package/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +0 -11
- package/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.d.ts +0 -1
- package/lib/formgroup/cs-radio/cs-radio.component.d.ts +0 -13
- package/lib/formgroup/cs-radio/cs-radio.component.ngfactory.d.ts +0 -1
- package/lib/formgroup/cs-radio-group/cs-radio-group.component.d.ts +0 -5
- package/lib/formgroup/cs-radio-group/cs-radio-group.component.ngfactory.d.ts +0 -1
- package/lib/formgroup/cs-select/cs-select.component.d.ts +0 -31
- package/lib/formgroup/cs-select/cs-select.component.ngfactory.d.ts +0 -1
- package/lib/formgroup/cs-switch/cs-switch.component.d.ts +0 -12
- package/lib/formgroup/cs-switch/cs-switch.component.ngfactory.d.ts +0 -1
- package/lib/formgroup/formgroup.module.d.ts +0 -2
- package/lib/formgroup/formgroup.module.ngfactory.d.ts +0 -3
- package/lib/formgroup/pipes/pascal.pipe.d.ts +0 -4
- package/lib/formgroup/select/cs-option/cs-option.component.d.ts +0 -15
- package/lib/formgroup/select/cs-option/cs-option.component.ngfactory.d.ts +0 -1
- package/lib/formgroup/select/cs-select/cs-select.component.d.ts +0 -34
- package/lib/formgroup/select/cs-select/cs-select.component.ngfactory.d.ts +0 -1
- package/lib/formgroup/select/select.module.d.ts +0 -2
- package/lib/formgroup/select/select.module.ngfactory.d.ts +0 -3
- package/lib/formgroup/select/select.service.d.ts +0 -15
- package/lib/interfaces/categoryList.d.ts +0 -23
- package/lib/interfaces/confirmation-alert.d.ts +0 -8
- package/lib/interfaces/issue-data.d.ts +0 -21
- package/lib/log-an-issue/log-an-issue.component.d.ts +0 -217
- package/lib/log-an-issue/log-an-issue.component.ngfactory.d.ts +0 -1
- package/lib/more-option/more-option.component.d.ts +0 -17
- package/lib/more-option/more-option.component.ngfactory.d.ts +0 -1
- package/lib/pipes/data-type.pipe.d.ts +0 -4
- package/lib/pipes/list-mapper.pipe.d.ts +0 -4
- package/lib/pipes/search.pipe.d.ts +0 -4
- package/lib/pipes/space-breaker.pipe.d.ts +0 -4
- package/lib/pipes/uncategorized-filter.pipe.d.ts +0 -4
- package/lib/pipes/user-filter.pipe.d.ts +0 -4
- package/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.d.ts +0 -117
- package/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.d.ts +0 -18
- package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.d.ts +0 -10
- package/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.d.ts +0 -22
- package/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.d.ts +0 -47
- package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/build.module.d.ts +0 -2
- package/lib/sharedComponents/assessment-editor/components/build/build.module.ngfactory.d.ts +0 -3
- package/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.d.ts +0 -11
- package/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.d.ts +0 -16
- package/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.d.ts +0 -6
- package/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.d.ts +0 -11
- package/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.d.ts +0 -11
- package/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.d.ts +0 -9
- package/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.d.ts +0 -12
- package/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.d.ts +0 -57
- package/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/errorInterface/error.d.ts +0 -14
- package/lib/sharedComponents/assessment-editor/components/errorInterface/question.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.d.ts +0 -6
- package/lib/sharedComponents/assessment-editor/components/logic/logic.component.d.ts +0 -24
- package/lib/sharedComponents/assessment-editor/components/logic/logic.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.d.ts +0 -8
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.d.ts +0 -14
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.d.ts +0 -9
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.d.ts +0 -8
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.d.ts +0 -2
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ngfactory.d.ts +0 -3
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.d.ts +0 -9
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/move/move.component.d.ts +0 -23
- package/lib/sharedComponents/assessment-editor/components/move/move.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.d.ts +0 -8
- package/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.d.ts +0 -4
- package/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.d.ts +0 -4
- package/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.d.ts +0 -4
- package/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.d.ts +0 -4
- package/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.d.ts +0 -4
- package/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.d.ts +0 -4
- package/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.d.ts +0 -4
- package/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.d.ts +0 -8
- package/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.d.ts +0 -11
- package/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.d.ts +0 -8
- package/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.d.ts +0 -8
- package/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.d.ts +0 -7
- package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.d.ts +0 -7
- package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.d.ts +0 -8
- package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.d.ts +0 -6
- package/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.d.ts +0 -27
- package/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/preview.module.d.ts +0 -2
- package/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngfactory.d.ts +0 -3
- package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.d.ts +0 -6
- package/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.d.ts +0 -28
- package/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.d.ts +0 -11
- package/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.d.ts +0 -16
- package/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.d.ts +0 -47
- package/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.d.ts +0 -35
- package/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.d.ts +0 -8
- package/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.d.ts +0 -12
- package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.d.ts +0 -66
- package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/create-assessment.module.d.ts +0 -2
- package/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.d.ts +0 -3
- package/lib/sharedComponents/assessment-editor/services/editor.service.d.ts +0 -185
- package/lib/sharedComponents/assessment-editor/services/result-criteria.service.d.ts +0 -4
- package/lib/sharedComponents/assessment-editor/services/validator.service.d.ts +0 -31
- package/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +0 -80
- package/lib/sharedComponents/assessment-list/assessment-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-list/service/assessment.interface.d.ts +0 -22
- package/lib/sharedComponents/assessment-list/service/assessment.service.d.ts +0 -10
- package/lib/sharedComponents/assessment-preview/assessment-preview.module.d.ts +0 -2
- package/lib/sharedComponents/assessment-preview/assessment-preview.module.ngfactory.d.ts +0 -3
- package/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.d.ts +0 -9
- package/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/date-time/date-time.component.d.ts +0 -12
- package/lib/sharedComponents/assessment-preview/date-time/date-time.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/device/device.component.d.ts +0 -7
- package/lib/sharedComponents/assessment-preview/device/device.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.d.ts +0 -7
- package/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/page-header/page-header.component.d.ts +0 -7
- package/lib/sharedComponents/assessment-preview/page-header/page-header.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/preview/preview.component.d.ts +0 -11
- package/lib/sharedComponents/assessment-preview/preview/preview.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.d.ts +0 -6
- package/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.d.ts +0 -9
- package/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/select-question/select-question.component.d.ts +0 -9
- package/lib/sharedComponents/assessment-preview/select-question/select-question.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.d.ts +0 -7
- package/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/assessment-preview/welcome/welcome.component.d.ts +0 -6
- package/lib/sharedComponents/assessment-preview/welcome/welcome.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/audit-category-list/audit-category-list.component.d.ts +0 -19
- package/lib/sharedComponents/audit-category-list/audit-category-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/audit-category-list/audit-category.model.d.ts +0 -6
- package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +0 -14
- package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +0 -17
- package/lib/sharedComponents/bulk-view/bulk-view.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/category-list/category-list.component.d.ts +0 -19
- package/lib/sharedComponents/category-list/category-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/category-multiselect/category-multi-select.component.d.ts +0 -28
- package/lib/sharedComponents/category-multiselect/category-multi-select.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/checkbox-list/checkbox-list.component.d.ts +0 -22
- package/lib/sharedComponents/checkbox-list/checkbox-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.d.ts +0 -35
- package/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.d.ts +0 -8
- package/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.d.ts +0 -38
- package/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.d.ts +0 -15
- package/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.d.ts +0 -16
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.d.ts +0 -5
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.d.ts +0 -33
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/define-framework-listing/define-framework-listing.component.d.ts +0 -10
- package/lib/sharedComponents/define-framework-listing/define-framework-listing.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/directive/autofocus.directive.d.ts +0 -6
- package/lib/sharedComponents/directive/conditional-focus.directive.d.ts +0 -9
- package/lib/sharedComponents/directive/drag-drop.directive.d.ts +0 -8
- package/lib/sharedComponents/directive/scroll-in-view.directive.d.ts +0 -9
- package/lib/sharedComponents/document-section/document-section.component.d.ts +0 -38
- package/lib/sharedComponents/document-section/document-section.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +0 -32
- package/lib/sharedComponents/floating-bar/floating-bar.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/format-and-evidence/format-and-evidence.component.d.ts +0 -41
- package/lib/sharedComponents/format-and-evidence/format-and-evidence.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/framework-list/framework-list.component.d.ts +0 -22
- package/lib/sharedComponents/framework-list/framework-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/framework-list/parent-table/parent-table.component.d.ts +0 -26
- package/lib/sharedComponents/framework-list/parent-table/parent-table.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.d.ts +0 -37
- package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.d.ts +0 -35
- package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.d.ts +0 -10
- package/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts +0 -29
- package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.d.ts +0 -30
- package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.d.ts +0 -19
- package/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +0 -36
- package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.d.ts +0 -33
- package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts +0 -29
- package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts +0 -32
- package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +0 -19
- package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.d.ts +0 -32
- package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.d.ts +0 -10
- package/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +0 -59
- package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-top/frequency-top.component.d.ts +0 -22
- package/lib/sharedComponents/frequency/frequency-top/frequency-top.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.d.ts +0 -32
- package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency.service.d.ts +0 -46
- package/lib/sharedComponents/group-users-list/group-users-list.component.d.ts +0 -29
- package/lib/sharedComponents/group-users-list/group-users-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/list-loader/list-loader.component.d.ts +0 -5
- package/lib/sharedComponents/list-loader/list-loader.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/no-data/no-data.component.d.ts +0 -14
- package/lib/sharedComponents/no-data/no-data.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/no-data/no-data.module.d.ts +0 -2
- package/lib/sharedComponents/no-data/no-data.module.ngfactory.d.ts +0 -3
- package/lib/sharedComponents/owner-list/owner-list.component.d.ts +0 -36
- package/lib/sharedComponents/owner-list/owner-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/pipes/array-filter.pipe.d.ts +0 -4
- package/lib/sharedComponents/pipes/filterPipe.d.ts +0 -4
- package/lib/sharedComponents/pipes/short-merge.pipe.d.ts +0 -4
- package/lib/sharedComponents/pipes/within-data.pipe.d.ts +0 -4
- package/lib/sharedComponents/radio-list/radio-list.component.d.ts +0 -24
- package/lib/sharedComponents/radio-list/radio-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.d.ts +0 -5
- package/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.d.ts +0 -47
- package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.d.ts +0 -26
- package/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.d.ts +0 -23
- package/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/review-frequency/review-frequency.component.d.ts +0 -15
- package/lib/sharedComponents/review-frequency/review-frequency.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/risk-classification/risk-classification.component.d.ts +0 -35
- package/lib/sharedComponents/risk-classification/risk-classification.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/roles-list/roles-list.component.d.ts +0 -8
- package/lib/sharedComponents/roles-list/roles-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/users-radio-list/users-radio-list.component.d.ts +0 -21
- package/lib/sharedComponents/users-radio-list/users-radio-list.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/v-loader/loader/loader.component.d.ts +0 -5
- package/lib/sharedComponents/v-loader/loader/loader.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.d.ts +0 -5
- package/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/v-loader/v-loader.module.d.ts +0 -2
- package/lib/sharedComponents/v-loader/v-loader.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/action-dialog/action-dialog.module.d.ts +0 -2
- package/lib/ui-kit/action-dialog/action-dialog.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/action-dialog/active/active.component.d.ts +0 -12
- package/lib/ui-kit/action-dialog/active/active.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/action-dialog/deactivate/deactivate.component.d.ts +0 -12
- package/lib/ui-kit/action-dialog/deactivate/deactivate.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/action-dialog/delete/delete.component.d.ts +0 -11
- package/lib/ui-kit/action-dialog/delete/delete.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/action-dialog/duplicate/duplicate.component.d.ts +0 -12
- package/lib/ui-kit/action-dialog/duplicate/duplicate.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/click-outside/click-outside.directive.d.ts +0 -7
- package/lib/ui-kit/click-outside/click-outside.module.d.ts +0 -2
- package/lib/ui-kit/click-outside/click-outside.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/dialog/dialog-config.d.ts +0 -5
- package/lib/ui-kit/dialog/dialog-injector.d.ts +0 -7
- package/lib/ui-kit/dialog/dialog-ref.d.ts +0 -7
- package/lib/ui-kit/dialog/dialog.component.d.ts +0 -29
- package/lib/ui-kit/dialog/dialog.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/dialog/dialog.module.d.ts +0 -2
- package/lib/ui-kit/dialog/dialog.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/dialog/dialog.service.d.ts +0 -15
- package/lib/ui-kit/dialog/insertion.directive.d.ts +0 -5
- package/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.d.ts +0 -5
- package/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/editor-loader/editor-loader.module.d.ts +0 -2
- package/lib/ui-kit/editor-loader/editor-loader.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/format-html.pipe.d.ts +0 -7
- package/lib/ui-kit/formgroup/click-outside.directive.d.ts +0 -7
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +0 -11
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +0 -11
- package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +0 -12
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +0 -5
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +0 -33
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +0 -12
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/formgroup/formgroup.module.d.ts +0 -2
- package/lib/ui-kit/formgroup/formgroup.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +0 -4
- package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +0 -4
- package/lib/ui-kit/line-loader/line-loader.component.d.ts +0 -6
- package/lib/ui-kit/line-loader/line-loader.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/line-loader/line-loader.module.d.ts +0 -2
- package/lib/ui-kit/line-loader/line-loader.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/no-data/no-data.component.d.ts +0 -18
- package/lib/ui-kit/no-data/no-data.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/no-data/no-data.module.d.ts +0 -2
- package/lib/ui-kit/no-data/no-data.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/pagination/pagination/pagination.component.d.ts +0 -23
- package/lib/ui-kit/pagination/pagination/pagination.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/pagination/pagination.module.d.ts +0 -2
- package/lib/ui-kit/pagination/pagination.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/popover/popover-event.directive.d.ts +0 -7
- package/lib/ui-kit/popover/popover-longpress.directive.d.ts +0 -13
- package/lib/ui-kit/popover/popover.component.d.ts +0 -24
- package/lib/ui-kit/popover/popover.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/popover/popover.directive.d.ts +0 -16
- package/lib/ui-kit/popover/popover.module.d.ts +0 -2
- package/lib/ui-kit/popover/popover.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/popover/popover.service.d.ts +0 -9
- package/lib/ui-kit/popover-hover/popover-hover.component.d.ts +0 -22
- package/lib/ui-kit/popover-hover/popover-hover.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/popover-hover/popover-hover.directive.d.ts +0 -12
- package/lib/ui-kit/popover-hover/popover-hover.module.d.ts +0 -2
- package/lib/ui-kit/popover-hover/popover-hover.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/popover-hover/popover-hover.service.d.ts +0 -9
- package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +0 -12
- package/lib/ui-kit/smiley-dialog/smiley-dialog.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/smiley-dialog/smiley-dialog.module.d.ts +0 -2
- package/lib/ui-kit/smiley-dialog/smiley-dialog.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.d.ts +0 -12
- package/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.d.ts +0 -2
- package/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/snack-bar/snack-bar.component.d.ts +0 -15
- package/lib/ui-kit/snack-bar/snack-bar.component.ngfactory.d.ts +0 -1
- package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +0 -2
- package/lib/ui-kit/snack-bar/snack-bar.module.ngfactory.d.ts +0 -3
- package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +0 -8
- package/lib/ui-kit/tooltip/tooltip.directive.d.ts +0 -24
- package/lib/ui-kit/tooltip/tooltip.module.d.ts +0 -2
- package/lib/ui-kit/tooltip/tooltip.module.ngfactory.d.ts +0 -3
- package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +0 -231
- package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngfactory.d.ts +0 -1
- package/lib/workflow-assessment/workflow-assessment.component.d.ts +0 -63
- package/lib/workflow-assessment/workflow-assessment.component.ngfactory.d.ts +0 -1
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +0 -189
- package/lib/workflow-compliance/workflow-compliance.component.ngfactory.d.ts +0 -1
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +0 -106
- package/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.d.ts +0 -1
- package/lib/workflow-engine.module.d.ts +0 -5
- package/lib/workflow-engine.module.ngfactory.d.ts +0 -3
- package/lib/workflow-engine.service.d.ts +0 -3
- package/lib/workflow-interfaces/create-policy-form.d.ts +0 -45
- package/lib/workflow-pagination/workflow-pagination.component.d.ts +0 -24
- package/lib/workflow-pagination/workflow-pagination.component.ngfactory.d.ts +0 -1
- package/lib/workflow-policy/workflow-policy.component.d.ts +0 -281
- package/lib/workflow-policy/workflow-policy.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/constants.d.ts +0 -40
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.d.ts +0 -5
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +0 -91
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.d.ts +0 -5
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.d.ts +0 -13
- package/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.d.ts +0 -24
- package/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/checkbox/checkbox.component.d.ts +0 -13
- package/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/create-program-ui.module.d.ts +0 -2
- package/lib/workflow-program/create-program-ui/create-program-ui.module.ngfactory.d.ts +0 -3
- package/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.d.ts +0 -17
- package/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.d.ts +0 -10
- package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/directives/input-trim.directive.d.ts +0 -3
- package/lib/workflow-program/create-program-ui/file-pill/file-pill.component.d.ts +0 -9
- package/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.d.ts +0 -32
- package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/form-field/form-field.component.d.ts +0 -9
- package/lib/workflow-program/create-program-ui/form-field/form-field.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.d.ts +0 -8
- package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +0 -24
- package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/pagination/pagination.module.d.ts +0 -2
- package/lib/workflow-program/create-program-ui/pagination/pagination.module.ngfactory.d.ts +0 -3
- package/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.d.ts +0 -4
- package/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.d.ts +0 -4
- package/lib/workflow-program/create-program-ui/pipes/search.pipe.d.ts +0 -4
- package/lib/workflow-program/create-program-ui/role-list/role-list.component.d.ts +0 -61
- package/lib/workflow-program/create-program-ui/role-list/role-list.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.d.ts +0 -17
- package/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.d.ts +0 -5
- package/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +0 -87
- package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.d.ts +0 -1
- package/lib/workflow-program/workflow-program.component.d.ts +0 -153
- package/lib/workflow-program/workflow-program.component.ngfactory.d.ts +0 -1
- package/lib/workflow-risk/workflow-risk.component.d.ts +0 -105
- package/lib/workflow-risk/workflow-risk.component.ngfactory.d.ts +0 -1
- package/lib/workflow-services/add-risk.service.d.ts +0 -22
- package/lib/workflow-services/assessment.service.d.ts +0 -29
- package/lib/workflow-services/auth.service.d.ts +0 -29
- package/lib/workflow-services/frequency.service.d.ts +0 -5
- package/lib/workflow-services/log-issue.service.d.ts +0 -31
- package/lib/workflow-services/policy.service.d.ts +0 -24
- package/lib/workflow-services/programs.service.d.ts +0 -82
- package/lib/workflow-services/responsibility.service.d.ts +0 -33
- package/lib/workflow-services/token-decoder.service.d.ts +0 -4
- package/lib/workflow-services/ui-kit.service.d.ts +0 -5
- package/lib/workflow-survey-form/workflow-survey-form.component.d.ts +0 -7
- package/lib/workflow-survey-form/workflow-survey-form.component.ngfactory.d.ts +0 -1
- package/public-api.d.ts +0 -3
- package/vcomply-workflow-engine.d.ts +0 -273
- package/vcomply-workflow-engine.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vcomply-workflow-engine.js","sources":["../../../projects/vx-workflow-engine/src/lib/workflow-engine.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.service.ts","../../../projects/vx-workflow-engine/src/lib/configurations.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/token-decoder.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/auth.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/ui-kit.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-engine-container/workflow-engine-container.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/add-risk.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-risk/workflow-risk.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/responsibility.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-compliance/workflow-compliance.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/policy.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-policy/workflow-policy.component.ts","../../../projects/vx-workflow-engine/src/lib/more-option/more-option.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/owner-list/owner-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/category-list/category-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/floating-bar/floating-bar.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox/cs-checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-radio/cs-radio.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-switch/cs-switch.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-radio-group/cs-radio-group.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-select/cs-select.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/pipes/pascal.pipe.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/formgroup.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/tooltip/tooltip.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/tooltip/tooltip.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-pagination/workflow-pagination.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/line-loader/line-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/line-loader/line-loader.module.ts","../../../projects/vx-workflow-engine/src/lib/add-multiple-risk/add-multiple-risk.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/bulk-view/bulk-view.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.ts","../../../projects/vx-workflow-engine/src/lib/confirmation-alert/confirmation-alert.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/select/select.service.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/select/cs-select/cs-select.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/select/cs-option/cs-option.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/select/select.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-random/frequency-random.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-top/frequency-top.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/frequency.service.ts","../../../projects/vx-workflow-engine/src/lib/add-multiple-responsibility/add-multiple-responsibility.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/no-data/no-data.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/no-data/no-data.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader/loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/v-loader.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover-event.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover-longpress.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-survey-form/workflow-survey-form.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/log-issue.service.ts","../../../projects/vx-workflow-engine/src/lib/log-an-issue/log-an-issue.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/filterPipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog/smiley-dialog.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkbox-list/checkbox-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/radio-list/radio-list.component.ts","../../../projects/vx-workflow-engine/src/lib/pipes/list-mapper.pipe.ts","../../../projects/vx-workflow-engine/src/lib/create-documents/create-documents.component.ts","../../../projects/vx-workflow-engine/src/lib/pipes/search.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/user-filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/group-users-list/group-users-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/category-multiselect/category-multi-select.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/parent-table/parent-table.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/users-radio-list/users-radio-list.component.ts","../../../projects/vx-workflow-engine/src/lib/pipes/data-type.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/risk-classification/risk-classification.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/format-and-evidence/format-and-evidence.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/directive/drag-drop.directive.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/directive/autofocus.directive.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/review-frequency/review-frequency.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/directive/scroll-in-view.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/click-outside/click-outside.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/click-outside/click-outside.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/short-merge.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/space-breaker.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/format-html.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/within-data.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/directive/conditional-focus.directive.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/list-loader/list-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/array-filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/audit-category-list/audit-category-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/document-section/document-section.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/assessment.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-assessment/workflow-assessment.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/service/assessment.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/radio-list.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/pagination/pagination/pagination.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/pagination/pagination.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/date-time/date-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/device/device.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview/preview.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/select-question/select-question.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/page-header/page-header.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/welcome/welcome.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/assessment-preview.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog-config.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog-ref.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/result-criteria.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/editor.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/insertion.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog-injector.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/delete/delete.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/active/active.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/validator.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-select/cs-select.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/pipes/pascal.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/click-outside.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/formgroup.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/build.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/move/move.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic/logic.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/editor-loader/editor-loader.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/create-assessment.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/deactivate/deactivate.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/duplicate/duplicate.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/action-dialog.module.ts","../../../projects/vx-workflow-engine/src/lib/pipes/uncategorized-filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/programs.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/constants.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/workflow-program.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/roles-list/roles-list.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/form-field/form-field.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/directives/input-trim.directive.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/role-list.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pagination/pagination.module.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/search.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/no-data/no-data.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/no-data/no-data.module.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/create-program-ui.module.ts","../../../projects/vx-workflow-engine/src/lib/workflow-engine.module.ts","../../../projects/vx-workflow-engine/src/public-api.ts","../../../projects/vx-workflow-engine/src/vcomply-workflow-engine.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WorkflowEngineService {\r\n constructor() {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SnackBarService {\r\n public snackbarSubject = new Subject <any>();\r\n public snackbarState = this.snackbarSubject.asObservable();\r\n constructor() {}\r\n\r\n show(message: string, icon?: string) {\r\n this.snackbarSubject.next({\r\n show: true,\r\n message,\r\n icon,\r\n });\r\n }\r\n\r\n hide(){\r\n this.snackbarSubject.next({\r\n show: false,\r\n message: '',\r\n icon: '',\r\n });\r\n }\r\n}\r\n","export class Configurations {\r\n public envConfig: any;\r\n\r\n constructor() {\r\n this.envConfig = {};\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenDecoderService {\r\n\r\n constructor() { }\r\n\r\n getUserDetailsFromToken(){\r\n if (localStorage.getItem(\"currentUser\")) {\r\n const helper = new JwtHelperService();\r\n const rawToken = JSON.parse(localStorage.getItem('currentUser')??'{}').token;\r\n const tokenInfo = helper.decodeToken(rawToken);\r\n if(tokenInfo?.iss){\r\n if(tokenInfo.user){\r\n try{\r\n return JSON.parse(tokenInfo?.user)\r\n }\r\n catch{\r\n return null;\r\n }\r\n }\r\n }else{\r\n return tokenInfo.user??null;\r\n }\r\n }else{\r\n return null;\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { Configurations } from '../configurations';\r\nimport { retry } from 'rxjs/operators';\r\nimport { TokenDecoderService } from './token-decoder.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n public env !: any;\r\n \r\n public previewPanel = new BehaviorSubject<boolean>(false);\r\n constructor(private http: HttpClient,private decoder:TokenDecoderService, @Optional() config?: Configurations) {\r\n if (config) {\r\n this.env = config.envConfig;\r\n\r\n }\r\n }\r\n\r\n userId() {\r\n const helper = new JwtHelperService();\r\n const CURRENT_USER = localStorage.getItem('currentUser');\r\n let myRawToken;\r\n CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\r\n const isExpired = helper.isTokenExpired(myRawToken);\r\n if (isExpired === false) {\r\n const tokenInfo = helper.decodeToken(myRawToken);\r\n return tokenInfo._id;\r\n }\r\n return '';\r\n }\r\n\r\n getUserDetails(){\r\n const helper = new JwtHelperService();\r\n const CURRENT_USER = localStorage.getItem('currentUser');\r\n let myRawToken;\r\n CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\r\n const isExpired = helper.isTokenExpired(myRawToken);\r\n if (isExpired === false) {\r\n let tokenInfo = helper.decodeToken(myRawToken);\r\n tokenInfo['user'] = this.decoder.getUserDetailsFromToken();\r\n return tokenInfo;\r\n }\r\n return '';\r\n }\r\n isKeyAdmin(): boolean {\r\n if (this.isValidToken() && Object.keys(this.tokenInfo()).length > 0) {\r\n return this.tokenInfo().keyAdmin;\r\n }\r\n return false;\r\n }\r\n\r\n isAdmin(): boolean {\r\n if (this.isValidToken()) {\r\n return this.tokenInfo().admin;\r\n }\r\n return false;\r\n }\r\n isManager(): boolean {\r\n if (this.isValidToken()) {\r\n return this.tokenInfo().manager;\r\n }\r\n return false;\r\n }\r\n\r\n isUser(): boolean {\r\n if (this.isValidToken()) {\r\n return this.tokenInfo().user;\r\n }\r\n return false;\r\n }\r\n\r\n isValidToken(): boolean {\r\n const helper = new JwtHelperService();\r\n const userToken = localStorage.getItem('currentUser');\r\n if (userToken) {\r\n const CURRENT_USER = localStorage.getItem('currentUser');\r\n let myRawToken;\r\n CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\r\n const isExpired = helper.isTokenExpired(myRawToken);\r\n if (isExpired === true) {\r\n return false;\r\n }\r\n if (isExpired === false) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n tokenInfo() {\r\n const helper = new JwtHelperService();\r\n const userToken = localStorage.getItem('currentUser');\r\n if (userToken) {\r\n const CURRENT_USER = localStorage.getItem('currentUser');\r\n let myRawToken;\r\n CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\r\n const tokenInfo = helper.decodeToken(myRawToken);\r\n return this.decoder.getUserDetailsFromToken();\r\n }\r\n return {};\r\n }\r\n\r\n getAuthorizationToken(): any {\r\n try {\r\n if (this.isValidToken()) {\r\n const tk: string | null = localStorage.getItem('currentUser');\r\n if (tk) {\r\n const myRawToken = JSON.parse(tk).token;\r\n return myRawToken;\r\n }\r\n return '';\r\n }\r\n return '';\r\n } catch (err) {}\r\n return '';\r\n }\r\n\r\n getUserTimeZone(): string {\r\n try {\r\n if (this.isValidToken()) {\r\n const helper = new JwtHelperService();\r\n const tk: string | null = localStorage.getItem('currentUser');\r\n if (tk) {\r\n const myRawToken = JSON.parse(tk).token;\r\n const tokenInfo = helper.decodeToken(myRawToken);\r\n const userInfo = this.decoder.getUserDetailsFromToken();\r\n return userInfo?.timezone;\r\n }\r\n return '';\r\n }\r\n return '';\r\n } catch (err) {}\r\n return '';\r\n }\r\n\r\n getOrganizationId(): number {\r\n try {\r\n if (this.isValidToken()) {\r\n const helper = new JwtHelperService();\r\n const tk: string | null = localStorage.getItem('currentUser');\r\n if (tk) {\r\n const myRawToken = JSON.parse(tk).token;\r\n const tokenInfo = helper.decodeToken(myRawToken);\r\n const userInfo = this.decoder.getUserDetailsFromToken();\r\n return userInfo.organisation_id;\r\n }\r\n return -1;\r\n }\r\n return -1;\r\n } catch (err) {}\r\n return -1;\r\n }\r\n\r\n getMemberId(): number {\r\n try {\r\n if (this.isValidToken()) {\r\n const helper = new JwtHelperService();\r\n const tk: string | null = localStorage.getItem('currentUser');\r\n if (tk) {\r\n const myRawToken = JSON.parse(tk).token;\r\n const tokenInfo = helper.decodeToken(myRawToken);\r\n const userInfo = this.decoder.getUserDetailsFromToken();\r\n return userInfo?.id;\r\n }\r\n return -1;\r\n }\r\n return -1;\r\n } catch (err) {}\r\n return -1;\r\n }\r\n\r\n logout() {\r\n const primaryToken = localStorage.getItem('primaryuser');\r\n if (primaryToken != null) {\r\n localStorage.setItem('currentUser', primaryToken);\r\n localStorage.removeItem('primaryuser');\r\n window.location.href = this.env.appUrl;\r\n } else {\r\n localStorage.removeItem('currentUser');\r\n window.location.href = this.env.appUrl;\r\n }\r\n }\r\n\r\n isTokenExpired() {\r\n const helper = new JwtHelperService();\r\n const userToken = localStorage.getItem('currentUser');\r\n if (userToken !== null) {\r\n const myRawToken = JSON.parse(userToken).token;\r\n const isExpired = helper.isTokenExpired(myRawToken);\r\n return isExpired;\r\n }\r\n return false;\r\n }\r\n\r\n isLoggedIn(): boolean {\r\n const helper = new JwtHelperService();\r\n const userToken = localStorage.getItem('currentUser');\r\n if (userToken) {\r\n const myRawToken = JSON.parse(userToken).token;\r\n const isExpired = helper.isTokenExpired(myRawToken);\r\n if (isExpired === false) {\r\n return true;\r\n }\r\n if (isExpired === true) {\r\n this.logout();\r\n }\r\n window.location.href = this.env.appUrl + '#/signin?redirectURL= ' + encodeURIComponent(window.location.href);\r\n return false;\r\n }\r\n window.location.href = this.env.appUrl + '#/signin?redirectURL= ' + encodeURIComponent(window.location.href);\r\n return false;\r\n }\r\n\r\n getOrganizationDetails() {\r\n const headers = new HttpHeaders().set('token', this.getAuthorizationToken());\r\n return this.http.get(this.env.organizationGet + 'orgDetails&id=' + this.getOrganizationId(),{ headers }).pipe(retry(2));\r\n }\r\n\r\n getUserInfo(){\r\n const headers = new HttpHeaders().set('token', this.getAuthorizationToken());\r\n return this.http.get(this.env.organizationGet + 'users&id=' + this.userId(), { headers }).pipe(retry(2));\r\n } \r\n\r\n getSubscriptionDetails() {\r\n const headers = new HttpHeaders().set('token', this.getAuthorizationToken());\r\n return this.http.get(this.env.organizationGet + 'subscriptionList', { headers }).pipe(retry(2));\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class UiKitService {\r\n public isSmileyOn: boolean = false;\r\n public isLoader: boolean = false;\r\n constructor() { }\r\n}","import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { AddMultipleRiskComponent } from '../add-multiple-risk/add-multiple-risk.component';\r\nimport { ConfirmationAlert } from '../interfaces/confirmation-alert';\r\nimport { IssueConfiguration } from '../interfaces/issue-data';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\nimport { WorkflowAssessmentComponent } from '../workflow-assessment/workflow-assessment.component';\r\nimport { ImportAnAssessmentComponent } from '../workflow-assessment/import-an-assessment/import-an-assessment.component';\r\nimport { WorkflowComplianceComponent } from '../workflow-compliance/workflow-compliance.component';\r\nimport { WorkflowPolicyComponent } from '../workflow-policy/workflow-policy.component';\r\nimport { WorkflowRiskComponent } from '../workflow-risk/workflow-risk.component';\r\nimport { AuthService } from '../workflow-services/auth.service';\r\nimport { UiKitService } from '../workflow-services/ui-kit.service';\r\nimport { LogAnIssueComponent } from './../log-an-issue/log-an-issue.component';\r\nimport { MoreOptionComponent } from './../more-option/more-option.component';\r\nimport { WorkflowProgramComponent } from '../workflow-program/workflow-program.component';\r\n\r\n@Component({\r\n selector: 'app-vcomply-workflow-engine-container',\r\n templateUrl: './workflow-engine-container.component.html',\r\n styleUrls: ['./workflow-engine-container.component.less', '../forms.less'],\r\n})\r\nexport class WorkflowEngineContainerComponent implements OnInit, AfterViewInit {\r\n\r\n isHostRefreshActive = true;\r\n isRCSelected = false\r\n @HostListener('window:beforeunload', ['$event'])\r\n unloadNotification($event: any) {\r\n const token = localStorage.getItem('currentUser')\r\n if (this.isHostRefreshActive && token) {\r\n $event.returnValue = true;\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n constructor(public uiKitService: UiKitService, private snackBar: SnackBarService, public auth: AuthService) {\r\n console.info(\"3.0.0\")\r\n }\r\n @Input() workflowType = '';\r\n @Input() mode = 'CREATE';\r\n @Input() id = '';\r\n @Input() openedFrom = 'GLOBAL';\r\n @Output() closeWorkflow = new EventEmitter();\r\n @Input() allowedWorkflows: any = [];\r\n @Input() frameworkDetails: Array<any> = []; // only for compliance part for framework\r\n @Input() selectedRC = '';\r\n @Input() secondaryOpenPortal = '';\r\n @Input() defaultRiskType = 'NORMAL';\r\n @Input() moveToRegisterMode ='';\r\n @Input() reponsibilityData = { // only used by log an issue\r\n responsibilityId: null,\r\n responsibilityName: '',\r\n rcId:null\r\n };\r\n @Input() issueData ={\r\n auditPlanId : null,\r\n auditPlanName :'',\r\n rcId: null\r\n }\r\n @Input() entrustButtonName = 'Entrust'\r\n@Input() config !: IssueConfiguration\r\n @Input() convertFileData = {}\r\n @Input() selectedCategory = ''\r\n\r\n\r\n animation = true;\r\n workflowList = false;\r\n showMoreOption = true;\r\n isWorkflowSelectorEnabled = true;\r\n disableWorkflowChange!: boolean;\r\n checkpointCount: number = 0;\r\n @ViewChild('risk', { static: false }) riskComponent!: WorkflowRiskComponent;\r\n @ViewChild('multipleRisk', { static: false }) riskBulkUpload!: AddMultipleRiskComponent;\r\n @ViewChild('multipleResponsibility', { static: false }) responsibilityBulkUpload!: AddMultipleRiskComponent;\r\n @ViewChild('responsibility', { static: false }) compliance!: WorkflowComplianceComponent;\r\n @ViewChild('moreOption', { static: false }) moreOption!: MoreOptionComponent;\r\n @ViewChild('dropdown') dropdown!: ElementRef;\r\n @ViewChild('dropdownRow', { static: false }) dropdownRow!: ElementRef;\r\n @ViewChild('policy') policy!: WorkflowPolicyComponent;\r\n @ViewChild('logAnIssue') logIssueComponent!: LogAnIssueComponent;\r\n @ViewChild('assessment') workflowAssessmentComponent!: WorkflowAssessmentComponent;\r\n @ViewChild('importAssessment', { static: false }) importAnAssessment!: ImportAnAssessmentComponent;\r\n @ViewChild('program', { static: false }) program !: WorkflowProgramComponent;\r\n\r\n dropdownLeft!: any;\r\n dropdownTop!: any;\r\n dropdownWidth!: any;\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n if ([this.riskComponent?.showSmiley,\r\n this.riskBulkUpload?.showSmiley,\r\n this.responsibilityBulkUpload?.showSmiley,\r\n this.compliance?.showSmiley,\r\n this.importAnAssessment?.showSmiley,\r\n this.logIssueComponent?.showSmiley].includes(true)) {\r\n //Do Nothing\r\n } else {\r\n this.closeWorkflowEngine()\r\n }\r\n\r\n }\r\n\r\n currentWorkflow !: any;\r\n workflowTypeList: any = [\r\n { workflowName: 'Create a Responsibility', code: 'CAR', permissionIdentifier: 'RESPONSIBILITY' },\r\n { workflowName: 'Create Multiple Responsibilities', code: 'CMR', permissionIdentifier: 'MULTIPLE_RESPONSIBILITY' },\r\n { workflowName: 'Add a Risk', code: 'AAR', permissionIdentifier: 'RISK' },\r\n { workflowName: 'Add Multiple Risks', code: 'AMR', permissionIdentifier: 'MULTIPLE_RISK' },\r\n { workflowName: 'Create a Policy', code: 'CAP', permissionIdentifier: 'POLICY' },\r\n { workflowName: 'Create a Survey', code: 'CAS', permissionIdentifier: 'SURVEY' },\r\n { workflowName: 'Create a Form', code: 'CAF', permissionIdentifier: 'FORM' },\r\n { workflowName: 'Log an Issue', code: 'LAI', permissionIdentifier: 'ISSUE' },\r\n { workflowName: 'Create an Assessment', code: 'AAA', permissionIdentifier: 'ASSESSMENT' },\r\n { workflowName: 'Import an Assessment', code: 'IAA', permissionIdentifier: 'IMPORT_ASSESSMENT' },\r\n { workflowName: 'Create a Program', code: 'CAPR', permissionIdentifier: 'PROGRAM' }\r\n ];\r\n additionalInformationList = [\r\n 'Objective',\r\n 'Responsibility Center',\r\n 'Responsibility Category'\r\n ];\r\n confirmationAlertConfig: ConfirmationAlert = { isVisible: false };\r\n closeWorkflowEngine(evt?: any) {\r\n if (evt?.confirm === false) {\r\n this.closeWorkflow.emit(evt ? evt.evt : evt);\r\n } else {\r\n this.closeConfirm(evt);\r\n }\r\n }\r\n\r\n closeConfirm(evt: any) {\r\n this.confirmationAlertConfig = { isVisible: true, message: 'If you navigate away, any unsaved changes will be lost.', action: 'WORKFLOW_CLOSE', data: evt };\r\n }\r\n executeClose(evt: any) {\r\n if (evt.action === 'YES') {\r\n this.closeWorkflow.emit()\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.setNetworkListner();\r\n this.setWorkflow(this.workflowType, this.workflowTypeList);\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 500);\r\n this.setWorkflow(this.workflowType, this.workflowTypeList);\r\n this.decideViewMoreOption();\r\n }\r\n\r\n setNetworkListner() {\r\n addEventListener('offline', (e) => {\r\n this.snackBar.show('Connection lost!<br>Check your network connectivity.')\r\n });\r\n addEventListener('online', (e) => {\r\n this.snackBar.show('You\\'re back online!')\r\n });\r\n }\r\n ngAfterViewInit() {\r\n this.workflowTypeList = this.workflowTypeList.filter((workflow: any) => {\r\n if (this.allowedWorkflows.includes(workflow.permissionIdentifier)) {\r\n return workflow;\r\n }\r\n });\r\n if (this.openedFrom === 'RISK_TREATMENT') {\r\n this.isWorkflowSelectorEnabled = true;\r\n this.disableWorkflowChange = true;\r\n }\r\n }\r\n\r\n decideViewMoreOption(type?: boolean) {\r\n if ((this.currentWorkflow.code === 'CMR' || this.currentWorkflow.code === 'AMR' || this.currentWorkflow.code === 'AAA' || this.currentWorkflow.code === 'IAA')) {\r\n this.showMoreOption = false;\r\n if (type === true) {\r\n this.isWorkflowSelectorEnabled = false;\r\n } else {\r\n this.isWorkflowSelectorEnabled = true;\r\n }\r\n } else {\r\n\r\n if (type === true) { this.showMoreOption = false; this.isWorkflowSelectorEnabled = false; }\r\n if (type === false) { this.showMoreOption = true; this.isWorkflowSelectorEnabled = true; }\r\n if (type === undefined) {\r\n this.showMoreOption = true;\r\n this.isWorkflowSelectorEnabled = true;\r\n }\r\n }\r\n }\r\n\r\n submit() {\r\n switch (this.currentWorkflow?.code) {\r\n case 'AAR':\r\n this.riskComponent.submitRisk();\r\n break;\r\n case 'LAI':\r\n this.logIssueComponent.addIssue();\r\n break;\r\n case 'CAR':\r\n this.compliance.submitResponsibility();\r\n break;\r\n case 'CAP':\r\n this.policy.submitPolicy();\r\n break;\r\n case 'AAA':\r\n this.workflowAssessmentComponent.submitAssessment();\r\n break;\r\n case 'CAPR':{\r\n this.program.saveProgram();\r\n break;\r\n }\r\n // case 'IAA':\r\n // this.importAnAssessment.submitAssessment();\r\n \r\n }\r\n }\r\n\r\n editWorkflow() {\r\n this.workflowList = !this.workflowList;\r\n const dropdown = this.dropdown.nativeElement.getBoundingClientRect();\r\n this.dropdownLeft = dropdown.left;\r\n this.dropdownTop = dropdown.top + dropdown.height;\r\n this.dropdownWidth = dropdown.width;\r\n }\r\n closeWorkflowList() {\r\n this.workflowList = false;\r\n }\r\n @HostListener('window:resize', ['$event'])\r\n sizeChange(event: any) {\r\n this.workflowList = false;\r\n }\r\n changeWorkflow(evt: any, selectedWorkflow: any) {\r\n if (selectedWorkflow.code === this.currentWorkflow.code) { return; }\r\n this.confirmationAlertConfig = { isVisible: true, message: 'If you change the workflow, any unsaved changes would be lost.', action: 'WORKFLOW_CHANGE', data: selectedWorkflow };\r\n }\r\n\r\n confirmWorkflowChange(evt: any) {\r\n console.log(\"event ====>\", evt)\r\n if (evt.action === 'YES') {\r\n\r\n switch (evt.payload.action) {\r\n case 'WORKFLOW_CHANGE':\r\n this.currentWorkflow = evt?.payload?.data ?? null;\r\n\r\n if (this.currentWorkflow?.code) {\r\n if (this.moreOption) {\r\n this.moreOption.resetAll(this.currentWorkflow?.code);\r\n }\r\n }\r\n\r\n break;\r\n case 'EDIT_RISK':\r\n this.riskComponent.createRisk(this.riskComponent.riskForm);\r\n break;\r\n case 'POLICY_PORTAL':\r\n this.policy.confirmPolicyPortal(evt.action);\r\n break;\r\n case 'WORKFLOW_CLOSE':\r\n this.closeWorkflow.emit(evt?.payload?.data)\r\n break;\r\n case 'checkpoint':\r\n this.moreOption.moreOptionsList.CAR.forEach((option: any) => {\r\n if (option.code === 'ASSESSMENT' || option.code === 'CHECKPOINTS_NEW') {\r\n option.isDisabled = false;\r\n }\r\n\r\n if (option.code === 'CHECKPOINTS') {\r\n option.isDisabled = true;\r\n }\r\n\r\n });\r\n\r\n this.compliance.removeCheckpoint();\r\n break;\r\n\r\n case 'new-checkpoints':\r\n this.moreOption.moreOptionsList.CAR.forEach((option: any) => {\r\n if (option.code === 'ASSESSMENT' && !evt.payload.isDataRemoved) {\r\n option.isDisabled = false;\r\n }\r\n\r\n if (option.code === 'CHECKPOINTS' && !evt.payload.isDataRemoved) {\r\n option.isDisabled = true;\r\n }\r\n if(evt.payload.isCheckpointChecked && option.code === 'CHECKPOINTS_NEW') {\r\n option.checked = false;\r\n this.compliance.moreOptions.CHECKPOINTS_NEW = false;\r\n\r\n }\r\n\r\n });\r\n\r\n this.compliance.remove('new-checkpoints')\r\n\r\n }\r\n\r\n } else {\r\n switch (evt.payload.action) {\r\n case 'POLICY_PORTAL':\r\n this.policy.confirmPolicyPortal(evt.action);\r\n break;\r\n }\r\n }\r\n this.confirmationAlertConfig = { isVisible: false, message: '', action: '', data: null };\r\n this.decideViewMoreOption();\r\n return evt;\r\n }\r\n\r\n setWorkflow(workFlowCode: any, workFlowList: any) {\r\n const selectedWorkflow = workFlowList.find((element: any) => element.code === workFlowCode);\r\n selectedWorkflow ? this.currentWorkflow = selectedWorkflow : this.currentWorkflow = null;\r\n console.log(\"selected\",selectedWorkflow)\r\n return selectedWorkflow;\r\n }\r\n\r\n addMoreInfo(event: any) {\r\n console.log(\"event ==>\", event, this.checkpointCount)\r\n switch (this.currentWorkflow?.code) {\r\n case 'AAR':\r\n this.riskComponent.addMoreInfo(event);\r\n break;\r\n case 'LAI':\r\n this.logIssueComponent.addMoreInfo(event);\r\n break;\r\n\r\n case 'CAR':\r\n if (event.code === \"CHECKPOINTS\") {\r\n this.onRemovingCheckpoint('checkpoint');\r\n break;\r\n }\r\n if(event.code === 'CHECKPOINTS_NEW'){\r\n const index = this.moreOption.moreOptionsList.CAR.findIndex((ele: any) => ele.code === 'ASSESSMENT');\r\n this.moreOption.moreOptionsList.CAR[index].isDisabled = event.checked ? true : false;\r\n if( event.checkpoint_new && this.checkpointCount) {\r\n this.onRemovingCheckpoint('new-checkpoints', true);\r\n } else {\r\n const CHECKPOINT_INDEX = this.moreOption.moreOptionsList.CAR.findIndex((ele: any) => ele.code === 'CHECKPOINTS_NEW');\r\n this.compliance.moreOptions.CHECKPOINTS_NEW = event.checked;\r\n if(event.checkpoint_new) {\r\n const isChecked = event.checked ? false : true;\r\n event.checked = isChecked;\r\n }\r\n\r\n this.moreOption.moreOptionsList.CAR[CHECKPOINT_INDEX] = event;\r\n this.moreOption.moreOptionsList.CAR[index].isDisabled = event.checked\r\n }\r\n }\r\n if(event.code === 'ASSESSMENT'){\r\n const index = this.moreOption.moreOptionsList.CAR.findIndex((ele: any) => ele.code === 'CHECKPOINTS_NEW');\r\n this.moreOption.moreOptionsList.CAR[index].isDisabled = event.checked;\r\n }\r\n this.compliance.addMoreInfo(event);\r\n break;\r\n case 'CAP':\r\n this.policy.addMoreInfo(event);\r\n break;\r\n case 'CAPR':\r\n this.program.addMoreInfo(event);\r\n break;\r\n }\r\n }\r\n\r\n populateMoreOption(event: any) {\r\n if (this.moreOption) {\r\n this.moreOption.populate(event);\r\n }\r\n\r\n }\r\n hideElementsFromMoreOptions(event: any) {\r\n this.moreOption.hideElements(event);\r\n }\r\n\r\n showConfirmationPopup(config: ConfirmationAlert) {\r\n this.confirmationAlertConfig = config;\r\n }\r\n\r\n bulkUploadBrowse(event: any) {\r\n switch (event) {\r\n case 'AMR':\r\n this.riskBulkUpload.triggerBrowseFile();\r\n break;\r\n case 'CMR':\r\n this.responsibilityBulkUpload.triggerBrowseFile();\r\n break;\r\n case 'IAA':\r\n this.importAnAssessment.triggerBrowseFile();\r\n\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n onResetForm() {\r\n this.mode = 'CREATE';\r\n this.entrustButtonName = 'Entrust';\r\n }\r\n shiftToEditMode() {\r\n this.mode = 'EDIT'\r\n }\r\n scrollForm() {\r\n if (this.dropdownRow.nativeElement.getBoundingClientRect().top < 38) {\r\n this.dropdownRow.nativeElement.classList.add('hide');\r\n } else {\r\n this.dropdownRow.nativeElement.classList.remove('hide');\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param event which more options we are removing.\r\n * @param isCheckpointChecked is true if value checkpoints is removed by clicking on more options\r\n */\r\n onRemovingCheckpoint(event: string, isCheckpointChecked?: boolean, isDataRemoved?: boolean): void {\r\n let msg = '';\r\n if(event === 'new-checkpoints') {\r\n msg = 'If you choose to remove these Checkpoints, they will be deleted and cannot be restored. However, you will still be able to create new Checkpoints or link an Assessment.'\r\n } else {\r\n msg = 'If you choose to remove these checkpoints, they will be deleted and cannot be restored.'\r\n }\r\n this.confirmationAlertConfig = { isVisible: true, message: msg, action: event, data: { type: 'responsibilityCheckpoint' } , isCheckpointChecked: (isCheckpointChecked ?? false), isDataRemoved: (isDataRemoved ?? false)};\r\n console.log(\"this.confirmationAlertConfig ===>\", this.confirmationAlertConfig)\r\n }\r\n\r\n isAssessmentDisabled(isDisabled: boolean) {\r\n this.moreOption.moreOptionsList.CAR.forEach((option: any) => {\r\n if (option.code === 'ASSESSMENT' || option.code === 'CHECKPOINTS_NEW') {\r\n option.isDisabled = true;\r\n }\r\n });\r\n }\r\n\r\n onCheckpointSelection(event: number) {\r\n this.checkpointCount = event;\r\n\r\n }\r\n\r\n onRcSelected(isRcSelected: boolean): void {\r\n console.log(\"isRcSelected ==>\", isRcSelected)\r\n this.isRCSelected = isRcSelected;\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpBackend, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { retry } from 'rxjs/operators';\r\nimport { AuthService } from './auth.service';\r\nimport { Configurations } from '../configurations';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AddRiskService {\r\n env !: any;\r\n constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\r\n if (config) {\r\n this.env = config.envConfig;\r\n\r\n }\r\n }\r\n\r\n getAdminKeyAdminList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env.organizationGet + 'organisationUsersList&type=admin_keyadmin', { headers })\r\n .pipe(retry(2));\r\n }\r\n\r\n getCategoryList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env.riskGet + 'category/list', { headers })\r\n .pipe(retry(2));\r\n }\r\n\r\n getOrganizationUsers() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env.organizationGet + 'organizationUsers&from=risk', {\r\n headers,\r\n })\r\n .pipe(retry(2));\r\n }\r\n\r\n getResponsibilityCenterList(rcArray: any[]) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post<any[]>(this.env.riskPost + 'risk/responsibilityCenterList', { rc_id_arr: rcArray ?? [] }, { headers }).pipe(retry(2));\r\n }\r\n\r\n getRiskSettingDetails() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any>(this.env.riskGet + 'settings/GetRiskSettingsDetails', {\r\n headers,\r\n })\r\n .pipe(retry(2));\r\n }\r\n\r\n downLoadFile(data: any, type: string, filename: string) {\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n const blob = new Blob([this.base64ToArrayBuffer(data)], { type });\r\n window.navigator.msSaveOrOpenBlob(blob, filename);\r\n } else {\r\n const url = 'data:' + type.toString() + ';base64,' + data;\r\n const a = document.createElement('a');\r\n a.setAttribute('href', url);\r\n a.setAttribute('download', filename);\r\n a.style.visibility = 'hidden';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n return 'DOWNLOADED'\r\n }\r\n\r\n base64ToArrayBuffer(base64: any) {\r\n const binaryString = window.atob(base64);\r\n const len = binaryString.length;\r\n const bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; i++) {\r\n bytes[i] = binaryString.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n\r\n downloadTemplate(categoryId: string) {\r\n const headers = new HttpHeaders({\r\n token: this.authService.getAuthorizationToken(),\r\n });\r\n return this.http.get(this.env.riskGet + 'template/riskBulkUpload&catgeory_id=' + categoryId, { headers, observe: 'events', reportProgress: true });\r\n }\r\n\r\n downloadResponsibilityTemplate() {\r\n console.log(\"env\", this.env);\r\n const headers = new HttpHeaders({\r\n token: this.authService.getAuthorizationToken(),\r\n });\r\n return this.http.get(this.env.complianceGet + 'template/report', { headers, observe: 'events', reportProgress: true });\r\n }\r\n\r\n \r\n addRisk(payload: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .post<any>(this.env.riskPost + 'risk/CreateRisk', payload, { headers })\r\n .pipe(retry(2));\r\n }\r\n\r\n addBulkRisk(payload: any[]) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .post<any>(this.env.riskPost + 'risk/BulkUpload', payload, { headers })\r\n .pipe(retry(2));\r\n }\r\n\r\n getRiskDetail(riskId: string) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post<any>(this.env.riskPost + 'risk/RiskDetailsById&RiskId=' + riskId + '&callFrom=RISK_EDIT', {}, { headers }).pipe(retry(2));\r\n }\r\n\r\n updateRisk(riskId: string, payload: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .post<any>(this.env.riskPost + 'risk/CreateRisk&RiskId=' + riskId, payload, { headers })\r\n .pipe(retry(2));\r\n }\r\n}\r\n","import { ThrowStmt } from '@angular/compiler';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { Component, Input, EventEmitter, OnInit, Optional, Output, ChangeDetectionStrategy } from '@angular/core';\r\nimport { cloneDeep } from 'lodash';\r\nimport { EditorConfig } from 'vcomply-editor';\r\nimport { Configurations } from '../configurations';\r\nimport { CategoryList } from '../interfaces/categoryList';\r\nimport { ConfirmationAlert } from '../interfaces/confirmation-alert';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\nimport { AddRiskService } from '../workflow-services/add-risk.service';\r\nimport { AuthService } from '../workflow-services/auth.service';\r\nimport { UiKitService } from '../workflow-services/ui-kit.service';\r\n\r\n@Component({\r\n selector: 'app-workflow-risk',\r\n templateUrl: './workflow-risk.component.html',\r\n styleUrls: ['./workflow-risk.component.less', '../forms.less'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n\r\n})\r\nexport class WorkflowRiskComponent implements OnInit {\r\n\r\n responsibilityCentersList: any = [];\r\n selectedResponsibilityCenters: any = [];\r\n mitigationDetails: any = [];\r\n ownersList: any = [];\r\n nonRemovableUsersList: any = [];\r\n editDetails!: any;\r\n smileyMessage = `You're All Set!`;\r\n riskData !: any;\r\n actionButtons = [\r\n { buttonText: 'Add More Risks', class: 'white-btn', id: 'addMore' },\r\n { buttonText: 'View Risk', class: 'blue-btn', id: 'viewRisks' },\r\n ];\r\n sideSelectorElements: any = ['rc', 'owner', 'overseer', 'category'];\r\n showSmiley = false;\r\n @Input() mode = 'EDIT';\r\n @Input() riskId = '';\r\n @Input() defaultRiskType = 'NORMAL'\r\n @Input() moveToRegisterMode = ''\r\n @Input() secondaryOpenPortal = '';\r\n @Output() showConfirmationAlert = new EventEmitter();\r\n @Output() pickerChanged = new EventEmitter();\r\n @Output() populateOption = new EventEmitter();\r\n @Output() closeWorkflow = new EventEmitter();\r\n @Output() disconnectRefresh = new EventEmitter();\r\n @Output() refreshForm = new EventEmitter();\r\n @Output() hideElementsFromMoreOptions = new EventEmitter();\r\n @Input() openedFrom = ''\r\n scrollToBottom = false;\r\n categoryList: CategoryList = {\r\n strategic: {\r\n name: 'STRATEGIC',\r\n data: []\r\n },\r\n operational: {\r\n name: 'OPERATIONAL',\r\n data: []\r\n },\r\n compliance: {\r\n name: 'COMPLIANCE',\r\n data: []\r\n },\r\n others: {\r\n name: 'OTHERS',\r\n data: []\r\n },\r\n };\r\n overseersList: any = [];\r\n adminsList: any = [];\r\n overseersIdList: any = [];\r\n timezone!: string;\r\n date!: Date;\r\n riskNameFocus = false;\r\n assessmentFocus = false;\r\n riskTypeChangeAllowed = false;\r\n\r\n\r\n riskForm: any = {\r\n riskType: 'NORMAL',\r\n title: '',\r\n description: '',\r\n responsibilityCentersList: [],\r\n ownersList: [],\r\n category: {\r\n type: 'strategic',\r\n selectedCategory: '',\r\n },\r\n categoryCustomTags: [],\r\n overseersList: [],\r\n mitigation: 0,\r\n assessment_deadline_days: 0,\r\n head_ids: [],\r\n addOverseer: false,\r\n addMitigation: false,\r\n addMitigationPlan: false,\r\n mitigationDescriptionPlan: '',\r\n };\r\n apiUrl = '';\r\n memberId = 0;\r\n organizationId = 0;\r\n\r\n\r\n usersListLoaded = false;\r\n adminsListLoaded = false;\r\n categoryListLoaded = false;\r\n rcListLoaded = false;\r\n\r\n submitted = false;\r\n\r\n\r\n settingsInfo !: any;\r\n\r\n loader = false;\r\n //\r\n activeSelector = '';\r\n\r\n constructor(\r\n private riskService: AddRiskService,\r\n private authService: AuthService,\r\n private uiKitService: UiKitService,\r\n private snackBar: SnackBarService,\r\n @Optional() config?: Configurations\r\n\r\n ) {\r\n // if (config) {\r\n // this.apiUrl = config.apiUrl;\r\n // }\r\n this.timezone = this.authService.getUserTimeZone();\r\n\r\n }\r\n description: EditorConfig = {\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Describe the risk',\r\n };\r\n\r\n mitigationDescriptionPlan: EditorConfig = {\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Describe the recommended mitigation Plans'\r\n }\r\n\r\n ngOnInit(): void {\r\n this.pickerChanged.emit(false)\r\n this.loader = true;\r\n this.uiKitService.isLoader = true;\r\n this.getAdminsList();\r\n this.getRCList();\r\n this.getOwnersList();\r\n this.getCategoryList();\r\n this.getSettingsInfo();\r\n if (this.mode === 'CREATE') {\r\n this.organizationId = this.authService.getOrganizationId();\r\n }\r\n this.memberId = this.authService.getMemberId();\r\n console.log(\"member id of logged in user\", this.memberId)\r\n if (this.secondaryOpenPortal !== 'OTHER' && this.mode !== 'EDIT') {\r\n this.nonRemovableUsersList.push(this.memberId);\r\n }\r\n\r\n\r\n this.checkWhetherAllListsLoaded();\r\n if (this.openedFrom === 'REPORTED_RISK') {\r\n this.riskForm.riskType = 'REPORTED';\r\n this.riskTypeChangeAllowed = false;\r\n } else if (this.openedFrom === 'MOVE_TO_REGISTER') {\r\n this.riskForm.riskType = 'NORMAL';\r\n this.riskTypeChangeAllowed = false;\r\n } else {\r\n this.setRiskTypeBasedOnSubscription();\r\n }\r\n\r\n }\r\n\r\n setRiskTypeBasedOnSubscription() {\r\n if (this.openedFrom === 'REPORTED_RISK') {\r\n this.riskForm.riskType = 'REPORTED';\r\n }\r\n this.authService.getUserInfo().subscribe({\r\n next: (res: any) => {\r\n if (res && res?.permission) {\r\n const permission = JSON.parse(res?.permission)\r\n if (this.authService?.isAdmin() || this.authService?.isKeyAdmin()) {\r\n this.riskTypeChangeAllowed = true;\r\n } else if (this.authService.isManager()) {\r\n if (permission?.MRISK === 1) {\r\n this.riskTypeChangeAllowed = true;\r\n } else {\r\n this.riskTypeChangeAllowed = false;\r\n this.riskForm.riskType = 'REPORTED';\r\n }\r\n } else if (this.authService.isUser()) {\r\n this.riskTypeChangeAllowed = false;\r\n this.riskForm.riskType = 'REPORTED';\r\n }\r\n\r\n } else {\r\n this.riskTypeChangeAllowed = false;\r\n this.riskForm.riskType = 'REPORTED';\r\n }\r\n\r\n if (res && res?.roleActions) {\r\n const moduleIndex = res.roleActions.findIndex((element: any) => element.moduleName == \"risk\");\r\n const riskPermissions = res.roleActions[moduleIndex].subModule[1].permissions;\r\n riskPermissions.forEach((permission: any) => {\r\n if (permission.name == 'manage risks' && permission.enable) {\r\n this.riskTypeChangeAllowed = true;\r\n this.riskForm.riskType = 'NORMAL';\r\n }\r\n });\r\n\r\n }\r\n if (this.mode === 'EDIT') {\r\n this.riskForm.riskType = 'NORMAL';\r\n this.riskTypeChangeAllowed = false;\r\n\r\n }\r\n\r\n }\r\n })\r\n }\r\n\r\n changeRisk(type: string) {\r\n this.riskForm = { ...this.riskForm, ...{ riskType: type } }\r\n this.setPopupButtons();\r\n if (type === 'REPORTED') {\r\n this.riskForm.assessment_deadline_days = 0;\r\n }\r\n }\r\n\r\n\r\n setPopupButtons() {\r\n if (this.riskForm.riskType === 'REPORTED') {\r\n this.actionButtons = [\r\n { buttonText: 'Add More Risks', class: 'white-btn', id: 'addMore' },\r\n { buttonText: 'View Reported Risks', class: 'blue-btn', id: 'manageReportedRisk' },\r\n ];\r\n } else {\r\n this.actionButtons = [\r\n { buttonText: 'Add More Risks', class: 'white-btn', id: 'addMore' },\r\n { buttonText: 'View Risk', class: 'blue-btn', id: 'viewRisks' },\r\n ];\r\n }\r\n }\r\n getRiskDetails(riskId: any) {\r\n\r\n this.riskService.getRiskDetail(riskId).subscribe((res: any) => {\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.editDetails = cloneDeep(res);\r\n this.riskForm.title = res.title;\r\n if (this.openedFrom === 'MOVE_TO_REGISTER') {\r\n this.riskForm.riskType = 'NORMAL';\r\n this.riskTypeChangeAllowed = false;\r\n } else {\r\n this.riskForm.riskType = res?.risk_type ?? 'REPORTED'\r\n }\r\n\r\n this.riskForm.description = res.description;\r\n this.riskForm.responsibilityCentersList = this.setList(this.responsibilityCentersList, res.rc_id, 'item_id');\r\n this.riskForm.ownersList = this.setList(this.ownersList, res.owner, 'member_id');\r\n this.riskForm.mitigationDescriptionPlan = res.mitigationDescriptionPlan;\r\n const type = this.setCategoryType(res.category_type[0]);\r\n const categoryIndex = this.categoryList[type]?.data.findIndex((element: any) => element.category_id == res.category[0]);\r\n if (categoryIndex != -1) {\r\n this.riskForm.category = {\r\n type,\r\n selectedCategory: this.categoryList[type]?.data[categoryIndex],\r\n };\r\n this.riskForm.categoryCustomTags = res.category_custom_tag;\r\n }\r\n\r\n this.riskForm.overseersList = this.setList(this.ownersList, res.manage_oversight, 'member_id');\r\n this.riskForm.mitigation = res.mitigation;\r\n this.riskForm.assessment_deadline_days = res.assessment_deadline_days;\r\n this.riskForm.addOverseer = (res.manage_oversight.length > 0) ? true : false;\r\n this.riskForm.addMitigation = (res.mitigation) ? true : false;\r\n this.memberId = res.member_id;\r\n this.organizationId = res.organisation_id;\r\n this.riskForm.head_ids = res?.head_ids ? res?.head_ids : [];\r\n this.riskForm.mitigationDescriptionPlan = res?.mitigation_plan_recommendation ?? '';\r\n this.riskForm.addMitigationPlan = res?.mitigation_plan_recommendation.trim()?.length ? true : false;\r\n if (res.assessment_date_timestamp) {\r\n this.date = new Date(res.assessment_date);\r\n }\r\n if (res.IfAssessmentDone > 0) {\r\n res.all_owner_arr.forEach((element: any) => {\r\n if (element.assessment_done > 0) {\r\n this.nonRemovableUsersList.push(element.member_id);\r\n }\r\n });\r\n }\r\n if (this.secondaryOpenPortal === 'OTHER' && this.mode === 'EDIT') {\r\n this.nonRemovableUsersList = Array.from(new Set<any[]>([...this.nonRemovableUsersList, ...res?.owner]));\r\n }\r\n if (this.secondaryOpenPortal !== 'OTHER' && this.mode === 'EDIT') {\r\n this.nonRemovableUsersList = Array.from(new Set<any[]>([...this.nonRemovableUsersList, ...[this.authService.getMemberId()]]));\r\n }\r\n if (res?.risk_type === 'NORMAL') {\r\n this.nonRemovableUsersList = Array.from(new Set<any[]>([...this.nonRemovableUsersList, ...[this.authService.getMemberId()]]));\r\n }\r\n\r\n this.populateOptionalFields();\r\n }, err => {\r\n console.log(err);\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n\r\n });\r\n }\r\n\r\n populateOptionalFields() {\r\n const activatedOptions = [];\r\n if (this.riskForm.addMitigation) { activatedOptions.push('MITIGATION'); }\r\n if (this.riskForm.addOverseer) { activatedOptions.push('OVERSEER'); }\r\n if (this.riskForm.addMitigationPlan) { activatedOptions.push('MITIGATION_PLAN') }\r\n this.populateOption.emit(activatedOptions);\r\n }\r\n\r\n setCategoryType(type: any) {\r\n if (type === 1) {\r\n return 'strategic';\r\n } else if (type === 2) {\r\n return 'operational';\r\n } else if (type === 3) {\r\n return 'compliance';\r\n } else if (type === 0) {\r\n return 'others';\r\n } else { return 'strategic'; }\r\n }\r\n getRCList() {\r\n const rcArray: any[] = [];\r\n this.riskService.getResponsibilityCenterList(rcArray).subscribe(res => {\r\n this.responsibilityCentersList = res;\r\n this.rcListLoaded = true;\r\n\r\n }, err => {\r\n console.error(err);\r\n this.rcListLoaded = true;\r\n\r\n });\r\n }\r\n\r\n getCategoryList() {\r\n this.riskService.getCategoryList().subscribe((res: any) => {\r\n this.categoryList.strategic.data = res.strategic_arr;\r\n this.categoryList.operational.data = res.operational_arr;\r\n this.categoryList.compliance.data = res.compliance_arr;\r\n this.categoryList.others.data = res.others_arr;\r\n this.categoryListLoaded = true;\r\n\r\n }, err => {\r\n console.error(err);\r\n this.categoryListLoaded = true;\r\n\r\n });\r\n }\r\n\r\n\r\n getOwnersList() {\r\n this.riskService.getOrganizationUsers().subscribe((res: any) => {\r\n this.ownersList = res;\r\n\r\n this.usersListLoaded = true;\r\n const index: number = res.findIndex((user: any) => user.member_id === this.memberId);\r\n if (index !== -1) {\r\n if (this.secondaryOpenPortal !== 'OTHER' && this.mode !== 'EDIT') {\r\n this.riskForm.ownersList.push(res[index]);\r\n }\r\n }\r\n\r\n }, err => {\r\n console.error(err);\r\n this.usersListLoaded = true;\r\n });\r\n }\r\n getAdminsList() {\r\n this.riskService.getAdminKeyAdminList().subscribe(res => {\r\n this.adminsList = res;\r\n this.adminsListLoaded = true;\r\n\r\n }, err => {\r\n console.error(err);\r\n this.adminsListLoaded = true;\r\n\r\n });\r\n }\r\n\r\n getSettingsInfo() {\r\n\r\n this.riskService.getRiskSettingDetails().subscribe(res => {\r\n this.settingsInfo = res;\r\n this.hideOptionalFields(res);\r\n this.mitigationDetails = res?.risk_mitigation_priority?.mitigation_data;\r\n let defaultMitigation = this.mitigationDetails?.filter((ele: any) => ele?.mitigation_name === \"LOW\");\r\n if (defaultMitigation?.length) {\r\n this.riskForm.mitigation = defaultMitigation[0]?.mitigation_id;\r\n }\r\n\r\n }, err => {\r\n console.error(err);\r\n });\r\n\r\n }\r\n\r\n hideOptionalFields(res: any) {\r\n if (res?.risk_automation_enable === 1) {\r\n this.hideElementsFromMoreOptions.emit(['MITIGATION']);\r\n }\r\n\r\n }\r\n\r\n\r\n checkWhetherAllListsLoaded() {\r\n if (this.rcListLoaded && this.usersListLoaded && this.adminsListLoaded && this.categoryListLoaded) {\r\n\r\n this.setOverseersList();\r\n if (this.mode === 'EDIT') {\r\n this.getRiskDetails(this.riskId);\r\n } else {\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n\r\n }\r\n } else {\r\n setTimeout(() => {\r\n this.checkWhetherAllListsLoaded();\r\n }, 300);\r\n }\r\n }\r\n\r\n setOverseersList() {\r\n\r\n let ids: any = [];\r\n let rcOwnerIds: any = [];\r\n const users = cloneDeep(this.riskForm.ownersList);\r\n const responsibilityCenters = cloneDeep(this.riskForm.responsibilityCentersList);\r\n const admins = cloneDeep(this.adminsList);\r\n const allUsers = cloneDeep(this.ownersList);\r\n // console.log(allUsers, this.responsibilityCentersList)\r\n users.forEach((user: any) => {\r\n ids.push(user.member_id);\r\n });\r\n admins.forEach((user: any) => {\r\n ids.push(user.member_id);\r\n });\r\n responsibilityCenters.forEach((rc: any) => {\r\n const ary = [...rc.owner, ...rc.parent_owners];\r\n ids = [...ids, ...ary];\r\n rcOwnerIds = [...rcOwnerIds, ...ary];\r\n });\r\n\r\n ids = [...new Set(ids)];\r\n rcOwnerIds = [...new Set(rcOwnerIds)];\r\n this.riskForm.head_ids = rcOwnerIds;\r\n this.overseersList = allUsers.filter((user: any) => !ids.includes(user.member_id));\r\n console.log(\"overseer list\",this.overseersList)\r\n this.riskForm.overseersList = this.riskForm.overseersList.filter((user: any) => !ids.includes(user.member_id));\r\n }\r\n\r\n activateSelector(type: any, event: boolean) {\r\n this.activeSelector = event ? type : '';\r\n if (['rc', 'owner', 'overseer', 'category'].includes(type)) {\r\n this.pickerChanged.emit(event);\r\n }\r\n\r\n }\r\n\r\n activeDeselector() {\r\n this.activeSelector = '';\r\n this.pickerChanged.emit(false);\r\n }\r\n\r\n remove(type: any, event: any) {\r\n switch (type) {\r\n case 'rc':\r\n const rcIndex = this.riskForm.responsibilityCentersList.findIndex((rc: any) => rc.rc_id == event.rc_id);\r\n this.riskForm.responsibilityCentersList.splice(rcIndex, 1);\r\n break;\r\n case 'owner':\r\n const ownerIndex = this.riskForm.ownersList.findIndex((owner: any) => owner.member_id == event.member_id);\r\n this.riskForm.ownersList.splice(ownerIndex, 1);\r\n this.setOverseersList();\r\n break;\r\n case 'overseer':\r\n const overseerIndex = this.riskForm.overseersList.findIndex((overseer: any) => overseer.member_id == event.member_id);\r\n this.riskForm.overseersList.splice(overseerIndex, 1);\r\n break;\r\n case 'category':\r\n this.riskForm.category = {\r\n type: 'strategic',\r\n selectedCategory: ''\r\n };\r\n this.riskForm.categoryCustomTags = [];\r\n break;\r\n }\r\n\r\n }\r\n\r\n saveSelectedRCList(rcIds: any) {\r\n this.activeDeselector();\r\n const selectedRC = this.setList(this.responsibilityCentersList, rcIds, 'item_id');\r\n this.riskForm.responsibilityCentersList = selectedRC;\r\n this.setOverseersList();\r\n this.pickerChanged.emit(false);\r\n }\r\n\r\n saveSelectedCategory(category: any) {\r\n this.activeDeselector();\r\n this.riskForm.category = category;\r\n const customTags: any = [];\r\n category.selectedCategory.custom_tag.forEach((element: any) => {\r\n const tag = {\r\n custom_tag_name: element.tagName,\r\n custom_tag_value: ''\r\n };\r\n customTags.push(tag);\r\n });\r\n this.riskForm.categoryCustomTags = customTags;\r\n this.pickerChanged.emit(false);\r\n }\r\n\r\n saveSelectedOwnersList(ids: any) {\r\n this.activeDeselector();\r\n const selectedOwners = this.setList(this.ownersList, ids, 'member_id');\r\n this.riskForm.ownersList = selectedOwners;\r\n this.setOverseersList();\r\n this.pickerChanged.emit(false);\r\n }\r\n\r\n saveSelectedOverseersList(ids: any) {\r\n this.activeDeselector();\r\n const selectedOverseers = this.setList(this.overseersList, ids, 'member_id');\r\n this.riskForm.overseersList = selectedOverseers;\r\n this.pickerChanged.emit(false);\r\n }\r\n\r\n changeRiskAssessment(name: string): void {\r\n switch (name) {\r\n case 'subtract':\r\n if (this.riskForm.assessment_deadline_days > 1) {\r\n this.riskForm.assessment_deadline_days -= 1;\r\n this.setDate(this.riskForm.assessment_deadline_days);\r\n // this.riskAssessmentDeadlineDate = '';\r\n }\r\n break;\r\n case 'add':\r\n this.riskForm.assessment_deadline_days += 1;\r\n this.setDate(this.riskForm.assessment_deadline_days);\r\n // this.riskAssessmentDeadlineDate = '';\r\n break;\r\n\r\n }\r\n }\r\n\r\n setDate(days: number): void {\r\n if (days >= 0) {\r\n const miliseconds = days * 86400 * 1000;\r\n const d: number = new Date(\r\n new Date(Date.now()).toLocaleString('en-US', {\r\n timeZone: this.timezone,\r\n })\r\n ).getTime();\r\n this.date = new Date(d + miliseconds);\r\n }\r\n }\r\n\r\n changeRiskAssessmentDeadline(event: number): void {\r\n if (!isNaN(event)) {\r\n this.setDate(event);\r\n }\r\n }\r\n\r\n setList(list: any[], ids: any[], key: string) {\r\n const data: any = [];\r\n list.forEach((element: any) => {\r\n if (ids.includes(element[key])) {\r\n data.push(element);\r\n }\r\n });\r\n return data;\r\n }\r\n\r\n returnIds(list: any[], key: string) {\r\n return list.map(ele => { if (ele[key]) { return ele[key]; } });\r\n }\r\n\r\n submitRisk() {\r\n this.setPopupButtons();\r\n const valid = this.validateRisk();\r\n if (!valid) {\r\n return false;\r\n } else if (this.mode === 'EDIT' && this.editDetails.IfAssessmentDone > 0) {\r\n const prevRCArr = this.editDetails.rc_id;\r\n const currRCArr = this.returnIds(this.riskForm.responsibilityCentersList, 'rc_id');\r\n if (prevRCArr.length === currRCArr.length && prevRCArr.sort().every((value: any, index: any) => value === currRCArr.sort()[index])) {\r\n this.createRisk(this.riskForm);\r\n } else {\r\n const confirmationDetails: ConfirmationAlert = {\r\n isVisible: true,\r\n message: `The Responsibility Center(s) associated with this risk have been modified.\r\n This has caused the risk to move to the \"Identified & Assessed\" state and a new risk lifecycle for this risk is to begin.`,\r\n action: 'EDIT_RISK',\r\n };\r\n this.showConfirmationAlert.emit(confirmationDetails);\r\n }\r\n } else {\r\n this.createRisk(this.riskForm);\r\n }\r\n\r\n }\r\n\r\n addMoreInfo(event: any) {\r\n switch (event.name) {\r\n case 'Risk Overseer':\r\n this.riskForm.addOverseer = event?.checked;\r\n break;\r\n case 'Risk Mitigation Priority':\r\n this.riskForm.addMitigation = event?.checked;\r\n break;\r\n case 'Recommended Mitigation Plans':\r\n this.riskForm.addMitigationPlan = event?.checked;\r\n }\r\n this.scrollToBottom = true;\r\n }\r\n\r\n validateRisk() {\r\n this.submitted = true;\r\n const event = this.riskForm.title;\r\n const re = / |<br>/g;\r\n this.riskForm.title = event.replace(re, '').trim();\r\n if (!this.riskForm.title || this.riskForm.responsibilityCentersList.length == 0\r\n || this.riskForm.ownersList.length == 0 ||\r\n ((!this.settingsInfo.assessment_deadline_enable) && (this.riskForm?.assessment_deadline_days < 1) && this.riskForm?.riskType !== 'REPORTED') ||\r\n (this.riskForm.riskType === 'REPORTED' && !this.riskForm?.description?.trim()?.length)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n createRisk(riskForm: any) {\r\n this.loader = true;\r\n this.uiKitService.isLoader = false;\r\n const payload = {\r\n title: riskForm.title,\r\n description: riskForm.description,\r\n category_custom_tag: riskForm.categoryCustomTags,\r\n assessment_deadline_enable: this.settingsInfo.assessment_deadline_enable,\r\n owner: this.returnIds(riskForm.ownersList, 'member_id'),\r\n category: (riskForm.category?.selectedCategory?.category_id) ? [riskForm.category.selectedCategory.category_id] : [],\r\n manage_oversight: riskForm.addOverseer ? this.returnIds(riskForm.overseersList, 'member_id') : [],\r\n rc_id: this.returnIds(riskForm.responsibilityCentersList, 'item_id'),\r\n head_ids: riskForm.head_ids,\r\n rating_arr: [],\r\n member_id: this.memberId,\r\n organisation_id: this.organizationId,\r\n risk_progress_flag: (this.mode === 'EDIT') ? this.editDetails.risk_progress_flag : 1,\r\n IfAssessmentDone: (this.mode == 'EDIT') ? this.editDetails.IfAssessmentDone : 0,\r\n workshop_id: (this.mode == 'EDIT') ? this.editDetails.workshop_id : 0,\r\n complete_assessment: 0,\r\n mitigation: (riskForm.addMitigation) ? riskForm.mitigation : 0,\r\n weightage_enable: this.settingsInfo.weightage_enable,\r\n treatment_type: this.settingsInfo.treatment_criteria,\r\n weightage_details: this.settingsInfo.weightage_details,\r\n weightage_set_by: this.settingsInfo.weightage_set_by,\r\n weightage_str: [\r\n this.settingsInfo.weightage_details.impact.value,\r\n this.settingsInfo.weightage_details.likelihood.value,\r\n this.settingsInfo.weightage_details.velocity.value,\r\n this.settingsInfo.weightage_details.vulnerability.value,\r\n ],\r\n assessment_deadline_set_by: this.settingsInfo.assessment_deadline_set_by,\r\n assessment_deadline_days: (this.settingsInfo.assessment_deadline_enable) ? this.settingsInfo.assessment_deadline_days : riskForm.assessment_deadline_days,\r\n risk_type: this.riskForm?.riskType ?? 'NORMAL',\r\n mitigation_plan_recommendation: this.riskForm?.addMitigationPlan ? this.riskForm?.mitigationDescriptionPlan ?? '' : ''\r\n\r\n\r\n };\r\n if (this.mode == 'CREATE') {\r\n this.riskService.addRisk(payload).subscribe((res: any) => {\r\n console.log(res);\r\n this.riskData = res;\r\n this.riskId = res._id;\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.showSmiley = true;\r\n this.uiKitService.isSmileyOn = true;\r\n\r\n // this.resetForm();\r\n },\r\n err => {\r\n console.log(err);\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n }\r\n );\r\n }\r\n if (this.mode == 'EDIT' && this.openedFrom !== 'MOVE_TO_REGISTER') {\r\n this.smileyMessage = `The risk has been modified.`;\r\n this.riskService.updateRisk(this.riskId, payload).subscribe((res: any) => {\r\n this.riskData = res;\r\n this.showSmiley = true;\r\n this.uiKitService.isSmileyOn = true;\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n\r\n },\r\n err => {\r\n console.log(err);\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n }\r\n );\r\n }\r\n\r\n if (this.openedFrom === 'MOVE_TO_REGISTER') {\r\n this.closeWorkflow.emit({ evt: { action: 'MOVE_TO_REGISTER', payload }, confirm: false });\r\n }\r\n\r\n }\r\n\r\n resetForm() {\r\n this.scrollToBottom = false;\r\n this.showSmiley = false;\r\n this.uiKitService.isSmileyOn = false;\r\n this.riskForm = {\r\n title: '',\r\n description: '',\r\n riskType: this.riskForm?.riskType,\r\n addMitigationPlan: false,\r\n mitigationDescriptionPlan: '',\r\n responsibilityCentersList: [],\r\n ownersList: [],\r\n category: {\r\n type: 'strategic',\r\n selectedCategory: '',\r\n },\r\n categoryCustomTags: [],\r\n overseersList: [],\r\n mitigation: 0,\r\n assessment_deadline_days: 0,\r\n head_ids: [],\r\n addOverseer: false,\r\n addMitigation: false\r\n };\r\n this.nonRemovableUsersList = [];\r\n this.organizationId = this.authService.getOrganizationId();\r\n this.memberId = this.authService.getMemberId();\r\n this.nonRemovableUsersList.push(this.memberId);\r\n this.date = new Date();\r\n this.submitted = false;\r\n this.refreshForm.emit(true);\r\n\r\n this.populateOptionalFields();\r\n this.getOwnersList();\r\n }\r\n\r\n\r\n action(event: string) {\r\n switch (event) {\r\n case 'addMore':\r\n this.resetForm();\r\n this.populateOptionalFields();\r\n break;\r\n case 'viewRisks':\r\n this.viewRisks();\r\n break;\r\n case 'manageReportedRisk':\r\n this.redirectToReported();\r\n break;\r\n }\r\n }\r\n\r\n closeSmiley(event: any) {\r\n this.showSmiley = false;\r\n this.uiKitService.isSmileyOn = false;\r\n this.closeWorkflow.emit({ evt: this.riskData, confirm: false });\r\n }\r\n\r\n\r\n\r\n viewRisks(): void {\r\n this.disconnectRefresh.emit(false);\r\n let url: string;\r\n if (window.location.host.startsWith('localhost')) {\r\n url = 'http://' + window.location.host;\r\n } else {\r\n url = 'https://' + window.location.host;\r\n }\r\n\r\n if (window.location.host.startsWith('localhost')) {\r\n url += '/manage-risk/' + this.riskId;\r\n } else {\r\n url += '/risk/manage-risk/' + this.riskId;\r\n }\r\n window.location.href = url;\r\n //this.resetForm();\r\n }\r\n\r\n redirectToReported(): void {\r\n this.disconnectRefresh.emit(false);\r\n let url: string;\r\n if (window.location.host.startsWith('localhost')) {\r\n url = 'http://' + window.location.host;\r\n } else {\r\n url = 'https://' + window.location.host;\r\n }\r\n\r\n if (window.location.host.startsWith('localhost')) {\r\n url += '/reported-risk/';\r\n } else {\r\n url += '/risk/reported-risk/';\r\n }\r\n window.location.href = url;\r\n //this.resetForm();\r\n }\r\n checkDescription() {\r\n if (this.riskForm.description == '<br>') {\r\n this.riskForm.description = '';\r\n }\r\n }\r\n\r\n checkMitigationPlan() {\r\n if (this.riskForm.mitigationDescriptionPlan == '<br>') {\r\n this.riskForm.mitigationDescriptionPlan = '';\r\n }\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { retry } from 'rxjs/operators';\r\nimport { Configurations } from '../configurations';\r\nimport { AuthService } from './auth.service';\r\nimport { AssessmentList } from '../sharedComponents/assessment-list/service/assessment.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ResponsibilityService {\r\n env !: any;\r\n dataPerPage = 30;\r\n\r\n constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\r\n if (config) {\r\n this.env = config.envConfig;\r\n\r\n }\r\n }\r\n\r\n getResponsibilityCenterList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.complianceGet + 'responsibilityCenterTree', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getOrganizationGroups() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.organizationGet + 'groupsList&status=1&type=compliance', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getOrganizationUsers() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.organizationGet + 'organizationUsers', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getOrganizationPeople() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.organizationGet + 'people', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getAssignorsList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.organizationGet + 'organizationUsers&isOnBehalf=1', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getCategoriesList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.complianceGet + 'complianceCategory/CategoryListTree', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getAssurance() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.assuranceGet + 'category/list&id=1', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getAssuranceForRequiresAudit() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.assuranceApi + 'Audit/Category/List/?mode=entrust_module', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getRCDetailsOfFramework(rc_id:any, category_id:any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get(this.env.complianceGet + 'complianceCategory/CategoryRCTreeById&id=' + category_id + '&rc_id=' + rc_id, { headers });\r\n }\r\n\r\n submitEntrust(entrust_body:any){\r\n\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.compliancePost + 'createReport', entrust_body, {headers});\r\n }\r\n updateEntrust(entrust_body:any, object_id:any, isDelegate:any){\r\n\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.compliancePost + 'createReport&reportId=' + object_id + '&isDelegate=0', entrust_body, {headers});\r\n }\r\n \r\n editResponsibility(objectId:any){\r\n\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get(this.env.complianceGet + 'complianceReport/reportById&id=' + objectId , { headers }).pipe(retry(2));\r\n\r\n }\r\n\r\n addBulkResponsibility(entrust_body:any){\r\n\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.compliancePost + 'import/create', entrust_body, {headers}).pipe(retry(2));\r\n\r\n }\r\n\r\n uploadToNode(payload: any, des: any) {\r\n // const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n // return this.http.post<any[]>(this.env.fileUploadEndPoint + 'risk/responsibilityCenterList', { rc_id_arr: rcArray ?? [] }, { headers }).pipe(retry(2));\r\n return this.http.post<any>(this.env.fileUploadEndPoint + des, payload);\r\n }\r\n\r\n filesUploading: any[] = [];\r\n filesUploaded: any[] = [];\r\n filesUploadedAndUploading: any[] = [];\r\n\r\n\r\n getCategoryDetailsById(id: any) {\r\n\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.complianceGet + 'complianceCategory/CategoryTreeById&id='+id,\r\n { headers, }).pipe(retry(2));\r\n }\r\n\r\n fileUpload(file:any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.compliancePost + 'file/upload', file, {headers}).pipe(retry(2));\r\n }\r\n\r\n \r\n getAssessmentCategory(payload: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.assessmentEnpoint + 'category/list&isCreateResponsibility=true', payload, {headers}).pipe(retry(2));\r\n }\r\n\r\n getAssessmentList(payload: any, id: string) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post<Array<AssessmentList>>(this.env.assessmentEnpoint + 'assessment/selectAssessment&isCreateResponsibility=true&catid='+id, payload, {headers}).pipe(retry(2));\r\n }\r\n\r\n getAssessmentDetailsByID(id: string) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post<Array<AssessmentList>>(this.env.assessmentEnpoint + 'assessment/getAssessmentById&id='+id, {}, {headers}).pipe(retry(2));\r\n }\r\n\r\n\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, map, retry } from 'rxjs/operators';\r\nimport { Configurations} from \"../../configurations\";\r\nimport { AuthService } from \"../../workflow-services/auth.service\";\r\nimport * as moment from 'moment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FrequencyService {\r\n\r\n public monthArray: Array<string> = [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December'\r\n ]\r\n\r\n public dayName: Array<string> = [\r\n 'Monday', \r\n 'Tuesday', \r\n 'Wednesday', \r\n 'Thursday', \r\n 'Friday', \r\n 'Saturday', \r\n 'Sunday'\r\n ]; // full day name\r\n\r\n public quarterlyMonth: Array<string> = [\r\n 'January, April, July, October', \r\n 'February, May, August, November', \r\n 'March, June, September, December'];\r\n\r\n public dateConfig = {\r\n format: \"DD MMM YYYY\",\r\n showGoToCurrent: false\r\n };\r\n\r\n public frequencyInfo = {\r\n placeholder: '',\r\n pattern: '',\r\n case: '',\r\n failedAfter: 0,\r\n window: 0,\r\n timeIn12hr: '',\r\n timeIn24Hr: '',\r\n lifecycleDetails: '0000-00-00~~0',\r\n startFrom: Math.floor(Date.now() / 1000),\r\n reportId: 0,\r\n failed_time_utc: Math.floor(Date.now() / 1000),\r\n continuous_failed_days: 0,\r\n dateOfModified: 0,\r\n startDate: '',\r\n };\r\n\r\n public frequencyDetails: object = {\r\n pattern: '',\r\n notificationPending: 0,\r\n dateOfModified: 0,\r\n deactivationValue: 0,\r\n selectedReport: 0,\r\n lifecycle: '0000-00-00~~0',\r\n startDate: Math.floor(new Date().getTime() /1000),\r\n startOnTheDay: Math.floor(new Date().getTime() /1000),\r\n window: 0,\r\n failed: 0,\r\n time: '11:59 pm'\r\n };\r\n\r\n private env !: any;\r\n constructor( \r\n private http: HttpClient, \r\n private authService: AuthService, \r\n @Optional() config?: Configurations) { \r\n if (config) {\r\n this.env = config.envConfig;\r\n \r\n }\r\n }\r\n\r\n timeFrom12hTo24h(value: string) {\r\n if (value != undefined) {\r\n const time_arr = value.split(' ');\r\n const meridian = time_arr[1];\r\n const hr_min = time_arr[0].split(':').map(Number);\r\n const hr = hr_min[0];\r\n const min = hr_min[1];\r\n\r\n let return_time = '';\r\n\r\n if (meridian.toLowerCase() == 'pm') {\r\n if (hr == 12) {\r\n return_time = 12 + ':' + min + ':00';\r\n } else if (hr < 12) {\r\n return_time = +hr + 12 + ':' + min + ':00';\r\n }\r\n } else {\r\n if (hr == 12) {\r\n return_time = '00:' + min + ':00';\r\n } else if (hr < 12) {\r\n return_time = hr + ':' + min + ':00';\r\n }\r\n }\r\n\r\n return return_time;\r\n } else {\r\n }\r\n }\r\n\r\n timeIn12(value: any) {\r\n if (value != undefined) {\r\n let hr;\r\n let min;\r\n let meridian;\r\n if (value.split(':')[0] >= 12) {\r\n hr = value.split(':')[0] === '12' ? 12 : value.split(':')[0] - 12;\r\n min = value.split(':')[1];\r\n if(min.length < 2) {\r\n min = \"0\" + min;\r\n }\r\n meridian = 'pm';\r\n } else {\r\n hr = value.split(':')[0] == '00' ? 12 : value.split(':')[0];\r\n min = value.split(':')[1];\r\n if(min.length < 2) {\r\n min = \"0\" + min;\r\n }\r\n meridian = 'am';\r\n }\r\n return hr + ':' + min + ' ' + meridian;\r\n } else {\r\n }\r\n }\r\n\r\n frameworkStartDate(row: any) {\r\n console.log('row....', row);\r\n let calculatedDay:number = 0;\r\n const startDate = new Date(parseInt(row.start_date) * 1000).getDay();\r\n const getDate = new Date(parseInt(row.start_date) * 1000).getDate();\r\n const currentDate = new Date().getDay();\r\n const startMonth = new Date(parseInt(row.start_date) * 1000).getMonth();\r\n\r\n if (\r\n parseInt(row.start_date) < Date.now() / 1000 &&\r\n (row.frequency_template === 'every week' || row.frequency_template === 'every 2 weeks' || row.frequency_template === 'every 3 weeks')\r\n ) {\r\n let daysToBeAdded = 0;\r\n for (let i = 0; i < 7; i++) {\r\n if ((currentDate + i) % 7 === startDate) {\r\n daysToBeAdded = i;\r\n break;\r\n }\r\n }\r\n const timestampToBeAdded = daysToBeAdded * 24 * 60 * 60 * 1000;\r\n calculatedDay = new Date(new Date().getTime() + timestampToBeAdded).getTime();\r\n console.log('calculatedDay 1', calculatedDay);\r\n // tslint:disable-next-line: max-line-length\r\n } else if (\r\n parseInt(row.start_date) < Date.now() / 1000 &&\r\n !(row.frequency_template === 'every week' || row.frequency_template === 'every 2 weeks' || row.frequency_template === 'every 3 weeks') &&\r\n row.frequency_template !== 'every day'\r\n ) {\r\n const momentUnix = moment(getDate + '-' + (new Date().getMonth() + 1) + '-' + new Date().getFullYear() + ' 00:00', 'DD-MM-YYYY HH:mm').unix();\r\n calculatedDay = momentUnix * 1000;\r\n console.log('getDate', getDate, new Date().getMonth() + 2 + '-' + new Date().getFullYear(), momentUnix);\r\n console.log('calculatedDay 2', calculatedDay);\r\n } else if (row.frequency_template === 'every day' && parseInt(row.start_date) < Date.now() / 1000) {\r\n calculatedDay = Date.now();\r\n console.log('calculatedDay 3', calculatedDay);\r\n } else {\r\n calculatedDay = parseInt(row.start_date) * 1000;\r\n console.log('calculatedDay 4', calculatedDay);\r\n }\r\n return calculatedDay / 1000;\r\n }\r\n\r\n frameworkFrequency(frequency: any, start_date: any) {\r\n try {\r\n console.log('frequency', frequency, start_date);\r\n const startDate = new Date(start_date * 1000);\r\n console.log('strat date', start_date, startDate);\r\n const firstHalfMonth = ['1', '2', '3', '4', '5', '6'];\r\n const secondHalfMonth = ['7', '8', '9', '10', '11', '12'];\r\n const getDayData = startDate.getDay() === 0 ? 7 : startDate.getDay();\r\n const month = startDate.getMonth();\r\n let quarterPattern = '~1,4,7,10~0';\r\n switch (month) {\r\n case 0:\r\n case 3:\r\n case 6:\r\n case 9:\r\n quarterPattern = '~1,4,7,10~0';\r\n break;\r\n case 1:\r\n case 4:\r\n case 7:\r\n case 10:\r\n quarterPattern = '~2,5,8,11~0';\r\n break;\r\n case 2:\r\n case 5:\r\n case 8:\r\n case 11:\r\n quarterPattern = '~3,6,9,12~0';\r\n break;\r\n }\r\n // ];\r\n let frequency_pattern;\r\n\r\n frequency = frequency.toLowerCase();\r\n let continuous_failed_days = 0;\r\n // @ => day (1 to 7)\r\n // # => month (1 to 12)\r\n // ? => month % 2 == 0 ? \"2,4,6,8,10,12\" : \"1,3,5,7,9,11\"\r\n\r\n if (frequency === 'every week') {\r\n frequency_pattern = '2~' + getDayData + '~0~1';\r\n continuous_failed_days = 10;\r\n } else if (frequency === 'one time') {\r\n frequency_pattern = '0~' + startDate.getFullYear() + '~' + (startDate.getMonth() + 1) + '~' + startDate.getDate();\r\n } else if (frequency === 'every day') {\r\n frequency_pattern = '1~0~0~1';\r\n continuous_failed_days = 15;\r\n } else if (frequency === 'every alternate day') {\r\n frequency_pattern = '1~0~0~2';\r\n continuous_failed_days = 15;\r\n } else if (frequency === 'every 10 days') {\r\n frequency_pattern = '1~0~0~10';\r\n continuous_failed_days = 15;\r\n } else if (frequency === 'every 2 weeks') {\r\n frequency_pattern = '2~' + getDayData + '~0~2';\r\n continuous_failed_days = 10;\r\n } else if (frequency === 'every fortnight') {\r\n frequency_pattern = '1~' + getDayData + '~0~14';\r\n continuous_failed_days = 15;\r\n } else if (frequency === 'every 3 weeks') {\r\n frequency_pattern = '2~' + getDayData + '~0~3';\r\n continuous_failed_days = 10;\r\n } else if (frequency === 'every month') {\r\n frequency_pattern = '3~' + startDate.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';\r\n continuous_failed_days = 10;\r\n } else if (frequency === 'every 45 days') {\r\n frequency_pattern = '1~0~0~45';\r\n continuous_failed_days = 15;\r\n } else if (frequency === 'every alternate month') {\r\n frequency_pattern = '3~' + startDate.getDate() + '~' + ((startDate.getMonth() + 1) % 2 == 0 ? '2,4,6,8,10,12' : '1,3,5,7,9,11') + '~0';\r\n continuous_failed_days = 10;\r\n } else if (frequency === 'every quarter') {\r\n frequency_pattern = '7~' + startDate.getDate() + quarterPattern;\r\n } else if (frequency === 'every 120 days') {\r\n frequency_pattern = '1~0~0~120';\r\n } else if (frequency === 'half yearly') {\r\n const index1 = firstHalfMonth.indexOf((startDate.getMonth() + 1).toString());\r\n const index2 = secondHalfMonth.indexOf((startDate.getMonth() + 1).toString());\r\n const pattern = index1 > -1 ? '~' + firstHalfMonth[index1] + ',' + secondHalfMonth[index1] + '~0' : '~' + firstHalfMonth[index2] + ',' + secondHalfMonth[index2] + '~0';\r\n frequency_pattern = '3~' + startDate.getDate() + pattern;\r\n continuous_failed_days = 10;\r\n } else if (frequency === 'yearly') {\r\n frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~1';\r\n } else if (frequency === 'every 2 years') {\r\n frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~2';\r\n } else if (frequency === 'every 3 years') {\r\n frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~3';\r\n } else if (frequency === 'every 4 years') {\r\n frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~4';\r\n } else if (frequency === 'every 5 years') {\r\n frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~5';\r\n } else if (frequency === 'every 10 years') {\r\n frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~10';\r\n } else if (frequency === 'to be decided later') {\r\n frequency_pattern = '';\r\n } else {\r\n frequency_pattern = '';\r\n }\r\n // this.editData.frequency_details = frequency_pattern;\r\n\r\n return {frequency_pattern, continuous_failed_days};\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n shortHand_freqCal(frequency: any, day: any, month: any, year?: any) {\r\n const monthNames = [\r\n { value: 1, month: 'Jan' },\r\n { value: 2, month: 'Feb' },\r\n { value: 3, month: 'Mar' },\r\n { value: 4, month: 'Apr' },\r\n { value: 5, month: 'May' },\r\n { value: 6, month: 'Jun' },\r\n { value: 7, month: 'Jul' },\r\n { value: 8, month: 'Aug' },\r\n { value: 9, month: 'Sep' },\r\n { value: 10, month: 'Oct' },\r\n { value: 11, month: 'Nov' },\r\n { value: 12, month: 'Dec' },\r\n ];\r\n let frequency_details;\r\n let continuous_failed_days = 0;\r\n const date_value = new Date();\r\n\r\n date_value.setMonth(typeof month !== 'number' ? monthNames.filter((x) => x.month === month?.substring(0, 3))[0]?.value - 1 : month);\r\n if (!year) {\r\n date_value.setFullYear(20 + month.split(\"'\")[1]);\r\n } else {\r\n date_value.setFullYear(year);\r\n }\r\n date_value.setDate(day);\r\n let quarterPattern = '~1,4,7,10~0';\r\n const firstHalfMonth = ['1', '2', '3', '4', '5', '6'];\r\n const secondHalfMonth = ['7', '8', '9', '10', '11', '12'];\r\n frequency = frequency.toLowerCase();\r\n\r\n switch (date_value.getMonth()) {\r\n case 0:\r\n case 3:\r\n case 6:\r\n case 9:\r\n quarterPattern = '~1,4,7,10~0';\r\n break;\r\n case 1:\r\n case 4:\r\n case 7:\r\n case 10:\r\n quarterPattern = '~2,5,8,11~0';\r\n break;\r\n case 2:\r\n case 5:\r\n case 8:\r\n case 11:\r\n quarterPattern = '~3,6,9,12~0';\r\n break;\r\n }\r\n const getDay = date_value.getDay() === 0 ? 7 : date_value.getDay();\r\n switch (frequency) {\r\n case 'every week':\r\n frequency_details = '2~' + getDay + '~0~1';\r\n continuous_failed_days = 10;\r\n break;\r\n case 'one time':\r\n frequency_details = '0~' + '' + date_value.getFullYear() + '~' + (date_value.getMonth() + 1) + '~' + date_value.getDate();\r\n break;\r\n case 'every day':\r\n frequency_details = '1~0~0~1';\r\n continuous_failed_days = 15;\r\n break;\r\n case 'every alternate day':\r\n frequency_details = '1~0~0~2';\r\n continuous_failed_days = 15;\r\n break;\r\n case 'every 10 days':\r\n frequency_details = '1~0~0~10';\r\n continuous_failed_days = 15;\r\n break;\r\n case 'every 2 weeks':\r\n frequency_details = '2~' + getDay + '~0~2';\r\n continuous_failed_days = 10;\r\n break;\r\n case 'every fortnight':\r\n frequency_details = '1~' + getDay + '~0~14';\r\n continuous_failed_days = 15;\r\n break;\r\n case 'every 3 weeks':\r\n frequency_details = '2~' + getDay + '~0~3';\r\n continuous_failed_days = 10;\r\n break;\r\n case 'every month':\r\n frequency_details = '3~' + date_value.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';\r\n continuous_failed_days = 10;\r\n break;\r\n case 'every 45 days':\r\n frequency_details = '1~0~0~45';\r\n continuous_failed_days = 15;\r\n break;\r\n case 'every alternate month':\r\n 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';\r\n continuous_failed_days = 10;\r\n break;\r\n case 'every quarter':\r\n frequency_details = '7~' + date_value.getDate() + quarterPattern;\r\n break;\r\n case 'every 120 days':\r\n frequency_details = '1~0~0~120';\r\n continuous_failed_days = 15;\r\n break;\r\n case 'half yearly':\r\n const index1 = firstHalfMonth.indexOf((date_value.getMonth() + 1).toString());\r\n const index2 = secondHalfMonth.indexOf((date_value.getMonth() + 1).toString());\r\n const pattern = index1 > -1 ? '~' + firstHalfMonth[index1] + ',' + secondHalfMonth[index1] + '~0' : '~' + firstHalfMonth[index2] + ',' + secondHalfMonth[index2] + '~0';\r\n frequency_details = '3~' + date_value.getDate() + pattern;\r\n break;\r\n case 'annual':\r\n case 'yearly':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~1';\r\n break;\r\n case 'every 2 years':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~2';\r\n break;\r\n case 'every 3 years':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~3';\r\n break;\r\n case 'every 4 years':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~4';\r\n break;\r\n case 'every 5 years':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~5';\r\n break;\r\n case 'every 10 years':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~10';\r\n break;\r\n case 'ongoing':\r\n frequency_details = '10~0~0~0';\r\n break;\r\n case 'to be decided later':\r\n default:\r\n frequency_details = '5~0~0~0';\r\n }\r\n return {\r\n pattern: frequency_details,\r\n continuous_failed_days: continuous_failed_days \r\n }\r\n }\r\n\r\n\r\n getOnCompletionOfResponsibility() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env.complianceGet + 'reports/onCompletionOfReports', { headers })\r\n .pipe(retry(2));\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { cloneDeep } from 'lodash';\r\nimport { EditorConfig } from 'vcomply-editor';\r\nimport { AuthService } from '../workflow-services/auth.service';\r\nimport { ResponsibilityService } from '../workflow-services/responsibility.service';\r\nimport { FrequencyService } from '../sharedComponents/frequency/frequency.service';\r\nimport * as moment from 'moment';\r\nimport { UiKitService } from '../workflow-services/ui-kit.service';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-workflow-compliance',\r\n templateUrl: './workflow-compliance.component.html',\r\n styleUrls: ['./workflow-compliance.component.less', '../forms.less'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n\r\n})\r\nexport class WorkflowComplianceComponent implements OnInit {\r\n @Input() mode = 'CREATE';\r\n @Input() responsibilityId = '';\r\n @Input() frameworkDetails: Array<any> = [];\r\n @Input() isEntrust: boolean = true;\r\n\r\n @Output() pickerChanged = new EventEmitter();\r\n @Output() populateOption = new EventEmitter();\r\n @Output() hideElementsFromMoreOptions = new EventEmitter();\r\n @Output() closeWorkflow = new EventEmitter();\r\n @Output() resetForm = new EventEmitter();\r\n @Output() disconnectRefresh = new EventEmitter();\r\n @Output() checkpointCountUpdated = new EventEmitter();\r\n @Output() rcSelected = new EventEmitter();\r\n @Input() openedFrom !: any; //when opened from risk treatment it will be 'RISK_TREATMENT'\r\n @Input() selectedRC: number = 0; // 4-5 digit id of selected rc by default when opened from risk treatment\r\n scrollToBottom = false;\r\n description: EditorConfig = {\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Add more information about completing the responsibility',\r\n };\r\n loader = false;\r\n submitted = false;\r\n editDetails!: any;\r\n smileyMessage = `Done!`;\r\n actionButtons = [\r\n { buttonText: 'Entrust More Responsibilities', class: 'white-btn', id: 'addMore' },\r\n { buttonText: 'View Responsibilities', class: 'blue-btn', id: 'view' },\r\n ];\r\n showSmiley = false;\r\n memberId = 0;\r\n organizationId = 0;\r\n rcListLoaded = false;\r\n assignorsListLoaded = false;\r\n assigneesListLoaded = false;\r\n categoriesListLoaded = false;\r\n groupsListLoaded = false;\r\n assuranceCategoryListLoaded = false;\r\n\r\n\r\n // usersList: any[] = [];\r\n assignorsList: any[] = [];\r\n assigneesList: any[] = [];\r\n reviewersList: any[] = [];\r\n overseersList: any[] = [];\r\n\r\n allUsersList: any[] = [];\r\n behalfOfUsersList: any[] = [];\r\n\r\n allCategories: any[] = [];\r\n assuranceCategoriesList: any[] = [];\r\n assuranceRequiresAuditList: any[] = [];\r\n groupsList: any[] = [];\r\n\r\n adminsList: any[] = [];\r\n responsibilityCentersList: any[] = [];\r\n categoryList: any[] = [];\r\n nonRemovableUsersList: any[] = [];\r\n\r\n responsibilityForm: any = {\r\n assignors: {\r\n enable: false,\r\n list: []\r\n },\r\n responsibility: {\r\n name: '',\r\n keyResponsibility: false,\r\n },\r\n assignees: {\r\n whoCanComplete: 'ALL',\r\n list: []\r\n },\r\n frequency: '',\r\n description: '',\r\n objective: '',\r\n rc: [],\r\n category: [],\r\n checkpointInstruction: '',\r\n customTags: [],\r\n checkpoints: [],\r\n reviewers: {\r\n sequentialWorkflow: true,\r\n reviewFrequency: {\r\n reviewCompleteDays: 2,\r\n reviewNOtCompletedDays: 2\r\n },\r\n list: []\r\n },\r\n\r\n overseers: {\r\n notifyList: [],\r\n list: []\r\n },\r\n formatAndEvidence: {\r\n formatRequired: false,\r\n formatFiles: [],\r\n formatLinks: [],\r\n evidenceRequired: false,\r\n },\r\n assuranceList: [],\r\n requiresAuditList: [],\r\n riskClass: 1,\r\n riskMatrix: '0,0,0,0,0,0',\r\n audit_category_details : {\r\n category_id: 0,\r\n sample: 5,\r\n percentage: 30 ,\r\n frequency_pattern: '1~0~3~1',\r\n frequency_time: '23:59:00'\r\n },\r\n assessment: {\r\n category_id: '', assessment_id: ''\r\n },\r\n new_checkpoints: {}\r\n };\r\n moreOptions: any = {\r\n OBJECTIVE: false,\r\n RC: false,\r\n CATEGORY: false,\r\n FORMATE_EVIDENCE: false,\r\n CHECKPOINTS: false,\r\n ASSESSMENT: false,\r\n RISK_CLASSIFICATION: false,\r\n REVIEWER: false,\r\n OVERSEER: false,\r\n ASSURANCE: false,\r\n APPS: false,\r\n REQUIRES_AUDIT: false,\r\n CHECKPOINTS_NEW: false\r\n };\r\n activeSelector = '';\r\n sideSelectorElements: any = ['assurance', 'framework', 'assignors', 'assignees', 'category', 'rc', 'checkpoints', 'frequency', 'reviewer', 'reviewerFrequency', 'overseer', 'overseerNotify', 'riskCalculator', 'isAssessment','requires_audit', 'checkpoints-new'];\r\n displayList = {\r\n // assignors: false,\r\n // assignees: false,\r\n // category: false,\r\n // responsibilityCenter: false,\r\n // responsibilityCategory: false,\r\n // checkpoints: false,\r\n // reviewer: false,\r\n // reviewerFrequency: false,\r\n // overseerList: false,\r\n // overseerNotifyList: false,\r\n // frequency: false,\r\n // frameWork: false,\r\n // assurance: false,\r\n // riskCalculator: false,\r\n };\r\n\r\n focus = {\r\n responsibilityName: false,\r\n description: false,\r\n objective: false,\r\n };\r\n\r\n categories: any = {\r\n regulations: {\r\n list: [],\r\n selectedList: []\r\n },\r\n standards: {\r\n list: [],\r\n selectedList: []\r\n },\r\n internalControls: {\r\n list: [],\r\n selectedList: []\r\n },\r\n others: {\r\n list: [],\r\n selectedList: []\r\n }\r\n };\r\n\r\n riskClassification = [\r\n { name: 'Low', value: 1, class: 'low' },\r\n { name: 'Low-Medium', value: 2, class: 'low-med' },\r\n { name: 'Medium-High', value: 3, class: 'med-high' },\r\n { name: 'High', value: 4, class: 'high' }\r\n ];\r\n\r\n assignorMode = 'checkbox';\r\n rcMode = 'checkbox';\r\n invalidType = '';\r\n responsibilityPayload!: any;\r\n assigneeRadioSelect = false;\r\n\r\n // frequency variable declaration\r\n frequencyDetails = {\r\n pattern: '',\r\n notificationPending: 0,\r\n dateOfModified: 0,\r\n deactivationValue: 0,\r\n selectedReport: 0,\r\n lifecycle: '0000-00-00~~0',\r\n startDate: Math.floor(new Date().getTime() / 1000),\r\n startOnTheDay: Math.floor(new Date().getTime() / 1000),\r\n window: 0,\r\n failed: 0,\r\n time: '11:59 pm',\r\n failedTime: '',\r\n continuous_failed_days: 0\r\n };\r\n frequencyPlaceholder = 'How often does the responsibility occur?';\r\n shortMonth: Array<string> = [];\r\n isEditWhat: Boolean = true;\r\n isFrameworkAvailable = 1;\r\n isNotificationPending = 0;\r\n\r\n assuranceFlag!: any;\r\n riskClassificationFlag!: any;\r\n hiddenList: any[] = [];\r\n subscriptionDetails!: any;\r\n isRiskEnable: boolean = true;\r\n isDuplicateEntrust: boolean = false;\r\n auditTime: string = '11:59 pm';\r\n sendAuditRemindersValue: number = 2;\r\n sampleValue: any;\r\n samplePercentage: any;\r\n selectedSample!: number;\r\n isSample: boolean = false;\r\n tempCheckValue: number = -1;\r\n isAssessment: boolean = false;\r\n checkpointCount: number = 0;\r\n\r\n @Output() onRemovingCheckpoint: EventEmitter<any> = new EventEmitter();\r\n @Output() isAssessmentDisabled = new EventEmitter();\r\n\r\n @ViewChild('what') whatInput!: ElementRef;\r\n constructor(\r\n private authService: AuthService,\r\n private responsibilityService: ResponsibilityService,\r\n private frequencyService: FrequencyService,\r\n private uiKitService: UiKitService,\r\n private snackBar: SnackBarService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.pickerChanged.emit(false);\r\n // this.responsibilityForm.responsibility.name = \"abcdef\"\r\n this.loader = true;\r\n this.uiKitService.isLoader = true;\r\n this.hiddenList.push('ASSESSMENT');\r\n this.getRCList();\r\n this.getCategoryList();\r\n this.getAssignorsList();\r\n this.getAssigneesList();\r\n this.getAssurance();\r\n this.getAssuranceForRequiresAudit();\r\n this.getGroupsList();\r\n this.checkWhetherAllListsLoaded();\r\n this.getOrganizationDetails();\r\n this.getUserDetails();\r\n this.shortMonth = this.frequencyService.monthArray.map(month => month.substring(0, 3));\r\n if (this.mode === 'CREATE') {\r\n this.organizationId = this.authService.getOrganizationId();\r\n console.log(\" this.authService.getMemberId() ==>\", this.authService.getMemberId())\r\n this.memberId = this.authService.getMemberId();\r\n this.hiddenList.push('CHECKPOINTS');\r\n }\r\n this.authService.getOrganizationDetails().subscribe((res: any) => {\r\n this.isRiskEnable = res.enable_riskclass ? true : false;\r\n if (!res.enable_riskclass) {\r\n this.hiddenList.push('RISK_CLASSIFICATION');\r\n this.hideElementsFromMoreOptions.emit(this.hiddenList);\r\n }\r\n });\r\n this.authService.getSubscriptionDetails().subscribe((res: any) => {\r\n this.subscriptionDetails = res;\r\n console.log(\"this.subscriptionDetails.assessment_flag\", this.subscriptionDetails)\r\n if(this.subscriptionDetails[0].assessment_flag) {\r\n this.hiddenList = this.hiddenList.filter(ele => ele !== 'ASSESSMENT')\r\n this.hideElementsFromMoreOptions.emit(this.hiddenList);\r\n }\r\n });\r\n this.hideElementsFromMoreOptions.emit(this.hiddenList);\r\n }\r\n activateSelector(type: any, event: boolean) {\r\n console.log(\"type ==>\", type, event)\r\n this.activeSelector = event ? type : '';\r\n if(type === 'checkpoints-new') this.authService.previewPanel.next(event);\r\n if (this.sideSelectorElements.includes(type)) {\r\n this.pickerChanged.emit(event);\r\n }\r\n }\r\n\r\n whatChanged(event: any) {\r\n\r\n this.responsibilityForm.responsibility.name = event?.target?.value;\r\n if (event.target.value.trim() !== '') {\r\n this.isEditWhat = true;\r\n if (this.invalidType === 'what') {\r\n this.invalidType = '';\r\n }\r\n } else {\r\n this.isEditWhat = false;\r\n }\r\n\r\n }\r\n\r\n activeDeselector() {\r\n this.activeSelector = '';\r\n this.pickerChanged.emit(false);\r\n }\r\n\r\n addMoreInfo(event: any) {\r\n console.log(\"event ==>\", event)\r\n this.scrollToBottom = true;\r\n if(event.code === 'CHECKPOINTS_NEW' && event.checkpoint_new && this.checkpointCount) {\r\n\r\n } else {\r\n this.moreOptions[event.code] = event.checked;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n getRCList() {\r\n this.responsibilityService.getResponsibilityCenterList().subscribe(res => {\r\n this.responsibilityCentersList = res;\r\n this.rcListLoaded = true;\r\n\r\n if (this.openedFrom === 'RISK_TREATMENT') {\r\n this.responsibilityForm.rc = this.setList(this.responsibilityCentersList, [this.selectedRC], 'item_id');\r\n this.moreOptions.RC = true;\r\n this.actionButtons = [\r\n { buttonText: 'Go to risk treatment', class: 'blue-btn', id: 'view' },\r\n ]\r\n this.populateOption.emit(['RC']);\r\n\r\n }\r\n }, err => {\r\n console.error(err);\r\n this.rcListLoaded = true;\r\n });\r\n }\r\n\r\n getUserDetails() {\r\n this.authService.getUserInfo().subscribe((res: any) => {\r\n this.isNotificationPending = res.notification_pending_flag;\r\n this.actionButtons[1].buttonText = this.isNotificationPending ? 'View Responsibilities in Queue' : 'View Responsibilities';\r\n })\r\n }\r\n\r\n getAssurance() {\r\n this.assuranceCategoryListLoaded = true;\r\n this.responsibilityService.getAssurance().subscribe((res: any) => {\r\n this.assuranceCategoriesList = res;\r\n if ((this.subscriptionDetails && !this.subscriptionDetails[0].assurance_flag) || this.assuranceCategoriesList.length == 0) {\r\n this.hiddenList.push('ASSURANCE');\r\n }\r\n this.hideElementsFromMoreOptions.emit(this.hiddenList);\r\n this.assuranceCategoryListLoaded = true;\r\n }, err => {\r\n console.error(err);\r\n this.assuranceCategoryListLoaded = true;\r\n });\r\n }\r\n\r\n getAssuranceForRequiresAudit() {\r\n // this.assuranceCategoryListLoaded = true;\r\n this.responsibilityService.getAssuranceForRequiresAudit().subscribe((res: any) => {\r\n this.assuranceRequiresAuditList = res;\r\n if ((this.subscriptionDetails && !this.subscriptionDetails[0].audit_flag) || this.assuranceRequiresAuditList.length == 0) {\r\n this.hiddenList.push('REQUIRES_AUDIT');\r\n }\r\n this.hideElementsFromMoreOptions.emit(this.hiddenList);\r\n // this.assuranceCategoryListLoaded = true;\r\n }, err => {\r\n console.error(err);\r\n // this.assuranceCategoryListLoaded = true;\r\n });\r\n }\r\n\r\n getOrganizationDetails() {\r\n this.authService.getOrganizationDetails().subscribe((res: any) => {\r\n this.isFrameworkAvailable = res?.enable_responsibility_framework;\r\n })\r\n }\r\n\r\n getCategoryList() {\r\n this.loader = true;\r\n this.uiKitService.isLoader = true;\r\n this.responsibilityService.getCategoriesList().subscribe(res => {\r\n const data = res;\r\n this.allCategories = cloneDeep(res);\r\n data.forEach((element: any) => {\r\n if (element && element.compliance_type == 0) {\r\n this.categories.others.list.push(element);\r\n }\r\n if (element && element.compliance_type == 1) {\r\n this.categories.regulations.list.push(element);\r\n }\r\n if (element && element.compliance_type == 2) {\r\n this.categories.standards.list.push(element);\r\n }\r\n if (element && element.compliance_type == 3) {\r\n this.categories.internalControls.list.push(element);\r\n }\r\n });\r\n this.categoriesListLoaded = true;\r\n }, err => {\r\n console.error(err);\r\n this.categoriesListLoaded = true;\r\n });\r\n }\r\n\r\n getAssignorsList() {\r\n this.responsibilityService.getAssignorsList().subscribe((res: any) => {\r\n this.behalfOfUsersList = res;\r\n this.refreshAllLists();\r\n this.assignorsListLoaded = true;\r\n }, err => {\r\n console.error(err);\r\n this.assignorsListLoaded = true;\r\n });\r\n }\r\n\r\n getAssigneesList() {\r\n this.responsibilityService.getOrganizationPeople().subscribe((res: any) => {\r\n this.allUsersList = res.map((user: any) => {\r\n user.member_name = user.employee_name;\r\n return user;\r\n });\r\n this.refreshAllLists();\r\n this.assigneesListLoaded = true;\r\n }, err => {\r\n console.error(err);\r\n this.assigneesListLoaded = true;\r\n });\r\n }\r\n\r\n getGroupsList() {\r\n this.responsibilityService.getOrganizationGroups().subscribe((res: any) => {\r\n const data = res;\r\n const groups: any = [];\r\n data.forEach((element: any) => {\r\n const obj = {\r\n groupName: element.group_name,\r\n userIds: element.member_ids,\r\n };\r\n groups.push(obj);\r\n });\r\n this.groupsList = groups;\r\n this.groupsListLoaded = true;\r\n }, err => {\r\n console.error(err);\r\n this.groupsListLoaded = true;\r\n });\r\n }\r\n\r\n getEditResponsibilityDetails(id: any) {\r\n\r\n this.responsibilityService.editResponsibility(id).subscribe((res: any) => {\r\n this.isDuplicateEntrust = true;\r\n if (res) {\r\n const currentUser = this.authService.getUserDetails()?.user;\r\n const currentsUerInfo = {\r\n member_email: currentUser?.email,\r\n member_id: currentUser.id,\r\n member_name: currentUser.name,\r\n organisation_id: currentUser.organisation_id,\r\n _id: this.authService.getUserDetails()._id\r\n }\r\n console.log(\"currentsUerInfocurrentsUerInfo\", currentsUerInfo, this.authService.getUserDetails())\r\n const testPlanCategory = typeof (res?.testplan_category_id) === 'string' ? [] : res?.testplan_category_id;\r\n const requiredAuditCategoryId = res?.audit_category_details?.category_id ? [res?.audit_category_details?.category_id] : [];\r\n const reviewerDetails = Object.keys(res?.reviewer_arr);\r\n this.assigneeRadioSelect = (res?.assigned_to_member_id?.length == 0) ? true : false;\r\n this.isEntrust = res.isGroupAssignTo ? true : false;\r\n this.responsibilityForm = {\r\n assignors: {\r\n enable: false,\r\n list: this.setList(this.assignorsList, [res.member_id], 'member_id').length > 0 ? this.setList(this.assignorsList, [res.member_id], 'member_id') : [currentsUerInfo],\r\n },\r\n responsibility: {\r\n name: res?.report_name,\r\n keyResponsibility: res?.key_compliance,\r\n },\r\n assignees: {\r\n whoCanComplete: (res.isGroupAssignTo) ? 'ANY_ONE' : 'ALL',\r\n list: (res.assigned_to_member_id.length == 0) ? this.setList(this.assigneesList, [Number(res.assigned_to)], 'employee_id') :\r\n this.setList(this.assigneesList, res.assigned_to_member_id, 'my_member_id'),\r\n },\r\n frequency: res?.frequency_details,\r\n description: res?.remarks,\r\n objective: res?.objective,\r\n rc: this.setList(this.responsibilityCentersList, [Number(res?.rc_id)], 'rc_id'),\r\n category: this.setList(this.allCategories, (res?.category_id.split(',').map(Number)), 'category_id'),\r\n checkpointInstruction: res?.checkpoint_description,\r\n customTags: (res?.custom_tags) ? JSON.parse(res?.custom_tags) : '',\r\n checkpoints: (res?.checkpoint_details) ? JSON.parse(res?.checkpoint_details) : '',\r\n reviewers: {\r\n sequentialWorkflow: (res?.reviewer_arr?.level1?.type == 'SEQUENTIAL') ? true : false,\r\n reviewFrequency: {\r\n reviewCompleteDays: (reviewerDetails?.length > 0) ? res?.review_after_days : 2,\r\n reviewNOtCompletedDays: (reviewerDetails?.length > 0) ? res?.review_failed_after_days : 2\r\n },\r\n acceptedData: reviewerDetails?.length > 0 ? res?.reviewer_arr?.level1?.reviewers : [] ,\r\n list: reviewerDetails?.length > 0 ? this.setReviewerPayload(res?.reviewer_arr?.level1?.reviewers, 'object', res?.reviewer_arr?.level1?.type) : []\r\n },\r\n overseers: {\r\n list: (res?.cc_email) ? this.setList(this.overseersList, Object.keys(res?.cc_email).map(Number), 'employee_id') : [],\r\n notifyList: (res?.failure_cc_email) ? this.setList(this.overseersList, Object.keys(res?.failure_cc_email).map(Number), 'employee_id') : [],\r\n },\r\n formatAndEvidence: {\r\n formatRequired: (res?.report_format.length > 0 || res?.link_for_details?.length > 0) ? true : false,\r\n formatFiles: res?.report_format,\r\n formatLinks: res?.link_for_details,\r\n evidenceRequired: (res?.report_upload_flag) ? true : false,\r\n },\r\n assuranceList: this.setList(this.assuranceCategoriesList, testPlanCategory, 'category_id'),\r\n requiresAuditList: this.setList(this.assuranceRequiresAuditList, requiredAuditCategoryId, 'category_id'),\r\n riskClass: res?.risk_class,\r\n riskMatrix: res?.risk_matrix_data\r\n };\r\n this.isNotificationPending = res.notification_pending;\r\n if (this.isNotificationPending) {\r\n this.actionButtons[1].buttonText = 'View Responsibilities in Queue';\r\n } else {\r\n this.actionButtons[1].buttonText = 'View Responsibilities';\r\n }\r\n // 5~0~0~0 this is for other frequency\r\n if(res.frequency_details !== '' && res.frequency_details !== '5~0~0~0') {\r\n this.frequencyDataPopulation(res);\r\n this.getFrequencyPlaceholder(res);\r\n res.placeholder = this.frequencyPlaceholder;\r\n } else {\r\n this.isEntrust = true;\r\n this.mode = 'CREATE';\r\n this.assigneeRadioSelect = false;\r\n this.responsibilityForm.assignors.enable = false;\r\n this.responsibilityForm.assignors.list = [];\r\n this.organizationId = this.authService.getOrganizationId();\r\n this.memberId = this.authService.getMemberId();\r\n }\r\n\r\n if (this.responsibilityForm.assignees.list?.length === 0) {\r\n this.isEntrust = true;\r\n this.mode = 'CREATE';\r\n this.assigneeRadioSelect = false;\r\n this.responsibilityForm.assignors.enable = false;\r\n this.responsibilityForm.assignors.list = [];\r\n this.organizationId = this.authService.getOrganizationId();\r\n this.memberId = this.authService.getMemberId();\r\n }\r\n //\r\n if (res.frequency_details.split('~')[0] !== 6) {\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n }\r\n\r\n if(res?.rc_id > 0) {\r\n this.rcSelected.emit(true)\r\n }\r\n if(res?.audit_category_details) {\r\n this.populateAssuranceList(res?.audit_category_details )\r\n }\r\n\r\n if(res.assessment?.assessment_id) {\r\n this.getAssessmentDetails(res.assessment, res.questionnaire_type)\r\n }\r\n\r\n if(!this.responsibilityForm.checkpoints) {\r\n this.hiddenList.push('CHECKPOINTS');\r\n this.hideElementsFromMoreOptions.emit(this.hiddenList);\r\n } else {\r\n this.isAssessmentDisabled.emit(true)\r\n }\r\n this.refreshAllLists();\r\n this.getEditMoreOptions(res);\r\n }\r\n });\r\n\r\n }\r\n\r\n setMoreOptions() {\r\n\r\n }\r\n\r\n setList(list: any[], ids: any[], key: string) {\r\n const data: any = [];\r\n\r\n ids?.forEach((element: any) => {\r\n const index = list.findIndex((listElement: any) => listElement[key] == element);\r\n if (index !== -1) {\r\n data.push(list[index]);\r\n }\r\n });\r\n return data;\r\n }\r\n\r\n returnIds(list: any[], key: string) {\r\n return list.map(ele => { if (ele[key]) { return ele[key]; } }).filter(ele => ele);\r\n }\r\n\r\n setReviewerPayload(ids: any[], type: string, acceptedData?:Array<any>, reviewerType?: string) {\r\n console.log(\"reviewerTypereviewerType\",reviewerType)\r\n if (type === 'object') {\r\n const idObjArray = this.returnIds(ids, 'member_id');\r\n return this.setList(this.reviewersList, idObjArray, 'my_member_id');\r\n } else if (type === 'list') {\r\n const payLoad: any = [];\r\n const idsList = this.returnIds(ids, 'my_member_id');\r\n idsList.forEach((element: any) => {\r\n let index = -1;\r\n if((acceptedData ?? [])?.length > 0) {\r\n index = acceptedData?.findIndex(ele => ele.member_id === element) ?? -1\r\n }\r\n let acceptStatus = (index > -1 && acceptedData) ? acceptedData[index].reviewer_accept : 0\r\n if(acceptStatus === 0 && reviewerType === 'ANYONE') {\r\n acceptStatus = 1;\r\n }\r\n payLoad.push({ member_id: element, reviewer_accept: acceptStatus });\r\n });\r\n return payLoad;\r\n }\r\n }\r\n\r\n checkWhetherAllListsLoaded() {\r\n if (this.rcListLoaded && this.assigneesListLoaded && this.assignorsListLoaded &&\r\n this.categoriesListLoaded && this.assuranceCategoryListLoaded && this.groupsListLoaded) {\r\n\r\n if (this.frameworkDetails.length > 0) {\r\n this.entrustFramework(this.frameworkDetails[0]);\r\n }\r\n\r\n if (this.mode === 'EDIT') {\r\n this.getEditResponsibilityDetails(this.responsibilityId);\r\n } else {\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n\r\n }\r\n } else {\r\n setTimeout(() => {\r\n this.checkWhetherAllListsLoaded();\r\n }, 300);\r\n }\r\n }\r\n\r\n saveSelectedList(type: string, selectedItems: any) {\r\n switch (type) {\r\n case 'assignors':\r\n if (this.invalidType === 'whom') {\r\n this.invalidType = '';\r\n }\r\n this.responsibilityForm.assignors.list = this.setList(this.assignorsList, [selectedItems.member_id], 'member_id');\r\n this.refreshAllLists();\r\n break;\r\n case 'assignees':\r\n if (this.invalidType === 'who') {\r\n this.invalidType = '';\r\n }\r\n if (this.assigneeRadioSelect) {\r\n this.responsibilityForm.assignees.list = this.setList(this.assigneesList, [selectedItems.employee_id], 'employee_id');\r\n this.refreshAllLists();\r\n } else {\r\n this.responsibilityForm.assignees.list = this.setList(this.assigneesList, selectedItems, 'my_member_id');\r\n this.refreshAllLists();\r\n }\r\n break;\r\n case 'rc':\r\n this.responsibilityForm.rc = this.setList(this.responsibilityCentersList, selectedItems, 'item_id');\r\n this.rcSelected.emit(this.responsibilityForm.rc.length > 0)\r\n if(this.responsibilityForm.rc.length === 0) {\r\n this.responsibilityForm.requiresAuditList = [];\r\n this.responsibilityForm['audit_category_details']['category_id'] = 0;\r\n }\r\n break;\r\n case 'category':\r\n this.responsibilityForm.category = selectedItems;\r\n selectedItems.forEach((element: any) => {\r\n const tag = element.custom_tags !== '' && element.custom_tags !== \"null\" && element.custom_tags != \"[]\" ? JSON.parse(element.custom_tags) : [];\r\n if (tag.length > 0) {\r\n tag.forEach((tagData: any) => {\r\n const index = this.responsibilityForm.customTags.findIndex((tagElement: any) => tagElement.tag_name == tagData.tag_name);\r\n if (index == -1) {\r\n this.responsibilityForm.customTags.push(tagData);\r\n }\r\n });\r\n }\r\n });\r\n break;\r\n case 'reviewer':\r\n this.responsibilityForm.reviewers.list = this.setList(this.reviewersList, selectedItems, 'employee_id');\r\n this.refreshAllLists();\r\n break;\r\n case 'overseer':\r\n this.responsibilityForm.overseers.list = this.setList(this.overseersList, selectedItems, 'employee_id');\r\n this.refreshAllLists();\r\n break;\r\n case 'overseerNotify':\r\n this.responsibilityForm.overseers.notifyList = this.setList(this.overseersList, selectedItems, 'employee_id');\r\n this.refreshAllLists();\r\n break;\r\n // case 'assurance':\r\n // this.responsibilityForm.assuranceList = this.setList(this.assuranceCategoriesList, [selectedItems?.category_id], 'category_id');\r\n // console.log(\"this.responsibilityForm.assuranceList\", this.responsibilityForm.assuranceList, this.responsibilityForm, this.responsibilityForm.audit_category)\r\n // this.responsibilityForm['audit_category_details']['category_id'] = selectedItems?.category_id;\r\n // break;\r\n case 'assurance':\r\n this.responsibilityForm.assuranceList = this.setList(this.assuranceCategoriesList, selectedItems, 'category_id');\r\n break;\r\n case 'requires_audit':\r\n this.responsibilityForm.requiresAuditList = this.setList(this.assuranceRequiresAuditList, [selectedItems?.category_id], 'category_id');\r\n console.log(\"this.responsibilityForm.requiresAuditList\", this.responsibilityForm.requiresAuditList, this.responsibilityForm, this.responsibilityForm.audit_category)\r\n this.responsibilityForm['audit_category_details']['category_id'] = selectedItems?.category_id;\r\n break;\r\n case 'checkpoints':\r\n this.responsibilityForm.checkpoints = selectedItems?.checkpointDetails;\r\n this.responsibilityForm.checkpointInstruction = selectedItems?.checkpointInstruction;\r\n break;\r\n case 'calculatedrisk':\r\n this.responsibilityForm.riskClass = selectedItems?.riskClass;\r\n this.responsibilityForm.riskMatrix = selectedItems?.riskMatrix;\r\n break;\r\n case 'formate_evidence':\r\n\r\n this.responsibilityForm.formatAndEvidence.formatRequired = selectedItems?.isFormateUploaded ?? false;\r\n this.responsibilityForm.formatAndEvidence.formatFiles = selectedItems?.files ?? [];\r\n this.responsibilityForm.formatAndEvidence.formatLinks = selectedItems?.links ?? [];\r\n this.responsibilityForm.formatAndEvidence.evidenceRequired = selectedItems?.isEvidenceRequired ?? false;\r\n break;\r\n case 'reviewFrequency':\r\n this.responsibilityForm.reviewers.reviewFrequency = {\r\n reviewCompleteDays: selectedItems.completeDays,\r\n reviewNOtCompletedDays: selectedItems.notCompleted,\r\n };\r\n\r\n }\r\n this.activeDeselector();\r\n }\r\n\r\n\r\n remove(type: any, event?: any) {\r\n console.log(\"type ===>\", type, event)\r\n switch (type) {\r\n case 'rc':\r\n const rcIndex = this.responsibilityForm.rc.findIndex((rc: any) => rc.rc_id == event.rc_id);\r\n this.responsibilityForm.rc.splice(rcIndex, 1);\r\n this.rcSelected.emit(this.responsibilityForm.rc.length > 0)\r\n if(this.responsibilityForm.rc.length === 0) {\r\n this.responsibilityForm.requiresAuditList = [];\r\n this.responsibilityForm['audit_category_details']['category_id'] = 0;\r\n }\r\n break;\r\n case 'assignors':\r\n this.responsibilityForm.assignors.list = [];\r\n this.refreshAllLists();\r\n break;\r\n case 'assignees':\r\n const entrustIndex = this.responsibilityForm.assignees.list.findIndex((owner: any) => owner.employee_id == event.employee_id);\r\n this.responsibilityForm.assignees.list.splice(entrustIndex, 1);\r\n this.refreshAllLists();\r\n break;\r\n\r\n case 'reviewer':\r\n const reviewerIndex = this.responsibilityForm.reviewers.list.findIndex((reviewer: any) => reviewer.employee_id == event.employee_id);\r\n this.responsibilityForm.reviewers.list.splice(reviewerIndex, 1);\r\n this.refreshAllLists();\r\n break;\r\n case 'overseer':\r\n const overseerIndex = this.responsibilityForm.overseers.list.findIndex((overseer: any) => overseer.employee_id == event.employee_id);\r\n this.responsibilityForm.overseers.list.splice(overseerIndex, 1);\r\n this.refreshAllLists();\r\n break;\r\n case 'overseerNotifyList':\r\n const overseerNotifyIndex = this.responsibilityForm.overseers.notifyList.findIndex((overseerN: any) => overseerN.employee_id == event.employee_id);\r\n this.responsibilityForm.overseers.notifyList.splice(overseerNotifyIndex, 1);\r\n this.refreshAllLists();\r\n break;\r\n\r\n case 'category':\r\n const categoryIndex = this.responsibilityForm.category.findIndex((category: any) => category.category_id == event.category_id);\r\n this.responsibilityForm.category.splice(categoryIndex, 1);\r\n const tag = JSON.parse(event.custom_tags);\r\n if (tag.length > 0) {\r\n tag.forEach((tagData: any) => {\r\n const indexCT = this.responsibilityForm.customTags.findIndex((tagElement: any) => tagElement.tag_name == tagData.tag_name);\r\n if (indexCT != -1) {\r\n this.responsibilityForm.customTags.splice(indexCT, 1);\r\n }\r\n });\r\n }\r\n if (this.responsibilityForm.category.length > 0) {\r\n this.responsibilityForm.category.forEach((element: any) => {\r\n const tag = JSON.parse(element.custom_tags);\r\n if (tag.length > 0) {\r\n tag.forEach((tagData: any) => {\r\n const index = this.responsibilityForm.customTags.findIndex((tagElement: any) => tagElement.tag_name == tagData.tag_name);\r\n if (index == -1) {\r\n this.responsibilityForm.customTags.push(tagData);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n break;\r\n case 'requires_audit':\r\n this.responsibilityForm.requiresAuditList = [];\r\n this.responsibilityForm.audit_category_details = {\r\n category_id: 0,\r\n sample: 0,\r\n percentage: 0 ,\r\n frequency_pattern: '',\r\n frequency_time: ''\r\n }\r\n break;\r\n case 'assurance':\r\n const assuranceIndex = this.responsibilityForm.assuranceList.findIndex((assurance: any) => assurance.category_id == assurance.category_id);\r\n this.responsibilityForm.assuranceList.splice(assuranceIndex, 1);\r\n break;\r\n case 'checkpoint':\r\n this.responsibilityForm.checkpoints.splice(event, 1);\r\n break;\r\n case 'assessment':\r\n this.responsibilityForm.assessment = {\r\n category_id: \"\",\r\n assessment_id: \"\",\r\n\r\n }\r\n break;\r\n case 'new-checkpoints':\r\n this.responsibilityForm.new_checkpoints = {};\r\n this.checkpointCount = 0;\r\n this.checkpointCountUpdated.emit(this.checkpointCount);\r\n break;\r\n }\r\n }\r\n\r\n entrustFramework(event: any) {\r\n this.reset();\r\n this.activeDeselector();\r\n this.responsibilityForm.responsibility = {\r\n name: event.report_name,\r\n keyResponsibility: (event.key_compliance) ? true : false,\r\n };\r\n const newStartDate = event.start_date || event.start_date != null || event.start_date !== '' ? new Date(event.start_date * 1000) : new Date();\r\n const pvtTemplate = event.frequency_template && event.frequency_template !== '' ? event.frequency_template : event.frequency;\r\n const frequencyDetailsObject: any = this.frequencyService.shortHand_freqCal(\r\n pvtTemplate,\r\n newStartDate.getDate(),\r\n newStartDate.getMonth(),\r\n newStartDate.getFullYear()\r\n );\r\n this.responsibilityForm.frequency_details = frequencyDetailsObject?.pattern;\r\n event.frequency_details = this.responsibilityForm.frequency_details;\r\n event.frequency_time = '23:59:00';\r\n event.reminder_before_days = event.remind_days_before_due_date ? event.remind_days_before_due_date : 2;;\r\n event.failed_after_days = event.mark_failed_after ? event.mark_failed_after : 2;\r\n event.lifecycle_details = '0000-00-00~~0';\r\n event.start_of_day_utc = this.frequencyService.frameworkStartDate(event);\r\n event.on_completion_of = [];\r\n event.dom_utc = new Date().getTime();\r\n event.continuous_failed_days = frequencyDetailsObject.continuous_failed_days\r\n\r\n this.responsibilityForm.frequency = this.responsibilityForm.frequency_details;\r\n this.responsibilityForm.frequency_time = '23:59:00';\r\n this.responsibilityForm.reminder_before_days = event.remind_days_before_due_date ? event.remind_days_before_due_date : 2;;\r\n this.responsibilityForm.failed_after_days = event.mark_failed_after ? event.mark_failed_after : 2;\r\n this.responsibilityForm.lifecycleDetails = '0000-00-00~~0';\r\n this.responsibilityForm.start_of_day_utc = this.frequencyService.frameworkStartDate(event).toFixed().toString();\r\n this.responsibilityForm.on_completion_of = [];\r\n this.responsibilityForm.dom_utc = new Date().getTime();\r\n this.responsibilityForm.description = event.remarks.trim() != '' ? event.remarks : '';\r\n this.responsibilityForm.customTags = event.custom_tags && event.custom_tags !== null && event.custom_tags !== 'null' && event.custom_tags !== '' ? JSON.parse(event.custom_tags) : [];\r\n this.responsibilityForm.objective = event.control_objective ? event.control_objective : '';\r\n this.responsibilityForm.category = this.setList(this.allCategories, [event.category_id], 'category_id'); //\r\n this.responsibilityForm.reviewers.reviewFrequency.reviewCompleteDays = 2;\r\n this.responsibilityForm.reviewers.reviewFrequency.reviewNOtCompletedDays = 2;\r\n this.responsibilityForm.rc = this.responsibilityCentersList.find((rc: any) => rc.rc_id === event.entity_id) ? [this.responsibilityCentersList.find((rc: any) => rc.rc_id === event.entity_id)] : [];\r\n this.responsibilityForm.riskClass = this.isRiskEnable ? 1 : 2;\r\n this.responsibilityForm.private_library_id = event.report_id;\r\n this.responsibilityForm.frequency = this.responsibilityForm.frequency_details;\r\n this.responsibilityForm.classification = this.isRiskEnable ? 1 : 2;\r\n this.responsibilityForm.continuous_failed_days = frequencyDetailsObject.continuous_failed_days\r\n this.responsibilityForm.startDate = this.frequencyService.frameworkStartDate(event);\r\n this.responsibilityForm.formatAndEvidence = {\r\n evidenceRequired: event.report_upload_flag ? true : false,\r\n formatFiles: event.report_format,\r\n formatLinks: !(event.report_format_link) || event.report_format_link == '' ? [] : [event.report_format_link],\r\n formatRequired: (event.report_format.length > 0 || ((event.report_format_link) && event.report_format_link != '')) ? true : false\r\n }\r\n this.responsibilityForm.audit_category_details = {\r\n category_id: 0,\r\n sample: 5,\r\n percentage: 30 ,\r\n frequency_pattern: '1~0~3~1',\r\n frequency_time: '23:59:00'\r\n }\r\n\r\n event.frequency_time = '11:59 pm';\r\n if (event.frequency_details !== '' && event.frequency_details !== '5~0~0~0') {\r\n this.frequencyPopulation(event);\r\n } else {\r\n this.responsibilityForm.frequency = '';\r\n }\r\n\r\n event.frequency_time = '23:59:00';\r\n event.placeholder = this.getFrequencyPlaceholder(event);\r\n const checkedMoreOptions = [];\r\n\r\n if (this.responsibilityForm.objective !== '') {\r\n checkedMoreOptions.push('OBJECTIVE');\r\n this.moreOptions.OBJECTIVE = true;\r\n }\r\n checkedMoreOptions.push('RISK_CLASSIFICATION');\r\n this.moreOptions.RISK_CLASSIFICATION = true;\r\n if (this.responsibilityForm.category.length > 0) {\r\n checkedMoreOptions.push('CATEGORY');\r\n this.moreOptions.CATEGORY = true;\r\n }\r\n\r\n if (this.responsibilityForm?.formatAndEvidence?.evidenceRequired || this.responsibilityForm?.formatAndEvidence?.formatRequired) {\r\n checkedMoreOptions.push('FORMATE_EVIDENCE');\r\n this.moreOptions.FORMATE_EVIDENCE = true;\r\n }\r\n if (event.entity_id > 0) {\r\n checkedMoreOptions.push('RC');\r\n this.moreOptions.RC = true;\r\n }\r\n\r\n this.populateOption.emit(checkedMoreOptions);\r\n // event.placeholder\r\n }\r\n\r\n refreshAllLists() {\r\n let assignorAndAssigneesIds: any = [];\r\n let reviewersIds: any = [];\r\n let overseerIds: any = [];\r\n let assigneeIds: any = [];\r\n\r\n const allUsers = cloneDeep(this.allUsersList);\r\n const behalfUsers = cloneDeep(this.behalfOfUsersList);\r\n\r\n const assignors = cloneDeep(this.responsibilityForm.assignors.list);\r\n const assignees = cloneDeep(this.responsibilityForm.assignees.list);\r\n\r\n const reviewers = cloneDeep(this.responsibilityForm.reviewers.list);\r\n const overseerList = cloneDeep(this.responsibilityForm.overseers.list);\r\n const notifyOverseers = cloneDeep(this.responsibilityForm.overseers.notifyList);\r\n assignors?.forEach((user: any) => {\r\n assignorAndAssigneesIds.push(user.member_id);\r\n });\r\n assignees?.forEach((user: any) => {\r\n assignorAndAssigneesIds.push(user.my_member_id);\r\n assigneeIds.push(user.my_member_id);\r\n });\r\n if (this.responsibilityForm.assignors.list.length == 0) {\r\n assignorAndAssigneesIds.push(this.memberId);\r\n }\r\n\r\n reviewers?.forEach((user: any) => {\r\n reviewersIds.push(user.my_member_id);\r\n });\r\n overseerList?.forEach((user: any) => {\r\n overseerIds.push(user.my_member_id);\r\n });\r\n notifyOverseers?.forEach((user: any) => {\r\n overseerIds.push(user.my_member_id);\r\n });\r\n\r\n assignorAndAssigneesIds = [...new Set(assignorAndAssigneesIds)];\r\n assigneeIds = [...new Set(assigneeIds)];\r\n reviewersIds = [...new Set(reviewersIds)];\r\n overseerIds = [...new Set(overseerIds)];\r\n\r\n\r\n this.assignorsList = behalfUsers.filter((user: any) => !( overseerIds.includes(user.member_id)));\r\n this.assigneesList = allUsers.filter((user: any) => !(reviewersIds.includes(user.my_member_id) || overseerIds.includes(user.my_member_id)));\r\n\r\n\r\n\r\n this.reviewersList = allUsers.filter((user: any) => !( overseerIds.includes(user.my_member_id) || assigneeIds.includes(user.my_member_id)));\r\n this.overseersList = allUsers.filter((user: any) => !(assignorAndAssigneesIds.includes(user.my_member_id) || reviewersIds.includes(user.my_member_id)));\r\n }\r\n\r\n submitResponsibility() {\r\n const valid = this.validateResponsibility();\r\n if (!valid) {\r\n return false;\r\n } else if (this.mode == 'EDIT') {\r\n this.organizationId = this.authService.getOrganizationId();\r\n this.memberId = this.authService.getMemberId();\r\n this.entrustResponsibility(this.responsibilityForm);\r\n // edit conditions\r\n } else {\r\n this.entrustResponsibility(this.responsibilityForm);\r\n }\r\n\r\n }\r\n\r\n validateResponsibility() {\r\n this.submitted = true;\r\n if (this.responsibilityForm.assignors.enable && this.responsibilityForm.assignors.list.length === 0) {\r\n this.invalidType = \"whom\";\r\n return;\r\n }\r\n if (!this.responsibilityForm.responsibility.name || this.responsibilityForm.responsibility.name.trim() == '') {\r\n this.invalidType = 'what';\r\n } else if (!this.responsibilityForm.assignees.list || this.responsibilityForm.assignees.list.length == 0) {\r\n this.invalidType = 'who';\r\n } else if (!this.responsibilityForm.frequency || this.responsibilityForm.frequency == '' || this.responsibilityForm.frequency === '' || this.responsibilityForm.frequency === '5~0~0~0') {\r\n this.invalidType = 'when';\r\n } else {\r\n this.invalidType = '';\r\n }\r\n\r\n\r\n\r\n if (!this.responsibilityForm.responsibility.name || this.responsibilityForm.responsibility.name.trim() == ''\r\n || (!this.responsibilityForm.frequency || this.responsibilityForm.frequency === '' || this.responsibilityForm.frequency === '5~0~0~0') || this.responsibilityForm.assignees.list.length == 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n responsibilityData !: any;\r\n entrustResponsibility(entrustForm: any) {\r\n console.log(\"entrustForm ==>\", entrustForm)\r\n this.loader = true;\r\n this.uiKitService.isLoader = true;\r\n let startDate = moment(parseInt(entrustForm.startDate) * 1000).format(\"YYYY-MM-DD HH:mm:ss\");\r\n startDate = moment(startDate.split(' ')[0] + \" 00:00:00\").format(\"YYYY-MM-DD HH:mm:ss\");\r\n const rcDetails = entrustForm.rc.length > 0 ? entrustForm.rc.map((rc: any) => {\r\n if (rc) {\r\n const rcDetailsArr = {\r\n parent_rc_ids: rc.parent_rc_ids,\r\n rc_id: rc.rc_id\r\n };\r\n return rcDetailsArr;\r\n }\r\n }) : [];\r\n const moreOptions = this.moreOptions;\r\n\r\n const checkContinuousFailedValue = (details: string) => {\r\n const frequencyType = parseInt(details.split('~')[0]);\r\n if (frequencyType === 1 || frequencyType === 2 || frequencyType === 3) {\r\n return true\r\n } else {\r\n return false;\r\n }\r\n }\r\n const remarks = (entrustForm.description.replace(/\\ /g, '').trim() !== '') ? entrustForm.description : ''\r\n const objective = (entrustForm.objective.replace(/\\ /g, '').trim() !== '') ? entrustForm.objective : ''\r\n const payload = {\r\n app_association: [],\r\n assigned_to: this.returnIds(entrustForm.assignees.list, 'employee_id').toString(),\r\n category_id: (moreOptions.CATEGORY) ? this.returnIds(entrustForm.category, 'category_id').toString() : '',\r\n cc_email: (moreOptions.OVERSEER) ? this.returnIds(entrustForm.overseers.list, 'employee_id').toString() : '',\r\n checkpoint_description: (moreOptions.CHECKPOINTS) ? entrustForm.checkpointInstruction : '',\r\n checkpoint_details: (moreOptions.CHECKPOINTS) ? JSON.stringify(this.responsibilityForm.checkpoints) : '',\r\n checkpoint_flag: 0,\r\n collaborator_mark_done: 0,\r\n comment: '',\r\n continuous_failed_days: checkContinuousFailedValue(entrustForm.frequency) ? entrustForm.continuous_failed_days : 0,\r\n cost_of_compliance: '',\r\n created_by: entrustForm.assignors.list?.length < 1 ? 0 : this.memberId,\r\n creation_window: 0,\r\n custom_tags: JSON.stringify(entrustForm.customTags),\r\n entity_tree: (moreOptions.RC) ? rcDetails : [],\r\n entrust_from_risk: this.openedFrom === 'RISK_TREATMENT' ? true : false,\r\n failed_after_days: entrustForm.failed_after_days,\r\n failed_time_utc: entrustForm.failed_time_utc,\r\n failure_cc_email: (moreOptions.OVERSEER) ? this.returnIds(entrustForm.overseers.notifyList, 'employee_id').toString() : '',\r\n frequency_details: entrustForm.frequency,\r\n frequency_time: entrustForm.timeIn24Hr ?? \"23:59:00\",\r\n grc_object_id: 0,\r\n grc_relationship: '',\r\n if_testplan_failed: 0,\r\n impact: '',\r\n isGroupAssignTo: (entrustForm.assignees.whoCanComplete == 'ANY_ONE') ? 1 : 0,\r\n is_key_compliance: entrustForm.responsibility.keyResponsibility ? 1 : 0,\r\n library_report_id: 0,\r\n lifecycle_details: entrustForm.lifecycleDetails ?? '0000-00-00~~0',\r\n link_for_details: (moreOptions.FORMATE_EVIDENCE) ? entrustForm.formatAndEvidence.formatLinks : [],\r\n linkages: { compliance: [] },\r\n member_id: this.returnIds(entrustForm.assignors.list, 'member_id').length > 0 ? this.returnIds(entrustForm.assignors.list, 'member_id')[0] : this.memberId,\r\n objective: (moreOptions.OBJECTIVE) ? objective : '',\r\n on_completion_of: entrustForm.reportId ? [entrustForm.reportId] : [],\r\n on_completion_of_type: 1,\r\n organisation_id: this.organizationId,\r\n override_weekly: 0,\r\n parent_id: 0,\r\n penalty: '',\r\n private_library_id: 0,\r\n remarks: remarks,\r\n reminder_before_days: entrustForm.reminder_before_days,\r\n report_format: (moreOptions.FORMATE_EVIDENCE) ? entrustForm.formatAndEvidence.formatFiles : [],\r\n report_format_link: '',\r\n report_name: entrustForm.responsibility.name,\r\n report_upload_flag: entrustForm.formatAndEvidence.evidenceRequired ? 1 : 0,\r\n review_after_days: (moreOptions.REVIEWER) ? entrustForm.reviewers.reviewFrequency.reviewCompleteDays === '' ? 0 : Number(entrustForm.reviewers.reviewFrequency.reviewCompleteDays) : 0,\r\n review_failed_after_days: (moreOptions.REVIEWER) ? entrustForm.reviewers.reviewFrequency.reviewNOtCompletedDays === '' ? 0 : Number(entrustForm.reviewers.reviewFrequency.reviewNOtCompletedDays) : 0,\r\n reviewer_arr: (moreOptions.REVIEWER) ? {\r\n level1: {\r\n reviewers: this.setReviewerPayload(entrustForm.reviewers.list, 'list', entrustForm.reviewers.acceptedData, (entrustForm.reviewers.sequentialWorkflow) ? 'SEQUENTIAL' : 'ANYONE'),\r\n type: (entrustForm.reviewers.sequentialWorkflow) ? 'SEQUENTIAL' : 'ANYONE'\r\n },\r\n } : {},\r\n reviewer_checkpoints: [{ checkpoints: [], instruction: '' }],\r\n reviewer_id: 0,\r\n risk_class: this.isRiskEnable ? entrustForm.riskClass : 2,\r\n risk_ids: '',\r\n risk_matrix_data: (moreOptions.RISK_CLASSIFICATION) ? entrustForm.riskMatrix : '0,0,0,0,0,0',\r\n sample_size: 0,\r\n start_date_utc: startDate,\r\n statutory_day: 0,\r\n test_required_flag: (moreOptions.ASSURANCE) ? (entrustForm.assuranceList.length > 0 ? 1 : 0) : 0,\r\n testplan_category_id: (moreOptions.ASSURANCE) ? this.returnIds(entrustForm.assuranceList, 'category_id') : [],\r\n testplan_category_manager: '',\r\n audit_category_details: this.responsibilityForm ?.audit_category_details?.category_id ? {\r\n category_id: this.responsibilityForm.audit_category_details.category_id,\r\n sample: this.selectedSample === 0 ? this.sampleValue : 0,\r\n percentage: this.selectedSample === 1 ? this.samplePercentage : 0,\r\n frequency_pattern: `1~0~${this.sendAuditRemindersValue}~1`,\r\n frequency_time: moment(this.auditTime, 'HH:mm a').format('HH:mm:ss')\r\n } : {\r\n category_id: 0,\r\n sample: 0,\r\n percentage: 0,\r\n frequency_pattern: ``,\r\n frequency_time:''\r\n } ,\r\n assessment: {\r\n category_id: moreOptions.ASSESSMENT ? entrustForm?.assessment?.category_id : '',\r\n assessment_id: moreOptions.ASSESSMENT ? entrustForm?.assessment?.assessment_id : ''\r\n },\r\n assessment_checkpoint: moreOptions.CHECKPOINTS_NEW ? ( Object.keys(entrustForm?.new_checkpoints).length > 0 ? entrustForm?.new_checkpoints : {}) : {},\r\n questionnaire_type: moreOptions.CHECKPOINTS_NEW ? ( Object.keys(entrustForm?.new_checkpoints).length > 0 ? 'assessment_checkpoint' : (moreOptions.ASSESSMENT && entrustForm?.assessment?.category_id ? 'assessment': (JSON.stringify(this.responsibilityForm.checkpoints) != '' && moreOptions.CHECKPOINTS ? 'checkpoint' : ''))) : ''\r\n };\r\n this.responsibilityPayload = payload;\r\n console.log(\"payloaddd\", payload, this.mode)\r\n if (this.mode == 'CREATE' && !this.isDuplicateEntrust) {\r\n this.responsibilityService.submitEntrust(payload).subscribe((res: any) => {\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.showSmiley = true;\r\n this.uiKitService.isSmileyOn = true;\r\n this.responsibilityData = res;\r\n\r\n\r\n if (res.message && res.message.toLowerCase() === 'bulk entrust') {\r\n this.smileyMessage = `You have entrusted ${res.calculate_no_of_responsibiities} responsibilities. These would be reflected within your account in sometime.`;\r\n }\r\n if (this.isNotificationPending && payload.created_by == 0) {\r\n this.smileyMessage = 'This responsibility has been added to the notification queue.'\r\n } else {\r\n if (payload.created_by > 0) {\r\n this.actionButtons[1].buttonText = \"View Responsibilities\";\r\n this.smileyMessage = `You just created a responsibility on behalf ${entrustForm.assignors.list.find((member: any) => member.member_id === payload.member_id).member_name}`;\r\n }\r\n\r\n }\r\n\r\n\r\n //this.reset();\r\n },\r\n err => {\r\n console.log(err);\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n\r\n }\r\n );\r\n }\r\n if (this.mode == 'EDIT' || this.isDuplicateEntrust) {\r\n this.smileyMessage = `The responsibility has been modified.`;\r\n this.responsibilityService.updateEntrust(payload, this.responsibilityId, true).subscribe((res: any) => {\r\n this.responsibilityData = res;\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.showSmiley = true;\r\n this.uiKitService.isSmileyOn = true;\r\n this.isDuplicateEntrust = false;\r\n\r\n // this.resetForm();\r\n\r\n },\r\n err => {\r\n console.log(err);\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n reset() {\r\n this.scrollToBottom = false;\r\n this.showSmiley = false;\r\n this.uiKitService.isSmileyOn = false;\r\n this.responsibilityForm = {\r\n assignors: {\r\n enable: false,\r\n list: []\r\n },\r\n responsibility: {\r\n name: '',\r\n keyResponsibility: false,\r\n },\r\n assignees: {\r\n whoCanComplete: 'ALL',\r\n list: []\r\n },\r\n frequency: '',\r\n description: '',\r\n objective: '',\r\n rc: [],\r\n category: [],\r\n checkpointInstruction: '',\r\n customTags: [],\r\n checkpoints: [],\r\n reviewers: {\r\n sequentialWorkflow: true,\r\n reviewFrequency: {\r\n reviewCompleteDays: 2,\r\n reviewNOtCompletedDays: 2\r\n },\r\n list: []\r\n },\r\n\r\n overseers: {\r\n notifyList: [],\r\n list: []\r\n },\r\n formatAndEvidence: {\r\n formatRequired: false,\r\n formatFiles: [],\r\n formatLinks: [],\r\n evidenceRequired: false,\r\n },\r\n assuranceList: [],\r\n requiresAuditList: [],\r\n riskClass: 1,\r\n riskMatrix: '0,0,0,0,0,0'\r\n };\r\n this.moreOptions = {\r\n OBJECTIVE: false,\r\n RC: false,\r\n CATEGORY: false,\r\n FORMATE_EVIDENCE: false,\r\n CHECKPOINTS: false,\r\n RISK_CLASSIFICATION: false,\r\n REVIEWER: false,\r\n OVERSEER: false,\r\n ASSURANCE: false,\r\n APPS: false,\r\n };\r\n this.frequencyPlaceholder = 'How often does the responsibility occur?';\r\n this.frequencyDetails = {\r\n pattern: '',\r\n notificationPending: 0,\r\n dateOfModified: 0,\r\n deactivationValue: 0,\r\n selectedReport: 0,\r\n lifecycle: '0000-00-00~~0',\r\n startDate: Math.floor(new Date().getTime() / 1000),\r\n startOnTheDay: Math.floor(new Date().getTime() / 1000),\r\n window: 0,\r\n failed: 0,\r\n time: '11:59 pm',\r\n failedTime: '',\r\n continuous_failed_days: 0\r\n }\r\n this.sampleValue = undefined;\r\n this.samplePercentage = undefined;\r\n this.selectedSample = -1;\r\n this.sendAuditRemindersValue = 2;\r\n this.auditTime = '11:59 pm'\r\n this.mode = 'CREATE'\r\n this.isEntrust = true;\r\n this.resetForm.emit(true);\r\n }\r\n action(event: string) {\r\n if (this.openedFrom === 'RISK_TREATMENT') {\r\n this.closeSmiley('ds');\r\n return\r\n }\r\n switch (event) {\r\n case 'addMore':\r\n this.reset();\r\n break;\r\n case 'view':\r\n this.viewResponsibilities();\r\n break;\r\n }\r\n }\r\n viewResponsibilities(): void {\r\n let url: string;\r\n let urlSubstring = '';\r\n this.disconnectRefresh.emit(false);\r\n if (this.isNotificationPending && this.responsibilityPayload.created_by == 0) {\r\n urlSubstring = 'compliance/manage-responsibilities/responsibilities-queue';\r\n } else if (this.responsibilityPayload.created_by > 0 && this.mode !== 'EDIT') {\r\n urlSubstring = 'compliance/manage-responsibilities/oversight-responsibilities?tab=4&page=1';\r\n } else {\r\n urlSubstring = 'compliance/manage-responsibilities';\r\n }\r\n if (window.location.host.startsWith('localhost')) {\r\n url = 'http://' + window.location.host + '/#/' + urlSubstring;\r\n } else {\r\n url = 'https://' + window.location.host + '/compliance/#/' + urlSubstring;\r\n }\r\n\r\n if (this.mode !== 'EDIT') {\r\n window.location.href = url;\r\n }\r\n this.closeSmiley('ds')\r\n this.reset();\r\n }\r\n closeSmiley(event: any) {\r\n this.showSmiley = false;\r\n this.uiKitService.isSmileyOn = false;\r\n // this.closeWorkflow.emit(this.responsibilityData);\r\n this.closeWorkflow.emit({ evt: this.responsibilityData, confirm: false });\r\n }\r\n // for edit responsibility\r\n frequencyDataPopulation(event: any) {\r\n const data = {\r\n pattern: event?.frequency_details,\r\n window: event?.reminder_before_days,\r\n failedAfter: event?.failed_after_days,\r\n failed_time_utc: event.failed_time_utc,\r\n lifecycleDetails: event?.lifecycle_details,\r\n startFrom: Number(event?.start_of_day_utc),\r\n timeIn24Hr: event.frequency_time,\r\n continuous_failed_days: event.continuous_failed_days,\r\n startDate: Number(event?.start_of_day_utc),\r\n reportId: event?.on_completion_of[0] ?? 0,\r\n timeIn12hr: this.frequencyService.timeIn12(event.frequency_time != '' ? event.frequency_time : '23:59:00')\r\n }\r\n\r\n this.frequencyData(data);\r\n }\r\n\r\n frequencyPopulation(event: any) {\r\n this.frequencyDetails.pattern = event?.frequency_details;\r\n this.frequencyDetails.failedTime = event?.frequency_time;\r\n this.frequencyDetails.window = event?.reminder_before_days;\r\n this.frequencyDetails.failed = event?.failed_after_days;\r\n this.frequencyDetails.lifecycle = event?.lifecycle_details;\r\n this.frequencyDetails.startDate = event?.start_of_day_utc;\r\n this.frequencyDetails.selectedReport = event?.on_completion_of[0] ?? 0;\r\n this.frequencyDetails.dateOfModified = event?.dom_utc;\r\n this.frequencyDetails.continuous_failed_days = event?.continuous_failed_days;\r\n this.frequencyPlaceholder = event?.placeholder;\r\n }\r\n\r\n frequencyData(event: any) {\r\n console.log(\"event==>\", event)\r\n if (this.invalidType === 'when') {\r\n this.invalidType = '';\r\n }\r\n this.responsibilityForm.frequency = event.pattern;\r\n this.responsibilityForm.reminder_before_days = (event.case===\"daily\") ? 0 : event.window\r\n //this.responsibilityForm.reminder_before_days = event.window;\r\n this.responsibilityForm.failed_after_days = event.failedAfter;\r\n this.responsibilityForm.failed_time_utc = event.failed_time_utc;\r\n this.responsibilityForm.lifecycleDetails = event.lifecycleDetails;\r\n this.responsibilityForm.reportId = event.reportId ?? 0;\r\n this.responsibilityForm.startDate = event.startFrom;\r\n this.responsibilityForm.timeIn24Hr = event.timeIn24Hr;\r\n this.responsibilityForm.continuous_failed_days = event.continuous_failed_days;\r\n this.activateSelector('frequency', false);\r\n const payload = {\r\n frequency_details: event.pattern,\r\n frequency_time: event.timeIn12hr,\r\n reminder_before_days: event.window,\r\n failed_after_days: event.failedAfter,\r\n lifecycle_details: event.lifecycleDetails,\r\n start_of_day_utc: event.startFrom,\r\n on_completion_of: [event.reportId],\r\n dom_utc: Math.floor(Date.now() / 1000),\r\n continuous_failed_days: event.continuous_failed_days,\r\n placeholder: event.placeholder\r\n };\r\n this.frequencyPopulation(payload);\r\n }\r\n\r\n checkBlank(data: string) {\r\n let text = data;\r\n return text.replace(/\\ /g, '');\r\n }\r\n\r\n getFrequencyPlaceholder(res: any) {\r\n try {\r\n if (res.frequency_details) {\r\n const frequencyDetails = res?.frequency_details.split('~');\r\n const frequencyTime = res?.frequency_time === '00:00:00' ? '12:00 am' : this.frequencyService.timeIn12(res?.frequency_time);\r\n switch (parseInt(frequencyDetails[0])) {\r\n case 1:\r\n this.getDailyPlaceholder(frequencyDetails, frequencyTime);\r\n break;\r\n case 2:\r\n this.getWeeklyPlaceholder(frequencyDetails, frequencyTime);\r\n break;\r\n case 3:\r\n this.getMonthlyPlaceholder(frequencyDetails, frequencyTime);\r\n break;\r\n case 7:\r\n this.getQuarterlyPlaceholder(frequencyDetails, frequencyTime);\r\n break;\r\n case 9:\r\n this.getBiannualPlaceholder(frequencyDetails, frequencyTime);\r\n break;\r\n case 4:\r\n this.getYearlyPlaceholder(frequencyDetails, frequencyTime);\r\n break;\r\n case 0:\r\n {\r\n const dateObject = new Date(moment(frequencyDetails[1] + '-' + frequencyDetails[2] + '-' + frequencyDetails[3] + ' 00:00:00', 'YYYY-MM-DD HH:mm:ss').unix() * 1000);\r\n // tslint:disable-next-line: max-line-length\r\n this.frequencyPlaceholder =\r\n 'One Time ' + dateObject.getDate() + ' ' + this.shortMonth[dateObject.getMonth()] + ' ' + dateObject.getFullYear() + ' by ' + frequencyTime;\r\n }\r\n break;\r\n case 8:\r\n this.getRandomPlaceholder(frequencyDetails, frequencyTime);\r\n // tslint:disable-next-line: max-line-length\r\n\r\n break;\r\n case 10:\r\n {\r\n this.frequencyPlaceholder = 'You have selected an ongoing frequency.';\r\n }\r\n break;\r\n case 6:\r\n this.getOnCompletionOf(frequencyDetails, res?.on_completion_of[0]);\r\n\r\n }\r\n }\r\n } catch (e) {\r\n // tslint:disable-next-line: no-console\r\n console.log(e);\r\n }\r\n }\r\n getOnCompletionOf(frequencyDetails: any, reportId: number) {\r\n this.frequencyPlaceholder = frequencyDetails[3] + ' ' + (parseInt(frequencyDetails[3]) > 1 ? 'days' : 'day') + ' after completion of ';\r\n this.frequencyService.getOnCompletionOfResponsibility().subscribe((res: any) => {\r\n const reportDetails = res.find((ele: any) => ele.ReportId == reportId);\r\n this.frequencyPlaceholder = frequencyDetails[3] + ' ' + (parseInt(frequencyDetails[3]) > 1 ? 'days' : 'day') + ' after completion of ' + (reportDetails ? reportDetails.report_name : '');\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n });\r\n }\r\n\r\n getDailyPlaceholder(frequencyDetails: any, frequencyTime: any) {\r\n {\r\n frequencyDetails = frequencyDetails.map(Number);\r\n if (parseInt(frequencyDetails[3]) === 1) {\r\n this.frequencyPlaceholder = 'Daily by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[3]) > 1) {\r\n this.frequencyPlaceholder = 'Every ' + parseInt(frequencyDetails[3]) + ' days by ' + frequencyTime;\r\n }\r\n }\r\n }\r\n\r\n getWeeklyPlaceholder(frequencyDetails: any, frequencyTime: any) {\r\n {\r\n const selectedDay = frequencyDetails[1].split(',').map((ele: any) => {\r\n return this.frequencyService.dayName[parseInt(ele) - 1];\r\n });\r\n\r\n if (parseInt(frequencyDetails[3]) === 1) {\r\n this.frequencyPlaceholder = 'Every ' + selectedDay.join() + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[3]) === 2) {\r\n this.frequencyPlaceholder = 'Every alternate ' + selectedDay.join() + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[3]) === 3) {\r\n this.frequencyPlaceholder = 'Every 3rd ' + selectedDay.join() + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[3]) > 3) {\r\n this.frequencyPlaceholder = 'Every ' + parseInt(frequencyDetails[1]) + 'th ' + selectedDay.join() + ' by ' + frequencyTime;\r\n }\r\n }\r\n }\r\n\r\n getMonthlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\r\n {\r\n const selectedMonth = frequencyDetails[2].split(',').map((ele: any) => {\r\n return this.shortMonth[parseInt(ele) - 1];\r\n });\r\n if (parseInt(frequencyDetails[1]) === 1) {\r\n this.frequencyPlaceholder = '1st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 2) {\r\n this.frequencyPlaceholder = '2nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 3) {\r\n this.frequencyPlaceholder = '3rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 21 || parseInt(frequencyDetails[1]) === 31) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 22) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 23) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) > 3) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'th of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n }\r\n }\r\n }\r\n\r\n getQuarterlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\r\n {\r\n const quarterly = ['January, April, July, October', 'February, May, August, November', ' March, June, September, December'];\r\n if (parseInt(frequencyDetails[1]) === 1) {\r\n this.frequencyPlaceholder = '1st of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 2) {\r\n this.frequencyPlaceholder = '2nd of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 3) {\r\n this.frequencyPlaceholder = '3rd of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 21 || parseInt(frequencyDetails[1]) === 31) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'st of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 22) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'nd of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 23) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'rd of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) > 3) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'th of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\r\n }\r\n }\r\n }\r\n\r\n getBiannualPlaceholder(frequencyDetails: any, frequencyTime: any) {\r\n {\r\n const selectedMonth = frequencyDetails[2].split(',').map((ele: any) => {\r\n return this.shortMonth[parseInt(ele) - 1];\r\n });\r\n if (parseInt(frequencyDetails[1]) === 1) {\r\n this.frequencyPlaceholder = '1st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 2) {\r\n this.frequencyPlaceholder = '2nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 3) {\r\n this.frequencyPlaceholder = '3rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 21 || parseInt(frequencyDetails[1]) === 31) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 22) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) === 23) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n } else if (parseInt(frequencyDetails[1]) > 3) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'th of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\r\n }\r\n }\r\n }\r\n\r\n getYearlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\r\n {\r\n const yearSequence = parseInt(frequencyDetails[3]) > 0 ? parseInt(frequencyDetails[3]) : 1;\r\n if (parseInt(frequencyDetails[1]) < 2) {\r\n if (parseInt(frequencyDetails[1]) === 1) {\r\n this.frequencyPlaceholder = '1st of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) === 2) {\r\n this.frequencyPlaceholder = '2nd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) === 3) {\r\n this.frequencyPlaceholder = '3rd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) > 3) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'th of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) === 31 || parseInt(frequencyDetails[1]) === 21) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'st of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) === 22) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'nd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) === 23) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'rd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\r\n }\r\n }\r\n\r\n if (parseInt(frequencyDetails[1]) > 1) {\r\n if (parseInt(frequencyDetails[1]) === 1) {\r\n // tslint:disable-next-line: max-line-length\r\n this.frequencyPlaceholder = '1st ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ', Interval: every ' + yearSequence + ' years by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) === 2) {\r\n // tslint:disable-next-line: max-line-length\r\n this.frequencyPlaceholder = '2nd ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ', Interval: every ' + yearSequence + ' years by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) === 3) {\r\n // tslint:disable-next-line: max-line-length\r\n this.frequencyPlaceholder = '3rd ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ', Interval: every ' + yearSequence + ' years by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) > 3) {\r\n // tslint:disable-next-line: max-line-length\r\n this.frequencyPlaceholder =\r\n parseInt(frequencyDetails[1]) + 'th of ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ', Interval: every ' + yearSequence + ' years by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) === 31 || parseInt(frequencyDetails[1]) === 21) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'st of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) === 22) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'nd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\r\n }\r\n if (parseInt(frequencyDetails[1]) === 23) {\r\n this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'rd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\r\n }\r\n }\r\n }\r\n }\r\n\r\n getRandomPlaceholder(frequencyDetails: any, frequencyTime: any) {\r\n const quarterly = ['January, April, July, October', 'February, May, August, November', ' March, June, September, December'];\r\n {\r\n switch (parseInt(frequencyDetails[1])) {\r\n case 1:\r\n this.frequencyPlaceholder = 'Every week for ' + frequencyDetails[3] + ' random instances';\r\n break;\r\n case 2:\r\n this.frequencyPlaceholder =\r\n ' Every ' +\r\n frequencyDetails[2].split(',').map((ele: any) => {\r\n return this.shortMonth[parseInt(ele) - 1];\r\n // tslint:disable-next-line: align\r\n }) +\r\n ' for ' +\r\n frequencyDetails[3] +\r\n ' random instances';\r\n break;\r\n case 3:\r\n this.frequencyPlaceholder = 'Every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' for ' + frequencyDetails[3] + ' random instances';\r\n break;\r\n case 4:\r\n this.frequencyPlaceholder = 'Every year for ' + frequencyDetails[3] + ' random instances';\r\n }\r\n }\r\n }\r\n\r\n onEditWhat(event: any) {\r\n\r\n\r\n setTimeout(() => { // this will make the execution after the above boolean has changed\r\n this.isEditWhat = false;\r\n this.whatInput?.nativeElement?.focus();\r\n }, 0);\r\n }\r\n\r\n getEditMoreOptions(res?: any) {\r\n let checkedMoreOptions = []\r\n if (this.responsibilityForm.objective !== '') {\r\n checkedMoreOptions.push('OBJECTIVE');\r\n this.moreOptions.OBJECTIVE = true;\r\n }\r\n checkedMoreOptions.push('RISK_CLASSIFICATION');\r\n this.moreOptions.RISK_CLASSIFICATION = true;\r\n if (this.responsibilityForm.category.length > 0) {\r\n checkedMoreOptions.push('CATEGORY');\r\n this.moreOptions.CATEGORY = true;\r\n }\r\n\r\n if (this.responsibilityForm.formatAndEvidence.evidenceRequired || this.responsibilityForm.formatAndEvidence.formatRequired) {\r\n checkedMoreOptions.push('FORMATE_EVIDENCE');\r\n this.moreOptions.FORMATE_EVIDENCE = true;\r\n }\r\n if (this.responsibilityForm.rc.length > 0) {\r\n checkedMoreOptions.push('RC');\r\n this.moreOptions.RC = true;\r\n }\r\n\r\n if (this.responsibilityForm.checkpoints.length > 0) {\r\n checkedMoreOptions.push('CHECKPOINTS');\r\n this.moreOptions.CHECKPOINTS = true;\r\n }\r\n\r\n if (this.responsibilityForm.reviewers.list.length > 0) {\r\n checkedMoreOptions.push('REVIEWER');\r\n this.moreOptions.REVIEWER = true;\r\n }\r\n\r\n\r\n if (this.responsibilityForm.overseers.list.length > 0 || this.responsibilityForm.overseers.notifyList.length > 0) {\r\n checkedMoreOptions.push('OVERSEER');\r\n this.moreOptions.OVERSEER = true;\r\n }\r\n\r\n if (this.responsibilityForm.assuranceList.length > 0) {\r\n checkedMoreOptions.push('ASSURANCE');\r\n this.moreOptions.ASSURANCE = true;\r\n }\r\n\r\n if (this.responsibilityForm.requiresAuditList.length > 0) {\r\n checkedMoreOptions.push('REQUIRES_AUDIT');\r\n this.moreOptions.REQUIRES_AUDIT = true;\r\n }\r\n\r\n if (res.questionnaire_type === 'assessment') {\r\n checkedMoreOptions.push('ASSESSMENT');\r\n this.moreOptions.ASSESSMENT = true;\r\n }\r\n\r\n if(res.questionnaire_type === 'assessment_checkpoint') {\r\n checkedMoreOptions.push('CHECKPOINTS_NEW');\r\n this.moreOptions.CHECKPOINTS_NEW = true;\r\n }\r\n\r\n this.populateOption.emit(checkedMoreOptions);\r\n\r\n }\r\n\r\n\r\n // Format & Evidence\r\n testFunction() {\r\n if (this.responsibilityForm.responsibility.name.trim() !== '' && this.isEditWhat === false) {\r\n this.isEditWhat = true;\r\n }\r\n if (this.responsibilityForm.description == '<br>') {\r\n this.responsibilityForm.description = '';\r\n }\r\n if (this.responsibilityForm.objective == '<br>') {\r\n this.responsibilityForm.objective = '';\r\n }\r\n }\r\n\r\n reviewerTypeChange(event: any) {\r\n this.responsibilityForm.reviewers.sequentialWorkflow = event === 'SEQUENTIAL' ? true : false\r\n }\r\n\r\n selectedSampleData(event: number) {\r\n console.log(event)\r\n this.selectedSample = event;\r\n this.tempCheckValue = event;\r\n }\r\n\r\n //populate Assurance List\r\n populateAssuranceList(testPlanCategory: any) {\r\n console.log(\"testPlanCategory testPlanCategory\", testPlanCategory)\r\n this.responsibilityForm.assurance = this.setList(this.assuranceCategoriesList, [testPlanCategory?.category_id], 'category_id');\r\n this.responsibilityForm.audit_category_details = testPlanCategory;\r\n if(testPlanCategory.sample) {\r\n this.isSample = true\r\n this.sampleValue = testPlanCategory.sample;\r\n this.selectedSample = 0;\r\n }\r\n\r\n if(testPlanCategory.percentage) {\r\n this.isSample = true;\r\n this.samplePercentage = testPlanCategory.percentage;\r\n this.selectedSample = 1;\r\n }\r\n this.tempCheckValue = this.selectedSample;\r\n this.sendAuditRemindersValue = testPlanCategory.frequency_pattern ? parseInt(testPlanCategory.frequency_pattern.split('~')[2]) : 2;\r\n this.auditTime = moment(testPlanCategory?.frequency_time, 'HH:mm:ss').format('HH:mm a');\r\n\r\n }\r\n\r\n //on sample toggle on/off\r\n checkInputValue(event: any) {\r\n let key = event.charCode; // key = event.keyCode; (Both can be used)\r\n return ((key > 47 && key < 58) || key == 45 );\r\n\r\n\r\n }\r\n\r\n switchEnable(event: boolean) {\r\n console.log(event)\r\n if(event) {\r\n this.selectedSample = this.tempCheckValue;\r\n } else {\r\n this.selectedSample = -1\r\n }\r\n console.log( this.selectedSample)\r\n\r\n }\r\n\r\n // TODO: select Assessment list and set id to payload\r\n onAssessmentSelect(event: any) {\r\n this.isAssessment = false;\r\n this.responsibilityForm.assessment = event;\r\n }\r\n // TODO: Populate assessment data from already selected data\r\n /**\r\n *\r\n * @param assessmentDetails : selected assessment details like it's object id and category_id\r\n */\r\n getAssessmentDetails(assessmentDetails: any, type?: string) {\r\n this.responsibilityService.getAssessmentDetailsByID(assessmentDetails.assessment_id).subscribe((res: any) => {\r\n if(res.length > 0) {\r\n console.log(\"assessmentDetails?.questionnaire_type ==>\",type, assessmentDetails)\r\n if(type === 'assessment') {\r\n\r\n const categoryDetails = res[0].category.find((ele: any) => ele._id == assessmentDetails.category_id);\r\n this.moreOptions.ASSESSMENT = true;\r\n const assessmentData = {\r\n category_id: assessmentDetails.category_id,\r\n assessment_id: assessmentDetails.assessment_id,\r\n assessmentDetails: {\r\n id: assessmentDetails.assessment_id,\r\n assessment_name: res[0].assessment_name,\r\n questions: res[0].questionsCount\r\n },\r\n category_details: categoryDetails\r\n }\r\n this.responsibilityForm.assessment = JSON.parse(JSON.stringify(assessmentData));\r\n } else {\r\n this.moreOptions.CHECKPOINTS_NEW = true;\r\n this.postAssessment({assessmentDetails:res[0].questions})\r\n }\r\n }\r\n })\r\n }\r\n\r\n // TODO: Remove checkpoints\r\n\r\n onRemoveCheckpoints(type: string) {\r\n console.log(\"type ==>\", type)\r\n this.onRemovingCheckpoint.emit(type)\r\n }\r\n\r\n removeCheckpoint() {\r\n this.moreOptions.CHECKPOINTS = false;\r\n this.responsibilityForm.checkpoints = [];\r\n }\r\n\r\n /**\r\n *\r\n * @param event Assessment details\r\n */\r\n postAssessment(event: any) {\r\n\r\n this.responsibilityForm.new_checkpoints = event.assessmentDetails;\r\n this.checkpointCount = event.assessmentDetails.elements.length;\r\n console.log(\"new checkpoint population\", this.checkpointCount);\r\n this.checkpointCountUpdated.emit(this.checkpointCount);\r\n this.setIsUploaded(false)\r\n }\r\n\r\n\r\n setIsUploaded(event: any) {\r\n if(!event) this.activeDeselector()\r\n this.authService.previewPanel.next(event);\r\n\r\n }\r\n}\r\n\r\n","import { HttpClient, HttpBackend, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { map, retry } from 'rxjs/operators';\r\nimport { AuthService } from './auth.service';\r\nimport { Configurations } from '../configurations';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PolicyService {\r\n env !: any;\r\n constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\r\n if (config) {\r\n this.env = config.envConfig;\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n getCategoriesList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env.policyGet + 'category/dropdownList&type=contract', { headers })\r\n .pipe(retry(2));\r\n }\r\n\r\n // https://devapi.v-comply.com/policy/?mode=category/detailAll\r\n getWorkflowList(payload: any){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.policyPost + 'approvalworkflow/fetchall', {category_id: payload,source_page: \"WORKFLOW_ENGINE\"}, {headers}).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n submitPolicy(payload: any){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.policyPost + 'policy/add', payload, {headers}).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n getReviewers(payload: any){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.policyPost + 'category/detailAll', {categoryId: payload}, {headers}).pipe(\r\n retry(2)\r\n );\r\n }\r\n getRCList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.complianceGet + 'responsibilityCenterTree', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n // getOrganizationUsers() {\r\n // const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n // return this.http\r\n // .get<any[]>(this.env.organizationGet + 'organizationUsers&from=risk', {\r\n // headers,\r\n // })\r\n // .pipe(retry(2));\r\n // }\r\n getOrganizationPeople() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.organizationGet + 'people', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getCategoryWorkFlows(id: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.policyGet + 'approvalworkflow/fetchall&category_id=' + id, { headers }).pipe(retry(2));\r\n }\r\n\r\n\r\n fileUploadWorkroom(payload:any, des:any) {\r\n return this.http.post<any>(this.env.fileUploadEndPoint + des, payload);\r\n }\r\n\r\n saveUploadedFiles(payload: any) {\r\n\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post<any>(this.env.policyPost + 'attachment/create', payload, { headers });\r\n }\r\n uploadFile(data: any, id: string, path: string) {\r\n return this.http.post(this.env.fileUpload + '?id=' + id + '&path=' + path, data).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n uploadDocxFile(data: any, id: string, path: string) {\r\n return this.http.post(this.env.docxUpload + '?id=' + id + '&path=' + path, data).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n savePolicyDetails(uname:any, uid:any, id:any, name:any, html:any, isSendForApprove:any) {\r\n\r\n const payload = JSON.stringify({\r\n policyLogs: JSON.stringify([{\r\n policyName: name,\r\n policyDesc: html,\r\n oldPolicyName: name,\r\n type: 2,\r\n active_flag: 1,\r\n modified_member: [{ modifier_id: uid, modifier_name: uname }],\r\n modified_by: uname,\r\n modified_on: new Date()\r\n }]),\r\n policyDesc: JSON.stringify([{\r\n policyName: name,\r\n policyDesc: html,\r\n oldPolicyName: name,\r\n type: 2,\r\n active_flag: 1,\r\n modified_member: [{ modifier_id: uid, modifier_name: uname }],\r\n modified_by: uname,\r\n modified_on: new Date()\r\n }]),\r\n Is_approval: isSendForApprove\r\n });\r\n\r\n const headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n return this.http.post(this.env.saveDoc + id, payload, { headers });\r\n }\r\n\r\n editPolicy(id:any){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env.policyGet + 'policy/list&obj_id='+id, { headers })\r\n .pipe(retry(2));\r\n }\r\n\r\n\r\n\r\n updatePolicy(payload:any,policyId:any){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.put<any>(this.env.policyPut + 'policy/update&contractId='+policyId, payload, { headers });\r\n\r\n }\r\n\r\n extractFile(extension:any,path:any, id:any) {\r\n if (extension === 'pdf' || extension === 'PDF' ) {\r\n return this.http.get(this.env.linkPdf + '?filePath=' + path + '&id=' + id);\r\n } else {\r\n return this.http.post(this.env.linkDoc, {filePath: path, id});\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { cloneDeep, uniqBy } from 'lodash';\r\nimport { DatePickerComponent } from 'ng2-date-picker';\r\nimport { EditorConfig } from 'vcomply-editor';\r\nimport { ConfirmationAlert } from '../interfaces/confirmation-alert';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\nimport { PolicyForm } from '../workflow-interfaces/create-policy-form';\r\nimport { AuthService } from '../workflow-services/auth.service';\r\nimport { PolicyService } from '../workflow-services/policy.service';\r\nimport { ResponsibilityService } from '../workflow-services/responsibility.service';\r\nimport { UiKitService } from '../workflow-services/ui-kit.service';\r\nimport { PlatformLocation } from '@angular/common';\r\nimport * as moment from 'moment';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FrequencyService } from '../sharedComponents/frequency/frequency.service';\r\nimport { FormatAndEvidenceComponent } from '../sharedComponents/format-and-evidence/format-and-evidence.component';\r\n\r\n@Component({\r\n selector: 'app-workflow-policy',\r\n templateUrl: './workflow-policy.component.html',\r\n styleUrls: ['./workflow-policy.component.less', '../forms.less']\r\n})\r\nexport class WorkflowPolicyComponent implements OnInit {\r\n @Output() pickerChanged = new EventEmitter();\r\n @Input() mode = 'CREATE';\r\n @Input() policyId = '';\r\n @Output() showConfirmationAlert = new EventEmitter();\r\n @ViewChild('datePicker') datePicker!: DatePickerComponent;\r\n @Output() populateOption = new EventEmitter();\r\n @Output() disconnectRefresh = new EventEmitter();\r\n @Output() shiftToEditMode = new EventEmitter();\r\n @Input() convertFileData: any = {}\r\n @Input() selectedCategory = ''\r\n\r\n\r\n @ViewChild('formatEvidence') formatEvidence!: FormatAndEvidenceComponent;\r\n\r\n\r\n description: EditorConfig = {\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Add a description for this policy.',\r\n };\r\n workflowType = 'SEQUENTIAL'\r\n scrollToBottom = false;\r\n navigateToDocumentsSection = false;\r\n\r\n activeSelector = '';\r\n rcList: any = [];\r\n usersList: any = [];\r\n allApprovers: any = [];\r\n allReviewers: any = [];\r\n assigneesList: any = [];\r\n reviewersList: any = [];\r\n overseersList: any = [];\r\n rcListLoaded = false;\r\n usersListLoaded = false;\r\n categoryList: any = [];\r\n groupsList: any[] = [];\r\n workFlowList: any[] = [];\r\n approverWorkFlowList: any[] = [];\r\n submitted = false;\r\n\r\n loader = false;\r\n categoriesListLoaded = false;\r\n groupsListLoaded = false;\r\n categoryConfig = {\r\n panelTitle: 'Select Category',\r\n floatingTextSingular: 'Category selected',\r\n floatingTextPlural: 'Categories selected',\r\n searchPlaceholder: 'Search Category',\r\n searchEnabled: true,\r\n selectAllEnabled: true\r\n }\r\n approvalWorkflowConfig = {\r\n panelTitle: 'Select user(s)',\r\n floatingTextSingular: 'User selected',\r\n floatingTextPlural: 'Users selected',\r\n searchPlaceholder: 'Search User',\r\n searchEnabled: true,\r\n selectAllEnabled: true\r\n }\r\n\r\n\r\n addMoreLevels = false;\r\n approversListIndex = 0;\r\n workflowList = ['SEQUENTIAL', 'ROUND-ROBIN', 'ANY ONE'];\r\n datePickerOverlay = false;\r\n dateConfig = {\r\n disableKeypress: true,\r\n format: 'DD MMM YYYY',\r\n unSelectOnClick: true,\r\n openOnClick:false,\r\n openOnFocus:false,\r\n min: new Date().getDate().toString(),\r\n };\r\n frequencyDetails = {\r\n pattern: '',\r\n notificationPending: 0,\r\n dateOfModified: 0,\r\n deactivationValue: 0,\r\n selectedReport: 0,\r\n lifecycle: '0000-00-00~~0',\r\n startDate: Math.floor(new Date().getTime() / 1000),\r\n startOnTheDay: Math.floor(new Date().getTime() / 1000),\r\n window: 0,\r\n failed: 0,\r\n time: '11:59 pm',\r\n failedTime: '',\r\n continuous_failed_days: 0\r\n };\r\n reviewerFrequencyDetails = {\r\n pattern: '',\r\n notificationPending: 0,\r\n dateOfModified: 0,\r\n deactivationValue: 0,\r\n selectedReport: 0,\r\n lifecycle: '0000-00-00~~0',\r\n startDate: Math.floor(new Date().getTime() / 1000),\r\n startOnTheDay: Math.floor(new Date().getTime() / 1000),\r\n window: 0,\r\n failed: 0,\r\n time: '11:59 pm',\r\n failedTime: '',\r\n continuous_failed_days: 3\r\n };\r\n frequencyPlaceholder = 'What is the attestation schedule for this policy ?';\r\n reviewerFrequencyPlaceholder = 'When does this policy need to be reviewed ?';\r\n\r\n sideSelectorElements = ['approvalWorkflow', 'assignees', 'approvers', 'reviewer',\r\n 'ccEmail', 'ccFail', 'rc', 'category', 'frequency', 'reviewerFrequency', 'checkpoints']\r\n riskClassification = [\r\n { name: 'LOW', value: 1, class: 'low' },\r\n { name: 'LOW-Medium', value: 2, class: 'low-med' },\r\n { name: 'Medium-High', value: 3, class: 'med-high' },\r\n { name: 'High', value: 4, class: 'high' }\r\n ];\r\n showRiskClassification = true;\r\n showCreateDocuments = false;\r\n organization_id = '';\r\n member_obj_id = '';\r\n memberId = 0;\r\n userInfo !: any;\r\n\r\n policyApprovalFlag = 0;\r\n baseURL = ''\r\n\r\n\r\n constructor(private policyService: PolicyService,\r\n private snackBar: SnackBarService,\r\n private uiKitService: UiKitService,\r\n private authService: AuthService,\r\n private responsibilityService: ResponsibilityService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private frequencyService: FrequencyService,\r\n platformLocation: PlatformLocation,\r\n ) {\r\n this.baseURL = (platformLocation as any).location.origin;\r\n if (this.baseURL == \"http://localhost:4200\") {\r\n this.baseURL = 'https://dev.v-comply.com'\r\n }\r\n }\r\n policyForm: PolicyForm = {\r\n policyName: '',\r\n policyNotes: '',\r\n selectedCategories: [],\r\n selectedApprovers: [],\r\n selectedAssignees: [], //doubt in name\r\n selectedReviewers: [],\r\n\r\n selectedRCs: [],\r\n CCFailEmail: [],\r\n CCEmail: [],\r\n availableOnPortal: false,\r\n acceptSuggestions: false,\r\n requiresSignatureForAttestation: false,\r\n riskRating: 1,\r\n associatedDocuments: {\r\n formatFiles: [],\r\n },\r\n policyDueDate: moment(),\r\n customTags: [],\r\n checkpointDetails: [],\r\n totalQuestion: 0,\r\n passingMarks: 0,\r\n documentsAndLinks: {\r\n formatFiles: [],\r\n formatLinks: [],\r\n },\r\n addResponsibilityCenters: false,\r\n addReviewers: false,\r\n addCheckpoints: false,\r\n addOverseers: false,\r\n addAssociatedDocuments: false,\r\n\r\n failed_time: '',\r\n frequency_details: '',\r\n frequency_text: '',\r\n mark_failed_after: 0,\r\n remind_days_before_due_date: 0,\r\n\r\n reviewFailedAfter: 0,\r\n reviewFailedTime: '',\r\n review_frequency_details: '',\r\n review_frequency_type: '',\r\n review_remind_days_before_due_date: 0,\r\n };\r\n ngOnInit(): void {\r\n this.getRCList();\r\n this.getUsersList();\r\n this.getCategoriesList();\r\n this.getGroupsList();\r\n this.checkWhetherAllListsLoaded();\r\n this.loader = true;\r\n this.authService.getOrganizationDetails().subscribe((res: any) => {\r\n if (!res.enable_riskclass) {\r\n this.showRiskClassification = false;\r\n }\r\n this.organization_id = res._id\r\n });\r\n this.member_obj_id = this.authService.getUserDetails()._id;\r\n this.userInfo = this.authService.getUserDetails().user;\r\n this.memberId = this.authService.getMemberId();\r\n\r\n\r\n }\r\n\r\n /**\r\n * Displays the listing pages the left side of policy form to set and edit the dropdown fields values\r\n * @param type holds name of particular list is to be displayed\r\n * @param event contains boolean value to display the list or not\r\n * @param workflowType it sets the approval workflow type while editing the approval workflow.\r\n */\r\n activateSelector(type: any, event: boolean, workflowType?: any) {\r\n if (workflowType) {\r\n this.workflowType = workflowType\r\n }\r\n this.activeSelector = event ? type : '';\r\n if (this.sideSelectorElements.includes(type)) {\r\n this.pickerChanged.emit(event);\r\n }\r\n\r\n\r\n }\r\n\r\n /**\r\n * Closes the listing pages\r\n */\r\n disableSelector() {\r\n this.activeSelector = '';\r\n this.pickerChanged.emit(false);\r\n }\r\n\r\n /**\r\n * Fetches Responsibility centers list\r\n */\r\n getRCList() {\r\n this.policyService.getRCList().subscribe(res => {\r\n this.rcList = res;\r\n this.rcListLoaded = true;\r\n }, err => {\r\n console.error(err);\r\n this.rcListLoaded = true;\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Fetches organization users list\r\n */\r\n getUsersList() {\r\n this.policyService.getOrganizationPeople().subscribe((res: any) => {\r\n this.usersList = res;\r\n this.usersListLoaded = true;\r\n }, err => {\r\n console.error(err);\r\n this.usersListLoaded = true;\r\n });\r\n }\r\n\r\n /**\r\n * Fetches Policy Categories list\r\n */\r\n getCategoriesList() {\r\n this.policyService.getCategoriesList().subscribe((res: any) => {\r\n this.categoryList = res;\r\n this.categoriesListLoaded = true;\r\n }, err => {\r\n console.error(err);\r\n this.categoriesListLoaded = true;\r\n });\r\n }\r\n\r\n /**\r\n * Fetches organization users groups list\r\n */\r\n getGroupsList() {\r\n this.responsibilityService.getOrganizationGroups().subscribe((res: any) => {\r\n const data = res;\r\n const groups: any = [];\r\n data.forEach((element: any) => {\r\n const obj = {\r\n groupName: element.group_name,\r\n userIds: element.member_ids,\r\n };\r\n groups.push(obj);\r\n });\r\n this.groupsList = groups;\r\n this.groupsListLoaded = true;\r\n }, err => {\r\n console.error(err);\r\n this.groupsListLoaded = true;\r\n });\r\n }\r\n\r\n /**\r\n * Sets the approvers workflow from the selected workflow on Approvers workflow list\r\n * @param event contains selected predefined workflow\r\n */\r\n selectedWorkflowChange(event: any) {\r\n if (event === -1) {\r\n // this.policyForm.selectedApprovers = [];\r\n // this.addMoreLevels = true\r\n // this.activateSelector('approvers', true);\r\n } else {\r\n let data = cloneDeep(event.approval_workflow);\r\n const newArray = data.map((item: any) => {\r\n item.name = item.type\r\n const ids = item.approvers.map((approver: any) => approver.member_id);\r\n item.approvers = this.setList(this.allApprovers, ids, 'member_id');\r\n return item;\r\n });\r\n this.policyForm.selectedApprovers = newArray.filter((level: any) => level.approvers.length > 0)\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Fetches Approvers workflow list based on selected policy categories\r\n * @param id contains selected categories id's\r\n */\r\n getApproverWorkFlow(id: any) {\r\n this.loader = true;\r\n this.policyService.getWorkflowList(id).subscribe((res: any) => {\r\n if (res?.length >= 0) {\r\n this.approverWorkFlowList = res; // getting all approver saved workflows\r\n this.loader = false;\r\n }\r\n }, err => {\r\n console.error(err);\r\n this.loader = false;\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Fetches Approvers and reviewers list based on selected policy categories\r\n * @param categoryIds contains selected categories id's\r\n */\r\n getApproversAndReviewersList(categoryIds: any, approverIds?: any, reviewerIds?: any) {\r\n this.loader = true;\r\n\r\n this.policyService.getReviewers(categoryIds).subscribe((res: any) => {\r\n if (res?.length >= 0) {\r\n res.forEach((element: any) => {\r\n\r\n this.allApprovers = uniqBy(this.allApprovers.concat(element.all_approvers), 'member_id');\r\n this.allReviewers = uniqBy(element.all_approvers.concat(this.allReviewers, element.all_authors), 'member_id');\r\n\r\n });\r\n }\r\n if (approverIds) {\r\n let obj = approverIds;\r\n let approverLevels = []\r\n for (var item in obj) {\r\n const ids = obj[item].approvers.map((approver: any) => approver.member_id);\r\n\r\n let data = {\r\n name: obj[item].type,\r\n approvers: this.setList(this.allApprovers, ids, 'member_id')\r\n }\r\n if (data.name == 'ROUNDROBIN') {\r\n data.name = 'ROUND-ROBIN'\r\n } else if (data.name == 'ANYONE') {\r\n data.name = 'ANY ONE'\r\n }\r\n approverLevels.push(data);\r\n }\r\n this.policyForm.selectedApprovers = approverLevels;\r\n }\r\n if (reviewerIds) {\r\n this.policyForm.selectedReviewers = this.setList(this.allReviewers, reviewerIds, 'member_id');\r\n\r\n }\r\n this.loader = false;\r\n\r\n }, err => {\r\n console.error(err)\r\n this.loader = false;\r\n\r\n });\r\n }\r\n\r\n /*******\r\n * It is to populate more options elements while editing the policy form\r\n */\r\n populateOptionalFields() {\r\n const activatedOptions = [];\r\n if (this.policyForm.addResponsibilityCenters) { activatedOptions.push('RESPONSIBILITY_CENTER'); }\r\n if (this.policyForm.addReviewers) { activatedOptions.push('REVIEWER'); }\r\n if (this.policyForm.addCheckpoints) { activatedOptions.push('CHECKPOINTS'); }\r\n if (this.policyForm.addOverseers) { activatedOptions.push('OVERSEER'); }\r\n if (this.policyForm.addAssociatedDocuments) { activatedOptions.push('ASSOCIATED_DOCUMENTS'); }\r\n\r\n this.populateOption.emit(activatedOptions);\r\n }\r\n /**\r\n * It is to add and remove the elements from More option to the policy Form\r\n * @param event contains details related to checked value, code particular elements from More options\r\n */\r\n addMoreInfo(event: any) {\r\n switch (event.code) {\r\n case 'RESPONSIBILITY_CENTER':\r\n this.policyForm.addResponsibilityCenters = event.checked;\r\n break;\r\n case 'REVIEWER':\r\n this.policyForm.addReviewers = event.checked;\r\n break;\r\n case 'CHECKPOINTS':\r\n this.policyForm.addCheckpoints = event.checked;\r\n break;\r\n case 'OVERSEER':\r\n this.policyForm.addOverseers = event.checked;\r\n break;\r\n case 'ASSOCIATED_DOCUMENTS':\r\n this.policyForm.addAssociatedDocuments = event.checked;\r\n break;\r\n\r\n }\r\n this.scrollToBottom = true;\r\n }\r\n\r\n /**\r\n * It is to ensure whether all required lists on Policy from is loaded from the api call or not\r\n */\r\n checkWhetherAllListsLoaded() {\r\n if (this.rcListLoaded && this.usersListLoaded && this.categoriesListLoaded && this.groupsListLoaded) {\r\n this.refreshAllLists();\r\n if (this.convertFileData && this.convertFileData.fileName) {\r\n this.policyForm.policyName = this.convertFileData.fileName.substring(0, this.convertFileData.fileName.lastIndexOf('.'))\r\n if (this.convertFileData.categoryId) {\r\n this.saveSelectedList('category', [this.convertFileData.categoryId])\r\n }\r\n\r\n }\r\n if (this.selectedCategory) {\r\n this.saveSelectedList('category', [this.selectedCategory])\r\n }\r\n if (this.mode === 'EDIT') {\r\n this.editPolicy();\r\n } else {\r\n this.loader = false;\r\n }\r\n } else {\r\n setTimeout(() => {\r\n this.checkWhetherAllListsLoaded();\r\n }, 300);\r\n }\r\n }\r\n\r\n /**\r\n * Triggers the confirmation popup when availability on Policy portal toggle in ON\r\n * @param event contains toggle value which is always true or false\r\n */\r\n availabilityOnPortal(event: any) {\r\n\r\n if (event) {\r\n const confirmationDetails: ConfirmationAlert = {\r\n isVisible: true,\r\n message: `The policies that you intend to make accessible to the entire organization can be added to the policy portal.\r\n It is like a shared catalog of all active & updated policies that any logged in user can read/ download for reference. \r\n Hence, if this option is enabled, it is not necessary for you to set up an attestation schedule or select\r\n readers to attest the policies.`,\r\n action: 'POLICY_PORTAL',\r\n };\r\n this.showConfirmationAlert.emit(confirmationDetails);\r\n }\r\n }\r\n\r\n /**\r\n * Receives the input from the Confirmation dialog of available on Policy portal\r\n * @param event contains selected option from the confirmation dialog which is always either 'YES' or 'NO'\r\n */\r\n confirmPolicyPortal(event: any) {\r\n this.policyForm.availableOnPortal = (event == 'YES') ? true : false\r\n if (event == 'NO') {\r\n this.policyForm.acceptSuggestions = false;\r\n }\r\n }\r\n\r\n /**\r\n * Sets the policyForm with selected elements from the listing, frequency, file upload components\r\n * @param type defines the particular field on Policy form.\r\n * @param selectedItems contains the list of selected items from the list\r\n */\r\n saveSelectedList(type: string, selectedItems: any) {\r\n switch (type) {\r\n\r\n case 'rc':\r\n this.policyForm.selectedRCs = this.setList(this.rcList, selectedItems, 'item_id');\r\n break;\r\n case 'category':\r\n this.policyForm.selectedCategories = this.setList(this.categoryList, selectedItems, '_id');\r\n const objectIds = this.returnIds(this.policyForm.selectedCategories, '_id')\r\n this.policyForm.selectedApprovers = [];\r\n this.policyForm.selectedReviewers = [];\r\n this.resetReviewerFrequency();\r\n this.policyForm.customTags = [];\r\n this.getApproverWorkFlow(objectIds);\r\n this.getApproversAndReviewersList(objectIds);\r\n this.policyForm.selectedCategories.forEach((element: any) => {\r\n const tag = element.custom_tags;\r\n if (tag.length > 0) {\r\n tag.forEach((tagData: any) => {\r\n const index = this.policyForm.customTags.findIndex((tagElement: any) => tagElement.tagname == tagData.tagname);\r\n if (index == -1) {\r\n this.policyForm.customTags.push(tagData);\r\n }\r\n });\r\n }\r\n });\r\n\r\n break;\r\n case 'assignees':\r\n this.policyForm.selectedAssignees = this.setList(this.assigneesList, selectedItems, 'my_member_id');\r\n this.refreshAllLists();\r\n break;\r\n case 'reviewer':\r\n\r\n this.policyForm.selectedReviewers = this.setList(this.allReviewers, [selectedItems.member_id], 'member_id');\r\n break;\r\n case 'ccEmail':\r\n this.policyForm.CCEmail = this.setList(this.usersList, selectedItems, 'employee_id');\r\n this.refreshAllLists();\r\n break;\r\n case 'ccFail':\r\n this.policyForm.CCFailEmail = this.setList(this.usersList, selectedItems, 'employee_id');\r\n this.refreshAllLists();\r\n break;\r\n case 'approvers':\r\n const approvers = this.setList(this.allApprovers, selectedItems, 'member_id');\r\n if (this.addMoreLevels) {\r\n this.policyForm.selectedApprovers.push({ name: this.workflowType, approvers });\r\n this.addMoreLevels = false;\r\n this.disableSelector();\r\n return;\r\n }\r\n this.policyForm.selectedApprovers[this.approversListIndex] = { name: this.workflowType, approvers };\r\n break;\r\n case 'reviewer_attachments':\r\n\r\n this.policyForm.documentsAndLinks.formatFiles = selectedItems?.files ?? [];\r\n\r\n this.policyForm.documentsAndLinks.formatLinks = selectedItems?.links ?? [];\r\n break;\r\n case 'associatedDocuments':\r\n\r\n this.policyForm.associatedDocuments.formatFiles = selectedItems?.files ?? [];\r\n\r\n break;\r\n case 'checkpoints':\r\n this.policyForm.checkpointDetails = selectedItems?.checkpointDetails ?? [];\r\n this.policyForm.totalQuestion = selectedItems?.checkpointDetails?.length ?? 0;\r\n this.policyForm.passingMarks = selectedItems?.requiredPoint ?? 0;\r\n break;\r\n }\r\n this.disableSelector();\r\n }\r\n\r\n /**\r\n * Removes the particular element from selected list\r\n * @param type defines the particular case\r\n * @param event holds the id or key of element to be removed\r\n * @param removeIndex contains the index of the element to be removed\r\n */\r\n remove(type: any, event: any, removeIndex?: any) {\r\n switch (type) {\r\n case 'rc':\r\n const rcIndex = this.policyForm.selectedRCs.findIndex((rc: any) => rc.rc_id == event.rc_id);\r\n this.policyForm.selectedRCs.splice(rcIndex, 1);\r\n break;\r\n\r\n case 'assignees':\r\n const entrustIndex = this.policyForm.selectedAssignees.findIndex((owner: any) => owner.employee_id == event.employee_id);\r\n this.policyForm.selectedAssignees.splice(entrustIndex, 1);\r\n this.refreshAllLists();\r\n break;\r\n\r\n case 'reviewer':\r\n const reviewerIndex = this.policyForm.selectedReviewers.findIndex((reviewer: any) => reviewer.member_id == event.member_id);\r\n this.policyForm.selectedReviewers.splice(reviewerIndex, 1);\r\n this.resetReviewerFrequency();\r\n break;\r\n case 'ccEmail':\r\n const overseerIndex = this.policyForm.CCEmail.findIndex((overseer: any) => overseer.employee_id == event.employee_id);\r\n this.policyForm.CCEmail.splice(overseerIndex, 1);\r\n this.refreshAllLists();\r\n break;\r\n case 'ccFail':\r\n const overseerNotifyIndex = this.policyForm.CCFailEmail.findIndex((overseerN: any) => overseerN.employee_id == event.employee_id);\r\n this.policyForm.CCFailEmail.splice(overseerNotifyIndex, 1);\r\n this.refreshAllLists();\r\n break;\r\n case 'approvers':\r\n const approversIndex = this.policyForm.selectedApprovers[removeIndex].approvers.findIndex((approver: any) => approver.member_id == event.member_id);\r\n this.policyForm.selectedApprovers[removeIndex].approvers.splice(approversIndex, 1);\r\n if (this.policyForm.selectedApprovers[removeIndex].approvers.length == 0) {\r\n this.policyForm.selectedApprovers.splice(removeIndex, 1)\r\n }\r\n break;\r\n case 'category':\r\n const categoryIndex = this.policyForm.selectedCategories.findIndex((category: any) => category.item_id == event.item_id);\r\n this.policyForm.selectedCategories.splice(categoryIndex, 1);\r\n const tag = event.custom_tags;\r\n if (tag.length > 0) {\r\n tag.forEach((tagData: any) => {\r\n const indexCT = this.policyForm.customTags.findIndex((tagElement: any) => tagElement.tagname == tagData.tagname);\r\n if (indexCT != -1) {\r\n this.policyForm.customTags.splice(indexCT, 1);\r\n }\r\n });\r\n }\r\n const objectIds = this.returnIds(this.policyForm.selectedCategories, '_id')\r\n this.resetReviewerFrequency();\r\n this.policyForm.selectedApprovers.splice(0, this.policyForm.selectedApprovers.length)\r\n\r\n this.policyForm = Object.assign(this.policyForm);\r\n this.policyForm.selectedReviewers = [];\r\n this.getApproverWorkFlow(objectIds);\r\n this.getApproversAndReviewersList(objectIds);\r\n\r\n break;\r\n case 'checkpoints':\r\n this.policyForm?.checkpointDetails.splice(removeIndex, 1);\r\n this.policyForm.totalQuestion -= 1;\r\n this.policyForm.passingMarks -= 1;\r\n break;\r\n case 'workflowLevel':\r\n this.policyForm?.selectedApprovers.splice(removeIndex, 1);\r\n break;\r\n\r\n }\r\n }\r\n /**\r\n * Refreshes the assignees and overseers list such that both list does not contain the same users based on selection\r\n */\r\n refreshAllLists() {\r\n let assigneesIds: any = [];\r\n let reviewersIds: any = [];\r\n let overseerIds: any = [];\r\n const allUsers = cloneDeep(this.usersList);\r\n const assignees = cloneDeep(this.policyForm.selectedAssignees);\r\n const overseerList = cloneDeep(this.policyForm.CCEmail);\r\n const notifyOverseers = cloneDeep(this.policyForm.CCFailEmail);\r\n\r\n assignees?.forEach((user: any) => {\r\n assigneesIds.push(user.employee_id);\r\n });\r\n overseerList?.forEach((user: any) => {\r\n overseerIds.push(user.employee_id);\r\n });\r\n notifyOverseers?.forEach((user: any) => {\r\n overseerIds.push(user.employee_id);\r\n });\r\n\r\n assigneesIds = [...new Set(assigneesIds)];\r\n reviewersIds = [...new Set(reviewersIds)];\r\n overseerIds = [...new Set(overseerIds)];\r\n\r\n\r\n // this.assignorsList = behalfUsers.filter((user: any) => !(reviewersIds.includes(user.member_id) || overseerIds.includes(user.member_id)));\r\n this.assigneesList = allUsers.filter((user: any) => !(reviewersIds.includes(user.employee_id) || overseerIds.includes(user.employee_id)));\r\n\r\n // this.reviewersList = allUsers.filter((user: any) => !(assigneesIds.includes(user.employee_id) || overseerIds.includes(user.employee_id)));\r\n this.overseersList = allUsers.filter((user: any) => !(assigneesIds.includes(user.employee_id) || reviewersIds.includes(user.employee_id)));\r\n }\r\n\r\n /**\r\n * Returns whole list based on selected id's from a particular list elements\r\n * @param list it is the main list which contains all elements list\r\n * @param key contains key to filter selected list from the list\r\n * @param ids selected ids array\r\n */\r\n setList(list: any[], ids: any[], key: string) {\r\n const data: any = [];\r\n ids.forEach((element: any) => {\r\n const index = list.findIndex((listElement: any) => listElement[key] == element);\r\n if (index !== -1) {\r\n data.push(list[index]);\r\n }\r\n });\r\n return data;\r\n }\r\n\r\n /**\r\n * Returns id's from a particular list elements\r\n * @param list actual selected list\r\n * @param key contains key to extract id from the list\r\n */\r\n returnIds(list: any[], key: string) {\r\n return list.map(ele => { if (ele[key]) { return ele[key]; } });\r\n }\r\n\r\n /**\r\n * Sets the reviewer type in approval workflow\r\n * @param event contains selected reviewer type\r\n */\r\n reviewerTypeChange(event: any) {\r\n this.workflowType = event;\r\n }\r\n\r\n /**\r\n * Sets frequency in edit mode\r\n */\r\n frequencyDataPopulation(event: any) { //needs to discuss with backend about edit and default values\r\n const data = {\r\n pattern: event?.frequency_details, //\r\n window: event?.remind_days_before_due_date,\r\n failedAfter: event?.mark_failed_after,\r\n failed_time_utc: '',\r\n lifecycleDetails: '0000-00-00~~0',\r\n timeIn24Hr: event.failed_time != '' ? event.failed_time : '23:59:00',\r\n continuous_failed_days: 0,\r\n startFrom: Math.floor(new Date(event.startDate).getTime() / 1000),\r\n startDate: \"\",\r\n reportId: 0,\r\n timeIn12hr: this.frequencyService.timeIn12(event.failed_time != '' ? event.failed_time : '23:59:00'),\r\n placeholder: event.frequency_text\r\n }\r\n\r\n this.frequencyData(data);\r\n }\r\n\r\n /**\r\n * Sets the selected frequency details in the policyForm\r\n * @param event contains selected frequency details\r\n */\r\n frequencyData(event: any) {\r\n\r\n this.policyForm.frequency_details = event.pattern;\r\n this.policyForm.frequency_text = event.placeholder,\r\n this.policyForm.mark_failed_after = event.failedAfter;\r\n this.policyForm.remind_days_before_due_date = event.window;\r\n this.policyForm.failed_time = event.timeIn24Hr\r\n\r\n this.activateSelector('frequency', false);\r\n const payload = {\r\n frequency_details: event.pattern,\r\n frequency_time: event.timeIn12hr,\r\n reminder_before_days: event.window,\r\n failed_after_days: event.failedAfter,\r\n lifecycle_details: event.lifecycleDetails,\r\n start_of_day_utc: event.startFrom,\r\n on_completion_of: [event.reportId],\r\n dom_utc: Math.floor(Date.now() / 1000),\r\n continuous_failed_days: event.continuous_failed_days,\r\n placeholder: event.placeholder\r\n };\r\n this.frequencyPopulation(payload);\r\n }\r\n\r\n /**\r\n * Populates the frequency field with selected data from frequency component\r\n * @param event contains selected frequency details\r\n */\r\n frequencyPopulation(event: any) {\r\n this.frequencyDetails.pattern = event?.frequency_details;\r\n this.frequencyDetails.failedTime = event?.frequency_time;\r\n this.frequencyDetails.window = event?.reminder_before_days;\r\n this.frequencyDetails.failed = event?.failed_after_days;\r\n this.frequencyDetails.lifecycle = event?.lifecycle_details;\r\n this.frequencyDetails.startDate = event?.start_of_day_utc;\r\n this.frequencyDetails.selectedReport = event?.on_completion_of[0] ?? 0;\r\n this.frequencyDetails.dateOfModified = event?.dom_utc;\r\n this.frequencyDetails.continuous_failed_days = 3;\r\n this.frequencyPlaceholder = (event?.placeholder) ? event.placeholder : 'How often does this policy need to be attested?';\r\n }\r\n\r\n\r\n reviewerFrequencyDataPopulation(event: any) { //needs to discuss with backend about edit and default values\r\n const data = {\r\n pattern: event?.review_frequency_details, //\r\n window: event?.review_remind_days_before_due_date,\r\n failedAfter: event?.reviewFailedAfter,\r\n failed_time_utc: '',\r\n lifecycleDetails: '0000-00-00~~0',\r\n timeIn24Hr: event.reviewFailedTime != '' ? event.reviewFailedTime : '23:59:00',\r\n continuous_failed_days: 0,\r\n startFrom: Math.floor(new Date(event.startDate).getTime() / 1000),\r\n startDate: \"\",\r\n reportId: 0,\r\n timeIn12hr: this.frequencyService.timeIn12(event.reviewFailedTime != '' ? event.reviewFailedTime : '23:59:00'),\r\n placeholder: event.reviewfrequencyDetails\r\n }\r\n\r\n this.reviewerFrequencyData(data);\r\n }\r\n\r\n resetReviewerFrequency() {\r\n this.reviewerFrequencyDetails = {\r\n pattern: '',\r\n notificationPending: 0,\r\n dateOfModified: 0,\r\n deactivationValue: 0,\r\n selectedReport: 0,\r\n lifecycle: '0000-00-00~~0',\r\n startDate: Math.floor(new Date().getTime() / 1000),\r\n startOnTheDay: Math.floor(new Date().getTime() / 1000),\r\n window: 0,\r\n failed: 0,\r\n time: '11:59 pm',\r\n failedTime: '',\r\n continuous_failed_days: 3\r\n };\r\n this.policyForm.reviewFailedAfter = 0;\r\n this.policyForm.review_frequency_details = '';\r\n this.policyForm.review_frequency_type = '';\r\n this.policyForm.review_remind_days_before_due_date = 0;\r\n this.policyForm.reviewFailedTime = '23:59:00';\r\n this.reviewerFrequencyPlaceholder = 'When does this policy need to be reviewed ?';\r\n }\r\n\r\n /**\r\n * Sets the selected reviewer frequency details in the policyForm\r\n * @param event contains selected frequency details\r\n */\r\n reviewerFrequencyData(event: any) {\r\n\r\n this.policyForm.reviewFailedAfter = event.failedAfter;\r\n this.policyForm.review_frequency_details = event.pattern;\r\n this.policyForm.review_frequency_type = event.pattern.split('~')[0];\r\n this.policyForm.review_remind_days_before_due_date = event.window;\r\n this.policyForm.reviewFailedTime = event.timeIn24Hr\r\n\r\n this.activateSelector('reviewerFrequency', false);\r\n const payload = {\r\n frequency_details: event.pattern,\r\n frequency_time: event.timeIn12hr,\r\n reminder_before_days: event.window,\r\n failed_after_days: event.failedAfter,\r\n lifecycle_details: event.lifecycleDetails,\r\n start_of_day_utc: event.startFrom,\r\n on_completion_of: [event.reportId],\r\n dom_utc: Math.floor(Date.now() / 1000),\r\n continuous_failed_days: event.continuous_failed_days,\r\n placeholder: event.placeholder\r\n };\r\n this.reviewerFrequencyPopulation(payload);\r\n }\r\n\r\n /**\r\n * Populates the reviewer frequency field with selected data from frequency component\r\n * @param event contains selected frequency details\r\n */\r\n reviewerFrequencyPopulation(event: any) {\r\n this.reviewerFrequencyDetails.pattern = event?.frequency_details;\r\n this.reviewerFrequencyDetails.failedTime = event?.frequency_time;\r\n this.reviewerFrequencyDetails.window = event?.reminder_before_days;\r\n this.reviewerFrequencyDetails.failed = event?.failed_after_days;\r\n this.reviewerFrequencyDetails.lifecycle = event?.lifecycle_details;\r\n this.reviewerFrequencyDetails.startDate = event?.start_of_day_utc;\r\n this.reviewerFrequencyDetails.selectedReport = event?.on_completion_of[0] ?? 0;\r\n this.reviewerFrequencyDetails.dateOfModified = event?.dom_utc;\r\n this.reviewerFrequencyDetails.continuous_failed_days = 3;\r\n this.reviewerFrequencyPlaceholder = (event?.placeholder) ? event.placeholder : 'When does this policy need to be reviewed ?';\r\n\r\n }\r\n\r\n /**\r\n * Validates the data submitted on create policy form\r\n */\r\n validatePolicy() {\r\n setTimeout(() => {\r\n this.submitted = true;\r\n\r\n }, 100);\r\n const event = this.policyForm.policyName;\r\n const re = / |<br>/g;\r\n this.policyForm.policyName = event.replace(re, '').trim();\r\n\r\n if (!this.policyForm.policyName || this.policyForm.policyName.trim() == ''\r\n || (!this.policyForm.frequency_details && this.policyForm.selectedAssignees.length > 0)\r\n || (this.policyForm.frequency_details && this.policyForm.selectedAssignees.length == 0)\r\n || (!this.policyForm.review_frequency_details && this.policyForm.selectedReviewers.length > 0)\r\n || (this.policyForm.review_frequency_details && this.policyForm.selectedReviewers.length == 0)\r\n || this.policyForm.selectedCategories.length == 0 || \r\n (this.policyForm.selectedApprovers.length == 0 && this.policyApprovalFlag === 0) || (this.formatEvidence && this.formatEvidence.newLink.containsError)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * Makes an api call to create a policy\r\n * @param policy contains policyForm data\r\n */\r\n submitPolicy() {\r\n\r\n this.submitted = false;\r\n const valid = this.validatePolicy();\r\n if (!valid) {\r\n return false;\r\n }\r\n this.loader = true;\r\n this.uiKitService.isLoader = true;\r\n const policy = this.policyForm;\r\n let approversData: any = {}\r\n const policySelectedApprovers = cloneDeep(policy.selectedApprovers);\r\n policySelectedApprovers.forEach((level: any, index: any) => {\r\n if (level.name == 'ROUND-ROBIN') {\r\n level.name = 'ROUNDROBIN'\r\n } else if (level.name == 'ANY ONE') {\r\n level.name = 'ANYONE'\r\n }\r\n approversData['level' + (index + 1)] = {\r\n approvers: level.approvers.map((approver: any) => {\r\n const obj = {\r\n member_id: approver.member_id, approval_flag: false, reject_flag: false, remove_flag: false\r\n }\r\n return obj;\r\n }),\r\n type: level.name,\r\n approval_done: false\r\n }\r\n });\r\n\r\n let reviewerFilesArray = cloneDeep(policy.documentsAndLinks.formatFiles);\r\n const reviewerFiles = reviewerFilesArray.map((file: any) => {\r\n file.name = file.filename;\r\n file.file_path = file.filepath\r\n file.org_name = file.original_filename\r\n delete file.filename;\r\n delete file.filepath;\r\n delete file.original_filename;\r\n delete file.linkSet;\r\n return file;\r\n })\r\n\r\n let attestationFilesArray = cloneDeep(policy.associatedDocuments.formatFiles);\r\n const attestationFiles = attestationFilesArray.map((ele: any) => {\r\n ele.name = ele.filename;\r\n ele.file_path = ele.filepath\r\n ele.original_file_name = ele.original_filename\r\n ele.folder_id = (ele?.folder_id) ? ele.folder_id : 0;\r\n ele.path = (ele?.path) ? ele.path : (ele.filepath + ele.filename);\r\n ele.isLinkSet = ele.linkSet\r\n delete ele.filename;\r\n delete ele.filepath;\r\n delete ele.original_filename;\r\n delete ele.linkSet;\r\n delete ele.file_name;\r\n return ele;\r\n })\r\n const reviewerID = this.returnIds(policy.selectedReviewers, 'member_id')\r\n const payload = {\r\n policy_name: policy.policyName,\r\n notes: policy.policyNotes,\r\n is_portal_enable: (policy.availableOnPortal) ? 1 : 0,\r\n is_suggetion_enable: (policy.acceptSuggestions) ? 1 : 0,\r\n category_id_arr: this.returnIds(policy.selectedCategories, 'item_id'),\r\n approvers: approversData,\r\n group_employeeIds: this.returnIds(policy.selectedAssignees, 'employee_id').toString(),\r\n Is_approval: 0, //needs to check in fe\r\n\r\n associated_documents: attestationFiles,\r\n\r\n custom_tags: JSON.stringify(policy.customTags),\r\n\r\n frequency_details: (policy.frequency_details) ? policy.frequency_details : '',\r\n frequency_text: (policy.frequency_details) ? policy.frequency_text : '',\r\n remind_days_before_due_date: (policy.frequency_details) ? policy.remind_days_before_due_date : 0,\r\n failed_time: (policy.frequency_details) ? policy.failed_time : '',\r\n mark_failed_after: (policy.frequency_details) ? policy.mark_failed_after : '',\r\n // startDate: policy.policyDueDate.toDateString(),\r\n startDate: moment(policy.policyDueDate).format('ddd MMM DD YYYY'),\r\n\r\n ReviewerAttachments: (policy.addReviewers && policy.documentsAndLinks.formatFiles) ? reviewerFiles : [],\r\n ReviewerLinks: (policy.addReviewers && policy.documentsAndLinks.formatLinks) ? policy.documentsAndLinks.formatLinks : [],\r\n ReviewerMemberId: (policy.addReviewers) ? reviewerID[0] : 0,\r\n isReview: (policy.addReviewers && ((policy.documentsAndLinks.formatFiles) || (policy.documentsAndLinks.formatLinks))) ? 1 : 0,\r\n\r\n reviewFailedAfter: (policy.addReviewers && policy.review_frequency_details) ? policy.reviewFailedAfter : 0,\r\n reviewFailedTime: (policy.addReviewers && policy.review_frequency_details) ? policy.reviewFailedTime : '',\r\n review_frequency_details: (policy.addReviewers && policy.review_frequency_details) ? policy.review_frequency_details : '',\r\n review_frequency_type: (policy.addReviewers && policy.review_frequency_details) ? policy.review_frequency_type : '',\r\n review_remind_days_before_due_date: (policy.addReviewers && policy.review_frequency_details) ? policy.review_remind_days_before_due_date : 0,\r\n\r\n entities: this.returnIds(policy.selectedRCs, 'item_id').toString(),\r\n risk_class: policy.riskRating.toString(),\r\n\r\n CCFailEmail: this.returnIds(policy.CCFailEmail, 'employee_email').toString(),\r\n CCEmail: this.returnIds(policy.CCEmail, 'employee_email').toString(),\r\n\r\n checkpointDetails: (policy.addCheckpoints) ? policy.checkpointDetails : [],\r\n totalQuestion: (policy.addCheckpoints && policy.totalQuestion) ? policy.totalQuestion : 0,//\r\n passingMarks: (policy.addCheckpoints && policy.passingMarks) ? policy.passingMarks : 0,//\r\n\r\n policyApprovalFlag: 0,\r\n\r\n is_signature_required: policy.requiresSignatureForAttestation ? 1 : 0,\r\n }\r\n\r\n if (this.mode == 'CREATE') {\r\n this.policyService.submitPolicy(payload).subscribe((res: any) => {\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.policyId = res._id;\r\n if (this.convertFileData?.fileName) {\r\n this.loader = true;\r\n this.linkDocumentWithPolicy(this.convertFileData)\r\n return;\r\n }\r\n this.pickerChanged.emit(true);\r\n this.showCreateDocuments = true;\r\n\r\n },\r\n err => {\r\n console.error(err);\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n\r\n }\r\n );\r\n }\r\n if (this.mode == 'EDIT') {\r\n if (this.policyApprovalFlag !== 0) {\r\n delete payload.approvers\r\n payload.policyApprovalFlag = 2\r\n }\r\n this.policyService.updatePolicy(payload, this.policyId).subscribe((res: any) => {\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.policyId = res._id;\r\n\r\n if (this.navigateToDocumentsSection) {\r\n this.pickerChanged.emit(true);\r\n this.showCreateDocuments = true;\r\n } else {\r\n this.disconnectRefresh.emit(false);\r\n this.snackBar.show('The policy has been updated');\r\n window.location.href = this.baseURL + '/all/policy/workroom?id=' + this.policyId\r\n // this.router.navigate(['/policy/workroom'], { queryParams: { id: this.policyId }, relativeTo: this.route });\r\n // window.location.reload();\r\n\r\n }\r\n\r\n\r\n },\r\n err => {\r\n console.error(err);\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n linkDocumentWithPolicy(document: any) {\r\n if (document.fileName && (document.fileExtension === 'pdf' || document.fileExtension === 'PDF' ||\r\n document.fileExtension === 'docx' || document.fileExtension === 'DOCX')) {\r\n this.policyService.extractFile(document.fileExtension, document.filePath, this.policyId).subscribe((res: any) => {\r\n if (res) {\r\n if (res.message === 'done' || res.content) {\r\n this.loader = false;\r\n if (document.fileExtension === 'docx' || document.fileExtension === 'DOCX') {\r\n\r\n this.router.navigate(['/policy/edit-policy'], { queryParams: { id: this.policyId }, relativeTo: this.route });\r\n\r\n } else if (document.fileExtension === 'pdf' || document.fileExtension === 'PDF') {\r\n\r\n this.router.navigate(['/policy/workroom'], { queryParams: { id: this.policyId }, relativeTo: this.route });\r\n }\r\n }\r\n }\r\n }, (err: any) => {\r\n this.loader = false;\r\n console.error(err);\r\n this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?');\r\n });\r\n } else {\r\n this.loader = false;\r\n this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?');\r\n\r\n }\r\n }\r\n\r\n /**\r\n * opens the date picker on policy form\r\n */\r\n openDatePicker() {\r\n this.datePicker.api.open();\r\n this.datePickerOverlay = true;\r\n // this.setActiveFieldSelector('ISSUE_DATE_TIME', 'ISSUE_DATE_TIME');\r\n }\r\n\r\n /**\r\n * closes the date picker from policy form\r\n */\r\n closeDatePicker(evt: any) {\r\n this.datePickerOverlay = false;\r\n\r\n if (!evt) {\r\n return;\r\n }\r\n if (evt?.date?._d) {\r\n let monthArray = ['Jan', 'Feb', 'Mar', 'Apr', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\r\n const dateValue = new Date(evt?.date?._d).getDate();\r\n const monthValue = monthArray[new Date(evt?.date?._d).getMonth()];\r\n const yearValue = new Date(evt?.date?._d).getFullYear();\r\n const dateStr = `${dateValue} ${monthValue} ${yearValue}`;\r\n }\r\n if (evt?.date?._d) {\r\n this.policyForm.policyDueDate = evt?.date?._d;\r\n }\r\n this.datePicker.api.close();\r\n }\r\n editPolicyFromDocuments() {\r\n this.mode = 'EDIT';\r\n this.shiftToEditMode.emit()\r\n this.pickerChanged.emit(false);\r\n this.showCreateDocuments = false;\r\n this.navigateToDocumentsSection = true;\r\n this.editPolicy();\r\n\r\n }\r\n\r\n checkForCreateDocuments() {\r\n\r\n const data = localStorage.getItem('showCreateDocuments');\r\n this.navigateToDocumentsSection = (data === \"true\") ? true : false;\r\n if (this.navigateToDocumentsSection) {\r\n this.pickerChanged.emit(true);\r\n this.showCreateDocuments = true;\r\n localStorage.removeItem('showCreateDocuments');\r\n }\r\n }\r\n\r\n editPolicy() {\r\n this.mode = 'EDIT'\r\n\r\n\r\n if (this.policyId) {\r\n this.policyService.editPolicy(this.policyId).subscribe((res: any) => {\r\n\r\n const data = res[0];\r\n const categoryIds = data.category_details_arr.map((id: any) => id.catObjId);\r\n this.policyApprovalFlag = data.policyApprovalFlag;\r\n this.getApproverWorkFlow(categoryIds)\r\n this.getApproversAndReviewersList(categoryIds, data.approvers, [data.ReviewerMemberId])\r\n this.populatePolicyForm(data, categoryIds);\r\n this.frequencyDataPopulation(data)\r\n this.reviewerFrequencyDataPopulation(data)\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n }\r\n\r\n populatePolicyForm(data: any, categoryIds: any) {\r\n\r\n\r\n const reviewerFiles = data.ReviewerAttachments.map((file: any) => {\r\n file.filename = file.name\r\n file.filepath = file.file_path\r\n file.original_filename = file.org_name\r\n file.file_name = file.org_name\r\n file.linkSet = ''\r\n delete file.name\r\n delete file.file_path\r\n delete file.org_name\r\n\r\n return file;\r\n })\r\n const attestationFiles = data.associated_documents.map((ele: any) => {\r\n ele.filename = ele.name\r\n ele.filepath = ele.file_path\r\n ele.original_filename = ele.original_file_name\r\n ele.file_name = ele.original_file_name\r\n ele.linkSet = ele.isLinkSet\r\n delete ele.name;\r\n delete ele.file_path;\r\n delete ele.original_file_name;\r\n delete ele.isLinkSet;\r\n return ele;\r\n })\r\n const group_employeeIds = data.group_employeeNames.map((id: any) => id.employee_id);\r\n\r\n this.policyForm.selectedCategories = this.setList(this.categoryList, categoryIds, '_id');\r\n this.policyForm.policyName = data.policy_name,\r\n this.policyForm.policyNotes = data.notes,\r\n this.policyForm.customTags = (data.custom_tags) ? data.custom_tags : [];\r\n\r\n this.policyForm.selectedAssignees = (group_employeeIds.length > 0) ? this.setList(this.assigneesList, group_employeeIds, 'employee_id') : []; //doubt in name\r\n\r\n this.policyForm.selectedRCs = (data.entities) ? this.setList(this.rcList, data.entities.split(','), 'item_id') : [];\r\n this.policyForm.CCFailEmail = (data.CCFailEmail) ? this.setList(this.overseersList, data.CCFailEmail, 'employee_email') : [];\r\n this.policyForm.CCEmail = (data.CCEmail) ? this.setList(this.overseersList, data.CCEmail.split(','), 'employee_email') : [];\r\n this.policyForm.availableOnPortal = data.enablePortal ? true : false;\r\n this.policyForm.acceptSuggestions = data.enableSuggetion ? true : false;\r\n this.policyForm.requiresSignatureForAttestation = data.is_signature_required ? true : false;\r\n this.policyForm.riskRating = (data.risk_class) ? Number(data.risk_class) : 1;\r\n this.policyForm.associatedDocuments = (data.associated_documents) ? {\r\n formatFiles: attestationFiles\r\n } : { formatFiles: [] };\r\n this.policyForm.policyDueDate = (data.startDate) ? moment(data.startDate) : moment();\r\n this.policyForm.checkpointDetails = (data.checkpoints) ? data.checkpoints : [];\r\n this.policyForm.totalQuestion = (data.total_marks) ? data.total_marks : 0;\r\n this.policyForm.passingMarks = (data.pass_marks) ? data.pass_marks : 0;\r\n this.policyForm.documentsAndLinks = (data.ReviewerAttachments) ? {\r\n formatFiles: reviewerFiles,\r\n formatLinks: data.ReviewerLinks,\r\n } : { formatFiles: [], formatLinks: [] };\r\n this.policyForm.addResponsibilityCenters = this.policyForm.selectedRCs.length > 0 ? true : false;\r\n this.policyForm.addReviewers = (data.ReviewerMemberId) ? true : false;\r\n this.policyForm.addCheckpoints = (this.policyForm.checkpointDetails.length > 0) ? true : false;\r\n this.policyForm.addOverseers = (this.policyForm.CCFailEmail.length > 0 || this.policyForm.CCEmail.length > 0) ? true : false;\r\n this.policyForm.addAssociatedDocuments = data.associated_documents.length > 0 ? true : false;\r\n\r\n this.populateOptionalFields();\r\n // this.checkForCreateDocuments();\r\n this.loader = false;\r\n\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-more-option',\r\n templateUrl: './more-option.component.html',\r\n styleUrls: ['./more-option.component.less']\r\n})\r\nexport class MoreOptionComponent implements OnInit, OnChanges {\r\n @Input() currentWorkflow = '';\r\n @Input() openedFrom = ''\r\n @Input() isEditMode = false\r\n @Output() selectedOption = new EventEmitter();\r\n @Input() isRCSelected = false;\r\n\r\n placeholderTexts: any = {\r\n AAR: 'Select what additional information you would like to include in the risk.',\r\n CAP: 'Select what additional information you would like to include in the policy.',\r\n CAR: 'Select what additional information you would like to include in the responsibility.',\r\n CAS: 'Select what additional information you would like to include in the survey.',\r\n LAI: 'Select what additional information you would like to include in the issue.',\r\n CAPR:'Select what additional information you would like to include in the program.'\r\n };\r\n\r\n moreOptionsList: any = {\r\n AAR: [\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',\r\n name: 'Risk Overseer',\r\n tooltipTitle: 'Risk Overseer',\r\n tooltipMessage: 'Overseer enables you to designate persons to oversee the risk management process.',\r\n checked: false,\r\n hidden: false,\r\n code: 'OVERSEER'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg',\r\n name: 'Risk Mitigation Priority',\r\n tooltipTitle: 'Risk Mitigation Priority',\r\n tooltipMessage: 'This sets the priority level for the mitigation of each risk.',\r\n checked: false,\r\n hidden: false,\r\n code: 'MITIGATION'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/objectives.svg',\r\n name: 'Recommended Mitigation Plans',\r\n tooltipTitle: 'Recommended Mitigation Plans',\r\n tooltipMessage: 'Specify the mitigation plan that can be undertaken to mitigate the risk.',\r\n checked: false,\r\n hidden: false,\r\n code: 'MITIGATION_PLAN'\r\n }\r\n ],\r\n CAP: [\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg',\r\n name: 'Responsibility Center',\r\n tooltipTitle: 'Responsibility Center',\r\n tooltipMessage: `Responsibility Centers represent your organizational and\r\n operational infrastructure. You can attribute a policy to one or more Responsibility Centers.\r\n Where you attribute a policy to a Responsibility Center, that policy will be shown as a policy\r\n that is required to be attested by all the persons associated with that Responsibility Center.\r\n The performance of a policy assigned to a Responsibility Center will also contribute to the\r\n overall performance of the Responsibility Center.`,\r\n checked: false,\r\n hidden: false,\r\n code: 'RESPONSIBILITY_CENTER'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',\r\n name: 'Reviewer',\r\n tooltipTitle: 'Reviewer',\r\n tooltipMessage: `This options lets you specify a review lifecycle for the policy document.\r\n You can select a reviewer and determine how often the policy needs to be reviewed.`,\r\n checked: false,\r\n hidden: false,\r\n code: 'REVIEWER'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',\r\n name: 'Checkpoints',\r\n tooltipTitle: 'Checkpoints',\r\n tooltipMessage: `Checkpoints enable you to confirm a person’s understanding of the policy document.\r\n You can create questions based on the policy content and require that the reader of the policy\r\n answers these questions correctly before proceeding to complete the attestation.\r\n `,\r\n checked: false,\r\n hidden: false,\r\n code: 'CHECKPOINTS'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',\r\n name: 'Overseer',\r\n tooltipTitle: 'Overseer',\r\n tooltipMessage: `Overseers are persons who oversee the policy.\r\n These persons will receive email notifications about the performance of the policy.\r\n As the person creating the policy, you will automatically receive email notifications about the performance of the policy.\r\n `,\r\n checked: false,\r\n hidden: false,\r\n code: 'OVERSEER'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',\r\n name: 'Associated Documents',\r\n tooltipTitle: 'Associated Documents',\r\n tooltipMessage: `Associated documents are files that might be related to the policy. These could be documents which are related\r\n to the policy or are a subset of the policy that is being created.`,\r\n checked: false,\r\n hidden: false,\r\n code: 'ASSOCIATED_DOCUMENTS'\r\n }\r\n ],\r\n CAR: [\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/objectives.svg',\r\n name: 'Objective',\r\n code: 'OBJECTIVE',\r\n tooltipTitle: 'Objective',\r\n tooltipMessage: 'The objective allows you to specify an objective for the responsibility.',\r\n checked: false,\r\n hidden: false,\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg',\r\n name: 'Responsibility Center',\r\n code: 'RC',\r\n tooltipTitle: 'Responsibility Center',\r\n tooltipMessage: `Responsibility Centers represent your organizational and operational infrastructure.<br>\r\n You can assign a responsibility to one or more Responsibility Centers. Where you assign a responsibility to a Responsibility Center,\r\n that responsibility will be shown as a responsibility that is required to be completed by the Responsibility Center.\r\n The performance of a responsibility assigned to a Responsibility Center will also contribute to the overall performance of the Responsibility Center.`,\r\n checked: false,\r\n hidden: false,\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg',\r\n name: 'Responsibility Category',\r\n code: 'CATEGORY',\r\n tooltipTitle: 'Responsibility Category',\r\n tooltipMessage: `Responsibility Categories enable you to group similar responsibilities together.\r\n Allocating a responsibility to a Responsibility Category allows you to view a group or similar responsibilities at once.\r\n It also allows you to view the performance of those collective responsibilities.`,\r\n checked: false,\r\n hidden: false,\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',\r\n name: 'Format & Evidence',\r\n code: 'FORMATE_EVIDENCE',\r\n tooltipTitle: ' Format & Evidence',\r\n tooltipMessage: 'You can upload a format for this responsibility and you can also require evidence of completion of the responsibility to be provided.',\r\n checked: false,\r\n hidden: false,\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg',\r\n name: 'Assessments',\r\n code: 'ASSESSMENT',\r\n tooltipTitle: ' Assessments',\r\n tooltipMessage: 'Assessments allow you to associate outcome based-questionnaires or self-assessment questionnaires with a responsibility. These need to be completed by the assignee as a part of completing the responsibility.',\r\n checked: false,\r\n hidden: false,\r\n isDisabled: false,\r\n disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',\r\n // name: 'Checkpoints <span *ngIf=\"false\" class=\"checkpoint-version\">V2.0</span> <i class=\"icons depreciation-icon vx-fs-16 vx-ml-2\" appTooltip=\"This is an out-of-date version of the Checkpoints feature. To add checkpoints that are only relevant to this responsibility you can use the new Checkpoints feature. Alternatively, you can use an existing questionnaire template using the Assessments feature.\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\"></i>',\r\n name: 'Checkpoints <i class=\"icons depreciation-icon vx-fs-16 vx-ml-2\" appTooltip=\"This is an out-of-date version of the Checkpoints feature. To add checkpoints that are only relevant to this responsibility you can use the new Checkpoints feature. Alternatively, you can use an existing questionnaire template using the Assessments feature.\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\"></i>',\r\n code: 'CHECKPOINTS',\r\n tooltipTitle: 'Checkpoints',\r\n tooltipMessage: 'This is an out-of-date version of the Checkpoints feature. To add checkpoints that are only relevant to this responsibility you can use the new Checkpoints feature. Alternatively, you can use an existing questionnaire template using the Assessments feature.',\r\n checked: false,\r\n hidden: false,\r\n isDisabled: false,\r\n disabledMessage: 'The checkpoints feature is replaced with the new & enhanced assessment functionality. Select the <strong>Assessments</strong> option below to create interactive outcome-based or self-assessment questionnaires.'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',\r\n name: 'Checkpoints',\r\n code: 'CHECKPOINTS_NEW',\r\n tooltipTitle: 'Checkpoints',\r\n tooltipMessage: 'Checkpoints allow you to specify multiple steps for a specific responsibility which need to be completed as part of completing the responsibility. Often checkpoints are used to replace instruction manuals.',\r\n checked: false,\r\n hidden: false,\r\n isDisabled: false,\r\n disabledMessage: 'New Checkpoints can be linked with a responsibility only after removing the out-of-date version of the Checkpoints.'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg',\r\n name: 'Risk Classification',\r\n tooltipTitle: 'Risk Classification',\r\n tooltipMessage: 'You can specify the level of risk that the organization will be exposed to if the responsibility is not completed.',\r\n checked: false,\r\n hidden: false,\r\n code: 'RISK_CLASSIFICATION'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',\r\n name: 'Reviewer',\r\n tooltipTitle: 'Reviewer',\r\n tooltipMessage: 'A Reviewer is a person that is tasked with reviewing the completed responsibility.',\r\n checked: false,\r\n hidden: false,\r\n code: 'REVIEWER'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',\r\n name: 'Overseer',\r\n tooltipTitle: 'Overseer',\r\n tooltipMessage: `Oversight enables you to designate persons to oversee the responsibility.\r\n These persons will receive email notifications about the performance of the responsibility.<br>\r\n As the person creating the responsibility, you will automatically receive email notifications about the performance of the responsibility.`,\r\n checked: false,\r\n hidden: false,\r\n code: 'OVERSEER'\r\n },\r\n // {\r\n // imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/audit.svg',\r\n // name: 'ASSURANCE',\r\n // tooltipTitle: 'REQUIRES AUDIT?',\r\n // tooltipMessage: 'Select the test plan categories that you would like to add this responsibility to.',\r\n // checked: false,\r\n // hidden: false,\r\n // code: 'ASSURANCE',\r\n // isDisabled: true,\r\n // disabledMessage: 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.'\r\n // },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/audit.svg',\r\n name: 'ASSURANCE',\r\n tooltipTitle: 'ASSURANCE',\r\n tooltipMessage: 'Select the test plan categories that you would like to add this responsibility to.',\r\n checked: false,\r\n hidden: false,\r\n code: 'ASSURANCE'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/audit.svg',\r\n name: 'REQUIRES AUDIT?',\r\n tooltipTitle: 'REQUIRES AUDIT?',\r\n tooltipMessage: 'Select the test plan categories that you would like to add this responsibility to.',\r\n checked: false,\r\n hidden: false,\r\n code: 'REQUIRES_AUDIT',\r\n isDisabled: true,\r\n disabledMessage: 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.'\r\n },\r\n // {\r\n // imageUrl: 'https://cdn.v-comply.com/risk-mitigation-priority.svg',\r\n // name: 'Add an app',\r\n // tooltipTitle: '',\r\n // tooltipMessage: '',\r\n // checked: false,\r\n // hidden: false,\r\n // code: 'APPS'\r\n // }\r\n ],\r\n CAS: [\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg',\r\n name: 'Responsibility Center',\r\n tooltipTitle: '',\r\n tooltipMessage: '',\r\n checked: false,\r\n hidden: false,\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',\r\n name: 'Format & Evidence',\r\n tooltipTitle: '',\r\n tooltipMessage: '',\r\n checked: false,\r\n hidden: false,\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',\r\n name: 'Overseer',\r\n tooltipTitle: '',\r\n tooltipMessage: '',\r\n checked: false,\r\n hidden: false,\r\n }\r\n ],\r\n\r\n LAI: [\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/exception-type.svg',\r\n name: 'Exception type',\r\n tooltipTitle: 'Exception type',\r\n tooltipMessage: 'Exception type lets you specify whether there is a design or an operational effectiveness problem.',\r\n checked: false,\r\n hidden: false,\r\n code: 'EXCEPTION_TYPE'\r\n },\r\n // {\r\n // imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/issue-type.svg',\r\n // name: 'Issue type',\r\n // tooltipTitle: '',\r\n // tooltipMessage: '',\r\n // checked: false,\r\n // hidden: false,\r\n // code: 'ISSUE_TYPE'\r\n // },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg',\r\n name: 'Priority',\r\n tooltipTitle: 'Priority',\r\n tooltipMessage: 'This sets the priority level for resolving each issue.',\r\n checked: false,\r\n hidden: false,\r\n code: 'PRIORITY',\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg',\r\n name: 'Associated Risks',\r\n tooltipTitle: 'Associated Risks',\r\n tooltipMessage: 'Associated risks lets you specify the risks that are related to this issue.',\r\n checked: false,\r\n hidden: false,\r\n code: 'ASSOCIATED_RISKS'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',\r\n name: 'Overseer',\r\n tooltipTitle: 'Overseer',\r\n tooltipMessage: 'Overseers are the persons responsible for overseeing an issue. These persons will receive email notifications about the issue status. As the person reporting this issue, you will automatically receive such email notifications.',\r\n checked: false,\r\n hidden: false,\r\n code: 'OVERSIGHT'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',\r\n name: 'Evidence',\r\n tooltipTitle: 'Evidence',\r\n tooltipMessage: 'You can require that the person resolving the issue uploads evidence to confirm',\r\n checked: false,\r\n hidden: false,\r\n code: 'EVIDENCE'\r\n }\r\n ],\r\n CAPR : [\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',\r\n name: 'Reviewer',\r\n tooltipTitle: 'Reviewer',\r\n tooltipMessage: `This options lets you specify a review lifecycle for the policy document.\r\n You can select a reviewer and determine how often the policy needs to be reviewed.`,\r\n checked: false,\r\n hidden: false,\r\n code: 'REVIEWER'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',\r\n name: 'Overseer',\r\n tooltipTitle: 'Overseer',\r\n tooltipMessage: 'Overseer enables you to designate persons to oversee the risk management process.',\r\n checked: false,\r\n hidden: false,\r\n code: 'OVERSEER'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg',\r\n name: 'Assessments',\r\n code: 'ASSESSMENT',\r\n tooltipTitle: ' Assessments',\r\n tooltipMessage: 'Assessments allow you to associate outcome based-questionnaires or self-assessment questionnaires with a responsibility. These need to be completed by the assignee as a part of completing the responsibility.',\r\n checked: false,\r\n hidden: false,\r\n isDisabled: false,\r\n disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.'\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',\r\n name: 'Evidence',\r\n code: 'FORMATE_EVIDENCE',\r\n tooltipTitle: 'Evidence',\r\n tooltipMessage: 'You can also require evidence of completion of the responsibility to be provided.',\r\n checked: false,\r\n hidden: false,\r\n },\r\n {\r\n imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/custom-fields.svg',\r\n name: 'Custom Fields',\r\n code: 'CUSTOM_FIELDS',\r\n tooltipTitle: ' Custom Fields',\r\n tooltipMessage: 'You can upload a format for this responsibility and you can also require evidence of completion of the responsibility to be provided.',\r\n checked: false,\r\n hidden: false,\r\n },\r\n ]\r\n };\r\n\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnChanges(): void {\r\n if(!this.isRCSelected) {\r\n this.moreOptionsList.CAR.forEach((ele: any) => {\r\n // if(ele.code === 'ASSURANCE') {\r\n // ele.checked = false;\r\n // }\r\n if(ele.code === 'REQUIRES_AUDIT') {\r\n ele.checked = false;\r\n }\r\n })\r\n } else {\r\n this.moreOptionsList.CAR.forEach((ele: any) => {\r\n // if(ele.code === 'ASSURANCE') {\r\n // ele.isDisabled = false;\r\n // }\r\n if(ele.code === 'REQUIRES_AUDIT') {\r\n ele.isDisabled = false;\r\n }\r\n })\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n const index = this.moreOptionsList.CAR.findIndex((ele: any) => ele.code === 'CHECKPOINTS');\r\n this.moreOptionsList.CAR[index].hidden = this.isEditMode === false ? true : false;\r\n }\r\n\r\n selectMoreOption(event: any, index: number) {\r\n console.log(\"event ==>\", event, this.currentWorkflow, this.moreOptionsList[this.currentWorkflow][index]);\r\n if(this.currentWorkflow === 'CAR' && event.code === 'CHECKPOINTS_NEW' && this.moreOptionsList[this.currentWorkflow][index].checked ) {\r\n\r\n event['checkpoint_new'] = true;\r\n this.selectedOption.emit(event);\r\n } else {\r\n event['checkpoint_new'] = false;\r\n this.moreOptionsList[this.currentWorkflow][index].checked = !event.checked ;\r\n console.log(\"this.moreOptionsList[this.currentWorkflow][index] ===>\", this.moreOptionsList[this.currentWorkflow][index], event.checked)\r\n this.selectedOption.emit(event);\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n populate(evt: any){\r\n console.log(\"event ===>\", evt);\r\n if (this.currentWorkflow){\r\n this.moreOptionsList[this.currentWorkflow].forEach((element: any) => {\r\n if (evt.includes(element.code)){\r\n element.checked = true;\r\n }else{\r\n element.checked = false;\r\n }\r\n if(evt.includes(\"CHECKPOINTS_NEW\")) {\r\n if(element.code === 'CHECKPOINTS') {\r\n element.isDisabled = true;\r\n }\r\n if(element.code === 'ASSESSMENT') {\r\n element.isDisabled = true\r\n }\r\n }\r\n if(evt.includes(\"ASSESSMENT\")) {\r\n if(element.code === 'CHECKPOINTS_NEW') {\r\n element.isDisabled = true;\r\n }\r\n if(element.code === 'CHECKPOINTS') {\r\n element.isDisabled = false\r\n }\r\n }\r\n if(evt.includes(\"CHECKPOINTS\")) {\r\n if(element.code === 'CHECKPOINTS_NEW') {\r\n element.isDisabled = true;\r\n }\r\n if(element.code === 'ASSESSMENT') {\r\n element.isDisabled = true\r\n }\r\n }\r\n });\r\n }\r\n\r\n }\r\n hideElements(hiddenList:any){\r\n if (this.currentWorkflow){\r\n this.moreOptionsList[this.currentWorkflow].forEach((element: any) => {\r\n if (hiddenList.includes(element.code)){\r\n element.hidden = true;\r\n }else{\r\n element.hidden = false;\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n resetAll(workflowType:string){\r\n if(this.moreOptionsList[workflowType]){\r\n this.moreOptionsList[workflowType].forEach((element:any) => {\r\n element.checked = false;\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { cloneDeep } from 'lodash';\r\n@Component({\r\n selector: 'app-owner-list',\r\n templateUrl: './owner-list.component.html',\r\n styleUrls: ['./owner-list.component.less'],\r\n})\r\nexport class OwnerListComponent implements OnInit, OnChanges {\r\n @Input() usersList = [];\r\n @Input() selectedUsers = [];\r\n @Input() userIdKey = '';\r\n @Input() itemNameKey = '';\r\n @Input() itemEmailKey = '';\r\n @Input() showWorkflow!: boolean;\r\n @Input() listHeading = 'Select User(s)';\r\n @Input() searchPlaceholder = 'Search User';\r\n @Input() pluralText: string = '';\r\n @Input() singularText: string = '';\r\n @Input() reviewerWorkflowType: string = 'SEQUENTIAL';\r\n @Input() mode: string = 'CREATE';\r\n@Input() noDataText = ''\r\n@Input() workflowList = ['SEQUENTIAL', 'ANY REVIEWER CAN MARK THIS AS REVIEWED'];\r\n@Input() workflowText = 'Reviewer Workflow';\r\n\r\n @Input() nonRemovableUsersList: any = [];\r\n @Output() saveSelectedList = new EventEmitter();\r\n @Output() closeUsersList = new EventEmitter();\r\n @Output() reviewerWorkflowTypeChange = new EventEmitter();\r\n\r\n search = '';\r\n selectedIds: any[] = [];\r\n animation = false;\r\n\r\n\r\n \r\n constructor() { }\r\n\r\n ngOnChanges(): void {\r\n // console.log(this.workflowList)\r\n // debugger\r\n this.selectedIds = this.selectedUsers.map((ele: any) => { if (ele[this.userIdKey]) { return ele[this.userIdKey]; } });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n }\r\n\r\n selectUser(user: any, mode: any) {\r\n if (mode) {\r\n this.selectedIds.push(user);\r\n } else {\r\n const index = this.selectedIds.findIndex((element: any) => element == user);\r\n this.selectedIds.splice(index, 1);\r\n }\r\n this.setList();\r\n\r\n }\r\n\r\n deleteEvent(event: any) {\r\n const index = this.selectedIds.findIndex((element: any) => element == event[this.userIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n this.setList();\r\n }\r\n\r\n selectAll(mode: any) {\r\n if (mode) {\r\n const list = [...this.usersList];\r\n this.selectedIds = [];\r\n list.forEach(element => {\r\n this.selectedIds.push(element[this.userIdKey]);\r\n });\r\n } else {\r\n this.selectedIds = [...this.nonRemovableUsersList];\r\n }\r\n this.setList();\r\n }\r\n\r\n\r\n setList() {\r\n const data: any = [];\r\n const userList = cloneDeep(this.usersList);\r\n const selectedIds = cloneDeep(this.selectedIds);\r\n selectedIds.forEach((element: any) => {\r\n const index = userList.findIndex((user:any)=>user[this.userIdKey]==element);\r\n if(index!==-1){\r\n data.push(userList[index]);\r\n } \r\n });\r\n // userList.forEach((element: any) => {\r\n // if (selectedIds.includes(element[this.userIdKey])) {\r\n // data.push(element);\r\n // }\r\n // });\r\n this.selectedUsers = data;\r\n }\r\n\r\n checkSelectAll() {\r\n const data = this.usersList.every((user: any) => this.selectedIds.includes(user[this.userIdKey]));\r\n return data;\r\n }\r\n\r\n save(selectedIds: any) {\r\n this.saveSelectedList.emit(selectedIds);\r\n }\r\n\r\n close() {\r\n this.closeUsersList.emit();\r\n }\r\n\r\n workflowTypeChanged(event: string) {\r\n this.reviewerWorkflowType = event;\r\n this.reviewerWorkflowTypeChange.emit(event);\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { CategoryList } from '../../interfaces/categoryList';\r\n// import isEqual from 'lodash-es/isEqual';\r\n@Component({\r\n selector: 'app-category-list',\r\n templateUrl: './category-list.component.html',\r\n styleUrls: ['./category-list.component.less'],\r\n})\r\nexport class CategoryListComponent implements OnInit, OnChanges {\r\n\r\n @Input() categoryList: CategoryList;\r\n @Input() selectedCategory: any = {\r\n type: 'strategic',\r\n selectedCategory: '',\r\n };\r\n search = '';\r\n activeTab: any = 'strategic';\r\n\r\n\r\n animation = false;\r\n @Output() saveSelectedCategory = new EventEmitter();\r\n @Output() closeList = new EventEmitter();\r\n @Output() closeCategoriesList = new EventEmitter();\r\n\r\n\r\n constructor() {\r\n\r\n this.categoryList = {\r\n strategic: {\r\n name: 'STRATEGIC',\r\n data: []\r\n },\r\n operational: {\r\n name: 'OPERATIONAL',\r\n data: []\r\n },\r\n compliance: {\r\n name: 'COMPLIANCE',\r\n data: []\r\n },\r\n others: {\r\n name: 'OTHERS',\r\n data: []\r\n },\r\n };\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.activeTab = this.selectedCategory?.type ?? ''\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n this.selectedCategory = cloneDeep(this.selectedCategory);\r\n }\r\n selectCategory(type: any, category: any) {\r\n this.selectedCategory.type = type;\r\n this.selectedCategory.selectedCategory = category;\r\n }\r\n save() {\r\n this.saveSelectedCategory.emit(this.selectedCategory);\r\n }\r\n deleteEvent(event: any) {\r\n this.selectedCategory.selectedCategory = ''\r\n this.selectedCategory.type = ''\r\n }\r\n\r\nclose(){\r\n this.closeCategoriesList.emit();\r\n}\r\n}\r\n","import { Component, Input, OnInit, Output, EventEmitter, OnChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-floating-bar',\r\n templateUrl: './floating-bar.component.html',\r\n styleUrls: ['./floating-bar.component.less'],\r\n})\r\nexport class FloatingBarComponent implements OnInit, OnChanges {\r\n @Input() selectedData: any;\r\n @Input() displayElementKey = '';\r\n @Input() elementId: any = '';\r\n @Input() singularText = '';\r\n @Input() pluralText = '';\r\n @Input() showNextButton = true;\r\n @Input() showFrequencyText = false;\r\n @Input() showWorkflow = false;\r\n @Input() workflowText = '';\r\n @Input() currentFrequency = '';\r\n @Input() isDisabled = false;\r\n @Input() workflowList = ['SEQUENTIAL', 'ANY REVIEWER CAN MARK THIS AS REVIEWED'];\r\n @Input() selectedWorkflow: any;\r\n @Input() workflowPlaceHolder: any;\r\n @Input() mode: string = 'CREATE';\r\n\r\n @Input() nonRemovableUsersList: any = [];\r\n @Input() removePosition: any;\r\n @Output() closeEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() deleteEvent: EventEmitter<number> = new EventEmitter();\r\n @Output() closeList: EventEmitter<any> = new EventEmitter();\r\n @Output() workflowTypeChanged: EventEmitter<any> = new EventEmitter();\r\n constructor() {\r\n this.selectedData = [];\r\n }\r\n\r\n ngOnChanges() {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n next() {\r\n this.closeEvent.emit(this.selectedData);\r\n }\r\n\r\n deleteSelected(index: number) {\r\n this.deleteEvent.emit(index);\r\n }\r\n close() {\r\n this.closeList.emit();\r\n\r\n }\r\n selectedWorkflowType(event: any) {\r\n // debugger\r\n }\r\n\r\n selectedWorkflowChange(event: any) {\r\n console.log(\"event ==>\", event);\r\n this.workflowTypeChanged.emit(event);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-checkbox',\r\n templateUrl: './cs-checkbox.component.html',\r\n styleUrls: ['./cs-checkbox.component.less'],\r\n})\r\nexport class CsCheckboxComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() ngValue: any;\r\n @Input() value: any;\r\n @Input() readonly = false;\r\n @Output() ngValueChange = new EventEmitter<any>();\r\n @Input() oneLine!: boolean;\r\n checked: boolean | undefined;\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n valueChanged() {\r\n this.ngValueChange.emit(this.ngValue);\r\n }\r\n\r\n chileClick(event: any){\r\n event.stopPropagation();\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-radio',\r\n templateUrl: './cs-radio.component.html',\r\n styleUrls: ['./cs-radio.component.less'],\r\n})\r\nexport class CsRadioComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() readonly!: boolean;\r\n @Input() name!: string;\r\n @Input() checked!: boolean;\r\n @Input() value: any;\r\n @Output() checkedEvent = new EventEmitter();\r\n @Input() oneLine!: boolean;\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n\r\n console.log(\"this.selected index\", this.checked, this.value)\r\n }\r\n changeState(evt: any) {\r\n this.checkedEvent.emit(evt);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-switch',\r\n templateUrl: './cs-switch.component.html',\r\n styleUrls: ['./cs-switch.component.less'],\r\n})\r\nexport class CsSwitchComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() ngValue: any;\r\n @Input() value: any;\r\n @Output() ngValueChange = new EventEmitter<any>();\r\n @Input() tooltipMessage: any;\r\n @Input() position: any;\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n // console.log(this.value);\r\n }\r\n valueChanged() {\r\n this.ngValueChange.emit(this.ngValue);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-radio-group',\r\n templateUrl: './cs-radio-group.component.html',\r\n styleUrls: ['./cs-radio-group.component.less'],\r\n})\r\nexport class CsRadioGroupComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-select',\r\n templateUrl: './cs-select.component.html',\r\n styleUrls: ['./cs-select.component.less'],\r\n})\r\nexport class CsSelectComponent implements OnInit {\r\n @Input() dataList!: any[];\r\n @Input() dropdownLabel!: string;\r\n @Input() displayProperty!: string;\r\n @Input() selectedValue!: string;\r\n @Input() isRequired!: boolean;\r\n @Input() dropdownSubLabel!: string;\r\n @ViewChild('option') option!: ElementRef;\r\n\r\n @Output() selectedData = new EventEmitter();\r\n @Output() selectedValueChange = new EventEmitter();\r\n @Input() placeholder: any;\r\n @Input() stylex: any;\r\n @Input() valueKey: any;\r\n @Input() colorBlock: any;\r\n @Input() colorCode: any;\r\n\r\n dropdownOption = false;\r\n positionReset!: boolean;\r\n getLeft!: number;\r\n getTop!: number;\r\n getWidth!: number;\r\n maxWidth!: number;\r\n activeDoropdown = false;\r\n\r\n private optionList!: ElementRef;\r\n\r\n @ViewChild('optionList') set content(content: ElementRef) {\r\n if (content) {\r\n // initially setter gets called with undefined\r\n this.optionList = content;\r\n }\r\n }\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n // console.log(this.dropdownLabel);\r\n // console.log(this.dataList);\r\n\r\n if (this.selectedValue === undefined || this.selectedValue === '' || this.selectedValue === null) {\r\n this.selectedValue = '--';\r\n }\r\n }\r\n openDropdown(event: any): void {\r\n this.dropdownOption = true;\r\n setTimeout(() => {\r\n const dropdown = event.target.getBoundingClientRect();\r\n const selectOption = this.optionList.nativeElement.offsetHeight;\r\n if (dropdown.top + selectOption * 2 > window.innerHeight) {\r\n this.getTop = dropdown.top - selectOption;\r\n } else {\r\n this.getTop = dropdown.top + dropdown.height;\r\n }\r\n this.getLeft = dropdown.left;\r\n this.getWidth = dropdown.width;\r\n this.maxWidth = dropdown.width * 1.25;\r\n this.activeDoropdown = true;\r\n }, 10);\r\n }\r\n selectOption(selectedData: any) {\r\n if (typeof selectedData === 'object') {\r\n this.selectedValue = selectedData[this.displayProperty];\r\n this.selectedData.emit(selectedData);\r\n } else {\r\n this.selectedValue = selectedData;\r\n this.selectedData.emit(selectedData);\r\n }\r\n this.dropdownOption = false;\r\n }\r\n closeDropdown() {\r\n this.dropdownOption = false;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'pascal',\r\n})\r\nexport class PascalPipe implements PipeTransform {\r\n transform(value: string, ...args: unknown[]): unknown {\r\n if (typeof value !== 'string') {\r\n return value;\r\n }\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n}\r\n","import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-checkbox-indeterminate',\r\n templateUrl: './cs-checkbox-indeterminate.component.html',\r\n styleUrls: ['./cs-checkbox-indeterminate.component.less']\r\n})\r\nexport class CsCheckboxIndeterminateComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() ngValue: any;\r\n @Input() value: any;\r\n @Output() ngValueChange = new EventEmitter<any>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n valueChanged() {\r\n const emitValue = {\r\n value: this.value,\r\n checked: this.ngValue\r\n }\r\n this.ngValueChange.emit(emitValue);\r\n }\r\n\r\n chileClick(event: any){\r\n event.stopPropagation();\r\n }\r\n\r\n}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CsCheckboxComponent } from './cs-checkbox/cs-checkbox.component';\r\nimport { CsRadioComponent } from './cs-radio/cs-radio.component';\r\nimport { CsSwitchComponent } from './cs-switch/cs-switch.component';\r\nimport { CsRadioGroupComponent } from './cs-radio-group/cs-radio-group.component';\r\nimport { CsSelectComponent } from './cs-select/cs-select.component';\r\nimport { PascalPipe } from './pipes/pascal.pipe';\r\nimport { CsCheckboxIndeterminateComponent } from './cs-checkbox-indeterminate/cs-checkbox-indeterminate.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n CsCheckboxComponent,\r\n CsRadioComponent,\r\n CsSwitchComponent,\r\n CsRadioGroupComponent,\r\n CsSelectComponent,\r\n PascalPipe,\r\n CsCheckboxIndeterminateComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n CsCheckboxComponent,\r\n CsRadioComponent,\r\n CsSwitchComponent,\r\n CsRadioGroupComponent,\r\n CsSelectComponent,\r\n CsCheckboxIndeterminateComponent\r\n ],\r\n})\r\nexport class FormgroupModule {}\r\n","import { Directive, Input, ElementRef, HostListener, Renderer2, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appTooltip]',\r\n})\r\nexport class ToolTipDirective implements OnInit {\r\n @Input('appTooltip') tooltipTitle!: string;\r\n @Input() placement!: string;\r\n @Input() type: any;\r\n @Input() tooltipMandatory!: boolean;\r\n @Input() showTooltip = true;\r\n @Input() animate!: boolean;\r\n tooltip!: HTMLElement;\r\n offset = 8;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n ngOnInit() {}\r\n @HostListener('mouseenter') onMouseEnter() {\r\n this.hide();\r\n this.show();\r\n }\r\n @HostListener('mouseover') onMouseOver() {\r\n this.hide();\r\n this.show();\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n this.hide();\r\n }\r\n @HostListener('mouseout') onMouseOut() {\r\n this.hide();\r\n }\r\n @HostListener('click') onClick() {\r\n this.hide();\r\n }\r\n show() {\r\n if (!this.showTooltip || !this.tooltipTitle) {\r\n return;\r\n }\r\n this.create();\r\n const element = this.el.nativeElement;\r\n if (this.tooltipMandatory === true) {\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip-show');\r\n } else {\r\n if (element.scrollWidth * element.scrollHeight > element.offsetWidth * element.offsetHeight) {\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip-show');\r\n }\r\n }\r\n }\r\n\r\n hide() {\r\n if (document.body.contains(this.tooltip)) {\r\n if (this.renderer) {\r\n this.renderer.removeChild(document.body, document.getElementById('tooltip'));\r\n }\r\n }\r\n }\r\n\r\n create() {\r\n this.tooltip = this.renderer.createElement('span');\r\n this.tooltip.setAttribute('id', 'tooltip');\r\n this.tooltip.innerHTML = this.tooltipTitle;\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip');\r\n this.renderer.addClass(this.tooltip, `ng-tooltip-${this.placement}`);\r\n this.renderer.addClass(this.tooltip, `${this.type}`);\r\n if (this.animate) {\r\n this.renderer.addClass(this.tooltip, `animate-${this.placement}`);\r\n }\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltip.getBoundingClientRect();\r\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n const w = window.innerWidth;\r\n const h = window.innerHeight;\r\n let top;\r\n let left;\r\n if (this.placement === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.placement === 'bottom') {\r\n if (hostPos.top + tooltipPos.height > h) {\r\n top = hostPos.top - tooltipPos.height;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n this.renderer.removeClass(this.tooltip, `ng-tooltip-bottom`);\r\n this.renderer.addClass(this.tooltip, `ng-tooltip-top`);\r\n } else {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n }\r\n\r\n if (this.placement === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.placement === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n if (this.placement === 'bottom-right') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left - (tooltipPos.width - 28);\r\n }\r\n if (this.placement === 'bottom-left') {\r\n if (hostPos.top + tooltipPos.height > h - 30) {\r\n top = hostPos.top - tooltipPos.height;\r\n console.log('bottom left', hostPos.top - tooltipPos.height);\r\n left = hostPos.left;\r\n this.renderer.removeClass(this.tooltip, `ng-tooltip-bottom-left`);\r\n this.renderer.addClass(this.tooltip, `ng-tooltip-top-left`);\r\n } else {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left;\r\n }\r\n }\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToolTipDirective } from './tooltip.directive';\r\n\r\n@NgModule({\r\n declarations: [ToolTipDirective],\r\n imports: [CommonModule],\r\n exports: [ToolTipDirective],\r\n})\r\nexport class TooltipModule {}\r\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { cloneDeep } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-responsibility-centers-list',\r\n templateUrl: './responsibility-centers-list.component.html',\r\n styleUrls: ['./responsibility-centers-list.component.less']\r\n})\r\nexport class ResponsibilityCentersListComponent implements OnInit, OnChanges {\r\n @ViewChild('listBlock',{ static: false }) listBlock!: ElementRef;\r\n @Input() responsibilityCentersList = [];\r\n @Input() selectedResponsibilityCenters = [];\r\n @Input() rcIdKey = '';\r\n @Input() radioSelection = false;\r\n @Output() saveSelectedList = new EventEmitter();\r\n @Output() closeRcList = new EventEmitter();\r\n @Input() pluralText: string = 'Responsibility Centers selected';\r\n @Input() singularText: string = 'Responsibility Center selected';\r\n selectedIds: any[] = [];\r\n animation = false;\r\n search = '';\r\n blockWidth: any;\r\n constructor() { }\r\n\r\n ngOnChanges(): void {\r\n this.selectedIds = this.selectedResponsibilityCenters.map((ele: any) => { if (ele[this.rcIdKey]) { return ele[this.rcIdKey]; } });\r\n }\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n setTimeout(() => {\r\n this.blockWidth = this.listBlock.nativeElement.offsetWidth;\r\n }, 10);\r\n }\r\n\r\n selectRc(rc: any, mode: any) {\r\n if (this.radioSelection) {\r\n if (mode) {\r\n this.selectedIds=[];\r\n this.selectedIds.push(rc);\r\n }\r\n this.setList();\r\n }else{\r\n if (mode) {\r\n this.selectedIds.push(rc);\r\n } else {\r\n const index = this.selectedIds.findIndex((element: any) => element == rc);\r\n this.selectedIds.splice(index, 1);\r\n }\r\n this.setList();\r\n }\r\n\r\n\r\n }\r\n deleteEvent(event: any) {\r\n const index = this.selectedIds.findIndex((element: any) => element == event[this.rcIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n this.setList();\r\n }\r\n\r\n selectAll(mode: any) {\r\n if (mode) {\r\n const list = [...this.responsibilityCentersList];\r\n this.selectedIds = [];\r\n list.forEach(element => {\r\n this.selectedIds.push(element[this.rcIdKey]);\r\n });\r\n } else {\r\n this.selectedIds = [];\r\n }\r\n this.setList();\r\n }\r\n\r\n\r\n setList() {\r\n const data: any = [];\r\n const rcList = cloneDeep(this.responsibilityCentersList);\r\n const selectedIds = cloneDeep(this.selectedIds);\r\n rcList.forEach((element: any) => {\r\n if (selectedIds.includes(element[this.rcIdKey])) {\r\n data.push(element);\r\n }\r\n });\r\n this.selectedResponsibilityCenters = data;\r\n }\r\n\r\n checkSelectAll() {\r\n const data = this.responsibilityCentersList.every((rc: any) => this.selectedIds.includes(rc[this.rcIdKey]));\r\n return data;\r\n }\r\n\r\n save(selectedIds: any) {\r\n this.saveSelectedList.emit(selectedIds);\r\n }\r\n\r\n close() {\r\n this.closeRcList.emit();\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-workflow-pagination',\r\n templateUrl: './workflow-pagination.component.html',\r\n styleUrls: ['./workflow-pagination.component.less']\r\n})\r\nexport class WorkflowPaginationComponent implements OnInit {\r\n alphabetsArray!: any;\r\n @Input() activeAlphabet = '';\r\n @Input() pageCount!: number;\r\n @Input() start !:number;\r\n @Input() end !:number;\r\n @Input() total !:number;\r\n @Input() noFilter!: boolean;\r\n public pageArray: Array<number> = [];\r\n @Input() currentPage = 1;\r\n public enterPageNumber!: any;\r\n public isInvalidInput = false;\r\n\r\n @Output() selectedPage: EventEmitter<any> = new EventEmitter();\r\n @Output() selectedAlphabet: EventEmitter<any> = new EventEmitter();\r\n\r\n pageList!: any;\r\n constructor() {\r\n this.alphabetsArray = 'abcdefghijklmnopqrstuvwxyz'.split('');\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n alphabetChange(alphabet: string) {\r\n this.activeAlphabet = alphabet;\r\n this.selectedAlphabet.emit(alphabet);\r\n this.goToPageArrayGenerate(1, false)\r\n }\r\n\r\n ngOnChanges(event: SimpleChanges) {\r\n this.pageArray = [];\r\n if (this.pageCount > 0) {\r\n if (this.pageCount < 5) {\r\n for (let i = 1; i <= this.pageCount; i++) {\r\n this.pageArray.push(i);\r\n }\r\n return;\r\n }\r\n this.goToPageArrayGenerate(this.currentPage,false);\r\n }\r\n }\r\n\r\n\r\n increaseOrDecrease(value: number) {\r\n this.currentPage += value;\r\n if (this.currentPage > 3 && this.currentPage <= this.pageCount && this.pageArray[this.pageArray.length - 1] < this.pageCount) {\r\n if (value > 0) {\r\n this.pageArray.shift();\r\n this.pageArray.push(this.pageArray[this.pageArray.length - 1] + 1);\r\n }\r\n }\r\n\r\n if (this.currentPage > 2 && value < 0 && this.pageArray[0] > 1 && this.currentPage < this.pageCount - 2) {\r\n this.pageArray.pop();\r\n this.pageArray.unshift(this.pageArray[0] - 1);\r\n }\r\n this.selectedPage.emit(this.currentPage);\r\n }\r\n onEnterPress(event: any) {\r\n if (event.key.toLowerCase() === 'enter') {\r\n if (!this.enterPageNumber || this.enterPageNumber > this.pageCount || this.enterPageNumber < 1) {\r\n this.isInvalidInput = true;\r\n return;\r\n } else {\r\n this.isInvalidInput = false;\r\n this.goToPageArrayGenerate(this.enterPageNumber,true);\r\n }\r\n }\r\n }\r\n\r\n\r\n goToPageArrayGenerate(page: any,shouldEmit:boolean) {\r\n this.isInvalidInput = false;\r\n this.currentPage = page;\r\n this.pageArray = [];\r\n if (this.currentPage > 3 && this.currentPage < this.pageCount - 2) {\r\n for (let i = this.currentPage - 2; i < this.currentPage + 3; i++) {\r\n this.pageArray.push(i);\r\n }\r\n } else if (this.currentPage <= 3) {\r\n if (this.pageCount > 4) {\r\n this.pageArray = [1, 2, 3, 4, 5];\r\n } else {\r\n for (let i = 1; i <= this.pageCount; i++) {\r\n this.pageArray.push(i);\r\n }\r\n }\r\n } else if (this.currentPage > this.pageCount - 3) {\r\n for (let i = this.pageCount - 4; i < this.pageCount + 1; i++) {\r\n this.pageArray.push(i);\r\n }\r\n } else {\r\n for (let i = this.currentPage - 2; i < this.currentPage + 2; i++) {\r\n this.pageArray.push(i);\r\n }\r\n }\r\n\r\n if(shouldEmit){\r\n this.selectedPage.emit(this.currentPage);\r\n }\r\n \r\n }\r\n\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-line-loader',\r\n templateUrl: './line-loader.component.html',\r\n styleUrls: ['./line-loader.component.less'],\r\n})\r\nexport class LineLoaderComponent implements OnInit {\r\n @Input() loaderHeight!: any;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LineLoaderComponent } from './line-loader.component';\r\n\r\n@NgModule({\r\n declarations: [LineLoaderComponent],\r\n imports: [CommonModule],\r\n exports: [LineLoaderComponent],\r\n})\r\nexport class LineLoaderModule {}\r\n","import { Component, Input, Output, EventEmitter, SimpleChanges, OnChanges, ChangeDetectionStrategy, OnInit } from '@angular/core';\r\nimport { cloneDeep } from 'lodash';\r\nimport * as XLSX from 'xlsx';\r\nimport { CategoryList } from '../interfaces/categoryList';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\nimport { AddRiskService } from '../workflow-services/add-risk.service';\r\nimport { AuthService } from '../workflow-services/auth.service';\r\n\r\ntype AOA = any[][];\r\n@Component({\r\n selector: 'app-add-multiple-risk',\r\n templateUrl: './add-multiple-risk.component.html',\r\n styleUrls: ['./add-multiple-risk.component.less', '../forms.less'],\r\n\r\n})\r\nexport class AddMultipleRiskComponent implements OnInit, OnChanges {\r\n @Output() pickerChanged = new EventEmitter();\r\n @Output() populateOption = new EventEmitter();\r\n @Output() closeWorkflow = new EventEmitter();\r\n @Output() disconnectRefresh = new EventEmitter();\r\n categoryList: CategoryList = {\r\n strategic: {\r\n name: 'STRATEGIC',\r\n data: []\r\n },\r\n operational: {\r\n name: 'OPERATIONAL',\r\n data: []\r\n },\r\n compliance: {\r\n name: 'COMPLIANCE',\r\n data: []\r\n },\r\n others: {\r\n name: 'OTHERS',\r\n data: []\r\n },\r\n };\r\n\r\n category: any = {\r\n type: 'strategic',\r\n selectedCategory: '',\r\n }\r\n\r\n riskBulkUpload: any = {\r\n header: [],\r\n weightFactors: [],\r\n risks: [],\r\n }\r\n\r\n templateInfo: any = {\r\n memberId: '',\r\n categoryId: '',\r\n ownerList: [],\r\n rcList: [],\r\n mitigationList: [],\r\n likelihood:[],\r\n impact:[],\r\n velocity:[],\r\n vulnerability:[]\r\n }\r\n\r\n isLoader = false;\r\n showCategoryList = false;\r\n templateDownloaded = false;\r\n downloadInProgress = false;\r\n loader = false;\r\n settingsInfo !: any;\r\n isFileEmpty = false;\r\n isWrongFile = false;\r\n isWrongFormat = false;\r\n fileName: any;\r\n data: any;\r\n assessmentDeadLine: any;\r\n showExcel = false;\r\n fileValue:any;\r\n memberId = 0;\r\n organizationId = 0;\r\n errorMessage = \" invalid file error\"\r\n downloadStatus: string = 'NOT_DOWNLOADING';\r\n downloadPercent = 0;\r\n\r\n smileyMessage = `You're All Set! We're uploading the risks. The risk owners will be notified once the risks have been uploaded.`;\r\n actionButtons = [\r\n { buttonText: 'Add More Risks', class: 'white-btn', id: 'addMore' },\r\n { buttonText: 'View Risk', class: 'blue-btn', id: 'viewRisks' },\r\n ];\r\n showSmiley = false;\r\n member_obj_id = '';\r\n defaultOwner = ''\r\n riskData !:any;\r\n constructor(private riskService: AddRiskService,\r\n private authService: AuthService,private snackBar:SnackBarService) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n }\r\n ngOnInit() {\r\n this.pickerChanged.emit(false);\r\n this.getCategoryList();\r\n this.getSettingsInfo();\r\n\r\n this.organizationId = this.authService.getOrganizationId();\r\n this.memberId = this.authService.getMemberId();\r\n this.member_obj_id = this.authService.getUserDetails()._id;\r\n }\r\n getCategoryList() {\r\n this.isLoader = true;\r\n this.riskService.getCategoryList().subscribe((res: any) => {\r\n this.isLoader = false;\r\n this.categoryList.strategic.data = res.strategic_arr;\r\n this.categoryList.operational.data = res.operational_arr;\r\n this.categoryList.compliance.data = res.compliance_arr;\r\n this.categoryList.others.data = res.others_arr;\r\n\r\n }, err => {\r\n console.error(err);\r\n this.isLoader = false;\r\n\r\n });\r\n }\r\n saveSelectedCategory(category: any) {\r\n if(this.category?.selectedCategory?.category_id !=category?.selectedCategory?.category_id){\r\n this.downloadStatus = 'NOT_DOWNLOADING';\r\n }\r\n this.showCategoryList = false;\r\n this.category = category;\r\n const reference = document.querySelector('#scrollReference');\r\n if (reference) {\r\n reference.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }\r\n this.reset();\r\n\r\n }\r\n removeCategory() {\r\n this.category = {\r\n type: 'strategic',\r\n selectedCategory: ''\r\n };\r\n this.reset();\r\n }\r\n getSettingsInfo() {\r\n\r\n this.riskService.getRiskSettingDetails().subscribe(res => {\r\n this.settingsInfo = res;\r\n }, err => {\r\n console.error(err);\r\n });\r\n\r\n }\r\n triggerBrowseFile() {\r\n const getFile = document.getElementById('fileInput');\r\n if (getFile) {\r\n getFile.click();\r\n }\r\n }\r\n\r\n uploadedFile(event: any) {\r\n try {\r\n this.riskBulkUpload = {\r\n header: [],\r\n weightFactors: [],\r\n risks: []\r\n }\r\n this.templateInfo = {\r\n memberId: '',\r\n categoryId: '',\r\n ownerList: [],\r\n rcList: [],\r\n mitigationList: [],\r\n likelihood:[],\r\n impact:[],\r\n velocity:[],\r\n vulnerability:[]\r\n }\r\n const reference = document.querySelector('#scrollReference');\r\n if (reference) {\r\n reference.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }\r\n this.isFileEmpty = false;\r\n this.isWrongFile = false;\r\n this.isWrongFormat = false;\r\n this.fileName = event.target.files[0].name;\r\n\r\n const target: DataTransfer = event.target as DataTransfer;\r\n // tslint:disable-next-line: curly\r\n if (target.files.length !== 1) throw new Error('Cannot use multiple files');\r\n const reader: FileReader = new FileReader();\r\n reader.onload = (e: any) => {\r\n const bstr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\r\n const wsname: string = wb.SheetNames[0];\r\n const wsname1: string = wb.SheetNames[1];\r\n\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n const tempData: XLSX.WorkSheet = wb.Sheets[wsname1];\r\n\r\n this.data = XLSX.utils.sheet_to_json(ws, {\r\n header: 1,\r\n }) as AOA;\r\n\r\n const tData = XLSX.utils.sheet_to_json(tempData, { header: 1 }) as AOA;\r\n const tempList = tData.filter((dataElement: any) => dataElement.length > 0);\r\n this.templateInfo.memberId = tempList[0][56]\r\n this.templateInfo.categoryId = tempList[0][55]\r\n this.riskBulkUpload.header = cloneDeep(this.data[4].filter((dataElement: any) => dataElement.length > 0));\r\n this.riskBulkUpload.weightFactors = cloneDeep(this.data[5].filter((weightFactor: any) => weightFactor.length > 0));\r\n tempList.forEach((element) => {\r\n if (element[8]) {\r\n\r\n const member = {\r\n name: element[8],\r\n member_id: element[9]\r\n }\r\n this.templateInfo.ownerList.push(member);\r\n }\r\n if (element[2]) {\r\n\r\n const mitigation = {\r\n mitigationName: element[2],\r\n mitigation_id: element[3]\r\n }\r\n this.templateInfo.mitigationList.push(mitigation);\r\n }\r\n if (element[6]) {\r\n\r\n const rc = {\r\n rcName: element[6],\r\n rc_id: element[7],\r\n owner_ids: element[11]\r\n }\r\n this.templateInfo.rcList.push(rc);\r\n }\r\n\r\n if (element[12]) { \r\n this.templateInfo.likelihood.push(element[12]);\r\n }\r\n if (element[13]) { \r\n this.templateInfo.impact.push(element[13]);\r\n }\r\n if (this.riskBulkUpload.weightFactors.length >= 3 && element[14]) {\r\n this.templateInfo.velocity.push(element[14]);\r\n }\r\n if (this.riskBulkUpload.weightFactors.length == 4 && element[15]) {\r\n this.templateInfo.vulnerability.push(element[15]);\r\n\r\n }\r\n\r\n\r\n });\r\n\r\n if (this.fileName.substr(-5) !== '.xlsx') {\r\n this.errorMessage = 'The incorrect file has been uploaded. Please upload the template file for Risk Category:' + this.category.selectedCategory.category_name + ' RETRY';\r\n\r\n this.isWrongFile = true;\r\n return;\r\n }\r\n\r\n if (this.riskBulkUpload.header[0] !== 'Risk Name*') {\r\n this.errorMessage = 'The incorrect file has been uploaded. Please upload the template file for Risk Category:' + this.category.selectedCategory.category_name + ' RETRY';\r\n\r\n this.isWrongFile = false;\r\n this.isWrongFormat = true;\r\n\r\n return;\r\n\r\n }\r\n this.data = this.data.slice(7);\r\n const defaultOwner = this.templateInfo.ownerList.findIndex((ele: any) => ele.member_id == this.memberId);\r\n if(defaultOwner !=-1){\r\n this.defaultOwner = this.templateInfo.ownerList[defaultOwner].name\r\n }else{\r\n this.errorMessage = 'The incorrect file has been uploaded. Please upload the template file for Risk Category:' + this.category.selectedCategory.category_name + ' RETRY';\r\n this.isWrongFile = true;\r\n return;\r\n }\r\n\r\n if ((this.member_obj_id != this.templateInfo.memberId) || (this.category.selectedCategory._id != this.templateInfo.categoryId)) {\r\n this.errorMessage = 'The incorrect file has been uploaded. Please upload the template file for Risk Category:' + this.category.selectedCategory.category_name + ' RETRY';\r\n\r\n this.isWrongFile = true;\r\n return;\r\n }\r\n\r\n const isEmpty = this.checkEmptyFile();\r\n if (isEmpty) {\r\n this.errorMessage = 'You have uploaded a blank template. Please add details for all mandatory fields. RETRY';\r\n this.isFileEmpty = true;\r\n this.isWrongFile = false;\r\n this.isWrongFormat = false;\r\n return;\r\n\r\n } else {\r\n if (this.riskBulkUpload.header[6] === 'Risk Assessment Deadline*') {\r\n this.assessmentDeadLine = true;\r\n } else {\r\n this.assessmentDeadLine = false;\r\n }\r\n this.isFileEmpty = false;\r\n this.isWrongFile = false;\r\n this.isWrongFormat = false;\r\n this.fileValue = '';\r\n\r\n }\r\n const riskData = this.data.filter((dataElement: any) => dataElement.length > 0);\r\n\r\n riskData.forEach((risk: any, index: any) => {\r\n\r\n const obj: any = {\r\n riskName: risk[0] ?? '',\r\n description: risk[1] ?? '',\r\n rcName: risk[2] ?? '',\r\n owner: risk[3] ?? '',\r\n mitigationPriority: risk[4] ?? '',\r\n overseer: risk[5] ?? '',\r\n isValid: this.checkValidity(risk),\r\n }\r\n\r\n if (this.assessmentDeadLine) {\r\n obj.assessmentDeadLine = risk[6] ?? '';\r\n obj.likelihood = risk[7] ?? '';\r\n obj.impact = risk[8] ?? '';\r\n if (this.riskBulkUpload.weightFactors.length == 3) {\r\n obj.velocity = risk[9] ?? '';\r\n }\r\n if (this.riskBulkUpload.weightFactors.length == 4) {\r\n obj.velocity = risk[9] ?? '';\r\n obj.vulnerability = risk[10] ?? '';\r\n }\r\n const customTags: any = [];\r\n\r\n this.category.selectedCategory.custom_tag.forEach((tag: any, index: any) => {\r\n if (tag) {\r\n const cTag = {\r\n custom_tag_value: risk[7 + this.riskBulkUpload.weightFactors.length + index] ?? '',\r\n custom_tag_name: tag.tagName\r\n };\r\n customTags.push(cTag);\r\n }\r\n });\r\n obj.customTag = customTags;\r\n } else {\r\n obj.likelihood = risk[6] ?? '';\r\n obj.impact = risk[7] ?? '';\r\n\r\n if (this.riskBulkUpload.weightFactors.length == 3) {\r\n obj.velocity = risk[8] ?? '';\r\n }\r\n if (this.riskBulkUpload.weightFactors.length == 4) {\r\n obj.velocity = risk[8] ?? '';\r\n obj.vulnerability = risk[9] ?? '';\r\n }\r\n const customTags: any = [];\r\n this.category.selectedCategory.custom_tag.forEach((tag: any, index: any) => {\r\n if (tag) {\r\n const cTag = {\r\n custom_tag_value: risk[6 + this.riskBulkUpload.weightFactors.length + index] ?? '',\r\n custom_tag_name: tag.tagName\r\n };\r\n customTags.push(cTag);\r\n }\r\n });\r\n obj.customTag = customTags;\r\n }\r\n if (obj.likelihood && !this.templateInfo.likelihood.includes(obj.likelihood)) { \r\n obj.isValid=false;\r\n }\r\n if (obj.impact && !this.templateInfo.impact.includes(obj.impact)) { \r\n obj.isValid=false;\r\n }\r\n if (obj.velocity && !this.templateInfo.velocity.includes(obj.velocity)) { \r\n obj.isValid=false;\r\n }\r\n if (obj.vulnerability && !this.templateInfo.vulnerability.includes(obj.vulnerability)) { \r\n obj.isValid=false;\r\n }\r\n \r\n\r\n this.riskBulkUpload.risks.push(obj);\r\n });\r\n this.isFileEmpty = false;\r\n this.isWrongFile = false;\r\n this.isWrongFormat = false;\r\n this.showExcel = true;\r\n };\r\n reader.readAsBinaryString(target.files[0]);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n checkEmptyFile() {\r\n let isEmpty = false;\r\n this.data = this.data.filter((dataElement: any) => dataElement.length > 0);\r\n if (this.data.length < 1) {\r\n isEmpty = true;\r\n }\r\n return isEmpty;\r\n }\r\n\r\n checkValidity(risk: any) {\r\n const re = / |<br>/g;\r\n let trimmedName = (risk[0]) ? risk[0].toString().replace(re, '').trim() : '';\r\n trimmedName = trimmedName.replace(/ +/g, ' ');\r\n if ((!trimmedName) || (risk[3] && (risk[3] == risk[5])) || ((!risk[3]) && (this.defaultOwner == risk[5]))\r\n || (!risk[2]) || (this.assessmentDeadLine && (!risk[6]))) {\r\n return false;\r\n } else { return true }\r\n }\r\n\r\n downloadTemplate() {\r\n this.downloadStatus = 'DOWNLOADING';\r\n this.downloadPercent = 0;\r\n const today = new Date().toISOString().split('T');\r\n const downloadDate = today[0];\r\n const fileName = 'VComply - Risk Module - Add Multiple Risks - '+ this.category?.selectedCategory?.category_name +' - ' + downloadDate + '.xlsx';\r\n\r\n this.riskService.downloadTemplate(this.category.selectedCategory._id).subscribe(\r\n (data: any) => {\r\n if (data.loaded) {\r\n this.downloadPercent = 100 * (data.loaded / data.total);\r\n }\r\n if (data.body) {\r\n setTimeout(() => {\r\n this.downloadStatus = this.riskService.downLoadFile(data.body, 'application/xlsx', fileName);\r\n }, 1500);\r\n }\r\n\r\n },\r\n (error) => {\r\n console.error(error);\r\n this.downloadStatus = 'DOWNLOADED';\r\n }\r\n );\r\n }\r\n\r\n submitRiskBulkUpload(completeAssessment: any) {\r\n this.loader = true;\r\n const payload: any = [];\r\n this.riskBulkUpload.risks.forEach((risk: any) => {\r\n if (risk.isValid) {\r\n const obj = {\r\n title: risk.riskName,\r\n description: risk.description,\r\n category_custom_tag: risk.customTag,\r\n assessment_deadline_enable: this.settingsInfo.assessment_deadline_enable,\r\n owner: (risk.owner) ? this.returnIds(risk.owner, 'owner') : this.returnIds(this.defaultOwner, 'owner'),\r\n category: (this.category.selectedCategory.category_id) ? [this.category.selectedCategory.category_id] : [],\r\n manage_oversight: this.returnIds(risk.overseer, 'overseer'),\r\n rc_id: this.returnIds(risk.rcName, 'rc_id'),\r\n head_ids: this.returnIds(risk.rcName, 'rc_owner_ids'), //2 to be aray\r\n rating_arr: [\r\n risk.likelihood ? risk.likelihood.split(' - ')[1] : 0,\r\n risk.impact ? risk.impact.split(' - ')[1] : 0,\r\n risk.velocity ? risk.velocity.split(' - ')[1] : 0,\r\n risk.vulnerability ? risk.vulnerability.split(' - ')[1] : 0,\r\n ],\r\n member_id: this.memberId,\r\n organisation_id: this.organizationId,\r\n risk_progress_flag: 1,\r\n IfAssessmentDone: 0,\r\n workshop_id: '',\r\n complete_assessment: (completeAssessment) ? 1 : 0,\r\n mitigation: this.returnIds(risk.mitigationPriority, 'mitigation'), //3 wrong\r\n weightage_enable: this.settingsInfo.weightage_enable,\r\n treatment_type: this.settingsInfo.treatment_criteria,\r\n weightage_details: this.settingsInfo.weightage_details,\r\n weightage_set_by: this.settingsInfo.weightage_set_by,\r\n weightage_str: [\r\n this.settingsInfo.weightage_details.impact.value,\r\n this.settingsInfo.weightage_details.likelihood.value,\r\n this.settingsInfo.weightage_details.velocity.value,\r\n this.settingsInfo.weightage_details.vulnerability.value,\r\n ],\r\n assessment_deadline_set_by: this.settingsInfo.assessment_deadline_set_by, //check1 not appearing\r\n assessment_deadline_days: (this.settingsInfo.assessment_deadline_enable) ? this.settingsInfo.assessment_deadline_days : risk.assessmentDeadLine,\r\n };\r\n payload.push(obj);\r\n }\r\n });\r\n\r\n this.riskService.addBulkRisk(payload).subscribe((res: any) => {\r\n this.loader = false;\r\n this.showExcel = false;\r\n this.showSmiley = true;\r\n this.riskData = res;\r\n },\r\n err => {\r\n console.log(err);\r\n this.loader = false;\r\n this.showExcel = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n\r\n }\r\n );\r\n }\r\n\r\n\r\n returnIds(item: any, key: string) {\r\n switch (key) {\r\n case 'rc_id':\r\n const rcId: any = [];\r\n this.templateInfo.rcList.forEach((rc_element: any) => {\r\n if (rc_element.rcName == item) {\r\n rcId.push(rc_element.rc_id)\r\n }\r\n });\r\n return rcId;\r\n break;\r\n case 'rc_owner_ids':\r\n let owner_ids: any = [];\r\n this.templateInfo.rcList.forEach((headerIds: any) => {\r\n if (headerIds.rcName == item && headerIds.owner_ids) {\r\n owner_ids= headerIds.owner_ids.includes(',')? headerIds.owner_ids.split(',').map(Number) :[Number(headerIds.owner_ids)];\r\n }\r\n });\r\n return owner_ids;\r\n break;\r\n case 'owner':\r\n const ownerId: any = [];\r\n this.templateInfo.ownerList.forEach((element: any) => {\r\n if (element.name == item) {\r\n ownerId.push(element.member_id)\r\n }\r\n });\r\n return ownerId;\r\n break;\r\n case 'overseer':\r\n const overseerId: any = [];\r\n this.templateInfo.ownerList.forEach((os_element: any) => {\r\n if (os_element.name == item) {\r\n overseerId.push(os_element.member_id)\r\n }\r\n });\r\n return overseerId;\r\n break;\r\n\r\n case 'mitigation':\r\n let mitigationId: any=0;\r\n this.templateInfo.mitigationList.forEach((mitigation: any) => {\r\n if (mitigation.mitigationName == item) {\r\n mitigationId = mitigation.mitigation_id\r\n }\r\n });\r\n return mitigationId;\r\n break;\r\n\r\n }\r\n }\r\n\r\n reset() {\r\n this.riskBulkUpload = {\r\n header: [],\r\n weightFactors: [],\r\n risks: []\r\n }\r\n\r\n this.templateInfo = {\r\n memberId: '',\r\n categoryId: '',\r\n ownerList: [],\r\n rcList: [],\r\n mitigationList: []\r\n\r\n }\r\n\r\n this.isFileEmpty = false;\r\n this.isWrongFile = false;\r\n this.isWrongFormat = false;\r\n this.fileName = undefined;\r\n this.data = undefined;\r\n this.assessmentDeadLine = undefined\r\n this.showExcel = false;\r\n this.showSmiley = false;\r\n\r\n }\r\n action(event: string) {\r\n switch (event) {\r\n case 'addMore':\r\n this.category = {\r\n type: 'strategic',\r\n selectedCategory: '',\r\n }\r\n this.downloadStatus = 'NOT_DOWNLOADING';\r\n this.reset();\r\n break;\r\n case 'viewRisks':\r\n this.viewRisks();\r\n break;\r\n }\r\n }\r\n\r\n closeSmiley(event: any) {\r\n this.showSmiley = false;\r\n this.closeWorkflow.emit({evt:this.riskData, confirm : false});\r\n }\r\n\r\n viewRisks(): void {\r\n this.disconnectRefresh.emit(false);\r\n let url: string;\r\n if (window.location.host.startsWith('localhost')) {\r\n url = 'http://' + window.location.host;\r\n } else {\r\n url = 'https://' + window.location.host;\r\n }\r\n if (window.location.host.startsWith('localhost')) {\r\n url += '/risk-register';\r\n } else {\r\n url += '/risk/risk-register';\r\n }\r\n window.location.href = url;\r\n }\r\n}\r\n","import { Component, Input, EventEmitter, Output, OnInit, OnChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-bulk-view',\r\n templateUrl: './bulk-view.component.html',\r\n styleUrls: ['./bulk-view.component.less'],\r\n})\r\nexport class BulkViewComponent implements OnInit,OnChanges {\r\n\r\n @Input() riskBulkUpload!: any;\r\n @Input() templateInfo!: any;\r\n @Input() fileName!: any;\r\n @Input() assessmentDaysEnable!: any;\r\n @Input() defaultOwner!: any;\r\n @Input() loader = false;\r\n\r\n @Output() submitRiskBulkUpload = new EventEmitter();\r\n @Output() cancel = new EventEmitter(); \r\n \r\n finalRisks=0;\r\n showCompleteAssessmentButton = false;\r\n\r\n ngOnChanges() {\r\n if (this.riskBulkUpload) {\r\n this.finalRisks = 0;\r\n this.riskBulkUpload.risks.forEach((risk: any) => {\r\n if (risk.isValid) {\r\n this.finalRisks += 1;\r\n }\r\n });\r\n }\r\n this.riskBulkUpload.risks.forEach((risk:any) => {\r\n if(this.riskBulkUpload.weightFactors.length==2){\r\n if(risk?.likelihood &&risk?.impact){\r\n this.showCompleteAssessmentButton = true;\r\n\r\n }\r\n }else if(this.riskBulkUpload.weightFactors.length==3){\r\n if(risk?.likelihood &&risk?.impact &&risk?.velocity){\r\n this.showCompleteAssessmentButton = true;\r\n\r\n }\r\n }else if(this.riskBulkUpload.weightFactors.length==4){\r\n if(risk?.likelihood &&risk?.impact && risk?.velocity &&risk?.vulnerability){\r\n this.showCompleteAssessmentButton = true;\r\n\r\n }\r\n }\r\n });\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n\r\n submit(completeAssessment:any){\r\n this.submitRiskBulkUpload.emit(completeAssessment);\r\n }\r\n\r\n close(){\r\n this.cancel.emit();\r\n }\r\n\r\n\r\n}\r\n","import { cloneDeep } from 'lodash-es';\r\nimport { Component, EventEmitter, OnInit, Output, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\r\n\r\n@Component({\r\n selector: 'app-checkpoints',\r\n templateUrl: './checkpoints.component.html',\r\n styleUrls: ['./checkpoints.component.less']\r\n})\r\nexport class CheckpointsComponent implements OnInit {\r\n @Output() closeCheckPoint = new EventEmitter();\r\n @Output() saveCheckPoint = new EventEmitter();\r\n animation = true;\r\n @Input() checkpointData: any = [];\r\n @Input() checkpointInstruction = '';\r\n errorIndex = -1;\r\n questionTypeList = [\r\n {\r\n text: 'Text',\r\n type: 'textbox',\r\n description: 'Select a text area.',\r\n icon: ''\r\n },\r\n {\r\n text: 'Dropdown',\r\n type: 'select',\r\n description: 'Choose an option from a multiple select box.',\r\n icon: ''\r\n },\r\n {\r\n text: 'Single selection',\r\n type: 'radio',\r\n description: 'Select only one option with a radio button.',\r\n icon: ''\r\n },\r\n {\r\n text: 'Multiple selection',\r\n type: 'checkbox',\r\n description: 'Select multiple options using a checkbox.',\r\n icon: ''\r\n },\r\n {\r\n text: 'Date',\r\n type: 'date',\r\n description: 'Select date from a date picker.',\r\n icon: ''\r\n },\r\n {\r\n text: 'Upload File',\r\n type: 'upload',\r\n description: 'Upload documents & files.',\r\n icon: ''\r\n }\r\n ];\r\n constructor(private snackbar: SnackBarService, private cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n console.log(\"checkpointInstruction ==>\", this.checkpointInstruction,this.checkpointData);\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n this.checkpointData = this.checkpointData && this.checkpointData != '' ? cloneDeep(this.checkpointData) : [];\r\n }\r\n\r\n addQuestion(evt: any, index?: number){\r\n console.log(evt);\r\n switch (evt){\r\n case 'textbox' : {\r\n this.createTextBox(index);\r\n break;\r\n }\r\n case 'select' : {\r\n this.createSelect(index);\r\n break;\r\n }\r\n case 'radio' : {\r\n this.createRadio(index);\r\n break;\r\n }\r\n case 'checkbox' : {\r\n this.createCheckBox(index);\r\n break;\r\n }\r\n case 'date' : {\r\n this.createDate(index);\r\n break;\r\n }case 'upload' : {\r\n this.createUpload(index);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n createTextBox(index?: number) {\r\n // this.gotoLastOption();\r\n if (index === undefined) {\r\n this.checkpointData.push({ type: 'textbox', id: 'textbox_1', required: false, label: '', options: [] });\r\n } else {\r\n this.checkpointData.splice(index + 1, 0, { type: 'textbox', id: `textbox_{index+1}`, required: false, label: '', options: [] });\r\n }\r\n }\r\n\r\n createSelect(index?: number) {\r\n // this.gotoLastOption();\r\n if (index === undefined) {\r\n this.checkpointData.push({ type: 'select', id: 'select_1', required: false, label: '', options: [{ label: '', value: 1, is_selected: false }] });\r\n } else {\r\n this.checkpointData.splice(index + 1, 0, {\r\n type: 'select',\r\n id: 'select_{index+1}',\r\n required: false,\r\n label: '',\r\n options: [{ label: '', value: 1, is_selected: false }],\r\n });\r\n }\r\n }\r\n\r\n createRadio(index?: number) {\r\n // this.gotoLastOption();\r\n if (index === undefined) {\r\n this.checkpointData.push({ type: 'radio', id: 'radio_1', required: false, label: '', options: [{ label: '', value: 1, is_selected: false }] });\r\n } else {\r\n this.checkpointData.splice(index + 1, 0, { type: 'radio', id: 'radio_{index+1}', required: false, label: '', options: [{ label: '', value: 1, is_selected: false }] });\r\n }\r\n }\r\n\r\n createCheckBox(index?: number) {\r\n // this.gotoLastOption();\r\n if (index === undefined) {\r\n this.checkpointData.push({ type: 'checkbox', id: 'checkbox_1', required: false, label: '', options: [{ label: '', value: 1, is_selected: false, required: 0 }] });\r\n } else {\r\n this.checkpointData.splice(index + 1, 0, {\r\n type: 'checkbox',\r\n id: 'checkbox_{index+1}',\r\n required: false,\r\n label: '',\r\n options: [{ label: '', value: 1, is_selected: false, required: 0 }],\r\n });\r\n }\r\n }\r\n\r\n createDate(index?: number) {\r\n // this.gotoLastOption();\r\n if (index === undefined) {\r\n this.checkpointData.push({ type: 'date', id: 'date_1', required: false, label: '', options: [] });\r\n } else {\r\n this.checkpointData.splice(index + 1, 0, { type: 'date', id: 'date_{index+1}', required: false, label: '', options: [] });\r\n }\r\n }\r\n\r\n createUpload(index?: number) {\r\n // this.gotoLastOption();\r\n if (index === undefined) {\r\n this.checkpointData.push({ type: 'upload', id: 'upload_1', required: false, label: '', options: [] });\r\n } else {\r\n this.checkpointData.splice(index + 1, 0, { type: 'upload', id: 'upload_{index+1}', required: false, label: '', options: [] });\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n createOption(i: number, j: number, type: any) {\r\n this.checkpointData[i].options.splice(j + 1, 0, { label: '', id: '', value: 0, is_selected: false });\r\n for (let k = 0; k <= this.checkpointData[i].options.length - 1; k++) {\r\n this.checkpointData[i].options[k].value = k + 1;\r\n }\r\n setTimeout(() => {\r\n const EL: any = document.getElementById(type + '-' + i + '' + (j + 1));\r\n if (EL) { EL.focus(); }\r\n }, 10);\r\n\r\n }\r\n\r\n deleteOption(i: number, j: number, type: any) {\r\n if (this.checkpointData[i].options.length === 1) {\r\n return;\r\n }\r\n this.checkpointData[i].options.splice(j, 1);\r\n for (let k = 0; k <= this.checkpointData[i].options.length - 1; k++) {\r\n this.checkpointData[i].options[k].value = k + 1;\r\n }\r\n if (j - 1 >= 0) {\r\n const EL: any = document.getElementById(type + '-' + i + '' + (j - 1));\r\n if (EL) { EL.focus(); }\r\n } else {\r\n const EL: any = document.getElementById(type + '-' + i + '' + 0);\r\n if (EL) { EL.focus(); }\r\n }\r\n }\r\n\r\n removeQuestion(index: number){\r\n this.checkpointData.splice(index, 1);\r\n }\r\n\r\n copyQuestion(index: number){\r\n const COPY_ARR = JSON.parse(JSON.stringify(this.checkpointData[index]));\r\n this.checkpointData.splice(index + 1, 0, COPY_ARR);\r\n }\r\n\r\n\r\n save(){\r\n console.log(this.validateCheckpoint());\r\n if (this.validateCheckpoint() === false){\r\n this.snackbar.show('Please fill in the details.');\r\n }\r\n else{\r\n this.errorIndex = -1;\r\n this.saveCheckPoint.emit({checkpointInstruction: this.checkpointInstruction, checkpointDetails: this.checkpointData});\r\n }\r\n\r\n }\r\n close(){\r\n console.log('closed');\r\n this.closeCheckPoint.emit();\r\n }\r\n\r\n validateCheckpoint() {\r\n for (let i = 0; i <= this.checkpointData.length - 1; i++) {\r\n if (this.checkpointData[i].label.trim() === '') {\r\n this.errorIndex = i;\r\n return false;\r\n }\r\n if (this.checkpointData[i].options.length > 0){\r\n for (let j = 0; j < this.checkpointData[i].options.length; j++) {\r\n if (this.checkpointData[i].options[j].label.trim() === '') {\r\n this.errorIndex = i;\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n checkpointDescription(event: any) {\r\n console.log(\"description ==>\", event)\r\n this.checkpointInstruction = event\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfirmationAlert } from '../interfaces/confirmation-alert';\r\n\r\n@Component({\r\n selector: 'app-confirmation-alert',\r\n templateUrl: './confirmation-alert.component.html',\r\n styleUrls: ['./confirmation-alert.component.less']\r\n})\r\nexport class ConfirmationAlertComponent implements OnInit {\r\n @Input() message = '';\r\n @Input() config: ConfirmationAlert = {isVisible: false};\r\n @Output() action = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n actionTaken(evt: any){\r\n this.action.emit({action: evt, payload: this.config});\r\n }\r\n}\r\n","import { Component, Input, OnInit, Output, EventEmitter, ViewChild, OnChanges, SimpleChanges, ElementRef } from '@angular/core';\r\nimport { DatePickerComponent } from 'ng2-date-picker';\r\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\r\n\r\n@Component({\r\n selector: 'app-checkpoints-questions',\r\n templateUrl: './checkpoints-questions.component.html',\r\n styleUrls: ['./checkpoints-questions.component.less']\r\n})\r\nexport class CheckpointsQuestionsComponent implements OnInit, OnChanges {\r\n\r\n constructor(private elementRef:ElementRef, private snackbar: SnackBarService) { }\r\n @Input() checkpointData: any = [];\r\n @Input() questionTypeList = [];\r\n @Input() errorIndex = -1;\r\n @Input() checkpointInstruction :string = '';\r\n @Output() createQuestion = new EventEmitter();\r\n @Output() deleteQuestion = new EventEmitter();\r\n @Output() copyQuestion = new EventEmitter();\r\n @Output() blankQuestion = new EventEmitter();\r\n @Output() createOption = new EventEmitter();\r\n @Output() removeOption = new EventEmitter();\r\n @Output() updateDescription = new EventEmitter();\r\n @ViewChild('datePicker') datePicker!: DatePickerComponent;\r\n datePickerOverlay = false;\r\n activeQuestionIndex = 0;\r\n addInstruction!: boolean ;\r\n\r\n placeholder: any = {\r\n textbox: 'Type your question here [Text Box]',\r\n select: 'Type your question here [Select]',\r\n radio: 'Type your question here [Radio]',\r\n checkbox: 'Type your question here [CheckBox]',\r\n date: 'Type your question here [Date]',\r\n upload: 'Type your question here [Upload]'\r\n };\r\n description: any = '';\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n saveDescription(){\r\n this.addInstruction = false;\r\n if(this.extractContent(this.checkpointInstruction) === ''){\r\n this.checkpointInstruction = '';\r\n }\r\n this.updateDescription.emit(this.checkpointInstruction)\r\n }\r\n extractContent(s:string) {\r\n var span = document.createElement('span');\r\n span.innerHTML = s;\r\n return (span.textContent || span.innerText).replace(/ /g, '').replace(/\\<br\\s*[\\/]?>/gi, '').trim();\r\n };\r\n ngOnChanges(changes: SimpleChanges){\r\n console.log(changes, this.errorIndex);\r\n if (changes.errorIndex){\r\n if (this.errorIndex >= 0 ){\r\n this.activeQuestionIndex = this.errorIndex;\r\n }\r\n }\r\n }\r\n openDatePicker() {\r\n this.datePicker.api.open();\r\n this.datePickerOverlay = true;\r\n }\r\n closeDatepicker() {\r\n this.datePicker.api.close();\r\n this.datePickerOverlay = false;\r\n }\r\n addQuestion(type: any){\r\n // this.createQuestion.emit(type.type);\r\n // this.activeQuestionIndex = this.checkpointData.length - 1;\r\n }\r\n removeQuestion(index: number){\r\n this.deleteQuestion.emit(index);\r\n this.activeQuestionIndex = index - 1;\r\n }\r\n cloneQuestion(index: number){\r\n // this.activeQuestionIndex = index + 1;\r\n // this.copyQuestion.emit(index);\r\n\r\n }\r\n blankClone(type: string, index: number){\r\n // this.blankQuestion.emit({type, index});\r\n // this.activeQuestionIndex = index + 1;\r\n }\r\n\r\n addOption(questionIndex: number, optionIndex: number, type: string){\r\n // this.createOption.emit({questionIndex, optionIndex, type});\r\n }\r\n\r\n deleteOption(questionIndex: number, optionIndex: number, type: string){\r\n this.removeOption.emit({questionIndex, optionIndex, type});\r\n }\r\n\r\n deleteOnBackspace(questionIndex: number, optionIndex: number, type: string){\r\n if (this.checkpointData[questionIndex].options[optionIndex].label.length < 1 && this.checkpointData[questionIndex].options.length > 1) {\r\n this.removeOption.emit({questionIndex, optionIndex, type});\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-checkpoints-list',\r\n templateUrl: './checkpoints-list.component.html',\r\n styleUrls: ['./checkpoints-list.component.less']\r\n})\r\nexport class CheckpointsListComponent implements OnInit {\r\n @Output() createQuestion = new EventEmitter();\r\n @Input() questionTypeList = [];\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n addQuestion(type: any){\r\n // this.createQuestion.emit(type.type);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SelectService {\r\n private selectMap: any;\r\n constructor() {\r\n this.selectMap = {};\r\n }\r\n\r\n getData(name: string, value: any): { placeholder: string; color: string } {\r\n let obj = {\r\n placeholder: '',\r\n color: '',\r\n };\r\n if (name && value && this.selectMap.hasOwnProperty(name) && Array.isArray(this.selectMap[name])) {\r\n const values: any[][] = this.selectMap[name];\r\n for (let i = 0; i < values.length; i++) {\r\n if (values[i][0] === value) {\r\n obj = {\r\n placeholder: values[i][1],\r\n color: values[i][2] ?? '',\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n add(select: { name: string; placeholder: string; value: any; color?: string }): void {\r\n let item = [select?.value, select?.placeholder];\r\n if (select?.color) {\r\n item.push(select?.color);\r\n }\r\n if (this.selectMap.hasOwnProperty(select.name)) {\r\n this.selectMap[select.name] = [...this.selectMap[select.name], item];\r\n } else {\r\n this.selectMap[select.name] = [item];\r\n }\r\n }\r\n\r\n remove(name: string): void {\r\n delete this.selectMap[name];\r\n }\r\n}\r\n","import { Component, ElementRef, forwardRef, Input, ViewChild, EventEmitter, OnDestroy, Output } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { nanoid } from 'nanoid';\r\n\r\nimport { SelectService } from '../select.service';\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'cs-select',\r\n templateUrl: './cs-select.component.html',\r\n styleUrls: ['./cs-select.component.less'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CsSelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class CsSelectComponent implements OnDestroy {\r\n @Input() dropdownLabel!: string;\r\n @Input() dropdownSubLabel!: string;\r\n @Input() isRequired!: string;\r\n @Input() placeholder!: string;\r\n @Output() valueChanged = new EventEmitter();\r\n dropdownToggle!: boolean;\r\n positionReset!: boolean;\r\n getLeft!: number;\r\n getTop!: number;\r\n getWidth!: number;\r\n maxWidth!: number;\r\n\r\n valuePlaceholder: string;\r\n private optionList!: ElementRef;\r\n @Input() setMaxWidth: any;\r\n @ViewChild('optionList', { read: ElementRef, static: false }) set content(content: ElementRef) {\r\n if (content) {\r\n // initially setter gets called with undefined\r\n this.optionList = content;\r\n }\r\n }\r\n name!: string;\r\n val!: string;\r\n showOptions!: boolean;\r\n color!: string;\r\n constructor(private select: SelectService) {\r\n this.name = nanoid();\r\n this.valuePlaceholder = '';\r\n }\r\n\r\n onChange: any = () => { };\r\n onTouch: any = () => { };\r\n\r\n set RadioVal(val: any) {\r\n if (val !== undefined && val !== null && this.val !== val) {\r\n this.val = val;\r\n const { placeholder, color } = this.select.getData(this.name, this.val);\r\n this.valuePlaceholder = placeholder;\r\n this.color = color;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n writeValue(value: any, emit?: true): void {\r\n this.RadioVal = value;\r\n if (emit) {\r\n this.valueChanged.emit(this.RadioVal);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n openDropdown(event: any): void {\r\n this.dropdownToggle = true;\r\n setTimeout(() => {\r\n const dropdown = event.target.getBoundingClientRect();\r\n const selectOption = this.optionList.nativeElement.offsetHeight;\r\n if (dropdown.top + selectOption * 2 > window.innerHeight) {\r\n this.getTop = dropdown.top - selectOption;\r\n } else {\r\n this.getTop = dropdown.top + dropdown.height;\r\n }\r\n this.getLeft = dropdown.left;\r\n this.getWidth = dropdown.width;\r\n if (this.setMaxWidth == true) {\r\n this.maxWidth = dropdown.width * 1.5;\r\n } else {\r\n this.maxWidth = dropdown.width;\r\n }\r\n\r\n this.showOptions = true;\r\n }, 10);\r\n }\r\n closeDropdown(): void {\r\n this.dropdownToggle = false;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.select.remove(this.name);\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\r\nimport { CsSelectComponent } from '../cs-select/cs-select.component';\r\nimport { SelectService } from '../select.service';\r\n@Component({\r\n selector: 'cs-option',\r\n templateUrl: './cs-option.component.html',\r\n styleUrls: ['./cs-option.component.less'],\r\n})\r\nexport class CsOptionComponent implements AfterViewInit {\r\n @Input() value!: string;\r\n @Input() color!: string;\r\n @Input() backgroundColor!: string;\r\n @Input() optionTooltip = '';\r\n @ViewChild('options', { read: ElementRef, static: false })\r\n option!: ElementRef;\r\n\r\n constructor(public csSelect: CsSelectComponent, private select: SelectService) {\r\n this.value = '';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.select.add({\r\n name: this.csSelect.name,\r\n placeholder: this.option.nativeElement.innerHTML,\r\n value: this.value,\r\n color: this.color,\r\n });\r\n }\r\n\r\n change(event: any): void {\r\n this.csSelect.writeValue(this.value,true);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CsSelectComponent } from './cs-select/cs-select.component';\r\nimport { CsOptionComponent } from './cs-option/cs-option.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\r\n\r\n@NgModule({\r\n declarations: [CsSelectComponent, CsOptionComponent],\r\n imports: [FormsModule, CommonModule, TooltipModule],\r\n exports: [CsSelectComponent, CsOptionComponent],\r\n})\r\nexport class SelectModule {}\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { FrequencyService } from \"../frequency.service\";\r\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\r\n\r\n@Component({\r\n selector: 'app-frequency-container',\r\n templateUrl: './frequency-container.component.html',\r\n styleUrls: ['./frequency-container.component.less']\r\n})\r\nexport class FrequencyContainerComponent implements OnInit, OnChanges {\r\n frequencyTab = 'daily';\r\n currentTabName = 'a Daily';\r\n\r\n @Input() frequencyDetails: any;\r\n @Output() selectedFrequency = new EventEmitter<any>();\r\n @Output() closeFrequency = new EventEmitter<any>();\r\n @Input() mode: any='';\r\n\r\n\r\n\r\n\r\n frequencyData: any;\r\n\r\n frequencyList = [\r\n {\r\n name: 'Daily',\r\n type: 'daily'\r\n },\r\n {\r\n name: 'Weekly',\r\n type: 'weekly'\r\n },\r\n {\r\n name: 'Monthly',\r\n type: 'monthly'\r\n },\r\n {\r\n name: 'Quarterly',\r\n type: 'quarterly'\r\n },\r\n {\r\n name: 'Biannual',\r\n type: 'biannual'\r\n },\r\n {\r\n name: 'Annual',\r\n type: 'annual'\r\n },\r\n {\r\n name: 'One Time',\r\n type: 'oneTime'\r\n },\r\n {\r\n name: 'Random',\r\n type: 'random'\r\n },\r\n {\r\n name: 'On Completion Of',\r\n type: 'onCompletionOf'\r\n },\r\n {\r\n name: 'Ongoing',\r\n type: 'ongoing'\r\n },\r\n ]\r\n\r\n selectedFrequencyData: any;\r\n isNextDisabled :any = false;\r\n constructor(\r\n private frequencyService: FrequencyService,\r\n private snackbar: SnackBarService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.frequencyDetails.pattern != '') {\r\n this.populateFrequency()\r\n }\r\n const hideElements = ['random','onCompletionOf','ongoing']\r\n if(this.mode=='policy'){\r\n hideElements.forEach((element:any) => { \r\n \r\n const index = this.frequencyList.findIndex((elementIndex:any)=>elementIndex.type==element);\r\n this.frequencyList.splice(index,1)\r\n });\r\n }\r\n const hideElements2 = ['daily','random','onCompletionOf','ongoing']\r\n if(this.mode=='reviewerFrequency'){\r\n this.frequencyTab = this.frequencyDetails?.pattern == '' ? 'weekly': this.frequencyTab\r\n this.currentTabName = this.frequencyDetails?.pattern == '' ? 'a weekly': this.currentTabName\r\n \r\n hideElements2.forEach((element:any) => { \r\n const index = this.frequencyList.findIndex((elementIndex:any)=>elementIndex.type==element);\r\n this.frequencyList.splice(index,1)\r\n });\r\n }\r\n \r\n\r\n }\r\n\r\n ngOnChanges() {\r\n \r\n this.selectedFrequencyData = Object.assign({...this.frequencyDetails});\r\n this.frequencyData = Object.assign({...this.frequencyDetails});\r\n //this.isNextDisabled = this.isInvalid();\r\n }\r\n\r\n\r\n populateFrequency() {\r\n const frequencyPattern = parseInt(this.frequencyDetails.pattern.split('~')[0]);\r\n \r\n switch (frequencyPattern) {\r\n case 0: this.frequencyTab = 'oneTime'; this.currentTabName = \"a one time\"; break;\r\n case 1: this.frequencyTab = 'daily'; this.currentTabName = \"a daily\"; break;\r\n case 2: this.frequencyTab = 'weekly'; this.currentTabName = \"a weekly\"; break;\r\n case 3: this.frequencyTab = 'monthly'; this.currentTabName = \"a monthly\"; break;\r\n case 4: this.frequencyTab = 'annual'; this.currentTabName = \"an annual \";break;\r\n case 5: this.frequencyTab = 'daily'; this.currentTabName = \"a daily\"; break;\r\n case 6: this.frequencyTab = 'onCompletionOf'; this.currentTabName = \"an on completion of\"; this.frequencyData.report_id = this.frequencyDetails.selectedReport; break;\r\n case 7: this.frequencyTab = 'quarterly'; this.currentTabName = \"a quarterly\"; break;\r\n case 8: this.frequencyTab = 'random'; this.currentTabName = \"a random\"; break;\r\n case 9: this.frequencyTab = 'biannual'; this.currentTabName = \"a biannual\"; break;\r\n case 10: this.frequencyTab = 'ongoing'; this.currentTabName = \"an ongoing\"; break;\r\n }\r\n this.isNextDisabled = false;\r\n\r\n }\r\n\r\n changeFrequencyTab(frequency: any) {\r\n this.frequencyTab = frequency.type;\r\n \r\n if (frequency.name == 'One Time') {\r\n this.currentTabName ='a one time';\r\n } else {\r\n this.currentTabName = (frequency.name.startsWith('On') || frequency.name.toLowerCase() === 'annual') ? 'an ' + frequency.name: 'a ' + frequency.name;\r\n }\r\n }\r\n\r\n isInvalid() : boolean {\r\n let isInvalid = false;\r\n const frequencyDetails = this.frequencyData?.pattern?.split('~');\r\n switch(this.frequencyTab) {\r\n\r\n case 'daily': \r\n \r\n if(this.frequencyData.continuous_failed_days < 2) {\r\n this.snackbar.show('Input value should be greater than 1.');\r\n isInvalid = true;\r\n } else {\r\n isInvalid = false;\r\n this.isNextDisabled = false;\r\n }; break;\r\n case 'weekly': if(this.frequencyData.continuous_failed_days < 2) {\r\n this.snackbar.show('Input value should be greater than 1.');\r\n isInvalid = true;\r\n break;\r\n } else {\r\n isInvalid = false;\r\n this.isNextDisabled = false;\r\n };\r\n \r\n if(frequencyDetails[1] == '' || !frequencyDetails[1] || frequencyDetails.length < 4) {\r\n isInvalid = true;\r\n } else {\r\n isInvalid = false;\r\n };\r\n\r\n break;\r\n case 'monthly': if(this.frequencyData.continuous_failed_days < 2) {\r\n this.snackbar.show('Input value should be greater than 1.');\r\n isInvalid = true;\r\n break;\r\n } else {\r\n isInvalid = false;\r\n this.isNextDisabled = false;\r\n };\r\n\r\n if(frequencyDetails[2] == '' || !frequencyDetails[2] || frequencyDetails.length < 4) {\r\n isInvalid = true;\r\n } else {\r\n isInvalid = false;\r\n };\r\n\r\n break;\r\n case 'biannual':\r\n if(frequencyDetails.length === 0 ||frequencyDetails[2] === '' || frequencyDetails[2].split(',')?.length < 2) {\r\n isInvalid = true;\r\n } else {\r\n isInvalid = false;\r\n }\r\n break;\r\n case 'oneTime':\r\n if(frequencyDetails?.length > 0) {\r\n const selectedTime = moment(`${frequencyDetails[3]}-${frequencyDetails[2]}-${frequencyDetails[1]} ${this.frequencyData.timeIn12hr}`, 'DD-MM-YYYY HH:mm a').unix();\r\n if(Date.now()/1000 > selectedTime) {\r\n this.snackbar.show('Please set a future date.');\r\n isInvalid = true;\r\n break;\r\n } else {\r\n \r\n isInvalid = false;\r\n this.isNextDisabled = false;\r\n }\r\n } else {\r\n isInvalid = true;\r\n }\r\n break;\r\n case 'onCompletionOf':\r\n if(this.frequencyData.reportId > 0) {\r\n isInvalid = false;\r\n } else {\r\n isInvalid = true;\r\n }\r\n break;\r\n\r\n case 'random':\r\n if(parseInt(frequencyDetails[1]) == 2 && ( frequencyDetails[2] == '' || !frequencyDetails[2] || frequencyDetails.length < 4)) {\r\n isInvalid = true;\r\n } else {\r\n isInvalid = false;\r\n };\r\n break;\r\n default: isInvalid = false;\r\n }\r\n return isInvalid;\r\n }\r\n\r\n onFrequencySelected(event: any) {\r\n console.log(\"event.....\", event);\r\n this.frequencyData = event\r\n this.isNextDisabled = this.isInvalid();\r\n }\r\n\r\n\r\n\r\n// checkNextValidity()\r\n// {\r\n\r\n// }\r\n\r\n save() {\r\n this.selectedFrequency.emit(this.frequencyData)\r\n }\r\n close(){\r\n this.closeFrequency.emit();\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\r\nimport { DatePickerComponent } from 'ng2-date-picker';\r\n//import { FrequencyService } from '../frequency.service';\r\nimport * as moment from 'moment';\r\nimport { FrequencyService } from \"../frequency.service\"\r\n\r\n@Component({\r\n selector: 'app-frequency-daily',\r\n templateUrl: './frequency-daily.component.html',\r\n styleUrls: ['./frequency-daily.component.less']\r\n})\r\nexport class FrequencyDailyComponent implements OnInit {\r\n\r\n @ViewChild('datePicker') datePicker!: DatePickerComponent;\r\n @Input() mode: any='';\r\n\r\n datepickerOverlay = false;\r\n //#region daily frequency start\r\n dailyInterval = '11:59 pm';\r\n dailyInput = 1;\r\n dailyFailed = 1;\r\n dailyLifeCycleStart = new Date();\r\n dailyLifeCycleEndTime = new Date(this.dailyLifeCycleStart.getTime() + 86400000);\r\n dailyLifecycleOccurance = 10;\r\n dailySeletedLifecycleType = 2;\r\n dailyDeactivatedValue = 15;\r\n frequencyInfo: any;\r\n lifecycleDetails: any = '0000-00-00~~0';\r\n\r\n @Input() frequencyData: any;\r\n @Input() startDate = Math.floor(Date.now() / 1000);\r\n\r\n @Output() frequencyDetails = new EventEmitter<any>();\r\n\r\n\r\n constructor(private frequencyService: FrequencyService) { }\r\n\r\n ngOnInit(): void {\r\n this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\r\n console.log(\"frequencyDatafrequencyData ==>\", this.frequencyData)\r\n if(this.frequencyData.pattern != '' && parseInt(this.frequencyData.pattern.split('~')[0]) === 1) {\r\n this.populateFrequency();\r\n }\r\n \r\n this.getDailyFrequency()\r\n }\r\n\r\n populateFrequency() {\r\n const patternInfo = this.frequencyData.pattern.split('~').map(Number);\r\n const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\r\n this.dailyInterval = this.frequencyData.failedTime;\r\n this.dailyInput = patternInfo[3];\r\n if(Number(lifecycleInfo[1]) > 0) {\r\n this.dailyLifecycleOccurance = Number(lifecycleInfo[1]);\r\n }\r\n \r\n this.startDate = this.frequencyData.startDate;\r\n this.dailyLifeCycleStart = new Date(this.frequencyData.startDate * 1000);\r\n this.dailyFailed = this.frequencyData.failed;\r\n this.dailyDeactivatedValue = this.frequencyData.continuous_failed_days\r\n if( lifecycleInfo[0] !== '0000-00-00') {\r\n const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()\r\n this.dailyLifeCycleEndTime = new Date(dateSelected * 1000);\r\n }\r\n this.lifecycleDetails = this.frequencyData.lifecycle;\r\n if( this.frequencyData.lifecycle == '0000-00-00~~0') {\r\n this.dailySeletedLifecycleType = 2;\r\n } else if(lifecycleInfo[0] !== '0000-00-00') {\r\n this.dailySeletedLifecycleType = 0;\r\n } else {\r\n this.dailySeletedLifecycleType = 1;\r\n }\r\n }\r\n \r\n\r\n onTimeChanged(event:string, name:string) {\r\n console.log(\"time event =>\", event)\r\n this.dailyInterval = event;\r\n this.getDailyFrequency();\r\n }\r\n\r\n valueChangedFirst(event: any) {\r\n console.log('event ==>', event);\r\n this.dailyInput = event.value;\r\n this.getDailyFrequency();\r\n }\r\n\r\n onValueChange(event: any) {\r\n if (event.type === 'deactivated') {\r\n this.dailyDeactivatedValue = event.value;\r\n } else {\r\n this.dailyFailed = event.value;\r\n }\r\n this.getDailyFrequency();\r\n}\r\n\r\n lifecycleChange(event: any) {\r\n console.log('event==>', event);\r\n\r\n switch (event.type) {\r\n case 0:\r\n this.lifecycleDetails = event.endsBy + '~~0';\r\n break;\r\n case 1:\r\n this.lifecycleDetails = '0000-00-00~~' + event.endafter;\r\n break;\r\n case 2:\r\n this.lifecycleDetails = '0000-00-00~~0';\r\n break;\r\n }\r\n if (event.startFrom.toString().length > 10) {\r\n console.log(\"start 1111\")\r\n this.startDate = Math.floor(event.startFrom / 1000);\r\n } else {\r\n console.log(\"start 11112222\")\r\n this.startDate = Math.floor(event.startFrom);\r\n }\r\n\r\n //this.dailyLifeCycleEndTime = new Date(moment(event.endsBy+ ' 12:00 am', 'DD-MMMM-YYYY HH:mm a').unix() * 1000)\r\n console.log(\" this.dailyLifeCycleEndTime ==>\", this.dailyLifeCycleEndTime)\r\n let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\r\n console.log('strat date ====>', this.startDate);\r\n console.log('end date', endByDate);\r\n if (event.type === 0) {\r\n endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\r\n console.log('endByDate', endByDate);\r\n \r\n }\r\n this.frequencyInfo.failed_time_utc = endByDate;\r\n this.getDailyFrequency();\r\n }\r\n\r\n getDailyFrequency() {\r\n if (this.dailyInput === 1) {\r\n this.frequencyInfo.placeholder = 'Daily by ' + this.dailyInterval;\r\n } else if (this.dailyInput > 1) {\r\n this.frequencyInfo.placeholder = 'Every ' + this.dailyInput + ' days by ' + this.dailyInterval;\r\n } else {\r\n this.frequencyInfo.placeholder = 'Frequency denotes the rate of occurrence of a responsibility.';\r\n }\r\n this.frequencyInfo.pattern = 1 + '~' + '0' + '~' + '0' + '~' + this.dailyInput;\r\n this.frequencyInfo.case = 'daily';\r\n this.frequencyInfo.failedAfter = this.dailyFailed;\r\n this.frequencyInfo.timeIn12hr = this.dailyInterval;\r\n this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.dailyInterval);\r\n this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\r\n this.frequencyInfo.startFrom = this.startDate;\r\n this.frequencyInfo.reportId = 0;\r\n this.frequencyInfo.continuous_failed_days = this.dailyDeactivatedValue;\r\n this.frequencyDetails.emit(this.frequencyInfo);\r\n console.log(\" this.frequencyInfo ==>\", this.frequencyInfo);\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FrequencyService } from \"../frequency.service\";\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-frequency-weekly',\r\n templateUrl: './frequency-weekly.component.html',\r\n styleUrls: ['./frequency-weekly.component.less']\r\n})\r\nexport class FrequencyWeeklyComponent implements OnInit {\r\n @Input() mode: any='';\r\n\r\n weeklyInterval = '11:59 pm';\r\n weeklyInput = 1;\r\n weeklyFailed = 2;\r\n weeklyWindow = 2;\r\n weeklyLifeCycleStart = new Date();\r\n weeklyLifeCycleEndTime = new Date(this.weeklyLifeCycleStart.getTime() + 86400000);\r\n weeklyLifecycleOccurance = 10;\r\n weeklySeletedLifecycleType = 2;\r\n selectedWeekly = [new Date().getDay() == 0 ? 6 : new Date().getDay() - 1];\r\n weeklyDeactivatedValue = 10;\r\n dayArray: Array<string> = [];\r\n\r\n frequencyInfo: any;\r\n lifecycleDetails: any = '0000-00-00~~0';\r\n\r\n @Input() startDate = Math.floor(Date.now() / 1000);\r\n @Input() frequencyData: any;\r\n\r\n @Output() frequencyDetails = new EventEmitter<any>();\r\n\r\n constructor(private frequencyService: FrequencyService) { }\r\n\r\n ngOnInit(): void {\r\n this.dayArray = [...new Set(this.frequencyService.dayName)];\r\n this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\r\n console.log(\"this.frequencyData ==>\", this.frequencyData)\r\n if(this.frequencyData.pattern != '' && parseInt(this.frequencyData.pattern.split('~')[0]) === 2) {\r\n this.populateFrequency();\r\n }\r\n this.getWeeklyFrequency();\r\n }\r\n\r\n populateFrequency() {\r\n const patternInfo = this.frequencyData.pattern.split('~')\r\n this.selectedWeekly = patternInfo[1].split(',').map((ele: any) => Number(ele) - 1)\r\n const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\r\n this.weeklyInterval = this.frequencyData.failedTime;\r\n this.weeklyWindow = this.frequencyData.window;\r\n this.weeklyInput = patternInfo[3];\r\n if(Number(lifecycleInfo[1]) > 0) {\r\n this.weeklyLifecycleOccurance = Number(lifecycleInfo[1]);\r\n }\r\n \r\n this.startDate = this.frequencyData.startFrom ?? this.frequencyData.startDate;\r\n this.weeklyLifeCycleStart = new Date((this.frequencyData.startDate ?? this.frequencyData.startDate) * 1000);\r\n this.weeklyFailed = this.frequencyData.failed;\r\n this.weeklyDeactivatedValue = this.frequencyData.continuous_failed_days\r\n if( lifecycleInfo[0] !== '0000-00-00') {\r\n const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()\r\n this.weeklyLifeCycleEndTime = new Date(dateSelected * 1000);\r\n }\r\n this.lifecycleDetails = this.frequencyData.lifecycle;\r\n if( this.frequencyData.lifecycle == '0000-00-00~~0') {\r\n this.weeklySeletedLifecycleType = 2;\r\n } else if(lifecycleInfo[0] !== '0000-00-00') {\r\n this.weeklySeletedLifecycleType = 0;\r\n } else {\r\n this.weeklySeletedLifecycleType = 1;\r\n }\r\n }\r\n\r\n onTimeChanged(event:string) {\r\n console.log(\"time event =>\", event)\r\n this.weeklyInterval = event;\r\n this.getWeeklyFrequency();\r\n }\r\n\r\n valueChangedFirst(event: any) {\r\n console.log('event ==>', event);\r\n this.weeklyInput = event.value;\r\n this.getWeeklyFrequency();\r\n }\r\n\r\n onDaySelected(event: any) {\r\n console.log(\"evnet\", event)\r\n if (event.checked) {\r\n this.selectedWeekly.push(event.index);\r\n } else {\r\n this.selectedWeekly = this.selectedWeekly.filter((ele) => ele !== event.index);\r\n }\r\n this.getWeeklyFrequency();\r\n }\r\n\r\n lifecycleChange(event: any) {\r\n console.log('event==>', event);\r\n\r\n switch (event.type) {\r\n case 0:\r\n this.lifecycleDetails = event.endsBy + '~~0';\r\n break;\r\n case 1:\r\n this.lifecycleDetails = '0000-00-00~~' + event.endafter;\r\n break;\r\n case 2:\r\n this.lifecycleDetails = '0000-00-00~~0';\r\n break;\r\n }\r\n if (event.startFrom.toString().length > 10) {\r\n console.log(\"start 1111\")\r\n this.startDate = Math.floor(event.startFrom / 1000);\r\n } else {\r\n console.log(\"start 11112222\")\r\n this.startDate = Math.floor(event.startFrom);\r\n }\r\n let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\r\n console.log('strat date ====>', this.startDate);\r\n console.log('end date', endByDate);\r\n if (event.type === 0) {\r\n endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\r\n console.log('endByDate', endByDate);\r\n \r\n }\r\n this.weeklyLifeCycleStart = new Date(this.startDate * 1000);\r\n this.frequencyInfo.failed_time_utc = endByDate;\r\n this.getWeeklyFrequency();\r\n }\r\n\r\n onValueChange(event: any) {\r\n if (event.type === 'deactivated') {\r\n this.weeklyDeactivatedValue = event.value;\r\n } else if (event.type === 'completed') {\r\n this.weeklyWindow = event.value;\r\n } else {\r\n this.weeklyFailed = event.value;\r\n }\r\n this.getWeeklyFrequency();\r\n}\r\n\r\n getWeeklyFrequency() {\r\n this.selectedWeekly = this.selectedWeekly.sort((n1, n2) => n1 - n2);\r\n this.frequencyInfo.placeholder = this.getPlaceholder(Number(this.weeklyInput))\r\n this.frequencyInfo.pattern = 2 + '~' + this.selectedWeekly.map((ele) => ele + 1).join(',') + '~' + '0' + '~' + this.weeklyInput;\r\n this.frequencyInfo.case = 'week';\r\n this.frequencyInfo.failedAfter = this.weeklyFailed;\r\n this.frequencyInfo.window = this.weeklyWindow;\r\n this.frequencyInfo.timeIn12hr = this.weeklyInterval;\r\n this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.weeklyInterval);\r\n this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\r\n this.frequencyInfo.startFrom = this.startDate ?? Math.floor(Date.now()/1000);\r\n this.frequencyInfo.reportId = 0;\r\n this.frequencyInfo.continuous_failed_days = this.weeklyDeactivatedValue;\r\n this.frequencyDetails.emit(this.frequencyInfo);\r\n console.log(\" this.frequencyInfo ==>\", this.frequencyInfo);\r\n }\r\n\r\n getPlaceholder(weeklyInput: number) {\r\n let placeholder = '';\r\n weeklyInput = Number(weeklyInput)\r\n \r\n const selectedDay = this.selectedWeekly.map((ele) => {\r\n return this.frequencyService.dayName[ele];\r\n });\r\n if (weeklyInput === 1) {\r\n placeholder = 'Every ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\r\n }\r\n if (weeklyInput === 2) {\r\n placeholder = 'Every alternate ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\r\n }\r\n if (weeklyInput === 3) {\r\n placeholder = 'Every 3rd ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\r\n }\r\n if (weeklyInput > 3) {\r\n placeholder = 'Every ' + this.weeklyInput + 'th ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\r\n }\r\n return placeholder;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FrequencyService } from '../frequency.service';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-frequency-monthly',\r\n templateUrl: './frequency-monthly.component.html',\r\n styleUrls: ['./frequency-monthly.component.less']\r\n})\r\nexport class FrequencyMonthlyComponent implements OnInit {\r\n @Input() mode: any='';\r\n\r\n monthlyInterval = '11:59 pm';\r\n monthlyInput = new Date().getDate();\r\n monthlyFailed = 5;\r\n monthlyWindow = 7;\r\n\r\n monthlyLifeCycleStart = new Date();\r\n monthlyLifeCycleEndTime = new Date(this.monthlyLifeCycleStart.getTime() + 86400000);\r\n monthlyLifecycleOccurance = 10;\r\n monthlySeletedLifecycleType = 2;\r\n selectedMonthly = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\r\n monthlyDeactivatedValue = 10;\r\n frequencyInfo: any;\r\n monthNameArray: Array<string> = [];\r\n shortMonth:Array<string> = [];\r\n\r\n lifecycleDetails: any = '0000-00-00~~0';\r\n\r\n @Input() startDate = Math.floor(Date.now() / 1000);\r\n @Input() frequencyData: any;\r\n @Output() frequencyDetails = new EventEmitter<any>();\r\n\r\n constructor(private frequencyService: FrequencyService) { }\r\n\r\n ngOnInit(): void {\r\n this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\r\n this.monthNameArray = [...new Set(this.frequencyService.monthArray)];\r\n this.shortMonth = this.frequencyService.monthArray.map(month => month.substring(0, 3));\r\n console.log(\"this.frequencyData ==>\", this.frequencyData)\r\n if(this.frequencyData.pattern != '' && parseInt(this.frequencyData.pattern.split('~')[0]) === 3) {\r\n this.populateFrequency();\r\n }\r\n this.getMonthlyFrequency();\r\n }\r\n\r\n populateFrequency() {\r\n const patternInfo = this.frequencyData.pattern.split('~');\r\n console.log(\"patternInfo ==>\", patternInfo)\r\n this.selectedMonthly = patternInfo[2].split(',').map((ele: any) => Number(ele) - 1)\r\n const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\r\n this.monthlyInterval = this.frequencyData.failedTime;\r\n this.monthlyWindow = this.frequencyData.window;\r\n this.monthlyInput = Number(patternInfo[1]);\r\n if(Number(lifecycleInfo[1]) > 0) {\r\n this.monthlyLifecycleOccurance = Number(lifecycleInfo[1]);\r\n }\r\n \r\n this.startDate = this.frequencyData.startDate\r\n this.monthlyLifeCycleStart = new Date(this.frequencyData.startDate * 1000);\r\n this.monthlyFailed = this.frequencyData.failed;\r\n this.monthlyDeactivatedValue = this.frequencyData.continuous_failed_days\r\n if( lifecycleInfo[0] !== '0000-00-00') {\r\n const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()\r\n this.monthlyLifeCycleEndTime = new Date(dateSelected * 1000);\r\n }\r\n this.lifecycleDetails = this.frequencyData.lifecycle;\r\n if( this.frequencyData.lifecycle == '0000-00-00~~0') {\r\n this.monthlySeletedLifecycleType = 2;\r\n } else if(lifecycleInfo[0] !== '0000-00-00') {\r\n this.monthlySeletedLifecycleType = 0;\r\n } else {\r\n this.monthlySeletedLifecycleType = 1;\r\n }\r\n }\r\n\r\n valueChangedFirst(event: any) {\r\n console.log('event ==>', event);\r\n this.monthlyInput = event.value;\r\n this.getMonthlyFrequency();\r\n }\r\n\r\n onTimeChanged(event:string) {\r\n console.log(\"time event =>\", event)\r\n this.monthlyInterval = event;\r\n this.getMonthlyFrequency();\r\n }\r\n\r\n \r\n onMonthSelected(event: any) {\r\n console.log(\"evnet\", event)\r\n if (event.checked) {\r\n this.selectedMonthly.push(event.index);\r\n } else {\r\n this.selectedMonthly = this.selectedMonthly.filter((ele) => ele !== event.index);\r\n }\r\n this.getMonthlyFrequency();\r\n }\r\n\r\n lifecycleChange(event: any) {\r\n console.log('event==>', event);\r\n\r\n switch (event.type) {\r\n case 0:\r\n this.lifecycleDetails = event.endsBy + '~~0';\r\n break;\r\n case 1:\r\n this.lifecycleDetails = '0000-00-00~~' + event.endafter;\r\n break;\r\n case 2:\r\n this.lifecycleDetails = '0000-00-00~~0';\r\n break;\r\n }\r\n if (event.startFrom.toString().length > 10) {\r\n console.log(\"start 1111\")\r\n this.startDate = Math.floor(event.startFrom / 1000);\r\n } else {\r\n console.log(\"start 11112222\")\r\n this.startDate = Math.floor(event.startFrom);\r\n }\r\n let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\r\n console.log('strat date ====>', this.startDate);\r\n console.log('end date', endByDate);\r\n if (event.type === 0) {\r\n endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\r\n console.log('endByDate', endByDate);\r\n \r\n }\r\n this.monthlyLifeCycleStart = new Date(this.startDate * 1000);\r\n this.frequencyInfo.failed_time_utc = endByDate;\r\n this.getMonthlyFrequency();\r\n }\r\n\r\n onValueChange(event: any) {\r\n if (event.type === 'deactivated') {\r\n this.monthlyDeactivatedValue = event.value;\r\n } else if (event.type === 'completed') {\r\n this.monthlyWindow = event.value;\r\n } else {\r\n this.monthlyFailed = event.value;\r\n }\r\n this.getMonthlyFrequency();\r\n}\r\n\r\n getMonthlyFrequency(){\r\n this.selectedMonthly = this.selectedMonthly.sort((n1, n2) => n1 - n2); \r\n const monthIndex = this.selectedMonthly.map((ele) => ele + 1);\r\n this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(Number(this.monthlyInput));\r\n this.frequencyInfo.pattern = 3 + '~' + this.monthlyInput + '~' + monthIndex + '~' + '0';\r\n this.frequencyInfo.case = 'month';\r\n this.frequencyInfo.failedAfter = this.monthlyFailed;\r\n this.frequencyInfo.window = this.monthlyWindow;\r\n this.frequencyInfo.timeIn12hr = this.monthlyInterval;\r\n this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.monthlyInterval);\r\n this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\r\n this.frequencyInfo.startFrom = Math.floor(this.monthlyLifeCycleStart.getTime()/1000);\r\n this.frequencyInfo.reportId = 0;\r\n this.frequencyInfo.continuous_failed_days = this.monthlyDeactivatedValue;\r\n this.frequencyDetails.emit(this.frequencyInfo);\r\n console.log(\" this.frequencyInfo ==>\", this.frequencyInfo);\r\n }\r\n\r\n getFrequencyPlaceholder(monthlyInput: number) {\r\n console.log(\"monthlyInput ==>\", monthlyInput)\r\n const selectedMonth = this.selectedMonthly.map((ele) => {\r\n return this.shortMonth[ele];\r\n });\r\n let placeholder = '';\r\n if (monthlyInput === 1) {\r\n placeholder = '1st of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\r\n } else if (monthlyInput === 2) {\r\n placeholder = '2nd of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\r\n } else if (monthlyInput === 3) {\r\n placeholder = '3rd of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\r\n } else if (monthlyInput === 21 || monthlyInput === 31) {\r\n placeholder = monthlyInput + 'st of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\r\n } else if (monthlyInput === 22) {\r\n placeholder = monthlyInput + 'nd of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\r\n } else if (monthlyInput === 23) {\r\n placeholder = monthlyInput + 'rd of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\r\n } else if (monthlyInput > 3) {\r\n placeholder = monthlyInput + 'th of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\r\n }\r\n console.log(\"placeholder ==>\", placeholder)\r\n return placeholder;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FrequencyService } from \"../frequency.service\";\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-frequency-quarterly',\r\n templateUrl: './frequency-quarterly.component.html',\r\n styleUrls: ['./frequency-quarterly.component.less']\r\n})\r\nexport class FrequencyQuarterlyComponent implements OnInit {\r\n @Input() mode: any='';\r\n\r\n quarterlyInterval = '11:59 pm';\r\n quarterlyInput = new Date().getDate();\r\n quarterlyFailed = 5;\r\n quarterlyWindow = 7;\r\n selectedQuarterly = 1;\r\n quarterlyLifeCycleStart = new Date();\r\n quarterlyLifeCycleEndTime = new Date(this.quarterlyLifeCycleStart.getTime() + 86400000);\r\n quarterlyLifecycleOccurance = 10;\r\n quarterlySeletedLifecycleType = 2;\r\n quarterlyGroup = [0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11];\r\n frequencyInfo: any\r\n quarterlyArray: Array<string> = [];\r\n\r\n @Input() startDate = Math.floor(Date.now() / 1000);\r\n @Input() frequencyData: any;\r\n lifecycleDetails: any = '0000-00-00~~0';\r\n\r\n @Output() frequencyDetails = new EventEmitter<any>();\r\n\r\n constructor(private frequencyService: FrequencyService) { }\r\n\r\n ngOnInit(): void {\r\n this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\r\n this.quarterlyArray = [...new Set(this.frequencyService.quarterlyMonth)];\r\n const indexOfMonth = this.quarterlyGroup.indexOf(new Date().getMonth());\r\n this.selectedQuarterly = indexOfMonth < 4 ? 0 : indexOfMonth > 3 && indexOfMonth < 8 ? 1 : 2;\r\n console.log(\"this.frequencyData ==>\", this.frequencyData)\r\n if(this.frequencyData.pattern != '' && parseInt(this.frequencyData.pattern.split('~')[0]) === 7) {\r\n this.populateFrequency();\r\n }\r\n this.getQuarterlyFrequency();\r\n }\r\n\r\n populateFrequency() {\r\n const patternInfo = this.frequencyData.pattern.split('~');\r\n console.log(\"patternInfo ==>\", patternInfo)\r\n const month = parseInt(patternInfo[2].split(',').map(Number)[0]);\r\n console.log(\"monte \", month)\r\n const index = this.quarterlyGroup.indexOf(month - 1);\r\n this.selectedQuarterly = index < 4 ? 0 : index > 3 && index < 8 ? 1 : 2;\r\n const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\r\n this.quarterlyInterval = this.frequencyData.failedTime;\r\n this.quarterlyWindow = this.frequencyData.window;\r\n this.quarterlyInput = patternInfo[1];\r\n if(Number(lifecycleInfo[1]) > 0) {\r\n this.quarterlyLifecycleOccurance = Number(lifecycleInfo[1]);\r\n }\r\n \r\n this.startDate = this.frequencyData.startDate;\r\n this.quarterlyLifeCycleStart = new Date(this.frequencyData.startDate * 1000);\r\n this.quarterlyFailed = this.frequencyData.failed;\r\n if( lifecycleInfo[0] !== '0000-00-00') {\r\n const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()\r\n this.quarterlyLifeCycleEndTime = new Date(dateSelected * 1000);\r\n }\r\n this.lifecycleDetails = this.frequencyData.lifecycle;\r\n if( this.frequencyData.lifecycle == '0000-00-00~~0') {\r\n this.quarterlySeletedLifecycleType = 2;\r\n } else if(lifecycleInfo[0] !== '0000-00-00') {\r\n this.quarterlySeletedLifecycleType = 0;\r\n } else {\r\n this.quarterlySeletedLifecycleType = 1;\r\n }\r\n }\r\n\r\n\r\n valueChangedFirst(event: any) {\r\n console.log('event ==>', event);\r\n this.quarterlyInput = event.value;\r\n this.getQuarterlyFrequency();\r\n }\r\n\r\n onTimeChanged(event:string) {\r\n console.log(\"time event =>\", event)\r\n this.quarterlyInterval = event;\r\n this.getQuarterlyFrequency();\r\n }\r\n\r\n selectedMonth(event: any) {\r\n console.log(\"event ==>\", event)\r\n this.selectedQuarterly = parseInt(event.target.value);\r\n this.getQuarterlyFrequency();\r\n }\r\n\r\n lifecycleChange(event: any) {\r\n console.log('event==>', event);\r\n \r\n switch (event.type) {\r\n case 0:\r\n this.lifecycleDetails = event.endsBy + '~~0';\r\n break;\r\n case 1:\r\n this.lifecycleDetails = '0000-00-00~~' + event.endafter;\r\n break;\r\n case 2:\r\n this.lifecycleDetails = '0000-00-00~~0';\r\n break;\r\n }\r\n if (event.startFrom.toString().length > 10) {\r\n this.startDate = Math.floor(event.startFrom / 1000);\r\n } else {\r\n this.startDate = Math.floor(event.startFrom);\r\n }\r\n let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\r\n console.log('end date', endByDate);\r\n if (event.type === 0) {\r\n endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\r\n console.log('endByDate', endByDate);\r\n \r\n }\r\n this.frequencyInfo.failed_time_utc = endByDate;\r\n this.getQuarterlyFrequency();\r\n }\r\n\r\n \r\n onValueChange(event: any) {\r\n if (event.type === 'completed') {\r\n this.quarterlyWindow = event.value;\r\n } else {\r\n this.quarterlyFailed = event.value;\r\n }\r\n this.getQuarterlyFrequency();\r\n }\r\n\r\n getQuarterlyFrequency() {\r\n let monthSequence = this.selectedQuarterly === 0 ? this.quarterlyGroup.slice(0, 4) : this.selectedQuarterly === 1 ? this.quarterlyGroup.slice(4, 8) : this.quarterlyGroup.slice(8);\r\n monthSequence = monthSequence.map((ele) => ele + 1);\r\n this.frequencyInfo.pattern = 7 + '~' + this.quarterlyInput + '~' + monthSequence + '~' + '0';\r\n this.frequencyInfo.case = 'quarterly';\r\n this.frequencyInfo.failedAfter = this.quarterlyFailed;\r\n this.frequencyInfo.window = this.quarterlyWindow;\r\n this.frequencyInfo.timeIn12hr = this.quarterlyInterval;\r\n this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.quarterlyInterval);\r\n this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\r\n this.frequencyInfo.startFrom = this.startDate;\r\n this.frequencyInfo.reportId = 0;\r\n this.frequencyInfo.placeholder = this.getPlaceholder(Number(this.quarterlyInput));\r\n this.frequencyDetails.emit(this.frequencyInfo);\r\n console.log(\" this.frequencyInfo ==>\", this.frequencyInfo);\r\n }\r\n\r\n getPlaceholder(quarterlyInput: number) {\r\n console.log(\" this.placeholder ==>\", quarterlyInput, quarterlyInput === 2, typeof quarterlyInput);\r\n let placeholder = '';\r\n \r\n if (quarterlyInput === 1) {\r\n placeholder = '1st of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\r\n } else if (quarterlyInput === 2) {\r\n placeholder = '2nd of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\r\n } else if (quarterlyInput === 3) {\r\n placeholder = '3rd of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\r\n } else if (quarterlyInput === 21 || quarterlyInput === 31) {\r\n placeholder = quarterlyInput + 'st of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\r\n } else if (quarterlyInput === 22) {\r\n placeholder = quarterlyInput + 'nd of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\r\n } else if (quarterlyInput === 23) {\r\n placeholder = quarterlyInput + 'rd of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\r\n } else if (quarterlyInput > 3) {\r\n placeholder = quarterlyInput + 'th of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\r\n }\r\n console.log(\" this.placeholderede ==>\", placeholder);\r\n return placeholder;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { FrequencyService } from \"../frequency.service\";\r\n\r\n@Component({\r\n selector: 'app-frequency-biannual',\r\n templateUrl: './frequency-biannual.component.html',\r\n styleUrls: ['./frequency-biannual.component.less']\r\n})\r\nexport class FrequencyBiannualComponent implements OnInit {\r\n\r\n biannualInterval = '11:59 pm';\r\n biannualInput = new Date().getDate();\r\n biannualFailed = 5;\r\n biannualWindow = 30;\r\n biannualDay = new Date().getDate();\r\n biannualLifeCycleStart = new Date();\r\n biannualLifeCycleEndTime = new Date(this.biannualLifeCycleStart.getTime() + 86400000);\r\n biannualLifecycleOccurance = 10;\r\n biannualSeletedLifecycleType = 2;\r\n biannualSelected: Array<number> = [];\r\n biannualLifecycle = false;\r\n frequencyInfo: any;\r\n monthNameArray: Array<string> = [];\r\n shortMonth: Array<string> = [];\r\n selectedMonthly: Array<number> = [];\r\n\r\n @Input() mode: any='';\r\n\r\n @Input() startDate = Math.floor(Date.now() / 1000);\r\n @Input() frequencyData: any;\r\n lifecycleDetails: any = '0000-00-00~~0';\r\n\r\n @Output() frequencyDetails = new EventEmitter<any>();\r\n \r\n\r\n constructor(private frequencyService: FrequencyService) { }\r\n\r\n ngOnInit(): void {\r\n this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\r\n this.monthNameArray = [...new Set(this.frequencyService.monthArray)];\r\n this.shortMonth = this.frequencyService.monthArray.map(month => month.substring(0, 3));\r\n console.log(\"this.frequencyData ==>\", this.frequencyData)\r\n if(this.frequencyData.pattern != '' && parseInt(this.frequencyData.pattern.split('~')[0]) === 9) {\r\n this.populateFrequency();\r\n }\r\n this.getBiannualFrequency()\r\n }\r\n\r\n populateFrequency() {\r\n const patternInfo = this.frequencyData.pattern.split('~')\r\n this.biannualSelected = patternInfo[2].split(',').map((ele: any) => Number(ele) - 1)\r\n const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\r\n this.biannualInterval = this.frequencyData.failedTime;\r\n this.biannualWindow = this.frequencyData.window;\r\n this.biannualInput = patternInfo[1];\r\n if(Number(lifecycleInfo[1]) > 0) {\r\n this.biannualLifecycleOccurance = Number(lifecycleInfo[1]);\r\n }\r\n \r\n this.biannualLifeCycleStart = new Date(this.frequencyData.startDate * 1000) \r\n this.biannualFailed = this.frequencyData.failed;\r\n if( lifecycleInfo[0] !== '0000-00-00') {\r\n const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()\r\n this.biannualLifeCycleEndTime = new Date(dateSelected * 1000);\r\n }\r\n this.lifecycleDetails = this.frequencyData.lifecycle;\r\n if( this.frequencyData.lifecycle == '0000-00-00~~0') {\r\n this.biannualSeletedLifecycleType = 2;\r\n } else if(lifecycleInfo[0] !== '0000-00-00') {\r\n this.biannualSeletedLifecycleType = 0;\r\n } else {\r\n this.biannualSeletedLifecycleType = 1;\r\n }\r\n }\r\n\r\n onMonthSelected(event: any) {\r\n console.log(\"event\", event)\r\n if (event.checked) {\r\n this.biannualSelected.push(event.index);\r\n } else {\r\n this.biannualSelected = this.biannualSelected.filter((ele) => ele !== event.index);\r\n }\r\n this.getBiannualFrequency();\r\n }\r\n\r\n valueChangedFirst(event: any) {\r\n console.log('event ==>', event);\r\n this.biannualInput = event.value;\r\n this.getBiannualFrequency();\r\n }\r\n\r\n onTimeChanged(event:string) {\r\n console.log(\"time event =>\", event)\r\n this.biannualInterval = event;\r\n this.getBiannualFrequency();\r\n }\r\n\r\n onValueChange(event: any) {\r\n if (event.type === 'completed') {\r\n this.biannualWindow = event.value;\r\n } else {\r\n this.biannualFailed = event.value;\r\n }\r\n this.getBiannualFrequency();\r\n}\r\n\r\n lifecycleChange(event: any) {\r\n console.log('event==>', event);\r\n\r\n switch (event.type) {\r\n case 0:\r\n this.lifecycleDetails = event.endsBy + '~~0';\r\n break;\r\n case 1:\r\n this.lifecycleDetails = '0000-00-00~~' + event.endafter;\r\n break;\r\n case 2:\r\n this.lifecycleDetails = '0000-00-00~~0';\r\n break;\r\n }\r\n if (event.startFrom.toString().length > 10) {\r\n console.log(\"start 1111\")\r\n this.startDate = Math.floor(event.startFrom / 1000);\r\n } else {\r\n console.log(\"start 11112222\")\r\n this.startDate = Math.floor(event.startFrom);\r\n }\r\n let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\r\n console.log('strat date ====>', this.startDate);\r\n console.log('end date', endByDate);\r\n if (event.type === 0) {\r\n endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\r\n console.log('endByDate', endByDate);\r\n \r\n }\r\n this.frequencyInfo.failed_time_utc = endByDate;\r\n this.getBiannualFrequency();\r\n }\r\n\r\n getBiannualFrequency() {\r\n this.biannualSelected = this.biannualSelected.sort((n1, n2) => n1 - n2);\r\n const monthIndex = this.biannualSelected.map((ele) => ele + 1);\r\n this.frequencyInfo.pattern = 9 + '~' + this.biannualInput + '~' + monthIndex.join(',') + '~0';\r\n this.frequencyInfo.case = 'biannual';\r\n this.frequencyInfo.failedAfter = this.biannualFailed;\r\n this.frequencyInfo.window = this.biannualWindow;\r\n this.frequencyInfo.timeIn12hr = this.biannualInterval;\r\n this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.biannualInterval);\r\n this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\r\n this.frequencyInfo.startFrom = this.startDate;\r\n this.frequencyInfo.reportId = 0;\r\n this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(Number(this.biannualInput));\r\n this.frequencyDetails.emit(this.frequencyInfo);\r\n console.log(\" this.frequencyInfo ==>\", this.frequencyInfo);\r\n }\r\n\r\n getFrequencyPlaceholder(biannualInput: number) {\r\n let placeholder = '';\r\n const selectedMonth = this.biannualSelected.map((ele) => {\r\n return this.shortMonth[ele];\r\n });\r\n \r\n if (biannualInput === 1) {\r\n placeholder = '1st of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\r\n } else if (biannualInput === 2) {\r\n placeholder = '2nd of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\r\n } else if (biannualInput === 3) {\r\n placeholder = '3rd of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\r\n } else if (biannualInput === 21 || biannualInput === 31) {\r\n placeholder = biannualInput + 'st of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\r\n } else if (biannualInput === 22) {\r\n placeholder = biannualInput + 'nd of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\r\n } else if (biannualInput === 23) {\r\n placeholder = biannualInput + 'rd of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\r\n } else if (biannualInput > 3) {\r\n placeholder = biannualInput + 'th of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\r\n }\r\n return placeholder;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FrequencyService } from '../frequency.service';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-frequency-annual',\r\n templateUrl: './frequency-annual.component.html',\r\n styleUrls: ['./frequency-annual.component.less']\r\n})\r\nexport class FrequencyAnnualComponent implements OnInit {\r\n\r\n monthList: Array<any> = [];\r\n\r\n yearlyInterval: string = '11:59 pm';\r\n yearlyInput: number = 1;\r\n yearlyFailed: number = 5;\r\n yearlyWindow: number = 30;\r\n yearlyDay = new Date().getDate();\r\n yearlyLifeCycleStart = new Date();\r\n yearlyLifeCycleEndTime = new Date(this.yearlyLifeCycleStart.getTime() + 86400000);\r\n yearlyLifecycleOccurance: number = 10;\r\n yearlySeletedLifecycleType: number = 2;\r\n yearlySelected = new Date().getMonth();\r\n lifecycleDetails: any = '0000-00-00~~0';\r\n previousStartDate = Math.floor(Date.now() / 1000);\r\n frequencyInfo: any;\r\n shortMonth:Array<string> = [];\r\n\r\n @Input() frequencyData: any;\r\n @Input() mode: any='';\r\n\r\n @Input() startDate = Math.floor(Date.now() / 1000);\r\n\r\n @Output() frequencyDetails = new EventEmitter<any>();\r\n\r\n\r\n constructor(private frequencyService: FrequencyService) { }\r\n\r\n ngOnInit(): void {\r\n this.monthList = this.frequencyService.monthArray;\r\n this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\r\n this.shortMonth = this.frequencyService.monthArray.map(month => month.substring(0, 3));\r\n if(this.frequencyData.pattern != '' && parseInt(this.frequencyData.pattern.split('~')[0]) === 4) {\r\n this.populateFrequency();\r\n }\r\n this.getAnnualFrequency();\r\n }\r\n\r\n populateFrequency() {\r\n const patternInfo = this.frequencyData.pattern.split('~').map(Number);\r\n this.yearlySelected = patternInfo[2] - 1;\r\n const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\r\n this.yearlyInterval = this.frequencyData.failedTime;\r\n this.yearlyWindow = this.frequencyData.window;\r\n this.yearlyInput = patternInfo[3];\r\n this.yearlyDay = patternInfo[1]\r\n if(Number(lifecycleInfo[1]) > 0) {\r\n this.yearlyLifecycleOccurance = Number(lifecycleInfo[1]);\r\n }\r\n \r\n this.yearlyLifeCycleStart = new Date(this.frequencyData.startDate * 1000)\r\n this.startDate = this.frequencyData.startFrom ?? this.frequencyData.startDate\r\n this.yearlyFailed = this.frequencyData.failed;\r\n if( lifecycleInfo[0] !== '0000-00-00') {\r\n const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()\r\n this.yearlyLifeCycleEndTime = new Date(dateSelected * 1000);\r\n }\r\n this.lifecycleDetails = this.frequencyData.lifecycle;\r\n if( this.frequencyData.lifecycle == '0000-00-00~~0') {\r\n this.yearlySeletedLifecycleType = 2;\r\n } else if(lifecycleInfo[0] !== '0000-00-00') {\r\n this.yearlySeletedLifecycleType = 0;\r\n } else {\r\n this.yearlySeletedLifecycleType = 1;\r\n }\r\n }\r\n\r\n onTimeChanged(event:string) {\r\n this.yearlyInterval = event;\r\n this.getAnnualFrequency();\r\n }\r\n\r\n dateChange(event: number) {\r\n this.yearlyDay = event;\r\n this.getAnnualFrequency();\r\n }\r\n\r\n valueChangedFirst(event: any) {\r\n this.yearlyInput = event.value;\r\n this.getAnnualFrequency();\r\n }\r\n\r\n selectedMonth(event: any) {\r\n this.yearlySelected = parseInt(event.target.value);\r\n this.getAnnualFrequency();\r\n }\r\n\r\n lifecycleChange(event: any) {\r\n\r\n switch (event.type) {\r\n case 0:\r\n this.lifecycleDetails = event.endsBy + '~~0';\r\n break;\r\n case 1:\r\n this.lifecycleDetails = '0000-00-00~~' + event.endafter;\r\n break;\r\n case 2:\r\n this.lifecycleDetails = '0000-00-00~~0';\r\n break;\r\n }\r\n if (event.startFrom.toString().length > 10) {\r\n this.startDate = Math.floor(event.startFrom / 1000);\r\n } else {\r\n this.startDate = Math.floor(event.startFrom);\r\n }\r\n let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\r\n if (event.type === 0) {\r\n endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\r\n \r\n }\r\n this.frequencyInfo.failed_time_utc = endByDate;\r\n this.getAnnualFrequency();\r\n }\r\n\r\n \r\n onValueChange(event: any) {\r\n if (event.type === 'completed') {\r\n this.yearlyWindow = event.value;\r\n } else {\r\n this.yearlyFailed = event.value;\r\n }\r\n this.getAnnualFrequency();\r\n }\r\n\r\n\r\n // frequency pattern and details info\r\n getAnnualFrequency() {\r\n this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(Number(this.yearlyInput));\r\n this.frequencyInfo.pattern = 4 + '~' + this.yearlyDay + '~' + (this.yearlySelected + 1) + '~' + this.yearlyInput;\r\n this.frequencyInfo.case = 'yearly';\r\n this.frequencyInfo.failedAfter = this.yearlyFailed;\r\n this.frequencyInfo.window = this.yearlyWindow;\r\n this.frequencyInfo.timeIn12hr = this.yearlyInterval;\r\n this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.yearlyInterval);\r\n this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\r\n this.frequencyInfo.startFrom = this.startDate;\r\n this.frequencyInfo.reportId = 0;\r\n this.frequencyDetails.emit(this.frequencyInfo);\r\n }\r\n\r\n getFrequencyPlaceholder(yearlyInput: any) { \r\n let placeholder = '';\r\n if(yearlyInput === 1) {\r\n placeholder = this.getPlaceholderForSt2(); \r\n } else {\r\n placeholder = this.getPlaceholderForGt1()\r\n }\r\n return placeholder;\r\n }\r\n\r\n // if yearlyInput is smaller than 2 then this function will called\r\n getPlaceholderForSt2() {\r\n let placeholder = '';\r\n if (this.yearlyDay === 1) {\r\n placeholder = '1st of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay === 2) {\r\n placeholder = '2nd of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay === 3) {\r\n placeholder = '3rd of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay > 3) {\r\n placeholder = this.yearlyDay + 'th of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay === 31 || this.yearlyDay === 21) {\r\n placeholder = this.yearlyDay + 'st of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay === 22) {\r\n placeholder = this.yearlyDay + 'nd of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay === 23) {\r\n placeholder = this.yearlyDay + 'rd of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\r\n }\r\n return placeholder;\r\n }\r\n\r\n // if yearlyInput is greater than 1 then this function will called\r\n getPlaceholderForGt1() {\r\n let placeholder = '';\r\n if (this.yearlyDay === 1) {\r\n placeholder = '1st ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay === 2) {\r\n placeholder = '2nd ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay === 3) {\r\n placeholder = '3rd ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay > 3) {\r\n // tslint:disable-next-line: max-line-length\r\n placeholder =\r\n this.yearlyDay + 'th of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay === 31 || this.yearlyDay === 21) {\r\n placeholder = this.yearlyDay + 'st of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay === 22) {\r\n placeholder = this.yearlyDay + 'nd of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\r\n }\r\n if (this.yearlyDay === 23) {\r\n placeholder = this.yearlyDay + 'rd of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\r\n }\r\n return placeholder;\r\n \r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\r\nimport { DatePickerComponent } from 'ng2-date-picker';\r\nimport { FrequencyService } from \"../frequency.service\";\r\nimport * as moment from \"moment\";\r\n\r\n\r\n@Component({\r\n selector: 'app-frequency-one-time',\r\n templateUrl: './frequency-one-time.component.html',\r\n styleUrls: ['./frequency-one-time.component.less']\r\n})\r\nexport class FrequencyOneTimeComponent implements OnInit {\r\n\r\n @ViewChild('datePicker') datePicker!: DatePickerComponent;\r\n datepickerOverlay = false;\r\n showDateError = false;\r\n oneTimeFailed = 5;\r\n oneTimeWindow = 15;\r\n oneTimeStartTime: any = '11:59 pm';\r\n oneTimeSelected = '';\r\n dateConfig: any;\r\n todayDate = new Date();\r\n frequencyInfo: any;\r\n shortMonth: Array<string> = [];\r\n dateObjectData = new Date();\r\n minDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')?.split(' ')[0];\r\n selectedDate: any;\r\n @Input() frequencyData: any;\r\n @Input() mode: any='';\r\n\r\n @Output() frequencyDetails = new EventEmitter<any>();\r\n\r\n constructor(\r\n private frequencyService: FrequencyService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.dateConfig = this.frequencyService.dateConfig;\r\n this.dateConfig['min'] = new Date().getDate().toString();\r\n this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\r\n this.shortMonth = this.frequencyService.monthArray.map(month => month.substring(0, 3));\r\n this.selectedDate = moment(this.todayDate);\r\n console.log(\"this.dateConfig \", this.dateConfig, this.todayDate)\r\n console.log(\"this.frequencyData ==>\", this.frequencyData, this.frequencyData.pattern.split('~'))\r\n if(this.frequencyData.pattern != '' && this.frequencyData.pattern.split('~')[0] === '0') {\r\n this.populateFrequency();\r\n } else {\r\n this.getOneTimeFrequency();\r\n }\r\n \r\n\r\n }\r\n\r\n populateFrequency() {\r\n const patternInfo = this.frequencyData.pattern.split('~');\r\n console.log(\"patternInfo ==>\", patternInfo)\r\n const timeStamp = moment(`${patternInfo[3]}-${patternInfo[2]}-${patternInfo[1]} ${this.frequencyData.failedTime}`, \"DD-MM-YYYY HH:mm a\" ).unix();\r\n console.log(\"timeStamp -->\", timeStamp)\r\n this.todayDate = new Date(timeStamp * 1000)\r\n this.selectedDate = moment(this.todayDate)\r\n this.oneTimeFailed = this.frequencyData.failed;\r\n this.oneTimeWindow = this.frequencyData.window;\r\n this.oneTimeStartTime = this.frequencyData.failedTime\r\n this.oneTimeSelected = patternInfo[1] + '~' + patternInfo[2] + '~' + patternInfo[3]\r\n this.dateObjectData = new Date(moment(this.oneTimeSelected + ' ' + this.oneTimeStartTime, 'YYYY~MM~DD HH:mm:ss').unix() * 1000)\r\n this.getOneTimeFrequency();\r\n \r\n }\r\n\r\n openDatePicker() {\r\n const newDate = moment(this.todayDate);\r\n this.datePicker.api.moveCalendarTo(newDate) \r\n this.datePicker.api.open();\r\n this.datepickerOverlay = true;\r\n }\r\n closeDatepicker() {\r\n this.datePicker.api.close();\r\n this.datepickerOverlay = false;\r\n }\r\n\r\n onValueChange(event: any) {\r\n if (event.type === 'completed') {\r\n this.oneTimeWindow = event.value;\r\n } else {\r\n this.oneTimeFailed = event.value;\r\n }\r\n this.closeDatepicker();\r\n this.getOneTimeFrequency();\r\n}\r\n\r\nonTimeChanged(event:string) {\r\n console.log(\"event sring\", event);\r\n console.log(this.dateObjectData);\r\n\r\n this.oneTimeStartTime = event;\r\n if (typeof this.dateObjectData == 'object') {\r\n this.dateObjectData = moment(this.dateObjectData).toDate();\r\n }\r\n console.log(this.dateObjectData);\r\n let timeStamp = moment(\r\n this.dateObjectData.getDate() + '-' + (this.dateObjectData.getMonth() + 1) + '-' + this.dateObjectData.getFullYear() + ' ' + this.oneTimeStartTime,\r\n 'DD-MM-YYYY hh:mm a'\r\n ).unix();\r\n this.oneTimeSelected = moment(timeStamp * 1000).format('YYYY~MM~DDTHH:mm:ssZ').split('T')[0]\r\n console.log('timeStamp', timeStamp, this.oneTimeSelected);\r\n this.getOneTimeFrequency();\r\n \r\n}\r\n\r\ndateChange(event: any) {\r\n\r\n this.selectedDate = event.date;\r\n const newDate = moment(event.date).unix();\r\n\r\n this.dateObjectData = new Date(newDate * 1000);\r\n this.todayDate = this.dateObjectData;\r\n let timeStamp = moment(\r\n this.dateObjectData.getDate() + '-' + (this.dateObjectData.getMonth() + 1) + '-' + this.dateObjectData.getFullYear() + ' ' + this.oneTimeStartTime,\r\n 'DD-MM-YYYY hh:mm a'\r\n ).unix();\r\n // tslint:disable-next-line: no-console\r\n console.log('timeStamp', timeStamp, Date.now() / 1000, Date.now() / 1000 > timeStamp);\r\n this.oneTimeSelected = event.date.format('YYYY~MM~DDTHH:mm:ssZ').split('T')[0]\r\n \r\n // tslint:disable-next-line: no-console\r\n console.log(event.date.format('YYYY~MM~DDTHH:mm:ssZ'));\r\n this.getOneTimeFrequency();\r\n\r\n}\r\n\r\n getOneTimeFrequency() {\r\n if (this.oneTimeSelected !== '') {\r\n this.todayDate = moment(this.todayDate).toDate();\r\n }\r\n this.selectedDate = moment(this.todayDate)\r\n // tslint:disable-next-line: max-line-length\r\n this.frequencyInfo.placeholder =\r\n 'One Time ' + this.todayDate.getDate() + ' ' + this.shortMonth[this.todayDate.getMonth()] + ' ' + this.todayDate.getFullYear() + ' by ' + this.oneTimeStartTime;\r\n this.frequencyInfo.pattern =\r\n 0 + '~' + (this.oneTimeSelected === '' ? new Date().getFullYear() + '~' + (new Date().getMonth() + 1) + '~' + new Date().getDate() : this.oneTimeSelected);\r\n this.frequencyInfo.case = 'oneTime';\r\n this.frequencyInfo.failedAfter = this.oneTimeFailed;\r\n this.frequencyInfo.window = this.oneTimeWindow;\r\n this.frequencyInfo.timeIn12hr = this.oneTimeStartTime;\r\n this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.oneTimeStartTime);\r\n this.frequencyInfo.failed_time_utc = 0;\r\n this.frequencyInfo.reportId = 0;\r\n this.frequencyDetails.emit(this.frequencyInfo);\r\n console.log(\" this.frequencyInfo ==>\", this.frequencyInfo);\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FrequencyService } from \"../frequency.service\";\r\nimport * as moment from \"moment\";\r\n\r\n\r\n@Component({\r\n selector: 'app-frequency-random',\r\n templateUrl: './frequency-random.component.html',\r\n styleUrls: ['./frequency-random.component.less']\r\n})\r\nexport class FrequencyRandomComponent implements OnInit {\r\n @Input() mode: any='';\r\n\r\n //0: weekly 1: monthly 2:quarterly 3: yearly\r\n\r\n monthNameArray: Array<any> = [];\r\n selectedMonthly: Array<number> = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\r\n randomTypeMax = [3, 10, 30, 90];\r\n randomType = ['Weekly', 'Monthly', 'Quarterly', 'Yearly'];\r\n randomInstances = 0;\r\n defaultRandomInstance = [2, 5, 15, 45];\r\n randomlyDay = new Date().getDate();\r\n randomlyLifeCycleStart = new Date();\r\n randomlyLifeCycleEndTime = new Date(this.randomlyLifeCycleStart.getTime() + 86400000);\r\n randomlyLifecycleOccurance = 10;\r\n randomlySeletedLifecycleType = 2;\r\n randomTypeSelected = 0;\r\n randomWindow = 2;\r\n randomFailed = 2;\r\n randomMonthSelected = [];\r\n randomQuarterlySelected = 1;\r\n quarterlyGroup = [0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11];\r\n randomTypeInstances = [2, 5, 15, 45]\r\n frequencyInfo: any;\r\n shortMonth: Array<string> = [];\r\n quarterlyMonth: Array<string> = [];\r\n\r\n @Input() startDate = Math.floor(Date.now() / 1000);\r\n @Input() frequencyData: any;\r\n lifecycleDetails: any = '0000-00-00~~0';\r\n\r\n @Output() frequencyDetails = new EventEmitter<any>();\r\n\r\n constructor( private frequencyService: FrequencyService) { }\r\n\r\n ngOnInit(): void {\r\n this.monthNameArray = [...new Set(this.frequencyService.monthArray)];\r\n this.quarterlyMonth = [...new Set(this.frequencyService.quarterlyMonth)];\r\n this.shortMonth = this.frequencyService.monthArray.map((month: string) => month.substring(0, 3));\r\n const indexOfMonth = this.quarterlyGroup.indexOf(new Date().getMonth());\r\n this.randomQuarterlySelected = indexOfMonth < 4 ? 0 : indexOfMonth > 3 && indexOfMonth < 8 ? 1 : 2;\r\n this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\r\n console.log(\"this.frequencyData ==>\", this.frequencyData)\r\n if(this.frequencyData.pattern != '' && parseInt(this.frequencyData.pattern.split('~')[0]) === 8) {\r\n this.populateFrequency();\r\n } else {\r\n this.getRandomInstances();\r\n }\r\n this.getRandomFrequency();\r\n }\r\n\r\n getRandomInstances() {\r\n this.randomInstances = this.randomTypeInstances[this.randomTypeSelected]\r\n }\r\n\r\n populateFrequency() {\r\n const frequencySelected = this.frequencyData.pattern.split('~');\r\n const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\r\n this.randomWindow = this.frequencyData.window;\r\n this.randomFailed = this.frequencyData.failed;\r\n this.randomInstances = parseInt(frequencySelected[3]);\r\n this.randomTypeSelected = parseInt(frequencySelected[1]) - 1;\r\n console.log('this.randomTypeSelected', this.randomTypeSelected);\r\n console.log('frequencySelected', frequencySelected);\r\n if (this.randomTypeSelected === 1) {\r\n this.selectedMonthly = frequencySelected[2].split(',').map((ele: any) => parseInt(ele) - 1);\r\n }\r\n if (this.randomTypeSelected == 2) {\r\n const monthRandom = parseInt(frequencySelected[2].split(',')[0]);\r\n const indexRandom = this.quarterlyGroup.indexOf(monthRandom - 1);\r\n this.randomQuarterlySelected = indexRandom < 4 ? 0 : indexRandom > 3 && indexRandom < 8 ? 1 : 2;\r\n }\r\n this.randomlyLifeCycleStart = new Date(this.frequencyData.startDate * 1000);\r\n this.startDate = this.frequencyData.startFrom ?? this.frequencyData.startDate\r\n if(Number(lifecycleInfo[1]) > 0) {\r\n this.randomlyLifecycleOccurance = Number(lifecycleInfo[1]);\r\n }\r\n this.lifecycleDetails = this.frequencyData.lifecycle;\r\n if( lifecycleInfo[0] !== '0000-00-00') {\r\n const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()\r\n this.randomlyLifeCycleEndTime = new Date(dateSelected * 1000);\r\n }\r\n if( this.frequencyData.lifecycle == '0000-00-00~~0') {\r\n this.randomlySeletedLifecycleType = 2;\r\n } else if(lifecycleInfo[0] !== '0000-00-00') {\r\n this.randomlySeletedLifecycleType = 0;\r\n } else {\r\n this.randomlySeletedLifecycleType = 1;\r\n }\r\n\r\n }\r\n\r\n onMonthSelected(event: any) {\r\n if (event.checked) {\r\n this.selectedMonthly.push(event.index);\r\n } else {\r\n this.selectedMonthly = this.selectedMonthly.filter((ele) => ele !== event.index);\r\n }\r\n this.getRandomFrequency();\r\n \r\n }\r\n\r\n \r\n onValueChange(event: any) {\r\n if (event.type === 'completed') {\r\n this.randomWindow = event.value;\r\n } else {\r\n this.randomFailed = event.value;\r\n }\r\n this.getRandomFrequency();\r\n}\r\n\r\n randomChecked(event: any) {\r\n console.log(\"evenet ==>\", event)\r\n this.randomTypeSelected = Number(event.target.value);\r\n this.getRandomInstances();\r\n console.log(\"evenet ==>\",event, this.randomTypeSelected)\r\n this.getRandomFrequency();\r\n }\r\n\r\n randomInstance(event: any, type: any) {\r\n if (\r\n !Number.isNaN(Number(event.target.value)) &&\r\n event.target.value !== '0' &&\r\n parseInt(event.target.value) > 0 &&\r\n parseInt(event.target.value) < this.randomTypeMax[type] + 1\r\n ) {\r\n } else {\r\n this.randomInstances = this.defaultRandomInstance[this.randomTypeSelected];\r\n }\r\n this.getRandomFrequency();\r\n }\r\n\r\n lifecycleChange(event: any) {\r\n console.log('event==>', event);\r\n\r\n switch (event.type) {\r\n case 0:\r\n this.lifecycleDetails = event.endsBy + '~~0';\r\n break;\r\n case 1:\r\n this.lifecycleDetails = '0000-00-00~~' + event.endafter;\r\n break;\r\n case 2:\r\n this.lifecycleDetails = '0000-00-00~~0';\r\n break;\r\n }\r\n if (event.startFrom.toString().length > 10) {\r\n this.startDate = Math.floor(event.startFrom / 1000);\r\n } else {\r\n this.startDate = Math.floor(event.startFrom);\r\n }\r\n let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\r\n console.log('end date', endByDate);\r\n if (event.type === 0) {\r\n endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\r\n console.log('endByDate', endByDate);\r\n \r\n }\r\n this.frequencyInfo.failed_time_utc = endByDate;\r\n this.getRandomFrequency();\r\n }\r\n\r\n selectedMonth(event: any) {\r\n console.log(\"event ==>\", event)\r\n // this.selectedQuarterly = parseInt(event.target.value);\r\n // this.getQuarterlyFrequency();\r\n this.getRandomFrequency();\r\n }\r\n\r\n randomQuarterlyChecked(event: any) {\r\n console.log('event', event);\r\n this.randomQuarterlySelected = Number(event.target.value);\r\n this.getRandomFrequency();\r\n }\r\n\r\n getRandomFrequency() {\r\n //0: weekly 1: monthly 2:quarterly 3: yearly\r\n let frequencyDetails;\r\n switch (this.randomTypeSelected) {\r\n \r\n case 0:\r\n frequencyDetails = this.getWeeklyFrequency();\r\n break;\r\n case 1:\r\n frequencyDetails = this.getMonthlyFrequency();\r\n break;\r\n case 2:\r\n frequencyDetails = this.getQuarterlyFrequency();\r\n break;\r\n case 3:\r\n frequencyDetails = this.getYearlyFrequency();\r\n break;\r\n }\r\n this.frequencyInfo.pattern = frequencyDetails?.pattern;\r\n this.frequencyInfo.placeholder = frequencyDetails?.placeholder;\r\n this.frequencyInfo.case = 'randomly';\r\n this.frequencyInfo.failedAfter = this.randomFailed;\r\n this.frequencyInfo.window = this.randomWindow;\r\n this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\r\n this.frequencyInfo.startFrom = this.startDate;\r\n this.frequencyDetails.emit(this.frequencyInfo);\r\n console.log(\" this.frequencyInfo ==>\", this.frequencyInfo);\r\n }\r\n\r\n getWeeklyFrequency(){\r\n return {\r\n pattern: 8 + '~' + 1 + '~' + 0 + '~' + this.randomInstances,\r\n placeholder: 'Every week for ' + this.randomInstances + ' random instances'\r\n }\r\n }\r\n\r\n getMonthlyFrequency() {\r\n console.log(\"this.selectedMonthly ==>\", this.selectedMonthly)\r\n this.selectedMonthly = this.selectedMonthly.sort((n1, n2) => n1 - n2);\r\n console.log('this.randomMonthSelected', this.randomMonthSelected);\r\n const selectedMonth = this.selectedMonthly.map((ele) => {\r\n return this.shortMonth[ele];\r\n });\r\n const monthIndex = this.selectedMonthly.map((ele) => ele + 1);\r\n console.log('monthIndex', monthIndex);\r\n return {\r\n pattern: 8 + '~' + 2 + '~' + monthIndex.join(',') + '~' + this.randomInstances,\r\n placeholder: 'Every ' + selectedMonth.join(', ') + ' for ' + this.randomInstances + ' random instances'\r\n }\r\n }\r\n\r\n \r\n\r\n getQuarterlyFrequency() {\r\n let monthSequence = this.randomQuarterlySelected === 0 ? this.quarterlyGroup.slice(0, 4): this.randomQuarterlySelected === 1 ? this.quarterlyGroup.slice(4, 8) : this.quarterlyGroup.slice(8);\r\n console.log(\"monthSequence ==>\", monthSequence, this.quarterlyMonth, this.randomQuarterlySelected)\r\n monthSequence = monthSequence.map((ele) => ele + 1);\r\n return {\r\n pattern: 8 + '~' + 3 + '~' + monthSequence + '~' + this.randomInstances,\r\n placeholder: 'Every ' + this.quarterlyMonth[this.randomQuarterlySelected] + ' for ' + this.randomInstances + ' random instances'\r\n }\r\n }\r\n\r\n getYearlyFrequency() {\r\n return {\r\n pattern: 8 + '~' + 4 + '~1,2,3,4,5,6,7,8,9,10,11,12~' + this.randomInstances,\r\n placeholder: 'Every year for ' + this.randomInstances + ' random instances'\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FrequencyService } from \"../frequency.service\";\r\nimport * as moment from 'moment';\r\nimport { elementAt } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-frequency-on-completion-of',\r\n templateUrl: './frequency-on-completion-of.component.html',\r\n styleUrls: ['./frequency-on-completion-of.component.less']\r\n})\r\nexport class FrequencyOnCompletionOfComponent implements OnInit {\r\n @Input() mode: any='';\r\n\r\n onCompletionOfInput = 1;\r\n onCompletionOfWindow = 3;\r\n onCompletionOfFailed = 5;\r\n onCompletionOfTime = '11:59 pm';\r\n onCompletionOfResponsibility: Array<any> = [];\r\n isLifecycleModified = false;\r\n selectedResponsibility = 0;\r\n placeholder = 'Loading...';\r\n frequencyInfo: any;\r\n selectedResponsibilityDetails: any\r\n\r\n @Input() startDate = Math.floor(Date.now() / 1000);\r\n @Input() frequencyData: any;\r\n lifecycleDetails: any = '0000-00-00~~0';\r\n\r\n @Output() frequencyDetails = new EventEmitter<any>();\r\n\r\n constructor(private frequencyService: FrequencyService) { }\r\n\r\n ngOnInit(): void {\r\n this.getCompletionReports();\r\n this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\r\n console.log(\"this.frequencyData ==>\", this.frequencyData)\r\n this.getOnCompletionFrequency();\r\n \r\n \r\n }\r\n\r\n populateFrequency() {\r\n const frequencySelected = this.frequencyData.pattern.split('~')\r\n this.onCompletionOfInput = parseInt(frequencySelected[3]);\r\n this.onCompletionOfFailed = this.frequencyData.failed;\r\n this.onCompletionOfWindow = this.frequencyData.window;\r\n this.onCompletionOfTime = this.frequencyData.failedTime\r\n this.selectedResponsibilityDetails = this.onCompletionOfResponsibility.find((res : any) => res.ReportId === this.frequencyData.selectedReport);\r\n this.getOnCompletionFrequency();\r\n\r\n\r\n }\r\n\r\n onTimeChanged(event:string) {\r\n console.log(event);\r\n \r\n this.onCompletionOfTime = event;\r\n this.getOnCompletionFrequency();\r\n \r\n }\r\n\r\n onValueChange(event: any) {\r\n if (event.type === 'completed') {\r\n this.onCompletionOfWindow = event.value;\r\n } else {\r\n this.onCompletionOfFailed = event.value;\r\n }\r\n this.getOnCompletionFrequency();\r\n}\r\n\r\nonResponsibilitySelection(event: any) {\r\n console.log(\"event ==>\", event, this.selectedResponsibilityDetails)\r\n if(typeof(this.selectedResponsibilityDetails) === 'object') {\r\n console.log(\"eeeeee\")\r\n //this.selectedResponsibilityDetails = event;\r\n this.frequencyInfo.reportId = this.selectedResponsibilityDetails?.ReportId;\r\n } else {\r\n console.log(\"eeeeewwwwwwe\")\r\n this.frequencyInfo.reportId = 0;\r\n }\r\n this.getOnCompletionFrequency();\r\n \r\n}\r\n\r\n getCompletionReports() {\r\n this.selectedResponsibility = -1;\r\n this.frequencyService.getOnCompletionOfResponsibility().subscribe((res: Array<any>) => {\r\n this.selectedResponsibility = 0;\r\n this.placeholder = 'Select a Responsibility';\r\n this.onCompletionOfResponsibility = res;\r\n console.log(\"this.frequencyData\",this.frequencyData)\r\n if(this.frequencyData.pattern != '' && parseInt(this.frequencyData.pattern.split('~')[0]) === 6) {\r\n this.populateFrequency();\r\n }\r\n \r\n console.log(\"on copletion responsibility\", res)\r\n })\r\n }\r\n\r\n inputValueChange(event: any) {\r\n this.onCompletionOfInput = Number(event.target.value);\r\n if( this.onCompletionOfInput < 1) {\r\n this.onCompletionOfInput = 1;\r\n }\r\n this.getOnCompletionFrequency();\r\n console.log(\"event ==>\", event)\r\n }\r\n\r\n getOnCompletionFrequency() {\r\n\r\n this.frequencyInfo.placeholder =\r\n this.onCompletionOfInput +\r\n ' ' +\r\n (this.onCompletionOfInput > 1 ? 'days' : 'day') +\r\n ' after completion of ' +\r\n (this.onCompletionOfResponsibility && (this.selectedResponsibilityDetails?.report_name) ? (this.selectedResponsibilityDetails?.report_name) : '');\r\n this.frequencyInfo.pattern = 6 + '~' + '0' + '~' + '0' + '~' + this.onCompletionOfInput;\r\n this.frequencyInfo.case = 'onCompletionOf';\r\n this.frequencyInfo.failedAfter = this.onCompletionOfFailed;\r\n this.frequencyInfo.window = this.onCompletionOfWindow;\r\n this.frequencyInfo.timeIn12hr = this.onCompletionOfTime;\r\n this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.onCompletionOfTime);\r\n this.frequencyInfo.failed_time_utc = 0;\r\n this.frequencyInfo.reportId = this.selectedResponsibilityDetails?.ReportId ?? 0;\r\n this.frequencyDetails.emit(this.frequencyInfo);\r\n console.log(\" this.frequencyInfo ==>\", this.frequencyInfo);\r\n }\r\n\r\n \r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FrequencyService } from \"../frequency.service\";\r\n@Component({\r\n selector: 'app-frequency-ongoing',\r\n templateUrl: './frequency-ongoing.component.html',\r\n styleUrls: ['./frequency-ongoing.component.less']\r\n})\r\nexport class FrequencyOngoingComponent implements OnInit {\r\n\r\n @Input() selectedType = 0; // selected type\r\n @Input() selectedOngoingType = 2; // default month selected;\r\n @Input() frequencyData: any;\r\n\r\n ongoingType = ['Week', 'Month', 'Quarter'];\r\n frequencyInfo: any\r\n\r\n @Input() startDate = Math.floor(Date.now() / 1000);\r\n lifecycleDetails: any = '0000-00-00~~0';\r\n\r\n @Output() frequencyDetails = new EventEmitter<any>();\r\n\r\n constructor(private frequencyService: FrequencyService) { }\r\n\r\n ngOnInit(): void {\r\n this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\r\n console.log(\"this.frequencyData ==>\", this.frequencyData)\r\n if(this.frequencyData.pattern != '' && parseInt(this.frequencyData.pattern.split('~')[0]) === 10) {\r\n this.populateFrequency();\r\n }\r\n this.getOngoingFrequency();\r\n }\r\n\r\n populateFrequency() {\r\n const frequencySelected = this.frequencyData.pattern.split('~')\r\n this.selectedType = parseInt(frequencySelected[1]);\r\n this.selectedOngoingType = parseInt(frequencySelected[2]) === 0 ? 2 : parseInt(frequencySelected[2]);\r\n }\r\n\r\n onSelected(event: any) {\r\n console.log(\"event ==>\", event)\r\n this.selectedType = Number(event.target.value);\r\n this.getOngoingFrequency();\r\n }\r\n\r\n onSelectedOnGoingType(event: any) {\r\n this.selectedOngoingType = Number(event.target.value);\r\n this.getOngoingFrequency();\r\n }\r\n\r\n getOngoingFrequency() {\r\n this.frequencyInfo.placeholder = 'You have selected an ongoing frequency.';\r\n this.frequencyInfo.pattern = 10 + '~' + this.selectedType + '~' + (this.selectedType ? this.selectedOngoingType : 0) + '~0';\r\n this.frequencyInfo.case = 'onGoing';\r\n this.frequencyInfo.failedAfter = 0;\r\n this.frequencyInfo.window = 0;\r\n this.frequencyInfo.timeIn12hr = '11:59 pm';\r\n this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h('11:59 pm');\r\n this.frequencyInfo.failed_time_utc = 0;\r\n this.frequencyInfo.reportId = 0;\r\n this.frequencyDetails.emit(this.frequencyInfo);\r\n console.log(\" this.frequencyInfo ==>\", this.frequencyInfo);\r\n }\r\n\r\n}\r\n","\r\n\r\n import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n import * as moment from 'moment';\r\n @Component({\r\n selector: 'app-frequency-top',\r\n templateUrl: './frequency-top.component.html',\r\n styleUrls: ['./frequency-top.component.less']\r\n })\r\n export class FrequencyTopComponent implements OnInit {\r\n @Input() occurrenceFirst = 0;\r\n @Input() id = 0; // 0 = Daily, 1: weekly, 5: Annually\r\n @Input() inputTime = '11:59 pm';\r\n @Input() frequencyType = 0; // 0 = days, 1 = weeks & 2 = years\r\n @Input() yearlyDay = new Date().getDate();\r\n \r\n @Output() valueChangedFirst: EventEmitter<any> = new EventEmitter();\r\n @Output() nextDisable: EventEmitter<any> = new EventEmitter();\r\n @Output() timeChanged: EventEmitter<any> = new EventEmitter();\r\n @Output() yearlyDateChanged: EventEmitter<any> = new EventEmitter();\r\n \r\n todayDate = new Date();\r\n dateObjectData = new Date();\r\n timeData = '11:59 pm';\r\n constructor() { }\r\n \r\n ngOnInit(): void {\r\n }\r\n \r\n enterValueFirst(event:any, actionType:string) {\r\n if(this.id !== 0 && this.id !== 1 && this.id !== 5) {\r\n this.enterValue(this.occurrenceFirst,actionType);\r\n return;\r\n }\r\n if (!Number.isNaN(Number(this.occurrenceFirst)) && this.occurrenceFirst !== 0 && Number(this.occurrenceFirst) > 0) {\r\n this.occurrenceFirst = Number(this.occurrenceFirst);\r\n this.valueChangedFirst.emit({\r\n type: actionType,\r\n value: Number(this.occurrenceFirst),\r\n pageName: '',\r\n });\r\n } else {\r\n this.occurrenceFirst = 1;\r\n }\r\n }\r\n\r\n enterValue(event: any, actionType: any) {\r\n if (!Number.isNaN(Number(event)) && event !== 0 && Number(event) > 0 && Number(event) < 32) {\r\n this.occurrenceFirst = Number(event); \r\n this.valueChangedFirst.emit({\r\n type: actionType,\r\n value: Number(event),\r\n pageName: '',\r\n });\r\n } else {\r\n this.occurrenceFirst = new Date().getDate();\r\n }\r\n }\r\n \r\n getToday(): string {\r\n return moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')?.split(' ')[0];\r\n }\r\n\r\n onTimeChanged(event:string) {\r\n try {\r\n this.timeData = event;\r\n if (typeof this.dateObjectData == 'object') {\r\n this.dateObjectData = moment(this.dateObjectData).toDate();\r\n }\r\n let timeStamp = moment(\r\n this.dateObjectData.getDate() + '-' + (this.dateObjectData.getMonth() + 1) + '-' + this.dateObjectData.getFullYear() + ' ' + this.timeData,\r\n 'DD-MM-YYYY hh:mm a'\r\n ).unix();\r\n if (Date.now() / 1000 > timeStamp) {\r\n this.nextDisable.emit(true);\r\n } else {\r\n this.nextDisable.emit(false);\r\n }\r\n this.timeChanged.emit(event);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n enterYearDay(event: any) {\r\n if (!Number.isNaN(Number(this.yearlyDay)) && this.yearlyDay !== 0 && Number(this.yearlyDay) > 0 && Number(this.yearlyDay) < 32) {\r\n //this.yearlyDay = Number(event.target.value);\r\n this.yearlyDateChanged.emit(\r\n this.yearlyDay\r\n );\r\n } else {\r\n this.yearlyDay = new Date().getDate();\r\n }\r\n }\r\n\r\n \r\n }\r\n \r\n\r\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter, SimpleChanges, OnChanges, DoCheck } from '@angular/core';\r\nimport { DatePickerComponent } from 'ng2-date-picker';\r\nimport * as moment from 'moment';\r\nimport { FrequencyService } from '../frequency.service';\r\n\r\n@Component({\r\n selector: 'app-frequency-lifecycle',\r\n templateUrl: './frequency-lifecycle.component.html',\r\n styleUrls: ['./frequency-lifecycle.component.less']\r\n})\r\nexport class FrequencyLifecycleComponent implements OnInit, OnChanges, DoCheck {\r\n\r\n @ViewChild('datePicker') datePicker!: DatePickerComponent;\r\n @ViewChild('datePicker1') datePicker1!: DatePickerComponent;\r\n\r\n\r\n datePickerOverlay = false;\r\n showDateError = false;\r\n startDateUnix = Date.now();\r\n endDateObject: any;\r\n startDateConfig: any;\r\n endDateConfig: any;\r\n\r\n // All input variable\r\n @Input() startDate = new Date();\r\n @Input() endDate = moment(new Date(this.startDate).getTime() + 86400000);\r\n @Input() endBy: any;\r\n @Input() occurrance = 10;\r\n @Input() selectedLifecycleType = 2; // 0 = End by , End After, 2 = perpetual\r\n @Input() id = 0;\r\n\r\n // lifecycle output \r\n @Output() selectedOccurance = new EventEmitter<any>();\r\n \r\n\r\n constructor( private frequencyService: FrequencyService) { }\r\n\r\n ngOnInit(): void {\r\n this.startDateConfig = Object.assign({...this.frequencyService.dateConfig});\r\n this.endDateConfig = Object.assign({...this.frequencyService.dateConfig});\r\n this.startDateConfig['min'] = new Date().getDate().toString();\r\n //this.startDateUnix = this.startDate.getDate().toString()\r\n this.endDateConfig['min'] = moment(new Date(new Date(this.startDate).getTime() + 86400000))\r\n this.getEndDate(this.startDate)\r\n this.changeEndDateObj(this.endDate);\r\n console.log(\"endDate ==>\", this.endDate)\r\n }\r\n\r\n getEndDate(event: any) {\r\n const time = moment(this.endDate).format(\"DD-MM-YYYY HH:mm:ss\");\r\n const getUnixTime = moment(time.split(' ')[0] + \" 00:00:00\", \"DD-MM-YYYY HH:mm:ss\").unix()\r\n console.log(\"end date ==>time\", time, getUnixTime)\r\n this.startDateUnix = moment(event).unix();\r\n console.log(\" this.startDateUnix ==>\", this.startDate, this.startDateUnix)\r\n if (this.startDateUnix >= getUnixTime) { \r\n this.endDate = moment(new Date(this.startDate).getTime() + 86400000)\r\n } else {\r\n this.endDate = moment(this.endDate)\r\n }\r\n\r\n }\r\n\r\n changeEndDateObj(date: any) {\r\n this.endDateObject = new Date(moment(date).unix() * 1000);\r\n }\r\n\r\n ngOnChanges(change: SimpleChanges) {\r\n console.log(\"changes ==>\", change, this.selectedLifecycleType)\r\n this.endBy = moment(this.endDate).format('DD-MMMM-YYYYTHH:mm:ssZ').split('T')[0];\r\n }\r\n\r\n ngDoCheck() {\r\n // console.log(\"this.endDate ==> DoCcheck\", this.endDate, this.startDate)\r\n }\r\n\r\n openDatePicker() {\r\n \r\n const newDate = moment(this.startDate)\r\n console.log(\"newDate ==>\", newDate)\r\n this.datePicker.api.moveCalendarTo(newDate) \r\n this.datePicker.api.open(); \r\n this.datePickerOverlay = true;\r\n }\r\n openDatePicker1() {\r\n console.log(\"end date ==>\", this.endDate)\r\n this.datePicker1.api.moveCalendarTo(this.endDate) \r\n this.datePicker1.api.open();\r\n \r\n this.datePickerOverlay = true;\r\n }\r\n closeDatepicker() {\r\n this.datePicker.api.close();\r\n this.datePicker1.api.close();\r\n this.datePickerOverlay = false;\r\n }\r\n\r\n // lifecycle type\r\n typeSelected(event:any) {\r\n this.selectedLifecycleType = event;\r\n this.selectedOccurance.emit({\r\n type: event,\r\n endsBy: this.endBy,\r\n endafter: this.occurrance,\r\n startFrom: this.startDateUnix,\r\n });\r\n return this.selectedLifecycleType;\r\n }\r\n\r\n // ends after selection\r\n endsAfter(event: any) {\r\n console.log('lifecycle occurrance', event);\r\n if ( !Number.isNaN(Number(this.occurrance)) && this.occurrance !== 0 && Number(this.occurrance) > 0) {\r\n console.log('IN');\r\n this.selectedOccurance.emit({\r\n type: this.selectedLifecycleType,\r\n endsBy: this.endBy,\r\n endafter: this.occurrance,\r\n startFrom: this.startDateUnix,\r\n });\r\n } else {\r\n console.log('outt');\r\n this.occurrance = 10;\r\n }\r\n return this.occurrance \r\n }\r\n\r\n // End by change\r\n endByChange(event: any) {\r\n console.log(\" On select ==>\", event)\r\n this.datePicker1.api.open();\r\n this.datePickerOverlay = true;\r\n this.endDate = event.date;\r\n this.changeEndDateObj(this.endDate);\r\n // console.log(event, ); \r\n this.endBy = moment(event.date).format('DD-MMMM-YYYY');\r\n // console.log(this.endBy);\r\n const dateObject = {\r\n type: this.selectedLifecycleType,\r\n endsBy: this.endBy,\r\n endafter: this.occurrance,\r\n startFrom: this.startDateUnix,\r\n };\r\n console.log(\"dateObject ==>\", dateObject);\r\n this.selectedOccurance.emit(dateObject);\r\n // return this.endBy\r\n }\r\n\r\n // start from change event\r\n startFromChange(event: any) {\r\n console.log(\" start date change\", event, this.endDate)\r\n const time = moment(this.endDate).format(\"DD-MM-YYYY HH:mm:ss\");\r\n const getUnixTime = moment(time.split(' ')[0] + \" 00:00:00\", \"DD-MM-YYYY HH:mm:ss\").unix()\r\n console.log(\"end date ==>time\", time, getUnixTime)\r\n this.startDateUnix = moment(event.date).unix();\r\n console.log(\" this.startDateUnix ==>\", this.startDate, this.startDateUnix)\r\n if (this.startDateUnix >= getUnixTime) {\r\n this.endDate = moment((this.startDateUnix * 1000) + 86400000);\r\n \r\n this.changeEndDateObj(this.endDate);\r\n console.log(\"this.endDate ==>\", this.endDate, this.startDate)\r\n this.endBy = moment(this.endDate).format('DD-MMMM-YYYYTHH:mm:ssZ').split('T')[0];\r\n }\r\n this.endDateConfig['min'] = Object.assign( moment( new Date(new Date(event.date).getTime() + 86400000)));\r\n console.log(\"this.endDateConfig ==>\", this.endDateConfig)\r\n this.selectedOccurance.emit({\r\n type: this.selectedLifecycleType,\r\n endsBy: this.endBy,\r\n endafter: this.occurrance,\r\n startFrom: this.startDateUnix,\r\n });\r\n \r\n }\r\n\r\n endDateModelChange(event: any) {\r\n console.log(\"endDateModelChange ==>\", event)\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-frequency-due-date',\r\n templateUrl: './frequency-due-date.component.html',\r\n styleUrls: ['./frequency-due-date.component.less']\r\n})\r\nexport class FrequencyDueDateComponent implements OnInit {\r\n\r\n constructor() { }\r\n @Input() mode='';\r\n\r\n defaultWindow: number = 0;;\r\n defaultFailed: number = 0;;\r\n defaultDeactivate: number = 0;;\r\n\r\n @Input() completedRequired = true; // when completed required\r\n @Input() notCompletedRequired = true; // when not completed required\r\n @Input() completedValue = 2; // take input for completed\r\n @Input() notCompletedValue = 2; // take input for not completed\r\n @Input() deactivateValue = 15;\r\n @Input() isDeactivated = false;\r\n @Input() id = 0;\r\n @Input() pageName = '';\r\n\r\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onValueChange(event: any, actionType: any) {\r\n if (!Number.isNaN(Number(event.target.value)) && parseInt(event.target.value) > -1) {\r\n console.log({\r\n type: actionType,\r\n value: Number(event.target.value),\r\n pageName: this.pageName,\r\n }, \"dsdsdsdsdsd\")\r\n this.valueChange.emit({\r\n type: actionType,\r\n value: Number(event.target.value),\r\n pageName: this.pageName,\r\n });\r\n } else {\r\n if (actionType === 'completed') {\r\n this.completedValue = this.defaultWindow;\r\n } else if (actionType === 'not completed') {\r\n this.notCompletedValue = this.defaultFailed;\r\n } else if (actionType === 'deactivated') {\r\n this.deactivateValue = this.defaultDeactivate;\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-frequency-checkbox-list',\r\n templateUrl: './frequency-checkbox-list.component.html',\r\n styleUrls: ['./frequency-checkbox-list.component.less']\r\n})\r\nexport class FrequencyCheckboxListComponent implements OnInit {\r\n\r\n @Input() id = -1;\r\n @Input() listArray: Array<string> = [];\r\n @Input() selectedIndex: Array<number> = [];\r\n noAnimation = true;\r\n \r\n @Output() selectedCheckbox = new EventEmitter<any>(); // {checked: true, index:0} checked : checkboxStatus, index: Index of list which checked/unchecked\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n this.noAnimation = false;\r\n }, 1000);\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-frequency-radio-list',\r\n templateUrl: './frequency-radio-list.component.html',\r\n styleUrls: ['./frequency-radio-list.component.less']\r\n})\r\nexport class FrequencyRadioListComponent implements OnInit {\r\n\r\n @Input() radioList = [];\r\n @Input() selectedIndex = -1;\r\n @Input() name = ''\r\n noAnimation = true;\r\n @Output() selectedRadio = new EventEmitter();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n console.log(\"selected Index, radio list\", this.selectedIndex);\r\n setTimeout(() => {\r\n this.noAnimation = false;\r\n }, 1000);\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FrequencyBulkService {\r\n public env !: any;\r\n constructor() { }\r\n shortHand_freqCal(frequency:any, day:any, month:any, year?:any) {\r\n const monthNames = [\r\n { value: 1, month: 'Jan' },\r\n { value: 2, month: 'Feb' },\r\n { value: 3, month: 'Mar' },\r\n { value: 4, month: 'Apr' },\r\n { value: 5, month: 'May' },\r\n { value: 6, month: 'Jun' },\r\n { value: 7, month: 'Jul' },\r\n { value: 8, month: 'Aug' },\r\n { value: 9, month: 'Sep' },\r\n { value: 10, month: 'Oct' },\r\n { value: 11, month: 'Nov' },\r\n { value: 12, month: 'Dec' },\r\n ];\r\n let frequency_details;\r\n const date_value = new Date();\r\n if(month){\r\n date_value.setMonth(typeof month !== 'number' ? monthNames.filter((x) => x.month === month?.substring(0, 3))[0]?.value - 1 : month);\r\n }\r\n if (!year) {\r\n if(month.includes(\"'\")){\r\n date_value.setFullYear(20 + month.split(\"'\")[1]);\r\n }\r\n } else {\r\n date_value.setFullYear(year);\r\n }\r\n if(day){\r\n date_value.setDate(day);\r\n }\r\n let quarterPattern = '~1,4,7,10~0';\r\n const firstHalfMonth = ['1', '2', '3', '4', '5', '6'];\r\n const secondHalfMonth = ['7', '8', '9', '10', '11', '12'];\r\n frequency = frequency.toLowerCase();\r\n\r\n switch (date_value.getMonth()) {\r\n case 0:\r\n case 3:\r\n case 6:\r\n case 9:\r\n quarterPattern = '~1,4,7,10~0';\r\n break;\r\n case 1:\r\n case 4:\r\n case 7:\r\n case 10:\r\n quarterPattern = '~2,5,8,11~0';\r\n break;\r\n case 2:\r\n case 5:\r\n case 8:\r\n case 11:\r\n quarterPattern = '~3,6,9,12~0';\r\n break;\r\n }\r\n const getDay = date_value.getDay() === 0 ? 7 : date_value.getDay();\r\n switch (frequency) {\r\n case 'every week':\r\n frequency_details = '2~' + getDay + '~0~1';\r\n break;\r\n case 'one time':\r\n frequency_details = '0~' + '' + date_value.getFullYear() + '~' + (date_value.getMonth() + 1) + '~' + date_value.getDate();\r\n break;\r\n case 'every day':\r\n frequency_details = '1~0~0~1';\r\n break;\r\n case 'every alternate day':\r\n frequency_details = '1~0~0~2';\r\n break;\r\n case 'every 10 days':\r\n frequency_details = '1~0~0~10';\r\n break;\r\n case 'every 2 weeks':\r\n frequency_details = '2~' + getDay + '~0~2';\r\n break;\r\n case 'every fortnight':\r\n frequency_details = '1~' + getDay + '~0~14';\r\n break;\r\n case 'every 3 weeks':\r\n frequency_details = '2~' + getDay + '~0~3';\r\n break;\r\n case 'every month':\r\n frequency_details = '3~' + date_value.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';\r\n break;\r\n case 'every 45 days':\r\n frequency_details = '1~0~0~45';\r\n break;\r\n case 'every alternate month':\r\n 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';\r\n break;\r\n case 'every quarter':\r\n frequency_details = '7~' + date_value.getDate() + quarterPattern;\r\n break;\r\n case 'every 120 days':\r\n frequency_details = '1~0~0~120';\r\n break;\r\n case 'half yearly':\r\n const index1 = firstHalfMonth.indexOf((date_value.getMonth() + 1).toString());\r\n const index2 = secondHalfMonth.indexOf((date_value.getMonth() + 1).toString());\r\n const pattern = index1 > -1 ? '~' + firstHalfMonth[index1] + ',' + secondHalfMonth[index1] + '~0' : '~' + firstHalfMonth[index2] + ',' + secondHalfMonth[index2] + '~0';\r\n frequency_details = '3~' + date_value.getDate() + pattern;\r\n break;\r\n case 'annual':\r\n case 'yearly':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~1';\r\n break;\r\n case 'every 2 years':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~2';\r\n break;\r\n case 'every 3 years':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~3';\r\n break;\r\n case 'every 4 years':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~4';\r\n break;\r\n case 'every 5 years':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~5';\r\n break;\r\n case 'every 10 years':\r\n frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~10';\r\n break;\r\n case 'ongoing':\r\n frequency_details = '10~0~0~0';\r\n break;\r\n case 'to be decided later':\r\n default:\r\n frequency_details = '5~0~0~0';\r\n }\r\n\r\n return frequency_details;\r\n }\r\n}\r\n\r\n\r\n\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter, SimpleChanges, OnChanges } from '@angular/core';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport * as moment from 'moment';\r\nimport * as XLSX from 'xlsx';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\nimport { AddRiskService } from '../workflow-services/add-risk.service';\r\nimport { AuthService } from '../workflow-services/auth.service';\r\nimport { FrequencyBulkService } from '../workflow-services/frequency.service';\r\nimport { ResponsibilityService } from '../workflow-services/responsibility.service';\r\n\r\ntype AOA = any[][];\r\n\r\n@Component({\r\n selector: 'app-add-multiple-responsibility',\r\n templateUrl: './add-multiple-responsibility.component.html',\r\n styleUrls: ['./add-multiple-responsibility.component.less', '../forms.less'],\r\n})\r\nexport class AddMultipleResponsibilityComponent implements OnChanges {\r\n @Output() pickerChanged = new EventEmitter();\r\n @Output() populateOption = new EventEmitter();\r\n @Output() closeWorkflow = new EventEmitter();\r\n @Output() disconnectRefresh = new EventEmitter();\r\n isNotificationPending = 0;\r\n\r\n responsibilityBulkUpload: any = {\r\n header: [],\r\n reports: [],\r\n }\r\n\r\n templateInfo: any = {\r\n\r\n categoryList: [],\r\n rcList: [],\r\n assignorsList: [],\r\n assigneesList: [],\r\n memberId: ''\r\n }\r\n isLoader = false;\r\n showCategoryList = false;\r\n templateDownloaded = false;\r\n downloadInProgress = false;\r\n loader = false;\r\n isFileEmpty = false;\r\n isWrongFile = false;\r\n isWrongFormat = false;\r\n fileName: any;\r\n data: any;\r\n showExcel = false;\r\n uploadedFiles: any = [];\r\n fileResponse: any = [];\r\n fileValue: any;\r\n memberId = 0;\r\n organizationId = 0;\r\n errorMessage = \" invalid file error\"\r\n downloadStatus: string = 'NOT_DOWNLOADING';\r\n downloadPercent = 0;\r\n defaultOwner = ''\r\n smileyMessage = `You're All Set! We're processing your request and you will be notified via email upon completion.`;\r\n actionButtons = [\r\n { buttonText: 'Entrust More Responsibilities', class: 'white-btn', id: 'addMore' },\r\n { buttonText: (this.isNotificationPending) ? 'View Responsibilities In Queue' : 'View Responsibilities', class: 'blue-btn', id: 'view' },\r\n ];\r\n showSmiley = false;\r\n member_obj_id = '';\r\n riskClassEnabled: any;\r\n userInfo !: any;\r\n responsibilityData !: any;\r\n constructor(\r\n private riskService: AddRiskService,\r\n private responsibilityService: ResponsibilityService,\r\n private authService: AuthService,\r\n private frequencyService: FrequencyBulkService,\r\n private snackBar: SnackBarService\r\n ) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n }\r\n ngOnInit() {\r\n // const test = this.compareWithCurrentDate(1, \"July'21\") ;\r\n // debugger\r\n this.pickerChanged.emit(false);\r\n\r\n this.organizationId = this.authService.getOrganizationId();\r\n this.memberId = this.authService.getMemberId();\r\n this.member_obj_id = this.authService.getUserDetails()._id;\r\n this.userInfo = this.authService.getUserDetails().user;\r\n this.defaultOwner = (this.userInfo) ? this.userInfo.name + ' (' + this.userInfo.email + ')' : '';\r\n this.getUserDetails();\r\n this.authService.getOrganizationDetails().subscribe((res: any) => {\r\n this.riskClassEnabled = res.enable_riskclass\r\n });\r\n }\r\n\r\n triggerBrowseFile() {\r\n const getFile = document.getElementById('fileInput');\r\n if (getFile) {\r\n getFile.click();\r\n }\r\n }\r\n getUserDetails() {\r\n this.authService.getUserInfo().subscribe((res: any) => {\r\n this.isNotificationPending = res.notification_pending_flag;\r\n })\r\n }\r\n\r\n uploadedFile(event: any) {\r\n // this.testarray=[];\r\n try {\r\n\r\n this.responsibilityBulkUpload = {\r\n header: [],\r\n reports: [],\r\n }\r\n\r\n this.templateInfo = {\r\n categoryList: [],\r\n rcList: [],\r\n assignorsList: [],\r\n assigneesList: [],\r\n memberId: ''\r\n\r\n }\r\n this.uploadedFiles = [];\r\n const reference = document.querySelector('#scrollReference');\r\n if (reference) {\r\n reference.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }\r\n this.isFileEmpty = false;\r\n this.isWrongFile = false;\r\n this.isWrongFormat = false;\r\n this.fileName = event.target.files[0].name;\r\n this.uploadedFiles.push(event.target.files);\r\n const target: DataTransfer = event.target as DataTransfer;\r\n // tslint:disable-next-line: curly\r\n if (target.files.length !== 1) throw new Error('Cannot use multiple files');\r\n const reader: FileReader = new FileReader();\r\n reader.onload = (e: any) => {\r\n const bstr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\r\n const wsname: string = wb.SheetNames[0];\r\n const wsname1: string = wb.SheetNames[1];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n const tempData: XLSX.WorkSheet = wb.Sheets[wsname1];\r\n\r\n this.data = XLSX.utils.sheet_to_json(ws, {\r\n header: 1,\r\n }) as AOA;\r\n\r\n const tData = XLSX.utils.sheet_to_json(tempData, { header: 1 }) as AOA;\r\n const tempList = tData.filter((dataElement: any) => dataElement.length > 0);\r\n if (this.fileName.substr(-5) !== '.xlsx') {\r\n this.errorMessage = 'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' + ' RETRY';\r\n this.isWrongFile = true;\r\n return;\r\n }\r\n\r\n this.responsibilityBulkUpload.header = cloneDeep(this.data[0].filter((dataElement: any) => dataElement.length > 0));\r\n this.responsibilityBulkUpload.header.splice(this.responsibilityBulkUpload.header.length - 1, 1)\r\n\r\n this.data = this.data.slice(2);\r\n if (this.responsibilityBulkUpload.header[0] !== 'Enter Responsibility Name*') {\r\n this.errorMessage = 'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' + ' RETRY';\r\n this.isWrongFile = false;\r\n this.isWrongFormat = true;\r\n\r\n return;\r\n }\r\n this.templateInfo.memberId = tempList[0][25]\r\n\r\n if ((this.member_obj_id != this.templateInfo.memberId)) {\r\n this.errorMessage = 'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' + ' RETRY';\r\n this.isWrongFile = true;\r\n return;\r\n }\r\n tempList.forEach((element) => {\r\n if (element[2] && element[2]!=' ') {\r\n const category = {\r\n name: element[2],\r\n category_id: element[3]\r\n }\r\n this.templateInfo.categoryList.push(category);\r\n }\r\n if (element[9] && element[9]!=' ') {\r\n const rc = {\r\n name: element[9],\r\n rc_id: element[10],\r\n parentIds: JSON.parse(element[13])\r\n }\r\n this.templateInfo.rcList.push(rc);\r\n }\r\n if (element[11] && element[11]!=' ') {\r\n const assignee = {\r\n nameAndEmail: element[11],\r\n name: element[11].split(' (')[0],\r\n email: element[11].split(' (')[1].replace(')', ''),\r\n employee_id: element[12],\r\n my_member_id: element[16]\r\n }\r\n this.templateInfo.assigneesList.push(assignee);\r\n }\r\n if (element[14] && element[14]!=' ') {\r\n const assignor = {\r\n nameAndEmail: element[14],\r\n name: element[14].split(' (')[0],\r\n email: element[14].split(' (')[1].replace(')', ''),\r\n member_id: element[15],\r\n }\r\n this.templateInfo.assignorsList.push(assignor);\r\n }\r\n\r\n });\r\n const isEmpty = this.checkEmptyFile();\r\n if (isEmpty) {\r\n this.errorMessage = 'You have uploaded a blank template. Please add details for all mandatory fields. RETRY';\r\n this.isFileEmpty = true;\r\n this.isWrongFile = false;\r\n this.isWrongFormat = false;\r\n return;\r\n\r\n } else {\r\n\r\n this.isFileEmpty = false;\r\n this.isWrongFile = false;\r\n this.isWrongFormat = false;\r\n this.fileUpload();\r\n\r\n }\r\n const responsibilityData = this.data.filter((dataElement: any) => dataElement.length > 0);\r\n responsibilityData.forEach((report: any) => {\r\n const validDate = this.compareWithCurrentDate(report[5], report[6])\r\n const validFields = this.checkValidity(report);\r\n const validUser = this.returnIds(report[2], 'entrusted_to') ? true : false\r\n const obj: any = {\r\n responsibilityName: report[0] ?? '',\r\n assignor: report[1] ?? '',\r\n assignee: report[2] ?? '',\r\n responsibilityCategory: report[3] ?? '',\r\n frequency: report[4] ?? '',\r\n day: report[5] ?? '',\r\n month: report[6] ?? '',\r\n responsibilityWindow: report[7] ?? '',\r\n failedAfter: report[8] ?? '',\r\n reportClass: report[9] ?? '',\r\n responsibilityCenter: report[10] ?? '',\r\n reviewer: report[11] ?? '',\r\n reviewToBeCompletedWithin: report[12] ?? '',\r\n reviewWillBeFailedAfter: report[13] ?? '',\r\n formatForResponsibility: report[14] ?? '',\r\n notes: report[15] ?? '',\r\n documentEvidenceRequired: report[16] ?? '',\r\n alwaysNotify: report[17] ?? '',\r\n notifyOnFailure: report[18] ?? '',\r\n keyResponsibility: report[19] ?? '',\r\n objective: report[20] ?? '',\r\n\r\n isValidDueDate: validDate,\r\n isPastDate: this.isPastDate(report[5], report[6]),\r\n checkValidity: validFields,\r\n isValid: (validDate) && (validFields) && (validUser),\r\n isValidUser: (validUser)\r\n };\r\n this.responsibilityBulkUpload.reports.push(obj);\r\n });\r\n // console.log(this.responsibilityBulkUpload.reports)\r\n // console.log(this.testarray)\r\n this.isFileEmpty = false;\r\n this.isWrongFile = false;\r\n this.isWrongFormat = false;\r\n this.showExcel = true;\r\n this.fileValue = '';\r\n };\r\n reader.readAsBinaryString(target.files[0]);\r\n } catch (e) {\r\n // tslint:disable-next-line: no-console\r\n console.error(e);\r\n }\r\n }\r\n checkEmptyFile() {\r\n let isEmpty = false;\r\n this.data = this.data.filter((dataElement: any) => dataElement.length > 0);\r\n if (this.data.length < 1) {\r\n isEmpty = true;\r\n }\r\n return isEmpty;\r\n }\r\n\r\n // testarray:any[]=[]\r\n\r\n checkValidity(report: any) {\r\n const re = / |<br>/g;\r\n if (report[0]) {\r\n var trimmedName = report[0].toString().replace(re, '').trim();\r\n trimmedName = trimmedName.replace(/ +/g, ' ');\r\n }\r\n\r\n /**\r\n * index key for\r\n *\r\n * report[1] On Behalf of user\r\n * report[11] Reviewer\r\n * report[17] Always Notify\r\n * report[18] Notify On Failure\r\n * report[2] Assignee\r\n * report[4] frequency\r\n * trimmedName Report name\r\n * defaultOwner Default Assignor\r\n */\r\n if ((!trimmedName) || (report[1] && ( (report[1] == report[17]) || (report[1] == report[18]))) ||\r\n ((!report[1]) && ( (this.defaultOwner == report[17]) || (this.defaultOwner == report[18]))) ||\r\n (report[2] && ((report[2] == report[11]) || (report[2] == report[17]) || (report[2] == report[18]))) ||\r\n ((!report[2]) && ((this.defaultOwner == report[17]) || (this.defaultOwner == report[18]))) ||\r\n (report[11] && ((report[11] == report[17]) || (report[11] == report[18])))\r\n || (!report[2]) || (!report[4])) {\r\n return false;\r\n } else { return true }\r\n }\r\n compareWithCurrentDate(day: any, month: any) {\r\n const currentDate = new Date();\r\n const monthNames = [\r\n { value: 1, month: 'Jan' },\r\n { value: 2, month: 'Feb' },\r\n { value: 3, month: 'Mar' },\r\n { value: 4, month: 'Apr' },\r\n { value: 5, month: 'May' },\r\n { value: 6, month: 'Jun' },\r\n { value: 7, month: 'Jul' },\r\n { value: 8, month: 'Aug' },\r\n { value: 9, month: 'Sep' },\r\n { value: 10, month: 'Oct' },\r\n { value: 11, month: 'Nov' },\r\n { value: 12, month: 'Dec' },\r\n ];\r\n\r\n if (!(day || month)) {\r\n return true;\r\n } else if (!(day && month)) {\r\n return false;\r\n } else {\r\n const monthAndYear = month.split(\"'\");\r\n\r\n const startDate = moment(day + '-' + monthAndYear[0] + '-' + 20 + monthAndYear[1] + ' 00:00:00', 'DD-MMMM-YYYY HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\r\n if (startDate == \"Invalid date\") {\r\n return false;\r\n }\r\n\r\n setTimeout(() => {\r\n\r\n }, 5);\r\n const date_value = new Date();\r\n\r\n date_value.setMonth(typeof month !== 'number' ? monthNames.filter((x) => x.month === month?.substring(0, 3))[0]?.value - 1 : month);\r\n date_value.setFullYear(Number(20 + month.split(\"'\")[1]));\r\n date_value.setDate(Number(day));\r\n // const reportDate = new Date(day + month.split(\"'\"));\r\n // console.log((currentDate.toJSON().split('T')[0])+\"&&\"+(date_value.toJSON().split('T')[0]))\r\n // debugger\r\n if (((currentDate.toJSON().split('T')[0]) != (date_value.toJSON().split('T')[0])) && (currentDate > date_value)) {\r\n\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n\r\n }\r\n }\r\n isPastDate(day: any, month: any) {\r\n const currentDate = new Date();\r\n\r\n const monthNames = [\r\n { value: 1, month: 'Jan' },\r\n { value: 2, month: 'Feb' },\r\n { value: 3, month: 'Mar' },\r\n { value: 4, month: 'Apr' },\r\n { value: 5, month: 'May' },\r\n { value: 6, month: 'Jun' },\r\n { value: 7, month: 'Jul' },\r\n { value: 8, month: 'Aug' },\r\n { value: 9, month: 'Sep' },\r\n { value: 10, month: 'Oct' },\r\n { value: 11, month: 'Nov' },\r\n { value: 12, month: 'Dec' },\r\n ];\r\n\r\n if (!(day || month)) {\r\n return false;\r\n } else if (!(day && month)) {\r\n return false;\r\n } else {\r\n // const reportDate = new Date(day + month.split(\"'\"));\r\n const date_value = new Date();\r\n date_value.setMonth(typeof month !== 'number' ? monthNames.filter((x) => x.month === month?.substring(0, 3))[0]?.value - 1 : month);\r\n date_value.setFullYear(Number(20 + month.split(\"'\")[1]));\r\n date_value.setDate(Number(day));\r\n if (currentDate > date_value) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n }\r\n\r\n downloadTemplate() {\r\n this.downloadStatus = 'DOWNLOADING';\r\n this.downloadPercent = 0;\r\n const downloadDate = new Date().toDateString().split(' ');\r\n const fileName = `Entrust Responsibilities-${downloadDate[2]}-${downloadDate[1]}-${downloadDate[3]}.xlsx`;\r\n\r\n this.riskService.downloadResponsibilityTemplate().subscribe(\r\n (data: any) => {\r\n if (data.loaded) {\r\n this.downloadPercent = 100 * (data.loaded / data.total);\r\n }\r\n if (data.body) {\r\n setTimeout(() => {\r\n this.downloadStatus = this.riskService.downLoadFile(data.body, 'application/xlsx', fileName);\r\n }, 1500);\r\n }\r\n\r\n }, (error) => {\r\n console.error(error);\r\n this.downloadStatus = 'DOWNLOADED';\r\n }\r\n );\r\n }\r\n\r\n submitResponsibilityBulkUpload() {\r\n this.loader = true;\r\n const payload: any = [];\r\n const frequencyTypeArray = ['1', '2', '3', '4', '7', '0'];\r\n const defaultWindow = [0, 2, 7, 30, 7, 15];\r\n const defaultFailedDay = [1, 2, 5, 5, 5, 5];\r\n\r\n this.responsibilityBulkUpload.reports.forEach((report: any) => {\r\n if (report.isValid) {\r\n const rcDetails: any = this.returnIds(report.responsibilityCenter, 'rc_id');\r\n const reviewerDetails: any = this.returnIds(report.reviewer, 'reviewer');\r\n const assignorDetails: any = (report.assignor) ? this.returnIds(report.assignor, 'assignor') : '';\r\n const ccDetails: any = this.returnIds(report.alwaysNotify, 'cc');\r\n const ccFailureDetails: any = this.returnIds(report.notifyOnFailure, 'ccFailure');\r\n const currentDate = moment().format('YYYY-MM-DD');\r\n\r\n const categoryName = (report.responsibilityCategory.includes('[WITHIN]')) ? report.responsibilityCategory.split(' [')[0] : report.responsibilityCategory\r\n const frequencyValue = this.frequencyService.shortHand_freqCal(report.frequency, report.day, report.month);\r\n const dateAndMonth = report.month.split(\"'\");\r\n const startDate = moment(report.day + '-' + dateAndMonth[0] + '-' + 20 + dateAndMonth[1] + ' 00:00:00', 'DD-MMMM-YYYY HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\r\n\r\n let completeDays;\r\n let notCompleteDays\r\n const frequencyType = frequencyValue.split('~')[0];\r\n if (report.responsibilityWindow !== '') {\r\n completeDays = report.responsibilityWindow;\r\n } else if (frequencyTypeArray.includes(frequencyType)) {\r\n const indexOfArray = frequencyTypeArray.indexOf(frequencyType);\r\n completeDays = defaultWindow[indexOfArray];\r\n }\r\n if (report.failedAfter !== '') {\r\n notCompleteDays = report.failedAfter;\r\n } else if (frequencyTypeArray.includes(frequencyType)) {\r\n const indexOfArray = frequencyTypeArray.indexOf(frequencyType);\r\n notCompleteDays = defaultFailedDay[indexOfArray];\r\n }\r\n const obj = {\r\n userId: this.templateInfo.memberId,\r\n organisation_id: this.organizationId,\r\n member_id: (assignorDetails) ? assignorDetails.memberId : this.memberId,\r\n member_name: (assignorDetails) ? ((report.assignor) ? report.assignor.split(' (')[0] : '') : ((this.defaultOwner) ? this.defaultOwner.split(' (')[0] : ''),\r\n member_email: (assignorDetails) ? ((report.assignor) ? report.assignor.split(' (')[1].replace(')', '') : '') : ((this.defaultOwner) ? this.defaultOwner.split(' (')[1].replace(')', '') : ''),\r\n created_by: (assignorDetails) ? this.memberId : 0,\r\n report_name: report.responsibilityName ?? '',\r\n entrusted_to: report.assignee.split(' (')[0] ?? '',\r\n entrusted_to_id: this.returnIds(report.assignee, 'entrusted_to'),\r\n email_address: report.assignee.split(' (')[1].replace(')', '') ?? '',\r\n category_name: categoryName,\r\n category_name_with_tree: '',\r\n category_id: this.returnIds(report.responsibilityCategory, 'category_id'),\r\n rc_name: rcDetails ? rcDetails.name : '',\r\n rc_id: rcDetails ? rcDetails.rcId : 0,\r\n entity_tree: (rcDetails && rcDetails.rcId ) ? [{\r\n parent_rc_ids: rcDetails ? rcDetails.parentIds : [],\r\n rc_id: rcDetails ? rcDetails.rcId : 0\r\n }]:[],\r\n frequency_handler: frequencyValue,\r\n compliance_type: frequencyValue.split('~')[0],\r\n frequency_description: report.frequency,\r\n start_date: (report.day) ? startDate : currentDate + ' 00:00:00',\r\n risk_class: report.reportClass ?? '',\r\n risk_classId: (report.reportClass) ? this.returnIds(report.reportClass, 'risk_class') : ((this.riskClassEnabled) ? 1 : 2),\r\n doc_utc: 0,\r\n comment: report.notes ?? '',\r\n cc_mail: ccDetails ? ccDetails.email : '',\r\n cc_mail_id: ccDetails ? ccDetails.employeeId : '',\r\n cc_failed_mail: ccFailureDetails ? ccFailureDetails.email : '',\r\n cc_failure_id: ccFailureDetails ? ccFailureDetails.employeeId : 0,\r\n send_reminder: \"\",\r\n responsibilityWindow: (frequencyType === '1') ? 0 : completeDays,\r\n failed_after: notCompleteDays,\r\n excel_sheet_name: \"\",\r\n report_upload_flag: (report.documentEvidenceRequired === 'Yes') ? 1 : 0,\r\n report_id: 0,\r\n is_assigned_flag: 0,\r\n private_library_id: 0,\r\n keycompliance: (report.keyResponsibility === 'Yes') ? 'Yes' : 'No',\r\n key_compliance: (report.keyResponsibility === 'Yes') ? 1 : 0,\r\n reviewerId: reviewerDetails ? reviewerDetails.employeeId : 0,\r\n reviewer_arr: ( reviewerDetails && reviewerDetails.employeeId )? {\r\n level1: {\r\n reviewers: [{\r\n member_id: reviewerDetails ? reviewerDetails.employeeId : 0,\r\n reviewer_accept: 0\r\n }],\r\n type: \"SEQUENTIAL\"\r\n }\r\n }:{}\r\n ,\r\n reviewerWindow: report.reviewToBeCompletedWithin === '' ? 2 : report.reviewToBeCompletedWithin,\r\n reviewerFailure: report.reviewWillBeFailedAfter === '' ? 2 : report.reviewWillBeFailedAfter,\r\n reviewer_email: reviewerDetails ? reviewerDetails.email : '',\r\n formatForResponsibility: report.formatForResponsibility ? report.formatForResponsibility : '',\r\n documentaryEvidence: report.notes ?? '',\r\n isdocumentaryEvidence: (report.documentEvidenceRequired === 'Yes') ? 1 : 0,\r\n objective: report.objective ?? '',\r\n excel_sheet_info: this.fileResponse,\r\n showList: false,\r\n custom_tags: '[]',\r\n\r\n }\r\n payload.push(obj);\r\n\r\n }\r\n });\r\n\r\n this.responsibilityService.addBulkResponsibility(payload).subscribe((res: any) => {\r\n this.loader = false;\r\n this.showExcel = false;\r\n this.showSmiley = true;\r\n this.responsibilityData = res;\r\n\r\n },\r\n err => {\r\n console.log(err);\r\n this.loader = false;\r\n this.showExcel = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n }\r\n );\r\n }\r\n\r\n\r\n returnIds(item: any, key: string) {\r\n switch (key) {\r\n case 'rc_id':\r\n let rcObj = { name: '', rcId: 0, parentIds: [] };\r\n this.templateInfo.rcList.forEach((rc_element: any) => {\r\n if (rc_element.name == item) {\r\n let name;\r\n if (rc_element.name.includes('[WITHIN]')) {\r\n name = rc_element.name.split(' [WITHIN] ')[0]\r\n } else {\r\n name = rc_element.name;\r\n }\r\n rcObj = { name, rcId: rc_element.rc_id, parentIds: rc_element.parentIds };\r\n }\r\n });\r\n return rcObj\r\n break;\r\n case 'reviewer':\r\n let reviewerObj = { name: '', employeeId: 0, email: '' };\r\n this.templateInfo.assigneesList.forEach((reviewerElement: any) => {\r\n if (reviewerElement.nameAndEmail == item) {\r\n reviewerObj = {\r\n name: reviewerElement.name,\r\n employeeId: reviewerElement.my_member_id,\r\n email: reviewerElement.email\r\n }\r\n }\r\n });\r\n return reviewerObj;\r\n\r\n break;\r\n case 'assignor':\r\n let assignorObj = { name: '', memberId: 0, email: '' };\r\n this.templateInfo.assignorsList.forEach((assignorElement: any) => {\r\n if (assignorElement.nameAndEmail == item) {\r\n assignorObj = {\r\n name: assignorElement.name,\r\n email: assignorElement.email,\r\n memberId: assignorElement.member_id\r\n }\r\n }\r\n });\r\n return assignorObj;\r\n\r\n break;\r\n case 'cc':\r\n let ccObj = { name: '', employeeId: 0, email: '' }\r\n this.templateInfo.assigneesList.forEach((ccElement: any) => {\r\n if (ccElement.nameAndEmail == item) {\r\n ccObj = {\r\n name: ccElement.name,\r\n employeeId: ccElement.employee_id,\r\n email: ccElement.email\r\n }\r\n }\r\n });\r\n return ccObj;\r\n break;\r\n case 'ccFailure':\r\n let ccfObj = { name: '', employeeId: 0, email: '' };\r\n this.templateInfo.assigneesList.forEach((ccfElement: any) => {\r\n if (ccfElement.nameAndEmail == item) {\r\n ccfObj = {\r\n name: ccfElement.name,\r\n employeeId: ccfElement.employee_id,\r\n email: ccfElement.email\r\n }\r\n }\r\n });\r\n return ccfObj;\r\n break;\r\n\r\n case 'entrusted_to':\r\n let empId = 0\r\n this.templateInfo.assigneesList.forEach((enElement: any) => {\r\n if (enElement.nameAndEmail == item) {\r\n\r\n empId = enElement.employee_id;\r\n }\r\n });\r\n return empId\r\n break;\r\n case 'category_id':\r\n let catId = 0\r\n this.templateInfo.categoryList.forEach((category: any) => {\r\n if (category.name == item) {\r\n catId = category.category_id;\r\n }\r\n });\r\n return catId;\r\n break;\r\n\r\n case 'risk_class':\r\n\r\n if (item == 'Low') {\r\n return 1\r\n } else if (item == 'Low-Medium') {\r\n return 2\r\n } else if (item == 'Medium-High') {\r\n return 3\r\n } else if (item == 'High') {\r\n return 4\r\n } else {\r\n return 0\r\n }\r\n break;\r\n }\r\n\r\n }\r\n\r\n reset() {\r\n this.responsibilityBulkUpload = {\r\n header: [],\r\n reports: [],\r\n }\r\n\r\n this.templateInfo = {\r\n categoryList: [],\r\n rcList: [],\r\n assignorsList: [],\r\n assigneesList: [],\r\n memberId: ''\r\n\r\n }\r\n\r\n this.isFileEmpty = false;\r\n this.isWrongFile = false;\r\n this.isWrongFormat = false;\r\n this.fileName = undefined;\r\n this.data = undefined;\r\n this.showExcel = false;\r\n this.showSmiley = false;\r\n\r\n }\r\n action(event: string) {\r\n switch (event) {\r\n case 'addMore':\r\n this.reset();\r\n break;\r\n case 'view':\r\n this.viewResponsibilities();\r\n break;\r\n }\r\n }\r\n\r\n closeSmiley(event: any) {\r\n this.showSmiley = false;\r\n this.closeWorkflow.emit({ evt: this.responsibilityData, confirm: false });\r\n }\r\n\r\n viewResponsibilities(): void {\r\n let url: string;\r\n let urlSubstring = '';\r\n this.disconnectRefresh.emit(false);\r\n if (this.isNotificationPending) {\r\n urlSubstring = 'compliance/manage-responsibilities/responsibilities-queue';\r\n } else {\r\n urlSubstring = 'compliance/manage-responsibilities';\r\n }\r\n if (window.location.host.startsWith('localhost')) {\r\n url = 'http://' + window.location.host + '/compliance/#/' + urlSubstring;\r\n } else {\r\n url = 'https://' + window.location.host + '/compliance/#/' + urlSubstring;\r\n }\r\n window.location.href = url;\r\n }\r\n\r\n // Upload File to the server\r\n fileUpload() {\r\n this.loader = true;\r\n const formData = new FormData();\r\n const file = this.uploadedFiles[0][0];\r\n formData.append('sourcefile', file);\r\n formData.append('destination', 'bulkupload/entrust/' + this.userInfo.email);\r\n this.responsibilityService.fileUpload(formData).subscribe((res: any) => {\r\n if (res?.filename) {\r\n this.fileResponse.push(res);\r\n }\r\n this.loader = false;\r\n\r\n }, err => {\r\n console.error(err);\r\n this.loader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n\r\n });\r\n }\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-bulk-responsibility-view',\r\n templateUrl: './bulk-responsibility-view.component.html',\r\n styleUrls: ['./bulk-responsibility-view.component.less'],\r\n})\r\nexport class BulkResponsibilityViewComponent implements OnInit {\r\n\r\n @Input() responsibilityBulkUpload!: any;\r\n @Input() fileName!: any;\r\n @Input() defaultOwner!: any;\r\n @Input() loader = false;\r\n\r\n @Output() submitResponsibilityBulkUpload = new EventEmitter();\r\n @Output() cancel = new EventEmitter();\r\n\r\n finalResponsibilities = 0;\r\n\r\n ngOnChanges() {\r\n if (this.responsibilityBulkUpload) {\r\n this.finalResponsibilities = 0;\r\n this.responsibilityBulkUpload.reports.forEach((risk: any) => {\r\n if (risk.isValid) {\r\n this.finalResponsibilities += 1;\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n submit() {\r\n this.submitResponsibilityBulkUpload.emit();\r\n }\r\n\r\n close() {\r\n this.cancel.emit();\r\n }\r\n}\r\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-no-data',\r\n templateUrl: './no-data.component.html',\r\n styleUrls: ['./no-data.component.less'],\r\n})\r\nexport class NoDataComponent implements OnInit {\r\n @Input() action!: object;\r\n @Input() noDataImage!: string;\r\n @Input() noDataText!: string;\r\n @Input() noDataButton!: string | boolean;\r\n @Input() noDataSecButton!: string | boolean;\r\n @Input() altText!: string;\r\n @Output() buttonAction = new EventEmitter<object>();\r\n @Input() smallButton!: boolean;\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n actionEmitter(button: object) {\r\n this.buttonAction.emit(button);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NoDataComponent } from './no-data.component';\r\n\r\n@NgModule({\r\n declarations: [NoDataComponent],\r\n imports: [CommonModule],\r\n exports: [NoDataComponent],\r\n})\r\nexport class NoDataModule {}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.less'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader-inline',\r\n templateUrl: './loader-inline.component.html',\r\n styleUrls: ['./loader-inline.component.less'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n\r\n})\r\nexport class LoaderInlineComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoaderComponent } from './loader/loader.component';\r\nimport { LoaderInlineComponent } from './loader-inline/loader-inline.component';\r\n\r\n@NgModule({\r\n declarations: [LoaderComponent, LoaderInlineComponent],\r\n imports: [CommonModule],\r\n exports: [LoaderComponent, LoaderInlineComponent],\r\n})\r\nexport class VLoaderModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PopoverService {\r\n positionX!: number;\r\n positionY!: number;\r\n popoverHeight: any;\r\n popoverWidth: any;\r\n elementPosition: any;\r\n elementDirection: any;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@Component({\r\n selector: 'app-popover',\r\n templateUrl: './popover.component.html',\r\n styleUrls: ['./popover.component.less'],\r\n})\r\nexport class PopoverComponent implements OnInit {\r\n @Input() dontCloseonClick!: boolean;\r\n popoverContainer = false;\r\n @ViewChild('popoverRatio') popoverRatio!: ElementRef;\r\n @ViewChild('popoverContent') popoverContent!: ElementRef;\r\n constructor(public popoverService: PopoverService) { }\r\n showPopover = false;\r\n leftValue: any;\r\n topValue: any;\r\n popoverHeight: any;\r\n popoverWidth: any;\r\n positionX!: number;\r\n positionY!: number;\r\n ngOnInit(): void { }\r\n popover() {\r\n this.popoverContainer = false;\r\n this.popoverContainer = true;\r\n setTimeout(() => {\r\n this.getPosition();\r\n this.showPopover = true;\r\n }, 10);\r\n return false;\r\n }\r\n popoverEvent() {\r\n this.popoverContainer = false;\r\n this.popoverContainer = true;\r\n setTimeout(() => {\r\n this.getPosition();\r\n // this.positionX = this.popoverService.positionX;\r\n // this.positionY = this.popoverService.positionY;\r\n this.showPopover = true;\r\n }, 10);\r\n return false;\r\n }\r\n closePopover(top?: string) {\r\n if (!this.dontCloseonClick || top === 'top') {\r\n this.popoverContainer = false;\r\n this.showPopover = false;\r\n }\r\n }\r\n clickedPopover() {\r\n this.getPosition();\r\n }\r\n getPosition() {\r\n const elementPositionn = this.popoverService.elementPosition;\r\n this.popoverHeight = this.popoverRatio.nativeElement.offsetHeight;\r\n this.popoverWidth = this.popoverRatio.nativeElement.offsetWidth;\r\n if (this.popoverService.elementDirection === 'left') {\r\n this.leftValue = elementPositionn.left;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'right') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverWidth;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'top') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'bottom') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'self-position') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\r\n this.topValue = elementPositionn.top - 15;\r\n }\r\n if (this.popoverService.elementDirection === 'top-center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight) {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n } else {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n this.positionX = this.leftValue;\r\n this.positionY = this.topValue;\r\n // console.log('test', this.positionY, this.positionX );\r\n }\r\n @HostListener('window:resize', ['$event'])\r\n sizeChange(event: any) {\r\n this.popoverContainer = false;\r\n this.showPopover = false;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@Directive({\r\n selector: '[appPopover]',\r\n // providers: [PopoverService],\r\n})\r\nexport class PopoverDirective {\r\n dynamicComponent: any;\r\n @Input() refrence: any;\r\n @Input() placement!: string;\r\n leftValue: any;\r\n topValue: any;\r\n constructor(private elRef: ElementRef, private popoverService: PopoverService) {}\r\n @HostListener('click') click() {\r\n this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\r\n this.popoverService.elementDirection = this.placement;\r\n // this.getPosition();\r\n }\r\n @HostListener('mouseenter') onMouseEnter() {\r\n this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\r\n this.popoverService.elementDirection = this.placement;\r\n }\r\n @HostListener('mouseover') onMouseOver() {\r\n this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\r\n this.popoverService.elementDirection = this.placement;\r\n }\r\n\r\n getPosition() {\r\n setTimeout(() => {\r\n // this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\r\n const elementPositionn = this.elRef.nativeElement.getBoundingClientRect();\r\n if (this.placement === 'left') {\r\n this.leftValue = elementPositionn.left;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.placement === 'right') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverService.popoverWidth;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.placement === 'top') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n }\r\n }\r\n if (this.placement === 'bottom') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.placement === 'self-position') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\r\n this.topValue = elementPositionn.top - 15;\r\n }\r\n if (this.placement === 'top-center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n }\r\n this.popoverService.positionX = this.leftValue;\r\n this.popoverService.positionY = this.topValue;\r\n }, 10);\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@Directive({\r\n selector: '[appPopoverEvent]',\r\n})\r\nexport class PopoverEventDirective {\r\n constructor(private popoverService: PopoverService) {}\r\n @HostListener('contextmenu', ['$event']) contextmenu(event: any) {\r\n this.getEventPosition(event);\r\n }\r\n getEventPosition(event: any) {\r\n // const container = event.currentTarget;\r\n this.popoverService.positionX = event.clientX;\r\n this.popoverService.positionY = event.clientY;\r\n }\r\n}\r\n\r\n// appPopoverEvent\r\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@Directive({\r\n selector: '[appPopoverLongpress]',\r\n})\r\nexport class PopoverLongpressDirective {\r\n getTime: any;\r\n currentTime: any;\r\n\r\n timer: any;\r\n @Output() longPressPopover = new EventEmitter<any>();\r\n constructor(private popoverService: PopoverService) {}\r\n @HostListener('mousedown', ['$event']) mousedown(event: any) {\r\n alert('Tong');\r\n this.currentTime = Date.now();\r\n // console.log('Current Time', this.currentTime);\r\n this.timer = setInterval(() => {\r\n if (Date.now() - this.currentTime > 1000) {\r\n this.longPressPopover.emit();\r\n clearInterval(this.timer);\r\n this.getEventPosition(event);\r\n alert('Ting tong');\r\n }\r\n }, 10);\r\n }\r\n @HostListener('mouseup') mouseup() {\r\n clearInterval(this.timer);\r\n this.currentTime = undefined;\r\n // console.log('Hold Time', Date.now() - this.currentTime);\r\n }\r\n getEventPosition(event: any) {\r\n this.popoverService.positionX = event.clientX;\r\n this.popoverService.positionY = event.clientY;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PopoverComponent } from './popover.component';\r\nimport { PopoverDirective } from './popover.directive';\r\nimport { PopoverEventDirective } from './popover-event.directive';\r\nimport { PopoverLongpressDirective } from './popover-longpress.directive';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@NgModule({\r\n declarations: [PopoverComponent, PopoverDirective, PopoverEventDirective, PopoverLongpressDirective],\r\n imports: [CommonModule],\r\n exports: [PopoverComponent, PopoverDirective, PopoverEventDirective, PopoverLongpressDirective],\r\n providers: [PopoverService],\r\n})\r\nexport class PopoverModule {}\r\n","import { SnackBarService } from './../../../ui-kit/snack-bar/snack-bar.service';\r\nimport cloneDeep from 'lodash-es/cloneDeep';\r\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { CheckpointsPolicyQuestionsComponent } from '../checkpoints-policy-questions/checkpoints-policy-questions.component';\r\n\r\n@Component({\r\n selector: 'app-checkpoints-policy-container',\r\n templateUrl: './checkpoints-policy-container.component.html',\r\n styleUrls: ['./checkpoints-policy-container.component.less']\r\n})\r\nexport class CheckpointsPolicyContainerComponent implements OnInit {\r\n animation = true;\r\n constructor(private snackbarService: SnackBarService) { }\r\n @Output() closeCheckPoint = new EventEmitter();\r\n @Output() saveCheckPoint = new EventEmitter();\r\n @ViewChild('checkpoint',{ static: false }) CheckpointsPolicyQuestionsComponent!: CheckpointsPolicyQuestionsComponent;\r\n @Input() requiredPoint = 0;\r\n @Input() checkpointData: any = [];\r\n\r\n ngOnInit(): void {\r\n this.checkpointData = cloneDeep(this.checkpointData);\r\n if(this.checkpointData.length === 0 ){\r\n this.checkpointData = [{\r\n \"ranswer\": \"\",\r\n \"question\": \"\",\r\n \"answers\": [\r\n \"\",\r\n \"\"\r\n ]\r\n }]\r\n }\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 500);\r\n if(this.requiredPoint === 0){\r\n this.requiredPoint = 1;\r\n }\r\n }\r\n\r\n\r\n next(){\r\n this.CheckpointsPolicyQuestionsComponent.saveCheckPoint()\r\n }\r\n saveQuestions(event:any){\r\n this.checkpointData = event;\r\n this.checkpointData.forEach((element:any) => {\r\n if(element?._id){\r\n delete element._id;\r\n }\r\n\r\n });\r\n console.log(this.requiredPoint, this.checkpointData);\r\n if(this.requiredPoint > this.checkpointData.length){\r\n this.snackbarService.show(`The points required to attest this policy cannot exceed ${this.checkpointData.length}.`)\r\n }else{\r\n if(this.requiredPoint < 1){\r\n this.snackbarService.show(`The points required to attest this policy cannot be 0`)\r\n }else{\r\n this.saveCheckPoint.emit({requiredPoint: this.requiredPoint, checkpointDetails : this.checkpointData});\r\n }\r\n\r\n }\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-checkpoints-policy-list',\r\n templateUrl: './checkpoints-policy-list.component.html',\r\n styleUrls: ['./checkpoints-policy-list.component.less']\r\n})\r\nexport class CheckpointsPolicyListComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-checkpoints-policy-questions',\r\n templateUrl: './checkpoints-policy-questions.component.html',\r\n styleUrls: ['./checkpoints-policy-questions.component.less']\r\n})\r\nexport class CheckpointsPolicyQuestionsComponent implements OnInit {\r\n checkPointQuestions :any = [];\r\n @Output() changeMax = new EventEmitter();\r\n @Input() requiredPoint = 0;\r\n @Output() requiredPointChange = new EventEmitter();\r\n @Input() set checkpointDetails(value:any){\r\n this.checkPointQuestions = value;\r\n if(this.checkPointQuestions.length){\r\n this.checkPointQuestions.forEach((element:any,index:number) => {\r\n const answerIndex = element?.answers.indexOf(element?.ranswer);\r\n if(answerIndex > -1 && element.ranswer.trim().length > 0){\r\n this.rightAnswerIndex[index]=answerIndex;\r\n }\r\n });\r\n }\r\n }\r\n @Output() saveValidQuestions = new EventEmitter();\r\n activeQuestionIndex = 0 ;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n errorTracker:any = [];\r\n rightAnswerIndex :any = [];\r\n\r\n/**\r\n * Changes active question index\r\n * @param index\r\n */\r\nchangeActiveQuestion(index:number){\r\n this.activeQuestionIndex = index;\r\n }\r\n\r\ncloneQuestion(index: any, isBlank ?:boolean){\r\n if(isBlank === false){\r\n const COPY_ARR = JSON.parse(JSON.stringify(this.checkPointQuestions[index]));\r\n this.checkPointQuestions.splice(index + 1, 0, COPY_ARR);\r\n }\r\n if(isBlank === true){\r\n const QUESTION = {\r\n ranswer : '',\r\n question : '',\r\n answers : [\r\n '',''\r\n\r\n ]\r\n }\r\n this.checkPointQuestions.splice(index + 1, 0, QUESTION);\r\n\r\n }\r\n this.changeActiveQuestion(index+1);\r\n this.requiredPointChange.emit(this.requiredPoint +1)\r\n //this.changeMax.emit(this.checkPointQuestions.length)\r\n}\r\n\r\naddOption(questionIndex:number, optionIndex :number){\r\n this.checkPointQuestions[questionIndex].answers.splice(optionIndex + 1, 0, '');\r\n this.focusAnOption(questionIndex, optionIndex + 1)\r\n}\r\ndeleteOption(questionIndex:number, optionIndex :number){\r\n this.checkPointQuestions[questionIndex].answers.splice(optionIndex, 1);\r\n this.focusAnOption(questionIndex, (optionIndex - 1))\r\n}\r\n\r\nfocusAnOption(questionIndex:number, optionIndex :number){\r\n console.log(\"focus\",questionIndex,optionIndex)\r\n setTimeout(() => {\r\n const EL: any = document.getElementById('option' + '-' + questionIndex + '' + optionIndex);\r\n if (EL) { EL.focus(); }\r\n }, 10);\r\n}\r\n\r\ndeleteOnBackspace(questionIndex:number, optionIndex :number){\r\n if(this.checkPointQuestions[questionIndex].answers?.length > 2 && this.checkPointQuestions[questionIndex].answers[optionIndex].trim().length === 0 ){\r\n this.deleteOption(questionIndex,optionIndex);\r\n }\r\n}\r\ndeleteQuestion(questionIndex:number){\r\n this.checkPointQuestions.splice(questionIndex, 1);\r\n if(this.checkPointQuestions.length === 0 ){\r\n const QUESTION = {\r\n ranswer : '',\r\n question : '',\r\n answers : [\r\n '',''\r\n ]\r\n }\r\n this.checkPointQuestions.push(QUESTION);\r\n this.requiredPoint = 1;\r\n }\r\n //this.changeMax.emit(this.checkPointQuestions.length)\r\n this.requiredPointChange.emit(this.requiredPoint - 1)\r\n}\r\nselectRightAnswer(evt:any, index: number,answerIndex:string){\r\n if(evt){\r\n this.checkPointQuestions[index].ranswer = this.checkPointQuestions[index][answerIndex];\r\n this.rightAnswerIndex[index] = answerIndex;\r\n this.reValidate(index);\r\n }\r\n}\r\n\r\nreValidate(questionIndex:number){\r\n if(this.errorTracker[questionIndex]){\r\n this.validateForm();\r\n }\r\n}\r\n\r\n\r\n\r\nasync saveCheckPoint(){\r\n const validStatus = await this.validateForm();\r\n if(validStatus){\r\n this.saveValidQuestions.emit(this.checkPointQuestions);\r\n }\r\n}\r\n\r\nmapRightAnswers(){\r\n this.checkPointQuestions.forEach((element:any,index:number) => {\r\n element.ranswer = element.answers[this.rightAnswerIndex[index]] ??'';\r\n });\r\n}\r\nasync validateForm(){\r\n await this.mapRightAnswers()\r\n this.errorTracker = [];\r\n await this.checkPointQuestions.forEach((element:any,index:number) => {\r\n if(element.question.trim().length === 0){\r\n this.errorTracker[index] = {type :'QUESTION',message: 'Please add a question.'}\r\n }else{\r\n if(element.answers.length >= 2 ){\r\n if(this.isOptionValid(element.answers) === false){\r\n this.errorTracker[index] = {type :'OPTION',message: 'You need to complete all the answer options.'};\r\n\r\n }else{\r\n if(this.checkDuplicate(element?.answers) === true){\r\n this.errorTracker[index] = {type :'OPTION',message: 'Two options cannot have same title.'}\r\n }\r\n else{\r\n if(element?.ranswer?.length === 0){\r\n this.errorTracker[index] = {type :'OPTION',message: 'Select the correct answer choice for this question.'}\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n console.log(this.checkPointQuestions);\r\n return this.errorTracker.length > 0 ? false : true\r\n}\r\nisOptionValid(options:any){\r\n if(options.length === options.filter((ele:any) => ele.trim().length > 0).length){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n}\r\ncheckDuplicate(arr :any ) {\r\n let result = false;\r\n // create a Set with array elements\r\n const s = new Set(arr);\r\n // compare the size of array and Set\r\n if(arr.length !== s.size){\r\n result = true;\r\n }\r\n return result;\r\n}\r\n\r\ntrackByFn(index: any, item: any) {\r\n return index;\r\n}\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { EditorConfig } from 'vcomply-editor';\r\n\r\n@Component({\r\n selector: 'app-workflow-survey-form',\r\n templateUrl: './workflow-survey-form.component.html',\r\n styleUrls: ['./workflow-survey-form.component.less', '../forms.less']\r\n})\r\nexport class WorkflowSurveyFormComponent implements OnInit {\r\n description: EditorConfig = {\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Description',\r\n };\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { map, retry } from 'rxjs/operators';\r\nimport { Configurations } from '../configurations';\r\nimport { AuthService } from './auth.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogIssueService {\r\n env !: any;\r\n constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\r\n if (config) {\r\n this.env = config.envConfig;\r\n\r\n }\r\n }\r\n\r\n\r\n getIssueTypes(){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env.organizationGet + 'issueTypeList', {headers})\r\n .pipe(retry(2));\r\n }\r\n\r\n getOrgPeople(){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env.organizationGet + 'people', {headers})\r\n .pipe(retry(2));\r\n }\r\n\r\n getIssueCategories(){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env.assurance + 'Issue/Category/CatList?categories=true', {headers})\r\n .pipe(retry(2));\r\n //https://devapi.v-comply.com/Assurance/Issue/Category/CatList/1?isBusinessCycle=true&categories=true\r\n }\r\n getResponsibilityCenterList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.complianceGet + 'responsibilityCenterTree', { headers }).pipe(retry(2));\r\n }\r\n createIssue(payload: any){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.assurance+'Issue', payload, {headers}).pipe(\r\n retry(2)\r\n );\r\n }\r\n updateIssue(payload: any,issueId: string){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.put(this.env.assurance+'Issue/'+issueId, payload, {headers}).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n getControlRisk(auditPlanId:string, type:string){\r\n// Get Linked Audit Plan Responsibilities by Audit_Plan_Id\r\n// URL: https://devapi.v-comply.com/responsibilities/?mode=manage_audit_plan_responsibilities&id=610b329144c81a0009cbb598 Method: GET\r\n\r\n\r\n\r\n// Get Linked Audit Plan Risk by Audit_Plan_Id\r\n// URL: https://devapi.v-comply.com/risk/?mode=risk/manage_audit_plan_risk&id=610b329144c81a0009cbb598\r\n// Method: GET\r\nconst headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n if(type === 'RESPONSIBILITY'){\r\n return this.http.get<any[]>(this.env.responsibilitiesGet+'manage_audit_plan_responsibilities&id='+auditPlanId,{headers}).pipe(\r\n map((items:any) =>{\r\n return items.map((item:any)=>({\r\n itemId: item?.report_id,\r\n itemControlId :item?.control_id,\r\n itemControlName : item?.report_name,\r\n itemType : 'RESPONSIBILITY'\r\n })\r\n )\r\n }\r\n )\r\n )\r\n }else if(type === 'RISK'){\r\n return this.http.get<any[]>(this.env.risk+'risk/manage_audit_plan_risk&id='+auditPlanId,{headers}).pipe(\r\n map((items:any) =>{\r\n return items.map((item:any)=>({\r\n itemId: item?.risk_id,\r\n itemControlId :item?.risk_control_id,\r\n itemControlName : item?.title,\r\n itemType : 'RISK'\r\n })\r\n )\r\n }\r\n )\r\n )\r\n }else{\r\n return null;\r\n }\r\n\r\n }\r\n\r\n\r\n validate(issueData: any, openedFrom: any,isRCMandatory:any){\r\n const errors = [];\r\n if (!issueData.issueName || issueData.issueName.trim().length === 0 ){\r\n errors.push('issueName');\r\n }\r\n if (issueData.issueRC.length === 0 && isRCMandatory){\r\n errors.push('issueRC');\r\n }\r\n if (issueData.entrustTo.length === 0 ){\r\n errors.push('entrustTo');\r\n }\r\n if (!issueData.issueDueDate){\r\n errors.push('issueDueDate');\r\n }\r\n if (issueData.issueRecommendation.replace(/ /g, '').replace(/\\<br\\s*[\\/]?>/gi, '').trim().length === 0 ){\r\n errors.push('issueRecommendation');\r\n }\r\n return errors;\r\n }\r\n\r\n generatePayload(issueData: any, optionFieldsStatus: any){\r\n const selectedDate = new Date(issueData.issueDueDate);\r\n const dateSplit = [selectedDate.getFullYear(), selectedDate.getMonth() + 1, selectedDate.getDate()];\r\n const time: any = this.convertFrom12To24Format(issueData.issueDueTime).split(':');\r\n const date = new Date(dateSplit[0], dateSplit[1] - 1,dateSplit[2], time[0], time[1], 0);\r\n\r\n const createIssue: any = {\r\n issue_description_attachments: issueData?.issueDescriptionAttachements,\r\n associated_risk: optionFieldsStatus.ASSOCIATED_RISKS ? issueData.issueAssociatedRisk:'',\r\n issue_name: issueData.issueName,\r\n report_id: '0',\r\n issue_description: issueData.issueDescription,\r\n issue_type: optionFieldsStatus.ISSUE_TYPE ? this.arrayToId(issueData.issueType, 'issue_id').toString() : '',\r\n exception_type: optionFieldsStatus.EXCEPTION_TYPE ? issueData.exceptionType.toString() : '',\r\n risk_class: issueData.issueRiskRating.toString() ?? '',\r\n priority: optionFieldsStatus.PRIORITY ? issueData.issuePriority.toString() : '',\r\n issue_category_id: this.arrayToId(issueData.issueCategory, 'category_id') ?? 0,\r\n recommendation: issueData.issueRecommendation,\r\n entrusted_to: this.arrayToId(issueData.entrustTo, 'employee_id') ?? 0,\r\n issue_date: dateSplit[0] + '-' + dateSplit[1] + '-' + dateSplit[2] + ' ' + this.convertFrom12To24Format(issueData.issueDueTime),\r\n failed_time: this.convertFrom12To24Format(issueData.issueDueTime),\r\n issue_due_date: dateSplit[0] + '-' + dateSplit[1] + '-' + dateSplit[2] + ' ' + this.convertFrom12To24Format(issueData.issueDueTime),\r\n grc_area: '',\r\n cc_employee_email: optionFieldsStatus.OVERSIGHT ? this.arrayToIDsDtring(issueData.issueCCUsers, 'employee_email') : '',\r\n failure_cc_employee_email: optionFieldsStatus.OVERSIGHT ? this.arrayToIDsDtring(issueData.failureCCUsers, 'employee_email') : '',\r\n custom_tag_value: '',\r\n issue_resolve_timestamp: (date.getTime() / 1000).toString(),\r\n evidence_upload_flag: optionFieldsStatus.EVIDENCE ? (issueData.evidenceRequired ? '1' : '0' ) : '0',\r\n };\r\n if (issueData.issueRC.length){\r\n createIssue.rc_id = this.arrayToId(issueData.issueRC, 'rc_id') ?? 0;\r\n }\r\n\r\n return createIssue;\r\n }\r\n\r\n\r\n payloadBuilder(issueData:any,optionFieldsStatus:any){\r\n const selectedDate = new Date(issueData.issueDueDate);\r\n const dateSplit = [selectedDate.getFullYear(), selectedDate.getMonth() + 1, selectedDate.getDate()];\r\n const payload :any = {\r\n description : [],\r\n associated_risk : [],\r\n recommendation:[]\r\n };\r\n payload.title = issueData.issueName??'';\r\n payload.rc_id = issueData.issueRC.length ? this.arrayToId(issueData.issueRC, 'rc_id') : null;\r\n payload.category_id = issueData.issueCategory.length ? this.arrayToId(issueData.issueCategory, 'category_id') : null;\r\n payload.description[0] = {\r\n text:issueData.issueDescription ?? '',\r\n attachments:issueData?.issueDescriptionAttachements.length ? issueData?.issueDescriptionAttachements:[]\r\n }\r\n payload.exception_type = optionFieldsStatus.EXCEPTION_TYPE ? Number(issueData.exceptionType) : null;\r\n payload.risk_class = issueData.issueRiskRating ?? null;\r\n payload.priority = optionFieldsStatus.PRIORITY ? Number(issueData.issuePriority) : null;\r\n payload.assignee_id = issueData.entrustTo ? this.arrayToId(issueData.entrustTo, 'my_member_id') : null;\r\n payload.associated_risk[0]={\r\n text: optionFieldsStatus.ASSOCIATED_RISKS ? issueData.issueAssociatedRisk:'',\r\n attachments:[]\r\n }\r\n payload.recommendation[0] ={\r\n text: issueData.issueRecommendation??'',\r\n attachments:issueData?.recommendedActionsAttachments.length ? issueData?.recommendedActionsAttachments:[]\r\n }\r\n payload.evidence = {evidence_flag: optionFieldsStatus.EVIDENCE ? (issueData.evidenceRequired ? 1 : 0 ) : 0 }\r\n payload.frequency_details = {\r\n frequency_time: this.convertFrom12To24Format(issueData.issueDueTime)??'',\r\n frequency_date: dateSplit[0] + '-' + (dateSplit[1] < 10 ? '0' + dateSplit[1]: dateSplit[1]) + '-' + (dateSplit[2]<10? '0' + dateSplit[2]:dateSplit[2])\r\n }\r\n payload.overseer = {\r\n cc_email: optionFieldsStatus.OVERSIGHT ?(issueData.issueCCUsers.length? issueData.issueCCUsers.map((x:any) => {return { member_id: x.my_member_id ?? 0 , alert_enable: 1}}):[]) :[],\r\n failure_cc_email:optionFieldsStatus.OVERSIGHT ?(issueData.failureCCUsers.length? issueData.failureCCUsers.map((x:any) => {return { member_id: x.my_member_id?? 0 , alert_enable: 1}}):[]) :[]\r\n }\r\n payload.custom_tags = issueData?.issueCustomTag;\r\n payload.issueType = issueData?.issueType;\r\n return payload;\r\n }\r\n\r\n arrayToId(array: any, key: any){\r\n if (array.length === 0){return ''; }\r\n else {\r\n return array[0][key];\r\n }\r\n\r\n\r\n}\r\n convertFrom12To24Format = (time12: any) => {\r\n if(time12){\r\n const [sHours, minutes, period] = time12.match(/([0-9]{1,2}):([0-9]{2}) (am|pm|AM|PM)/).slice(1);\r\n const PM = period === 'PM';\r\n const hours = (+sHours % 12) + (PM ? 12 : 0);\r\n\r\n return `${('0' + hours).slice(-2)}:${minutes}:00`;\r\n }else{\r\n return '23:59:00';\r\n }\r\n\r\n}\r\n\r\n\r\nconvertFrom24To12Format (time:any) {\r\n const hhmm = time.split(':');\r\n time = `${hhmm[0]}:${hhmm[1]}`;\r\n // Check correct time format and split into components\r\n time = time.toString().match (/^([01]\\d|2[0-3])(:)([0-5]\\d)(:[0-5]\\d)?$/) || [time];\r\n\r\n if (time.length > 1) { // If time format correct\r\n time = time.slice (1); // Remove full string match value\r\n time[5] = +time[0] < 12 ? ' AM' : ' PM'; // Set AM/PM\r\n time[0] = +time[0] % 12 || 12; // Adjust hours\r\n }\r\n return time.join (''); // return adjusted time or original string\r\n}\r\n\r\narrayToIDsDtring(array: any, identifierKey: any){\r\n const list = array.map((el: any) => {\r\n return el[identifierKey]; }\r\n );\r\n return list.join();\r\n}\r\n\r\n\r\n\r\n /**\r\n * Uploads the given file to server\r\n * @param payload payload File data to be uploaded\r\n * @param path path Path of file to be uploaded\r\n * @returns response after uploading a file\r\n */\r\n uploadFiles(payload: any, path: any) {\r\n // {\r\n // reportProgress: true,\r\n // observe: 'events'}\r\n const ORG_PATH = `o/${path}`;\r\n return this.http.post(this.env.fileUploadEndPoint + ORG_PATH + '&ngsw-bypass=true', payload);\r\n }\r\n\r\n getIssueDetails(issueId: string){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get(this.env.assurance+'Issue/Edit/'+issueId,{headers}).pipe(retry(3));\r\n }\r\n}\r\n","\r\nimport { AuthService } from '../workflow-services/auth.service';\r\nimport { LogIssueService } from '../workflow-services/log-issue.service';\r\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild, OnChanges, AfterViewInit } from '@angular/core';\r\nimport { EditorConfig } from 'vcomply-editor';\r\nimport { DatePickerComponent } from 'ng2-date-picker';\r\nimport { cloneDeep } from 'lodash';\r\nimport { UiKitService } from '../workflow-services/ui-kit.service';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\nimport * as moment from 'moment';\r\nimport { IssueConfiguration } from '../interfaces/issue-data';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\n\r\n@Component({\r\n selector: 'app-log-an-issue',\r\n templateUrl: './log-an-issue.component.html',\r\n styleUrls: ['./log-an-issue.component.less', '../forms.less']\r\n})\r\nexport class LogAnIssueComponent implements OnInit, OnChanges, AfterViewInit {\r\n @Input() openedFrom !: any;\r\n @Input() issueId !: any;\r\n @Input() reponsibilityData = { // only used by log an issue\r\n responsibilityId: null,\r\n responsibilityName: '',\r\n rcId:null,\r\n responsibilityObjectId: ''\r\n };\r\n @Input() issueDetails ={\r\n auditPlanId : null,\r\n auditPlanName :'',\r\n rcId: null,\r\n auditObjId:null\r\n }\r\n @Input() mode = 'CREATE';\r\n @Input() config !: IssueConfiguration;\r\n @Input() responsibilitiesData: any;\r\n @Output() pickerChanged = new EventEmitter();\r\n @Output() populateOption = new EventEmitter();\r\n @Output() closeWorkflow = new EventEmitter();\r\n @Output() modeChange = new EventEmitter();\r\n @Output() disconnectRefresh = new EventEmitter();\r\n currentUser !: any;\r\n @ViewChild('datePicker') datePicker!: DatePickerComponent;\r\n scrollToBottom = false;\r\n datePickerOverlay = false;\r\n showDateError = false;\r\n selectedDate: any;\r\n showSmiley = false;\r\n loader = false;\r\n smileyMessage = `The issue has been reported.`;\r\n issueData !: any;\r\n isRiskControlLoading = false;\r\n actionButtons = [\r\n { buttonText: 'Report More Issues', class: 'white-btn', id: 'addMore' },\r\n { buttonText: 'View Issue', class: 'blue-btn', id: 'viewIssue' },\r\n ];\r\n createdData !: any;\r\n description: EditorConfig = {\r\n // mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Description',\r\n };\r\n\r\n dateConfig = {\r\n disableKeypress: true,\r\n format: 'DD MMM YYYY',\r\n unSelectOnClick: true,\r\n openOnClick:false,\r\n openOnFocus:false,\r\n min: new Date().getDate().toString(),\r\n };\r\n listData:any = {\r\n issueTypeList: [],\r\n userList: [],\r\n categoryList: [],\r\n rcList: [],\r\n linkageList:[]\r\n };\r\n logIssueForm: any = {\r\n issueName: '',\r\n evidenceRequired: 0,\r\n issueDescription: '',\r\n issueDescriptionAttachements: [],\r\n issueCategory: [],\r\n issueCustomTag: [],\r\n issueRC: [],\r\n issueType: 'issue',\r\n isAssignToMyself: false,\r\n entrustTo: [],\r\n issueDueDate: '',\r\n issueDueTime: '11:59 pm',\r\n exceptionType: 1,\r\n issueRiskRating: 1,\r\n issuePriority: 1,\r\n issueRecommendation: '',\r\n recommendedActionsAttachments:[],\r\n issueAssociatedRisk: '',\r\n associatedRisksAttachments:[],\r\n issueCCUsers: [],\r\n failureCCUsers: [],\r\n linkedControlRisk:[],\r\n linkageType : 'RISK',\r\n\r\n };\r\n AttachmentTrack: any = [[],[],[]];\r\n additionalOptionStatus: any = {\r\n EXCEPTION_TYPE: false,\r\n EVIDENCE: false,\r\n PRIORITY: false,\r\n ISSUE_TYPE: false,\r\n ASSOCIATED_RISKS: false,\r\n OVERSIGHT: false\r\n };\r\n riskClassification = [\r\n { name: 'LOW', value: 1, class: 'low' },\r\n { name: 'LOW-Medium', value: 2, class: 'low-med' },\r\n { name: 'Medium-High', value: 3, class: 'med-high' },\r\n { name: 'High', value: 4, class: 'high' }\r\n ];\r\n riskPrority = [\r\n { name: 'LOW', value: 1, class: 'low' },\r\n { name: 'MEDIUM', value: 2, class: 'low-med' },\r\n { name: 'HIGH', value: 3, class: 'high' },\r\n\r\n ];\r\n\r\n sideSelectorElements: any = ['ISSUE_CATEGORY', 'ISSUE_RC', 'ISSUE_WHO', 'ISSUE_TYPE', 'ISSUE_CC', 'ISSUE_FCC','ISSUE_CONTROL_RISK'];\r\n selectorConfig = {\r\n ISSUE_CATGORY: {\r\n panelTitle: 'Select Issue Category',\r\n floatingTextSingular: 'Category selected',\r\n searchPlaceholder: 'Search Issue Category',\r\n searchEnabled: true,\r\n noDataText: 'No Categories Found'\r\n },\r\n ISSUE_RC: {\r\n panelTitle: 'Select Responsibility Center',\r\n floatingTextSingular: 'Responsibilty center selected',\r\n searchPlaceholder: 'Search Responsibility Center',\r\n searchEnabled: true,\r\n noDataText: 'No Responsibility Centers Found'\r\n },\r\n ISSUE_WHO: {\r\n panelTitle: 'Select User',\r\n floatingTextSingular: 'User selected',\r\n searchPlaceholder: 'Search User',\r\n searchEnabled: true,\r\n noDataText: 'No Users Found'\r\n },\r\n ISSUE_TYPE: {\r\n panelTitle: 'Select Issue Type',\r\n floatingTextSingular: 'Issue Type selected',\r\n searchPlaceholder: 'Search Issue Type',\r\n searchEnabled: true,\r\n noDataText: 'No Issue Types Found'\r\n },\r\n ISSUE_CC: {\r\n panelTitle: 'Select user(s)',\r\n floatingTextSingular: 'User selected',\r\n searchPlaceholder: 'Search User',\r\n searchEnabled: true,\r\n selectAllEnabled: true,\r\n noDataText: 'No Users Found'\r\n },\r\n ISSUE_FCC: {\r\n panelTitle: 'Select user(s)',\r\n floatingTextSingular: 'User selected',\r\n searchPlaceholder: 'Search User',\r\n searchEnabled: true,\r\n selectAllEnabled: true,\r\n noDataText: 'No Users Found'\r\n }\r\n };\r\n\r\n fieldsWithError: any = [];\r\n hiddenList: any[] = [];\r\n\r\n activeField = '';\r\n activeSelector = '';\r\n listLoadingStatus: any = [];\r\n currentTime = '';\r\n /**\r\n * isRCPreSelected,isRCVisible are variable used to set the visibility of rc field and edit button in certain conditions\r\n */\r\n isRCPreSelected = false;\r\n isRCVisible = true\r\n isRCMandatory = false;\r\n dataForEdit !:any;\r\n isRiskControlVisible = false;\r\n constructor(private logService: LogIssueService, private authService: AuthService, private uiKitService: UiKitService, private snackBar: SnackBarService) { }\r\n ngOnInit(): void {\r\n this.currentTime = this.getCurrentTime();\r\n this.pickerChanged.emit(false);\r\n this.setUserDetails();\r\n this.fetchIssueTypes();\r\n this.fetchUserList();\r\n this.fetchCategoryList();\r\n this.fetchRCList();\r\n this.authService.getOrganizationDetails().subscribe((res: any) => {\r\n if (!res.enable_riskclass) {\r\n this.hiddenList.push('RISK_CLASSIFICATION');\r\n }\r\n });\r\n\r\n }\r\n ngAfterViewInit() {\r\n this.fetchControlRisks();\r\n this.decideRCmandatory();\r\n }\r\n\r\n ngOnChanges() {\r\n this.currentTime = this.getCurrentTime();\r\n }\r\n\r\n decideRCmandatory(){\r\n this.isRCMandatory = false;\r\n }\r\n\r\n\r\n setCurrentTime() {\r\n this.currentTime = this.getCurrentTime();\r\n }\r\n getCurrentTime() {\r\n let today = new Date();\r\n if (today.getDate() === new Date(this.logIssueForm.issueDueDate).getDate()) {\r\n if (today.getHours() < 12 && today.getMinutes() < 59 && today.getSeconds() < 59) {\r\n return `${(today.getHours() < 10) ? '0' + today.getHours() : today.getHours()}:${(today.getMinutes() < 10) ? '0' + today.getMinutes() : today.getMinutes()} am`;\r\n } else {\r\n return `${((today.getHours() - 12) < 10) ? '0' + (today.getHours() - 12) : (today.getHours() - 12)}:${(today.getMinutes() < 10) ? '0' + today.getMinutes() : today.getMinutes()} pm`;\r\n }\r\n } else {\r\n return '00:00 am';\r\n }\r\n }\r\n setUserDetails() {\r\n this.currentUser = this.authService.getUserDetails().user;\r\n }\r\n fetchIssueTypes() {\r\n this.listLoadingStatus[0] = false;\r\n this.checkAllListLoaded();\r\n this.logService.getIssueTypes().subscribe((res: any) => {\r\n this.listLoadingStatus[0] = true;\r\n this.listData.issueTypeList = res;\r\n this.checkAllListLoaded();\r\n }, (error: any) => {\r\n this.listLoadingStatus[0] = true;\r\n this.checkAllListLoaded();\r\n });\r\n }\r\n fetchUserList() {\r\n this.listLoadingStatus[1] = false;\r\n this.logService.getOrgPeople().subscribe((res: any) => {\r\n this.listLoadingStatus[1] = true;\r\n this.listData.userList = res;\r\n this.checkAllListLoaded();\r\n }, (error: any) => {\r\n this.listLoadingStatus[1] = true;\r\n this.checkAllListLoaded();\r\n });\r\n }\r\n\r\n fetchCategoryList() {\r\n this.listLoadingStatus[2] = false;\r\n this.logService.getIssueCategories().subscribe((res: any) => {\r\n this.listLoadingStatus[2] = true;\r\n this.listData.categoryList = res?.data;\r\n this.listData.categoryList = this.listData.categoryList.filter((e:any)=> e?.category_name !== 'Uncategorized')\r\n this.checkAllListLoaded();\r\n }, (error: any) => {\r\n this.listLoadingStatus[2] = true;\r\n this.checkAllListLoaded();\r\n });\r\n }\r\n\r\n fetchRCList() {\r\n this.listLoadingStatus[3] = false;\r\n this.logService.getResponsibilityCenterList().subscribe((res: any) => {\r\n this.listLoadingStatus[3] = true;\r\n this.listData.rcList = res;\r\n this.checkAllListLoaded();\r\n this.setSelectedRC();\r\n }, (error: any) => {\r\n this.listLoadingStatus[3] = true;\r\n this.checkAllListLoaded();\r\n });\r\n }\r\n\r\n setSelectedRC(){\r\n if(this.reponsibilityData?.rcId && this.openedFrom === 'COMPLIANCE_WORKROOM'){\r\n this.logIssueForm.issueRC = this.reponsibilityData.rcId ? this.listData.rcList.filter((e:any) => e.rc_id === this.reponsibilityData.rcId):[];\r\n console.log(\"this.logIssueForm.issueRC ==>\",this.logIssueForm.issueRC, this.listData.rcList , this.reponsibilityData.rcId, this.listData.rcList.filter((e:any) => e.rc_id === this.reponsibilityData.rcId))\r\n }else if(this.issueDetails?.rcId && ['AUDIT_WORKROOM','VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(this.openedFrom)){\r\n this.logIssueForm.issueRC = this.issueDetails?.rcId ? this.listData.rcList.filter((e:any) => e.rc_id === this.issueDetails?.rcId):[];\r\n }\r\n\r\n if(this.logIssueForm?.issueRC?.length){\r\n this.isRCPreSelected = true;\r\n }else{\r\n this.isRCPreSelected = false;\r\n }\r\n console.log(\"this.reponsibilityDatathis.reponsibilityDatathis.reponsibilityData ===>\", this.reponsibilityData)\r\n if(!(this.reponsibilityData?.rcId || this.issueDetails?.rcId) && ['COMPLIANCE_WORKROOM','AUDIT_WORKROOM','VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(this.openedFrom)){\r\n this.isRCVisible = false;\r\n }else{\r\n this.isRCVisible = true;\r\n }\r\n\r\n }\r\n\r\n fetchControlRisks(){\r\n\r\n if(['VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(this.openedFrom)){\r\n\r\n this.getLinkage(this.issueDetails?.auditObjId,this.logIssueForm.linkageType)\r\n }\r\n }\r\n\r\n\r\n getLinkage(auditId:any, type:string){\r\n this.isRiskControlLoading = true;\r\n this.logService.getControlRisk(auditId,type)?.subscribe((data:any)=>{\r\n this.listData.linkageList = [...this.listData.linkageList,...data];\r\n this.listData.linkageList = this.listData.linkageList.filter((thing:any, index:any, self:any) =>\r\n index === self.findIndex((t:any) => (\r\n t.itemId === thing.itemId && t.itemType === thing.itemType\r\n ))\r\n)\r\n this.isRiskControlLoading = false;\r\n console.log(\"linkage\",this.listData)\r\n },(error:any)=>{\r\n this.isRiskControlLoading = false;\r\n })\r\n }\r\n /**\r\n * This functioj check weather all the required lists are loaded\r\n * If loaded hides the loader otherwise shows the loader.\r\n */\r\n checkAllListLoaded() {\r\n if (this.listLoadingStatus.includes(false)) {\r\n this.loader = true;\r\n this.uiKitService.isLoader = true;\r\n } else {\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n if(this.mode==='EDIT'){\r\n this.fetchIssueDetails();\r\n }\r\n\r\n }\r\n }\r\n /**\r\n * Removes error from the fiels with error to remove the error messag from the UI\r\n * @param errorKey error Identifier used to show error in specific fields.\r\n */\r\n removeError(errorKey: string) {\r\n const index = this.fieldsWithError.indexOf(errorKey);\r\n if (index > -1) {\r\n this.fieldsWithError.splice(index, 1);\r\n }\r\n }\r\n openDatePicker() {\r\n this.datePicker.api.open();\r\n this.datePickerOverlay = true;\r\n this.setActiveFieldSelector('ISSUE_DATE_TIME', 'ISSUE_DATE_TIME');\r\n }\r\n closeDatePicker(evt: any) {\r\n if (!evt) {\r\n return;\r\n }\r\n if (evt?.date?._d) {\r\n let monthArray = ['Jan', 'Feb', 'Mar', 'Apr', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\r\n const dateValue = new Date(evt?.date?._d).getDate();\r\n const monthValue = monthArray[new Date(evt?.date?._d).getMonth()];\r\n const yearValue = new Date(evt?.date?._d).getFullYear();\r\n const dateStr = `${dateValue} ${monthValue} ${yearValue}`;\r\n if (evt?.date?._d !== this.logIssueForm.issueDueDate?._d) {\r\n this.logIssueForm.issueDueTime = \"11:59 PM\";\r\n this.setCurrentTime();\r\n }\r\n }\r\n if (evt?.date?._d) {\r\n this.logIssueForm.issueDueDate = evt?.date?._d;\r\n }\r\n this.datePicker.api.close();\r\n this.datePickerOverlay = false;\r\n this.setActiveFieldSelector('', '');\r\n }\r\n\r\n setActiveFieldSelector(activeField: string, activeSelector?: string) {\r\n this.activeField = activeField;\r\n (activeSelector ? this.activeSelector = activeSelector : this.activeSelector = '');\r\n const sliderType = ['ISSUE_RC', 'ISSUE_CATEGORY', 'ISSUE_TYPE', 'ISSUE_CC', 'ISSUE_FCC', 'ISSUE_WHO','ISSUE_CONTROL_RISK'];\r\n if (sliderType.includes(activeField)) {\r\n this.pickerChanged.emit(true);\r\n }\r\n\r\n }\r\n\r\n fieldDeselector(type: any) {\r\n this.activeSelector = '';\r\n this.activeField = '';\r\n this.pickerChanged.emit(false);\r\n }\r\n\r\n selectorAction(evt: any, type: any) {\r\n console.log(evt, type)\r\n switch (type) {\r\n case 'ISSUE_CATEGORY': {\r\n console.log(evt);\r\n this.logIssueForm.issueCategory = this.idToArray(evt, this.listData.categoryList, 'category_id');\r\n console.log( this.logIssueForm.issueCategory);\r\n this.fieldDeselector(type);\r\n if (evt?.length > 0) { this.removeError('issueCategory') }\r\n if(this.logIssueForm?.issueCategory[0]?.custom_tags?.length){\r\n const tag:any = []\r\n this.logIssueForm?.issueCategory[0]?.custom_tags.forEach((element:any) => {\r\n tag.push({name:element, value:''})\r\n });\r\n this.logIssueForm.issueCustomTag = tag;\r\n }else{\r\n this.logIssueForm.issueCustomTag = [];\r\n }\r\n break;\r\n }\r\n //[\"issueName\", \"issueCategory\", \"issueRC\", \"entrustTo\", \"issueDueDate\", \"issueRecommendation\"]\r\n case 'ISSUE_RC': {\r\n console.log(evt, type)\r\n this.logIssueForm.issueRC = this.idToArray(evt, this.listData.rcList, 'rc_id');\r\n this.fieldDeselector(type);\r\n if (evt?.length > 0) { this.removeError('issueRC') }\r\n break;\r\n }\r\n case 'ISSUE_WHO': {\r\n this.logIssueForm.entrustTo = this.idToArray(evt, this.listData.userList, 'employee_id');\r\n if(this.logIssueForm.entrustTo[0]?.my_member_id === this.currentUser.id){\r\n this.logIssueForm.isAssignToMyself = true;\r\n }else{\r\n this.logIssueForm.isAssignToMyself = false;\r\n }\r\n this.fieldDeselector(type);\r\n if (evt?.length > 0) { this.removeError('entrustTo') }\r\n break;\r\n }\r\n case 'ISSUE_TYPE': {\r\n this.logIssueForm.issueType = this.idToArray(evt, this.listData.issueTypeList, 'issue_id');\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n case 'ISSUE_CC': {\r\n this.logIssueForm.issueCCUsers = this.idToArray(evt, this.listData.userList, 'employee_email');\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n case 'ISSUE_FCC': {\r\n this.logIssueForm.failureCCUsers = this.idToArray(evt, this.listData.userList, 'employee_email');\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n\r\n case 'ISSUE_CONTROL_RISK':\r\n this.logIssueForm.linkedControlRisk = this.idToArray(evt, this.listData.linkageList, 'itemId');\r\n this.logIssueForm.linkageType = this.logIssueForm?.linkedControlRisk[0]?.itemType;\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n this.pickerChanged.emit(false);\r\n }\r\n\r\n deleteItem(type: any, element: any) {\r\n switch (type) {\r\n case 'ISSUE_CATEGORY': {\r\n const itemIndex = this.logIssueForm.issueCategory.findIndex((item: any) => item.category_id === element.category_id);\r\n if (itemIndex !== -1) { this.logIssueForm.issueCategory.splice(itemIndex, 1); }\r\n break;\r\n }\r\n case 'ISSUE_RC': {\r\n const itemIndex = this.logIssueForm.issueRC.findIndex((item: any) => item.rc_id === element.rc_id);\r\n if (itemIndex !== -1) { this.logIssueForm.issueRC.splice(itemIndex, 1); }\r\n break;\r\n }\r\n case 'ISSUE_WHO': {\r\n const itemIndex = this.logIssueForm.entrustTo.findIndex((item: any) => item.employee_id === element.employee_id);\r\n if (itemIndex !== -1) { this.logIssueForm.entrustTo.splice(itemIndex, 1); }\r\n this.logIssueForm.isAssignToMyself = false;\r\n break;\r\n }\r\n case 'ISSUE_TYPE': {\r\n const itemIndex = this.logIssueForm.issueType.findIndex((item: any) => item.issue_id === element.issue_id);\r\n if (itemIndex !== -1) { this.logIssueForm.issueType.splice(itemIndex, 1); }\r\n break;\r\n }\r\n case 'ISSUE_CC': {\r\n const itemIndex = this.logIssueForm.issueCCUsers.findIndex((item: any) => item.employee_email === element.employee_email);\r\n if (itemIndex !== -1) { this.logIssueForm.issueCCUsers.splice(itemIndex, 1); }\r\n break;\r\n }\r\n case 'ISSUE_FCC': {\r\n const itemIndex = this.logIssueForm.failureCCUsers.findIndex((item: any) => item.employee_email === element.employee_email);\r\n if (itemIndex !== -1) { this.logIssueForm.failureCCUsers.splice(itemIndex, 1); }\r\n break;\r\n }\r\n case 'ISSUE_CONTROL_RISK':\r\n const itemIndex = this.logIssueForm.linkedControlRisk.findIndex((item: any) => item.itemId === element.itemId);\r\n if (itemIndex !== -1) { this.logIssueForm.linkedControlRisk.splice(itemIndex, 1); }\r\n break;\r\n }\r\n }\r\n assignMyself(event: any) {\r\n this.removeError('entrustTo')\r\n this.logIssueForm.entrustTo = [];\r\n if(event){\r\n this.logIssueForm.entrustTo = this.listData.userList.filter((emplist: any) => emplist.my_member_id === this.currentUser.id);\r\n }\r\n }\r\n setException(type: any) { this.logIssueForm.exceptionType = type; }\r\n setEvidence(type: any) { this.logIssueForm.evidenceRequired = type; }\r\n setIssueType(type: any) { this.logIssueForm.issueType = type; }\r\n\r\n addMoreInfo(event: any) {\r\n this.additionalOptionStatus[event.code] = event.checked;\r\n this.scrollToBottom = true;\r\n }\r\n idToArray(selectedItems: any, listItems: any, filterkey: any) {\r\n const selected = selectedItems;\r\n const list = listItems;\r\n const key = filterkey;\r\n const x = list.filter((el: any) => selected.includes(el[key]));\r\n return x;\r\n }\r\n///Code between 503 to 608 can be optimized to remove duplication\r\n selectFile(type:string,files:any){\r\n switch (type) {\r\n case 'ISSUE_DESCRIPTION': {\r\n for (let i = 0; i <= files.length - 1; i++) {\r\n const name = files[i].file.name ?? '';\r\n this.AttachmentTrack[0].push(name);\r\n this.uploadFile(files[i].file,type);\r\n }\r\n break;\r\n }\r\n case 'RECOMMENDED_ACTIONS':{\r\n for (let i = 0; i <= files.length - 1; i++) {\r\n const name = files[i].file.name ?? '';\r\n this.AttachmentTrack[1].push(name);\r\n this.uploadFile(files[i].file,type);\r\n }\r\n break;\r\n }\r\n case 'ASSOCIATED_RISKS':{\r\n for (let i = 0; i <= files.length - 1; i++) {\r\n const name = files[i].file.name ?? '';\r\n this.AttachmentTrack[2].push(name);\r\n this.uploadFile(files[i].file,type);\r\n }\r\n break;\r\n }\r\n }\r\n}\r\n\r\n\r\n uploadFile(file: any,type:string) {\r\n let trackIndex = 0 ;\r\n switch(type){\r\n case 'ISSUE_DESCRIPTION':{\r\n trackIndex = 0;\r\n break;\r\n }\r\n case 'RECOMMENDED_ACTIONS':{\r\n trackIndex = 1;\r\n break;\r\n }\r\n case 'ASSOCIATED_RISKS':{\r\n trackIndex = 2;\r\n break;\r\n }\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n const destinationString = this.authService.getOrganizationId().toString();\r\n this.logService.uploadFiles(formData, destinationString+'/').subscribe(\r\n (res: any) => {\r\n\r\n const index = this.AttachmentTrack[trackIndex].indexOf(file?.name);\r\n if (index !== -1) {\r\n this.AttachmentTrack[trackIndex].splice(index, 1);\r\n }\r\n\r\n switch(type){\r\n case 'ISSUE_DESCRIPTION':{\r\n this.logIssueForm.issueDescriptionAttachements.push(res);\r\n break;\r\n }\r\n case 'RECOMMENDED_ACTIONS':{\r\n this.logIssueForm.recommendedActionsAttachments.push(res);\r\n break;\r\n }\r\n case 'ASSOCIATED_RISKS':{\r\n this.logIssueForm.associatedRisksAttachments.push(res);\r\n break;\r\n }\r\n }\r\n },\r\n (error) => {\r\n const index = this.AttachmentTrack[trackIndex].indexOf(file.name);\r\n if (index !== -1) {\r\n this.AttachmentTrack[trackIndex].splice(index, 1);\r\n }\r\n\r\n }\r\n );\r\n }\r\n\r\n deleteFile(file: any,type:string) {\r\n let fileIndex = -1;\r\n switch(type){\r\n case 'ISSUE_DESCRIPTION':{\r\n fileIndex = this.logIssueForm.issueDescriptionAttachements?.findIndex((currentFiles: any) => currentFiles.org_file === file.org_file) ?? -1;\r\n this.logIssueForm.issueDescriptionAttachements?.splice(fileIndex, 1);\r\n break;\r\n }\r\n case 'RECOMMENDED_ACTIONS':{\r\n fileIndex = this.logIssueForm.recommendedActionsAttachments?.findIndex((currentFiles: any) => currentFiles.org_file === file.org_file) ?? -1;\r\n this.logIssueForm.recommendedActionsAttachments?.splice(fileIndex, 1);\r\n break;\r\n }\r\n case 'ASSOCIATED_RISKS':{\r\n fileIndex = this.logIssueForm.associatedRisksAttachments?.findIndex((currentFiles: any) => currentFiles.org_file === file.org_file) ?? -1;\r\n this.logIssueForm.associatedRisksAttachments?.splice(fileIndex, 1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n addIssue(){\r\n const form = cloneDeep(this.logIssueForm);\r\n if (form.isAssignToMyself){\r\n form.entrustTo = this.listData.userList.filter((emplist: any) => emplist.my_member_id === this.currentUser.id);\r\n }\r\n\r\n this.fieldsWithError = [];\r\n this.fieldsWithError = this.logService.validate(form, this.openedFrom,this.isRCMandatory);\r\n if (this.fieldsWithError.length > 0 ){\r\n return;\r\n }\r\n const PAYLOAD = this.logService.payloadBuilder(form, this.additionalOptionStatus);\r\n\r\n if(this.mode === 'CREATE'){\r\n PAYLOAD.linkage_object = { source : this.openedFrom, type:'', type_id: 0, source_id: 0, source_object_id: ''};\r\n if (this. openedFrom === 'COMPLIANCE_WORKROOM' && this.reponsibilityData?.responsibilityId){\r\n PAYLOAD.linkage_object = { source_id: this.reponsibilityData?.responsibilityId, type: '', type_id: 0, source : this.openedFrom, source_object_id: this.reponsibilityData?.responsibilityObjectId } ;\r\n }\r\n if(['VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(this.openedFrom)){\r\n if(this.logIssueForm?.linkageType && this.logIssueForm?.linkedControlRisk.length > 0){\r\n if(['RISK', 'RESPONSIBILITY'].includes(this.logIssueForm?.linkageType)){\r\n PAYLOAD.linkage_object.source_id = this.logIssueForm?.linkedControlRisk[0]?.itemId;\r\n }\r\n }\r\n }\r\n if(['AUDIT_WORKROOM','VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(this.openedFrom)){\r\n if(this.issueDetails.auditPlanId){\r\n PAYLOAD.linkage_object.source_id = this.issueDetails.auditPlanId;\r\n }\r\n }\r\n }\r\n\r\n if(this.mode === 'EDIT'){\r\n PAYLOAD.IssueLinkage = this.dataForEdit?.linkage_object;\r\n }\r\n this.loader = true;\r\n this.uiKitService.isLoader = true\r\n console.log('PAYLOAD ===>', PAYLOAD)\r\n if(this.mode === 'EDIT'){\r\n this.logService.updateIssue(PAYLOAD,this.issueId).subscribe((res: any) => {\r\n this.smileyMessage = `The issue has been updated.`;\r\n this.issueData = res;\r\n this.showSmiley = true;\r\n this.uiKitService.isSmileyOn = true;\r\n this.loader = false;\r\n this.uiKitService.isLoader = false\r\n this.resetIssueForm();\r\n }, error => {\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n });\r\n }else if(this.mode === 'CREATE' || this.mode === '' || !this.mode){\r\n this.logService.createIssue(PAYLOAD).subscribe((res: any) => {\r\n this.issueData = res;\r\n this.showSmiley = true;\r\n this.uiKitService.isSmileyOn = true;\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.resetIssueForm();\r\n }, error => {\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n });\r\n }\r\n\r\n }\r\n closeSmiley(evt?: any){\r\n this.showSmiley = false;\r\n this.uiKitService.isSmileyOn = false;\r\n this.closeWorkFlow(this.issueData,false);\r\n }\r\n/**\r\n * Closes workflow engine\r\n * @param evt\r\n * @param confirm\r\n */\r\ncloseWorkFlow(evt: any, confirm:any){\r\n this.closeWorkflow.emit({evt, confirm});\r\n }\r\n action(evt: any){\r\n if (evt === 'addMore'){\r\n this.resetIssueForm();\r\n this.showSmiley = false;\r\n this.uiKitService.isSmileyOn = false;\r\n // this.closeWorkFlow(this.issueData, false);\r\n }\r\n else if(evt === 'viewIssue'){\r\n this.viewIssue();\r\n }\r\n\r\n }\r\n\r\n viewIssue(): void {\r\n this.disconnectRefresh.emit(false);\r\n let url: string;\r\n if (window.location.host.startsWith('localhost')) {\r\n url = 'http://' + window.location.host;\r\n } else {\r\n url = 'https://' + window.location.host;\r\n }\r\n\r\n if (window.location.host.startsWith('localhost')) {\r\n url += '/issue/issue-workroom/' + this.issueData?._id;\r\n } else {\r\n url += '/audit/issue/issue-workroom/' + this.issueData?._id;\r\n }\r\n window.location.href = url;\r\n }\r\n\r\n/**\r\n * Populate the tickmark of optional fields\r\n */\r\npopulateOptionalFields(){\r\n const activatedOptions = [];\r\n for (const key of Object.keys(this.additionalOptionStatus)){\r\n if (this.additionalOptionStatus[key] === true){\r\n activatedOptions.push(key);\r\n }\r\n }\r\n this.populateOption.emit(activatedOptions);\r\n}\r\n/**\r\n * Fetchs issue details when in edit mode based on the input id passed\r\n */\r\nfetchIssueDetails(){\r\n this.loader = true;\r\n this.uiKitService.isLoader = true;\r\n this.logService.getIssueDetails(this.issueId).subscribe((data:any)=>{\r\n console.log(\"issue Data\",data)\r\n this.populateForm(data)\r\n })\r\n}\r\n/**\r\n * Populates the issue form when in edit mode\r\n * @param issueData issue data fetched from API\r\n */\r\nasync populateForm(issueData : any){\r\n this.dataForEdit = issueData;\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n const issueDueDate = issueData.frequency_details?.frequency_date.split('-');\r\n this.logIssueForm = {\r\n issueName : issueData.title ?? '',\r\n evidenceRequired: issueData?.evidence?.evidence_flag??0,\r\n issueDescription: issueData?.description?.length ? issueData?.description[0]?.text :'',\r\n issueDescriptionAttachements: issueData?.description?.length ? issueData?.description[0]?.attachments :[],\r\n issueCategory: issueData?.category_id ? this.listData.categoryList.filter((e:any) => e.category_id === issueData?.category_id):[],\r\n issueCustomTag : issueData?.custom_tags ?? [],\r\n issueRC: issueData?.rc_id ? this.listData.rcList.filter((e:any) => e.rc_id === issueData?.rc_id):[],\r\n recommendedActionsAttachments:issueData?.recommendation?.length ? issueData?.recommendation[0]?.attachments :[],\r\n associatedRisksAttachments:[],\r\n isAssignToMyself : issueData?.assignee_id === this.currentUser.id ? true : false,\r\n entrustTo: issueData?.assignee_id === this.currentUser.id ? []: this.listData.userList.filter((e:any) => e.my_member_id === issueData?.assignee_id ),\r\n issueDueDate: issueData?.frequency_details?.frequency_date? moment(`${issueDueDate[0]}-${issueDueDate[1]}-${issueDueDate[2]}`):'',\r\n issueDueTime: this.logService.convertFrom24To12Format(issueData.frequency_details.frequency_time),\r\n exceptionType: issueData.exception_type ?? 1,\r\n issueRiskRating: issueData.risk_class ?? 1,\r\n issuePriority: issueData.priority ?? 1,\r\n issueRecommendation: issueData?.recommendation?.length ? issueData?.recommendation[0]?.text :'',\r\n issueAssociatedRisk: issueData?.associated_risk?.length ? issueData?.associated_risk[0]?.text :'',\r\n issueCCUsers: issueData.overseer?.cc_email.length ? await this.generateOverseerList(this.listData.userList,issueData.overseer?.cc_email) :[],\r\n failureCCUsers: issueData.overseer?.failure_cc_email.length ? await this.generateOverseerList(this.listData.userList,issueData.overseer?.failure_cc_email) :[],\r\n linkedControlRisk:[],\r\n linkageType : 'RESPONSIBILITY',\r\n issueType: issueData.issueType ? issueData.issueType : 'issue'\r\n };\r\n console.log(\"After Init\",this.logIssueForm)\r\n if(this.mode === 'EDIT'){\r\n this.logIssueForm.issueRC?.length > 0 ? this.isRCPreSelected = true : this.isRCPreSelected = false;\r\n // issueData.linkage_object?.source === 'GLOBAL'? this.isRCMandatory = true : this.isRCMandatory = false;\r\n (issueData.linkage_object?.source === 'GLOBAL' && issueData?.rc_id) ? this.isRCPreSelected = false : this.isRCPreSelected = true;\r\n // if(issueData.linkage_object?.compliance?.ids?.length){\r\n // this.logIssueForm.linkedControlRisk = issueData.linkage_object?.compliance?.ids??[],\r\n // this.logIssueForm.linkageType = 'RESPONSIBILITY'\r\n // this.isRiskControlVisible = true;\r\n // }\r\n // if(issueData.linkage_object?.risk?.ids?.length){\r\n // this.logIssueForm.linkedControlRisk = issueData.linkage_object?.risk?.ids??[],\r\n // this.logIssueForm.linkageType = 'RISK';\r\n // this.isRiskControlVisible = true;\r\n // }\r\n }\r\n this.setOptionalField(issueData);\r\n}\r\n/**\r\n * Sets the visibility of optional fields\r\n * @param issueData issue data fetched from API\r\n */\r\nsetOptionalField(issueData:any){\r\n this.additionalOptionStatus = {\r\n EXCEPTION_TYPE: issueData.exception_type ? true : false,\r\n EVIDENCE: issueData.evidence.evidence_flag ? true :false,\r\n PRIORITY: issueData.priority ? true : false,\r\n ISSUE_TYPE: false,\r\n ASSOCIATED_RISKS : issueData.associated_risk.length ? (issueData.associated_risk[0].text.length ? true : false):false,\r\n OVERSIGHT : (issueData.overseer.cc_email.length > 0 || issueData.overseer.failure_cc_email.length > 0) ? true : false\r\n };\r\n this.populateOptionalFields();\r\n}\r\n/**\r\n * Generates list of selected overseer\r\n * @param allUserList list of all users in the organzation\r\n * @param overseerList lit of the overseer that needs to be filtered\r\n * @returns list of array containing the users objects\r\n */\r\ngenerateOverseerList(allUserList:any, overseerList:any ){\r\n return overseerList.map((user:any)=>{\r\n const foundUser = allUserList.find((element:any) => element.my_member_id === user.member_id);\r\n if(foundUser){\r\n return foundUser;\r\n }\r\n })\r\n}\r\n/**\r\n * Resets issue form\r\n */\r\nresetIssueForm(){\r\n this.scrollToBottom = false;\r\n this.logIssueForm = {\r\n issueName : '',\r\n evidenceRequired: 0,\r\n issueDescription: '',\r\n issueDescriptionAttachements: [],\r\n recommendedActionsAttachments:[],\r\n associatedRisksAttachments:[],\r\n issueCategory: [],\r\n issueCustomTag : [],\r\n issueRC: [],\r\n issueType: 'issue',\r\n isAssignToMyself : false,\r\n entrustTo: [],\r\n issueDueDate: '',\r\n issueDueTime: '11:59 PM',\r\n exceptionType: 1,\r\n issueRiskRating: 1,\r\n issuePriority: 1,\r\n issueRecommendation: '',\r\n issueAssociatedRisk: '',\r\n issueCCUsers: [],\r\n failureCCUsers: []\r\n };\r\n for (const key of Object.keys(this.additionalOptionStatus)){\r\n this.additionalOptionStatus[key] = false;\r\n }\r\n this.smileyMessage = `The issue has been reported.`;\r\n this.mode = 'CREATE';\r\n this.modeChange.emit(this.mode);\r\n this.populateOptionalFields();\r\n this.setSelectedRC();\r\n }\r\n checkDescription() {\r\n if (this.logIssueForm.issueDescription == '<br>') {\r\n this.logIssueForm.issueDescription = '';\r\n }\r\n if (this.logIssueForm.issueRecommendation == '<br>') {\r\n this.logIssueForm.issueRecommendation = '';\r\n }\r\n if (this.logIssueForm.issueAssociatedRisk == '<br>') {\r\n this.logIssueForm.issueAssociatedRisk = '';\r\n }\r\n}\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'filter',\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n transform(items: any[], searchText: string): any[] {\r\n if (!items) {\r\n return [];\r\n }\r\n if (!searchText) {\r\n return items;\r\n }\r\n searchText = searchText.toLowerCase();\r\n if(items?.length){\r\n return items.filter((it: any) => {\r\n return JSON.stringify(it).toLowerCase().includes(searchText);\r\n });\r\n }else{\r\n return [];\r\n }\r\n }\r\n}\r\n","import { Component, Input, OnInit, EventEmitter, Output, HostListener } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-smiley-dialog',\r\n templateUrl: './smiley-dialog.component.html',\r\n styleUrls: ['./smiley-dialog.component.less'],\r\n})\r\nexport class SmileyDialogComponent implements OnInit {\r\n @Input() message!: string;\r\n @Input() actionButtons!: any[];\r\n @Output() action: EventEmitter<string> = new EventEmitter();\r\n @Output() closeSmiley: EventEmitter<any> = new EventEmitter();\r\n\r\n @HostListener('window:keyup', ['$event']) handleKeyboardEvent(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n this.smileyCloseEmitter({});\r\n }\r\n }\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n setTimeout(()=>{\r\n this.smileyCloseEmitter();\r\n },3000)\r\n }\r\n\r\n actionEmitter(event: any) {\r\n this.action.emit(event?.id);\r\n }\r\n\r\n smileyCloseEmitter(event?: any) {\r\n this.closeSmiley.emit();\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SmileyDialogComponent } from './smiley-dialog.component';\r\n\r\n@NgModule({\r\n declarations: [SmileyDialogComponent],\r\n imports: [CommonModule],\r\n\r\n exports: [SmileyDialogComponent],\r\n})\r\nexport class SmileyDialogModule {}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-checkbox-list',\r\n templateUrl: './checkbox-list.component.html',\r\n styleUrls: ['./checkbox-list.component.less']\r\n})\r\nexport class CheckboxListComponent implements OnInit {\r\n @Input() itemsList: any = [];\r\n @Input() selectedItems: any = [];\r\n @Input() identifierKey = '';\r\n @Input() displayKey = '';\r\n @Input() tooltipKey = '';\r\n @Input() config !: any;\r\n @Input() twoColumn = false;\r\n @Output() closeList = new EventEmitter();\r\n @Output() saveList = new EventEmitter();\r\n searchItem = '';\r\n animation = true;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n this.selectedItems = this.arrayToId(this.selectedItems, this.identifierKey);\r\n\r\n }\r\n selectItem(item: any, checked: boolean){\r\n if (checked){\r\n this.selectedItems.push(item);\r\n this.selectedItems = Array.from(new Set(this.selectedItems));\r\n\r\n }else{\r\n const itemIndex = this.selectedItems.findIndex((el: any) => el === item);\r\n if (itemIndex !== -1){this.selectedItems.splice(itemIndex, 1); }\r\n }\r\n }\r\n deleteItem(item: any){\r\n const itemIndex = this.selectedItems.findIndex((el: any) => el === item[this.identifierKey]);\r\n if (itemIndex !== -1){this.selectedItems.splice(itemIndex, 1); }\r\n }\r\n\r\n\r\n save(){\r\n this.saveList.emit(this.selectedItems);\r\n }\r\n\r\n close(){\r\n this.closeList.emit();\r\n }\r\n\r\n\r\n arrayToId(array: any, identifierKey: any){\r\n return array.map((a: any) => a[identifierKey]);\r\n }\r\n selectAll(evt: any){\r\n if(evt === true){\r\n this.selectedItems = this.itemsList.map((e: any) => {\r\n return e[this.identifierKey];\r\n });\r\n }else{\r\n this.selectedItems = [];\r\n }\r\n\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, AfterViewInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-radio-list',\r\n templateUrl: './radio-list.component.html',\r\n styleUrls: ['./radio-list.component.less']\r\n})\r\nexport class RadioListComponent implements OnInit,AfterViewInit {\r\n @ViewChild('listBlock',{ static: false }) listBlock!: ElementRef;\r\n @Input() itemsList: any = [];\r\n @Input() selectedItems: any = [];\r\n @Input() identifierKey = '';\r\n @Input() displayKey = '';\r\n @Input() tooltipKey = '';\r\n @Input() config !: any;\r\n @Input() twoColumn = false;\r\n @Output() closeList = new EventEmitter();\r\n @Output() saveList = new EventEmitter();\r\n animation = true;\r\n searchItem = '';\r\n blockWidth: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n this.selectedItems = this.arrayToId(this.selectedItems, this.identifierKey);\r\n // this.rerenderList();\r\n\r\n }\r\n\r\n ngAfterViewInit(){\r\n setTimeout(() => {\r\n this.blockWidth = this.listBlock?.nativeElement?.offsetWidth;\r\n }, 100);\r\n }\r\n selectItem(item: any) {\r\n this.selectedItems = [];\r\n this.selectedItems.push(item);\r\n }\r\n deleteItem(item: any) {\r\n this.selectedItems = [];\r\n // this.rerenderList();\r\n }\r\n\r\n\r\n save() {\r\n this.saveList.emit(this.selectedItems);\r\n }\r\n\r\n close() {\r\n this.closeList.emit();\r\n }\r\n\r\n\r\n arrayToId(array: any, identifierKey: any) {\r\n return array.map((a: any) => a[identifierKey]);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'listMapper',\r\n pure: false\r\n})\r\nexport class ListMapperPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): unknown {\r\n\r\n const selected = value;\r\n const list = args[0];\r\n const key = args[1];\r\n const x = list.filter((el: any) => selected.includes(el[key]));\r\n return x;\r\n }\r\n\r\n}\r\n","import { PlatformLocation } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\nimport { PolicyService } from '../workflow-services/policy.service';\r\n\r\n@Component({\r\n selector: 'app-create-documents',\r\n templateUrl: './create-documents.component.html',\r\n styleUrls: ['./create-documents.component.less']\r\n})\r\nexport class CreateDocumentsComponent implements OnInit {\r\n private fileToUpload: any;\r\n filename = '';\r\n fileType = '';\r\n pdf = false;\r\n draft = false;\r\n doc = false;\r\n isUploading = false;\r\n isLoader = false;\r\n selectedDocumentType = ''\r\n @Input() policyId: any = ''\r\n @Input() policyName: any = ''\r\n @Input() organization_id: any = '';\r\n @Input() member_obj_id: any;\r\n @Input() userInfo: any;\r\n @Output() disconnectRefresh = new EventEmitter();\r\n @Output() editPolicy = new EventEmitter();\r\n\r\n\r\n baseURL = ''\r\n\r\n\r\n constructor(private snackBar: SnackBarService,\r\n private policyService: PolicyService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n platformLocation: PlatformLocation,\r\n\r\n ) {\r\n this.baseURL = (platformLocation as any).location.origin;\r\n if (this.baseURL == \"http://localhost:4200\") {\r\n this.baseURL = 'https://dev.v-comply.com'\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n const data= JSON.parse(localStorage.getItem('lastFileNameAndType') ?? '\"{}\"');\r\n if((data.name!==null && data.name!==undefined)&& (data.type!==null && data.type!==undefined)\r\n &&(data.policyId==this.policyId)){\r\n this.selectedDocumentType = data.type;\r\n this.filename = data.name;\r\n localStorage.removeItem('lastFileNameAndType')\r\n }\r\n }\r\n\r\n handleFileInput(files: FileList): void {\r\n this.fileToUpload = files[0];\r\n this.filename = this.fileToUpload.name;\r\n this.fileType = this.fileToUpload.name.slice(this.fileToUpload.name.lastIndexOf('.') + 1, this.fileToUpload.name.length).toLowerCase();\r\n if (this.fileType === 'pdf') {\r\n this.uploadFile({ file: this.fileToUpload, fileType: this.fileType });\r\n } else if (this.fileType === 'docx') {\r\n this.uploadFile({ file: this.fileToUpload, fileType: this.fileType });\r\n } else {\r\n this.snackBar.show('Please upload a valid file');\r\n }\r\n }\r\n\r\n uploadFile(event: any) {\r\n this.isUploading = true;\r\n if (event.fileType === 'docx') {\r\n this.changeDocType('docx');\r\n this.uploadDocxfile(event);\r\n } else if (event.fileType === 'pdf') {\r\n this.changeDocType('pdf');\r\n const uploadData = new FormData();\r\n uploadData.append('file', event.file);\r\n const path = 'o/' + this.organization_id + '/policy/'\r\n this.policyService.uploadFile(uploadData, this.policyId, path).subscribe(res => {\r\n if (res) {\r\n this.isUploading = false;\r\n }\r\n }, err => {\r\n this.isUploading = false;\r\n this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?');\r\n });\r\n }\r\n }\r\n\r\n uploadDocxfile(event: any) {\r\n const uploadData = new FormData();\r\n uploadData.append('file', event.file);\r\n const path = 'o/' + this.organization_id + '/policy/'\r\n this.policyService.uploadDocxFile(uploadData, this.policyId, path).subscribe(res => {\r\n if (res) {\r\n this.isUploading = false;\r\n\r\n }\r\n }, err => {\r\n this.isUploading = false;\r\n\r\n this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?');\r\n });\r\n }\r\n\r\n changeDocType(event:any){\r\n this.selectedDocumentType = event;\r\n }\r\n\r\n editor(event: string) {\r\n this.disconnectRefresh.emit(false);\r\n\r\n if (event === 'draft') {\r\n // If it is a draft go directly to the editor\r\n const uname = this.userInfo ? this.userInfo.name : '';\r\n const uid = this.member_obj_id;\r\n const name = this.policyName.trim();\r\n const id = this.policyId;\r\n this.isLoader = true;\r\n this.policyService.savePolicyDetails(uname, uid, id, name, '', 0).subscribe(res => {\r\n if (res) {\r\n this.isLoader = false;\r\n window.location.href = this.baseURL + '/all/policy/edit-policy?id=' + this.policyId\r\n\r\n }\r\n }, err => {\r\n this.isLoader = false;\r\n this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?');\r\n });\r\n\r\n } else if (event === 'docx') {\r\n\r\n window.location.href = this.baseURL + '/all/policy/edit-policy?id=' + this.policyId\r\n } else if (event === 'pdf') {\r\n // If it is a pdf send to the workroom\r\n window.location.href = this.baseURL + '/all/policy/workroom?id=' + this.policyId\r\n }\r\n localStorage.setItem('_dId', this.policyId);\r\n }\r\n editPolicyEmit(){\r\n localStorage.setItem('lastFileNameAndType', JSON.stringify({type:this.selectedDocumentType,name:this.filename, policyId: this.policyId}));\r\n this.editPolicy.emit()\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'search'\r\n})\r\nexport class SearchPipe implements PipeTransform {\r\n transform(items: any[], ...args: any[]): any[] {\r\n let searchText = args[0];\r\n const searchKey = args[1];\r\n if (!items) {\r\n return [];\r\n }\r\n if (!searchText) {\r\n return items;\r\n }\r\n searchText = searchText.toLowerCase();\r\n if(items?.length){\r\n return items.filter((it: any) => {\r\n if(!searchKey){\r\n return JSON.stringify(it).toLowerCase().includes(searchText);\r\n }\r\n else if(searchKey){\r\n // return empIds.indexOf(itm.empid) > -1;\r\n\r\n return it[searchKey]?.toString()?.toLowerCase().indexOf(searchText) > -1;\r\n //return it[searchKey].toLowerCase().includes(searchText);\r\n }\r\n\r\n });\r\n }else{\r\n return [];\r\n }\r\n }\r\n}\r\n// export class FilterPipe implements PipeTransform {\r\n// transform(items: any[], ...args: any[]): any[] {\r\n// let searchText = args[0];\r\n// const searchKey = args[1];\r\n// if (!items) {\r\n// return [];\r\n// }\r\n// if (!searchText) {\r\n// return items;\r\n// }\r\n// searchText = searchText.toLowerCase();\r\n// if(items?.length){\r\n// return items.filter((it: any) => {\r\n// if(!searchKey){\r\n// return JSON.stringify(it).toLowerCase().includes(searchText);\r\n// }\r\n// else if(searchKey){\r\n// // return empIds.indexOf(itm.empid) > -1;\r\n// console.log(\"sda\",it[searchKey].toLowerCase().indexOf(searchText) > -1)\r\n// return it[searchKey].toLowerCase().indexOf(searchText) > -1;\r\n// //return it[searchKey].toLowerCase().includes(searchText);\r\n// }\r\n\r\n// });\r\n// }else{\r\n// return [];\r\n// }\r\n// }\r\n// }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { cloneDeep } from 'lodash';\r\n\r\n@Pipe({\r\n name: 'userFilter'\r\n})\r\nexport class UserFilterPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n const key = args[0];\r\n const list = cloneDeep(args[1]);\r\n list.push(args[2]);\r\n if (key && list.length > 0){\r\n const itemIdsArray = list.map( (obj: any) => {\r\n return obj[key];\r\n });\r\n\r\n return value.filter((el: any) =>\r\n {\r\n return !itemIdsArray.includes(el[key]);\r\n });\r\n }\r\n else{\r\n return value;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\r\nimport { cloneDeep } from 'lodash';\r\n@Component({\r\n selector: 'app-group-users-list',\r\n templateUrl: './group-users-list.component.html',\r\n styleUrls: ['./group-users-list.component.less'],\r\n})\r\nexport class GroupUsersListComponent implements OnInit, OnChanges {\r\n @Input() usersList = [];\r\n @Input() groupsList: any[] = [];\r\n @Input() selectedUsers = [];\r\n @Input() userIdKey = '';\r\n @Input() openedFrom = '';\r\n @Output() saveSelectedList = new EventEmitter();\r\n @Output() closeUsersList = new EventEmitter();\r\n\r\n search = '';\r\n selectedIds: any[] = [];\r\n animation = false;\r\n constructor(private snackbar: SnackBarService) { }\r\n\r\n ngOnChanges(): void {\r\n console.log(\"user list \", this.usersList)\r\n this.selectedIds = this.selectedUsers.map((ele: any) => { if (ele[this.userIdKey]) { return ele[this.userIdKey]; } });\r\n }\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n }\r\n\r\n selectUser(user: any, mode: any) {\r\n if (mode) {\r\n this.selectedIds.push(user);\r\n } else {\r\n const index = this.selectedIds.findIndex((element: any) => element == user);\r\n this.selectedIds.splice(index, 1);\r\n }\r\n this.setList();\r\n\r\n }\r\n deleteEvent(event: any) {\r\n const index = this.selectedIds.findIndex((element: any) => element == event[this.userIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n this.setList();\r\n }\r\n\r\n selectAll(mode: any) {\r\n if (mode) {\r\n const list = [...this.usersList];\r\n this.selectedIds = [];\r\n list.forEach(element => {\r\n this.selectedIds.push(element[this.userIdKey]);\r\n });\r\n } else {\r\n this.selectedIds = [];\r\n }\r\n this.setList();\r\n }\r\n\r\n validationCheck(isChecked: boolean) {\r\n if(isChecked) {\r\n this.snackbar.show('You can select a maximum of 19 users.');\r\n }\r\n }\r\n\r\n\r\n setList() {\r\n const data: any = [];\r\n const userList = cloneDeep(this.usersList);\r\n const selectedIds = cloneDeep(this.selectedIds);\r\n userList.forEach((element: any) => {\r\n if (selectedIds.includes(element[this.userIdKey])) {\r\n data.push(element);\r\n }\r\n });\r\n this.selectedUsers = data;\r\n }\r\n\r\n checkSelectAll() {\r\n const data = this.usersList.every((user: any) => this.selectedIds.includes(user[this.userIdKey]));\r\n return data;\r\n }\r\n\r\n save(selectedIds: any) {\r\n this.saveSelectedList.emit(selectedIds);\r\n }\r\n\r\n close() {\r\n this.closeUsersList.emit();\r\n }\r\n\r\n selectGroup(groupIds: any, mode: any) {\r\n if (mode) {\r\n groupIds.forEach((userId: any) => {\r\n if (!this.selectedIds.includes(userId)) {\r\n this.selectedIds.push(userId)\r\n }\r\n });\r\n } else {\r\n groupIds.forEach((userId: any) => {\r\n const index = this.selectedIds.findIndex((element: any) => element == userId);\r\n this.selectedIds.splice(index, 1);\r\n });\r\n }\r\n this.setList();\r\n }\r\n\r\n checkGroupList(groupIds: any) {\r\n return groupIds.every((id: any) => this.selectedIds.includes(id));\r\n }\r\n\r\n hideGroup(groupIds: any){\r\n return this.usersList.every((user:any)=>!groupIds.includes(user[this.userIdKey]));\r\n }\r\n\r\n}\r\n","import { ElementRef, ViewChild } from '@angular/core';\r\nimport { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { CategoryList } from '../../interfaces/categoryList';\r\n// import isEqual from 'lodash-es/isEqual';\r\n@Component({\r\n selector: 'app-category-multi-select',\r\n templateUrl: './category-multi-select.component.html',\r\n styleUrls: ['./category-multi-select.component.less'],\r\n})\r\nexport class CategoryMultiSelectComponent implements OnInit, OnChanges {\r\n @ViewChild('listBlock',{ static: false }) listBlock!: ElementRef;\r\n @Input() categoryList: any;\r\n @Input() allCategories: any[] = [];\r\n\r\n @Input() categoryIdKey: any;\r\n @Input() selectedCategories: any[] = [];\r\n\r\n search = '';\r\n activeTab: any = '';\r\n selectedIds: any[] = [];\r\n animation = false;\r\n blockWidth: any;\r\n\r\n @Output() saveSelectedCategory = new EventEmitter();\r\n @Output() closeList = new EventEmitter();\r\n @Output() closeCategoriesList = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n this.selectedIds = [];\r\n if (this.selectedCategories) {\r\n this.selectedCategories.forEach(element => {\r\n this.selectedIds.push(element[this.categoryIdKey]);\r\n });\r\n }\r\n this.setList()\r\n console.log(this.selectedCategories)\r\n setTimeout(() => {\r\n this.blockWidth = this.listBlock.nativeElement.offsetWidth;\r\n }, 10);\r\n\r\n }\r\n\r\n selectCategory(mode: any, activeTab: any, category: any) {\r\n if (mode) {\r\n this.selectedIds.push(category[this.categoryIdKey]);\r\n } else {\r\n const index = this.selectedIds.findIndex((element: any) => element == category[this.categoryIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n }\r\n this.setList();\r\n\r\n }\r\n\r\n deleteEvent(event: any) {\r\n const index = this.selectedIds.findIndex((element: any) => element == event[this.categoryIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n this.setList();\r\n }\r\n\r\n selectAll(mode: any, activeTab: any) {\r\n\r\n if (mode) {\r\n const list = [...this.categoryList[activeTab].list];\r\n list.forEach(element => {\r\n if (!this.selectedIds.includes(element[this.categoryIdKey])) {\r\n this.selectedIds.push(element[this.categoryIdKey]);\r\n }\r\n });\r\n } else {\r\n const list = [...this.categoryList[activeTab].list];\r\n list.forEach(element => {\r\n if (this.selectedIds.includes(element[this.categoryIdKey])) {\r\n let idIndex = this.selectedIds.findIndex((id: any) => id == element[this.categoryIdKey]);\r\n this.selectedIds.splice(idIndex, 1);\r\n }\r\n });\r\n }\r\n this.setList();\r\n }\r\n\r\n setList() {\r\n const data: any = [];\r\n const categoryList = cloneDeep(this.allCategories);\r\n const selectedIds = cloneDeep(this.selectedIds);\r\n this.categoryList.regulations.selectedList = [];\r\n this.categoryList.standards.selectedList = [];\r\n this.categoryList.internalControls.selectedList = [];\r\n this.categoryList.others.selectedList = [];\r\n\r\n categoryList.forEach((element: any) => {\r\n if (selectedIds.includes(element[this.categoryIdKey])) {\r\n data.push(element);\r\n }\r\n });\r\n this.selectedCategories = data;\r\n\r\n this.categoryList.regulations.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.regulations.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.standards.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.standards.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.internalControls.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.internalControls.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.others.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.others.selectedList.push(category)\r\n }\r\n });\r\n if (!this.activeTab) {\r\n this.setActiveTab();\r\n }\r\n }\r\n setActiveTab() {\r\n if (this.categoryList.regulations.selectedList.length > 0) {\r\n this.activeTab = 'regulations'\r\n } else if (this.categoryList.standards.selectedList.length > 0) {\r\n this.activeTab = 'standards'\r\n } else if (this.categoryList.internalControls.selectedList.length > 0) {\r\n this.activeTab = 'internalControls'\r\n } else if (this.categoryList.others.selectedList.length > 0) {\r\n this.activeTab = 'others'\r\n } else {\r\n this.activeTab = 'regulations'\r\n }\r\n }\r\n\r\n\r\n checkSelectAll(activeTab: any) {\r\n const data = this.categoryList[activeTab].list.every((user: any) => this.selectedIds.includes(user[this.categoryIdKey]));\r\n return data;\r\n }\r\n\r\n save() {\r\n this.saveSelectedCategory.emit(this.selectedCategories);\r\n }\r\n\r\n close() {\r\n this.closeCategoriesList.emit();\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ResponsibilityService } from '../../workflow-services/responsibility.service';\r\nimport { ParentTableComponent } from './parent-table/parent-table.component';\r\n\r\n@Component({\r\n selector: 'app-framework-list',\r\n templateUrl: './framework-list.component.html',\r\n styleUrls: ['./framework-list.component.less']\r\n})\r\nexport class FrameworkListComponent implements OnInit {\r\n @Input() categoryList: any;\r\n activeTab: any = 'regulations';\r\n breadCrumb: any[] = [];\r\n search = '';\r\n showParent = true;\r\n showChild = false;\r\n parentData: object = {}\r\n @ViewChild('parentTable') tableComponent!: ParentTableComponent;\r\n @Output() entrustFramework = new EventEmitter();\r\n @Output() closeFramework = new EventEmitter();\r\n\r\n\r\n\r\n constructor(private responsibilityService: ResponsibilityService) { }\r\n\r\n ngOnInit(): void {\r\n console.log(\"categoryList ==>\", this.categoryList)\r\n this.parentData = Object.assign(this.categoryList);\r\n \r\n console.log(\"categoryList ==>\", this.parentData)\r\n }\r\n\r\n \r\n\r\n expandCategory(category: any) {\r\n if (category.category_name) {\r\n this.breadCrumb = [];\r\n category.category_name.forEach((categoryItem: any, index: any) => {\r\n let obj;\r\n if (index == category.category_name.length - 1) {\r\n obj = {\r\n itemName: categoryItem,\r\n itemId: category._id\r\n }\r\n } else {\r\n obj = {\r\n itemName: categoryItem,\r\n itemId: category.parent_cat_obj_ids[index]\r\n }\r\n }\r\n this.breadCrumb.push(obj);\r\n });\r\n }\r\n\r\n }\r\n getCategoryDetailsById(id?: any) {\r\n \r\n if(!id || id == null) {\r\n this.breadCrumb = [];\r\n this.showParent = true;\r\n this.showChild = false;\r\n console.log()\r\n this.categoryList = Object.assign(this.parentData)\r\n this.showParent=false;\r\n setTimeout(() => {\r\n this.showParent=true;\r\n }, 100);\r\n return\r\n }\r\n this.tableComponent.getCategoryDetailsById(id);\r\n }\r\n entrustFrameworkDetails(report: any) {\r\n this.entrustFramework.emit(report);\r\n }\r\n close(){\r\n this.closeFramework.emit();\r\n \r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, Optional } from '@angular/core';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { Configurations } from '../../../configurations';\r\nimport { ResponsibilityService } from '../../../workflow-services/responsibility.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-parent-table',\r\n templateUrl: './parent-table.component.html',\r\n styleUrls: ['./parent-table.component.less']\r\n})\r\nexport class ParentTableComponent implements OnInit {\r\n\r\n @Input() tableList: any[] = [];\r\n @Input() search = '';\r\n\r\n @Output() closeParent = new EventEmitter();\r\n @Output() expandCategory = new EventEmitter();\r\n @Output() entrustFramework = new EventEmitter();\r\n\r\n parentViewData: Array<any> = [];\r\n libraryReport = [];\r\n entities = [];\r\n currentCategory: any;\r\n loader = false;\r\n currentEntity: any;\r\n searchText='';\r\n env: any;\r\n picUrl: string = '';\r\n constructor(private responsibilityService: ResponsibilityService, @Optional() config?: Configurations) {\r\n this.env = config?.envConfig;\r\n this.picUrl = this.env.s3Url + this.env.s3Bucket + this.env.profile;\r\n }\r\n\r\n ngOnChanges(){\r\n this.searchText=this.search;\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log(\"this.tableList\", this.tableList);\r\n this.parentViewData = [...new Set(this.tableList)];\r\n }\r\n\r\n getCategoryDetailsById(id: any) {\r\n if(!id || id == null) {\r\n console.log(\"this.parentViewData\", this.parentViewData);\r\n this.tableList = [...new Set(this.parentViewData)];\r\n return\r\n }\r\n this.loader =true;\r\n this.search = '';\r\n this.responsibilityService.getCategoryDetailsById(id).subscribe((res: any) => {\r\n this.expandCategory.emit(cloneDeep(res[0]));\r\n this.currentCategory = cloneDeep(res[0]);\r\n this.libraryReport = cloneDeep(res[0].libraryReport);\r\n this.entities = cloneDeep(res[0].all_entities_name);\r\n this.tableList = cloneDeep(res).slice(1)\r\n this.currentEntity = undefined;\r\n this.loader =false;\r\n }, err => {\r\n console.error(err);\r\n this.loader =false;\r\n })\r\n }\r\n\r\n entrustFrameworkDetails(report: any) {\r\n this.entrustFramework.emit(report);\r\n }\r\n entity_open(data: any) {\r\n this.loader = true;\r\n this.responsibilityService.getRCDetailsOfFramework(data._id, this.currentCategory._id).subscribe((res: any) => {\r\n this.expandCategory.emit(cloneDeep(res[0]));\r\n this.currentEntity = cloneDeep(res[0].all_entities_name[0].rc_name);\r\n this.libraryReport = cloneDeep(res[0].libraryReport);\r\n this.entities = cloneDeep(res[0].all_entities_name);\r\n this.entities = this.entities.filter((rc: any) => rc._id !== data._id);\r\n this.tableList = cloneDeep(res).slice(1)\r\n this.loader =false;\r\n }, err => {\r\n console.error(err);\r\n this.loader =false;\r\n })\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { cloneDeep } from 'lodash';\r\n@Component({\r\n selector: 'app-users-radio-list',\r\n templateUrl: './users-radio-list.component.html',\r\n styleUrls: ['./users-radio-list.component.less'],\r\n})\r\nexport class UserRadioListComponent implements OnInit, OnChanges {\r\n @Input() usersList = [];\r\n @Input() selectedUsers:any = '';\r\n @Input() userIdKey = '';\r\n @Input() itemNameKey = '';\r\n @Input() itemEmailKey = '';\r\n @Output() saveSelectedList = new EventEmitter();\r\n @Output() closeUsersList = new EventEmitter();\r\n selectedUser:any;\r\n\r\n search = '';\r\n selectedIds: any[] = [];\r\n animation = false;\r\n constructor() { }\r\n\r\n ngOnChanges(): void {\r\n this.selectedUser = this.selectedUsers[0]\r\n }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n }\r\n\r\n selectUser(user: any) {\r\n console.log(\"uuuuu\",user)\r\n this.selectedUser = user\r\n\r\n }\r\n deleteEvent(event: any) {\r\n this.selectedUser = ''\r\n }\r\n save() {\r\n this.saveSelectedList.emit(this.selectedUser);\r\n }\r\n\r\n close() {\r\n this.closeUsersList.emit();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dataType'\r\n})\r\nexport class DataTypePipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: unknown[]): any {\r\n return typeof value;\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-checkpoint-floating-bar',\r\n templateUrl: './checkpoint-floating-bar.component.html',\r\n styleUrls: ['./checkpoint-floating-bar.component.less']\r\n})\r\nexport class CheckpointFloatingBarComponent implements OnInit {\r\n@Input() count = 0;\r\n@Input() pluralText = '';\r\n@Input() singularText = '';\r\n@Output() closeList : EventEmitter<any> = new EventEmitter();\r\n@Output() saveList : EventEmitter<any> = new EventEmitter();\r\n@Input() requiredPoint = 0;\r\n@Input() isPolicyCheckpoint = false;\r\n@Output() requiredPointChange = new EventEmitter();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n next(){\r\n this.saveList.emit();\r\n }\r\n\r\n close(){\r\n this.closeList.emit();\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { SnackBarService } from './snack-bar.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-snack-bar',\r\n templateUrl: './snack-bar.component.html',\r\n styleUrls: ['./snack-bar.component.less'],\r\n})\r\nexport class SnackBarComponent implements OnInit, OnDestroy {\r\n show = false;\r\n message = '--';\r\n icon = '';\r\n snackbarSubscription!: Subscription;\r\n constructor(private snackbarService: SnackBarService) {}\r\n\r\n ngOnInit(): void {\r\n this.snackbarSubscription = this.snackbarService.snackbarState.subscribe((state) => {\r\n if (state?.type) {\r\n this.icon = state.type;\r\n } else {\r\n this.icon = '';\r\n }\r\n this.message = state.message;\r\n this.show = state.show;\r\n this.setAutoClose();\r\n });\r\n }\r\n\r\n setAutoClose(){\r\n setTimeout(() => {\r\n this.show = false;\r\n this.close();\r\n }, 3000);\r\n }\r\n close() {\r\n this.show = false;\r\n this.snackbarService.hide();\r\n }\r\n ngOnDestroy() {\r\n this.snackbarSubscription.unsubscribe();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SnackBarComponent } from './snack-bar.component';\r\n\r\n@NgModule({\r\n declarations: [SnackBarComponent],\r\n imports: [CommonModule],\r\n exports: [SnackBarComponent],\r\n})\r\nexport class SnackBarModule {}\r\n","import { cloneDeep } from 'lodash';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-risk-classification',\r\n templateUrl: './risk-classification.component.html',\r\n styleUrls: ['./risk-classification.component.less', '../../forms.less']\r\n})\r\nexport class RiskClassificationComponent implements OnInit {\r\n constructor() { }\r\n animation = true;\r\n @Input() currentRiskValue : any ;\r\n @Output() saveList = new EventEmitter();\r\n @Output() closeList = new EventEmitter();\r\n riskClassification = [\r\n {name: 'Low', value: 1, class: 'low' },\r\n {name: 'Low-Medium', value: 2 , class: 'low-med'},\r\n {name: 'Medium-High', value: 3, class: 'med-high'},\r\n {name: 'High', value: 4, class: 'high'}\r\n ];\r\n riskIntensityList = [\r\n { name: 'Not Applicable', value: '0' },\r\n { name: 'Low', value: '1' },\r\n { name: 'Medium', value: '2' },\r\n { name: 'High', value: '3' },\r\n ];\r\n identificationList = [\r\n { name: 'Easy to Identify', value: '1' },\r\n { name: 'Intermediate', value: '2' },\r\n { name: 'Difficult', value: '3' },\r\n ];\r\n selectedValues = {\r\n envThreat: '0',\r\n regThreat : '0',\r\n machineThreat: '0',\r\n lifeThreat : '0',\r\n probability : '1',\r\n identification: '1'\r\n };\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 500);\r\n }\r\n generateRiskClass(){\r\n this.currentRiskValue = this.calculateRiskClass(this.getArrayFromObject(this.selectedValues));\r\n }\r\n getArrayFromObject(object: object){\r\n const risk = [];\r\n for (const value of Object.values(object)){\r\n risk.push(parseInt(value, 10)); }\r\n return risk;\r\n }\r\n calculateRiskClass(riskMatrices: number[]): number{\r\n if (riskMatrices.length !== 6 ){return -1 ; }\r\n const impact = riskMatrices[0] * 1 + riskMatrices[1] * 2 + riskMatrices[2] * 2 + riskMatrices[3] * 3; // total impact\r\n const risk = impact * riskMatrices[4] + impact * riskMatrices[5];\r\n console.log(risk);\r\n switch (true) {\r\n case risk <= 9: {\r\n return 1;\r\n }\r\n case risk >= 10 && risk <= 23: {\r\n return 2;\r\n }\r\n case risk >= 24 && risk <= 39: {\r\n return 3;\r\n }\r\n case risk >= 40 && risk <= 144: {\r\n return 4;\r\n }\r\n default:\r\n return 1;\r\n }\r\n }\r\n\r\n save(){\r\n this.saveList.emit({riskClass: this.currentRiskValue, riskMatrix: this.getArrayFromObject(this.selectedValues).join(',')});\r\n }\r\n close(){\r\n this.closeList.emit();\r\n }\r\n}\r\n","import { Component, OnInit, OnChanges, Output, EventEmitter, Input } from '@angular/core';\r\nimport { AuthService } from '../../workflow-services/auth.service';\r\nimport { PolicyService } from '../../workflow-services/policy.service';\r\nimport { ResponsibilityService } from '../../workflow-services/responsibility.service';\r\n\r\n@Component({\r\n selector: 'app-format-and-evidence',\r\n templateUrl: './format-and-evidence.component.html',\r\n styleUrls: ['./format-and-evidence.component.less', '../../forms.less'],\r\n\r\n})\r\nexport class FormatAndEvidenceComponent implements OnInit {\r\n @Output() updateFiles = new EventEmitter();\r\n @Input() mode = '';\r\n @Input() categories: any[] = [];\r\n @Input() organization_id: any = '';\r\n @Input() set formatEvidanceData(value: any) {\r\n if (value) {\r\n this.initializeData(value, 'not ng on init');\r\n }\r\n }\r\n isNewLinkDisabled = false;\r\n isEditDisabled = false;\r\n constructor(\r\n private responsibilityService: ResponsibilityService,\r\n private policyService: PolicyService,\r\n private authService: AuthService\r\n ) { }\r\n\r\n formate: any = {\r\n hasUploadFormate: false,\r\n formateType: 'FILE', // LINK\r\n isEvidenceRequired: false,\r\n links: [],\r\n files: [],\r\n uploadInProgress: {},\r\n };\r\n\r\n newLink = {\r\n link: '',\r\n containsError: false\r\n };\r\n ngOnInit(): void {\r\n if (this.formatEvidanceData) {\r\n this.initializeData(this.formatEvidanceData, 'ng on init');\r\n }\r\n\r\n }\r\n\r\n initializeData(settings: any, type: string) {\r\n this.formate.hasUploadFormate = settings?.formatRequired ?? false;\r\n this.formate.formateType = settings?.formatLinks?.length > 0 ? 'LINK' : 'FILE';\r\n this.formate.isEvidenceRequired = settings?.evidenceRequired ?? false;\r\n this.formate.links = this.arraytoLinkObject(settings?.formatLinks) ?? [];\r\n this.formate.files = settings?.formatFiles ?? [];\r\n }\r\n toggleIsFormateUpload(status: boolean) {\r\n if (status === true) {\r\n this.formate.hasUploadFormate = true;\r\n } else {\r\n this.formate.hasUploadFormate = false;\r\n }\r\n this.emitValue();\r\n }\r\n\r\n toggleIsFormatRequired(status: boolean) {\r\n if (status === true) {\r\n this.formate.isEvidenceRequired = true;\r\n } else {\r\n this.formate.isEvidenceRequired = false;\r\n }\r\n this.emitValue();\r\n }\r\n\r\n toggleAttachmentType(type: string) {\r\n this.formate.formateType = type;\r\n if (type === 'LINK' && this.formate.links.length === 0) {\r\n // TODO\r\n }\r\n this.emitValue();\r\n }\r\n\r\n insertLink(mode: any, index: number = -1) {\r\n // const urlRegex = new RegExp('(https?://)?([\\\\da-z.-]+)\\\\.([a-z.]{2,6})[/\\\\w .-]*/?');\r\n const urlRegex = /(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,})/gi;\r\n if (mode === 'CREATE') {\r\n if (this.newLink.link.length === 0) { this.resetNewLink(); return; }\r\n const isValid = urlRegex.test(this.newLink.link);\r\n if (isValid) {\r\n this.newLink.containsError = false;\r\n this.formate.links.push(this.newLink);\r\n this.resetNewLink();\r\n\r\n } else {\r\n this.newLink.containsError = true;\r\n }\r\n }\r\n else if (mode === 'EDIT') {\r\n if (this.formate.links[index].link.length === 0) {\r\n this.formate.links.splice(index, 1);\r\n this.isEditEnabled();\r\n this.isNewLinkDisabled = false;\r\n this.emitValue(); return;\r\n }\r\n const isValid = urlRegex.test(this.formate.links[index].link);\r\n if (isValid) {\r\n this.formate.links[index].isEditing = false;\r\n this.formate.links[index].containsError = false;\r\n this.formate.links[index].isEditing = false;\r\n this.isNewLinkDisabled = false;\r\n this.isEditEnabled();\r\n } else {\r\n this.formate.links[index].containsError = true;\r\n }\r\n }\r\n this.emitValue();\r\n }\r\n\r\n editLink(index: number) {\r\n this.formate.links[index].isEditing = true;\r\n this.isNewLinkDisabled = true;\r\n this.isEditEnabled();\r\n }\r\n\r\n deleteLink(index: number) {\r\n this.formate.links.splice(index, 1);\r\n this.isEditEnabled();\r\n this.emitValue();\r\n }\r\n\r\n resetNewLink() {\r\n this.newLink = {\r\n link: '',\r\n containsError: false\r\n };\r\n this.emitValue();\r\n }\r\n\r\n onFileDropped(files: any) {\r\n Array.from(files).forEach((file: any) => {\r\n const uid: string = Math.random().toString(36).substring(2, 14);\r\n this.uploadFile(file, uid);\r\n });\r\n }\r\n\r\n uploadFile(file: any, uid: string) {\r\n this.formate.uploadInProgress[uid] = file.name;\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n if (this.mode == 'policy' || this.mode == 'policyReviewer') {\r\n const path = 'o/' + this.organization_id + '/policy/'\r\n this.policyService.fileUploadWorkroom(formData, path).subscribe((data: any) => {\r\n this.formate.files.push({\r\n filepath: path,\r\n file_name: data.org_file,\r\n filename: data.name,\r\n original_filename: data.org_file,\r\n linkSet: '',\r\n });\r\n delete this.formate.uploadInProgress[uid];\r\n this.emitValue();\r\n });\r\n } else {\r\n this.responsibilityService.uploadToNode(formData, 'uploadFormat' + '/').subscribe((data: any) => {\r\n this.formate.files.push({\r\n filepath: 'uploadFormat',\r\n file_name: data.org_file,\r\n filename: data.name,\r\n original_filename: data.org_file,\r\n });\r\n delete this.formate.uploadInProgress[uid];\r\n this.emitValue();\r\n });\r\n }\r\n\r\n }\r\n\r\n deleteAttachment(index: number) {\r\n this.formate.files.splice(index, 1);\r\n this.emitValue();\r\n }\r\n\r\n emitValue() {\r\n if (this.mode == 'policy' || this.mode == 'policyReviewer') {\r\n const payload = {\r\n isFormateUploaded: this.formate.hasUploadFormate,\r\n links: (this.formate.formateType === 'LINK') ? this.getLinksArray(this.formate.links?.length ?[...this.formate.links]:[]) : [],\r\n files: (this.formate.formateType === 'FILE') ? this.formate.files : [],\r\n formateType: this.formate.formateType,\r\n isEvidenceRequired: this.formate.isEvidenceRequired\r\n };\r\n payload.links = payload.links.filter((ele:any)=> ele !== undefined);\r\n\r\n this.updateFiles.emit(payload);\r\n } else {\r\n const payload = {\r\n isFormateUploaded: this.formate.hasUploadFormate,\r\n links: (this.formate.hasUploadFormate && this.formate.formateType === 'LINK') ? this.getLinksArray([...this.formate.links]) : [],\r\n files: (this.formate.hasUploadFormate && this.formate.formateType === 'FILE') ? this.formate.files : [],\r\n formateType: this.formate.formateType,\r\n isEvidenceRequired: this.formate.isEvidenceRequired\r\n };\r\n payload.links = payload.links.filter((ele:any)=> ele !== undefined);\r\n this.updateFiles.emit(payload);\r\n }\r\n\r\n }\r\n getLinksArray(links: any) {\r\n const link = links.map((e: any) => {\r\n if (e.link && !e?.containsError && !e?.isEditing) {\r\n return e.link;\r\n }\r\n });\r\n if(link?.length <= 1 && link[0] === undefined ){\r\n return [];\r\n }else{\r\n return link;\r\n }\r\n\r\n }\r\n\r\n arraytoLinkObject(linksArray: any) {\r\n if (linksArray) {\r\n const links = linksArray.map((e: any) => {\r\n return { link: e, containsError: false, isEditing: false };\r\n });\r\n\r\n return links;\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n isEditEnabled() {\r\n for (const item of this.formate.links) {\r\n if (item.isEditing === true) {\r\n this.isEditDisabled = true;\r\n return;\r\n } else {\r\n this.isEditDisabled = false;\r\n }\r\n }\r\n }\r\n policyLinkSetList = [\r\n 'Policy Charter',\r\n 'Related Policy Documents/Other References',\r\n 'Procedures Linked to this Policy',\r\n 'Implementation Guidelines for this Policy',\r\n 'Training Materials for this Policy'\r\n ]\r\n selectedLinkSetChange(event: any, index: number) {\r\n this.formate.files[index].linkSet = event;\r\n this.emitValue()\r\n }\r\n uploadPolicyAttachments(formData: any) {\r\n\r\n const path = 'o/' + this.organization_id + '/policy/'\r\n this.policyService.fileUploadWorkroom(formData, path).subscribe((data: any) => {\r\n\r\n const payload = {\r\n file_name: data.name,\r\n original_file_name: data.org_file,\r\n path: path,\r\n organisation_id: this.authService.getOrganizationId(),\r\n member_id: this.authService.getMemberId(),\r\n category_id: this.categories,\r\n clap_id: 0,\r\n contract_type: 4,\r\n folder_id: 0,\r\n };\r\n // this.policyService.saveUploadedFiles(payload).subscribe((data: any) => {\r\n // this.latestUploaded = data.encrypted_id;\r\n // console.log(data);\r\n // let all_response = this.policyService.policyCategoryList.getValue() as any;\r\n // let new_response = data;\r\n // if (all_response.attachments == undefined) {\r\n // all_response.push(new_response);\r\n // } else {\r\n // all_response.attachments.push(new_response);\r\n // }\r\n // this.policyService.policyCategoryList.next(all_response);\r\n // this.policyService.isUploaded = false;\r\n // this.isUploading = false;\r\n // if (this.entity_type == 'survey') {\r\n // this.fetchFile(true, this.entity_data.survey_id, this.currentFolderId);\r\n // } else if (this.entity_type == 'contracts') {\r\n // this.fetchFile(true, this.entity_data.contract_id, this.currentFolderId);\r\n // } else {\r\n // this.fetchFile(true, this.entity_data.policy_id ? this.entity_data.policy_id : this.entity_data.contract_id, this.currentFolderId);\r\n // }\r\n\r\n // }, error => {\r\n\r\n // });\r\n });\r\n }\r\n}\r\n","import {\r\n Directive,\r\n Output,\r\n Input,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDragDrop]'\r\n})\r\nexport class DragDropDirective {\r\n @HostBinding('class.active') fileOver !: boolean;\r\n @Output() fileDropped = new EventEmitter<any>();\r\n\r\n // Dragover listener\r\n @HostListener('dragover', ['$event']) onDragOver(evt:any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = true;\r\n }\r\n\r\n // Dragleave listener\r\n @HostListener('dragleave', ['$event']) public onDragLeave(evt:any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n }\r\n\r\n // Drop listener\r\n @HostListener('drop', ['$event']) public ondrop(evt:any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n let files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(files);\r\n }\r\n }\r\n}\r\n\r\n","\r\nimport { AfterViewInit, Directive, ElementRef, Input, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appAutofocus]'\r\n})\r\n\r\nexport class AutofocusDirective implements AfterViewInit {\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n // Otherwise Angular throws error: Expression has changed after it was checked.\r\n window.setTimeout(() => {\r\n this.el.nativeElement.focus();\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\r\n\r\n@Component({\r\n selector: 'app-review-frequency',\r\n templateUrl: './review-frequency.component.html',\r\n styleUrls: ['./review-frequency.component.less']\r\n})\r\nexport class ReviewFrequencyComponent implements OnInit {\r\n @Input() reviewCompleteDays: any;\r\n @Input() reviewNOtCompletedDays: any;\r\n @Output() closeReviewFrequency = new EventEmitter();\r\n @Output() backToUserList = new EventEmitter();\r\n @Output() saveReviewFrequency = new EventEmitter()\r\n\r\n\r\n constructor(private snackbar: SnackBarService,) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n close() {\r\n this.backToUserList.emit();\r\n\r\n\r\n }\r\n save() {\r\n this.saveReviewFrequency.emit({ completeDays: this.reviewCompleteDays, notCompleted: this.reviewNOtCompletedDays })\r\n }\r\n onValueChange(){\r\n if(this.reviewCompleteDays<1){\r\n this.snackbar.show('Please enter a value greater than 0.');\r\n\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appScrollInView]'\r\n})\r\nexport class ScrollInViewDirective implements OnChanges {\r\n@Input() appScrollInView = false;\r\n constructor(private el: ElementRef) {\r\n }\r\nngOnChanges(change:SimpleChanges){\r\n if(change?.appScrollInView && change?.appScrollInView?.currentValue === true){\r\n this.scroll();\r\n }\r\n}\r\n ngAfterViewInit() {\r\n // Otherwise Angular throws error: Expression has changed after it was checked.\r\n this.scroll();\r\n }\r\n\r\n scroll(){\r\n if(this.appScrollInView){\r\n window.setTimeout(() => {\r\n this.el.nativeElement.scrollIntoView({behavior: 'smooth', block: 'center'});\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, EventEmitter, Output, HostListener } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-smiley-dialog-inline',\r\n templateUrl: './smiley-dialog-inline.component.html',\r\n styleUrls: ['./smiley-dialog-inline.component.less'],\r\n})\r\nexport class SmileyDialogInlineComponent implements OnInit {\r\n @Input() message!: string;\r\n @Input() actionButtons!: any[];\r\n @Output() action: EventEmitter<string> = new EventEmitter();\r\n @Output() closeSmiley: EventEmitter<any> = new EventEmitter();\r\n\r\n @HostListener('window:keyup', ['$event']) handleKeyboardEvent(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n this.smileyCloseEmitter({});\r\n }\r\n }\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n setTimeout(()=>{\r\n this.smileyCloseEmitter();\r\n },3000)\r\n }\r\n\r\n actionEmitter(event: any) {\r\n this.action.emit(event?.id);\r\n }\r\n\r\n smileyCloseEmitter(event?: any) {\r\n this.closeSmiley.emit();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SmileyDialogInlineComponent } from './smiley-dialog-inline.component';\r\n\r\n@NgModule({\r\n declarations: [SmileyDialogInlineComponent],\r\n imports: [CommonModule],\r\n\r\n exports: [SmileyDialogInlineComponent],\r\n})\r\nexport class SmileyDialogInlineModule {}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n constructor(private elementRef: ElementRef) {}\r\n @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\r\n\r\n @HostListener('document:click', ['$event.target']) onMouseEnter(targetElement: any) {\r\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.clickOutside.emit(null);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ClickOutsideDirective],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n ClickOutsideDirective\r\n ]\r\n})\r\nexport class ClickOutsideModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'shortMerge',\r\n pure:false\r\n})\r\nexport class ShortMergePipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n if(args[0] && args[0].length> 0){\r\n let primaryEntries = value.filter((e:any)=> args[0].includes(e?.member_id));\r\n let secondaryEntries = value.filter((e:any)=> !args[0].includes(e?.member_id));\r\n return [...primaryEntries,...secondaryEntries];\r\n }else{\r\n return value;\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'spaceBreaker'\r\n})\r\nexport class SpaceBreakerPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n\r\n if(value.length){\r\n return value.replace(/ /g, '').replace(/\\<br\\s*[\\/]?>/gi, '').trim();\r\n }else{\r\n return value;\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'formatHtml'\r\n})\r\nexport class FormatHtmlPipe implements PipeTransform {\r\n\r\n constructor(private sanitized: DomSanitizer) {}\r\n transform(value: string) {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'withinData'\r\n})\r\nexport class WithinDataPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n if(value.parent_items_name) {\r\n return `<br><span class='within-row'><span class='within'>WITHIN</span> <span class='within-value'>${value.parent_items_name}</span></span>`\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PopoverHoverService {\r\n positionX!: number;\r\n positionY!: number;\r\n popoverHeight: any;\r\n popoverWidth: any;\r\n elementPosition: any;\r\n elementDirection: any;\r\n constructor() { }\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { PopoverHoverService } from './popover-hover.service';\r\n\r\n@Component({\r\n selector: 'popover-hover',\r\n templateUrl: './popover-hover.component.html',\r\n styleUrls: ['./popover-hover.component.less']\r\n})\r\nexport class PopoverHoverComponent implements OnInit {\r\n\r\n popoverContainer = false;\r\n @ViewChild('popoverRatio') popoverRatio!: ElementRef;\r\n @ViewChild('popoverContent') popoverContent!: ElementRef;\r\n constructor(public popoverService: PopoverHoverService) { }\r\n showPopover = false;\r\n leftValue: any;\r\n topValue: any;\r\n popoverHeight: any;\r\n popoverWidth: any;\r\n positionX!: number;\r\n positionY!: number;\r\n popoverPosition: string | any;\r\n ngOnInit(): void { }\r\n popover() {\r\n this.popoverContainer = false;\r\n this.popoverContainer = true;\r\n setTimeout(() => {\r\n this.getPosition();\r\n this.showPopover = true;\r\n }, 10);\r\n return false;\r\n }\r\n closePopover() {\r\n this.popoverContainer = false;\r\n this.showPopover = false;\r\n }\r\n clickedPopover() {\r\n this.getPosition();\r\n }\r\n getPosition() {\r\n const elementPosition = this.popoverService.elementPosition;\r\n this.popoverHeight = this.popoverRatio.nativeElement.offsetHeight;\r\n this.popoverWidth = this.popoverRatio.nativeElement.offsetWidth;\r\n if (this.popoverService.elementDirection === 'left') {\r\n this.leftValue = elementPosition.left;\r\n if (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight - 220) {\r\n this.topValue = elementPosition.top - this.popoverHeight;\r\n this.popoverPosition = 'top';\r\n } else {\r\n this.topValue = elementPosition.top + elementPosition.height;\r\n this.popoverPosition = 'bottom';\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'right') {\r\n this.leftValue = elementPosition.left + elementPosition.width - this.popoverWidth;\r\n if (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight - 220) {\r\n this.topValue = elementPosition.top - this.popoverHeight;\r\n this.popoverPosition = 'top';\r\n } else {\r\n this.topValue = elementPosition.top + elementPosition.height;\r\n this.popoverPosition = 'bottom';\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'top') {\r\n this.leftValue = elementPosition.left + elementPosition.width;\r\n if (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight - 220) {\r\n this.topValue = elementPosition.top - this.popoverHeight;\r\n this.popoverPosition = 'top';\r\n } else {\r\n this.topValue = elementPosition.top - this.popoverHeight;\r\n this.popoverPosition = 'bottom';\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'bottom') {\r\n this.leftValue = elementPosition.left + elementPosition.width;\r\n if (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight - 220) {\r\n this.topValue = elementPosition.top - this.popoverHeight;\r\n this.popoverPosition = 'top';\r\n } else {\r\n this.topValue = elementPosition.top + elementPosition.height;\r\n this.popoverPosition = 'bottom';\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'self-position') {\r\n this.leftValue = elementPosition.left + elementPosition.width / 2 - this.popoverWidth / 2;\r\n this.topValue = elementPosition.top - 15;\r\n }\r\n if (this.popoverService.elementDirection === 'top-center') {\r\n this.leftValue = elementPosition.left + elementPosition.width / 2 - this.popoverWidth / 2;\r\n if (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight) {\r\n this.topValue = elementPosition.top + elementPosition.height;\r\n } else {\r\n this.topValue = elementPosition.top - this.popoverHeight;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'center') {\r\n this.leftValue = elementPosition.left + elementPosition.width / 2 - this.popoverWidth / 2;\r\n this.topValue = elementPosition.top + elementPosition.height;\r\n }\r\n this.positionX = this.leftValue;\r\n this.positionY = this.topValue;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { PopoverHoverService } from './popover-hover.service';\r\n\r\n@Directive({\r\n selector: '[libPopoverHover]'\r\n})\r\nexport class PopoverHoverDirective {\r\n @Input() placement!: string;\r\n leftValue: any;\r\n topValue: any;\r\n constructor(private elRef: ElementRef, private popoverService: PopoverHoverService) { }\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\r\n this.popoverService.elementDirection = this.placement;\r\n }\r\n @HostListener('mouseover') onMouseOver() {\r\n this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\r\n this.popoverService.elementDirection = this.placement;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PopoverHoverComponent } from './popover-hover.component';\r\nimport { PopoverHoverDirective } from './popover-hover.directive';\r\nimport { PopoverHoverService } from './popover-hover.service';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PopoverHoverComponent,\r\n PopoverHoverDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n PopoverHoverComponent,\r\n PopoverHoverDirective\r\n ],\r\n providers: [PopoverHoverService],\r\n})\r\nexport class PopoverHoverModule { }\r\n","import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-responsibility-risk-selector',\r\n templateUrl: './responsibility-risk-selector.component.html',\r\n styleUrls: ['./responsibility-risk-selector.component.less']\r\n})\r\nexport class ResponsibilityRiskSelectorComponent implements OnInit {\r\n animation = true;\r\n activeTab = 'RESPONSIBILITY';\r\n controlIdKey = 'itemControlId';\r\n itemDisplayKey = 'itemControlName';\r\n identifierKey ='itemId';\r\n\r\n @Input() set activeEntity(value:any){\r\n if(value){\r\n this.activeTab = value;\r\n }\r\n }\r\n @Input() listItems = [];\r\n @Input() selectedItems:any = [];\r\n @Input() loading = false;\r\n @Output() fetchList = new EventEmitter();\r\n @Output() closeList = new EventEmitter();\r\n @Output() saveList = new EventEmitter();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n this.selectedItems = this.arrayToId(this.selectedItems, this.identifierKey);\r\n }\r\n\r\n changeTab(type: string){\r\n if(this.loading === true){\r\n return;\r\n }\r\n this.activeTab = type;\r\n this.fetchList.emit(type);\r\n this.listItems = [];\r\n }\r\n selectItem(item: any) {\r\n this.selectedItems = [];\r\n this.selectedItems.push(item);\r\n }\r\n deleteItem(item: any) {\r\n this.selectedItems = [];\r\n // this.rerenderList();\r\n }\r\n\r\n\r\n save() {\r\n this.saveList.emit(this.selectedItems);\r\n }\r\n\r\n close() {\r\n this.closeList.emit();\r\n }\r\n\r\n\r\n arrayToId(array: any, identifierKey: any) {\r\n return array.map((a: any) => a[identifierKey]);\r\n }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appConditionalFocus]'\r\n})\r\nexport class ConditionalFocusDirective implements OnChanges {\r\n @Input() appConditionalFocus = false;\r\n constructor(private el: ElementRef) { }\r\n ngOnChanges(change:SimpleChanges){\r\n if(change?.appConditionalFocus && change?.appConditionalFocus?.currentValue === true){\r\n this.focus();\r\n }\r\n }\r\n ngAfterViewInit() {\r\n // Otherwise Angular throws error: Expression has changed after it was checked.\r\n this.focus();\r\n\r\n}\r\n\r\nfocus(){\r\n if(this.appConditionalFocus){\r\n window.setTimeout(() => {\r\n this.el.nativeElement.focus();\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-list-loader',\r\n templateUrl: './list-loader.component.html',\r\n styleUrls: ['./list-loader.component.less']\r\n})\r\nexport class ListLoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'arrayFilter'\r\n})\r\nexport class ArrayFilterPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n return value.filter((item:any)=>{\r\n return item.itemType === args[0]\r\n })\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { auditCategoryModel } from './audit-category.model';\r\n\r\n@Component({\r\n selector: 'app-audit-category-list',\r\n templateUrl: './audit-category-list.component.html',\r\n styleUrls: ['./audit-category-list.component.less'],\r\n})\r\nexport class AuditCategoryListComponent implements OnInit, OnChanges {\r\n animation = false;\r\n searchInput: string = '';\r\n\r\n @Input() selectedData: any;\r\n @Input() selectedIndex: number = -1;\r\n @Input() auditCategory!: Array<auditCategoryModel>;\r\n\r\n \r\n @Output() closeList: EventEmitter<any> = new EventEmitter();\r\n @Output() saveSelectedList: EventEmitter<any> = new EventEmitter();\r\n \r\n constructor() { }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n\r\n if(changes.selectedData?.currentValue) {\r\n this.populateSelectedData();\r\n }\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n }\r\n\r\n onCategorySelection(index: number) {\r\n console.log(index)\r\n this.selectedIndex = index;\r\n }\r\n save() {\r\n this.saveSelectedList.emit(this.auditCategory[this.selectedIndex])\r\n }\r\n\r\n deleteEvent(event: any) {\r\n this.selectedIndex = -1;\r\n }\r\n\r\n close() {\r\n this.closeList.emit(false)\r\n }\r\n\r\n populateSelectedData() {\r\n this.selectedIndex = this.auditCategory.findIndex(category => category.category_id === this.selectedData.category_id)\r\n }\r\n\r\n}\r\n","import { PlatformLocation } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\r\nimport { PolicyService } from '../../workflow-services/policy.service';\r\n@Component({\r\n selector: 'lib-document-section',\r\n templateUrl: './document-section.component.html',\r\n styleUrls: ['./document-section.component.less']\r\n})\r\nexport class DocumentSectionComponent implements OnInit {\r\n private fileToUpload: any;\r\n filename = '';\r\n fileType = '';\r\n pdf = false;\r\n draft = false;\r\n doc = false;\r\n isUploading = false;\r\n isLoader = false;\r\n selectedDocumentType = ''\r\n @Input() policyId: any = ''\r\n @Input() policyName: any = ''\r\n @Input() organization_id: any = '';\r\n @Input() member_obj_id: any;\r\n @Input() userInfo: any;\r\n @Output() disconnectRefresh = new EventEmitter();\r\n @Output() editPolicy = new EventEmitter();\r\n\r\n\r\n baseURL = ''\r\n\r\n\r\n constructor(private snackBar: SnackBarService,\r\n private policyService: PolicyService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n platformLocation: PlatformLocation,\r\n\r\n ) {\r\n this.baseURL = (platformLocation as any).location.origin;\r\n if (this.baseURL == \"http://localhost:4200\") {\r\n this.baseURL = 'https://dev.v-comply.com'\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n const data= JSON.parse(localStorage.getItem('lastFileNameAndType') ?? '\"{}\"');\r\n if((data.name!==null && data.name!==undefined)&& (data.type!==null && data.type!==undefined)\r\n &&(data.policyId==this.policyId)){\r\n this.selectedDocumentType = data.type;\r\n this.filename = data.name;\r\n localStorage.removeItem('lastFileNameAndType')\r\n }\r\n }\r\n\r\n handleFileInput(files: FileList): void {\r\n this.fileToUpload = files[0];\r\n this.filename = this.fileToUpload.name;\r\n this.fileType = this.fileToUpload.name.slice(this.fileToUpload.name.lastIndexOf('.') + 1, this.fileToUpload.name.length).toLowerCase();\r\n if (this.fileType === 'pdf') {\r\n this.uploadFile({ file: this.fileToUpload, fileType: this.fileType });\r\n } else if (this.fileType === 'docx') {\r\n this.uploadFile({ file: this.fileToUpload, fileType: this.fileType });\r\n } else {\r\n this.snackBar.show('Please upload a valid file');\r\n }\r\n }\r\n showPdfBlock =true;\r\n showDocxBlock =true;\r\n\r\n uploadFile(event: any) {\r\n this.isUploading = true;\r\n if (event.fileType === 'docx') {\r\n this.changeDocType('docx');\r\n this.uploadDocxfile(event);\r\n } else if (event.fileType === 'pdf') {\r\n this.changeDocType('pdf');\r\n this.showPdfBlock=false;\r\n setTimeout(() => {\r\n this.showPdfBlock=true;\r\n }, 10);\r\n const uploadData = new FormData();\r\n uploadData.append('file', event.file);\r\n const path = 'o/' + this.organization_id + '/policy/'\r\n this.policyService.uploadFile(uploadData, this.policyId, path).subscribe(res => {\r\n if (res) {\r\n this.isUploading = false;\r\n }\r\n }, err => {\r\n this.isUploading = false;\r\n this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?');\r\n });\r\n }\r\n }\r\n\r\n uploadDocxfile(event: any) {\r\n this.showDocxBlock=false;\r\n setTimeout(() => {\r\n this.showDocxBlock=true;\r\n }, 10);\r\n const uploadData = new FormData();\r\n uploadData.append('file', event.file);\r\n const path = 'o/' + this.organization_id + '/policy/'\r\n this.policyService.uploadDocxFile(uploadData, this.policyId, path).subscribe(res => {\r\n if (res) {\r\n this.isUploading = false;\r\n }\r\n }, err => {\r\n this.isUploading = false;\r\n\r\n this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?');\r\n });\r\n }\r\n\r\n changeDocType(event:any){\r\n this.selectedDocumentType = event;\r\n }\r\n\r\n editor(event: string) {\r\n this.disconnectRefresh.emit(false);\r\n\r\n if (event === 'draft') {\r\n // If it is a draft go directly to the editor\r\n const uname = this.userInfo ? this.userInfo.name : '';\r\n const uid = this.member_obj_id;\r\n const name = this.policyName.trim();\r\n const id = this.policyId;\r\n this.isLoader = true;\r\n this.policyService.savePolicyDetails(uname, uid, id, name, '', 0).subscribe(res => {\r\n if (res) {\r\n this.isLoader = false;\r\n window.location.href = this.baseURL + '/all/policy/edit-policy?id=' + this.policyId\r\n\r\n }\r\n }, err => {\r\n this.isLoader = false;\r\n this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?');\r\n });\r\n\r\n } else if (event === 'docx') {\r\n\r\n window.location.href = this.baseURL + '/all/policy/edit-policy?id=' + this.policyId\r\n } else if (event === 'pdf') {\r\n // If it is a pdf send to the workroom\r\n window.location.href = this.baseURL + '/all/policy/workroom?id=' + this.policyId\r\n }\r\n localStorage.setItem('_dId', this.policyId);\r\n }\r\n editPolicyEmit(){\r\n localStorage.setItem('lastFileNameAndType', JSON.stringify({type:this.selectedDocumentType,name:this.filename, policyId: this.policyId}));\r\n this.editPolicy.emit()\r\n }\r\n}","import { HttpClient, HttpBackend, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { retry } from 'rxjs/operators';\r\nimport { AuthService } from './auth.service';\r\nimport { Configurations } from '../configurations';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssessmentService {\r\n env !: any;\r\n baseValue: any = {\r\n currentPage: 0,\r\n data: [],\r\n end_value: 0,\r\n start_value: 0,\r\n totalPage: 0,\r\n totalRecords: 0\r\n }\r\n\r\n constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\r\n if (config) {\r\n this.env = config.envConfig;\r\n }\r\n }\r\n\r\n updateAssessment(id: string, payload: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .post<any>(this.env.assessmentEnpoint + 'assessment/update&id=' + id, payload, { headers });\r\n\r\n }\r\n\r\n addAssessment(payload: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n console.log(\"headers\", headers)\r\n return this.http\r\n .post<any>(this.env.assessmentEnpoint + 'assessment/create', payload, { headers });\r\n\r\n }\r\n\r\n private categories: BehaviorSubject<any> = new BehaviorSubject<any>({});\r\n categoriesListData$: Observable<any> = this.categories.asObservable();\r\n\r\n private categoriesLoader: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n categoriesLoading$: Observable<boolean> = this.categoriesLoader.asObservable();\r\n\r\n fetchCategory(payload: any) {\r\n this.categoriesLoader.next(true);\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n this.http.post(this.env.assessmentEnpoint + 'category/list', payload, { headers }).subscribe({\r\n next: (res: any) => { this.categories.next(res); this.categoriesLoader.next(false); },\r\n error: (err: any) => { console.log('asdas', this.baseValue); this.categories.next(this.baseValue); this.categoriesLoader.next(false); },\r\n })\r\n }\r\n resetCategory() {\r\n this.categories.next(this.baseValue)\r\n }\r\n\r\n getAssessmentDetails(id: string) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.assessmentEnpoint + 'assessment/getAssessmentInEdit&id=' + id, {}, { headers })\r\n }\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', token: this.getAuthorizationToken() })\r\n };\r\n\r\n getAuthorizationToken() {\r\n const TOKEN = localStorage.getItem('currentUser');\r\n let currentUser;\r\n TOKEN !== null ? (currentUser = JSON.parse(TOKEN)) : (currentUser = {});\r\n return currentUser.token;\r\n }\r\n\r\n createAssessment(payload: any) {\r\n return this.http.post(this.env.assessmentEnpoint + 'assessment/create', payload, this.httpOptions)\r\n }\r\n\r\n saveAssessmentDetails(id: any, payload: any) {\r\n \r\n return this.http.post(this.env.assessmentEnpoint + 'assessment/update&id=' + id, payload, this.httpOptions)\r\n }\r\n\r\n\r\n downloadTemplate(){\r\n console.log(\"env\",this.env)\r\n console.log(\"env val\",this.env.assessmentEnpoint)\r\n return this.http.get<any>(this.env.assessmentEnpoint + 'template/assessment',this.httpOptions);\r\n }\r\n\r\n downLoadFile(data: any, type: string, filename: string) {\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n const blob = new Blob([this.base64ToArrayBuffer(data)], { type });\r\n window.navigator.msSaveOrOpenBlob(blob, filename);\r\n } else {\r\n const url = 'data:' + type.toString() + ';base64,' + data;\r\n const a = document.createElement('a');\r\n a.setAttribute('href', url);\r\n a.setAttribute('download', filename);\r\n a.style.visibility = 'hidden';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n return 'DOWNLOADED'\r\n }\r\n\r\n base64ToArrayBuffer(base64: any) {\r\n const binaryString = window.atob(base64);\r\n const len = binaryString.length;\r\n const bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; i++) {\r\n bytes[i] = binaryString.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n\r\n}\r\n","\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { Component, EventEmitter, Input, OnInit, Optional, Output } from '@angular/core';\r\n\r\nimport { EditorConfig } from 'vcomply-editor';\r\nimport { Configurations } from '../configurations';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\nimport { AssessmentService } from '../workflow-services/assessment.service';\r\nimport { AuthService } from '../workflow-services/auth.service';\r\nimport { UiKitService } from '../workflow-services/ui-kit.service';\r\n\r\n@Component({\r\n selector: 'app-workflow-assessment',\r\n templateUrl: './workflow-assessment.component.html',\r\n styleUrls: ['./workflow-assessment.component.less', '../forms.less']\r\n})\r\nexport class WorkflowAssessmentComponent implements OnInit {\r\n activeSelector: any = '';\r\n submitted = false;\r\n loader = false;\r\n showSmiley = false;\r\n @Input() mode = 'EDIT';\r\n @Input() assessmentId = '';\r\n @Input() openedFrom = '';\r\n @Output() disconnectRefresh = new EventEmitter();\r\n sideSelectorElements: any = ['category'];\r\n actionButtons = [\r\n // { buttonText: 'Add More Assessments', class: 'white-btn', id: 'addMore' },\r\n { buttonText: 'Go to assessment workroom', class: 'blue-btn', id: 'viewAssessment' },\r\n ];\r\n assessmentTypeChangeAllowed = false;\r\n timezone!: string;\r\n @Output() pickerChanged = new EventEmitter();\r\n @Output() closeWorkflow = new EventEmitter();\r\n assessmentForm: any = {\r\n assessmentType: 'compliance',\r\n name: '',\r\n description: '',\r\n category: [],\r\n customTags: [],\r\n };\r\n assessmentData: any;\r\n organizationId = 0;\r\n constructor(\r\n public assessmentService: AssessmentService,\r\n private authService: AuthService,\r\n private uiKitService: UiKitService,\r\n private snackBar: SnackBarService,\r\n @Optional() config?: Configurations\r\n ) {\r\n this.timezone = this.authService.getUserTimeZone();\r\n }\r\n selectorConfig = {\r\n ASSESSMENT_CATGORY: {\r\n panelTitle: 'Select an Assessment Category',\r\n entitySingular: 'Category selected.',\r\n entityPlural: 'Categories selected.',\r\n displayKey: 'category_name',\r\n identifierKey: 'id',\r\n parentKey: 'category_parents',\r\n parentDisplayKey: 'parent_tree',\r\n searchPlaceholder:'Search an assessment category.',\r\n noDataText:'No assessment categories found.'\r\n },\r\n }\r\n ngOnInit(): void {\r\n //this.loader = true;\r\n if (this.mode === 'CREATE') {\r\n this.organizationId = this.authService.getOrganizationId();\r\n }\r\n //this.setCategory({ searchKey: '', page: 1 });\r\n if (this.mode === 'EDIT') {\r\n this.getAssessmentDetails();\r\n }\r\n }\r\n\r\n getAssessmentDetails() {\r\n\r\n this.loader = true;\r\n this.assessmentService.getAssessmentDetails(this.assessmentId).subscribe({\r\n next: (res: any) => {\r\n this.assessmentForm.name = res?.assessment_name ?? '';\r\n this.assessmentForm.description = res?.description ?? '';\r\n this.assessmentForm.assessmentType = res?.assessment_type ?? 'compliance';\r\n this.assessmentForm.category = res.category_arr.map((ele: any) => { return { id: ele?._id, category_name: ele?.category_name } })\r\n this.loader = false;\r\n },\r\n error: (err: any) => {\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n this.loader = false;\r\n }\r\n })\r\n }\r\n\r\n\r\n //This function is responsible for fetching the list of categories\r\n setCategory(evt: any) {\r\n this.assessmentService.fetchCategory({\r\n search_title: evt.searchKey,\r\n page_no: evt.page\r\n });\r\n }\r\n\r\n activateSelector(type: any, event: boolean) {\r\n if (type === 'category') {\r\n this.setCategory({ searchKey: '', page: 1 });\r\n }\r\n this.activeSelector = event ? type : '';\r\n if (this.sideSelectorElements.includes(type)) {\r\n this.pickerChanged.emit(event);\r\n }\r\n }\r\n\r\n activeDeselector() {\r\n this.activeSelector = '';\r\n this.pickerChanged.emit(false);\r\n }\r\n\r\nnext(type:string,payload:any){\r\n switch(type){\r\n case 'CATEGORY':{\r\n this.activeDeselector();\r\n this.assessmentForm.category = payload;\r\n if( this.assessmentForm.category?.length > 1){\r\n this.assessmentForm.category = this.assessmentForm.category.filter((ele:any) => ele?.category_name != 'uncategorized')\r\n }\r\n }\r\n }\r\n}\r\n\r\n remove(type: any, event: any) {\r\n switch (type) {\r\n case 'category':\r\n this.assessmentForm.category = this.assessmentForm.category.filter((ele: any) => ele?.id !== event?.id)\r\n }\r\n\r\n }\r\n\r\n description: EditorConfig = {\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Add a description',\r\n };\r\n\r\n changeAssessment(type: string) {\r\n this.assessmentForm = { ...this.assessmentForm, ...{ riskType: type } }\r\n }\r\n closeSmiley(evt: any) {\r\n this.closeWorkflow.emit({ evt: this.assessmentId, confirm: false });\r\n }\r\n\r\n action(evt: any) {\r\n if (evt === 'viewAssessment') {\r\n this.disconnectRefresh.emit(false);\r\n window.location.href = `https://${window.location.hostname}/assessment/assessment-workroom/?id=${this.assessmentId}`\r\n }\r\n }\r\n\r\n\r\n\r\n checkDescription() {\r\n if (this.assessmentForm.description == '<br>') {\r\n this.assessmentForm.description = '';\r\n }\r\n }\r\n\r\n submitAssessment() {\r\n this.submitted = true;\r\n const valid = this.validateAssessment();\r\n if (!valid) {\r\n return false;\r\n } else {\r\n this.createAssessment(this.assessmentForm);\r\n }\r\n }\r\n\r\n validateAssessment() {\r\n // console.log(\"val\",this.assessmentForm)\r\n this.submitted = true;\r\n if (!this.assessmentForm.name\r\n || (this.assessmentForm.category.length == 0)\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n createAssessment(assessmentForm: any) {\r\n this.loader = true;\r\n this.uiKitService.isLoader = false;\r\n\r\n const payload = {\r\n assessment_name: assessmentForm.name,\r\n description: assessmentForm.description,\r\n assessment_type: assessmentForm.assessmentType,\r\n category_arr: this.assessmentForm.category.map((ele: any) => ele.id),\r\n approval_workflow_arr: {\r\n \"test\": \"test\"\r\n },\r\n approval_required: true,\r\n source_page: \"compliance\"\r\n }\r\n console.log(\"payload\", payload)\r\n if (this.mode == 'CREATE') {\r\n this.assessmentService.addAssessment(payload).subscribe((res: any) => {\r\n this.disconnectRefresh.emit(false);\r\n this.assessmentId = res?._id;\r\n window.location.href = `https://${window.location.hostname}/assessment/create/${res?._id}`\r\n this.loader = false;\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n this.loader = false;\r\n this.uiKitService.isLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n }\r\n );\r\n }\r\n else if (this.mode === 'EDIT') {\r\n this.assessmentService.updateAssessment(this.assessmentId, payload).subscribe({\r\n next: (res: any) => {\r\n this.loader = false;\r\n this.showSmiley = true;\r\n },\r\n error: (err: any) => {\r\n if (err?.error.message.startsWith('No changes')) {\r\n this.loader = false;\r\n this.showSmiley = true;\r\n } else {\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?');\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport * as XLSX from 'xlsx';\r\nimport { AuthService } from '../../workflow-services/auth.service';\r\nimport { AssessmentService } from '../../workflow-services/assessment.service';\r\nimport { CreateAssessmentContainerComponent } from '../../sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component';\r\n\r\ntype AOA = any[][];\r\nconst smileyActions = { IMPORT_MORE: \"IMPORT_MORE\", VIEW_ASSESSMENTS: \"VIEW_ASSESSMENTS\" }\r\n\r\n@Component({\r\n selector: 'app-import-an-assessment',\r\n templateUrl: './import-an-assessment.component.html',\r\n styleUrls: ['./import-an-assessment.component.less', '../../forms.less'],\r\n})\r\n\r\nexport class ImportAnAssessmentComponent {\r\n @ViewChild('editor', { static: false }) editorCont!: CreateAssessmentContainerComponent;\r\n @Output() closeWorkflow = new EventEmitter();\r\n @Output() disconnectRefresh = new EventEmitter();\r\n isShowLoader: boolean = false;\r\n isWrongFormat = false;\r\n fileName: any;\r\n data: any;\r\n uploadedFiles: any = [];\r\n fileResponse: any = [];\r\n fileValue: any;\r\n organizationId = 0;\r\n errorMessage = \"invalid file error\"\r\n downloadStatus: string = 'NOT_DOWNLOADING';\r\n downloadPercent = 0;\r\n smileyMessageAction = `You're All Set!`;\r\n actionButtons = [\r\n { buttonText: 'Import More Assessments', class: 'white-btn', id: smileyActions.IMPORT_MORE },\r\n { buttonText: 'View Assessments', class: 'blue-btn', id: smileyActions.VIEW_ASSESSMENTS },\r\n ];\r\n showSmiley = false;\r\n assessmentData !: any;\r\n sheetData !: any;\r\n convertedData: any;\r\n isUploaded: boolean = false;\r\n categoryData !: any;\r\n\r\n setIsUploaded(isUploaded: boolean) {\r\n this.isUploaded = isUploaded;\r\n this.auth.previewPanel.next(isUploaded);\r\n if (!isUploaded) {\r\n const closeBtn = document.getElementById(\"close-workflow-engine-btn\")\r\n if (closeBtn) closeBtn.style.display = \"block\";\r\n this.convertedData = {};\r\n }\r\n }\r\n\r\n constructor(\r\n private auth: AuthService,\r\n public assessmentService: AssessmentService,\r\n ) { }\r\n\r\n closeSmiley(event: any) {\r\n this.showSmiley = false;\r\n this.closeWorkflow.emit({ evt: this.assessmentData, confirm: false });\r\n }\r\n\r\n downloadTemplate() {\r\n this.downloadStatus = 'DOWNLOADING';\r\n this.downloadPercent = 0;\r\n const downloadDate = new Date().toDateString().split(' ');\r\n const fileName = `Import an Assessment-${downloadDate[2]}-${downloadDate[1]}-${downloadDate[3]}.xlsx`;\r\n\r\n this.assessmentService.downloadTemplate().subscribe(\r\n {\r\n next: (data: any) => {\r\n setTimeout(() => {\r\n this.downloadStatus = this.assessmentService.downLoadFile(data, 'application/xlsx', fileName);\r\n }, 1500);\r\n },\r\n error: () => { this.downloadStatus = 'DOWNLOADED'; }\r\n }\r\n\r\n );\r\n }\r\n\r\n triggerBrowseFile() {\r\n const getFile = document.getElementById('iaa-file-input');\r\n if (getFile) {\r\n getFile.click();\r\n\r\n }\r\n }\r\n\r\n // handle upload file area\r\n uploadFile(evt: any) {\r\n const target: DataTransfer = evt.target as DataTransfer;\r\n const reader: FileReader = new FileReader();\r\n reader.onload = (e: any) => {\r\n const bstr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\r\n const wsname: string = wb.SheetNames[0];\r\n const wsname1: string = wb.SheetNames[1];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n const tempData: XLSX.WorkSheet = wb.Sheets[wsname1];\r\n this.categoryData = XLSX.utils.sheet_to_json(tempData, {\r\n header: 1,\r\n }) as AOA;\r\n this.sheetData = XLSX.utils.sheet_to_json(ws, {\r\n header: 1,\r\n }) as AOA;\r\n\r\n this.generateCategoryList(this.categoryData);\r\n\r\n this.assessmentData = this.sheetData.filter((dataElement: any) => dataElement.length > 0);\r\n\r\n this.isWrongFormat = false;\r\n this.errorMessage = '';\r\n console.log(\"Imp\", this.checkFormat(this.assessmentData))\r\n if (!this.checkFormat(this.assessmentData)) {\r\n const closeBtn = document.getElementById(\"close-workflow-engine-btn\");\r\n if (closeBtn) closeBtn.style.display = \"none\";\r\n\r\n this.generateEditorPayload(this.assessmentData);\r\n this.auth.previewPanel.next(true);\r\n this.isUploaded = true;\r\n setTimeout(()=>{this.editorCont.triggerPreviewWithValidation()},100)\r\n\r\n }\r\n\r\n }\r\n reader.readAsBinaryString(target.files[0]);\r\n }\r\n\r\n categoryList !: any;\r\n generateCategoryList(categoryData: any) {\r\n const catList: any = {}\r\n if (categoryData) {\r\n categoryData.forEach((ele: any) => {\r\n catList[ele[0]] = ele[1];\r\n })\r\n this.categoryList = catList;\r\n }\r\n }\r\n\r\n categoryNametoId(categoryName: string) {\r\n if (this.categoryList[categoryName]) {\r\n return this.categoryList[categoryName];\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n generateEditorPayload(data: any) {\r\n //check format\r\n\r\n const payload: any = {\r\n\r\n metadata:\r\n {\r\n assessment_name: \"\",\r\n description: \"\",\r\n assessment_type: \"compliance\",\r\n category_arr: [\r\n\r\n ],\r\n approval_workflow_arr: {\r\n \"test\": \"test\"\r\n },\r\n approval_required: true,\r\n source_page: \"compliance\"\r\n },\r\n assessmentData: {\r\n version: 2,\r\n questionRandomize: false,\r\n anonymousResponse: false,\r\n hasWelcome: false,\r\n hasWelcomeDescription: false,\r\n welcomeText: '',\r\n hasWelcomeImage: false,\r\n welcomeImage: '',\r\n welcomeDescription: '',\r\n hasThanks: false,\r\n hasThankyouImage: false,\r\n thankyouText: '',\r\n thankyouImage: '',\r\n hasThankyouDescription: false,\r\n thankyouDescription: '',\r\n elements: [],\r\n pageDetailsList: [],\r\n customResponseSet: [],\r\n settings: this.settings,\r\n responseSegment: this.initializeEmptyResponseSegment()\r\n }\r\n }\r\n\r\n this.convertedData = payload;\r\n this.convertedData.metadata.assessment_name = this.assessmentData[2][1];\r\n this.convertedData.metadata.description = this.assessmentData[3][1];\r\n // this.convertedData.metadata.category_arr[0] = this.assessmentData[4][1];\r\n this.convertedData.metadata.category_arr = [this.categoryNametoId(this.assessmentData[4][1])];\r\n\r\n //TODO: create a function to convert from categories names to categories id.\r\n //TODO: check the api for sub-flow like assessment-setting.\r\n // this.convertedData.metadata.category_arr[0] = \"61cc27c5b3e8642b333f3591\";\r\n this.generateQuestionsList(data.slice(6), payload.assessmentData.elements)\r\n }\r\n\r\n generateQuestionsList(questionsList: any, questionsArray: any) {\r\n questionsArray = [];\r\n if (questionsList?.length) {\r\n questionsList.forEach((question: any, index: number) => {\r\n console.log(\"question list\", question)\r\n questionsArray.push();\r\n switch (question[0]) {\r\n case 'Single Textbox':\r\n questionsArray.push(this.generateSingleTextbox('single-textbox',question, index))\r\n break;\r\n case 'Multiple Choice':\r\n questionsArray.push(this.generateMultipleChoice('multiple-choice',question, index))\r\n break;\r\n case 'Checkbox':\r\n questionsArray.push(this.generateMultipleChoice('checkbox',question, index))\r\n break;\r\n case 'Dropdown':\r\n questionsArray.push(this.generateMultipleChoice('dropdown',question, index))\r\n break;\r\n case 'Date & Time':\r\n questionsArray.push(this.generateDateTime('date-time',question, index))\r\n break;\r\n case 'File Upload':\r\n questionsArray.push(this.generateFileUpload(question, index))\r\n break;\r\n default:\r\n // No need to do anything for default\r\n }\r\n })\r\n }\r\n console.log(\"questions\", questionsArray)\r\n this.convertedData.assessmentData.elements = questionsArray;\r\n }\r\n colMap: any = {\r\n type: 0,\r\n title: 1,\r\n score: 2,\r\n opt1: 3,\r\n opt2: 4,\r\n opt3: 5,\r\n opt4: 6,\r\n opt5: 7,\r\n opt6: 8,\r\n required: 9,\r\n failed: 10,\r\n description: 11,\r\n placeholder: 12,\r\n comment: 13,\r\n other: 14,\r\n randomize: 15,\r\n alignment: 16,\r\n userattachment: 17,\r\n usercomment: 18\r\n }\r\n generateSingleTextbox(type:string,question: any, index: any) {\r\n return {\r\n type: 'single-textbox', name: `Question_${index}`, page: 1,\r\n hasValidation: false, validationType: '', isRequired: question[this.colMap?.required] === 'Yes' ? true : false, hasCharacterLength: false, minCharacterLength: 0,\r\n maxCharacterLength: 100, title: question[this.colMap?.title]?.toString()?.trim() ?? '',\r\n hasDescription: question[this.colMap?.description]?.toString()?.trim()?.length ? true : false, description: question[this.colMap?.description]?.toString()?.trim() ?? '',\r\n hasComments: question[this.colMap?.usercomment]?.toString()?.trim()?.length ? true : false, comments: question[this.colMap?.comment]?.toString()?.trim(),\r\n randomize: question[this.colMap?.randomize] === 'Yes' ? true : false, hasOther: question[this.colMap?.other] === 'Yes' ? true : false, otherValue: 'Other', alignment: question[this.colMap?.alignment] === 'Yes' ? true : false, reverse: false,\r\n isRespondentAttachment: question[this.colMap?.userattachment] === 'Yes' ? true : false, userAttachedFiles: [], isRespondentComment: question[this.colMap?.usercomment] === 'Yes' ? true : false,\r\n visibilityLogic: [],\r\n otherConfig: { color: \"#000000\", isFailed: false, score: question[this.colMap?.score] ?? 1 },\r\n choices: [{\r\n title: '',\r\n value: 1,\r\n isSelected: false,\r\n required: 0,\r\n hasHelpingLabel: false,\r\n helpingLabel: \"\",\r\n isFailed: false,\r\n score: question[this.colMap?.score] ?? 1,\r\n color: \"#000000\"\r\n }]\r\n };\r\n }\r\n\r\n generateMultipleChoice(type:string,question: any, index: any) {\r\n console.log(\"Yo Man\", question)\r\n return {\r\n type: type, name: `Question_${index}`, page: 1,\r\n hasValidation: false, validationType: '', isRequired: question[this.colMap?.required] === 'Yes' ? true : false,\r\n hasCharacterLength: false, minCharacterLength: 0, maxCharacterLength: 100, title: question[this.colMap?.title]?.toString()?.trim() ?? '',\r\n hasDescription: question[this.colMap?.description]?.toString()?.trim()?.length ? true : false, description: question[this.colMap?.description]?.toString().trim() ?? '',\r\n hasComments: question[this.colMap?.comment]?.toString()?.trim()?.length ? true : false, comments: question[this.colMap?.comment]?.toString().trim(),\r\n randomize: question[this.colMap?.randomize] === 'Yes' ? true : false, hasOther: question[this.colMap?.other] === 'Yes' ? true : false, otherValue: 'Other', alignment: question[this.colMap?.alignment] === 'Yes' ? true : false, reverse: false,\r\n isRespondentAttachment: question[this.colMap?.userattachment] === 'Yes' ? true : false, userAttachedFiles: [],\r\n visibilityLogic: [], isRespondentComment: question[this.colMap?.usercomment] === 'Yes' ? true : false,\r\n otherConfig: { color: \"#000000\", isFailed: false, score: question[this.colMap?.score] ?? 1 },\r\n choices: this.generateChoices(question)\r\n };\r\n }\r\n\r\n generateDateTime(type:string,question: any, index: any) {\r\n return {\r\n type: type, name: `Question_${index}`, page: 1,\r\n hasValidation: false, validationType: '', isRequired: question[this.colMap?.required] === 'Yes' ? true : false,\r\n hasCharacterLength: false, minCharacterLength: 0, maxCharacterLength: 100, title: question[this.colMap?.title]?.toString()?.trim() ?? '',\r\n hasDescription: question[this.colMap?.description]?.toString()?.trim()?.length ? true : false, description: question[this.colMap?.description]?.toString()?.trim() ?? '',\r\n hasComments: question[this.colMap?.usercomment]?.toString()?.trim()?.length ? true : false, comments: question[this.colMap?.comment]?.toString()?.trim(),\r\n randomize: question[this.colMap?.randomize] === 'Yes' ? true : false, hasOther: question[this.colMap?.other] === 'Yes' ? true : false, otherValue: 'Other', alignment: question[this.colMap?.alignment] === 'Yes' ? true : false, reverse: false,\r\n isRespondentAttachment: question[this.colMap?.userattachment] === 'Yes' ? true : false, userAttachedFiles: [],\r\n visibilityLogic: [], isRespondentComment: question[this.colMap?.usercomment] === 'Yes' ? true : false,\r\n otherConfig: { color: \"#000000\", isFailed: false, score: question[this.colMap?.score] ?? 1 },\r\n choices: [{\r\n title: '',\r\n value: 1,\r\n isSelected: false,\r\n required: 0,\r\n hasHelpingLabel: false,\r\n helpingLabel: \"\",\r\n isFailed: false,\r\n score: question[this.colMap?.score] ?? 1,\r\n color: \"#000000\"\r\n }],\r\n hasDate: true,\r\n hasTime: false,\r\n dateFormat: \"DD/MM/YYYY\",\r\n timeFormat: 24,\r\n date: {\r\n title: question[this.colMap?.placeholder] ?? 'Select Date',\r\n value: \"\"\r\n },\r\n time: {\r\n title: question[this.colMap?.placeholder] ?? 'Select Time',\r\n value: \"\"\r\n },\r\n };\r\n }\r\n generateFileUpload(question: any, index: any) {\r\n\r\n return {\r\n type: 'file-upload', name: `Question_${index}`, page: 1,\r\n hasValidation: false, validationType: '', isRequired: question[this.colMap?.required] === 'Yes' ? true : false, hasCharacterLength: false, minCharacterLength: 0,\r\n maxCharacterLength: 100, title: question[this.colMap?.title]?.toString()?.trim() ?? '',\r\n hasDescription: question[this.colMap?.description]?.toString()?.trim()?.length ? true : false, description: question[this.colMap?.description]?.toString()?.trim() ?? '',\r\n hasComments: question[this.colMap?.usercomment]?.toString()?.trim()?.length ? true : false, comments: question[this.colMap?.comment]?.toString()?.trim(),\r\n randomize: question[this.colMap?.randomize] === 'Yes' ? true : false, hasOther: question[this.colMap?.other] === 'Yes' ? true : false, otherValue: 'Other', alignment: question[this.colMap?.alignment] === 'Yes' ? true : false, reverse: false,\r\n isRespondentAttachment: question[this.colMap?.userattachment] === 'Yes' ? true : false, userAttachedFiles: [],\r\n visibilityLogic: [], isRespondentComment: question[this.colMap?.usercomment] === 'Yes' ? true : false,\r\n otherConfig: { color: \"#000000\", isFailed: false, score: question[this.colMap?.score] ?? 1 },\r\n choices: [{\r\n title: '',\r\n value: 1,\r\n isSelected: false,\r\n required: 0,\r\n hasHelpingLabel: false,\r\n helpingLabel: \"\",\r\n isFailed: false,\r\n score: question[this.colMap?.score] ?? 1,\r\n color: \"#000000\"\r\n }],\r\n allowedFileTypes: {\r\n pdf: true,\r\n doc: true,\r\n png: true,\r\n jpg: true,\r\n gif: true\r\n },\r\n };\r\n }\r\n\r\n generateChoices(question: any) {\r\n const options = [question[this.colMap?.opt1], question[this.colMap?.opt2], question[this.colMap?.opt3], question[this.colMap?.opt4], question[this.colMap?.opt5], question[this.colMap?.opt6]].filter((ele: any) => ele);\r\n options.forEach((ele:any) =>{\r\n if(ele){\r\n ele.toString()?.trim();\r\n }\r\n })\r\n if (options?.length === 0) {\r\n options.push('')\r\n }\r\n const optionMap: any = {\r\n 'Option 1': 3,\r\n 'Option 2': 4,\r\n 'Option 3': 5,\r\n 'Option 4': 6,\r\n 'Option 5': 7,\r\n 'Option 6': 8,\r\n }\r\n options.forEach((choice: any, index: any) => {\r\n options[index] = {\r\n title: (choice && typeof (choice) == 'string')? choice : choice.toString() ?? '',\r\n value: 1,\r\n isSelected: false,\r\n required: 0,\r\n hasHelpingLabel: false,\r\n helpingLabel: \"\",\r\n isFailed: (choice?.toString()?.trim() == question[optionMap[question[this.colMap?.failed]]]) ? true : false,\r\n score: question[this.colMap?.score] ?? 1,\r\n color: \"#000000\"\r\n }\r\n })\r\n\r\n return options;\r\n }\r\n\r\n public settings: any = {\r\n assessmentMode: false,\r\n defaultScore: 1,\r\n negativeScoreCriteria: 'FAILED',\r\n negativeScore: 0,\r\n weightageEnabled: false,\r\n settingsEnabled: false\r\n }\r\n\r\n checkFormat(assessmentData: any): boolean {\r\n //Completly blank excel sheet\r\n if (assessmentData.length === 0) {\r\n this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';\r\n this.isWrongFormat = true;\r\n return true;\r\n }\r\n\r\n //Invalid Tempalte\r\n try {\r\n if (assessmentData[2][0] !== \"Assessment Name\\*\"\r\n || assessmentData[3][0] !== \"Description\"\r\n || assessmentData[4][0] !== \"Assessment Category\\*\"\r\n || assessmentData[5][0] !== \"Question Type\\*\"\r\n ) {\r\n this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';\r\n this.isWrongFormat = true;\r\n return true;\r\n }\r\n } catch {\r\n this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';\r\n this.isWrongFormat = true;\r\n return true;\r\n }\r\n\r\n //Check Assessment name\r\n try{\r\n if (!assessmentData[2][1] || assessmentData[2][1] === \"\" || assessmentData[2][1] === undefined) {\r\n this.errorMessage = 'Enter a name for this Assessment.';\r\n this.isWrongFormat = true;\r\n return true;\r\n }\r\n }catch{\r\n this.errorMessage = 'Enter a name for this Assessment.';\r\n this.isWrongFormat = true;\r\n return true;\r\n }\r\n\r\n //category not selected\r\n try{\r\n if (!assessmentData[4][1] || assessmentData[4][1] === \"\" || assessmentData[4][1] === undefined) {\r\n this.errorMessage = 'Select the Assessment Category.';\r\n this.isWrongFormat = true;\r\n return true;\r\n }\r\n }catch{\r\n this.errorMessage = 'Select the Assessment Category.';\r\n this.isWrongFormat = true;\r\n return true;\r\n }\r\n\r\n //Does not contains any questions\r\n try{\r\n if (assessmentData.slice(7)?.length === 0) {\r\n this.errorMessage = 'You have uploaded a blank template. Please add questions to this template and upload it again.';\r\n this.isWrongFormat = true;\r\n return true;\r\n }\r\n }catch{\r\n this.errorMessage = 'You have uploaded a blank template. Please add questions to this template and upload it again.';\r\n this.isWrongFormat = true;\r\n return true;\r\n }\r\n\r\n\r\n\r\n //handle type of question and options count\r\n for (let i = 7; i <= assessmentData.length - 1; i++) {\r\n if (assessmentData[i][0] !== 'Multiple Choice' &&\r\n assessmentData[i][0] !== 'Checkbox' &&\r\n assessmentData[i][0] !== 'Dropdown' &&\r\n assessmentData[i][0] !== 'Single Textbox' &&\r\n assessmentData[i][0] !== 'Date & Time' &&\r\n assessmentData[i][0] !== 'File Upload'\r\n ) {\r\n this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';\r\n this.isWrongFormat = true;\r\n return true;\r\n }\r\n // if (assessmentData[i][1] === '') {\r\n // this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';\r\n // this.isWrongFormat = true;\r\n // return true;\r\n // }\r\n }\r\n\r\n\r\n this.errorMessage = '';\r\n return false;\r\n }\r\n\r\n initializeEmptyResponseSegment() {\r\n return {\r\n title: '',\r\n description: '',\r\n maxScore: 10,\r\n segments: []\r\n }\r\n }\r\n\r\n postAssessment(data: any) {\r\n this.isShowLoader = true;\r\n this.assessmentService.createAssessment(this.convertedData.metadata).subscribe({\r\n next: (response: any) => {\r\n this.postAssessmentDetails(response._id, data.mode, data.assessmentDetails);\r\n },\r\n error: (err: any) => {\r\n this.isShowLoader = false;\r\n }\r\n })\r\n }\r\n\r\n postAssessmentDetails(id: any, mode: any, assessmentDetails: any) {\r\n\r\n this.isUploaded = false;\r\n this.auth.previewPanel.next(false);\r\n console.log('this.isUploaded', this.isUploaded)\r\n const payload = {\r\n question: assessmentDetails,\r\n action: \"questions_save\",\r\n state: mode\r\n }\r\n\r\n this.assessmentService.saveAssessmentDetails(id, payload).subscribe({\r\n next: (response: any) => {\r\n this.assessmentData = {};\r\n this.isShowLoader = false;\r\n this.showSmiley = true;\r\n },\r\n error: (err: any) => {\r\n this.isShowLoader = false;\r\n }\r\n })\r\n }\r\n\r\n smileyAction(id: any) {\r\n console.log(id)\r\n if (id === smileyActions.VIEW_ASSESSMENTS) {\r\n this.disconnectRefresh.emit(false);\r\n // TODO: Navigate to '/manage-assessment'\r\n let url: string;\r\n if (window.location.host.startsWith('localhost')) {\r\n url = 'http://' + window.location.host + '/manage-assessment';\r\n } else {\r\n url = 'https://' + window.location.host + '/assessment/manage-assessment';\r\n }\r\n console.log(url);\r\n window.location.href = url;\r\n }\r\n else {\r\n this.showSmiley = false;\r\n }\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { retry } from 'rxjs/operators';\r\nimport { Configurations } from '../../../configurations';\r\nimport { AuthService } from '../../../workflow-services/auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssessmentService {\r\n\r\n env !: any;\r\n constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\r\n if (config) {\r\n this.env = config.envConfig;\r\n\r\n }\r\n }\r\n\r\n getAssessmentQuestions(id:string){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get(this.env.assessmentEnpoint+'assessment/fetchQuestionsByAssessmentId&id='+id,{headers}).pipe(retry(2));\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, EventEmitter, Output, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AuthService } from '../../workflow-services/auth.service';\r\nimport { ResponsibilityService } from \"../../workflow-services/responsibility.service\";\r\nimport {AssessmentCategoryList, AssessmentList } from \"./service/assessment.interface\"\r\nimport { AssessmentService } from './service/assessment.service';\r\n@Component({\r\n selector: 'app-assessment-list',\r\n templateUrl: './assessment-list.component.html',\r\n styleUrls: ['./assessment-list.component.less']\r\n})\r\nexport class AssessmentListComponent implements OnInit, OnChanges {\r\n animation = false;\r\n selectedData: any;\r\n subList = false;\r\n @Input() isEdit = false\r\n openedCategory: Array<number> = [];\r\n assessmentPayload = {\r\n search_title:\"\",\r\n page_no:\"1\",\r\n state:\"ACTIVE\",\r\n search_text: '',\r\n alphabet_filter: ''\r\n }\r\n\r\n dataPerPage = 0;\r\n\r\n assessmentCategory: AssessmentCategoryList ={\r\n data: [],\r\n totalPage: 0,\r\n totalRecords: 0,\r\n start_value: 0,\r\n end_value: 0,\r\n currentPage: 0\r\n };\r\n isLoader = false\r\n\r\n @Input() selectedAssessment = {\r\n assessment_id: '', category_id: '', assessmentDetails: undefined, category_details: undefined, \r\n }\r\n\r\n isDeleted = false;\r\n\r\n searchAssessments = '';\r\n previewQuestionData !: any;\r\n isPreview = false;\r\n @Input() selectedAssessmentData: any;\r\n\r\n @Output() onAssessmentSelect = new EventEmitter();\r\n\r\n @Output() cancelAssessment = new EventEmitter();\r\n\r\n constructor( \r\n private responsibilityService: ResponsibilityService,\r\n private assessmentService: AssessmentService,\r\n private auth :AuthService\r\n ) { \r\n\r\n this.dataPerPage = this.responsibilityService.dataPerPage;\r\n }\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n console.log(\"changes ====>\", changes, this.selectedAssessmentData);\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n this.getAssessmentCategoryList();\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n }\r\n\r\n onAssessmentSelected(event: any) {\r\n this.selectedData = event;\r\n }\r\n\r\n preview(evt:any){\r\n this.assessmentService.getAssessmentQuestions(evt?.id).subscribe({\r\n next:(res:any)=>{\r\n console.log(\"res\",res);\r\n this.auth.previewPanel.next(true)\r\n this.isPreview = true;\r\n this.previewQuestionData = res;\r\n\r\n }\r\n }) \r\n }\r\n\r\n previewBack(){\r\n this.isPreview = false;\r\n this.previewQuestionData = {};\r\n this.auth.previewPanel.next(false)\r\n }\r\n\r\n /**\r\n * \r\n * @param index : Accept index of elementPosition\r\n * \r\n */\r\n showSubList(index: number, id: string) {\r\n if(this.openedCategory.includes(index)) {\r\n this.openedCategory = this.openedCategory.filter(ele => ele !== index);\r\n } else {\r\n this.openedCategory.push(index);\r\n this.getAssessmentList(index, id)\r\n }\r\n return this.openedCategory\r\n }\r\n\r\n // TODO: Pagination\r\n /**\r\n * \r\n * @param event : page number that has been selected\r\n */\r\n onPageSelection(event: number) {\r\n this.openedCategory = [];\r\n this.assessmentPayload.page_no = event.toString();\r\n this.getAssessmentCategoryList();\r\n }\r\n\r\n // TODO: Search\r\n /**\r\n * \r\n * @param search : search text\r\n */\r\n onAssessmentSearch(search: string) {\r\n this.openedCategory = [];\r\n this.assessmentPayload.page_no = \"1\";\r\n this.assessmentPayload.search_title = search;\r\n this.assessmentPayload.search_text = search;\r\n this.getAssessmentCategoryList();\r\n }\r\n\r\n // TODO: Filter by alphabet\r\n/**\r\n * \r\n * @param event : Assessment category filter of Alphabet\r\n */\r\n onAlphabetSelected(event: string) {\r\n this.openedCategory = [];\r\n this.assessmentPayload.page_no = \"1\";\r\n this.assessmentPayload.alphabet_filter = event;\r\n this.assessmentPayload.search_text = '';\r\n this.getAssessmentCategoryList();\r\n }\r\n\r\n // TODO: Call API method\r\n getAssessmentCategoryList() {\r\n this.isLoader = true;\r\n this.responsibilityService.getAssessmentCategory(this.assessmentPayload).subscribe((res: any) => {\r\n this.assessmentCategory = res;\r\n this.isLoader = false;\r\n })\r\n }\r\n\r\n // TODO: Call Sub data API method\r\n\r\n /**\r\n * \r\n * @param id : Assessment category id\r\n */\r\n getAssessmentList(index: number, id: string) {\r\n const payload = {\r\n search_title:\"\",\r\n }\r\n this.responsibilityService.getAssessmentList(payload, id).subscribe((res: Array<AssessmentList>) => {\r\n this.assessmentCategory.data[index].assessmentData = [...new Set(res)];\r\n })\r\n }\r\n\r\n // TODO: Select data\r\n /**\r\n * \r\n * @param category_id :selected assessment's category's object id\r\n * @param assessment_id : Selected assessment's object id\r\n */\r\n setAssessment(category_details: any, assessmentDetails: any) {\r\n this.selectedAssessment = {\r\n category_id: category_details?.id,\r\n assessment_id: assessmentDetails.id,\r\n assessmentDetails: assessmentDetails,\r\n category_details: category_details\r\n }\r\n }\r\n\r\n // TODO: Display selected data in bottom floating bar with next enabled button having\r\n \r\n // TODO: Send data in payload of create Responsibility form\r\n\r\n save() {\r\n this.onAssessmentSelect.emit(this.selectedAssessment)\r\n }\r\n\r\n close() {\r\n this.cancelAssessment.emit();\r\n }\r\n\r\n deleteEvent(event: any) {\r\n this.selectedAssessment = {\r\n assessment_id: '', category_id: '', assessmentDetails: undefined, category_details: undefined, \r\n }\r\n this.isDeleted = true;\r\n \r\n }\r\n\r\n // TODO: populate data while editing data\r\n\r\n // TODO:Enable EDIT UI to improve user Experience\r\n\r\n// TODO: block users for selecting checkpoints\r\n\r\n// TODO: checkpoints\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nexport interface ListEvent {\r\n searchKey?: string;\r\n page?: number;\r\n}\r\nexport interface panelConfig {\r\n panelTitle: '',\r\n entitySingular: '',\r\n entityPlural: '',\r\n displayKey: '',\r\n identifierKey: '',\r\n parentKey: '',\r\n parentDisplayKey: ''\r\n searchPlaceholder: '',\r\n noDataText: ''\r\n}\r\n@Component({\r\n selector: 'app-radio-list-with-pagination',\r\n templateUrl: './radio-list.component.html',\r\n styleUrls: ['./radio-list.component.less']\r\n})\r\nexport class RadioListWithPaginationComponent implements OnInit {\r\n @Output() fetchData = new EventEmitter<ListEvent>();\r\n @Output() back = new EventEmitter();\r\n @Output() next = new EventEmitter();\r\n @Output() cancel = new EventEmitter();\r\n list = [];\r\n searchKey = '';\r\n selectedList: any = [];\r\n @Input('categoryList') set setList(value: any) {\r\n this.list = value;\r\n }\r\n @Input() config !: panelConfig;\r\n @Input() currentPage: any = 1;\r\n @Input() recordStart: any = 1;\r\n @Input() recordEnd: any = 1;\r\n @Input() totalRecords: any = 1;\r\n @Input() totalPages: any = 1;\r\n @Input() loading: any = true;\r\n @Input('selectedList') set setSelected(value: any) {\r\n if (value) {\r\n this.selectedList = [...value];\r\n this.setSelectedIds();\r\n }\r\n }\r\n animation = true;\r\n selectedIds: any = []\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n //This method handles the page change\r\n pageChanged(page: number) {\r\n this.currentPage = page;\r\n this.fetchData.emit({ page: this.currentPage, searchKey: this.searchKey })\r\n }\r\n\r\n //This method handles the search\r\n search() {\r\n this.currentPage = 1;\r\n this.fetchData.emit({ page: this.currentPage, searchKey: this.searchKey })\r\n }\r\n\r\n itemSelected(event: any, item: any) {\r\n\r\n if (event) {\r\n this.selectedList.push(item);\r\n this.setSelectedIds();\r\n }else{\r\n let index = this.selectedList.findIndex((x:any) => x?.id === item?.id);\r\n if(index >= 0){\r\n this.selectedList = this.selectedList.filter((ele: any) => ele[this.config?.identifierKey] !== item[this.config?.identifierKey])\r\n this.setSelectedIds();\r\n }\r\n console.log(event,item)\r\n }\r\n }\r\n\r\n setSelectedIds() {\r\n this.selectedIds = this.selectedList.map((ele: any) => ele[this.config?.identifierKey])\r\n this.selectedList = Array.from(new Set(this.selectedList.map((a:any) => a.id)))\r\n .map(id => {\r\n return this.selectedList.find((a:any) => a.id === id)\r\n })\r\n }\r\n deleteItem(evt: any) {\r\n this.selectedList = this.selectedList.filter((ele: any) => ele[this.config?.identifierKey] !== evt[this.config?.identifierKey])\r\n this.setSelectedIds();\r\n }\r\n\r\n close() {\r\n this.cancel.emit();\r\n }\r\n save() {\r\n this.next.emit(this.selectedList);\r\n }\r\n\r\n\r\n selectAll(evt:any){\r\n if(evt){\r\n this.selectedList = [...this.selectedList,...this.list]\r\n this.setSelectedIds();\r\n }else if(evt=== false){\r\n const currentPageList = this.list.map((ele:any) => ele.id);\r\n this.selectedList = this.selectedList.filter((ele:any)=> !currentPageList.includes(ele?.id));\r\n this.setSelectedIds();\r\n }\r\n \r\n }\r\n checkSelectAll() {\r\n const data = this.list.every((rc: any) => this.selectedIds.includes(rc[this.config.identifierKey]));\r\n return data;\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-pagination',\r\n templateUrl: './pagination.component.html',\r\n styleUrls: ['./pagination.component.less']\r\n})\r\nexport class PaginationComponent implements OnInit {\r\n alphabetsArray!: any;\r\n @Input() activeAlphabet = '';\r\n @Input() pageCount!: number;\r\n @Input() start !:number;\r\n @Input() end !:number;\r\n @Input() total !:number;\r\n public pageArray: Array<number> = [];\r\n @Input() currentPage = 1;\r\n public enterPageNumber!: any;\r\n public isInvalidInput = false;\r\n\r\n @Output() selectedPage: EventEmitter<any> = new EventEmitter();\r\n @Output() selectedAlphabet: EventEmitter<any> = new EventEmitter();\r\n\r\n pageList!: any;\r\n constructor() {\r\n this.alphabetsArray = 'abcdefghijklmnopqrstuvwxyz'.split('');\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n alphabetChange(alphabet: string) {\r\n this.activeAlphabet = alphabet;\r\n this.selectedAlphabet.emit(alphabet);\r\n }\r\n\r\n ngOnChanges(event: SimpleChanges) {\r\n this.pageArray = [];\r\n \r\n if (this.pageCount > 0) {\r\n if (this.pageCount < 5) {\r\n for (let i = 1; i <= this.pageCount; i++) {\r\n this.pageArray.push(i);\r\n }\r\n return;\r\n }\r\n this.goToPageArrayGenerate(this.currentPage,false);\r\n }\r\n }\r\n\r\n\r\n increaseOrDecrease(value: number) {\r\n // if(this.currentPage === value){return ;}\r\n this.currentPage += value;\r\n if (this.currentPage > 3 && this.currentPage <= this.pageCount && this.pageArray[this.pageArray.length - 1] < this.pageCount) {\r\n if (value > 0) {\r\n this.pageArray.shift();\r\n this.pageArray.push(this.pageArray[this.pageArray.length - 1] + 1);\r\n }\r\n }\r\n\r\n if (this.currentPage > 2 && value < 0 && this.pageArray[0] > 1 && this.currentPage < this.pageCount - 2) {\r\n this.pageArray.pop();\r\n this.pageArray.unshift(this.pageArray[0] - 1);\r\n }\r\n this.selectedPage.emit(this.currentPage);\r\n }\r\n onEnterPress(event: any) {\r\n if (event.key.toLowerCase() === 'enter') {\r\n if (!this.enterPageNumber || this.enterPageNumber > this.pageCount || this.enterPageNumber < 1) {\r\n this.isInvalidInput = true;\r\n return;\r\n } else {\r\n this.isInvalidInput = false;\r\n this.goToPageArrayGenerate(this.enterPageNumber,true);\r\n }\r\n }\r\n }\r\n\r\n\r\n goToPageArrayGenerate(page: any,shouldEmit:boolean) {\r\n //if(this.currentPage === page){return;}\r\n this.isInvalidInput = false;\r\n this.currentPage = page;\r\n this.pageArray = [];\r\n if (this.currentPage > 3 && this.currentPage < this.pageCount - 2) {\r\n for (let i = this.currentPage - 2; i < this.currentPage + 3; i++) {\r\n this.pageArray.push(i);\r\n }\r\n } else if (this.currentPage <= 3) {\r\n if (this.pageCount > 4) {\r\n this.pageArray = [1, 2, 3, 4, 5];\r\n } else {\r\n for (let i = 1; i <= this.pageCount; i++) {\r\n this.pageArray.push(i);\r\n }\r\n }\r\n } else if (this.currentPage > this.pageCount - 3) {\r\n for (let i = this.pageCount - 4; i < this.pageCount + 1; i++) {\r\n this.pageArray.push(i);\r\n }\r\n } else {\r\n for (let i = this.currentPage - 2; i < this.currentPage + 2; i++) {\r\n this.pageArray.push(i);\r\n }\r\n }\r\n\r\n if(shouldEmit){\r\n this.selectedPage.emit(this.currentPage);\r\n }\r\n \r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PaginationComponent } from './pagination/pagination.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PaginationComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n PaginationComponent\r\n ]\r\n})\r\nexport class PaginationModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-listline-loader',\r\n templateUrl: './link-treatment-loader.component.html',\r\n styleUrls: ['./link-treatment-loader.component.less'],\r\n})\r\nexport class LinkTreatmentLoaderComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-assessment-list-loader',\r\n templateUrl: './assessment-list-loader.component.html',\r\n styleUrls: ['./assessment-list-loader.component.less']\r\n})\r\nexport class AssessmentListLoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-assessment-list-sub-loader',\r\n templateUrl: './assessment-list-sub-loader.component.html',\r\n styleUrls: ['./assessment-list-sub-loader.component.less']\r\n})\r\nexport class AssessmentListSubLoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { shuffle } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-checkbox-question',\r\n templateUrl: './checkbox-question.component.html',\r\n styleUrls: ['./checkbox-question.component.less']\r\n})\r\nexport class CheckboxQuestionComponent implements OnInit {\r\n\r\n @Input() question !:any;\r\n @Input() questionIndex !:number;\r\n choicesForPreviewMode : any = [];\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.choicesForPreviewMode = this.question.choices;\r\n if (this.question.randomize === true) {\r\n this.randomize();\r\n }\r\n }\r\n randomize() {\r\n this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { DatePickerComponent } from 'ng2-date-picker';\r\n\r\n\r\n@Component({\r\n selector: 'app-date-time',\r\n templateUrl: './date-time.component.html',\r\n styleUrls: ['./date-time.component.less']\r\n})\r\nexport class DateTimeComponent implements OnInit {\r\n @Input() question !: any;\r\n @Input() questionIndex !:any;\r\n @ViewChild('datePicker') datePicker!: DatePickerComponent;\r\n datepickerOverlay = false;\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n openDatePicker() {\r\n this.datePicker?.api?.open();\r\n this.datepickerOverlay = true;\r\n }\r\n \r\n closeDatepicker() {\r\n this.datePicker?.api?.close();\r\n this.datepickerOverlay = false;\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-device',\r\n templateUrl: './device.component.html',\r\n styleUrls: ['./device.component.less']\r\n})\r\nexport class DeviceComponent implements OnInit {\r\n @Output() deviceChanged = new EventEmitter();\r\n @Input() selectedDevice = 'DESKTOP';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.less']\r\n})\r\nexport class FileUploadComponent implements OnInit {\r\n @Input() question !: any;\r\n @Input() questionIndex !:any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-preview',\r\n templateUrl: './preview.component.html',\r\n styleUrls: ['./preview.component.less']\r\n})\r\nexport class PreviewComponent implements OnInit, OnChanges {\r\n @Input() questionData !:any;\r\n @Output() previewBack = new EventEmitter();\r\n pageData :any = []\r\n selectedDevice = 'DESKTOP';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.generatePageDetails();\r\n }\r\nngOnChanges(){\r\nthis.generatePageDetails();\r\n}\r\n generatePageDetails() {\r\n let oldPage = 0;\r\n this.questionData?.questions?.elements.forEach((ele:any, index:any) => {\r\n if (oldPage !== ele.page) {\r\n oldPage = ele.page;\r\n const currentPage = this.questionData?.questions?.pageDetailsList.find((page:any) => {\r\n return page.pageNumber === ele.page;\r\n });\r\n if (currentPage) {\r\n this.pageData[index] = currentPage;\r\n } else {\r\n this.pageData[index] = { pageName: '', pageNumber: ele.page, pageDescription: ''};\r\n }\r\n\r\n }\r\n });\r\n console.log(this.pageData);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-container',\r\n templateUrl: './preview-container.component.html',\r\n styleUrls: ['./preview-container.component.less']\r\n})\r\nexport class PreviewContainerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-quick-settings',\r\n templateUrl: './quick-settings.component.html',\r\n styleUrls: ['./quick-settings.component.less']\r\n})\r\nexport class QuickSettingsComponent implements OnInit {\r\n @Input() question !:any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { shuffle } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-radio-question',\r\n templateUrl: './radio-question.component.html',\r\n styleUrls: ['./radio-question.component.less']\r\n})\r\nexport class RadioQuestionComponent implements OnInit {\r\n @Input() question !:any;\r\n @Input() questionIndex !:number;\r\n choicesForPreviewMode : any = [];\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.choicesForPreviewMode = this.question.choices;\r\n if (this.question.randomize === true) {\r\n this.randomize();\r\n }\r\n }\r\n randomize() {\r\n this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { shuffle } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-select-question',\r\n templateUrl: './select-question.component.html',\r\n styleUrls: ['./select-question.component.less']\r\n})\r\nexport class SelectQuestionComponent implements OnInit {\r\n\r\n @Input() question!: any;\r\n @Input() questionIndex !:any;\r\n choicesForPreviewMode : any = [];\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.choicesForPreviewMode = [...this.question.choices];\r\n if (this.question.randomize === true) {\r\n this.randomize();\r\n }\r\n if (this.question.hasOther === true && this.choicesForPreviewMode.findIndex((x:any) => x.title === \"Other\") < 0){\r\n this.choicesForPreviewMode.push({title:'Other'})\r\n }\r\n }\r\n \r\n\r\n randomize() {\r\n this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-single-textbox',\r\n templateUrl: './single-textbox.component.html',\r\n styleUrls: ['./single-textbox.component.less']\r\n})\r\nexport class SingleTextboxComponent implements OnInit {\r\n @Input() question!: any;\r\n @Input() questionIndex !:any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-page-header',\r\n templateUrl: './page-header.component.html',\r\n styleUrls: ['./page-header.component.less']\r\n})\r\nexport class PageHeaderComponent implements OnInit {\r\n @Input() pageDetail !:any;\r\n @Input() pageTitle !:any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-welcome',\r\n templateUrl: './welcome.component.html',\r\n styleUrls: ['./welcome.component.less']\r\n})\r\nexport class WelcomeComponent implements OnInit {\r\n @Input() questionDetails !:any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CheckboxQuestionComponent } from './checkbox-question/checkbox-question.component';\r\nimport { DateTimeComponent } from './date-time/date-time.component';\r\nimport { DeviceComponent } from './device/device.component';\r\nimport { FileUploadComponent } from './file-upload/file-upload.component';\r\nimport { PreviewComponent } from './preview/preview.component';\r\nimport { PreviewContainerComponent } from './preview-container/preview-container.component';\r\nimport { QuickSettingsComponent } from './quick-settings/quick-settings.component';\r\nimport { RadioQuestionComponent } from './radio-question/radio-question.component';\r\nimport { SelectQuestionComponent } from './select-question/select-question.component';\r\nimport { SingleTextboxComponent } from './single-textbox/single-textbox.component';\r\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\r\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\r\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\r\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\r\nimport { DpDatePickerModule } from 'ng2-date-picker';\r\nimport { PageHeaderComponent } from './page-header/page-header.component';\r\nimport { WelcomeComponent } from './welcome/welcome.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CheckboxQuestionComponent,\r\n DateTimeComponent,\r\n DeviceComponent,\r\n FileUploadComponent,\r\n PreviewComponent,\r\n PreviewContainerComponent,\r\n QuickSettingsComponent,\r\n RadioQuestionComponent,\r\n SelectQuestionComponent,\r\n SingleTextboxComponent,\r\n PageHeaderComponent,\r\n WelcomeComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TooltipModule,\r\n FormgroupModule,\r\n PopoverModule,\r\n NgxMaterialTimepickerModule,\r\n DpDatePickerModule,\r\n ],\r\n exports:[\r\n CheckboxQuestionComponent,\r\n DateTimeComponent,\r\n DeviceComponent,\r\n FileUploadComponent,\r\n PreviewComponent,\r\n PreviewContainerComponent,\r\n QuickSettingsComponent,\r\n RadioQuestionComponent,\r\n SelectQuestionComponent,\r\n SingleTextboxComponent,\r\n WelcomeComponent\r\n ]\r\n})\r\nexport class AssessmentPreviewModule { }\r\n","export class DialogConfig<D = any> {\r\n data?: D;\r\n position?: any;\r\n background?: any;\r\n}\r\n","import { Observable, Subject } from 'rxjs';\r\n\r\nexport class DialogRef {\r\n private readonly afterDialogClosed = new Subject<any>();\r\n afterClosed: Observable<any> = this.afterDialogClosed.asObservable();\r\n constructor() {}\r\n\r\n close(result?: any) {\r\n this.afterDialogClosed.next(result);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DialogConfig } from '../../../../ui-kit/dialog/dialog-config';\r\nimport { DialogRef } from '../../../../ui-kit/dialog/dialog-ref';\r\n\r\nimport { EditorConfig } from 'vcomply-editor';\r\nimport { EditorService } from '../../services/editor.service';\r\n\r\n@Component({\r\n selector: 'app-add-page-details',\r\n templateUrl: './add-page-details.component.html',\r\n styleUrls: ['./add-page-details.component.less'],\r\n})\r\nexport class AddPageDetailsComponent implements OnInit {\r\n pageDesc!: string;\r\n public fd !:any;\r\n constructor(private config: DialogConfig, private dialogRef:DialogRef) { \r\n this.fd = config.data?.ref;\r\n }\r\n\r\n pageDetails: any = {pageName: '', pageNumber: 0, pageDescription: ''};\r\n\r\n ngOnInit(): void {\r\n this.pageDetails.pageNumber = this.config.data.page;\r\n this.pageDetails.pageName = this.config.data.pageDetails.pageName;\r\n this.pageDetails.pageDescription = this.config.data.pageDetails.pageDescription; \r\n this.pageDesc = this.config.data.pageDetails.pageDescription; \r\n this.populatePageDetailsList();\r\n }\r\n\r\n savePageDetails() {\r\n this.pageDetails.pageName = this.extractContent(this.pageDetails.pageName).trim().length > 0 ?this.pageDetails.pageName:'';\r\n this.pageDetails.pageDescription = this.extractContent(this.pageDetails.pageDescription).trim().length > 0 ?this.pageDetails.pageDescription:'';\r\n \r\n this.fd.currentPageDetails = {...this.pageDetails};\r\n this.populatePageDetailsList();\r\n if (this.pageDetails.pageName.trim().length > 0 || this.pageDetails.pageDescription.trim().length > 0 ) {\r\n \r\n this.fd.showAddPageOption = false;\r\n this.fd.showPageDetails = true;\r\n } else {\r\n this.fd.showAddPageOption = true;\r\n this.fd.showPageDetails = false;\r\n }\r\n this.dialogRef.close('SAVE');\r\n }\r\n\r\n extractContent(s:any) {\r\n var span = document.createElement('span');\r\n span.innerHTML = s;\r\n return span.textContent || span.innerText;\r\n };\r\n\r\n populatePageDetailsList() {\r\n let pagePresent = false;\r\n this.fd.formsPage.pageDetailsList.forEach((pageDetails:any) => {\r\n if (this.pageDetails.pageNumber === pageDetails.pageNumber) {\r\n pageDetails.pageName = this.pageDetails.pageName;\r\n pageDetails.pageDescription = this.pageDetails.pageDescription;\r\n pagePresent = true;\r\n }\r\n });\r\n if (!pagePresent) {\r\n this.fd.formsPage.pageDetailsList.push({...this.pageDetails});\r\n }\r\n \r\n }\r\n\r\n cancelPageDetails() {\r\n //this.cancel.emit();\r\n this.dialogRef.close('CANCEL')\r\n }\r\n description: EditorConfig = {\r\n mode: 'prime',\r\n placeholder: 'Add description',\r\n };\r\n}\r\n\r\n\r\n\r\n\r\n","\r\nimport { Injectable, Type } from '@angular/core';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResultCriteriaService {\r\n\r\n constructor() { }\r\n\r\n calculateMaxScore(questions:any){\r\n let maxScore = 0;\r\n const criteriaEligibleTypes = ['multiple-choice', 'checkbox', 'dropdown'];\r\n const scorableQuestions = questions.elements.filter((question:any) => {\r\n return criteriaEligibleTypes.includes(question.type);\r\n });\r\n \r\n scorableQuestions.forEach((element:any) => {\r\n if (['multiple-choice', 'dropdown'].includes(element.type)){\r\n let score = Math.max.apply(Math, element.choices.map((o:any) => o.score !== undefined ? o.score : 1 ));\r\n let weightage = 100;\r\n if (questions?.settings?.weightageEnabled){\r\n element.weightage === undefined ? weightage = 100 : weightage = element.weightage;\r\n }\r\n score = (weightage / 100) * score;\r\n maxScore = maxScore + score;\r\n\r\n }\r\n else if (['checkbox'].includes(element.type)){\r\n let scoreCheck = 0;\r\n element.choices.forEach((choice:any) => {\r\n choice.score === undefined ? choice.score = 1 : choice.score;\r\n if (!choice.isFailed){\r\n scoreCheck = scoreCheck + choice.score;\r\n }\r\n });\r\n let weightage = 100;\r\n if (questions?.settings?.weightageEnabled){\r\n element.weightage === undefined ? weightage = 100 : weightage = element.weightage;\r\n }\r\n scoreCheck = (weightage / 100) * scoreCheck;\r\n maxScore = maxScore + scoreCheck;\r\n\r\n }\r\n\r\n });\r\n \r\n return maxScore;\r\n}\r\n}\r\n","import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { DialogConfig } from '../../../../ui-kit/dialog/dialog-config';\r\nimport { DialogRef } from '../../../../ui-kit/dialog/dialog-ref';\r\nimport { SnackBarService } from \"../../../../ui-kit/snack-bar/snack-bar.service\";\r\n\r\nimport { EditorConfig } from 'vcomply-editor';\r\nimport { EditorService } from \"../../services/editor.service\";\r\nimport { ResultCriteriaService } from \"../../services/result-criteria.service\";\r\n\r\n@Component({\r\n selector: 'app-assessment-settings',\r\n templateUrl: './assessment-settings.component.html',\r\n styleUrls: ['./assessment-settings.component.less']\r\n})\r\nexport class AssessmentSettingsComponent implements OnInit {\r\n // @ViewChild('scrolleffect', { static: false }) scrollElement!: ElementRef;\r\n // showResponse = false;\r\n // showMode = false;\r\n // showSegment = false;\r\n // hideSegmentPopup = false;\r\n // editSegmentPopup = false;\r\n\r\n // constructor() { }\r\n\r\n // ngOnInit(): void {\r\n // }\r\n\r\n // clickResponse() {\r\n // this.showResponse = !this.showResponse;\r\n // }\r\n\r\n // clickMode() {\r\n // this.showMode = !this.showMode;\r\n // }\r\n\r\n // clickSegment() {\r\n // this.showSegment = !this.showSegment;\r\n // setTimeout (()=>{\r\n // this.scrollElement.nativeElement.scrollTop = this.scrollElement.nativeElement.scrollHeight;\r\n // },150)\r\n // }\r\n\r\n // editSegment() {\r\n // this.editSegmentPopup = !this.editSegmentPopup;\r\n // }\r\n\r\n // description: EditorConfig = {\r\n // mode: 'prime',\r\n // placeholder: 'Enter Segment criteria description',\r\n // };\r\n\r\n // openSegmentPopup() {\r\n // this.hideSegmentPopup = true;\r\n // }\r\n\r\n // closeSegmentPopup() {\r\n // this.hideSegmentPopup = false;\r\n // this.editSegmentPopup = false;\r\n // }\r\n showSegment!:any;\r\n hideSegmentPopup !:any;\r\n editSegmentPopup !:any;\r\n showResponse !:any;\r\n closeSegmentPopup(){}\r\n openSegmentPopup(){}\r\n editSegment(){}\r\n clickSegment(){}\r\n clickMode(){}\r\n clickResponse(){}\r\n showMode !:any;\r\n description: EditorConfig = {\r\n mode: 'prime',\r\n placeholder: 'Enter Segment criteria description',\r\n };\r\n @Output() action = new EventEmitter<any>();\r\n forAnimation = false;\r\n public editorService!:any;\r\n constructor(public config: DialogConfig, public dialog: DialogRef,private criteriaService: ResultCriteriaService,private snackbar:SnackBarService) { }\r\n settingsJSON = {\r\n assessmentMode: true,\r\n defaultScore: 0,\r\n negativeScoreCriteria: 'FAILED',\r\n negativeScore: 0,\r\n weightageEnabled: false\r\n };\r\n settingsData!:any;\r\n activeSettingType = 'none';\r\n ngOnInit(): void {\r\n this.editorService = this.config.data.service;\r\n this.settingsData = this.config.data.settings;\r\n this.forAnimation = true;\r\n setTimeout(() => {\r\n this.forAnimation = false;\r\n }, 1000);\r\n\r\n this.settingsJSON = this.config.data.settingsJSON;\r\n }\r\n closePanel(evt?:any) {\r\n \r\n this.dialog.close({});\r\n\r\n }\r\n alert() {\r\n alert('guyfgiuhgj');\r\n }\r\n\r\n manipulateDefault(mode:any){\r\n if (mode === 'INCREASE' && this.settingsJSON.defaultScore >= 0){\r\n this.settingsJSON.defaultScore = this.settingsJSON.defaultScore + 1;\r\n } else if (mode === 'DECREASE' && this.settingsJSON.defaultScore >= 1 ){\r\n this.settingsJSON.defaultScore = this.settingsJSON.defaultScore - 1;\r\n }\r\n }\r\n manipulateNegativeScore(mode:any){\r\n if (mode === 'INCREASE' && this.settingsJSON.negativeScore >= 0){\r\n this.settingsJSON.negativeScore = this.settingsJSON.negativeScore + 1;\r\n } else if (mode === 'DECREASE' && this.settingsJSON.negativeScore >= 1 ){\r\n this.settingsJSON.negativeScore = this.settingsJSON.negativeScore - 1;\r\n }\r\n }\r\n\r\n executeAction(evt:any){\r\n this.dialog.close({\r\n event: evt,\r\n data: this.settingsJSON\r\n });\r\n }\r\n\r\n setActiveType(type:any,index:any){\r\n this.activeSettingType = type;\r\n if(type === 'ASSESSMENT'){\r\n this.settingsData.settingsElements[index].isEnabled = true \r\n }\r\n }\r\n\r\n enableStateChanged(e:any, type:any) {\r\n if (type === 'ANONYMOUS') {\r\n this.editorService.formsPage.anonymousResponse = e;\r\n }\r\n if (type === 'RESPONSE_SEGMENT') {\r\n this.editorService.formsPage.responseSegment['isEnabled'] = e;\r\n }\r\n\r\n }\r\n\r\n save(evt:any, index:any) {\r\n this.settingsData.settingsElements[index] = evt;\r\n\r\n\r\n \r\n if (evt.type === 'ASSESSMENT') {\r\n // const ref = this.dialogService.open(ConfirmationPopupComponent, { data: { message: 'This Action will overide the scores of all the questions' } });\r\n // ref.afterClosed.subscribe(data => {\r\n // \r\n // if (data.action === 'YES') {\r\n // alert(\"Hey\")\r\n this.editorService.formsPage.settings.assessmentMode = evt.isEnabled;\r\n this.editorService.formsPage.settings.defaultScore = evt.defaultScore;\r\n this.editorService.formsPage.settings.negativeScore = evt.negativeScore;\r\n this.editorService.formsPage.settings.negativeScoreCriteria = evt.negativeScoreCriteria;\r\n this.editorService.formsPage.settings.weightageEnabled = evt.weightageEnabled;\r\n this.settingsData.settingsElements[index] = evt;\r\n this.activeSettingType = 'none';\r\n\r\n const assessmentEligibleQuestions = ['checkbox', 'multiple-choice', 'dropdown'];\r\n this.editorService.formsPage.elements.forEach((question:any) => {\r\n this.editorService.score.defaultScore = evt.defaultScore;\r\n this.editorService.score.negativeScore = evt.negativeScore;\r\n if (assessmentEligibleQuestions.includes(question.type)) {\r\n question.choices.forEach((element:any) => {\r\n if (!element.isFailed) {\r\n element.score = evt.defaultScore;\r\n }\r\n if(element.isFailed && (evt.negativeScoreCriteria === 'FAILED' || evt.negativeScoreCriteria === 'FAILED_SKIPPED')){\r\n element.score = evt.negativeScore;\r\n }\r\n if (evt.weightageEnabled) {\r\n if (!question.weightage || question.weightage === undefined) {\r\n question.weightage = 100;\r\n }\r\n }else{\r\n question.weightage = 100;\r\n }\r\n });\r\n }\r\n this.editorService.formsPage.responseSegment['maxScore'] = this.criteriaService.calculateMaxScore(this.editorService.formsPage);\r\n });\r\n this.snackbar.show(\"The settings have been updated.\")\r\n this.activeSettingType = '';\r\n // } else {\r\n // this.fd.formsPage.settings.assessmentMode = false;\r\n // this.settingsData.settingsElements[index].defaultScore = this.fd.settings.defaultScore;\r\n // this.settingsData.settingsElements[index].negativeScore = this.fd.settings.negativeScore;\r\n // this.settingsData.settingsElements[index].weightageEnabled = this.fd.settings.weightageEnabled;\r\n // this.activeSettingType = 'none';\r\n // this.settingsData.settingsElements[index].isEnabled = false;\r\n // }\r\n // });\r\n }\r\n if (evt.type === 'RESPONSE_SEGMENT') {\r\n \r\n \r\n evt.isEnabled = true;\r\n if (evt.isEnabled) {\r\n evt.segmentData.isEnabled = true;\r\n this.editorService.formsPage.responseSegment = evt.segmentData;\r\n this.snackbar.show(\"The settings have been updated.\")\r\n this.activeSettingType = '';\r\n }\r\n }\r\n }\r\n\r\n cancel(){\r\n this.activeSettingType=''\r\n }\r\n}\r\n","import { moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { nanoid } from 'nanoid';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { retry } from 'rxjs/operators';\r\nimport { Configurations } from '../../../configurations';\r\n// import { environment } from 'src/environments/environment';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EditorService {\r\n env !:any;\r\n constructor(private http: HttpClient,@Optional() config?: Configurations) { \r\n if (config) {\r\n this.env = config.envConfig;\r\n }\r\n }\r\n currentPageDetails: any = { pageName: '', pageNumber: 1, pageDescription: '' };\r\n prefixForQuestionName = 'Question_';\r\n public activeQuestionIndex = new BehaviorSubject<number>(-5);\r\n activeQuestionStream$ = this.activeQuestionIndex.asObservable();\r\n public currentPageNumber: number = 1;\r\n public activeQuestion = 0;\r\n showAddPageOption = true;\r\n showPageDetails = false;\r\n public score = {\r\n defaultScore: 1,\r\n negativeScore: 0\r\n }\r\n public allPages: any = [];\r\n stepIdentifier = 'pagescreen'; // this value can be \"welcomescreen\",\"thankyouscreen\",\"pagescreen\" only\r\n assessmentId !: any;\r\n public settings: any = {\r\n assessmentMode: false,\r\n defaultScore: 1,\r\n negativeScoreCriteria: 'FAILED',\r\n negativeScore: 0,\r\n weightageEnabled: false,\r\n settingsEnabled: false\r\n }\r\n\r\n formsPage: any = {\r\n version: 2,\r\n questionRandomize: true,\r\n anonymousResponse: false,\r\n hasWelcome: false,\r\n hasWelcomeDescription: true,\r\n welcomeText: '',\r\n hasWelcomeImage: true,\r\n welcomeImage: '',\r\n welcomeDescription: '',\r\n hasThanks: false,\r\n hasThankyouImage: false,\r\n thankyouText: '',\r\n thankyouImage: '',\r\n hasThankyouDescription: true,\r\n thankyouDescription: '',\r\n elements: [],\r\n pageDetailsList: [],\r\n customResponseSet: [],\r\n settings: this.settings,\r\n responseSegment: this.initializeEmptyResponseSegment()\r\n };\r\n\r\n initializeEmptyResponseSegment() {\r\n return {\r\n title: '',\r\n description: '',\r\n maxScore: 10,\r\n segments: [\r\n\r\n ]\r\n }\r\n }\r\n\r\n uploadHandler(formData: any, destination: any) {\r\n return this.http.post<any>(this.env.fileUploadEndPoint + destination, formData);\r\n //return this.http.post<any>(\"env\" + destination, formData);\r\n }\r\n\r\n addQuestion(evt: any, index?: number) {\r\n switch (evt.trim()) {\r\n case 'welcome': {\r\n this.currentPageNumber = -1;\r\n this.stepIdentifier = 'welcomescreen';\r\n this.formsPage.hasWelcome = true;\r\n break;\r\n }\r\n case 'thankyou': {\r\n this.currentPageNumber = -2;\r\n this.stepIdentifier = 'thankyouscreen';\r\n break;\r\n }\r\n case 'multiple-choice': {\r\n this.setToPagefromWelcome();\r\n this.createMultipleChoice(index);\r\n break;\r\n }\r\n case 'checkbox': {\r\n this.setToPagefromWelcome();\r\n this.createCheckbox(index);\r\n break;\r\n }\r\n case 'star-rating': {\r\n this.setToPagefromWelcome();\r\n this.createStarRating(index);\r\n break;\r\n }\r\n case 'single-textbox': {\r\n this.setToPagefromWelcome();\r\n this.createSingleTextbox(index);\r\n break;\r\n }\r\n case 'comment-box': {\r\n this.setToPagefromWelcome();\r\n this.createCommentbox(index);\r\n break;\r\n }\r\n case 'matrix-dropdown': {\r\n this.setToPagefromWelcome();\r\n this.createMatrixDropdown(index);\r\n break;\r\n }\r\n case 'dropdown': {\r\n this.setToPagefromWelcome();\r\n this.createDropdown(index);\r\n break;\r\n }\r\n case 'slider': {\r\n this.setToPagefromWelcome();\r\n this.createSlider(index);\r\n break;\r\n }\r\n case 'rating-scale': {\r\n this.setToPagefromWelcome();\r\n this.createRatingScale(index)\r\n break;\r\n }\r\n case 'multiple-textbox': {\r\n this.setToPagefromWelcome();\r\n this.createMultipleTextbox(index);\r\n break;\r\n }\r\n case 'date-time': {\r\n this.setToPagefromWelcome();\r\n this.createDateTime(index);\r\n break;\r\n }\r\n case 'file-upload': {\r\n this.setToPagefromWelcome();\r\n this.createFileUpload(index);\r\n break;\r\n }\r\n case 'ranking': {\r\n this.setToPagefromWelcome();\r\n this.createRanking(index);\r\n break;\r\n }\r\n case 'star-rating': {\r\n this.setToPagefromWelcome();\r\n this.createStarRating(index);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n setToPagefromWelcome() {\r\n if (['thankyouscreen', 'welcomescreen'].includes(this.stepIdentifier)) {\r\n this.currentPageNumber = this.allPages.length;\r\n this.stepIdentifier = 'pagescreen';\r\n }\r\n }\r\n\r\n /**\r\n * Check whether to display Page Details or Add Page tilte option\r\n */\r\n checkForPageDetails() {\r\n if (this.currentPageDetails === undefined || this.currentPageDetails.pageName === '') {\r\n this.showAddPageOption = true;\r\n this.showPageDetails = false;\r\n } else {\r\n this.showAddPageOption = false;\r\n this.showPageDetails = true;\r\n }\r\n }\r\n /**\r\n * Creates a question of type multiple choice\r\n * @param index Index at which question needs to be created\r\n */\r\n createMultipleChoice(index?: any) {\r\n\r\n const element = {\r\n type: 'multiple-choice', name: ``, page: this.currentPageNumber, otherConfig: { color: '#000000', isFailed: false, score: this.score.defaultScore },\r\n isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false, visibilityLogic: [], choices: [\r\n {\r\n title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false,\r\n helpingLabel: '', isFailed: false, score: this.score.defaultScore, color: this.generateRandomColor()\r\n }]\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type checkbox\r\n * @param index Index at which question needs to be created\r\n */\r\n createCheckbox(index?: any) {\r\n\r\n const element = {\r\n type: 'checkbox', name: '', page: this.currentPageNumber, otherConfig: { color: '#000000', isFailed: false, score: this.score.defaultScore },\r\n isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\r\n isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [], choices:\r\n [{\r\n title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false,\r\n helpingLabel: '', isFailed: false, score: this.score.defaultScore, color: this.generateRandomColor()\r\n }\r\n ]\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type star rating\r\n * @param index Index at which question needs to be created\r\n * [Note]: Rating label type can take 2 values 'specific'/'scale'\r\n */\r\n createStarRating(index?: any) {\r\n const element = {\r\n type: 'star-rating', name: '', page: this.currentPageNumber, isRequired: false, title: '', hasDescription: false,\r\n description: '', hasComments: false, comments: '', randomize: false, hasOther: false, alignment: false, reverse: false,\r\n isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', cursorType: 'number',\r\n cursorColor: '#ff8000', scale: 2, starValue: '', hasRatingLabel: false, ratingLabelType: 'specific',\r\n scaleRangeFrom: 'Not at all likely',\r\n scaleRangeTo: 'Extreme Likely', visibilityLogic: [],\r\n choices: [\r\n { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' },\r\n { title: '', isVisible: true, value: 1, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' },\r\n ]\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type single textbox\r\n * @param index Index at which question needs to be created\r\n */\r\n createSingleTextbox(index?: any) {\r\n const element = {\r\n type: 'single-textbox', name: '', page: this.currentPageNumber,\r\n hasValidation: false, validationType: '', isRequired: false, hasCharacterLength: false, minCharacterLength: 0,\r\n maxCharacterLength: 100, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\r\n isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [],\r\n choices: [{ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' }]\r\n };\r\n\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type comment box\r\n * @param index Index at which question needs to be created\r\n */\r\n createCommentbox(index?: any) {\r\n const element = {\r\n type: 'comment-box', name: '', page: this.currentPageNumber,\r\n isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n hasCharacterLength: false, minCharacterLength: 0, maxCharacterLength: 0, randomize: false, hasOther: false,\r\n otherValue: 'Other', alignment: false, reverse: false, isRespondentAttachment: false, userAttachedFiles: [],\r\n isRespondentComment: false, userComments: '', visibilityLogic: [], choices: [\r\n { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '', imageURL: '' },\r\n ]\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n\r\n }\r\n\r\n /**\r\n * Creates a question of type matrix of dropdown\r\n * @param index Index at which question needs to be created\r\n */\r\n createMatrixDropdown(index?: any) {\r\n const element = {\r\n type: 'matrix-dropdown', name: '', page: this.currentPageNumber, otherConfig: { color: '#000000', isFailed: false, score: 1 },\r\n isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\r\n isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [],\r\n choices: [{ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }],\r\n columns: [{\r\n title: '', value: 1, weight: 0, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '',\r\n choices: [{ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }]\r\n }\r\n ]\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type dropdown\r\n * @param index Index at which question needs to be created\r\n */\r\n createDropdown(index?: any) {\r\n const element = {\r\n type: 'dropdown', name: '', page: this.currentPageNumber, otherConfig: { color: '#000000', isFailed: false, score: this.score.defaultScore },\r\n isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\r\n isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [],\r\n choices: [\r\n {\r\n title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '',\r\n isFailed: false, score: this.score.defaultScore, color: this.generateRandomColor()\r\n }\r\n ]\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type slider\r\n * @param index Index at which question needs to be created\r\n */\r\n createSlider(index?: any) {\r\n const element = {\r\n type: 'slider', name: '', page: this.currentPageNumber,\r\n isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\r\n isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [],\r\n choices: [{ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }],\r\n centerRange: false, adjustScale: false, numericBoxEnabled: false, left: 0, center: 0, right: 100,\r\n scaleRangeMin: 0, scaleRangeMax: 100, stepSize: 10, startPosition: 0, editorValue: 0\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type matrix rating scale\r\n * @param index Index at which question needs to be created\r\n */\r\n createRatingScale(index?: any) {\r\n const element = {\r\n type: 'rating-scale', name: '', page: this.currentPageNumber,\r\n isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n randomize: false, hasOther: false, hasRatingLabel: false, ratingLabelType: '',\r\n otherValue: 'Other', hasWeight: false, alignment: false, reverse: false,\r\n isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [],\r\n choices: [{ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }],\r\n columns: [{ title: '', value: 1, weight: 0, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }]\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type ranking\r\n * @param index Index at which question needs to be created\r\n */\r\n createRanking(index?: any) {\r\n const element = {\r\n type: 'ranking', name: '', page: this.currentPageNumber,\r\n isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n randomize: false, hasOther: false, otherValue: 'Other', hasRatingLabel: false, alignment: false,\r\n reverse: false, onlyNumber: true, isRespondentAttachment: false, userAttachedFiles: [],\r\n isRespondentComment: false, userComments: '', visibilityLogic: [], choices: [\r\n { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' },\r\n ]\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type multiple textbox\r\n * @param index Index at which question needs to be created\r\n */\r\n createMultipleTextbox(index?: any) {\r\n const element = {\r\n type: 'multiple-textbox', name: '',\r\n page: this.currentPageNumber, isRequired: false, title: '', hasDescription: false, description: '',\r\n randomize: false, hasOther: false, hasComments: false, comments: '', otherValue: 'Other', hasRatingLabel: false,\r\n alignment: false, reverse: false, onlyNumber: true, isRespondentAttachment: false, userAttachedFiles: [],\r\n isRespondentComment: false, userComments: '', visibilityLogic: [], choices: [\r\n { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' },\r\n ]\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type date/time\r\n * @param index Index at which question needs to be created\r\n */\r\n createDateTime(index?: any) {\r\n const element = {\r\n type: 'date-time', name: '', page: this.currentPageNumber,\r\n isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n randomize: false, hasOther: false, otherValue: 'Other', hasRatingLabel: false, alignment: false,\r\n reverse: false, onlyNumber: true, isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false,\r\n userComments: '', visibilityLogic: [], hasDate: true, hasTime: false, dateFormat: 'DD/MM/YYYY', timeFormat: 24,\r\n choices: [\r\n { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' },\r\n\r\n ],\r\n date: { title: '', value: '' },\r\n time: { title: '', value: '' }\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type file upload\r\n * @param index Index at which question needs to be created\r\n */\r\n createFileUpload(index?: any) {\r\n const element = {\r\n type: 'file-upload', name: '', page: this.currentPageNumber,\r\n isRequired: false, title: '', hasInstruction: false, instruction: '', hasDescription: false, description: '',\r\n hasComments: false, comments: '', randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\r\n fileTypeRestrictions: false, isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '',\r\n visibilityLogic: [], choices: [\r\n { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }],\r\n allowedFileTypes: {\r\n pdf: true,\r\n doc: true,\r\n png: true,\r\n jpg: true,\r\n gif: true\r\n }\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n /**\r\n * Creates a question of type image choice\r\n * @param index Index at which question needs to be created\r\n */\r\n createImageChoice(index?: any) {\r\n const element = {\r\n type: 'image-choice', name: '', page: this.currentPageNumber,\r\n isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\r\n randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\r\n isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '',\r\n visibilityLogic: [], choices: [\r\n { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '', imageURL: '' }\r\n\r\n ]\r\n };\r\n (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\r\n this.sortQuestion();\r\n }\r\n\r\n\r\n /**\r\n * Creates and adds the question to list of questions if a question's index is undefined\r\n * @param element Details of question to be created\r\n */\r\n operationOnCreateIfIndexUndefined(element: any) {\r\n\r\n element.name = this.generateQuestionName(this.formsPage.elements.length + 1),\r\n this.formsPage.elements.push(element);\r\n this.setActiveQuestionBasedOnPageLength();\r\n }\r\n\r\n /**\r\n * Creates and adds the question to list of questions if a question's index is present\r\n * @param element Details of question to be created\r\n * @param index Index at which question should be created\r\n */\r\n operationOnCreateIfIndexDefined(element: any, index: any) {\r\n\r\n element.name = this.generateQuestionName(index + 1);\r\n this.formsPage.elements.splice(index + 1, 0, element);\r\n this.activeQuestion = index + 1;\r\n this.activeQuestionIndex.next(index + 1);\r\n }\r\n /**\r\n * Sets the active question based on particular page\r\n */\r\n setActiveQuestionBasedOnPageLength() {\r\n let count = 0;\r\n for (let i = 1; i <= this.currentPageNumber; i++) {\r\n count += [...this.formsPage.elements].reduce(\r\n (counter: any, currentElement: any) => (i === currentElement.page ? counter + 1 : counter), 0) - 1;\r\n }\r\n this.activeQuestion = count + this.currentPageNumber - 1;\r\n this.activeQuestionIndex.next(count + this.currentPageNumber - 1);\r\n\r\n // setTimeout(() => {\r\n\r\n // }, 150);\r\n // this.cdr.detectChanges();\r\n }\r\n /**\r\n* Sorts the questions based on page number\r\n*/\r\n sortQuestion() {\r\n this.formsPage.elements.sort((a: any, b: any) => {\r\n return a.page - b.page;\r\n });\r\n }\r\n /**\r\n * Generates a unique question name for newly added question\r\n * @param questionIndex Index of question to be created\r\n */\r\n generateQuestionName(questionIndex: any): string {\r\n const questionNames = this.formsPage.elements.map((a: any) => a.name);\r\n if (questionNames.includes(`${this.prefixForQuestionName}${questionIndex}`)) {\r\n return this.generateQuestionName(questionIndex + 1);\r\n } else {\r\n const name = 'Question_' + questionIndex.toString();\r\n return name;\r\n }\r\n }\r\n generateRandomColor() {\r\n //return '#' + Math.floor(Math.random() * 16777215).toString(16);\r\n return '#000000'\r\n }\r\n\r\n /**\r\n * Sets the question as active based on the particular index\r\n * @param index Index of the question to be marked as active question\r\n */\r\n setactiveQuestion(index?: any) {\r\n this.activeQuestion = index;\r\n this.activeQuestionIndex.next(index);\r\n }\r\n /**\r\n * Duplicates a question with particular index\r\n * @param index Index of question to be duplicated\r\n */\r\n copyQuestion(index: any) {\r\n this.setactiveQuestion(index + 1);\r\n const COPY_ELEMENT = JSON.parse(JSON.stringify(this.formsPage.elements[index]));\r\n if (COPY_ELEMENT.errorArray) {\r\n delete COPY_ELEMENT.errorArray;\r\n }\r\n COPY_ELEMENT.visibilityLogic = [];\r\n const elementsNames: any = [];\r\n this.formsPage.elements.forEach((element: any) => {\r\n elementsNames.push(element.name);\r\n });\r\n this.checkForSameName(elementsNames, COPY_ELEMENT);\r\n this.formsPage.elements.splice(index + 1, 0, COPY_ELEMENT);\r\n }\r\n /**\r\n * Assigns a unique name to the duplicated question\r\n * @param elementsNames List of question names\r\n * @param COPY_ELEMENT Details of question duplicated\r\n */\r\n checkForSameName(elementsNames: any, COPY_ELEMENT: any) {\r\n if (elementsNames.includes(COPY_ELEMENT.name)) {\r\n const COPY_ELEMENT_NAME = COPY_ELEMENT.name.split('_');\r\n COPY_ELEMENT_NAME[COPY_ELEMENT_NAME.length - 1] = (parseInt(COPY_ELEMENT_NAME[COPY_ELEMENT_NAME.length - 1], 10) + 1).toString();\r\n COPY_ELEMENT.name = COPY_ELEMENT_NAME.join('_');\r\n this.checkForSameName(elementsNames, COPY_ELEMENT);\r\n }\r\n }\r\n /**\r\n * Deletes the question on click of delete button\r\n * @param index Index of question to be deleted\r\n */\r\n deleteQuestion(index: any) {\r\n this.removeLogicFromDependentQuestion(index);\r\n this.formsPage.elements.splice(index, 1);\r\n }\r\n /**\r\n * Removes the logic data for a particular question from other questions\r\n * @param index Index of question whose logic data needs to be removed from other questions\r\n */\r\n removeLogicFromDependentQuestion(index: any) {\r\n this.formsPage.elements.forEach((questionElement: any) => {\r\n if (questionElement.visibilityLogic.length > 0) {\r\n questionElement.visibilityLogic = questionElement.visibilityLogic.filter((logic: any) =>\r\n logic.questionName !== this.formsPage.elements[index].name);\r\n }\r\n });\r\n }\r\n /**\r\n* Adds a new page\r\n*/\r\n addPage() {\r\n if (this.currentPageNumber === -1 || this.currentPageNumber === -2) {\r\n //this.currentPageNumber = this.numberOfPages() + 1;\r\n this.currentPageNumber = this.allPages.length + 1;\r\n this.allPages.push(this.currentPageNumber);\r\n this.numberOfPages();\r\n } else {\r\n this.currentPageNumber = this.allPages.length + 1;\r\n this.allPages.push(this.currentPageNumber);\r\n }\r\n this.stepIdentifier = 'pagescreen';\r\n this.activeQuestionIndex.next(-10);\r\n }\r\n /**\r\n * Counts the number of pages in a survey/form\r\n */\r\n numberOfPages(): any {\r\n const PAGE_ARRAY: any = [];\r\n if (this.formsPage.elements.length !== 0) {\r\n this.formsPage.elements.forEach((element: any) => {\r\n PAGE_ARRAY.push(element.page);\r\n this.currentPageDetails.pageNumber = element.page;\r\n if (this.formsPage.pageDetailsList.length === 0) {\r\n this.formsPage.pageDetailsList.push(this.currentPageDetails);\r\n }\r\n });\r\n this.allPages = [...new Set(PAGE_ARRAY)];\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', token: this.getAuthorizationToken() })\r\n };\r\n\r\n fetchAssessmentData(id: string) {\r\n //mode=assessment/fetchQuestionsByAssessmentId&id=61f3f7871c60020009a20543\r\n return this.http.get(\"env\" + 'assessment/fetchQuestionsByAssessmentId&id=' + id, this.httpOptions).pipe(retry(2));\r\n }\r\n\r\n saveAssessment(id: any, payload: any) {\r\n return this.http.post(\"env\" + 'assessment/update&id=' + id, payload, this.httpOptions)\r\n //?mode=assessment/update&id=61f3f7871c60020009a20543\r\n }\r\n\r\n getAuthorizationToken() {\r\n const TOKEN = localStorage.getItem('currentUser');\r\n let currentUser;\r\n TOKEN !== null ? (currentUser = JSON.parse(TOKEN)) : (currentUser = {});\r\n return currentUser.token;\r\n }\r\n\r\n /**\r\n * Extracts the text from a particular html content\r\n * @param s html content from which text needs to be extracted\r\n */\r\n extract(s: string) {\r\n const span = document.createElement('span');\r\n span.innerHTML = s;\r\n return span.textContent || span.innerText;\r\n }\r\n /**\r\n * Moves Question to a particular index in an array\r\n * @param previous Index from which Question should be moved\r\n * @param next Index before which Question should be moved\r\n */\r\n moveQuestion(previous: any, next: any) {\r\n moveItemInArray(this.formsPage.elements, previous, next);\r\n }\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appInsertion]',\r\n})\r\nexport class InsertionDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}\r\n","import { Component, Type, ComponentFactoryResolver, ViewChild, OnDestroy, ComponentRef, AfterViewInit, ChangeDetectorRef, OnInit } from '@angular/core';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { Subject } from 'rxjs';\r\nimport { DialogRef } from './dialog-ref';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { NavigationEnd, NavigationError, NavigationStart, Router, ROUTER_CONFIGURATION } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.css'],\r\n})\r\nexport class DialogComponent implements AfterViewInit, OnDestroy, OnInit {\r\n componentRef!: ComponentRef<any>;\r\n position: any;\r\n background: any;\r\n @ViewChild(InsertionDirective, { static: true })\r\n insertionPoint!: InsertionDirective;\r\n animation = true;\r\n\r\n private readonly onDialogClose = new Subject<any>();\r\n public onClose = this.onDialogClose.asObservable();\r\n\r\n childComponentType!: Type<any>;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private cd: ChangeDetectorRef,\r\n private dialogRef: DialogRef,\r\n public config: DialogConfig,\r\n private router: Router\r\n ) {\r\n // this.componentRef = this.componentRef;\r\n // this.animate = this.animate;\r\n // this.insertionPoint = this.insertionPoint;\r\n // this.childComponentType = this.childComponentType;\r\n }\r\n ngOnInit() {\r\n this.position = this.config.position;\r\n this.background = this.config.background;\r\n document.body.style.overflow = 'hidden';\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 200);\r\n this.routeAction();\r\n }\r\n\r\n routeAction() {\r\n this.router.events.subscribe((event: any) => {\r\n if (event instanceof NavigationStart) {\r\n // Show loading indicator\r\n }\r\n if (event instanceof NavigationEnd) {\r\n // Hide loading indicator\r\n this.dialogRef.close();\r\n }\r\n if (event instanceof NavigationError) {\r\n // Hide loading indicator\r\n // Present error to user\r\n }\r\n });\r\n }\r\n ngAfterViewInit() {\r\n this.loadChildComponent(this.childComponentType);\r\n this.cd.detectChanges();\r\n }\r\n\r\n onOverlayClicked(evt: MouseEvent) {\r\n // this.dialogRef.close();\r\n }\r\n\r\n onDialogClicked(evt: MouseEvent) {\r\n evt.stopPropagation();\r\n }\r\n\r\n loadChildComponent(componentType: Type<any>) {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\r\n\r\n const viewContainerRef = this.insertionPoint.viewContainerRef;\r\n viewContainerRef.clear();\r\n\r\n this.componentRef = viewContainerRef.createComponent(componentFactory);\r\n Object.keys(this.config.data).forEach((x) =>\r\n this.componentRef.instance[x] = this.config.data[x]\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n }\r\n\r\n close() {\r\n this.onDialogClose.next(false);\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { DialogRef } from './dialog-ref';\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DialogComponent, InsertionDirective],\r\n entryComponents: [DialogComponent],\r\n providers: [DialogRef],\r\n})\r\nexport class DialogModule {}\r\n","import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\r\n\r\nexport class DialogInjector implements Injector {\r\n constructor(private parentDialogInjector: Injector, private dialogAdditionalTokens: WeakMap<any, any>) {}\r\n\r\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n // get(token: any, notFoundValue?: any){return; }\r\n get(token: any, notFoundValue?: any, flags?: any) {\r\n const value = this.dialogAdditionalTokens.get(token);\r\n if (value) {\r\n return value;\r\n }\r\n return this.parentDialogInjector.get<any>(token, notFoundValue);\r\n }\r\n}\r\n","import {\r\n Injectable,\r\n ComponentFactoryResolver,\r\n ApplicationRef,\r\n Injector,\r\n Type,\r\n EmbeddedViewRef,\r\n ComponentRef,\r\n} from '@angular/core';\r\nimport { DialogModule } from './dialog.module';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { DialogInjector } from './dialog-injector';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { DialogRef } from './dialog-ref';\r\n\r\n@Injectable({\r\n providedIn: DialogModule,\r\n})\r\nexport class DialogService {\r\n dialogComponentRef!: ComponentRef<DialogComponent>;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector\r\n ) {}\r\n\r\n public open(componentType: Type<any>, config: DialogConfig) {\r\n const dialogRef = this.appendDialogComponentToBody(config);\r\n\r\n this.dialogComponentRef.instance.childComponentType = componentType;\r\n\r\n return dialogRef;\r\n }\r\n\r\n private appendDialogComponentToBody(config: DialogConfig) {\r\n const map = new WeakMap();\r\n map.set(DialogConfig, config);\r\n\r\n const dialogRef = new DialogRef();\r\n map.set(DialogRef, dialogRef);\r\n\r\n const sub = dialogRef.afterClosed.subscribe(() => {\r\n this.removeDialogComponentFromBody();\r\n sub.unsubscribe();\r\n });\r\n\r\n const componentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(DialogComponent);\r\n const componentRef = componentFactory.create(\r\n new DialogInjector(this.injector, map)\r\n );\r\n\r\n this.appRef.attachView(componentRef.hostView);\r\n\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\r\n .rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n\r\n this.dialogComponentRef = componentRef;\r\n\r\n this.dialogComponentRef.instance.onClose.subscribe(() => {\r\n this.removeDialogComponentFromBody();\r\n });\r\n\r\n return dialogRef;\r\n }\r\n\r\n private removeDialogComponentFromBody() {\r\n this.appRef.detachView(this.dialogComponentRef.hostView);\r\n this.dialogComponentRef.destroy();\r\n }\r\n\r\n close() {\r\n this.removeDialogComponentFromBody();\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\nimport { DialogConfig } from \"../../dialog/dialog-config\";\r\nimport { DialogRef } from \"../../dialog/dialog-ref\";\r\n@Component({\r\n selector: \"app-delete\",\r\n templateUrl: \"./delete.component.html\",\r\n styleUrls: [\"./delete.component.less\"],\r\n})\r\nexport class DeleteComponent implements OnInit {\r\n animate = false;\r\n constructor(private dialog: DialogRef, public dialogConfig: DialogConfig) { }\r\n\r\n ngOnInit(): void { }\r\n delete(deleteFlag: boolean) {\r\n this.animate = true;\r\n setTimeout(() => {\r\n this.animate = false;\r\n }, 1000);\r\n this.dialog.close(deleteFlag);\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\nimport { DialogConfig } from \"../../dialog/dialog-config\";\r\nimport { DialogRef } from \"../../dialog/dialog-ref\";\r\n\r\n@Component({\r\n selector: \"app-active\",\r\n templateUrl: \"./active.component.html\",\r\n styleUrls: [\"./active.component.less\"],\r\n})\r\nexport class ActiveComponent implements OnInit {\r\n animate = false;\r\n itemName = ''\r\n // constructor(private dialog: DialogRef,\r\n // private dialogConfig: DialogConfig\r\n // ) {\r\n // this.itemName = dialogConfig.data.itemName;\r\n // }\r\n constructor(private dialog: DialogRef,public dialogConfig:DialogConfig) {}\r\n\r\n ngOnInit(): void { }\r\n\r\n activate(deleteFlag: boolean) {\r\n this.animate = true;\r\n setTimeout(() => {\r\n this.animate = false;\r\n }, 5000);\r\n this.dialog.close(deleteFlag);\r\n }\r\n}\r\n","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\r\nimport { AddPageDetailsComponent } from '../components/add-page-details/add-page-details.component';\r\nimport { AssessmentSettingsComponent } from '../components/assessment-settings/assessment-settings.component';\r\n\r\nimport { EditorService } from '../services/editor.service';\r\n\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DialogService } from '../../../ui-kit/dialog/dialog.service';\r\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\r\nimport { DeleteComponent } from '../../../ui-kit/action-dialog/delete/delete.component';\r\nimport { ActiveComponent } from '../../../ui-kit/action-dialog/active/active.component';\r\n\r\n@Component({\r\n selector: 'app-create-assessment-container',\r\n templateUrl: './create-assessment-container.component.html',\r\n styleUrls: ['./create-assessment-container.component.less'],\r\n providers: [EditorService]\r\n})\r\nexport class CreateAssessmentContainerComponent implements OnInit {\r\n showCollapse = false;\r\n expandPage = false;\r\n hideQuestion = false;\r\n assessmentId = '';\r\n assessmentName = '';\r\n assessmentCategory = '';\r\n assessmentControlId = '';\r\n assessmentCurrentState = 'DRAFT';\r\n pageMode: 'EDIT' | 'PREVIEW' = 'EDIT';\r\n isLoaded: boolean = false;\r\n @Input() openPortal :'ASSESSMENT_IMPORT' | 'RESPONSIBILITY_CHECKPOINT'|'' = '';\r\n @Output() setIsUploaded = new EventEmitter();\r\n @Output() postAssessment = new EventEmitter();\r\n\r\n @Input('assessmentJSON') set assessmentData(value: any) {\r\n this.initializeAssessment(value)\r\n }\r\n @Input('checkpointJSON') set checkpointData(value: any) {\r\n this.initializeCheckpoint(value)\r\n }\r\n\r\n constructor(\r\n private dialog: DialogService,\r\n public editorService: EditorService,\r\n // private layoutService: LayoutService,\r\n private route: ActivatedRoute,\r\n private snackbar: SnackBarService,\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.editorService.addPage();\r\n this.editorService.numberOfPages();\r\n // this.initializeAssessment();\r\n }\r\ntriggerPreviewWithValidation(){\r\n this.editorService.activeQuestionIndex.next(-10);\r\n this.editorService.activeQuestion = -10;\r\n}\r\n initializeAssessment(assessmentData: any) {\r\n if (assessmentData) {\r\n this.editorService.formsPage = assessmentData.assessmentData;\r\n this.assessmentName = assessmentData.metadata.assessment_name;\r\n this.assessmentCategory = assessmentData.metadata.category_arr;\r\n\r\n }\r\n }\r\n\r\n initializeCheckpoint(checkpointData:any){\r\n console.log(\"initializeCheckpoint ==>\", checkpointData)\r\n if(checkpointData && Object.keys(checkpointData)?.length > 0){\r\n this.editorService.formsPage = checkpointData;\r\n }\r\n }\r\n\r\n setAllPages() {\r\n this.editorService.allPages = [...new Set(this.editorService.formsPage.elements.map((ele: any) => ele.page))];\r\n this.getPageName(1);\r\n }\r\n\r\n addPageDetails() {\r\n\r\n const ref = this.dialog.open(AddPageDetailsComponent, {\r\n data: { page: this.editorService.currentPageNumber, pageDetails: this.editorService.currentPageDetails, ref: this.editorService },\r\n position: 'RIGHT',\r\n background: 'black',\r\n });\r\n ref.afterClosed.subscribe((data: any) => {\r\n console.log(\"data ====>\", data, this.editorService.stepIdentifier, this.editorService.showAddPageOption,this.editorService.showPageDetails);\r\n\r\n this.generatePageDropdown();\r\n })\r\n }\r\n\r\n public entitySettings: any = {\r\n panelTitle: ''\r\n };\r\n\r\n assessmentSettings() {\r\n this.entitySettings = this.getSettingsData();\r\n const ref = this.dialog.open(AssessmentSettingsComponent, {\r\n data: { settings: this.entitySettings, service: this.editorService },\r\n position: 'RIGHT',\r\n background: 'black',\r\n });\r\n }\r\n\r\n getSettingsData() {\r\n let settings: any = {\r\n panelTitle: `Assessment settings`,\r\n\r\n settingsElements: []\r\n }\r\n settings.settingsElements.push(\r\n {\r\n type: 'ASSESSMENT',\r\n entityType: 'ASSESSMENT',\r\n isVisible: true,\r\n isEnabled: this.editorService.formsPage.settings.assessmentMode,\r\n helpingText: 'You can configure scores for the questions and analyze the responses submitted by the respondent based on these scores.',\r\n defaultScore: this.editorService.formsPage.settings.defaultScore,\r\n negativeScoreCriteria: this.editorService.formsPage.settings.negativeScoreCriteria,\r\n negativeScore: this.editorService.formsPage.settings.negativeScore,\r\n weightageEnabled: this.editorService.formsPage.settings.weightageEnabled,\r\n settingTitle: 'ASSESSMENT MODE',\r\n settingEnableText: `Enable assessment mode for this assessment`,\r\n updateType: 'LAZY'\r\n }\r\n\r\n )\r\n settings.settingsElements.push(\r\n {\r\n type: 'RESPONSE_SEGMENT',\r\n entityType: 'ASSESSMENT',\r\n helpingText: 'Response segments let you divide the responses into separate parts or sections for easier analysis of data and assist in decision making.',\r\n isVisible: true,\r\n isEnabled: this.editorService.formsPage.responseSegment['isEnabled'] ?? false,\r\n settingTitle: 'RESPONSE SEGMENTS',\r\n settingEnableText: `Configure Response Segments for this assessment`,\r\n updateType: 'LAZY',\r\n segmentData: this.editorService.formsPage.responseSegment\r\n }\r\n )\r\n return settings;\r\n }\r\n\r\n clickCollapse() {\r\n this.showCollapse = !this.showCollapse;\r\n }\r\n\r\n clickExpand() {\r\n this.expandPage = true;\r\n }\r\n\r\n closeExpand() {\r\n this.expandPage = false;\r\n }\r\n\r\n deletePage() {\r\n const ref = this.dialog.open(DeleteComponent, {\r\n data: { message: `This action will <strong>remove</strong> this page.` },\r\n position: 'CENTER',\r\n background: 'black',\r\n });\r\n ref.afterClosed.subscribe((data: any) => {\r\n\r\n if (data === true) {\r\n this.deletePageConfirm(true)\r\n }\r\n\r\n })\r\n }\r\n\r\n deletePageConfirm(confirmDelete: any) {\r\n if (confirmDelete) {\r\n this.editorService.allPages = this.editorService.allPages.filter((pageNum: any) => pageNum !== this.editorService.currentPageNumber);\r\n this.editorService.allPages = this.updatePageNumbersForAllPages(this.editorService.allPages);\r\n this.editorService.formsPage.pageDetailsList = this.editorService.formsPage.pageDetailsList.filter((pageDetail: any) =>\r\n pageDetail.pageNumber !== this.editorService.currentPageNumber);\r\n this.editorService.formsPage.pageDetailsList = this.updatePageNumberForPageDetails(this.editorService.formsPage.pageDetailsList);\r\n this.editorService.formsPage.elements = this.editorService.formsPage.elements.filter(\r\n (elementDetail: any) => elementDetail.page !== this.editorService.currentPageNumber);\r\n this.editorService.formsPage.elements = this.updatePageNumberForQuestions(this.editorService.formsPage.elements);\r\n if (this.editorService.currentPageNumber > 1) {\r\n this.editorService.currentPageNumber -= 1;\r\n }\r\n this.getPageName(this.editorService.currentPageNumber);\r\n this.checkForPageDetails();\r\n }\r\n\r\n this.editorService.activeQuestion = -10;\r\n }\r\n\r\n updatePageNumbersForAllPages(arrayToBeUpdated: any) {\r\n for (let i = 0; i < arrayToBeUpdated.length; i++) {\r\n if (i >= this.editorService.currentPageNumber - 1) {\r\n arrayToBeUpdated[i] -= 1;\r\n }\r\n }\r\n return arrayToBeUpdated;\r\n }\r\n\r\n updatePageNumberForPageDetails(arrayToBeUpdated: any) {\r\n arrayToBeUpdated.forEach((element: any) => {\r\n if (element.pageNumber >= this.editorService.currentPageNumber) {\r\n element.pageNumber -= 1;\r\n }\r\n });\r\n return arrayToBeUpdated;\r\n }\r\n\r\n updatePageNumberForQuestions(arrayToBeUpdated: any) {\r\n arrayToBeUpdated.forEach((element: any) => {\r\n if (element.page >= this.editorService.currentPageNumber) {\r\n element.page -= 1;\r\n }\r\n });\r\n return arrayToBeUpdated;\r\n }\r\n\r\n openQuestion() {\r\n this.hideQuestion = true;\r\n }\r\n\r\n closeQuestion() {\r\n this.hideQuestion = false;\r\n }\r\n\r\n deleteQuestionWithValidation(index: any) {\r\n if (index === 'welcome') {\r\n this.editorService.formsPage.hasWelcome = false;\r\n this.editorService.currentPageNumber = 1;\r\n this.editorService.stepIdentifier = 'pagescreen';\r\n }\r\n this.editorService.deleteQuestion(index);\r\n }\r\n\r\n checkforError(mode?: any) {\r\n // this.moreOptions = false;\r\n const errorQuestionIndex = this.editorService.formsPage.elements.findIndex(\r\n (element: any, index: any) => (element.errorArray && element.errorArray !== {} && Object.values(element.errorArray).length > 0));\r\n if (errorQuestionIndex >= 0) {\r\n if (mode === 'full') {\r\n this.editorService.currentPageNumber = this.editorService.formsPage.elements[errorQuestionIndex].page;\r\n }\r\n if (mode !== 'partial') {\r\n // this.getPageName(this.editorService.currentPageNumber);\r\n\r\n this.editorService.activeQuestion = errorQuestionIndex;\r\n this.editorService.activeQuestionIndex.next(errorQuestionIndex);\r\n\r\n const question = document.getElementById(this.editorService.formsPage.elements[errorQuestionIndex].name);\r\n setTimeout(() => {\r\n if (question) {\r\n question.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n }\r\n }, 200);\r\n }\r\n if (mode === 'save') {\r\n this.editorService.activeQuestion = -10;\r\n this.editorService.activeQuestionIndex.next(-10);\r\n }\r\n\r\n return true;\r\n } else {\r\n if (mode === 'save') {\r\n this.editorService.activeQuestion = -10;\r\n this.editorService.activeQuestionIndex.next(-10);\r\n }\r\n return false;\r\n }\r\n }\r\n\r\n generatePageDropdown() {\r\n const list = [];\r\n if (this.editorService.formsPage.hasWelcome === true) {\r\n list.push({ value: -1, template: `<span class=\"page-number\">Welcome Screen</span>` });\r\n }\r\n if (this.editorService.formsPage.hasThanks === true) {\r\n list.push({ value: -2, template: `<span class=\"page-number\">Thank you Screen</span>` });\r\n }\r\n\r\n this.editorService.allPages.forEach((element: any) => {\r\n list.push({ value: element, template: this.getPageNameForDropdown(element) });\r\n\r\n });\r\n\r\n return list;\r\n }\r\n\r\n getPageNameForDropdown(pageNumber: any) {\r\n let pageValue = `<span class=\"page-number\">Page ${pageNumber}</span>`;\r\n this.editorService.formsPage.pageDetailsList.forEach((pageDetail: any) => {\r\n if (pageDetail.pageNumber === pageNumber && pageDetail.pageName !== '') {\r\n pageValue = `<span class=\"page-label vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">PAGE</span>\r\n <span class=\"page-number vx-fs-11 vx-paragraph-txt\">${pageDetail.pageNumber}</span>`\r\n //pageValue = `<span class=\"page-label vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">Page </span> <span ${pageDetail.pageNumber}</span> <span class=\"page-number vx-fs-11 vx-paragraph-txt\"> ${pageDetail.pageName}</span>`;\r\n }\r\n });\r\n return pageValue;\r\n }\r\n\r\n pageChanged(evt: any) {\r\n\r\n if (evt.value === -1) {\r\n this.setIdentifier('welcomescreen');\r\n } else if (evt.value === -2) {\r\n this.setIdentifier('thankyouscreen');\r\n } else if (evt.value >= 0) {\r\n this.editorService.currentPageNumber = evt?.value;\r\n this.setIdentifier('pagescreen');\r\n }\r\n }\r\n\r\n setIdentifier(screen: any) {\r\n this.changeToInactive();\r\n if (screen === 'welcomescreen') {\r\n this.editorService.stepIdentifier = 'welcomescreen';\r\n this.editorService.currentPageNumber = -1;\r\n }\r\n if (screen === 'thankyouscreen') {\r\n this.editorService.stepIdentifier = 'thankyouscreen';\r\n this.editorService.currentPageNumber = -2;\r\n }\r\n if (screen === 'pagescreen') {\r\n this.editorService.stepIdentifier = 'pagescreen';\r\n if (this.editorService.allPages.length === 0) {\r\n this.editorService.addPage();\r\n this.editorService.currentPageNumber = 1;\r\n } else if (this.editorService.currentPageNumber === -1 || this.editorService.currentPageNumber === -2) {\r\n this.editorService.currentPageNumber = this.editorService.allPages.length;\r\n }\r\n\r\n }\r\n this.getPageName(this.editorService.currentPageNumber);\r\n }\r\n\r\n getPageName(pageNumber: any) {\r\n console.log(\"called 11\")\r\n this.editorService.currentPageDetails = { pageName: '', pageNumber: 0, pageDescription: '' };\r\n this.editorService.formsPage.pageDetailsList.forEach((pageDetail: any) => {\r\n if (pageDetail.pageNumber === pageNumber) {\r\n this.editorService.currentPageDetails.pageNumber = pageDetail.pageNumber;\r\n this.editorService.currentPageDetails.pageName = pageDetail.pageName;\r\n this.editorService.currentPageDetails.pageDescription = pageDetail.pageDescription;\r\n }\r\n });\r\n this.checkForPageDetails();\r\n }\r\n\r\n checkForPageDetails() {\r\n if (this.editorService.currentPageDetails === undefined || this.editorService.currentPageDetails.pageName === '') {\r\n this.editorService.showAddPageOption = true;\r\n this.editorService.showPageDetails = false;\r\n } else {\r\n this.editorService.showAddPageOption = false;\r\n this.editorService.showPageDetails = true;\r\n }\r\n }\r\n\r\n changeToInactive() {\r\n this.editorService.activeQuestion = -5;\r\n this.editorService.activeQuestionIndex.next(-5);\r\n }\r\n\r\n addNewPage() {\r\n this.editorService.addPage();\r\n this.editorService.currentPageDetails = { pageName: '', pageNumber: this.editorService.currentPageNumber, pageDescription: '' };\r\n this.editorService.showPageDetails = false;\r\n this.editorService.showAddPageOption = true;\r\n this.generatePageDropdown();\r\n }\r\n\r\n capitalizeString(stringValue: string) {\r\n return stringValue[0].toUpperCase() + stringValue.slice(1);\r\n }\r\n\r\n onDeletePageClick() {\r\n // this.showDeletePopup = true;\r\n }\r\n\r\n isPageEmpty() {\r\n if (![...new Set(this.editorService.formsPage.elements.map((element: any) => element.page))].includes(this.editorService.currentPageNumber)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n submitAfterErrorCheck(mode: any) {\r\n this.editorService.activeQuestionIndex.next(-10);\r\n this.editorService.activeQuestion = -10;\r\n if (this.editorService.stepIdentifier === 'welcomescreen' || this.editorService.stepIdentifier === 'thankyouscreen') {\r\n this.editorService.currentPageNumber = 1;\r\n this.editorService.stepIdentifier = 'pagescreen';\r\n }\r\n //this.pageMode = 'EDIT';\r\n\r\n this.validateWelcomeThankYou();\r\n\r\n setTimeout(() => {\r\n if (!this.checkforError('full')) {\r\n for (const question of this.editorService.formsPage.elements) {\r\n if (!['checkbox', 'dropdown', 'multiple-choice'].includes(question.type)) {\r\n if (question.choices) {\r\n question.choices.forEach((element: any) => {\r\n element.color = undefined;\r\n element.score = 1;\r\n element.isFailed = false;\r\n });\r\n }\r\n question.otherConfig = { color: '', isFailed: false, score: 0 };\r\n }\r\n }\r\n this.save(mode)\r\n }\r\n }, 200);\r\n\r\n }\r\n\r\n validateWelcomeThankYou() {\r\n const question = this.editorService.formsPage;\r\n if (question.hasWelcome === true) {\r\n if (question.hasWelcomeDescription === true && this.editorService.extract(question.welcomeDescription).length === 0) {\r\n this.editorService.formsPage.hasWelcomeDescription = false;\r\n }\r\n if (question.hasWelcomeImage === true && this.editorService.extract(question.welcomeImage).length === 0) {\r\n this.editorService.formsPage.hasWelcomeImage = false;\r\n }\r\n if (this.editorService.extract(question.welcomeDescription).length === 0 &&\r\n this.editorService.extract(question.welcomeText).length === 0 &&\r\n this.editorService.extract(question.welcomeImage).length === 0) {\r\n this.editorService.formsPage.hasWelcome = false;\r\n this.editorService.formsPage.hasWelcomeDescription = true;\r\n this.editorService.formsPage.hasWelcomeImage = true;\r\n }\r\n }\r\n if (question.hasThanks === true) {\r\n if (question.hasThankyouDescription === true && this.editorService.extract(question.thankyouDescription).length === 0) {\r\n this.editorService.formsPage.hasThankyouDescription = false;\r\n }\r\n if (question.hasThankyouImage === true && this.editorService.extract(question.thankyouImage).length === 0) {\r\n this.editorService.formsPage.hasThankyouImage = false;\r\n }\r\n if (this.editorService.extract(question.thankyouDescription).length === 0 &&\r\n this.editorService.extract(question.thankyouText).length === 0 &&\r\n this.editorService.extract(question.thankyouImage).length === 0) {\r\n this.editorService.formsPage.hasThanks = false;\r\n this.editorService.formsPage.hasThankyouDescription = true;\r\n this.editorService.formsPage.hasThankyouImage = true;\r\n }\r\n }\r\n }\r\n\r\n save(mode: 'DRAFT' | 'ACTIVE') {\r\n if (mode === 'ACTIVE' && this.openPortal !== 'RESPONSIBILITY_CHECKPOINT') {\r\n const ref = this.dialog.open(ActiveComponent, {\r\n data: {\r\n message: `Once published, this assessment will be active and can be associated with a compliance responsibility.`\r\n },\r\n position: 'CENTER',\r\n background: 'black',\r\n });\r\n ref.afterClosed.subscribe({\r\n next: (res: any) => {\r\n if (res === true) {\r\n this.postAssessment.emit({ mode: mode, assessmentDetails: this.editorService.formsPage });\r\n }\r\n }\r\n })\r\n } else {\r\n this.postAssessment.emit({ mode: mode, assessmentDetails: this.editorService.formsPage});\r\n\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-question-type',\r\n templateUrl: './question-type.component.html',\r\n styleUrls: ['./question-type.component.less']\r\n})\r\nexport class QuestionTypeComponent implements OnInit {\r\n@Output() addQuestion = new EventEmitter();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { EditorConfig } from 'vcomply-editor';\r\n\r\n@Component({\r\n selector: 'app-add-segment-popup',\r\n templateUrl: './add-segment-popup.component.html',\r\n styleUrls: ['./add-segment-popup.component.less']\r\n})\r\nexport class AddSegmentPopupComponent implements OnInit {\r\n\r\n selectedColor = '#325cd3';\r\n @Input() top!: string;\r\n @Input() left!: string;\r\n @Output() save = new EventEmitter<any>();\r\n @Output() closeSegment = new EventEmitter<any>();\r\n @Input() segmentCollection: any = [];\r\n @Input() mode: any;\r\n @Input() maxRange: any;\r\n @Input() criteria: any = {\r\n id: '',\r\n segmentName: '',\r\n segmentDescription: '',\r\n toRange: 0,\r\n fromRange: 0,\r\n color: '#000000'\r\n };\r\n segmentError:any = []\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.criteria = { ...this.criteria };\r\n \r\n // this.segmentCollection = {...this.segmentCollection}\r\n\r\n }\r\n\r\n fromManager(mode:any) {\r\n if (mode === '+') {\r\n this.criteria.fromRange = this.criteria.fromRange + 1;\r\n } else if (mode === '-') {\r\n if (this.criteria.fromRange > 0) {\r\n this.criteria.fromRange = this.criteria.fromRange - 1;\r\n }\r\n }\r\n }\r\n\r\n toManager(mode:any) {\r\n if (mode === '+') {\r\n this.criteria.toRange = this.criteria.toRange + 1;\r\n } else if (mode === '-') {\r\n if (this.criteria.toRange > 0) {\r\n this.criteria.toRange = this.criteria.toRange - 1;\r\n }\r\n }\r\n }\r\n saveSegment(){\r\n \r\n if(this.validateSegment()){\r\n this.save.emit({...this.criteria});\r\n }\r\n\r\n }\r\n closeResult() {\r\n // this.closeSegment.emit();\r\n }\r\n\r\n\r\n validateSegment(){\r\n let fromRange = this.criteria.fromRange;\r\n let toRange = this.criteria.toRange;\r\n this.segmentError = []\r\n let status\r\n if(fromRange > this.maxRange || toRange > this.maxRange){\r\n this.segmentError.push({type:'INVALID_RANGE',message:'Please enter a valid range for this segment.'})\r\n return false;\r\n }\r\n if(this.criteria.segmentName.trim().length === 0){\r\n this.segmentError.push({type:'NAME_MISSING',message:'Please enter a name for this segment.'})\r\n return false;\r\n } else if(fromRange >= toRange){\r\n \r\n this.segmentError.push({type:'RANGE_REVERSE',message:'Please enter a valid range for this segment.'})\r\n return false;\r\n } else if(this.segmentCollection.length > 0) {\r\n status = this.segmentCollection.some((segment:any) =>{\r\n if(this.mode === 'EDIT'){\r\n if(segment.id !== this.criteria.id){\r\n return ((fromRange >= segment['fromRange'] && fromRange <= segment['toRange']) || (toRange >= segment['fromRange'] && toRange <= segment['toRange'] ))\r\n }else{return false;}\r\n\r\n }else{\r\n return ((fromRange >= segment['fromRange'] && fromRange <= segment['toRange']) || (toRange >= segment['fromRange'] && toRange <= segment['toRange'] ))\r\n }\r\n\r\n })\r\n }else{\r\n return true;\r\n }\r\n if(status === true){\r\n this.segmentError.push({type:'INVALID_RANGE',message:'This score range already exists. Please select different values.'})\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n description: EditorConfig = {\r\n mode: 'prime',\r\n placeholder: 'Enter description for this segment',\r\n };\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-add-response-set-popup',\r\n templateUrl: './add-response-set-popup.component.html',\r\n styleUrls: ['./add-response-set-popup.component.less']\r\n})\r\nexport class AddResponseSetPopupComponent implements OnInit {\r\n setResponse = false;\r\n hideSpecificCategory = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n showResponse() {\r\n this.setResponse = !this.setResponse;\r\n }\r\n\r\n clickSpecificCategory() {\r\n this.hideSpecificCategory = true;\r\n }\r\n\r\n backResponseSet() {\r\n this.hideSpecificCategory = false;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { ValidateStructure } from '../components/errorInterface/validateStructure';\r\nimport { Error } from '../components/errorInterface/error';\r\nimport { Question } from '../components/errorInterface/question';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidatorService {\r\n\r\n constructor() {\r\n\r\n }\r\n public validatedQuestions: any = {};\r\n\r\n\r\n validate(question: Question): ValidateStructure | any {\r\n switch (question.type) {\r\n case 'checkbox' : {\r\n return this.validateMultiValuedQuestion(question);\r\n }\r\n case 'dropdown' : {\r\n return this.validateMultiValuedQuestion(question);\r\n }\r\n case 'multiple-choice' : {\r\n return this.validateMultiValuedQuestion(question);\r\n }\r\n case 'ranking' : {\r\n return this.validateMultiValuedQuestion(question);\r\n }\r\n case 'comment-box': {\r\n return this.validateSingleValued(question);\r\n }\r\n case 'multiple-textbox': {\r\n return this.validateMultipleTextBox(question);\r\n }\r\n case 'single-textbox': {\r\n return this.validateSingleValued(question);\r\n }\r\n case 'file-upload': {\r\n return this.validateSingleValued(question);\r\n }\r\n case 'date-time': {\r\n return this.validateDateTime(question);\r\n }\r\n case 'image-choice': {\r\n return this.validateImageUpload(question);\r\n }\r\n case 'matrix-dropdown' : {\r\n return this.validateMatrixDropdown(question);\r\n }\r\n case 'star-rating' : {\r\n return this.validateStarRating(question);\r\n }\r\n case 'slider' : {\r\n return this.validateSlider(question);\r\n }\r\n case 'rating-scale' : {\r\n return this.validateRatingScale(question);\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n\r\nvalidateMultiValuedQuestion(question:any): ValidateStructure {\r\n // question.errorArray = {};\r\n delete question.errorArray;\r\n const validStatus = [];\r\n const ERROR_ARRAY: Error = {};\r\n if (this.extract(question.title).length === 0) {\r\n ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\r\n validStatus.push(false);\r\n }\r\n if (question.hasDescription === true && this.extract(question.description).length === 0) {\r\n question.hasDescription = false;\r\n }\r\n if (question.hasComments === true && this.extract(question.comments).length === 0) {\r\n question.hasComments = false;\r\n }\r\n if (question.choices.length >= 2) {\r\n if (question.choices.length === 2 && (this.extract(question.choices[0].title).length === 0 ||\r\n this.extract(question.choices[1].title).length === 0)) {\r\n ERROR_ARRAY.twoChoice = {message: 'Please add at least two answer choices.'};\r\n validStatus.push(false);\r\n } else {\r\n question.choices =\r\n question.choices.filter((choice:any) => this.extract(choice.title).length !== 0);\r\n if (question.choices.length === 0) {\r\n question.choices.push({ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' });\r\n }\r\n }\r\n } else {\r\n ERROR_ARRAY.twoChoice = {message: 'Please add at least two answer choices.'};\r\n validStatus.push(false);\r\n }\r\n\r\n if (!this.checkForSameTitleWithOther(question)) {\r\n ERROR_ARRAY.sameChoice = {message: 'Two options cannot have same title.'};\r\n validStatus.push(false);\r\n }\r\n let validationResult: ValidateStructure;\r\n if (validStatus.includes(false)) {\r\n question.errorArray = ERROR_ARRAY;\r\n validationResult = {valid: false, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n } else {\r\n validationResult = {valid: true, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n }\r\n }\r\n\r\n validateSingleValued(question:any): ValidateStructure {\r\n delete question.errorArray;\r\n const validStatus = [];\r\n const ERROR_ARRAY: Error = {};\r\n if (this.extract(question.title).length === 0) {\r\n ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\r\n validStatus.push(false);\r\n }\r\n if (question.hasDescription === true && this.extract(question.description).length === 0) {\r\n question.hasDescription = false;\r\n }\r\n if (question.hasComments === true && this.extract(question.comments).length === 0) {\r\n question.hasComments = false;\r\n }\r\n if(question.hasCharacterLength === true){\r\n if(question.minCharacterLength > question.maxCharacterLength){\r\n ERROR_ARRAY.charLength = {message: 'Minimum Character length should be less than maximum.'};\r\n validStatus.push(false);\r\n }\r\n }\r\n let validationResult: ValidateStructure;\r\n if (validStatus.includes(false)) {\r\n question.errorArray = ERROR_ARRAY;\r\n validationResult = {valid: false, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n } else {\r\n validationResult = {valid: true, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n }\r\n }\r\n\r\n validateDateTime(question:any): ValidateStructure {\r\n delete question.errorArray;\r\n const validStatus = [];\r\n const ERROR_ARRAY: Error = {};\r\n if (this.extract(question.title).length === 0) {\r\n ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\r\n validStatus.push(false);\r\n\r\n }\r\n if (question.hasDescription === true && this.extract(question.description).length === 0) {\r\n question.hasDescription = false;\r\n }\r\n if (question.hasComments === true && this.extract(question.comments).length === 0) {\r\n question.hasComments = false;\r\n }\r\n if (question.hasDate === true) {\r\n if (question.date !== undefined && this.extract(question.date.title).length === 0) {\r\n ERROR_ARRAY.dateMissing = {message : 'Please enter a label for the date field.'};\r\n validStatus.push(false);\r\n }\r\n }\r\n if (question.hasTime === true) {\r\n if (question.time !== undefined && this.extract(question.time.title).length === 0) {\r\n ERROR_ARRAY.timeMissing = {message: 'Please enter a label for the time field.'} ;\r\n validStatus.push(false);\r\n }\r\n }\r\n if (question.hasTime === false && question.hasDate === false) {\r\n question.hasDate = true;\r\n }\r\n let validationResult: ValidateStructure;\r\n if (validStatus.includes(false)) {\r\n question.errorArray = ERROR_ARRAY;\r\n validationResult = {valid: false, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n } else {\r\n validationResult = {valid: true, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n }\r\n }\r\n\r\n validateImageUpload(question:any): ValidateStructure {\r\n delete question.errorArray;\r\n const validStatus = [];\r\n const ERROR_ARRAY: Error = {};\r\n if (this.extract(question.title).length === 0) {\r\n ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\r\n validStatus.push(false);\r\n }\r\n if (question.hasDescription === true && this.extract(question.description).length === 0) {\r\n question.hasDescription = false;\r\n }\r\n if (question.hasComments === true && this.extract(question.comments).length === 0) {\r\n question.hasComments = false;\r\n }\r\n\r\n if (question.choices.length > 1) {\r\n if (question.choices.length === 2 && (this.extract(question.choices[0].title).length === 0 ||\r\n this.extract(question.choices[1].title).length === 0 || question.choices[1].imageURL === ''\r\n || question.choices[0].imageURL === '')) {\r\n ERROR_ARRAY.twoChoice = {message: 'Please add at least two answer choices.'};\r\n validStatus.push(false);\r\n } else {\r\n question.choices =\r\n question.choices.filter((choice:any) => this.extract(choice.title).length !== 0);\r\n }\r\n } else {\r\n ERROR_ARRAY.twoChoice = {message: 'Please add at least two answer choices.'};\r\n validStatus.push(false);\r\n }\r\n\r\n if (!this.checkForSameTitle(question.choices)) {\r\n ERROR_ARRAY.sameChoice = {message: 'Two options cannot have same title.'};\r\n validStatus.push(false);\r\n }\r\n let validationResult: ValidateStructure;\r\n if (validStatus.includes(false)) {\r\n question.errorArray = ERROR_ARRAY;\r\n validationResult = {valid: false, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n } else {\r\n validationResult = {valid: true, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n }\r\n }\r\n\r\n\r\n\r\n validateMatrixDropdown(question:any): ValidateStructure {\r\n delete question.errorArray;\r\n const validStatus = [];\r\n const ERROR_ARRAY: Error = {};\r\n if (this.extract(question.title).length === 0) {\r\n ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\r\n validStatus.push(false);\r\n }\r\n if (question.hasDescription === true && this.extract(question.description).length === 0) {\r\n question.hasDescription = false;\r\n }\r\n if (question.hasComments === true && this.extract(question.comments).length === 0) {\r\n question.hasComments = false;\r\n }\r\n if (question.choices.length > 0) {\r\n for (const choice of question.choices) {\r\n if (question.choices.length === 1 && this.extract(choice.title).length === 0) {\r\n ERROR_ARRAY.oneRow = {message: 'You are required to have at least one row.'};\r\n validStatus.push(false);\r\n } else {\r\n question.choices = question.choices.filter((selectedChoice:any) => this.extract(selectedChoice.title).length !== 0);\r\n if (question.choices.length === 0) {\r\n question.choices.push( { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' }, );\r\n }\r\n\r\n }\r\n }\r\n } else {\r\n ERROR_ARRAY.oneRow = {message: 'You are required to have at least one row.'};\r\n validStatus.push(false);\r\n }\r\n if (!this.checkForSameTitle(question.choices)) {\r\n ERROR_ARRAY.sameChoice = {message: 'Two rows cannot have same title.'};\r\n validStatus.push(false);\r\n }\r\n\r\n if (question.columns.length > 0) {\r\n question.columns = question.columns.filter((selectedChoice:any) => this.extract(selectedChoice.title).length !== 0);\r\n\r\n for (const column of question.columns) {\r\n if (this.extract(column.title).length === 0) {\r\n ERROR_ARRAY.oneCol = {message: 'You are required to have at least one column.'};\r\n validStatus.push(false);\r\n }\r\n if (column.choices.length > 1) {\r\n for (const columnChoice of column.choices) {\r\n if (this.extract(columnChoice.title).length === 0) {\r\n question.columns = question.columns.filter((selectedChoice:any) =>\r\n this.extract(selectedChoice.title).length !== 0);\r\n // ERROR_ARRAY.twoChoice = {message: 'Please add at least two answer choices for each column.'};\r\n // validStatus.push(false);\r\n column.choices = column.choices.filter((selectedChoice:any) =>\r\n this.extract(selectedChoice.title).length !== 0);\r\n } else {\r\n // column.choices = column.choices.filter(selectedChoice =>\r\n // this.extract(selectedChoice.title).length !== 0);\r\n }\r\n }\r\n } else {\r\n ERROR_ARRAY.twoChoice = {message: 'Please add at least two answer choices for each column.'};\r\n validStatus.push(false);\r\n }\r\n }\r\n if (question.columns.length === 0) {\r\n question.columns.push( { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '',\r\n choices: [{ title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: ''}]});\r\n }\r\n } else {\r\n ERROR_ARRAY.oneCol = {message: 'You are required to have at least one column.'};\r\n validStatus.push(false);\r\n }\r\n if (!this.checkForSameTitle(question.columns)) {\r\n ERROR_ARRAY.sameChoice = {message: 'Two columns cannot have same title.'};\r\n validStatus.push(false);\r\n }\r\n let validationResult: ValidateStructure;\r\n if (validStatus.includes(false)) {\r\n question.errorArray = ERROR_ARRAY;\r\n validationResult = {valid: false, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n } else {\r\n validationResult = {valid: true, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n }\r\n }\r\n\r\n\r\n validateMultipleTextBox(question:any): ValidateStructure {\r\n delete question.errorArray;\r\n const validStatus = [];\r\n const ERROR_ARRAY: Error = {};\r\n if (this.extract(question.title).length === 0) {\r\n ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\r\n validStatus.push(false);\r\n }\r\n if (question.hasDescription === true && this.extract(question.description).length === 0) {\r\n question.hasDescription = false;\r\n }\r\n if (question.hasComments === true && this.extract(question.comments).length === 0) {\r\n question.hasComments = false;\r\n }\r\n\r\n if (question.choices.length > 0) {\r\n if (question.choices.length === 1 && this.extract(question.choices[0].title).length === 0) {\r\n ERROR_ARRAY.oneChoice = {message: 'Please add label for textbox.'};\r\n validStatus.push(false);\r\n } else {\r\n question.choices =\r\n question.choices.filter((choice:any) => this.extract(choice.title).length !== 0);\r\n }\r\n } else {\r\n ERROR_ARRAY.oneChoice = {message: 'Please add at least one textbox.'};\r\n validStatus.push(false);\r\n }\r\n\r\n if (!this.checkForSameTitleWithOther(question)) {\r\n ERROR_ARRAY.sameChoice = {message: 'Two textboxes cannot have same label.'};\r\n validStatus.push(false);\r\n }\r\n let validationResult: ValidateStructure;\r\n if (validStatus.includes(false)) {\r\n question.errorArray = ERROR_ARRAY;\r\n validationResult = {valid: false, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n } else {\r\n validationResult = {valid: true, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n }\r\n }\r\n\r\n validateSlider(question:any): ValidateStructure {\r\n delete question.errorArray;\r\n const validStatus = [];\r\n const ERROR_ARRAY: Error = {};\r\n const minimum = parseInt(question.scaleRangeMin, 10);\r\n const maximum = parseInt(question.scaleRangeMax, 10);\r\n const stepSize = question.stepSize;\r\n const threshold = 0;\r\n if (this.extract(question.title).length === 0) {\r\n ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\r\n validStatus.push(false);\r\n }\r\n if (question.hasDescription === true && this.extract(question.description).length === 0) {\r\n question.hasDescription = false;\r\n }\r\n if (question.hasComments === true && this.extract(question.comments).length === 0) {\r\n question.hasComments = false;\r\n }\r\n if (minimum >= maximum) {\r\n ERROR_ARRAY.minError = {message: `Please enter a value smaller than ${maximum}.`};\r\n validStatus.push(false);\r\n }\r\n if (maximum <= minimum) {\r\n ERROR_ARRAY.minError = {message: `Please enter a value greater than ${maximum}.`};\r\n validStatus.push(false);\r\n }\r\n if (stepSize > maximum) {\r\n ERROR_ARRAY.stepError = {message: `The range for the slider values are within ${minimum}-${maximum}. Please select a step size within this range.`};\r\n validStatus.push(false);\r\n }\r\n if (stepSize <= 0) {\r\n ERROR_ARRAY.stepError = {message: `Please enter a value greater than ${threshold}.` };\r\n validStatus.push(false);\r\n }\r\n let validationResult: ValidateStructure;\r\n if (validStatus.includes(false)) {\r\n question.errorArray = ERROR_ARRAY;\r\n validationResult = {valid: false, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n } else {\r\n validationResult = {valid: true, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n }\r\n }\r\n\r\n\r\n validateStarRating(question:any): ValidateStructure {\r\n delete question.errorArray;\r\n const validStatus = [];\r\n const ERROR_ARRAY: Error = {};\r\n if (this.extract(question.title).length === 0) {\r\n ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\r\n validStatus.push(false);\r\n }\r\n if (question.hasDescription === true && this.extract(question.description).length === 0) {\r\n question.hasDescription = false;\r\n }\r\n if (question.hasComments === true && this.extract(question.comments).length === 0) {\r\n question.hasComments = false;\r\n }\r\n if (question.hasRatingLabel) {\r\n if (question.ratingLabelType === 'scale' && question.scaleRangeFrom === '' && question.scaleRangeTo === '') {\r\n question.hasRatingLabel = false;\r\n }\r\n }\r\n let validationResult: ValidateStructure;\r\n if (validStatus.includes(false)) {\r\n question.errorArray = ERROR_ARRAY;\r\n validationResult = {valid: false, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n } else {\r\n validationResult = {valid: true, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n }\r\n }\r\n\r\n validateRatingScale(question:any): ValidateStructure {\r\n delete question.errorArray;\r\n const validStatus = [];\r\n const ERROR_ARRAY: Error = {};\r\n if (this.extract(question.title).length === 0) {\r\n ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\r\n validStatus.push(false);\r\n }\r\n if (question.hasDescription === true && this.extract(question.description).length === 0) {\r\n question.hasDescription = false;\r\n }\r\n if (question.hasComments === true && this.extract(question.comments).length === 0) {\r\n question.hasComments = false;\r\n }\r\n if (question.choices.length > 0) {\r\n for (const choice of question.choices) {\r\n if (question.choices.length === 1 && this.extract(choice.title).length === 0) {\r\n ERROR_ARRAY.oneRow = {message: 'You are required to have at least one row.'};\r\n validStatus.push(false);\r\n } else {\r\n question.choices =\r\n question.choices.filter((selectedChoice:any) =>\r\n this.extract(selectedChoice.title).length !== 0);\r\n if (question.choices.length === 0) {\r\n question.choices.push( { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' }, );\r\n }\r\n\r\n }\r\n }\r\n } else {\r\n ERROR_ARRAY.oneRow = {message: 'You are required to have at least one row.'};\r\n validStatus.push(false);\r\n }\r\n if (!this.checkForSameTitle(question.choices)) {\r\n ERROR_ARRAY.sameChoice = {message: 'Two rows cannot have same title.'};\r\n validStatus.push(false);\r\n }\r\n\r\n if (question.columns !== undefined && question.columns.length > 0) {\r\n for (const column of question.columns) {\r\n if (question.columns.length === 1 && this.extract(column.title).length === 0) {\r\n ERROR_ARRAY.oneCol = {message: 'You are required to have at least one column.'};\r\n validStatus.push(false);\r\n } else {\r\n question.columns =\r\n question.columns.filter((selectedChoice:any) =>\r\n this.extract(selectedChoice.title).length !== 0);\r\n if (question.columns.length === 0) {\r\n question.columns.push( { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' }, );\r\n }\r\n\r\n }\r\n }\r\n } else {\r\n ERROR_ARRAY.oneCol = {message: 'You are required to have at least one column.'};\r\n validStatus.push(false);\r\n }\r\n if (!this.checkForSameTitle(question.columns)) {\r\n ERROR_ARRAY.sameChoice = {message: 'Two columns cannot have same title.'};\r\n validStatus.push(false);\r\n }\r\n let validationResult: ValidateStructure;\r\n if (validStatus.includes(false)) {\r\n question.errorArray = ERROR_ARRAY;\r\n validationResult = {valid: false, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n } else {\r\n validationResult = {valid: true, error: ERROR_ARRAY, question};\r\n return validationResult;\r\n }\r\n }\r\n /**\r\n * Extracts the text from a particular html content\r\n * @param s html content from which text needs to be extracted\r\n */\r\n extract(s:any) {\r\n const span = document.createElement('span');\r\n span.innerHTML = s;\r\n return span.textContent || span.innerText;\r\n }\r\n /**\r\n * Checks if title of two choices is same or not\r\n * @param choices Choice for which title should be checked\r\n */\r\n checkForSameTitle(choices:any) {\r\n const title = choices.map((data:any) => data.title);\r\n for (const choice of choices) {\r\n const sameTitle = cloneDeep(title).filter((data:any) => data === choice.title);\r\n if (sameTitle.length > 1) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n /**\r\n * Checks if title of two choices is same or not\r\n * @param choices Choice for which title should be checked\r\n */\r\n checkForSameTitleWithOther(questionDetails: any) {\r\n const title = questionDetails.choices.map((data: { title: string; }) => data.title.trim());\r\n \r\n for (const choice of questionDetails.choices) {\r\n const sameTitle = cloneDeep(title).filter((data: string) => data === choice.title.trim());\r\n if (sameTitle.length > 1) {\r\n return false;\r\n } else {\r\n if (questionDetails.hasOther && choice.title.trim() === questionDetails.otherValue) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ValidatorService } from '../../services/validator.service';\r\n\r\n@Component({\r\n selector: 'app-editor-wrapper',\r\n templateUrl: './editor-wrapper.component.html',\r\n styleUrls: ['./editor-wrapper.component.less']\r\n})\r\nexport class EditorWrapperComponent implements OnInit,AfterViewInit {\r\n\r\n hideResponsePopup = false;\r\n nextQuestion = false;\r\n @Input() openPortal :'ASSESSMENT_IMPORT' | 'RESPONSIBILITY_CHECKPOINT'|'' = '';\r\n\r\n\r\n\r\n\r\n openResponsePopup() {\r\n this.hideResponsePopup = true;\r\n }\r\n\r\n closeResponsePopup() {\r\n this.hideResponsePopup = false;\r\n }\r\n\r\n openNextQuestion() {\r\n this.nextQuestion = true;\r\n }\r\n\r\n closeNextQuestion() {\r\n this.nextQuestion = false;\r\n }\r\n\r\n @Input() questionIndex: any;\r\n @Input() question: any;\r\n @Input() GRS: any;\r\n @Input() service: any;\r\n @Input() editorMode: any;\r\n @Output() validQuestionData = new EventEmitter();\r\n responseChoice: any;\r\n errorPresent = false;\r\n viewMode = 'build';\r\n @Output() deleteQuestion = new EventEmitter<number>();\r\n @Output() copyQuestion = new EventEmitter<number>();\r\n @ViewChild('questionContainer') questionContainer !: ElementRef;\r\n constructor(private cdr: ChangeDetectorRef , private validator: ValidatorService) { }\r\n\r\n ngOnInit(): void {\r\n if ( this.question.errorArray && Object.values(this.question.errorArray).length > 0){\r\n this.errorPresent = true;\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.questionContainer.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n }, 100);\r\n }\r\n openResponseChoice() {\r\n this.responseChoice = true;\r\n }\r\n closeThis() {\r\n this.responseChoice = false;\r\n }\r\n\r\n callDelete() {\r\n this.deleteQuestion.emit(this.questionIndex);\r\n }\r\n callCopy() {\r\n this.copyQuestion.emit(this.questionIndex);\r\n }\r\n\r\n /**\r\n * Adds new option for a question\r\n * @param choiceIndex Index of option after which new option should be added\r\n * @param type Unique identifier to set id of newly created options\r\n */\r\n addOption({choiceIndex, type}:any) {\r\n this.question.choices.splice(choiceIndex + 1, 0,\r\n { title: '', value: '', is_selected: false, answerCompletedBy: [] });\r\n this.setFocus(type, choiceIndex + 1);\r\n }\r\n\r\n /**\r\n * Deletes a particular option\r\n * @param choiceIndex Index of option after which new option should be added\r\n * @param type Unique identifier to set id of newly created options\r\n */\r\n deleteOption({choiceIndex, type} :any) {\r\n if (this.question.choices.length !== 1) {\r\n this.question.choices.splice(choiceIndex, 1);\r\n }\r\n (choiceIndex - 1 >= 0) ? this.setFocus(type, choiceIndex - 1) :\r\n this.setFocus(type, 0);\r\n }\r\n\r\n deleteColumn({columnIndex, type} :any) {\r\n if (this.question.columns.length === 1) { return; }\r\n this.question.columns.splice(columnIndex, 1);\r\n (columnIndex - 1 >= 0) ? this.setFocus(type, columnIndex - 1) : this.setFocus(type, 0);\r\n }\r\n\r\n addColumn({columnIndex, type}:any) {\r\n const column = { title: '', value: 0, is_selected: false, weight: 0, choices: [{ title: '' }]};\r\n this.question.columns.splice(columnIndex + 1, 0 , column);\r\n this.setFocus(type, columnIndex + 1);\r\n }\r\n\r\n /**\r\n * Sets focus to updated option\r\n * @param type Unique identifier to set id of newly created options\r\n * @param choiceIndex Index of option after which new option should be added\r\n */\r\n setFocus(type: string, choiceIndex: number) {\r\n this.cdr.detectChanges();\r\n let EL: HTMLElement | null;\r\n EL = document.getElementById(type + choiceIndex);\r\n if (EL) {\r\n EL.focus();\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Operation on click of save button\r\n */\r\n async checkForValidationStatus(mode?:any) {\r\n\r\n const status = await this.validator.validate(this.question);\r\n\r\n if (status.valid === true) {\r\n this.errorPresent = false;\r\n this.validator.validatedQuestions[status.question.name] = status.question;\r\n this.validQuestionData.emit(mode);\r\n } else {\r\n this.errorPresent = true;\r\n delete this.validator.validatedQuestions[status.question.name];\r\n\r\n }\r\n }\r\n insertResponseSet(evt:any){\r\n this.question.choices = evt;\r\n if(this.service.formsPage.settings.assessmentMode){\r\n this.question.choices.some((ele:any)=>{\r\n if(!ele.isFailed){\r\n ele.score = this.service.formsPage.settings.defaultScore;\r\n }\r\n if(ele.isFailed === true){\r\n ele.score = this.service.formsPage.settings.negativeScore;\r\n }\r\n })\r\n\r\n this.question.hasOther = false;\r\n }\r\n this.responseChoice = false;\r\n this.checkForValidationStatus('partial');\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { EditorService } from '../../services/editor.service';\r\n\r\n@Component({\r\n selector: 'app-quick-setting',\r\n templateUrl: './quick-settings.component.html',\r\n styleUrls: ['./quick-settings.component.less']\r\n})\r\nexport class QuickSettingsComponent implements OnInit {\r\n\r\n constructor(public fd: EditorService) { }\r\n\r\n ngOnInit(): void {\r\n this.populateSelectedQuestionType();\r\n this.populateQuickSettingsList();\r\n }\r\n @Input() questionIndex: any;\r\n @Input() question: any;\r\n @Output() typeChanged = new EventEmitter<any>();\r\n selectedQuestionDetails = { questionValue: '', questionName: '', questionIcon: '', questionClass: '' };\r\n questionTypeDropdown = [\r\n { questionValue: 'multiple-choice', questionName: 'Multiple Choice', questionIcon: '', questionClass: 'multiple-choice' },\r\n { questionValue: 'checkbox', questionName: 'Checkboxes', questionIcon: '', questionClass: 'checkboxes' },\r\n // { questionValue: 'image-choice', questionName: 'Image Choice', questionIcon: '', questionClass: 'image-choice' },\r\n // { questionValue: 'star-rating', questionName: 'Star Ratings', questionIcon: '', questionClass: 'star-rating' },\r\n { questionValue: 'single-textbox', questionName: 'Single Textbox', questionIcon: '', questionClass: 'single-textbox' },\r\n // { questionValue: 'comment-box', questionName: 'Comment Box', questionIcon: '', questionClass: 'comment-box' },\r\n // { questionValue: 'matrix-dropdown', questionName: 'Matrix of Dropdown', questionIcon: '', questionClass: 'matrix-dropdown' },\r\n { questionValue: 'dropdown', questionName: 'Dropdown', questionIcon: '', questionClass: 'dropdown-icon' },\r\n // { questionValue: 'rating-scale', questionName: 'Matrix & Rating Scale', questionIcon: '', questionClass: 'matrix-rating' },\r\n // { questionValue: 'ranking', questionName: 'Ranking', questionIcon: '', questionClass: 'ranking' },\r\n // { questionValue: 'slider', questionName: 'Slider', questionIcon: '', questionClass: 'slider' },\r\n // { questionValue: 'multiple-textbox', questionName: 'Multiple Textboxes', questionIcon: '', questionClass: 'multiple-textbox' },\r\n { questionValue: 'date-time', questionName: 'Date & Time', questionIcon: '', questionClass: 'date-time' },\r\n { questionValue: 'file-upload', questionName: 'File Upload', questionIcon: '', questionClass: 'file-upload' },\r\n ];\r\n\r\n quickSettingsList: any = [];\r\n optionsForQuickSettings: any = [\r\n {\r\n title: 'Is required',\r\n toolTip: 'You can use this option to ensure that important questions are not left unanswered.' +\r\n 'If enabled, the respondent cannot submit the response to the assessment unless the question is answered.',\r\n optionType: 'required',\r\n toggleValue: 'isRequired',\r\n eligibleQuestionTypes: ['image-choice', 'checkbox', 'single-textbox', 'multiple-choice', 'file-upload', 'star-rating',\r\n 'comment-box', 'matrix-dropdown', 'rating-scale', 'ranking', 'slider', 'multiple-textbox', 'date-time', 'dropdown']\r\n },\r\n {\r\n title: 'Edit Placeholder',\r\n toolTip: 'You can customize the placeholder text to provide more relevant information to the respondents taking the ' +\r\n `assessment` + '.',\r\n optionType: 'placeholder',\r\n toggleValue: 'isPlaceholder',\r\n eligibleQuestionTypes: ['single-textbox', 'comment-box', 'multiple-textbox']\r\n },\r\n {\r\n title: 'Description',\r\n toolTip: 'Add more context to your assessment questions by providing more details.',\r\n optionType: 'questiondescription',\r\n toggleValue: 'hasDescription',\r\n eligibleQuestionTypes: ['image-choice', 'checkbox', 'single-textbox', 'multiple-choice', 'file-upload', 'star-rating',\r\n 'comment-box', 'matrix-dropdown', 'rating-scale', 'ranking', 'slider', 'multiple-textbox', 'date-time', 'dropdown']\r\n },\r\n {\r\n title: 'Comment',\r\n toolTip: 'You can provide additional information about the question using this option.',\r\n optionType: 'comments',\r\n toggleValue: 'hasComments',\r\n eligibleQuestionTypes: ['image-choice', 'checkbox', 'single-textbox', 'multiple-choice', 'file-upload', 'star-rating',\r\n 'comment-box', 'matrix-dropdown', 'rating-scale', 'ranking', 'slider', 'multiple-textbox', 'date-time', 'dropdown']\r\n },\r\n {\r\n title: '\\'Other\\' Answer Choice',\r\n toolTip: 'You can add ‘Other’ as an answer choice so that your respondents can provide details and or alternate answers.',\r\n optionType: 'other',\r\n toggleValue: 'hasOther',\r\n eligibleQuestionTypes: ['checkbox', 'multiple-choice', 'multiple-textbox', 'dropdown']\r\n },\r\n {\r\n title: 'Randomize',\r\n toolTip: 'To avoid order bias while answering a question, you can randomize the answer order' +\r\n 'every time the respondents view the assessment.',\r\n optionType: 'randomize',\r\n toggleValue: 'randomize',\r\n eligibleQuestionTypes: ['checkbox', 'multiple-choice', 'matrix-dropdown', 'rating-scale', 'ranking', 'multiple-textbox', 'dropdown']\r\n },\r\n {\r\n title: 'Switch Alignments',\r\n toolTip: 'You can choose to present the answer choices one after the other in vertical columns or display in a horizontal sequence.',\r\n optionType: 'alignment',\r\n toggleValue: 'alignment',\r\n eligibleQuestionTypes: ['checkbox', 'multiple-choice']\r\n },\r\n {\r\n title: 'Add rating labels',\r\n toolTip: 'You can add labels above your icons to indicate what the scale represents.',\r\n optionType: 'ratingLabel',\r\n toggleValue: 'hasRatingLabel',\r\n eligibleQuestionTypes: ['star-rating']\r\n },\r\n {\r\n title: 'Character Length',\r\n toolTip: 'This option lets you set a maximum and minimum character length criteria' +\r\n 'that the respondents must follow while answering the question.',\r\n optionType: 'characterLength',\r\n toggleValue: 'hasCharacterLength',\r\n eligibleQuestionTypes: ['single-textbox', 'comment-box']\r\n },\r\n {\r\n title: 'Use weights',\r\n toolTip: 'This option allows you to specify a weight or score to each column of the matrix question.' +\r\n 'This is useful when you\\'re analyzing the data and wanting to tally up average scores to each of the answers.',\r\n optionType: 'useWeights',\r\n toggleValue: 'hasWeight',\r\n eligibleQuestionTypes: ['rating-scale']\r\n },\r\n {\r\n title: 'Show numerical input box',\r\n toolTip: 'This allows the respondent to select a scale on the slider by entering the value.',\r\n optionType: 'numericalInput',\r\n toggleValue: 'numericBoxEnabled',\r\n eligibleQuestionTypes: ['slider']\r\n },\r\n {\r\n title: 'Date Info',\r\n toolTip: '',\r\n optionType: 'dateFormat',\r\n toggleValue: 'hasDate',\r\n eligibleQuestionTypes: ['date-time']\r\n },\r\n {\r\n title: 'Time Info',\r\n toolTip: '',\r\n optionType: 'timeInfo',\r\n toggleValue: 'hasTime',\r\n eligibleQuestionTypes: ['date-time']\r\n },\r\n {\r\n title: 'Allow Attachments',\r\n toolTip: 'This option allows the respondents to upload a file in addition to answering the question.',\r\n optionType: 'userAttachedFiles',\r\n toggleValue: 'isRespondentAttachment',\r\n eligibleQuestionTypes: ['image-choice', 'checkbox', 'single-textbox', 'multiple-choice', 'file-upload', 'star-rating',\r\n 'comment-box', 'matrix-dropdown', 'rating-scale', 'ranking', 'slider', 'multiple-textbox', 'date-time', 'dropdown']\r\n },\r\n {\r\n title: 'Allow Comments',\r\n toolTip: 'This option allows the respondent to add notes or comments to a question.',\r\n optionType: 'userComments',\r\n toggleValue: 'isRespondentComment',\r\n eligibleQuestionTypes: ['image-choice', 'checkbox', 'single-textbox', 'multiple-choice', 'file-upload', 'star-rating',\r\n 'comment-box', 'matrix-dropdown', 'rating-scale', 'ranking', 'slider', 'multiple-textbox', 'date-time', 'dropdown']\r\n }\r\n ];\r\n\r\n populateSelectedQuestionType() {\r\n this.questionTypeDropdown.forEach(questionType => {\r\n if (questionType.questionValue === this.fd.formsPage.elements[this.questionIndex].type) {\r\n this.selectedQuestionDetails.questionClass = questionType.questionClass;\r\n this.selectedQuestionDetails.questionName = questionType.questionName;\r\n this.selectedQuestionDetails.questionIcon = questionType.questionIcon;\r\n this.selectedQuestionDetails.questionValue = questionType.questionValue;\r\n }\r\n });\r\n }\r\n\r\n changeQuestionType(selectedQuestion: any) {\r\n if (selectedQuestion.questionValue === 'rating-scale') {\r\n this.fd.formsPage.elements[this.questionIndex].columns =\r\n [{ title: '', value: 1, weight: 0, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }];\r\n } else if (selectedQuestion.questionValue === 'matrix-dropdown') {\r\n \r\n this.fd.formsPage.elements[this.questionIndex].columns =\r\n [{\r\n title: '', value: 1, weight: 0, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '',\r\n choices: [{ hasHelpingLabel: false, helpingLabel: '', isSelected: false, required: 0, title: '', value: 1 }]\r\n }];\r\n } else if (selectedQuestion.questionValue === 'date-time') {\r\n this.fd.formsPage.elements[this.questionIndex].hasDate = true;\r\n this.fd.formsPage.elements[this.questionIndex].date = { title: '', value: '' };\r\n this.fd.formsPage.elements[this.questionIndex].time = { title: '', value: '' };\r\n } else if (selectedQuestion.questionValue === 'star-rating') {\r\n this.fd.formsPage.elements[this.questionIndex].cursorType = 'number';\r\n this.fd.formsPage.elements[this.questionIndex].scale = 2;\r\n this.fd.formsPage.elements[this.questionIndex].ratingLabelType = 'specific';\r\n this.fd.formsPage.elements[this.questionIndex].scaleRangeTo = 'Extreme Likely';\r\n this.fd.formsPage.elements[this.questionIndex].scaleRangeFrom = 'Not at all likely';\r\n this.fd.formsPage.elements[this.questionIndex].cursorColor = '#ff8000';\r\n this.fd.formsPage.elements[this.questionIndex].starValue = '';\r\n this.fd.formsPage.elements[this.questionIndex].choices = [\r\n { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' },\r\n { title: '', isVisible: true, value: 1, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' },\r\n ];\r\n } else if (selectedQuestion.questionValue === 'slider') {\r\n this.fd.formsPage.elements[this.questionIndex].scaleRangeMin = 0;\r\n this.fd.formsPage.elements[this.questionIndex].scaleRangeMax = 100;\r\n this.fd.formsPage.elements[this.questionIndex].stepSize = 10;\r\n }\r\n\r\n this.fd.formsPage.elements[this.questionIndex].type = selectedQuestion.questionValue;\r\n\r\n\r\n this.selectedQuestionDetails = selectedQuestion;\r\n this.populateQuickSettingsList();\r\n this.populateSelectedQuestionType();\r\n this.typeChanged.emit();\r\n }\r\n populateQuickSettingsList() {\r\n this.quickSettingsList = [...this.optionsForQuickSettings];\r\n this.quickSettingsList = this.quickSettingsList.filter(\r\n (option: any) => option.eligibleQuestionTypes.includes(this.fd.formsPage.elements[this.questionIndex].type)\r\n );\r\n }\r\n\r\n toggle(e: any, quickSetting: any) {\r\n \r\n const questionDetail = this.fd.formsPage.elements[this.questionIndex];\r\n\r\n if (questionDetail.type === 'date-time') {\r\n if (quickSetting.toggleValue === 'hasDate' && e) {\r\n this.fd.formsPage.elements[this.questionIndex].hasDate = true;\r\n } else if (quickSetting.toggleValue === 'hasTime' && e) {\r\n \r\n this.fd.formsPage.elements[this.questionIndex].hasTime = true;\r\n }else if(quickSetting.toggleValue === 'hasDate' && !e){\r\n this.fd.formsPage.elements[this.questionIndex].hasDate = false; \r\n if(!this.fd.formsPage.elements[this.questionIndex].hasTime){\r\n this.fd.formsPage.elements[this.questionIndex].hasTime = true;\r\n } \r\n }else if(quickSetting.toggleValue === 'hasTime' && !e){\r\n this.fd.formsPage.elements[this.questionIndex].hasTime = false;\r\n if(!this.fd.formsPage.elements[this.questionIndex].hasDate){\r\n this.fd.formsPage.elements[this.questionIndex].hasDate = true;\r\n }\r\n }\r\n this.fd.formsPage.elements[this.questionIndex][quickSetting.toggleValue] = e;\r\n return;\r\n }\r\n if (quickSetting.optionType === 'characterLength' && e) {\r\n this.fd.formsPage.elements[this.questionIndex].maxCharacterLength = 100;\r\n this.fd.formsPage.elements[this.questionIndex].minCharacterLength = 0;\r\n }\r\n this.fd.formsPage.elements[this.questionIndex][quickSetting.toggleValue] = e;\r\n \r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-single-line-editor',\r\n templateUrl: './single-line-editor.component.html',\r\n styleUrls: ['./single-line-editor.component.less'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SingleLineEditorComponent, multi: true },\r\n ]\r\n})\r\nexport class SingleLineEditorComponent implements OnInit, ControlValueAccessor {\r\n @Input() placeholder: string = 'placeholder';\r\n @Input() editorMode = 'single';\r\n @Input() label = true;\r\n\r\n @Input() id!: string;\r\n containerValue !:any;\r\n public sel: any;\r\n public selectFunction: any;\r\n public bold!: boolean;\r\n public italic!: boolean;\r\n public underline!: boolean;\r\n showEditorControls !:boolean;\r\n activeEditor !:boolean;\r\n public oldRange: any;\r\n controls !:boolean;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.selectFunction = () => {\r\n this.bold = document.queryCommandState('bold');\r\n this.italic = document.queryCommandState('italic');\r\n this.underline = document.queryCommandState('underline');\r\n };\r\n document.addEventListener('selectionchange', this.selectFunction, false);\r\n this.sel = window.getSelection();\r\n if (!this.id) {\r\n this.id = this.generateUID();\r\n }\r\n }\r\n\r\n\r\n generateUID() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n onChange = (value: any) => { };\r\n onTouched = () => { };\r\n setValue() {\r\n const x = document.getElementById(this.id)?.innerHTML;\r\n \r\n if (x === '<br>') {\r\n const z:any = document.getElementById(this.id);\r\n z.innerHTML = '';\r\n }\r\n this.onChange(x);\r\n }\r\n\r\n writeValue(value: string) {\r\n this.containerValue = value;\r\n const containerRef = document.getElementById(this.id);\r\n if (containerRef) {\r\n setTimeout((val:any) => {\r\n \r\n containerRef.innerHTML = value;\r\n this.setValue();\r\n }, 150);\r\n }\r\n\r\n\r\n }\r\n\r\n registerOnChange(onChange: (value: string) => void) {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched() { }\r\n\r\n show(e?: any) {\r\n this.showEditorControls = !this.showEditorControls;\r\n this.activeEditor = !this.activeEditor;\r\n document.getElementById(this.id)?.focus();\r\n this.setCaretToEnd();\r\n \r\n }\r\n insertBold(): void {\r\n document.getElementById(this.id)?.focus();\r\n document.execCommand('bold', false, '');\r\n this.bold = !this.bold;\r\n }\r\n insertItalic(): void {\r\n document.getElementById(this.id)?.focus();\r\n document.execCommand('italic', false, '');\r\n this.italic = !this.italic;\r\n }\r\n insertUnderLine(): void {\r\n document.getElementById(this.id)?.focus();\r\n document.execCommand('underline', false, '');\r\n this.underline = !this.underline;\r\n }\r\n onblur(): void {\r\n this.oldRange = window?.getSelection()?.getRangeAt(0).cloneRange(); // to store the range when element is blurred\r\n }\r\n setCaretToEnd() {\r\n window.getSelection()?.removeAllRanges();\r\n window.getSelection()?.addRange(this.oldRange);\r\n }\r\n showControls() {\r\n if (this.controls !== false) {\r\n this.controls = false;\r\n }\r\n if (this.activeEditor !== false) {\r\n this.activeEditor = false;\r\n }\r\n }\r\n\r\n onPaste(event: ClipboardEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n const pastedText = event?.clipboardData?.getData('text/plain');\r\n document.execCommand('insertHTML', false, pastedText);\r\n const range = this.sel.getRangeAt(0);\r\n const position = range.getBoundingClientRect();\r\n const d:any = document.getElementById(this.id); \r\n d.scrollLeft = position.x;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService } from '../../../../ui-kit/dialog/dialog.service';\r\nimport { AddResponseSetPopupComponent } from '../add-response-set-popup/add-response-set-popup.component';\r\n\r\n@Component({\r\n selector: 'app-response-selector',\r\n templateUrl: './response-selector.component.html',\r\n styleUrls: ['./response-selector.component.less']\r\n})\r\nexport class ResponseSelectorComponent implements OnInit {\r\n responseDetails = false;\r\n\r\n constructor(\r\n private dialog: DialogService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n addResponseSet() {\r\n const ref = this.dialog.open(AddResponseSetPopupComponent, {\r\n data: {},\r\n position: 'RIGHT',\r\n background: 'black',\r\n });\r\n }\r\n\r\n openResponseDetails() {\r\n this.responseDetails = true;\r\n }\r\n\r\n backResponse() {\r\n this.responseDetails = false;\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-multiple-choice',\r\n templateUrl: './multiple-choice.component.html',\r\n styleUrls: ['./multiple-choice.component.less']\r\n})\r\nexport class MultipleChoiceComponent implements OnInit {\r\n @Input() question!: any;\r\n @Input() service: any;\r\n @Output() addOption = new EventEmitter<any>();\r\n @Output() deleteOption = new EventEmitter<any>();\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n modifyOption(mode: string, choiceIndex: number, type: string){\r\n if (mode === 'ADD'){this.addOption.emit({choiceIndex, type}); }\r\n else if (mode === 'DELETE'){this.deleteOption.emit({choiceIndex, type}); }\r\n}\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.less']\r\n})\r\nexport class CheckboxComponent implements OnInit {\r\n @Input() question!: any;\r\n @Input() service: any;\r\n @Output() addOption = new EventEmitter<any>();\r\n @Output() deleteOption = new EventEmitter<any>();\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n modifyOption(mode: string, choiceIndex: number, type: string){\r\n if (mode === 'ADD'){this.addOption.emit({choiceIndex, type}); }\r\n else if (mode === 'DELETE'){this.deleteOption.emit({choiceIndex, type}); }\r\n}\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-image-choice',\r\n templateUrl: './image-choice.component.html',\r\n styleUrls: ['./image-choice.component.less']\r\n})\r\nexport class ImageChoiceComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-star-rating',\r\n templateUrl: './star-rating.component.html',\r\n styleUrls: ['./star-rating.component.less']\r\n})\r\nexport class StarRatingComponent implements OnInit {\r\n specificValue = true;\r\n scaleRange = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n clickSpecificValue() {\r\n this.specificValue = true;\r\n this.scaleRange = false;\r\n }\r\n\r\n clickScaleRange() {\r\n this.scaleRange = true;\r\n this.specificValue = false;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-matrix-dropdown',\r\n templateUrl: './matrix-dropdown.component.html',\r\n styleUrls: ['./matrix-dropdown.component.less']\r\n})\r\nexport class MatrixDropdownComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-build-dropdown',\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.less']\r\n})\r\nexport class DropdownComponent implements OnInit {\r\n @Input() question!: any;\r\n @Input() service: any;\r\n @Output() addOption = new EventEmitter<any>();\r\n @Output() deleteOption = new EventEmitter<any>();\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n modifyOption(mode: string, choiceIndex: number, type: string){\r\n if (mode === 'ADD'){this.addOption.emit({choiceIndex, type}); }\r\n else if (mode === 'DELETE'){this.deleteOption.emit({choiceIndex, type}); }\r\n}\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-matrix-rating-scale',\r\n templateUrl: './matrix-rating-scale.component.html',\r\n styleUrls: ['./matrix-rating-scale.component.less']\r\n})\r\nexport class MatrixRatingScaleComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-ranking',\r\n templateUrl: './ranking.component.html',\r\n styleUrls: ['./ranking.component.less']\r\n})\r\nexport class RankingComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-slider',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.less']\r\n})\r\nexport class SliderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-multiple-textbox',\r\n templateUrl: './multiple-textbox.component.html',\r\n styleUrls: ['./multiple-textbox.component.less']\r\n})\r\nexport class MultipleTextboxComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-build-date-time',\r\n templateUrl: './date-time.component.html',\r\n styleUrls: ['./date-time.component.less']\r\n})\r\nexport class DateTimeComponent implements OnInit {\r\n @Input() question!: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-choice-settings-panel',\r\n templateUrl: './choice-settings-panel.component.html',\r\n styleUrls: ['./choice-settings-panel.component.less']\r\n})\r\nexport class ChoiceSettingsPanelComponent implements OnInit {\r\n public score!: number;\r\n @Input() defaultScore: any;\r\n @Input() negativeScore: any;\r\n\r\n @Input() isFailed!: boolean;\r\n @Input('score')\r\n set Score(score: any) {\r\n \r\n if (score === undefined) {\r\n this.score = this.defaultScore ? this.defaultScore : 1;\r\n } else {\r\n this.score = score;\r\n }\r\n this.changeScore(this.score);\r\n this.isFailedChange.emit(this.isFailed ? this.isFailed : false);\r\n }\r\n @Input() scoreVisible !: boolean;\r\n @Output() isFailedChange = new EventEmitter<boolean>();\r\n @Output() scoreChange = new EventEmitter<number>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n changeScore(evt: any) {\r\n this.scoreChange.emit(evt);\r\n }\r\n changeFailed(evt: any) {\r\n if (evt === false) {\r\n this.score = this.defaultScore ? this.defaultScore : 1;\r\n // if (this.color === '#c60022') {\r\n // this.color = '#000000';\r\n // }\r\n\r\n this.scoreChange.emit(this.score);\r\n } else {\r\n this.score = this.negativeScore ? this.negativeScore : 0;\r\n // this.color = '#c60022';\r\n this.scoreChange.emit(this.score);\r\n }\r\n this.isFailedChange.emit(evt);\r\n }\r\n\r\n scoreManger(mode: any) {\r\n if (mode === '+') {\r\n this.score = this.score + 1;\r\n } else if (mode === '-') {\r\n if (this.score > 0) {\r\n this.score = this.score - 1;\r\n }\r\n }\r\n this.scoreChange.emit(this.score);\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-welcome',\r\n templateUrl: './welcome.component.html',\r\n styleUrls: ['./welcome.component.less']\r\n})\r\nexport class WelcomeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-thank-you',\r\n templateUrl: './thank-you.component.html',\r\n styleUrls: ['./thank-you.component.less']\r\n})\r\nexport class ThankYouComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-weightage-selector',\r\n templateUrl: './weightage-selector.component.html',\r\n styleUrls: ['./weightage-selector.component.less']\r\n})\r\nexport class WeightageSelectorComponent implements OnInit {\r\n\r\n constructor() { }\r\n public value!: number;\r\n public score!: number;\r\n @Input('value')\r\n set Value(value: number) {\r\n if (value === undefined){\r\n this.value = 100;\r\n }else{\r\n this.value = value;\r\n }\r\n this.changeValue(this.value);\r\n}\r\n@Output() valueChange = new EventEmitter<number>();\r\n\r\nchangeValue(evt:any){\r\n this.valueChange.emit(evt);\r\n}\r\n ngOnInit(): void {\r\n this.checkWeightValidity();\r\n }\r\n\r\n weightManager(mode:any){\r\n if (mode === '+'){\r\n if (this.value < 100){\r\n this.value = this.value + 1;\r\n }\r\n\r\n }else if (mode === '-'){\r\n if (this.value > 1 ){\r\n this.value = this.value - 1;\r\n }\r\n }\r\n this.changeValue(this.value);\r\n }\r\n\r\n checkWeightValidity(){\r\n if (this.value > 100){\r\n this.value = 100;\r\n }else if (this.value < 1){\r\n this.value = 100;\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-checkbox',\r\n templateUrl: './cs-checkbox.component.html',\r\n styleUrls: ['./cs-checkbox.component.less'],\r\n})\r\nexport class CsCheckboxComponent implements OnInit {\r\n @Input() disabled = false;\r\n @Input() ngValue!: any;\r\n @Input() value: any;\r\n @Output() ngValueChange = new EventEmitter<any>();\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n valueChanged() {\r\n this.ngValueChange.emit(this.ngValue);\r\n }\r\n\r\n chileClick(event: any){\r\n event.stopPropagation();\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-radio',\r\n templateUrl: './cs-radio.component.html',\r\n styleUrls: ['./cs-radio.component.less'],\r\n})\r\nexport class CsRadioComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() readonly!: boolean;\r\n @Input() name!: string;\r\n @Input() checked!: boolean;\r\n @Input() value: any;\r\n @Output() checkedEvent = new EventEmitter();\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n changeState(evt: any) {\r\n this.checkedEvent.emit(evt);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-switch',\r\n templateUrl: './cs-switch.component.html',\r\n styleUrls: ['./cs-switch.component.less'],\r\n})\r\nexport class CsSwitchComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() ngValue: any;\r\n @Input() value: any;\r\n @Output() ngValueChange = new EventEmitter<any>();\r\n @Input() tooltipMessage: any;\r\n @Input() position: any;\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n // console.log(this.value);\r\n }\r\n valueChanged() {\r\n this.ngValueChange.emit(this.ngValue);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-radio-group',\r\n templateUrl: './cs-radio-group.component.html',\r\n styleUrls: ['./cs-radio-group.component.less'],\r\n})\r\nexport class CsRadioGroupComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-select',\r\n templateUrl: './cs-select.component.html',\r\n styleUrls: ['./cs-select.component.less'],\r\n})\r\nexport class CsSelectComponent implements OnChanges {\r\n @Input() dataList!: any[];\r\n @Input() dropdownLabel!: string;\r\n @Input() displayProperty!: string;\r\n @Input() selectedValue!: string;\r\n @Input() isRequired!: boolean;\r\n @Input() dropdownSubLabel!: string;\r\n @Input() disabled!: boolean;\r\n @ViewChild('option') option!: ElementRef;\r\n\r\n @Output() selectedData = new EventEmitter();\r\n @Output() selectedValueChange = new EventEmitter();\r\n @Input() placeholder: any;\r\n @Input() stylex: any;\r\n @Input() valueKey: any;\r\n @Input() multipleSelect: any;\r\n @Input() colorProperty!: string;\r\n\r\n @Input() colorSelected!: string;\r\n colorCode!: string;\r\n\r\n dropdownOption = false;\r\n positionReset!: boolean;\r\n getLeft!: number;\r\n getTop!: number;\r\n getWidth!: number;\r\n maxWidth!: number;\r\n activeDoropdown = false;\r\n\r\n private optionList!: ElementRef;\r\n\r\n @ViewChild('optionList') set content(content: ElementRef) {\r\n if (content) {\r\n // initially setter gets called with undefined\r\n this.optionList = content;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['selectedValue']) {\r\n this.selectedValue = this.selectedValue || '--';\r\n }\r\n }\r\n\r\n openDropdown(event: any): void {\r\n this.dropdownOption = true;\r\n setTimeout(() => {\r\n const dropdown = event.target.getBoundingClientRect();\r\n const selectOption = this.optionList.nativeElement.offsetHeight;\r\n if (dropdown.top + selectOption * 2 > window.innerHeight) {\r\n this.getTop = dropdown.top - selectOption;\r\n } else {\r\n this.getTop = dropdown.top + dropdown.height;\r\n }\r\n this.getLeft = dropdown.left;\r\n this.getWidth = dropdown.width;\r\n this.maxWidth = dropdown.width * 1.25;\r\n }, 10);\r\n setTimeout(() => {\r\n this.activeDoropdown = true;\r\n }, 100);\r\n }\r\n selectOption(selectedData: any) {\r\n if (typeof selectedData === 'object') {\r\n this.selectedValue = selectedData[this.displayProperty];\r\n this.colorSelected = selectedData[this.colorProperty];\r\n } else {\r\n this.selectedValue = selectedData;\r\n }\r\n this.selectedData.emit(selectedData);\r\n this.dropdownOption = false;\r\n }\r\n closeDropdown() {\r\n this.dropdownOption = false;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'pascal',\r\n})\r\nexport class PascalPipe implements PipeTransform {\r\n transform(value: string, ...args: unknown[]): unknown {\r\n if (typeof value !== 'string') {\r\n return value;\r\n }\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'searchMultiSelect',\r\n})\r\nexport class SearchMultiSelectPipe implements PipeTransform {\r\n transform(value: any[], key: string, searchKey: string): any[] {\r\n if (searchKey && searchKey.length > 0) {\r\n searchKey = searchKey.toLowerCase();\r\n return value.filter((item) => {\r\n if (item[key].toLowerCase().includes(searchKey)) {\r\n return item;\r\n }\r\n });\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n constructor(private elementRef: ElementRef) {}\r\n @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\r\n\r\n @HostListener('document:click', ['$event.target']) onMouseEnter(targetElement: any) {\r\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.clickOutside.emit(null);\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-checkbox-indeterminate',\r\n templateUrl: './cs-checkbox-indeterminate.component.html',\r\n styleUrls: ['./cs-checkbox-indeterminate.component.less']\r\n})\r\nexport class CsCheckboxIndeterminateComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() ngValue: any;\r\n @Input() value: any;\r\n @Output() ngValueChange = new EventEmitter<any>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n valueChanged() {\r\n const emitValue = {\r\n value: this.value,\r\n checked: this.ngValue\r\n }\r\n this.ngValueChange.emit(emitValue);\r\n }\r\n\r\n chileClick(event: any){\r\n event.stopPropagation();\r\n }\r\n\r\n}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CsCheckboxComponent } from './cs-checkbox/cs-checkbox.component';\r\nimport { CsRadioComponent } from './cs-radio/cs-radio.component';\r\nimport { CsSwitchComponent } from './cs-switch/cs-switch.component';\r\nimport { CsRadioGroupComponent } from './cs-radio-group/cs-radio-group.component';\r\nimport { CsSelectComponent } from './cs-select/cs-select.component';\r\nimport { TooltipModule } from '../tooltip/tooltip.module';\r\nimport { PascalPipe } from './pipes/pascal.pipe';\r\nimport { SearchMultiSelectPipe } from './pipes/searchMultiSelect.pipe';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\nimport { CsCheckboxIndeterminateComponent } from './cs-checkbox-indeterminate/cs-checkbox-indeterminate.component'\r\n\r\n@NgModule({\r\n declarations: [\r\n CsCheckboxComponent,\r\n CsRadioComponent,\r\n CsSwitchComponent,\r\n CsRadioGroupComponent,\r\n CsSelectComponent,\r\n PascalPipe,\r\n SearchMultiSelectPipe,\r\n ClickOutsideDirective,\r\n CsCheckboxIndeterminateComponent\r\n ],\r\n imports: [CommonModule, FormsModule, TooltipModule],\r\n exports: [\r\n CsCheckboxComponent,\r\n CsRadioComponent,\r\n CsSwitchComponent,\r\n CsRadioGroupComponent,\r\n CsSelectComponent,\r\n SearchMultiSelectPipe,\r\n CsCheckboxIndeterminateComponent\r\n ],\r\n})\r\nexport class FormgroupModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MultipleChoiceComponent } from './multiple-choice/multiple-choice.component';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { ImageChoiceComponent } from './image-choice/image-choice.component';\r\nimport { StarRatingComponent } from './star-rating/star-rating.component';\r\nimport { MatrixDropdownComponent } from './matrix-dropdown/matrix-dropdown.component';\r\nimport { DropdownComponent } from './dropdown/dropdown.component';\r\nimport { MatrixRatingScaleComponent } from './matrix-rating-scale/matrix-rating-scale.component';\r\nimport { RankingComponent } from './ranking/ranking.component';\r\nimport { SliderComponent } from './slider/slider.component';\r\nimport { MultipleTextboxComponent } from './multiple-textbox/multiple-textbox.component';\r\nimport { DateTimeComponent } from './date-time/date-time.component';\r\n// import { TooltipModule } from 'projects/ui-components/src/lib/ui-utility/tooltip/tooltip.module';\r\n// import { FormgroupModule } from 'projects/ui-components/src/lib/ui-utility/formgroup/formgroup.module';\r\n// import { PopoverModule } from 'projects/ui-components/src/lib/ui-utility/popover/popover.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ChoiceSettingsPanelComponent } from './choice-settings-panel/choice-settings-panel.component';\r\nimport { WelcomeComponent } from './welcome/welcome.component';\r\nimport { ThankYouComponent } from './thank-you/thank-you.component';\r\nimport { WeightageSelectorComponent } from './weightage-selector/weightage-selector.component';\r\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\r\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\r\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n MultipleChoiceComponent,\r\n CheckboxComponent,\r\n ImageChoiceComponent,\r\n StarRatingComponent,\r\n MatrixDropdownComponent,\r\n DropdownComponent,\r\n MatrixRatingScaleComponent,\r\n RankingComponent,\r\n SliderComponent,\r\n MultipleTextboxComponent,\r\n DateTimeComponent,\r\n ChoiceSettingsPanelComponent,\r\n WelcomeComponent,\r\n ThankYouComponent,\r\n WeightageSelectorComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TooltipModule,\r\n PopoverModule,\r\n FormgroupModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n MultipleChoiceComponent,\r\n CheckboxComponent,\r\n ImageChoiceComponent,\r\n StarRatingComponent,\r\n MatrixDropdownComponent,\r\n DropdownComponent,\r\n MatrixRatingScaleComponent,\r\n RankingComponent,\r\n SliderComponent,\r\n MultipleTextboxComponent,\r\n DateTimeComponent,\r\n WelcomeComponent,\r\n ThankYouComponent,\r\n WeightageSelectorComponent\r\n ]\r\n})\r\nexport class BuildModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { EditorService } from '../../../services/editor.service';\r\nimport { ValidatorService } from '../../../services/validator.service';\r\n\r\n@Component({\r\n selector: 'app-preview-wrapper',\r\n templateUrl: './preview-wrapper.component.html',\r\n styleUrls: ['./preview-wrapper.component.less']\r\n})\r\nexport class PreviewWrapperComponent implements OnInit {\r\n\r\n @Input() question!: any;\r\n @Input() questionIndex!: number;\r\n @Output() makeActiveQuestion = new EventEmitter<any>();\r\n @Output() validQuestionData = new EventEmitter();\r\n errorPresent = false;\r\n questionIndexSubscription!: Subscription;\r\n viewComments!: boolean;\r\n viewAttachments!: boolean;\r\n viewMessage!: boolean;\r\n constructor(private fd: EditorService, private validator: ValidatorService) { }\r\n\r\n ngOnInit(): void {\r\n // if (Object.values(this.question.errorArray).length === 0){\r\n // if (!this.question.errorArray || Object.values(this.question.errorArray).length === 0) {\r\n // this.checkForValidationStatus('partial');\r\n // }\r\n this.checkForValidationStatus('partial');\r\n }\r\n\r\n editQuestion() {\r\n this.makeActiveQuestion.emit(this.questionIndex);\r\n }\r\n\r\n /**\r\n * Operation on click of save button\r\n */\r\n async checkForValidationStatus(mode?:any) {\r\n const status = await this.validator.validate(this.question);\r\n if (status.valid === true) {\r\n this.errorPresent = false;\r\n this.validator.validatedQuestions[status.question.name] = status.question;\r\n // this.validQuestionData.emit(mode);\r\n } else {\r\n this.errorPresent = true;\r\n delete this.validator.validatedQuestions[status.question.name];\r\n \r\n }\r\n }\r\n showComments() {\r\n this.viewComments = !this.viewComments;\r\n }\r\n showAttachments() {\r\n this.viewAttachments = !this.viewAttachments;\r\n }\r\n showMessage() {\r\n this.viewMessage = !this.viewMessage;\r\n }\r\n\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { shuffle } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-preview-multiple-choice',\r\n templateUrl: './preview-multiple-choice.component.html',\r\n styleUrls: ['./preview-multiple-choice.component.less']\r\n})\r\nexport class PreviewMultipleChoiceComponent implements OnInit {\r\n\r\n @Input() question!: any;\r\n choicesForPreviewMode : any = [];\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.choicesForPreviewMode = this.question.choices;\r\n if (this.question.randomize === true) {\r\n this.randomize();\r\n }\r\n }\r\n randomize() {\r\n this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { shuffle } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-preview-checkbox',\r\n templateUrl: './preview-checkbox.component.html',\r\n styleUrls: ['./preview-checkbox.component.less']\r\n})\r\nexport class PreviewCheckboxComponent implements OnInit {\r\n\r\n\r\n @Input() question!: any;\r\n choicesForPreviewMode : any = [];\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.choicesForPreviewMode = this.question.choices;\r\n if (this.question.randomize === true) {\r\n this.randomize();\r\n }\r\n }\r\n randomize() {\r\n this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-image-choice',\r\n templateUrl: './preview-image-choice.component.html',\r\n styleUrls: ['./preview-image-choice.component.less']\r\n})\r\nexport class PreviewImageChoiceComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-star-rating',\r\n templateUrl: './preview-star-rating.component.html',\r\n styleUrls: ['./preview-star-rating.component.less']\r\n})\r\nexport class PreviewStarRatingComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-single-textbox',\r\n templateUrl: './preview-single-textbox.component.html',\r\n styleUrls: ['./preview-single-textbox.component.less']\r\n})\r\nexport class PreviewSingleTextboxComponent implements OnInit {\r\n @Input() question!: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-comment-box',\r\n templateUrl: './preview-comment-box.component.html',\r\n styleUrls: ['./preview-comment-box.component.less']\r\n})\r\nexport class PreviewCommentBoxComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, HostListener, OnInit, QueryList, ViewChildren } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-matrix-dropdown',\r\n templateUrl: './preview-matrix-dropdown.component.html',\r\n styleUrls: ['./preview-matrix-dropdown.component.less']\r\n})\r\nexport class PreviewMatrixDropdownComponent implements OnInit {\r\n @ViewChildren('scrollMatrixDropdown', { read: ElementRef }) public panel!: QueryList<ElementRef>;\r\n @HostListener('scroll', ['$event'])\r\n scrollHandler(event: any) {\r\n this.panel['_results'].forEach((panel:any) => {\r\n panel['nativeElement'].scrollLeft = event.target.scrollLeft;\r\n });\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { shuffle } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-preview-dropdown',\r\n templateUrl: './preview-dropdown.component.html',\r\n styleUrls: ['./preview-dropdown.component.less']\r\n})\r\nexport class PreviewDropdownComponent implements OnInit {\r\n\r\n\r\n @Input() question!: any;\r\n choicesForPreviewMode : any = [];\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.choicesForPreviewMode = [...this.question.choices];\r\n if (this.question.randomize === true) {\r\n this.randomize();\r\n }\r\n if (this.question.hasOther === true && this.choicesForPreviewMode.findIndex((x:any) => x.title === \"Other\") < 0){\r\n this.choicesForPreviewMode.push({title:'Other'})\r\n }\r\n }\r\n randomize() {\r\n this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, HostListener, OnInit, QueryList, ViewChildren } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-matrix-rating-scale',\r\n templateUrl: './preview-matrix-rating-scale.component.html',\r\n styleUrls: ['./preview-matrix-rating-scale.component.less']\r\n})\r\nexport class PreviewMatrixRatingScaleComponent implements OnInit {\r\n @ViewChildren('scrollMatrixRating', { read: ElementRef }) public panel!: QueryList<ElementRef>;\r\n @HostListener('scroll', ['$event'])\r\n scrollHandler(event: any) {\r\n this.panel['_results'].forEach((panel:any) => {\r\n panel['nativeElement'].scrollLeft = event.target.scrollLeft;\r\n });\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-ranking',\r\n templateUrl: './preview-ranking.component.html',\r\n styleUrls: ['./preview-ranking.component.less']\r\n})\r\nexport class PreviewRankingComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-slider',\r\n templateUrl: './preview-slider.component.html',\r\n styleUrls: ['./preview-slider.component.less']\r\n})\r\nexport class PreviewSliderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-multiple-textbox',\r\n templateUrl: './preview-multiple-textbox.component.html',\r\n styleUrls: ['./preview-multiple-textbox.component.less']\r\n})\r\nexport class PreviewMultipleTextboxComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { DatePickerComponent } from 'ng2-date-picker';\r\n\r\n@Component({\r\n selector: 'app-preview-date-time',\r\n templateUrl: './preview-date-time.component.html',\r\n styleUrls: ['./preview-date-time.component.less']\r\n})\r\nexport class PreviewDateTimeComponent implements OnInit {\r\n @ViewChild('datePicker') datePicker!: DatePickerComponent;\r\n datepickerOverlay = false;\r\n @Input() question!: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n openDatePicker() {\r\n this.datePicker?.api?.open();\r\n this.datepickerOverlay = true;\r\n }\r\n \r\n closeDatepicker() {\r\n this.datePicker?.api?.close();\r\n this.datepickerOverlay = false;\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-file-upload',\r\n templateUrl: './preview-file-upload.component.html',\r\n styleUrls: ['./preview-file-upload.component.less']\r\n})\r\nexport class PreviewFileUploadComponent implements OnInit {\r\n\r\n @Input() question!: any;\r\n constructor() { }\r\n public fileNamePlaceholder = 'Select file';\r\n ngOnInit(): void {\r\n }\r\n handleFile(evt:any){\r\n this.fileNamePlaceholder = evt.target.files[0].name;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preview-welcome',\r\n templateUrl: './welcome.component.html',\r\n styleUrls: ['./welcome.component.less']\r\n})\r\nexport class WelcomeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-thank-you',\r\n templateUrl: './thank-you.component.html',\r\n styleUrls: ['./thank-you.component.less']\r\n})\r\nexport class ThankYouComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PreviewWrapperComponent } from './preview-wrapper/preview-wrapper.component';\r\nimport { PreviewMultipleChoiceComponent } from './preview-multiple-choice/preview-multiple-choice.component';\r\nimport { PreviewCheckboxComponent } from './preview-checkbox/preview-checkbox.component';\r\nimport { PreviewImageChoiceComponent } from './preview-image-choice/preview-image-choice.component';\r\nimport { PreviewStarRatingComponent } from './preview-star-rating/preview-star-rating.component';\r\nimport { PreviewSingleTextboxComponent } from './preview-single-textbox/preview-single-textbox.component';\r\nimport { PreviewCommentBoxComponent } from './preview-comment-box/preview-comment-box.component';\r\nimport { PreviewMatrixDropdownComponent } from './preview-matrix-dropdown/preview-matrix-dropdown.component';\r\nimport { PreviewDropdownComponent } from './preview-dropdown/preview-dropdown.component';\r\nimport { PreviewMatrixRatingScaleComponent } from './preview-matrix-rating-scale/preview-matrix-rating-scale.component';\r\nimport { PreviewRankingComponent } from './preview-ranking/preview-ranking.component';\r\nimport { PreviewSliderComponent } from './preview-slider/preview-slider.component';\r\nimport { PreviewMultipleTextboxComponent } from './preview-multiple-textbox/preview-multiple-textbox.component';\r\nimport { PreviewDateTimeComponent } from './preview-date-time/preview-date-time.component';\r\nimport { PreviewFileUploadComponent } from './preview-file-upload/preview-file-upload.component';\r\n// import { TooltipModule } from 'projects/ui-components/src/lib/ui-utility/tooltip/tooltip.module';\r\n// import { PopoverModule } from 'projects/ui-components/src/lib/ui-utility/popover/popover.module';\r\n// import { FormgroupModule, UiDialogModule } from 'projects/ui-components/src';\r\nimport { MarxEditorModule } from 'vcomply-editor';\r\n// import { NoDataModule } from 'src/app/ui-kit/no-data/no-data.module';\r\nimport { DpDatePickerModule } from 'ng2-date-picker';\r\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\r\nimport { WelcomeComponent } from './welcome/welcome.component';\r\nimport { ThankYouComponent } from './thank-you/thank-you.component';\r\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\r\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\r\nimport { DialogModule } from '../../../../ui-kit/dialog/dialog.module';\r\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\r\nimport { NoDataModule } from '../../../no-data/no-data.module';\r\nimport { SelectModule } from '../../../../formgroup/select/select.module';\r\n// import { SelectModule } from 'src/app/ui-kit/select/select.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PreviewWrapperComponent,\r\n PreviewMultipleChoiceComponent,\r\n PreviewCheckboxComponent,\r\n PreviewImageChoiceComponent,\r\n PreviewStarRatingComponent,\r\n PreviewSingleTextboxComponent,\r\n PreviewCommentBoxComponent,\r\n PreviewMatrixDropdownComponent,\r\n PreviewDropdownComponent,\r\n PreviewMatrixRatingScaleComponent,\r\n PreviewRankingComponent,\r\n PreviewSliderComponent,\r\n PreviewMultipleTextboxComponent,\r\n PreviewDateTimeComponent,\r\n PreviewFileUploadComponent,\r\n WelcomeComponent,\r\n ThankYouComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n TooltipModule,\r\n PopoverModule,\r\n DialogModule,\r\n MarxEditorModule,\r\n FormgroupModule,\r\n NoDataModule,\r\n DpDatePickerModule,\r\n NgxMaterialTimepickerModule,\r\n SelectModule\r\n ],\r\n exports: [\r\n PreviewWrapperComponent,\r\n PreviewMultipleChoiceComponent,\r\n PreviewCheckboxComponent,\r\n PreviewImageChoiceComponent,\r\n PreviewStarRatingComponent,\r\n PreviewSingleTextboxComponent,\r\n PreviewCommentBoxComponent,\r\n PreviewMatrixDropdownComponent,\r\n PreviewDropdownComponent,\r\n PreviewMatrixRatingScaleComponent,\r\n PreviewRankingComponent,\r\n PreviewSliderComponent,\r\n PreviewMultipleTextboxComponent,\r\n PreviewDateTimeComponent,\r\n PreviewFileUploadComponent,\r\n WelcomeComponent,\r\n ThankYouComponent,\r\n ]\r\n})\r\nexport class PreviewModule { }\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { SnackBarService } from '../../../../ui-kit/snack-bar/snack-bar.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-move',\r\n templateUrl: './move.component.html',\r\n styleUrls: ['./move.component.less']\r\n})\r\nexport class MoveComponent implements OnInit {\r\n\r\n constructor( private snackbar :SnackBarService) { }\r\n\r\n @Input() questionIndex !: string;\r\n @Input() question!: string;\r\n @Input() service !:any;\r\n @Input() openPortal :'ASSESSMENT_IMPORT' | 'RESPONSIBILITY_CHECKPOINT'|'' = '';\r\n @ViewChild('moveTemplate') moveElement !: ElementRef;\r\n currentPage = 1;\r\n position = 'After';\r\n selectedQuestion !:any;\r\n emptyPage!: boolean;\r\n public questionDetail: any;\r\n positions = ['After', 'Before'];\r\n ngOnInit(): void {\r\n }\r\n setSelectedQuestion(evt:any){\r\n\r\n this.selectedQuestion = this.service.formsPage.elements.findIndex((x:any) => x.name === evt);\r\n if(this.selectedQuestion > -1){\r\n this.questionDetail = this.service.formsPage.elements[this.selectedQuestion];\r\n }\r\n\r\n }\r\n move() {\r\n let nextIndex;\r\n const message = 'The question has been moved.';\r\n if (this.selectedQuestion !== undefined) {\r\n if (this.position === 'Before') {\r\n if (this.questionIndex >= this.selectedQuestion) {\r\n nextIndex = this.selectedQuestion;\r\n this.service.activeQuestion = nextIndex;\r\n if (nextIndex === 0) {\r\n // ' of page ' ${this.currentPage}\r\n // message = `Question moved to position ' ${nextIndex + 1} `;\r\n } else {\r\n // message = `Question moved to position ' ${nextIndex}`;\r\n }\r\n } else {\r\n nextIndex = this.selectedQuestion - 1;\r\n this.service.activeQuestion = nextIndex;\r\n // message = `Question moved to position ' ${nextIndex + 1}`;\r\n }\r\n }\r\n if (this.position === 'After') {\r\n if (this.questionIndex > this.selectedQuestion) {\r\n nextIndex = this.selectedQuestion + 1;\r\n this.service.activeQuestion = nextIndex;\r\n // message = `Question moved to position ' ${nextIndex + 1}`;\r\n } else {\r\n nextIndex = this.selectedQuestion;\r\n this.service.activeQuestion = nextIndex;\r\n // message = `Question moved to position ' ${nextIndex + 1}`;\r\n }\r\n }\r\n this.service.formsPage.elements[this.questionIndex].page = this.currentPage;\r\n this.service.moveQuestion(this.questionIndex, nextIndex);\r\n // this.snackbar.snackbar.next(message);\r\n this.snackbar.show(message);\r\n setTimeout(() => {\r\n this.moveElement.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }, 400);\r\n } else {\r\n this.snackbar.show('Please select a reference question to move');\r\n }\r\n}\r\nonPageChange(evt:any) {\r\n\r\nif (![...new Set(this.service.formsPage.elements.map((element:any) => element.page))].includes(evt)) {\r\n this.emptyPage = true;\r\n } else {\r\n this.emptyPage = false;\r\n }\r\n}\r\n\r\nchangePage(evt:any){\r\n this.currentPage = evt;\r\n}\r\n\r\nchangePosition(evt:any){\r\n this.position = evt;\r\n}\r\n\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { cloneDeep, some } from 'lodash';\r\n\r\nimport { DialogConfig } from '../../../../ui-kit/dialog/dialog-config';\r\n\r\nimport { DialogRef } from '../../../../ui-kit/dialog/dialog-ref';\r\n@Component({\r\n selector: 'app-add-logic',\r\n templateUrl: './add-logic.component.html',\r\n styleUrls: ['./add-logic.component.less']\r\n})\r\nexport class AddLogicComponent implements OnInit {\r\n\r\n public currentQuestion !:any;\r\n public questionsArray !:any;\r\n selectedValue: any = '';\r\n selectedLogicQuestion !: any;\r\n selectedLogicQuestionType = '';\r\n checkboxValue: any[] = [];\r\n disableLogicDropdown = true;\r\n operatorMap: any = [];\r\n questionIndex!: number;\r\n showError = { isVisible: false, errorMessage: '' };\r\n editorMode !:any;\r\n logic:any = {\r\n andOr: 'and',\r\n questionName: '',\r\n operator: '',\r\n value: this.selectedValue,\r\n questionTitle: ''\r\n };\r\n operatorVal = {\r\n '=': 'Equals',\r\n '!=': 'Not Equals',\r\n '>': 'Greater than',\r\n '<': 'Less than',\r\n '>=': 'Greater or equals',\r\n '<=': 'Less or equals',\r\n answered: 'If answered',\r\n before: 'Before',\r\n after: 'After',\r\n beforeEquals: 'Before or equals',\r\n afterEquals: 'After or equals'\r\n };\r\n constructor(public config: DialogConfig, public dialog: DialogRef) { }\r\n\r\n ngOnInit(): void {\r\n this.currentQuestion = cloneDeep(this.config.data.currentQuestion);\r\n this.getCurrentPageQuestions();\r\n this.editorMode = this.config.data.editorMode;\r\n this.questionIndex = this.config.data.questionIndex;\r\n }\r\n\r\n /**\r\n * Fetches the questions on currently active page\r\n */\r\n getCurrentPageQuestions() {\r\n this.questionsArray = cloneDeep(this.config.data.allQuestions);\r\n this.questionsArray = this.questionsArray.filter((question:any) =>\r\n question.page === this.currentQuestion.page);\r\n }\r\n\r\n /**\r\n * Sets the index and title of current question\r\n * @param index Current index of question\r\n * @param questionTitle Title of question at index i\r\n */\r\n setIndex(selectedQuestionName:any) {\r\n let index = this.questionsArray.findIndex((x:any) => x.name === selectedQuestionName);\r\n this.showError.isVisible = false;\r\n this.selectedLogicQuestion = index;\r\n this.logic.operator = '';\r\n this.selectedValue = '';\r\n this.logic.questionTitle = this.questionsArray[index].title;\r\n this.selectedLogicQuestionType = this.questionsArray[this.selectedLogicQuestion].type;\r\n this.setValuesForLogicDropdown();\r\n }\r\n\r\n setOperator(evt:any) {\r\n this.logic.operator = evt;\r\n }\r\n /**\r\n * populates the logic dropdown based on question type\r\n */\r\n setValuesForLogicDropdown() {\r\n let defaultOperatorMap = [{ key: '=', value: 'Equals' },\r\n { key: '!=', value: 'Not Equals' },\r\n { key: 'answered', value: 'If answered' }];\r\n\r\n const type = this.questionsArray[this.selectedLogicQuestion].type;\r\n\r\n if (['star-rating', 'slider'].includes(type)) {\r\n defaultOperatorMap.push(\r\n { key: '>', value: 'Greater than' },\r\n { key: '<', value: 'Less than' },\r\n { key: '>=', value: 'Greater or equals' },\r\n { key: '<=', value: 'Less or equals' },\r\n );\r\n } else if (['file-upload', 'matrix-dropdown', 'rating-scale', 'multiple-textbox'].includes(type)) {\r\n defaultOperatorMap = [{ key: 'answered', value: 'If answered' }];\r\n } else if (['date-time'].includes(type)) {\r\n defaultOperatorMap.push(\r\n { key: 'before', value: 'Before' },\r\n { key: 'after', value: 'After' },\r\n { key: 'beforeEquals', value: 'Before or equals' },\r\n { key: 'afterEquals', value: 'After or equals' }\r\n );\r\n }\r\n this.operatorMap = [...defaultOperatorMap];\r\n this.disableLogicDropdown = false;\r\n }\r\n\r\n /**\r\n * Operation on selecting value from checkbox\r\n * @param event Event triggered on selecting value of checkbox\r\n * @param title Title of the checkbox option selected\r\n */\r\n checkboxStatus(evt:any) {\r\n \r\n this.selectedValue = '';\r\n if (evt.checked === true) {\r\n this.checkboxValue.push(evt.choice.title);\r\n } else {\r\n this.checkboxValue = this.checkboxValue.filter(value => evt.choice.title !== value);\r\n }\r\n this.selectedValue = this.checkboxValue;\r\n }\r\n\r\n\r\n multipleChoiceChecked(evt:any) {\r\n this.setSelectedValue(evt.choice.title)\r\n }\r\n\r\n rankingStatus(choice:any) {\r\n this.questionsArray[this.selectedLogicQuestion].choices = choice;\r\n }\r\n\r\n /**\r\n * Operation on entering value to multiple text boxes\r\n */\r\n setMultiplTextStatus() {\r\n this.selectedValue = '';\r\n \r\n this.questionsArray[this.selectedLogicQuestion].choices.forEach((choice:any) => {\r\n if (choice.value !== '') {\r\n this.selectedValue += choice.title + ':' + choice.value;\r\n }\r\n if (this.selectedValue !== '') {\r\n this.selectedValue += ';';\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Adds the logic on click of add logic button\r\n */\r\n addLogic() {\r\n if (this.questionsArray[this.selectedLogicQuestion].type === 'ranking') {\r\n this.populateSelectedValueForRanking();\r\n } else if (this.questionsArray[this.selectedLogicQuestion].type === 'multiple-textbox') {\r\n this.setMultiplTextStatus();\r\n } else if (this.questionsArray[this.selectedLogicQuestion].type === 'date-time') {\r\n this.setValueForDateTimeType();\r\n \r\n }\r\n this.showError.isVisible = false;\r\n this.logic.value = this.selectedValue;\r\n \r\n if (this.logic.operator === 'answered' || this.selectedValue !== '') {\r\n if (!some([this.currentQuestion.visibilityLogic], this.logic) &&\r\n (this.selectedValue !== 'answered') && this.logic.questionName !== '' && this.logic.operator !== '') {\r\n if (this.checkForLogicValue()) {\r\n this.currentQuestion.visibilityLogic.push(this.logic);\r\n this.checkboxValue = [];\r\n }\r\n }\r\n } else {\r\n this.showError.isVisible = true;\r\n if (this.selectedLogicQuestionType == 'single-textbox' || this.selectedLogicQuestionType == 'comment-box') {\r\n this.showError.errorMessage = 'Please enter a value to add logic';\r\n } else {\r\n this.showError.errorMessage = 'Please select a value to add logic';\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n if (this.currentQuestion.visibilityLogic.length > 0) {\r\n this.currentQuestion.isRequired = false;\r\n }\r\n if (!this.showError.isVisible) {\r\n this.resetLogic();\r\n this.closePopup('ADD_LOGIC');\r\n }\r\n }\r\n\r\n closePopup(mode:any) {\r\n this.dialog.close({ action: mode, logic: this.currentQuestion.visibilityLogic });\r\n }\r\n\r\n /**\r\n * Populates logic selected value for ranking type question\r\n */\r\n populateSelectedValueForRanking() {\r\n const rankingArray:any = [];\r\n this.questionsArray[this.selectedLogicQuestion].choices.forEach((choice:any) => {\r\n rankingArray.push(choice.title);\r\n });\r\n this.selectedValue = rankingArray.join();\r\n }\r\n\r\n /**\r\n * Validation for logic value (Validation: Previously value is entered or not for the particular question type)\r\n */\r\n checkForLogicValue() {\r\n const logicValues:any = [];\r\n this.currentQuestion.visibilityLogic.forEach((logic:any) => {\r\n if (this.logic.questionTitle === logic.questionTitle) {\r\n logicValues.push(logic.value);\r\n }\r\n });\r\n if (!logicValues.includes(this.logic.value)) {\r\n logicValues.push(this.logic.value);\r\n this.showError.isVisible = false;\r\n return true;\r\n }\r\n\r\n this.showError.errorMessage = 'Logic already applied for this value. Please select another value to apply logic';\r\n this.showError.isVisible = true;\r\n if (!this.showError.isVisible) {\r\n this.resetLogic();\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Deletes the logic having given index from visibility logic list\r\n * @param index Index of selected logic\r\n */\r\n deleteLogic(index:any) {\r\n this.currentQuestion.visibilityLogic.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Assigns the selected value to value that needs to be displayed to user\r\n * @param selectedVal Value selected to be displayed\r\n */\r\n setSelectedValue(selectedVal?: string) {\r\n this.showError.isVisible = false;\r\n if (this.questionsArray[this.selectedLogicQuestion].type === 'date-time') {\r\n this.setValueForDateTimeType();\r\n } else {\r\n this.selectedValue = selectedVal;\r\n }\r\n }\r\n\r\n /**\r\n * For date/time assigns the selected value to value that needs to be displayed to user\r\n */\r\n setValueForDateTimeType() {\r\n this.selectedValue = '';\r\n \r\n if (!this.questionsArray[this.selectedLogicQuestion].date.value &&\r\n !this.questionsArray[this.selectedLogicQuestion].time.value) {\r\n this.showError.isVisible = true;\r\n \r\n this.showError.errorMessage = 'Please select a value to add logic';\r\n\r\n } else {\r\n if (!this.questionsArray[this.selectedLogicQuestion].date.value &&\r\n this.questionsArray[this.selectedLogicQuestion].time.value) {\r\n this.selectedValue = this.questionsArray[this.selectedLogicQuestion].time.title + ': ' +\r\n this.questionsArray[this.selectedLogicQuestion].time.value;\r\n } else if (this.questionsArray[this.selectedLogicQuestion].date.value &&\r\n !this.questionsArray[this.selectedLogicQuestion].time.value) {\r\n this.selectedValue = this.questionsArray[this.selectedLogicQuestion].date.title + ': ' +\r\n this.formateWithPipe(this.questionsArray[this.selectedLogicQuestion].date.value);\r\n } else {\r\n this.selectedValue = this.questionsArray[this.selectedLogicQuestion].date.title + ': ' +\r\n this.formateWithPipe(this.questionsArray[this.selectedLogicQuestion].date.value) + ', ' +\r\n this.questionsArray[this.selectedLogicQuestion].time.title + ': ' +\r\n this.questionsArray[this.selectedLogicQuestion].time.value;\r\n }\r\n }\r\n if(this.questionsArray[this.selectedLogicQuestion].date.value){\r\n this.logic['date'] = this.formateBySlash(this.questionsArray[this.selectedLogicQuestion].date.value);\r\n }else{\r\n this.logic['date'] = '';\r\n }\r\n if(this.questionsArray[this.selectedLogicQuestion].time.value){\r\n this.logic['time'] = this.questionsArray[this.selectedLogicQuestion].time.value;\r\n }else{\r\n this.logic['time'] = '';\r\n }\r\n\r\n \r\n this.questionsArray[this.selectedLogicQuestion].date.value = '';\r\n this.questionsArray[this.selectedLogicQuestion].time.value = '';\r\n }\r\n\r\n /**\r\n * Empties the selected value if the logic operator is 'answered'\r\n * @param logicOperator Logic operator selected from logic dropdown\r\n */\r\n onSelectLogic(logicOperator: string) {\r\n if (logicOperator === 'answered') {\r\n this.selectedValue = '';\r\n }\r\n }\r\n\r\n /**\r\n * Empties/Resets the logic fields\r\n */\r\n resetLogic() {\r\n this.selectedLogicQuestionType = '';\r\n this.selectedValue = '';\r\n this.selectedLogicQuestion = null;\r\n this.disableLogicDropdown = true;\r\n this.operatorMap = []\r\n this.logic = {\r\n andOr: 'and',\r\n questionName: '',\r\n operator: '',\r\n questionTitle: '',\r\n value: this.selectedValue\r\n };\r\n this.showError.isVisible = false;\r\n this.showError.errorMessage = '';\r\n }\r\n\r\n /**\r\n * Assigns the selected star rating value to selected value and updates in main question array list\r\n * @param selectedValueIndex Index of selected value\r\n * @param questionIndex Index of current question\r\n */\r\n captureStarValue(selectedValueIndex:any) {\r\n this.questionsArray[this.selectedLogicQuestion].value = selectedValueIndex + 1;\r\n this.selectedValue = selectedValueIndex + 1;\r\n }\r\n\r\n /**\r\n * Converts the date to toLocaleDateString format\r\n * @param date Date to be converted\r\n */\r\n formatDate(date: Date) {\r\n return (new Date(date)).toLocaleDateString();\r\n }\r\n\r\n /**\r\n * Operation On drag/drop of option of ranking type question\r\n * @param event Event triggered when option of ranking type question is dragged and dropped\r\n */\r\n // drop(event: CdkDragDrop<string[]>) {\r\n // moveItemInArray(this.questionsArray[this.selectedLogicQuestion].choices, event.previousIndex, event.currentIndex);\r\n // }\r\n\r\n\r\n formateWithPipe(date:any){\r\n var datePipe = new DatePipe('en-US');\r\n return datePipe.transform(date, 'dd MMM yyyy');\r\n }\r\n\r\n formateBySlash(date:any){\r\n var datePipe = new DatePipe('en-US');\r\n return datePipe.transform(date, 'yyyy-MM-ddTHH:mm:ss.SSS','+0:00')+'Z';\r\n }\r\n\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { DialogService } from '../../../../ui-kit/dialog/dialog.service';\r\nimport { AddLogicComponent } from '../add-logic/add-logic.component';\r\n\r\n@Component({\r\n selector: 'app-logic',\r\n templateUrl: './logic.component.html',\r\n styleUrls: ['./logic.component.less']\r\n})\r\nexport class LogicComponent implements OnInit {\r\n\r\n // constructor(\r\n // private dialog: UiDialogService,\r\n // ) { }\r\n\r\n // ngOnInit(): void {\r\n // }\r\n\r\n // addLogic() {\r\n // const ref = this.dialog.open(AddLogicComponent, {\r\n // data: { },\r\n // position: 'CENTER',\r\n // background: 'black',\r\n // });\r\n // }\r\n constructor(private dialog: DialogService) { }\r\n @Input() service: any;\r\n @Input() question: any;\r\n @Input() questionIndex: any;\r\n @Input() editorMode: any;\r\n operatorVal:any = {\r\n '=': 'Equals',\r\n '!=': 'Not Equals',\r\n '>': 'Greater than',\r\n '<': 'Less than',\r\n '>=': 'Greater or equals',\r\n '<=': 'Less or equals',\r\n answered: 'If answered',\r\n before: 'Before',\r\n after: 'After',\r\n beforeEquals: 'Before or equals',\r\n afterEquals: 'After or equals'\r\n };\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n modifyLogic() {\r\n const ref = this.dialog.open(AddLogicComponent,\r\n {\r\n position: 'CENTER',\r\n background: 'black',\r\n data: {\r\n currentQuestion: this.question,\r\n allQuestions: this.service.formsPage.elements,\r\n editorMode: this.editorMode,\r\n questionIndex: this.questionIndex\r\n }\r\n });\r\n ref.afterClosed.subscribe(data => {\r\n \r\n if (data.action === 'ADD_LOGIC') {\r\n this.question.visibilityLogic = data.logic;\r\n }\r\n });\r\n }\r\n addLogic(){}\r\n\r\n /**\r\n * Deletes the logic having given index from visibility logic list\r\n * @param index Index of selected logic\r\n */\r\n deleteLogic(index:number) {\r\n this.question.visibilityLogic.splice(index, 1);\r\n }\r\n // show(origin, data?, content?: TemplateRef<any>) {\r\n // \r\n // const ref = this.popper.open({\r\n // content: PopoverActionComponent,\r\n // origin,\r\n // width: '250',\r\n // data: {\r\n // action: this.formateData(data),\r\n // actionData: data\r\n // }\r\n // });\r\n\r\n // ref.afterClosed$.subscribe(res => {\r\n // \r\n // });\r\n\r\n // }\r\n\r\n formateData(value:any) {\r\n const action = [];\r\n const data = value.split(',');\r\n for (let i = 1; i < data.length; i++) {\r\n action.push({ icon: '', name: data[i], identifier: '' })\r\n }\r\n return action;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logic-multiple-choice',\r\n templateUrl: './logic-multiple-choice.component.html',\r\n styleUrls: ['./logic-multiple-choice.component.less']\r\n})\r\nexport class LogicMultipleChoiceComponent implements OnInit {\r\n\r\n @Input() question!: any;\r\n @Output() changeEvent = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n radioChecked(evt:any,choice:any){\r\n this.changeEvent.emit({checked:evt, choice})\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logic-checkbox',\r\n templateUrl: './logic-checkbox.component.html',\r\n styleUrls: ['./logic-checkbox.component.less']\r\n})\r\nexport class LogicCheckboxComponent implements OnInit {\r\n\r\n @Input() question!: any;\r\n @Output() changeEvent = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n emitChange(evt:any,choice:any){\r\n this.changeEvent.emit({checked:evt, choice})\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logic-image-choice',\r\n templateUrl: './logic-image-choice.component.html',\r\n styleUrls: ['./logic-image-choice.component.less']\r\n})\r\nexport class LogicImageChoiceComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logic-star-rating',\r\n templateUrl: './logic-star-rating.component.html',\r\n styleUrls: ['./logic-star-rating.component.less']\r\n})\r\nexport class LogicStarRatingComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logic-single-textbox',\r\n templateUrl: './logic-single-textbox.component.html',\r\n styleUrls: ['./logic-single-textbox.component.less']\r\n})\r\nexport class LogicSingleTextboxComponent implements OnInit {\r\n\r\n @Input() question!: any;\r\n @Output() changeEvent = new EventEmitter<any>();\r\n constructor() { }\r\n selectedValue!:any;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n dataChanged(){\r\n this.changeEvent.emit(this.selectedValue)\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logic-comment-box',\r\n templateUrl: './logic-comment-box.component.html',\r\n styleUrls: ['./logic-comment-box.component.less']\r\n})\r\nexport class LogicCommentBoxComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logic-dropdown',\r\n templateUrl: './logic-dropdown.component.html',\r\n styleUrls: ['./logic-dropdown.component.less']\r\n})\r\nexport class LogicDropdownComponent implements OnInit {\r\n\r\n @Input() question !: any;\r\n @Input('question') set questionSet(value: boolean) {\r\n this.question = value;\r\nif(this.question.hasOther){\r\n this.question.choices.push({title:'Other',value:'Other'})\r\n }\r\n}\r\n @Output() changeEvent = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n emitChange(choice:any){\r\n\r\n this.changeEvent.emit({choice:{title:choice}})\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logic-ranking',\r\n templateUrl: './logic-ranking.component.html',\r\n styleUrls: ['./logic-ranking.component.less']\r\n})\r\nexport class LogicRankingComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logic-slider',\r\n templateUrl: './logic-slider.component.html',\r\n styleUrls: ['./logic-slider.component.less']\r\n})\r\nexport class LogicSliderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logic-multiple-textbox',\r\n templateUrl: './logic-multiple-textbox.component.html',\r\n styleUrls: ['./logic-multiple-textbox.component.less']\r\n})\r\nexport class LogicMultipleTextboxComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { DatePickerComponent } from 'ng2-date-picker';\r\n\r\n@Component({\r\n selector: 'app-logic-date-time',\r\n templateUrl: './logic-date-time.component.html',\r\n styleUrls: ['./logic-date-time.component.less']\r\n})\r\nexport class LogicDateTimeComponent implements OnInit {\r\n @ViewChild('datePicker') datePicker!: DatePickerComponent;\r\n datepickerOverlay = false;\r\n @Input() question!: any;\r\n @Output() changeEvent = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n openDatePicker() {\r\n this.datePicker?.api?.open();\r\n this.datepickerOverlay = true;\r\n }\r\n \r\n closeDatepicker() {\r\n this.datePicker?.api?.close();\r\n this.datepickerOverlay = false;\r\n }\r\n\r\n dateChanged(evt:any){\r\n \r\n }\r\n timeChanged(evt:any){\r\n \r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LogicMultipleChoiceComponent } from './logic-multiple-choice/logic-multiple-choice.component';\r\nimport { LogicCheckboxComponent } from './logic-checkbox/logic-checkbox.component';\r\nimport { LogicImageChoiceComponent } from './logic-image-choice/logic-image-choice.component';\r\nimport { LogicStarRatingComponent } from './logic-star-rating/logic-star-rating.component';\r\nimport { LogicSingleTextboxComponent } from './logic-single-textbox/logic-single-textbox.component';\r\nimport { LogicCommentBoxComponent } from './logic-comment-box/logic-comment-box.component';\r\nimport { LogicDropdownComponent } from './logic-dropdown/logic-dropdown.component';\r\nimport { LogicRankingComponent } from './logic-ranking/logic-ranking.component';\r\nimport { LogicSliderComponent } from './logic-slider/logic-slider.component';\r\nimport { LogicMultipleTextboxComponent } from './logic-multiple-textbox/logic-multiple-textbox.component';\r\nimport { LogicDateTimeComponent } from './logic-date-time/logic-date-time.component';\r\n// import { TooltipModule } from 'projects/ui-components/src/lib/ui-utility/tooltip/tooltip.module';\r\n// import { PopoverModule } from 'projects/ui-components/src/lib/ui-utility/popover/popover.module';\r\n// import { FormgroupModule } from 'projects/ui-components/src';\r\nimport { DpDatePickerModule } from 'ng2-date-picker';\r\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\r\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\r\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n LogicMultipleChoiceComponent,\r\n LogicCheckboxComponent,\r\n LogicImageChoiceComponent,\r\n LogicStarRatingComponent,\r\n LogicSingleTextboxComponent,\r\n LogicCommentBoxComponent,\r\n LogicDropdownComponent,\r\n LogicRankingComponent,\r\n LogicSliderComponent,\r\n LogicMultipleTextboxComponent,\r\n LogicDateTimeComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n TooltipModule,\r\n PopoverModule,\r\n FormgroupModule,\r\n DpDatePickerModule,\r\n NgxMaterialTimepickerModule,\r\n ],\r\n exports: [\r\n LogicMultipleChoiceComponent,\r\n LogicCheckboxComponent,\r\n LogicImageChoiceComponent,\r\n LogicStarRatingComponent,\r\n LogicSingleTextboxComponent,\r\n LogicCommentBoxComponent,\r\n LogicDropdownComponent,\r\n LogicRankingComponent,\r\n LogicSliderComponent,\r\n LogicMultipleTextboxComponent,\r\n LogicDateTimeComponent\r\n ]\r\n})\r\nexport class LogicQuestionsModule { }\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-toolkit',\r\n templateUrl: './toolkit.component.html',\r\n styleUrls: ['./toolkit.component.less']\r\n})\r\nexport class ToolkitComponent implements OnInit {\r\n @Output() addQuestion = new EventEmitter();\r\n constructor() { }\r\n showCollapse = true;\r\n ngOnInit(): void {\r\n }\r\n clickCollapse(){\r\n this.showCollapse = !this.showCollapse;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'errorMessage'\r\n})\r\nexport class ErrorMessagePipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n if(value){\r\n const [first] = Object.keys(value);\r\n if(value[first].message){\r\n return value[first].message\r\n }else{\r\n return '';\r\n }\r\n }else{\r\n return '';\r\n }\r\n \r\n \r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'questionFilter'\r\n})\r\nexport class QuestionFilterPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n return value.filter((question:any) => (question.name !== args[0] && question.title.trim().length > 0) && question?.visibilityLogic?.length === 0 );;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'questionParser'\r\n})\r\nexport class QuestionParserPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: unknown[]): any {\r\n \r\n if(!value){\r\n return 'Select a question'\r\n }else{\r\n return value;\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatter'\r\n})\r\nexport class FormatterPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: unknown[]): any {\r\n const action = [];\r\n const data = value.split(',');\r\n for (let i = 1; i < data.length; i++) {\r\n action.push({ icon: '', name: data[i], identifier: '' })\r\n }\r\n return action;\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { cloneDeep } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-setting-anonymous',\r\n templateUrl: './setting-anonymous.component.html',\r\n styleUrls: ['./setting-anonymous.component.less']\r\n})\r\nexport class SettingAnonymousComponent implements OnInit {\r\n setting!:any;\r\n localSetting !:any;\r\n @Input('setting') set settingData(value:any){\r\n this.setting = cloneDeep(value) ;\r\n this.localSetting = cloneDeep(value) ;\r\n }\r\n\r\n @Output() save = new EventEmitter<any>();\r\n @Output() cancelEvt = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n manipulateDefault(mode:any){\r\n if (mode === 'INCREASE' && this.setting.defaultScore >= 0){\r\n this.setting.defaultScore = this.setting.defaultScore + 1;\r\n } else if (mode === 'DECREASE' && this.setting.defaultScore > 1 ){\r\n this.setting.defaultScore = this.setting.defaultScore - 1;\r\n }\r\n }\r\n manipulateNegativeScore(mode:any){\r\n if (mode === 'INCREASE' && this.setting.negativeScore >= 0){\r\n this.setting.negativeScore = this.setting.negativeScore + 1;\r\n } else if (mode === 'DECREASE' && this.setting.negativeScore >= 1 ){\r\n this.setting.negativeScore = this.setting.negativeScore - 1;\r\n }\r\n }\r\n\r\n overRideConfirm = false;\r\n confirmOverride(evt?:any){\r\n\r\n this.overRideConfirm = !this.overRideConfirm;\r\n }\r\n saveSetting(){ \r\n this.save.emit(this.setting);\r\n this.overRideConfirm = false;\r\n }\r\n cancel(){\r\n this.cancelEvt.emit(this.localSetting);\r\n this.overRideConfirm = false;\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { EditorConfig } from 'vcomply-editor';\r\nimport { EditorService } from '../../services/editor.service';\r\nimport { ResultCriteriaService } from '../../services/result-criteria.service';\r\nimport { nanoid } from 'nanoid';\r\nimport { cloneDeep } from 'lodash';\r\n@Component({\r\n selector: 'app-setting-response-segment',\r\n templateUrl: './setting-response-segment.component.html',\r\n styleUrls: ['./setting-response-segment.component.less']\r\n})\r\nexport class SettingResponseSegmentComponent implements OnInit {\r\n\r\n // constructor() { }\r\n\r\n // ngOnInit(): void {\r\n // }\r\n description: EditorConfig = {\r\n mode: 'prime',\r\n placeholder: 'Enter Segment criteria description',\r\n };\r\n hideSegmentPopup !:boolean;\r\n editSegmentPopup !:boolean;\r\n editSegment(){}\r\n closeSegmentPopup(){}\r\n openSegmentPopup(){}\r\n setting!:any;\r\n localSetting !:any;\r\n @Input('setting') set settingData(value:any){\r\n this.setting = value ;\r\n this.localSetting = cloneDeep(value) ;\r\n }\r\n @Output() save = new EventEmitter<any>();\r\n\r\n constructor(private el: ElementRef, private criteriaService: ResultCriteriaService) { }\r\n showResultPopup = false;\r\n showResultEditPopup = false;\r\n popoverLeft: any;\r\n popoverTop: any;\r\n mode: any;\r\n editIndex !: number;\r\n selectedSegment: any = {\r\n id: nanoid(),\r\n segmentName: '',\r\n segmentDescription: '',\r\n toRange: 0,\r\n fromRange: 0,\r\n color: '#000000'\r\n };\r\n @ViewChild('button') button !:any;\r\n @ViewChild('buttonEdit') buttonEdit !:any;\r\n @Output() closed = new EventEmitter<any>();\r\n @Output() cancelEvt = new EventEmitter<any>(); \r\n @Input() formJSON !: string;\r\n @Input() fd !:any;\r\n resultCriteria = [\r\n ];\r\n entityJSON !:any;\r\n maxRange = 10;\r\n errorArray:any = [];\r\n ngOnInit(): void {\r\n this.maxRange = this.criteriaService.calculateMaxScore(this.fd.formsPage);\r\n }\r\n\r\n addNewSegment() {\r\n this.showResultEditPopup = false;\r\n this.mode = 'ADD';\r\n this.selectedSegment = {\r\n id: nanoid(14),\r\n segmentName: '',\r\n segmentDescription: '',\r\n fromRange: 0,\r\n toRange: this.maxRange,\r\n color: '#000000'\r\n };\r\n this.clickResultPopup();\r\n }\r\n closePopUp() {\r\n this.closed.emit();\r\n }\r\n\r\n closeSegment() {\r\n this.showResultPopup = false;\r\n this. showResultEditPopup = false;\r\n this.editIndex = -10;\r\n }\r\n\r\n clickResultPopup() {\r\n this.editIndex = -10;\r\n const popover = this.button.nativeElement.getBoundingClientRect();\r\n let left = 0;\r\n let top = 0;\r\n top = popover.top;\r\n left = popover.left;\r\n this.showResultPopup = !this.showResultPopup;\r\n this.showResultEditPopup = false;\r\n this.popoverLeft = left + 10;\r\n this.popoverTop = top - 350;\r\n }\r\n editResultPopup(event:any, segment:any, i:any) {\r\n this.editIndex = i;\r\n this.mode = 'EDIT';\r\n this.selectedSegment = segment;\r\n const popover = event.target.parentElement.parentElement.parentElement.parentElement.getBoundingClientRect();\r\n let left = 0;\r\n let top = 0;\r\n top = popover.top;\r\n left = popover.left;\r\n this.showResultEditPopup = true;\r\n this.showResultPopup = false;\r\n this.popoverLeft = left + 10;\r\n this.popoverTop = top - 350;\r\n }\r\n saveCriteria(evt:any) {\r\n if (this.mode === 'ADD') {\r\n this.showResultPopup = !this.showResultPopup;\r\n this.setting.segmentData.segments.push(evt);\r\n }\r\n else if (this.mode === 'EDIT') {\r\n this.showResultEditPopup = !this.showResultEditPopup;\r\n const index = this.setting.segmentData.segments.findIndex((x:any) => x.id === evt.id);\r\n this.setting.segmentData.segments[index] = evt;\r\n }\r\n }\r\n\r\n deleteSegment(index:any) {\r\n this.setting.segmentData.segments.splice(index, 1);\r\n }\r\n saveSetting():any{\r\n this.editIndex = -10;\r\n this.showResultEditPopup = false;\r\n this.showResultPopup = false;\r\n this.errorArray = [];\r\n if (this.setting.segmentData.title.trim().length === 0 ){\r\n this.errorArray.push({type: 'SEGMENT_NAME_MISSING', message: 'Please enter the segment criteria name.'});\r\n return false;\r\n } else if (this.setting.segmentData.segments.length === 0){\r\n this.errorArray.push({type: 'NO_SEGMENT_FOUND', message: 'Please add atleast one segment.'});\r\n return false;\r\n }\r\n this.save.emit(this.setting);\r\n \r\n \r\n }\r\n discardEdit(index:any) {\r\n this.editIndex = -10;\r\n this.showResultEditPopup = false;\r\n }\r\n closeSegmentResult() {\r\n this.editIndex = -10;\r\n this.showResultEditPopup = false;\r\n this.showResultPopup = false;\r\n }\r\n cancel(){\r\n this.cancelEvt.emit(this.localSetting);\r\n\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-page-header',\r\n templateUrl: './page-header.component.html',\r\n styleUrls: ['./page-header.component.less']\r\n})\r\nexport class PageHeaderComponent implements OnInit {\r\n @Input() pageName !: string;\r\n @Input() pageDescription !:string;\r\n @Output() edit = new EventEmitter();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Optional, Output } from '@angular/core';\r\nimport { Configurations } from '../../../../configurations';\r\n\r\n// import { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-welcome-thankyou',\r\n templateUrl: './welcome-thankyou.component.html',\r\n styleUrls: ['./welcome-thankyou.component.less']\r\n})\r\nexport class WelcomeThankyouComponent implements OnInit {\r\n @Output() deleteQuestion = new EventEmitter();\r\n @Input() entityData!: any;\r\n @Input() service !:any;\r\nenv !:any;\r\n isImageUploading !:boolean;\r\n constructor(@Optional() config?: Configurations) { \r\n if (config) {\r\n this.env = config.envConfig;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.entityData.hasWelcomeImage = true;\r\n this.entityData.hasWelcomeDescription = true;\r\n }\r\n onSelectImage(event:any) {\r\n if (event.target.files && event.target.files[0]) {\r\n this.isImageUploading = true;\r\n this.service.formsPage.welcomeImage = '';\r\n // tslint:disable-next-line: prefer-const\r\n let selectedFile = event.target.files[0];\r\n const uploadData = new FormData();\r\n uploadData.append('file', selectedFile);\r\n // tslint:disable-next-line: prefer-const\r\n let destination = 'assessment/imports' + '/welcome/';\r\n this.service.uploadHandler(uploadData, destination).subscribe((data:any) => {\r\n this.isImageUploading = false;\r\n this.service.formsPage.welcomeImage = this.env?.s3Url + this.env?.s3Bucket + '/' + data.file_url_path;\r\n }, (error:any) => {\r\n this.isImageUploading = false;\r\n });\r\n }\r\n }\r\n// deleteWelcome() {\r\n// this.service.formsPage.hasWelcome = false;\r\n// this.service.stepIdentifier = 'pagescreen';\r\n// this.service.currentPageNumber = 1;\r\n// this.service.formsPage.pageDetailsList.forEach(pageDetail => {\r\n// if (pageDetail.pageNumber === this.service.currentPageNumber) {\r\n// this.service.currentPageDetails.pageName = pageDetail.pageName;\r\n// this.service.currentPageDetails.pageNumber = pageDetail.pageNumber;\r\n// this.service.currentPageDetails.pageDescription = pageDetail.pageDescription;\r\n// }\r\n// });\r\n// this.service.checkForPageDetails();\r\n// }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'currentPageQuestion'\r\n})\r\nexport class CurrentPageQuestionPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n let x = value.filter((question:any) => (question.page === args[0]) );\r\n if(x.length > 1){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'questionPageFilter'\r\n})\r\nexport class QuestionPageFilterPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n return value.filter((question:any) => question?.page === args[0]);\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'typeof'\r\n})\r\nexport class TypeOfPipe implements PipeTransform {\r\n\r\n transform(value: any): any {\r\n \r\n return typeof value;\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-editor-loader',\r\n templateUrl: './editor-loader.component.html',\r\n styleUrls: ['./editor-loader.component.less']\r\n})\r\nexport class EditorLoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EditorLoaderComponent } from './editor-loader/editor-loader.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [EditorLoaderComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n EditorLoaderComponent\r\n ]\r\n})\r\nexport class EditorLoaderModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CreateAssessmentContainerComponent } from './create-assessment-container/create-assessment-container.component';\r\nimport { RouterModule } from '@angular/router';\r\n// import { TooltipModule } from 'projects/ui-components/src/lib/ui-utility/tooltip/tooltip.module';\r\n// import { PopoverModule } from 'projects/ui-components/src/lib/ui-utility/popover/popover.module';\r\nimport { QuestionTypeComponent } from './components/question-type/question-type.component';\r\nimport { AddPageDetailsComponent } from './components/add-page-details/add-page-details.component';\r\n// import { FormgroupModule, UiDialogModule } from 'projects/ui-components/src';\r\nimport { MarxEditorModule } from 'vcomply-editor';\r\nimport { AssessmentSettingsComponent } from './components/assessment-settings/assessment-settings.component';\r\nimport { AddSegmentPopupComponent } from './components/add-segment-popup/add-segment-popup.component';\r\nimport { AddResponseSetPopupComponent } from './components/add-response-set-popup/add-response-set-popup.component';\r\nimport { EditorWrapperComponent } from './components/editor-wrapper/editor-wrapper.component';\r\nimport { QuickSettingsComponent } from './components/quick-settings/quick-settings.component';\r\nimport { SingleLineEditorComponent } from './components/single-line-editor/single-line-editor.component';\r\nimport { ResponseSelectorComponent } from './components/response-selector/response-selector.component';\r\n\r\nimport { BuildModule } from './components/build/build.module';\r\nimport { PreviewModule } from './components/preview/preview.module';\r\nimport { MoveComponent } from './components/move/move.component';\r\nimport { LogicComponent } from './components/logic/logic.component';\r\nimport { AddLogicComponent } from './components/add-logic/add-logic.component';\r\nimport { LogicQuestionsModule } from './components/logic-questions/logic-questions.module';\r\nimport { ToolkitComponent } from './components/toolkit/toolkit.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ErrorMessagePipe } from './components/pipes/error-message.pipe';\r\nimport { QuestionFilterPipe } from './components/pipes/question-filter.pipe';\r\nimport { QuestionParserPipe } from './components/pipes/question-parser.pipe';\r\nimport { FormatterPipe } from './components/pipes/formatter.pipe';\r\nimport { SettingAnonymousComponent } from './components/setting-anonymous/setting-anonymous.component';\r\nimport { SettingResponseSegmentComponent } from './components/setting-response-segment/setting-response-segment.component';\r\n// import { TokenInterceptor } from 'src/app/interceptors/token-interceptor';\r\nimport { PageHeaderComponent } from './components/page-header/page-header.component';\r\nimport { WelcomeThankyouComponent } from './components/welcome-thankyou/welcome-thankyou.component';\r\nimport { AssessmentPreviewModule } from '../assessment-preview/assessment-preview.module';\r\nimport { CurrentPageQuestionPipe } from './components/pipes/current-page-question.pipe';\r\nimport { QuestionPageFilterPipe } from './components/pipes/question-page-filter.pipe';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { TypeOfPipe } from './components/pipes/type-of.pipe';\r\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\r\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\r\nimport { DialogModule } from '../../ui-kit/dialog/dialog.module';\r\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\r\nimport { EditorLoaderModule } from '../../ui-kit/editor-loader/editor-loader.module';\r\nimport { NoDataModule } from '../no-data/no-data.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n CreateAssessmentContainerComponent,\r\n QuestionTypeComponent,\r\n AddPageDetailsComponent,\r\n AssessmentSettingsComponent,\r\n AddSegmentPopupComponent,\r\n AddResponseSetPopupComponent,\r\n EditorWrapperComponent,\r\n QuickSettingsComponent,\r\n SingleLineEditorComponent,\r\n ResponseSelectorComponent,\r\n MoveComponent,\r\n LogicComponent,\r\n AddLogicComponent,\r\n ToolkitComponent,\r\n ErrorMessagePipe,\r\n QuestionFilterPipe,QuestionParserPipe, FormatterPipe, SettingAnonymousComponent, SettingResponseSegmentComponent,PageHeaderComponent, WelcomeThankyouComponent, CurrentPageQuestionPipe, QuestionPageFilterPipe, TypeOfPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n TooltipModule,\r\n PopoverModule,\r\n DragDropModule,\r\n DialogModule,\r\n MarxEditorModule,\r\n FormgroupModule,\r\n NoDataModule,\r\n BuildModule,\r\n PreviewModule,\r\n AssessmentPreviewModule,\r\n FormsModule,\r\n LogicQuestionsModule,\r\n EditorLoaderModule\r\n ],exports:[CreateAssessmentContainerComponent],\r\n // providers:[ { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true },]\r\n})\r\nexport class CreateAssessmentModule { }\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\n\r\nimport { DialogConfig } from \"../../dialog/dialog-config\";\r\nimport { DialogRef } from \"../../dialog/dialog-ref\";\r\n\r\n@Component({\r\n selector: \"app-deactivate\",\r\n templateUrl: \"./deactivate.component.html\",\r\n styleUrls: [\"./deactivate.component.less\"],\r\n})\r\nexport class DeactivateComponent implements OnInit {\r\n animate = false;\r\n @Input() itemName = 'dashboard'\r\n // constructor(private dialog: DialogRef, public dialogConfig: DialogConfig\r\n // ) {\r\n // this.itemName = dialogConfig.data.itemName;\r\n // }\r\n constructor(private dialog: DialogRef,public dialogConfig:DialogConfig) {}\r\n ngOnInit(): void { }\r\n\r\n deactivate(deleteFlag: boolean) {\r\n this.animate = true;\r\n setTimeout(() => {\r\n this.animate = false;\r\n }, 1000);\r\n this.dialog.close(deleteFlag);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DialogConfig } from '../../dialog/dialog-config';\r\nimport { DialogRef } from '../../dialog/dialog-ref';\r\n\r\n\r\n@Component({\r\n selector: 'app-duplicate',\r\n templateUrl: './duplicate.component.html',\r\n styleUrls: ['./duplicate.component.less']\r\n})\r\nexport class DuplicateComponent implements OnInit {\r\n animate = false;\r\n itemName = ''\r\n constructor(private dialog: DialogRef,public dialogConfig:DialogConfig) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n activate(deleteFlag: boolean) {\r\n this.animate = true;\r\n setTimeout(() => {\r\n this.animate = false;\r\n }, 5000);\r\n this.dialog.close(deleteFlag);\r\n }\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { DeleteComponent } from \"./delete/delete.component\";\r\nimport { ActiveComponent } from \"./active/active.component\";\r\nimport { DeactivateComponent } from \"./deactivate/deactivate.component\";\r\nimport { DuplicateComponent } from './duplicate/duplicate.component';\r\n\r\n@NgModule({\r\n declarations: [DeleteComponent, DeactivateComponent, ActiveComponent, DuplicateComponent],\r\n exports: [DeleteComponent, ActiveComponent, DeactivateComponent, DuplicateComponent],\r\n imports: [CommonModule],\r\n})\r\nexport class ActionDialogModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uncategorizedFilter'\r\n})\r\nexport class UncategorizedFilterPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n if(value){\r\n return value.filter((category:any) => category?.category_name != 'uncategorized') \r\n }else{\r\n return value;\r\n }\r\n }\r\n\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { retry } from 'rxjs';\nimport { Configurations } from '../configurations';\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProgramsService {\n\n env !: any;\n constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\n if (config) {\n this.env = config.envConfig;\n\n }\n }\n\n getRoles(){\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n return this.http.get(this.env.organizationGet + 'roles/getProgramRoles',{headers});\n }\n\n /**\n * Uploads the given file to server\n * @param payload payload File data to be uploaded\n * @param path path Path of file to be uploaded\n * @returns response after uploading a file\n */\n uploadFiles(payload: any, path: any) {\n // {\n // reportProgress: true,\n // observe: 'events'}\n const ORG_PATH = `o/${path}`;\n return this.http.post(this.env.fileUploadEndPoint + ORG_PATH + '&ngsw-bypass=true', payload);\n }\n\n getResponsibilityCenterList() {\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n return this.http.get<any[]>(this.env.complianceGet + 'responsibilityCenterTree', {\n headers,\n }).pipe(retry(2));\n }\n\n\n fetchRoleUsers(roles:any,page?:any, searchKey?:any){\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n let queryString = '';\n if(page){ queryString += `&page=${page}`};\n if(searchKey){}\n return this.http.post<any[]>(this.env.organizationPost + 'roles/getUserDetails&limit=30'+queryString,{ role_ids :roles ?? []}, {headers}).pipe(retry(2));\n }\n\n fetchAllRoleUsers(roles:any){\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n return this.http.post<any[]>(this.env.organizationPost + 'roles/getUserDetails&type=all',{ role_ids :roles ?? []}, {headers}).pipe(retry(2));\n }\n\n fetchAllRoleGroups(roles:any){\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n return this.http.post<any[]>(this.env.organizationPost + 'roles/getGroupDetails&type=all',{ role_ids :roles ?? []}, {headers}).pipe(retry(2));\n }\n fetchAllOrgUser(){\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n //https://devapi.v-comply.com/organization/?mode=organisationUsersList&paginationType=small&admin=1\n return this.http.get<any[]>(this.env.organizationGet + 'organisationUsersList&paginationType=small', {headers}).pipe(retry(2));\n }\n fetchComplianceGroups(){\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n //https://devapi.v-comply.com/organization/?mode=groupsList&status=1&type=compliance\n return this.http.get<any[]>(this.env.organizationGet + 'groupsList&status=1&type=compliance', {headers}).pipe(retry(2));\n }\n\n getBusinessCycle(){\n const businessCycle = JSON.parse(localStorage.getItem(\"businessCycle\") ?? '');\n return {\n selected_cycle: businessCycle\n ? businessCycle.selectedCycle.start_date +\n \"-\" +\n businessCycle.selectedCycle.end_date\n : \"\",\n start_date: businessCycle ? businessCycle.selectedCycle.start_date : \"\",\n end_date: businessCycle ? businessCycle.selectedCycle.end_date : \"\",\n selected_cycle_arr: businessCycle\n ? businessCycle?.selectedCycle?.selected_cycle_arr\n : [],\n };\n }\n\n saveProgram(payload:any){\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken()).set('x-business-cycle', JSON.stringify((this.getBusinessCycle())));\n return this.http.post<any[]>(this.env.programEndpoint + 'category/?isBusinessCycle=true',payload, {headers});\n }\n \n\n buildPayload(formData:any,instance:any){\nconsole.log(\"Component Instance\",instance);\nconst form = formData?.value;\nconsole.log(\"Form Value\",form);\nconst payload = {\n mode: 'program',\n name:form?.program_name ?? '',\n description:{text:form?.program_description ?? '',attachments:form?.program_description_attachments ?? []},\n program_objective : {text:form?.program_objective ?? '',attachments:form?.objective_attachment ?? []},\n roles: form.program_roles.map((ele:any) => {return {roleId:ele?._id,roleName:ele?.roleName, licenseType:ele?.licenseType}}),\n owners:this.listToId(form?.program_owners,'member_id') ?? [],\n owners_group: this.listToId(form?.program_owners_group,'group_id') ?? [],\n all_user_in_role: form?.all_user_in_role ?? false,\n programType:form?.program_type ?? 0,\n state:0,\n approvers:this.listToId(form?.program_approver,'member_id') ?? [],\n calculate_past_upcoming_event: form?.performance_calculation ?? '',\n program_frequency : form?.recurring_frequency ? 1 : 0,\n lock_scope: form?.lock_scope_change ? 1 :0,\n rc_ids: this.listToId(form?.rc,'item_id'),\n assignee_ids: this.listToId(form?.program_assignee,'member_id'),\n assignee_group_ids: this.listToId(form?.program_assignee_group,'group_id'),\n default_assignee_ids : this.listToId(form?.program_default_assignee,'member_id'),\n default_assignee_group_ids: this.listToId(form?.program_default_assignee_group,'group_id'),\n default_assignee_type: form?.assignee_completion_criteria,\n reviewers:this.listToId(form?.program_reviewer,'member_id'),\n reviewer_group_ids: this.listToId(form?.program_reviewer_group,'group_id'),\n default_reviewers:this.listToId(form?.program_default_reviewer,'member_id'),\n default_reviewer_group_ids: this.listToId(form?.program_default_reviewer_group,'group_id'),\n default_reviewers_type:form?.reviewer_completion_criteria,\n overseers: {cc_email: this.listToId(form?.program_overseer,'member_id'),cc_email_groups:this.listToId(form?.program_overseer_group,'group_id'),failure_cc_email: [],failure_cc_email_groups:[]},\n default_overseers: {cc_email: this.listToId(form?.program_default_overseer,'member_id'),cc_email_groups:this.listToId(form?.program_default_overseer_group,'group_id'),\n failure_cc_email: this.listToId(form?.program_default_failed_overseer,'member_id'),failure_cc_email_groups:this.listToId(form?.program_default_failed_overseer_group,'group_id')},\n assessment: {ids: this.listToId(form?.program_assessments,'id')},\n evidence_upload_flag:form?.evidence_required ? 1 : 0,\n is_key_evidence: form?.allow_any_file_key_evidence,\n custom_fields:['c1']\n}\nconsole.log(\"payload\",payload)\nreturn payload;\n/////\n// {\n// \"mode\": \"program\",\n// \"name\": \"abc1\",\n// \"program_objective\": {\n// \"text\": \"<b>1. </b>Security and risk management (15%)<div><b>2.</b> Asset Security (10%)</div>\",\n// \"attachments\" : []\n// },\n// \"description\": {\n// \"text\": \"The CISSP, offered by the International Information Security Certification Consortium(ISC) hoax\",\n// \"attachments\" : []\n// },\n// \"roles\": [\n// {\n// \"roleId\":\"6200cf8d7daae3b753bc3a1f\",\n// \"roleName\":\"Admin\",\n// \"licenseType\":\"power users\"\n// },\n// {\n// \"roleId\":\"626b86d8de4d5d0009a142b0\",\n// \"roleName\":\"Manage Program Roles\",\n// \"licenseType\":\"power users\"\n// }\n// ],\n// \"owners\": [\n// 15,\n// 17719,\n// 17721\n// ],\n// \"owners_group\":[],\n// \"all_user_in_role\":false,\n// \"createdBy\": \"5e4850db61ca5e14e142ea08\",\n// \"modifiedBy\": \"5e4850db61ca5e14e142ea08\",\n// \"programType\": 1,\n// \"state\": 0,\n// \"approvers\": [],\n// \"calculate_past_upcoming_event\": \"PAST_EVENT\",\n// \"program_frequency\": 0,\n// \"lock_scope\": 0,\n// \"rc_ids\": [],\n// \"assignee_ids\": [\n// 9645,\n// 10049\n// ],\n// \"default_assignee_ids\": [\n// 9645,\n// 10049\n// ],\n// \"assignee_group_ids\": [],\n// \"default_assignee_group_ids\" : [],\n// \"default_assignee_type\": \"\",\n// \"reviewers\": [\n// 9645,\n// 10049\n// ],\n// \"default_reviewers\": [\n// 9645,\n// 10049\n// ],\n// \"default_reviewers_type\": \"\",\n// \"reviewer_group_ids\" : [],\n// \"default_reviewer_group_ids\":[],\n// \"overseers\": {\n// \"cc_email\": [\n// 68309,\n// 75304\n// ],\n// \"cc_email_groups\":[1,2],\n// \"failure_cc_email\": [\n// 68309,\n// 75304\n// ],\n// \"failure_cc_email_groups\":[1,2]\n// },\n// \"default_overseers\": {\n// \"cc_email\": [\n// 68309,\n// 75304\n// ],\n// \"cc_email_groups\":[1,2],\n// \"failure_cc_email\": [\n// 68309,\n// 75304\n// ],\n// \"failure_cc_email_groups\":[1,2]\n// },\n// \"assessment\": {\n// \"ids\": []\n// },\n// \"evidence_upload_flag\": 0,\n// \"is_key_evidence\": false,\n// \"custom_tags\": \"[]\"\n// }\n//////////\n }\n\n\n listToId(list:any,key:string){\n return list.map((ele:any) => ele[key]);\n }\n\n\n}\n","export const CONSTANTS = {\r\n categoryType : [\r\n {label:'REGULATIONS',value:1},\r\n {label:'STANDARDS',value:2},\r\n {label:'INTERNAL CONTROLS',value:3},\r\n {label:'OTHERS',value:0}\r\n ],\r\n performanceCalculation : [\r\n {label:'PAST EVENTS ONLY',value:'PAST_EVENT'},\r\n {label:'PAST & UPCOMING EVENTS',value:'UPCOMING_EVENT'},\r\n ],\r\n dateConfig : {\r\n disableKeypress: true,\r\n format: 'DD MMM YYYY',\r\n unSelectOnClick: true,\r\n openOnClick:false,\r\n openOnFocus:false,\r\n min: new Date().getDate().toString(),\r\n },\r\n description: {\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file:true,\r\n placeholder: 'Add a description',\r\n },\r\n \r\n objective: {\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file:true,\r\n id:'vksvdslkvdslkvjdskljv',\r\n placeholder: 'What is the objective of this program?',\r\n },\r\n additionalOption: {\r\n REVIEWER: false,\r\n OVERSEER: false,\r\n ASSESSMENT: false,\r\n FORMATE_EVIDENCE: false,\r\n CUSTOM_FIELDS: false\r\n }\r\n}","\r\nimport { AfterViewInit, Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, Validators } from '@angular/forms';\r\nimport { isEqual } from 'lodash';\r\nimport { DatePickerComponent } from 'ng2-date-picker';\r\nimport { distinctUntilChanged } from 'rxjs';\r\nimport { EditorConfig } from 'vcomply-editor';\r\nimport { AuthService } from '../workflow-services/auth.service';\r\nimport { ProgramsService } from '../workflow-services/programs.service';\r\nimport { UiKitService } from '../workflow-services/ui-kit.service';\r\nimport { CONSTANTS } from './constants';\r\n\r\n@Component({\r\n selector: 'app-workflow-program',\r\n templateUrl: './workflow-program.component.html',\r\n styleUrls: ['./workflow-program.component.less', '../forms.less']\r\n})\r\nexport class WorkflowProgramComponent implements OnInit, AfterViewInit {\r\n constants = CONSTANTS;\r\n\r\n datePickerOverlay = false;\r\n @ViewChild('datePicker') datePicker!: DatePickerComponent;\r\n @Output() pickerChanged = new EventEmitter();\r\n @Output() populateOption = new EventEmitter();\r\n @Output() closeWorkflow = new EventEmitter();\r\n @Output() showConfirmationAlert = new EventEmitter();\r\n @Output() disconnectRefresh = new EventEmitter();\r\n @Output() refreshForm = new EventEmitter();\r\n @Output() hideElementsFromMoreOptions = new EventEmitter();\r\n scrollToBottom!: boolean;\r\n\r\n\r\n constructor(private fb: FormBuilder, private programService: ProgramsService, private authService: AuthService,private uiKitService:UiKitService) { }\r\n public noWhitespaceValidator(control: FormControl) {\r\n const isWhitespace = (control.value || '').trim().length === 0;\r\n const isValid = !isWhitespace;\r\n return isValid ? null : { 'whitespace': true };\r\n }\r\n public blankArrayValidator(control: FormControl) {\r\n const isBlank = control.value?.filter((ele:any)=> ele)?.length === 0;\r\n const isValid = !isBlank;\r\n return isValid ? null : { 'blank': true };\r\n }\r\n loader = false;\r\n showSmiley = false;\r\n actionButtons = [\r\n { buttonText: 'Add More Programs', class: 'white-btn', id: 'addMore' },\r\n { buttonText: 'View Program', class: 'blue-btn', id: 'viewProgram' },\r\n];\r\nsmileyMessage = `You're All Set!`;\r\ncreatedProgramId = '';\r\n //form body for proram meta data\r\n programForm = this.fb.group({\r\n program_type: [1, [Validators.required, Validators.min(0), Validators.max(3)]],\r\n program_name: ['', [Validators.required, this.noWhitespaceValidator]],\r\n program_description: [''],\r\n program_description_attachments: [[]],\r\n program_objective: ['', [Validators.required, this.noWhitespaceValidator]],\r\n program_objective_attachments: [[]],\r\n program_roles: [[], [Validators.required,this.blankArrayValidator]],\r\n all_user_in_role: [false],\r\n program_owners: [[], [Validators.required,this.blankArrayValidator]],\r\n program_owners_group :[[]],\r\n program_approver: [[]],\r\n performance_calculation: ['PAST_EVENT', [Validators.required]],\r\n recurring_frequency: [true,[Validators.required]],\r\n lock_scope_change: [true,[Validators.required]],\r\n framework: [],\r\n rc: [[]],\r\n program_assignee: [[]],\r\n program_assignee_group: [[]],\r\n program_default_assignee: [[]],\r\n program_default_assignee_group: [[]],\r\n assignee_completion_criteria: ['ANYONE'],\r\n program_reviewer: [[]],\r\n program_reviewer_group: [[]],\r\n program_default_reviewer: [[]],\r\n program_default_reviewer_group: [[]],\r\n reviewer_completion_criteria: ['SEQUENTIAL'],\r\n program_overseer: [[]],\r\n program_overseer_group: [[]],\r\n program_default_overseer: [[]],\r\n program_default_overseer_group: [[]],\r\n program_default_failed_overseer: [[]],\r\n program_default_failed_overseer_group: [[]],\r\n program_assessments: [[]],\r\n evidence_required: [true],\r\n allow_any_file_key_evidence: [false],\r\n custom_fields: []\r\n });\r\n\r\n //exceptional handling of custom fields\r\n\r\n customFields = [''];\r\n showAddCustomField = true;\r\n //Program objective and descripion are explectly declared as they are using marx editor which does not supports Reactive forms binding\r\n editorData = {\r\n programObjective: '',\r\n programDescription: ''\r\n }\r\n\r\n currentUser() {\r\n const user = this.authService.tokenInfo()\r\n console.log(\"user_info\", user);\r\n return {\r\n member_email: user?.email,\r\n member_id: user?.id,\r\n member_name: user?.name,\r\n user_role: \"LOGGED_IN\",\r\n _id: \"\"\r\n }\r\n\r\n }\r\n //Sets the value of a form control\r\n setFormField(controlName: string, value: any) {\r\n let patch: any = {};\r\n patch[controlName] = value;\r\n this.programForm.patchValue(patch);\r\n this.controls[controlName]?.markAsTouched();\r\n }\r\n\r\n //Returns weather the form is valid or not\r\n get formValid() {\r\n if (this.programForm.valid && this.editorData?.programObjective?.trim()?.length) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n val = true;\r\n\r\n controls: any = {\r\n program_name: this.programForm.get('program_name'),\r\n program_objective: this.programForm.get('program_objective'),\r\n program_roles: this.programForm.get('program_roles'),\r\n program_owners: this.programForm.get('program_owners'),\r\n program_owners_group: this.programForm.get('program_owners_group'),\r\n all_user_in_role: this.programForm.get('all_user_in_role'),\r\n program_approver: this.programForm.get('program_approver'),\r\n description_attachment: this.programForm.get('program_description_attachments'),\r\n objective_attachments: this.programForm.get('program_objective_attachments'),\r\n recurring_frequency: this.programForm.get('recurring_frequency'),\r\n lock_scope_change: this.programForm.get('lock_scope_change'),\r\n rc: this.programForm.get('rc'),\r\n allow_any_file_key_evidence: this.programForm.get('allow_any_file_key_evidence'),\r\n program_assignee:this.programForm.get('program_assignee'),\r\n program_assignee_group:this.programForm.get('program_assignee_group'),\r\n program_default_assignee:this.programForm.get('program_default_assignee'),\r\n program_default_assignee_group:this.programForm.get('program_default_assignee_group'),\r\n assignee_completion_criteria:this.programForm.get('assignee_completion_criteria'),\r\n program_default_reviewer:this.programForm.get('program_default_reviewer'),\r\n program_default_reviewer_group:this.programForm.get('program_default_reviewer_group'),\r\n program_reviewer:this.programForm.get('program_reviewer'),\r\n program_reviewer_group:this.programForm.get('program_reviewer_group'),\r\n program_overseer:this.programForm.get('program_overseer'),\r\n program_overseer_group:this.programForm.get('program_overseer_group'),\r\n program_default_overseer:this.programForm.get('program_default_overseer'),\r\n program_default_overseer_group:this.programForm.get('program_default_overseer_group'),\r\n program_default_failed_overseer:this.programForm.get('program_default_failed_overseer'),\r\n program_default_failed_overseer_group:this.programForm.get('program_default_failed_overseer_group'),\r\n reviewer_completion_criteria : this.programForm.get('reviewer_completion_criteria'),\r\n program_assessments: this.programForm.get('program_assessments'),\r\n custom_fields: this.programForm.get('custom_fields')\r\n }\r\n\r\n lists: any = {\r\n ROLES: [],\r\n OWNERS: [],\r\n OWNERS_GROUPS:[],\r\n APPROVERS:[],\r\n REVIEWERS: [],\r\n REVIEWERS_GROUP:[],\r\n ASSIGNEES: [],\r\n ASSIGNEES_GROUP :[],\r\n DEFAULT_ASSIGNEES:[],\r\n DEFAULT_ASSIGNEES_GROUP:[],\r\n DEFAULT_REVIEWERS:[],\r\n DEFAULT_REVIEWERS_GROUP:[],\r\n OVERSEERS: [],\r\n OVERSEERS_GROUP:[],\r\n DEFAULT_OVERSEERS: [],\r\n DEFAULT_OVERSEERS_GROUP:[],\r\n RC: [],\r\n NON_REMOVABLE_OWNERS: [],\r\n ALL_USER:[],\r\n ALL_GROUP:[]\r\n }\r\n sideElements = ['ROLE','RC','OWNER','ASSIGNEE','APPROVER','DEFAULT_ASSIGNEE','REVIEWER','DEFAULT_REVIEWER','ASSESSMENT','FRAMEWORK','OVERSEER','DEFAULT_FAILED_OVERSEER','DEFAULT_OVERSEER','OVERSEER'];\r\n ngOnInit(): void {\r\n this.fetchRoles();\r\n this.fetchRC();\r\n this.fetchOrganizationUsers();\r\n this.fetchOrganizationGroup();\r\n }\r\n\r\n\r\n\r\n openDatePicker() {\r\n this.datePicker.api.open();\r\n this.datePickerOverlay = true;\r\n // this.setActiveFieldSelector('ISSUE_DATE_TIME', 'ISSUE_DATE_TIME');\r\n }\r\n closeDatePicker(evt: any) {\r\n this.datePicker.api.close();\r\n this.datePickerOverlay = false;\r\n // this.setActiveFieldSelector('', '');\r\n }\r\n\r\n\r\n additionalOption: any = CONSTANTS.additionalOption;\r\n activeList = ''\r\n /**\r\n * #### Description\r\n * Populates optional fields status for the optional fields\r\n */\r\n populateOptionalFields() {\r\n const activatedOptions = [];\r\n for (const key of Object.keys(this.additionalOption)) {\r\n if (this.additionalOption[key] === true) {\r\n activatedOptions.push(key);\r\n }\r\n }\r\n this.populateOption.emit(activatedOptions);\r\n }\r\n addMoreInfo(event: any) {\r\n console.log(\"Activate\",event)\r\n this.additionalOption[event.code] = event.checked;\r\n this.scrollToBottom = true;\r\n }\r\n ngAfterViewInit(): void {\r\n // this.formChangeListner();\r\n }\r\n\r\n // function to automate form value change handng\r\n formChangeListner() {\r\n const fields = Object.keys(this.controls);\r\n fields.forEach((ele: any) => {\r\n this.controls[ele]?.valueChanges.pipe(distinctUntilChanged()).subscribe({\r\n next: (res: any) => { this.handleFormFieldChange(ele, res) }\r\n })\r\n })\r\n }\r\n\r\n handleFormFieldChange(control: string, payload?: any) {\r\n switch (control) {\r\n case 'program_roles': {\r\n this.fetchUsersAssociatedWithRoles()\r\n }\r\n }\r\n }\r\n\r\n activateList(evt: string) {\r\n this.activeList = evt;\r\n this.pickerChanged.emit(true);\r\n }\r\n\r\n listAction(evt: any, type: any) {\r\n\r\n switch (type) {\r\n case 'ROLE': {\r\n const systemRoles = evt?.filter((ele: any) => ele?.roleType === \"system role\");\r\n const patchVal = this.uniqueByProp([...systemRoles, ...evt], '_id');\r\n if (!isEqual(this.controls.program_roles.value.sort(), patchVal.sort())) {\r\n this.setFormField('program_roles', patchVal);\r\n this.fetchUsersAssociatedWithRoles();\r\n this.fetchGroupsAssociatedWithRoles();\r\n }\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n case 'RC': {\r\n const rc = this.setList(this.lists.RC, evt, 'item_id')\r\n this.setFormField('rc', this.uniqueByProp(rc, 'item_id'));\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n case 'OWNER' :{\r\n console.log(\"evt\",evt)\r\n this.setFormField('program_owners', this.uniqueByProp(evt?.users, 'member_id'));\r\n this.setFormField('program_owners_group', this.uniqueByProp(evt?.groups, 'group_id'));\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n case 'APPROVER':{\r\n this.setFormField('program_approver', this.uniqueByProp(evt?.users, 'member_id'));\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n case 'ASSIGNEE':{\r\n this.setFormField('program_assignee', this.uniqueByProp(evt?.users, 'member_id'));\r\n this.setFormField('program_assignee_group', this.uniqueByProp(evt?.groups, 'group_id'));\r\n this.fieldDeselector(type);\r\n this.setDefaultAssignee(evt);\r\n break;\r\n }\r\n case 'DEFAULT_ASSIGNEE':{\r\n this.setFormField('program_default_assignee', this.uniqueByProp(evt?.users, 'member_id'));\r\n this.setFormField('program_default_assignee_group', this.uniqueByProp(evt?.groups, 'group_id'));\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n case 'REVIEWER':{\r\n this.setFormField('program_reviewer', this.uniqueByProp(evt?.users, 'member_id'));\r\n this.setFormField('program_reviewer_group', this.uniqueByProp(evt?.groups, 'group_id'));\r\n this.fieldDeselector(type);\r\n this.setDefaultReviewer(evt);\r\n break;\r\n }\r\n case 'DEFAULT_REVIEWER':{\r\n this.setFormField('program_default_reviewer', this.uniqueByProp(evt?.users, 'member_id'));\r\n this.setFormField('program_default_reviewer_group', this.uniqueByProp(evt?.groups, 'group_id'));\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n case 'OVERSEER':{\r\n this.setFormField('program_overseer', this.uniqueByProp(evt?.users, 'member_id'));\r\n this.setFormField('program_overseer_group', this.uniqueByProp(evt?.groups, 'group_id'));\r\n this.fieldDeselector(type);\r\n this.setDefaultOverseer(evt);\r\n break;\r\n }\r\n case 'DEFAULT_OVERSEER':{\r\n this.setFormField('program_default_overseer', this.uniqueByProp(evt?.users, 'member_id'));\r\n this.setFormField('program_default_overseer_group', this.uniqueByProp(evt?.groups, 'group_id'));\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n case 'DEFAULT_FAILED_OVERSEER':{\r\n this.setFormField('program_default_failed_overseer', this.uniqueByProp(evt?.users, 'member_id'));\r\n this.setFormField('program_default_failed_overseer_group', this.uniqueByProp(evt?.groups, 'group_id'));\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n case 'ASSESSMENT':{\r\n this.setFormField('program_assessments', this.uniqueByProp(evt, 'id'));\r\n this.fieldDeselector(type);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n remove(evt: any, type: any) {\r\n switch (type) {\r\n case 'ROLE': {\r\n console.log(\"evttt\", evt);\r\n const roles = this.controls?.program_roles?.value?.filter((ele: any) => ele?._id !== evt?._id);\r\n this.setFormField('program_roles', roles);\r\n break;\r\n }\r\n case 'RC': {\r\n console.log(\"evttt\", evt);\r\n const rcs = this.controls?.rc?.value?.filter((ele: any) => ele?.item_id !== evt?.item_id);\r\n this.setFormField('rc', rcs);\r\n break;\r\n }\r\n case 'OWNER':{\r\n const owners = this.controls?.program_owners?.value?.filter((ele: any) => ele?.member_id !== evt?.member_id);\r\n this.setFormField('program_owners', owners);\r\n break;\r\n }\r\n case 'OWNER_GROUP':{\r\n const owners_group = this.controls?.program_owners_group?.value?.filter((ele: any) => ele?.group_id !== evt?.group_id);\r\n this.setFormField('program_owners_group', owners_group);\r\n break;\r\n }\r\n case 'APPROVER':{\r\n const approver = this.controls?.program_approver?.value?.filter((ele: any) => ele?.member_id !== evt?.member_id);\r\n this.setFormField('program_approver', approver);\r\n break;\r\n }\r\n case 'ASSIGNEE':{\r\n const assignee = this.controls?.program_assignee?.value?.filter((ele: any) => ele?.member_id !== evt?.member_id);\r\n this.setFormField('program_assignee', assignee);\r\n this.setDefaultAssigneeOnRemove(evt,type)\r\n break;\r\n }\r\n case 'ASSIGNEE_GROUP':{\r\n const assignee_group = this.controls?.program_assignee_group?.value?.filter((ele: any) => ele?.group_id !== evt?.group_id);\r\n this.setFormField('program_assignee_group', assignee_group);\r\n this.setDefaultAssigneeOnRemove(evt,type)\r\n break;\r\n }\r\n case 'DEFAULT_ASSIGNEE':{\r\n const assignee = this.controls?.program_default_assignee?.value?.filter((ele: any) => ele?.member_id !== evt?.member_id);\r\n this.setFormField('program_default_assignee', assignee);\r\n break;\r\n }\r\n case 'DEFAULT_ASSIGNEE_GROUP':{\r\n const assignee_group = this.controls?.program_default_assignee_group?.value?.filter((ele: any) => ele?.group_id !== evt?.group_id);\r\n this.setFormField('program_default_assignee_group', assignee_group);\r\n break;\r\n }\r\n case 'REVIEWER':{\r\n const reviewer = this.controls?.program_reviewer?.value?.filter((ele: any) => ele?.member_id !== evt?.member_id);\r\n this.setFormField('program_reviewer', reviewer);\r\n this.setDefaultReviewerOnRemove(evt,type)\r\n break;\r\n }\r\n case 'REVIEWER_GROUP':{\r\n const reviewer_group = this.controls?.program_reviewer_group?.value?.filter((ele: any) => ele?.group_id !== evt?.group_id);\r\n this.setFormField('program_reviewer_group', reviewer_group);\r\n this.setDefaultReviewerOnRemove(evt,type)\r\n break;\r\n }\r\n case 'DEFAULT_REVIEWER':{\r\n const reviewer = this.controls?.program_default_reviewer?.value?.filter((ele: any) => ele?.member_id !== evt?.member_id);\r\n this.setFormField('program_default_reviewer', reviewer);\r\n break;\r\n }\r\n case 'DEFAULT_REVIEWER_GROUP':{\r\n const reviewer_group = this.controls?.program_default_reviewer_group?.value?.filter((ele: any) => ele?.group_id !== evt?.group_id);\r\n this.setFormField('program_default_reviewer_group', reviewer_group);\r\n break;\r\n }\r\n case 'OVERSEER':{\r\n const overseer = this.controls?.program_overseer?.value?.filter((ele: any) => ele?.member_id !== evt?.member_id);\r\n this.setFormField('program_overseer', overseer);\r\n this.setDefaultOverseerOnRemove(evt,type)\r\n break;\r\n }\r\n case 'OVERSEER_GROUP':{\r\n const overseer_group = this.controls?.program_overseer_group?.value?.filter((ele: any) => ele?.group_id !== evt?.group_id);\r\n this.setFormField('program_overseer_group', overseer_group);\r\n this.setDefaultOverseerOnRemove(evt,type)\r\n break;\r\n }\r\n case 'DEFAULT_OVERSEER':{\r\n const overseer = this.controls?.program_default_overseer?.value?.filter((ele: any) => ele?.member_id !== evt?.member_id);\r\n this.setFormField('program_default_overseer', overseer);\r\n break;\r\n }\r\n case 'DEFAULT_OVERSEER_GROUP':{\r\n const overseer_group = this.controls?.program_default_overseer_group?.value?.filter((ele: any) => ele?.group_id !== evt?.group_id);\r\n this.setFormField('program_default_overseer_group', overseer_group);\r\n break;\r\n }\r\n case 'DEFAULT_FAILED_OVERSEER':{\r\n const overseer = this.controls?.program_default_failed_overseer?.value?.filter((ele: any) => ele?.member_id !== evt?.member_id);\r\n this.setFormField('program_default_failed_overseer', overseer);\r\n break;\r\n }\r\n case 'DEFAULT_FAILED_OVERSEER_GROUP':{\r\n const overseer_group = this.controls?.program_default_failed_overseer_group?.value?.filter((ele: any) => ele?.group_id !== evt?.group_id);\r\n this.setFormField('program_default_failed_overseer_group', overseer_group);\r\n break;\r\n }\r\n case 'ASSESSMENT' :{\r\n const assessment = this.controls?.program_assessments?.value?.filter((ele: any) => ele?.id !== evt?.id);\r\n this.setFormField('program_assessments', assessment);\r\n break;\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n //below 4 functions can be easilty combined into one as they follow same kind of pattern or can be offloaded to a external service\r\n setDefaultAssignee(evt:any){\r\n if(evt?.users?.length || evt?.groups?.length){\r\n this.lists.DEFAULT_ASSIGNEES = this.uniqueByProp(evt?.users, 'member_id');\r\n this.lists.DEFAULT_ASSIGNEES_GROUP = this.uniqueByProp(evt?.groups, 'group_id');\r\n\r\n }else{\r\n this.lists.DEFAULT_ASSIGNEES = this.lists.ALL_USER;\r\n this.lists.DEFAULT_ASSIGNEES_GROUP = this.lists.ALL_GROUP;\r\n }\r\n const assigneeMap = evt?.users?.map((ele:any) => ele?.member_id);\r\n let currentDefaultAssignee = this.controls.program_default_assignee?.value;\r\n currentDefaultAssignee = currentDefaultAssignee.filter((ele:any)=> assigneeMap.includes(ele?.member_id));\r\n this.setFormField('program_default_assignee', currentDefaultAssignee);\r\n }\r\n setDefaultAssigneeOnRemove(evt:any,type:any){\r\n switch(type){\r\n case 'ASSIGNEE' :{\r\n this.lists.DEFAULT_ASSIGNEES = this.lists.DEFAULT_ASSIGNEES.filter((ele:any) => ele?.member_id !== evt?.member_id);\r\n const defaultAssignee = this.controls.program_default_assignee?.value;\r\n const assignee = defaultAssignee.filter((ele:any) => ele?.member_id !== evt?.member_id) \r\n this.setFormField('program_default_assignee', assignee);\r\n \r\n break;\r\n }\r\n case 'ASSIGNEE_GROUP':{\r\n this.lists.DEFAULT_ASSIGNEES_GROUP = this.lists.DEFAULT_ASSIGNEES_GROUP.filter((ele:any) => ele?.group_id !== evt?.group_id);\r\n const defaultAssigneeGroup = this.controls.program_default_assignee_group?.value;\r\n const assigneeGroup = defaultAssigneeGroup.filter((ele:any) => ele?.group_id !== evt?.group_id) \r\n this.setFormField('program_default_assignee_group', assigneeGroup);\r\n }\r\n }\r\n }\r\n setDefaultReviewer(evt:any){\r\n if(evt?.users?.length || evt?.groups?.length){\r\n this.lists.DEFAULT_REVIEWERS = this.uniqueByProp(evt?.users, 'member_id');\r\n this.lists.DEFAULT_REVIEWERS_GROUP = this.uniqueByProp(evt?.groups, 'group_id');\r\n\r\n }else{\r\n this.lists.DEFAULT_REVIEWERS = this.lists.ALL_USER;\r\n this.lists.DEFAULT_REVIEWERS_GROUP = this.lists.ALL_GROUP;\r\n }\r\n const reviewerMap = evt?.users?.map((ele:any) => ele?.member_id);\r\n let currentDefaultReviewer = this.controls.program_default_reviewer?.value;\r\n currentDefaultReviewer = currentDefaultReviewer.filter((ele:any)=> reviewerMap.includes(ele?.member_id));\r\n this.setFormField('program_default_reviewer', currentDefaultReviewer);\r\n }\r\n setDefaultOverseer(evt:any){\r\n if(evt?.users?.length || evt?.groups?.length){\r\n this.lists.DEFAULT_OVERSEERS = this.uniqueByProp(evt?.users, 'member_id');\r\n this.lists.DEFAULT_OVERSEERS_GROUP = this.uniqueByProp(evt?.groups, 'group_id');\r\n\r\n }else{\r\n this.lists.DEFAULT_OVERSEERS = this.lists.ALL_USER;\r\n this.lists.DEFAULT_OVERSEERS_GROUP = this.lists.ALL_GROUP;\r\n }\r\n const overseerMap = evt?.users?.map((ele:any) => ele?.member_id);\r\n let currentDefaultReviewer = this.controls.program_default_overseer?.value;\r\n let currentDefaultFailReviewer = this.controls.program_default_failed_overseer?.value;\r\n currentDefaultReviewer = currentDefaultReviewer.filter((ele:any)=> overseerMap.includes(ele?.member_id));\r\n currentDefaultFailReviewer = currentDefaultReviewer.filter((ele:any)=> overseerMap.includes(ele?.member_id));\r\n this.setFormField('program_default_overseer', currentDefaultReviewer);\r\n this.setFormField('program_default_failed_overseer', currentDefaultFailReviewer);\r\n }\r\n setDefaultReviewerOnRemove(evt:any,type:any){\r\n switch(type){\r\n case 'REVIEWER' :{\r\n this.lists.DEFAULT_REVIEWERS = this.lists.DEFAULT_REVIEWERS.filter((ele:any) => ele?.member_id !== evt?.member_id);\r\n const defaultReviewer = this.controls.program_default_reviewer?.value;\r\n const reviewer = defaultReviewer.filter((ele:any) => ele?.member_id !== evt?.member_id) \r\n this.setFormField('program_default_reviewer', reviewer);\r\n \r\n break;\r\n }\r\n case 'REVIEWER_GROUP':{\r\n this.lists.DEFAULT_REVIEWERS_GROUP = this.lists.DEFAULT_REVIEWERS_GROUP.filter((ele:any) => ele?.group_id !== evt?.group_id);\r\n const defaultReviewerGroup = this.controls.program_default_reviewer_group?.value;\r\n const reviewerGroup = defaultReviewerGroup.filter((ele:any) => ele?.group_id !== evt?.group_id) \r\n this.setFormField('program_default_reviewer_group', reviewerGroup);\r\n }\r\n }\r\n }\r\n setDefaultOverseerOnRemove(evt:any,type:any){\r\n switch(type){\r\n case 'OVERSEER' :{\r\n this.lists.DEFAULT_OVERSEERS = this.lists.DEFAULT_OVERSEERS.filter((ele:any) => ele?.member_id !== evt?.member_id);\r\n const defaultOverseer = this.controls.program_default_overseer?.value;\r\n const overseer = defaultOverseer.filter((ele:any) => ele?.member_id !== evt?.member_id) \r\n this.setFormField('program_default_overseer', overseer);\r\n\r\n const defaultFailOverseer = this.controls.program_default_failed_overseer?.value;\r\n const overseerFail = defaultFailOverseer.filter((ele:any) => ele?.member_id !== evt?.member_id) \r\n this.setFormField('program_default_failed_overseer', overseerFail);\r\n \r\n break;\r\n }\r\n case 'OVERSEER_GROUP':{\r\n this.lists.DEFAULT_OVERSEERS_GROUP = this.lists.DEFAULT_OVERSEERS_GROUP.filter((ele:any) => ele?.group_id !== evt?.group_id);\r\n const defaultOverseerGroup = this.controls.program_default_overseer_group?.value;\r\n const overseerGroup = defaultOverseerGroup.filter((ele:any) => ele?.group_id !== evt?.group_id) \r\n this.setFormField('program_default_overseer_group', overseerGroup);\r\n\r\n const defaultOverseerFailedGroup = this.controls.program_default_overseer_group?.value;\r\n const overseerFailedGroup = defaultOverseerFailedGroup.filter((ele:any) => ele?.group_id !== evt?.group_id) \r\n this.setFormField('program_default_failed_overseer_group', overseerFailedGroup);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n fieldDeselector(type: any) {\r\n this.activeList = '';\r\n this.pickerChanged.emit(false);\r\n this.markasTouchedSelector(type)\r\n }\r\n markasTouchedSelector(fieldName:any){\r\n const typeField:any = {\r\n ROLE:'program_roles',\r\n APPROVER:'program_approver',\r\n OWNER:'program_owners',\r\n OWNER_GROUP:'program_owners_group'\r\n }\r\n this.controls[typeField[fieldName]]?.markAsTouched();\r\n }\r\n\r\n //this function is responsible for fetching role list and invoke the setDefaultOwners function to set the default owners\r\n fetchRoles() {\r\n this.programService.getRoles().subscribe({\r\n next: (res: any) => {\r\n console.log(\"role list\", res);\r\n this.lists.ROLES = res;\r\n const defaultVal = this.lists?.ROLES?.data?.filter((ele: any) => ele?.roleType === \"system role\");\r\n this.setFormField('program_roles', defaultVal);\r\n //for setting all tghe key admin and admin as default owner\r\n this.fetchUsersAssociatedWithRoles();\r\n this.fetchGroupsAssociatedWithRoles();\r\n },\r\n error: (err: any) => { }\r\n })\r\n }\r\n\r\n //fetch the list of responsibilities center\r\n fetchRC() {\r\n this.programService.getResponsibilityCenterList().subscribe({\r\n next: (res: any) => {\r\n console.log(\"rc list\", res);\r\n this.lists.RC = res;\r\n // this.setFormField('program_roles',this.lists?.ROLES?.data?.filter((ele:any) => ele?.roleType === \"system role\"));\r\n },\r\n error: (err: any) => { }\r\n })\r\n }\r\n\r\n fetchUsersAssociatedWithRoles() {\r\n const roleIds = this.controls.program_roles?.value?.map((ele: any) => ele?._id);\r\n // if (fetchAll) {\r\n this.programService.fetchAllRoleUsers(roleIds).subscribe({\r\n next: (res: any) => {\r\n this.lists.OWNERS = res;\r\n this.lists.APPROVERS = res;\r\n if (this.controls?.all_user_in_role?.value) {\r\n this.setFormField('program_owners', res?.data);\r\n } else {\r\n this.setDefaultOwners(res?.data);\r\n }\r\n },\r\n error: (err: any) => { }\r\n })\r\n // } else {\r\n // this.programService.fetchAllRoleUsers(roleIds).subscribe({\r\n // next: (res: any) => {\r\n // this.lists.OWNERS = res;\r\n // // this.assignFieldsDependentOnRole(res?.data)\r\n // },\r\n // error: (err: any) => { }\r\n // })\r\n // }\r\n }\r\n\r\n fetchGroupsAssociatedWithRoles(){\r\n const roleIds = this.controls.program_roles?.value?.map((ele: any) => ele?._id);\r\n this.programService.fetchAllRoleGroups(roleIds).subscribe({\r\n next:(res:any) => {\r\n this.lists.OWNERS_GROUPS = res;\r\n }\r\n })\r\n }\r\n\r\n setDefaultOwners(userList: any) {\r\n const loggedInuser = this.currentUser();\r\n const defaultOwner = userList.filter((ele: any) => ['ADMIN', 'KEY_ADMIN'].includes(ele?.user_role) && ele?.member_id != loggedInuser?.member_id);\r\n this.lists.NON_REMOVABLE_OWNERS = this.uniqueByProp([...[loggedInuser], ...defaultOwner], 'member_id');\r\n this.setFormField('program_owners', this.lists.NON_REMOVABLE_OWNERS);\r\n }\r\n\r\n fetchOrganizationUsers(){\r\n this.programService.fetchAllOrgUser().subscribe({\r\n next:(res:any)=>{ \r\n console.log(\"users\",res)\r\n this.lists.ALL_USER = res;\r\n this.lists.DEFAULT_ASSIGNEES = res;\r\n this.lists.ASSIGNEES = res;\r\n this.lists.REVIEWERS = res;\r\n this.lists.DEFAULT_REVIEWERS = res;\r\n this.lists.OVERSEERS = res;\r\n this.lists.DEFAULT_OVERSEERS = res;\r\n },\r\n error:()=>{}\r\n })\r\n }\r\n\r\n fetchOrganizationGroup(){\r\n this.programService.fetchComplianceGroups().subscribe({\r\n next:(res:any)=>{\r\n this.lists.ALL_GROUP = res;\r\n this.lists.DEFAULT_ASSIGNEES_GROUP = res;\r\n this.lists.ASSIGNEES_GROUP = res;\r\n this.lists.REVIEWERS_GROUP = res;\r\n this.lists.DEFAULT_REVIEWERS_GROUP = res;\r\n this.lists.OVERSEERS_GROUP = res;\r\n this.lists.DEFAULT_OVERSEERS_GROUP = res;\r\n },\r\n error:(err:any)=>{}\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n\r\n fileUploadTracker = {\r\n description: [],\r\n objective: []\r\n }\r\n\r\n selectFile(type: any, files: any) {\r\n for (let i = 0; i <= files.length - 1; i++) {\r\n const name = files[i].file.name ?? '';\r\n this.uploadFiles(type, files[i].file);\r\n }\r\n }\r\n\r\n uploadFiles(type: 'DESCRIPTION' | 'OBJECTIVE', file: any) {\r\n console.log(\"file\", file);\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n const destinationString = this.authService.getOrganizationId().toString();\r\n const dummyFile = {\r\n file_url_path: `${file?.name}`,\r\n name: `${file?.name}`,\r\n uploading: true,\r\n org_file: `${file?.name}`\r\n }\r\n if (type === 'DESCRIPTION') {\r\n let description = this.controls?.description_attachment?.value ?? [];\r\n this.setFormField('program_description_attachments', [...description, ...[dummyFile]])\r\n this.programService.uploadFiles(formData, destinationString).subscribe({\r\n next: (res: any) => {\r\n description = this.controls?.description_attachment?.value ?? [];\r\n let descriptionIndex = description.findIndex((ele: any) => ele?.org_file === res?.org_file);\r\n description[descriptionIndex] = res\r\n this.setFormField('program_description_attachments', this.uniqueByProp(description, 'org_file'))\r\n },\r\n error: (err: any) => {\r\n description = this.controls?.description_attachment?.value ?? [];\r\n description = description.filter((ele: any) => ele?.org_file !== file?.name);\r\n this.setFormField('program_description_attachments', this.uniqueByProp(description, 'org_file'))\r\n }\r\n })\r\n } else if (type === 'OBJECTIVE') {\r\n let description = this.controls?.description_attachment?.value ?? [];\r\n this.setFormField('program_description_attachments', [...description, ...[dummyFile]])\r\n this.programService.uploadFiles(formData, destinationString).subscribe({\r\n next: (res: any) => {\r\n description = this.controls?.description_attachment?.value ?? [];\r\n let descriptionIndex = description.findIndex((ele: any) => ele?.org_file === res?.org_file);\r\n description[descriptionIndex] = res\r\n this.setFormField('program_description_attachments', this.uniqueByProp(description, 'org_file'))\r\n },\r\n error: (err: any) => {\r\n description = this.controls?.description_attachment?.value ?? [];\r\n description = description.filter((ele: any) => ele?.org_file !== file?.name);\r\n this.setFormField('program_description_attachments', this.uniqueByProp(description, 'org_file'))\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n deleteAttachment(type: 'DESCRIPTION' | 'OBJECTIVE', file: any) {\r\n if (type === 'DESCRIPTION') {\r\n let description = this.controls?.description_attachment?.value ?? [];\r\n if (description) {\r\n description = description.filter((ele: any) => ele?.org_file !== file?.org_file);\r\n this.setFormField('program_description_attachments', description)\r\n }\r\n } else if (type === 'OBJECTIVE') {\r\n let objective = this.controls?.objective_attachments?.value ?? [];\r\n if (objective) {\r\n objective = objective.filter((ele: any) => ele?.org_file !== file?.org_file);\r\n this.setFormField('program_description_attachments', objective)\r\n }\r\n }\r\n }\r\n\r\n selectAllRoleOwner(evt: any) {\r\n //need to fetch all the users for all the selected roles\r\n if(evt?.target?.checked){\r\n const roleIds = this.controls.program_roles?.value?.map((ele: any) => ele?._id);\r\n this.programService.fetchAllRoleUsers(roleIds).subscribe({\r\n next: (res: any) => {\r\n const user = this.uniqueByProp([...this.controls.program_owners?.value, ...res?.data], 'member_id')\r\n this.setFormField('program_owners', user);\r\n },\r\n error: (err: any) => { }\r\n })\r\n }\r\n \r\n }\r\n\r\n\r\n\r\n /**\r\n * #### Description\r\n * \r\n * Returns the unique array of object based on unique key\r\n * @param array \r\n * @param key \r\n * @returns \r\n */\r\n uniqueByProp(array: any, key: string) {\r\n return Array.from(\r\n array\r\n .reduce(\r\n (acc: any, item: any) => (\r\n item && item[key] && acc.set(item[key], item),\r\n acc\r\n ),\r\n new Map()\r\n )\r\n .values()\r\n );\r\n }\r\n setList(list: any[], ids: any[], key: string) {\r\n const data: any = [];\r\n\r\n ids.forEach((element: any) => {\r\n const index = list.findIndex((listElement: any) => listElement[key] == element);\r\n if (index !== -1) {\r\n data.push(list[index]);\r\n }\r\n });\r\n return data;\r\n }\r\n\r\n\r\n saveProgram(){\r\n this.loader = true;\r\n console.log(\"form fielf\",this.programForm.valid,this.programForm)\r\n const payload = this.programService.buildPayload(this.programForm,this);\r\n if(payload){\r\n this.programService.saveProgram(payload).subscribe({\r\n next:(res:any)=>{ console.log(res); this.loader = false; this.showSmiley = true; this.uiKitService.isSmileyOn = true;}\r\n })\r\n }\r\n }\r\n\r\n action(event: string) {\r\n switch (event) {\r\n case 'addMore':\r\n this.resetForm();\r\n this.populateOptionalFields();\r\n break;\r\n case 'viewPrograms':\r\n this.viewPrograms();\r\n break;\r\n }\r\n }\r\n\r\n viewPrograms(): void {\r\n this.disconnectRefresh.emit(false);\r\n let url: string;\r\n if (window.location.host.startsWith('localhost')) {\r\n url = 'http://' + window.location.host;\r\n } else {\r\n url = 'https://' + window.location.host;\r\n }\r\n\r\n if (window.location.host.startsWith('localhost')) {\r\n url += '/program-workroom?id=' + this.createdProgramId;\r\n } else {\r\n url += '/program/program-workroom?id=' + this.createdProgramId;\r\n }\r\n window.location.href = url;\r\n }\r\n resetForm(){\r\n this.uiKitService.isSmileyOn = false;\r\n this.scrollToBottom = false;\r\n this.showSmiley = false;\r\n this.loader = true;\r\n const DEFAULT_VALUES = {\r\n program_type:1,\r\n program_name:'',\r\n program_description:'',\r\n program_description_attachments:[],\r\n program_objective:'',\r\n program_objective_attachments:[],\r\n program_roles:[],\r\n all_user_in_role:false,\r\n program_owners:[],\r\n program_owners_group:[],\r\n program_approver:[],\r\n performance_calculation:[],\r\n recurring_frequency:false,\r\n lock_scope_change:false,\r\n framework:[],\r\n rc:[],\r\n program_assignee: [],\r\n program_assignee_group: [],\r\n program_default_assignee: [],\r\n program_default_assignee_group: [],\r\n assignee_completion_criteria: 'ANYONE',\r\n program_reviewer: [],\r\n program_reviewer_group: [],\r\n program_default_reviewer: [],\r\n program_default_reviewer_group: [],\r\n reviewer_completion_criteria: 'SEQUENTIAL',\r\n program_overseer: [],\r\n program_overseer_group: [],\r\n program_default_overseer: [],\r\n program_default_overseer_group: [],\r\n program_default_failed_overseer: [],\r\n program_default_failed_overseer_group: [],\r\n program_assessments: [],\r\n evidence_required: false,\r\n allow_any_file_key_evidence: false,\r\n custom_fields: []\r\n }\r\n this.programForm.reset();\r\n this.programForm.patchValue(DEFAULT_VALUES);\r\n this.editorData = {\r\n programObjective: '',\r\n programDescription: ''\r\n }\r\n this.loader = false;\r\n this.fetchRoles();\r\n this.refreshForm.emit(true);\r\n }\r\n\r\n\r\n closeSmiley(event: any) {\r\n this.showSmiley = false;\r\n this.uiKitService.isSmileyOn = false;\r\n this.closeWorkflow.emit({ evt: '', confirm: false });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-roles-list',\r\n templateUrl: './roles-list.component.html',\r\n styleUrls: ['./roles-list.component.less']\r\n})\r\nexport class RolesListComponent implements OnInit {\r\n animation = true;\r\n roleList = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n }\r\n\r\n clickRoleList() {\r\n this.roleList = !this.roleList;\r\n }\r\n\r\n}\r\n","import { Component, forwardRef, Provider } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nconst SELECTOR_VALUE_ACCESSOR: Provider = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TabSelector),\r\n multi: true,\r\n};\r\nexport interface TabSelectorInterface {\r\n label:string;\r\n value:any;\r\n}\r\n@Component({\r\n selector: 'tab-selector',\r\n templateUrl: './tab-selector.component.html',\r\n styleUrls: ['./tab-selector.component.less'],\r\n providers: [SELECTOR_VALUE_ACCESSOR],\r\n inputs:['disabled','selectedItem','displayArray'],\r\n})\r\n\r\nexport class TabSelector implements ControlValueAccessor {\r\n displayArray !: Array<TabSelectorInterface>;\r\n disabled !:boolean | any;\r\n selectedItem = 1\r\n onChanged = (value:any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.selectedItem = value ?? 1\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChanged = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n valueChanged(value:any){\r\n this.selectedItem = value;\r\n this.onChanged(this.selectedItem);\r\n this.onTouched();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tick-mark',\r\n templateUrl: './tick-mark.component.html',\r\n styleUrls: ['./tick-mark.component.less']\r\n})\r\nexport class TickMarkComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'form-field',\r\n templateUrl: './form-field.component.html',\r\n styleUrls: ['./form-field.component.less','../../../forms.less'],\r\n inputs:['active','disabled','checked','img']\r\n})\r\nexport class FormFieldComponent implements OnInit {\r\nactive!:any;\r\ndisabled!:any;\r\nchecked!:any;\r\nimg !:any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'file-pill',\r\n templateUrl: './file-pill.component.html',\r\n styleUrls: ['./file-pill.component.less','../../../forms.less']\r\n})\r\nexport class FilePillComponent implements OnInit {\r\n @Output() delete : EventEmitter<any> = new EventEmitter<any>();\r\n @Input() name !:string | any;\r\n @Input() extension !:string |any;\r\n @Input() disabled = false;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'input-with-pill',\r\n templateUrl: './input-with-pill.component.html',\r\n styleUrls: ['./input-with-pill.component.less','../../../forms.less']\r\n})\r\nexport class InputWithPillComponent implements OnInit {\r\n@Input() placeholder !:any;\r\n@Input() disabled= false;\r\n@Output() select = new EventEmitter();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output, Provider } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nconst SWITCH_VALUE_ACCESSOR: Provider = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SwitchComponent),\r\n multi: true,\r\n};\r\n@Component({\r\n selector: 'switch',\r\n templateUrl: './cs-switch.component.html',\r\n styleUrls: ['./cs-switch.component.less'],\r\n providers: [SWITCH_VALUE_ACCESSOR],\r\n inputs:['disabled','checked','tooltipMessage','value','position']\r\n})\r\nexport class SwitchComponent implements ControlValueAccessor {\r\n @Output() change = new EventEmitter();\r\n value !: any;\r\n tooltipMessage !:any;\r\n disabled !:boolean | any;\r\n checked !:boolean | any;\r\n position !: any;\r\n onChanged = (value:any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: boolean): void {\r\n this.checked = value ?? false\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChanged = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n valueChanged(){\r\n \r\n this.checked = !this.checked;\r\n this.onChanged(this.checked);\r\n this.onTouched();\r\n // this.change.emit(this.checked)\r\n }\r\n}\r\n\r\n\r\n","import { Directive, HostListener,ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[InputTrim]'\n})\nexport class InputTrimDirective {\n\n @HostListener('blur', ['$event'])\n onKeyDown(event: any) {\n const input = event.target as HTMLInputElement;\n let trimmed = input.value.trim();\n input.value = trimmed;\n\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n\n@Component({\n selector: 'role-list',\n templateUrl: './role-list.component.html',\n styleUrls: ['./role-list.component.less']\n})\nexport class RoleListComponent implements OnInit {\n @Output() save = new EventEmitter();\n @Output() cancel = new EventEmitter();\n animation = true;\n\n\n constructor() { }\n\n ngOnInit(): void {\n this.animation = true;\n setTimeout(() => {\n this.animation = false;\n }, 300);\n }\n searchKey :any = '';\n //Used to disable items\n systemRolesIds : any = [];\n //used to check checkbox\n selectedIds :any = []; \n //complete object of selected items\n selectedRoles :any = [];\n //contains id's of all the expanded rows\n expandedRows :any = [];\n\n //list of all the available roles\n rolesList:any = [];\n\n // only used in select all function\n allListIds = [];\n//isAllItems\n allSelected = false;\n @Input('list') set setList(value: any) {\n if(value && value?.length){\n this.rolesList = [...value];\n this.setSystemRole(this.rolesList);\n this.allListIds = this.rolesList.map((ele:any) => ele?._id);\n this.setAllSelectedStatus();\n }\n \n}\n\n@Input('selected') set selectedRolesVal(value:any){\n this.selectedRoles = this.uniqueByProp([...this.selectedRoles,...value],'_id');\n this.selectedIds = this.selectedRoles.map((ele:any) => ele?._id);\n this.setAllSelectedStatus();\n} \n\n/**\n * #### Description\n * \n * Expands or collapse the row\n * @param type \n * @param [id] \n */\nexpandOrCollapse(type:'EXPAND' | 'COLLAPSE'|'COLLAPSE_ALL',id?:any){\n switch(type){\n case 'COLLAPSE':{ this.expandedRows = this.expandedRows.filter((ele:any) => ele !== id); break}\n case 'EXPAND':{this.expandedRows = Array.from(new Set<any[]>([...this.expandedRows,...[id]])); break}\n case 'COLLAPSE_ALL' :{this.expandedRows = []; break}\n }\n}\n\n\nselectAll(evt:any){\n if(evt?.target?.checked === true){\n this.selectedRoles = this.rolesList;\n this.selectedIds = this.rolesList.map((ele:any) => ele?._id);\n\n }else {\n this.selectedRoles = [];\n this.selectedIds = [];\n this.setSystemRole(this.rolesList);\n }\n this.setAllSelectedStatus();\n}\n\nsetAllSelectedStatus(){\n this.allSelected = this.allListIds.sort().toString() === this.selectedIds.sort()?.toString();\n}\n/**\n * #### Description\n * \n * Sets system role for admins and key admins\n * @param roles \n */\nsetSystemRole(roles:any){\n const systemRoles = roles.filter((ele:any) => ele?.roleType === \"system role\");\n this.systemRolesIds = Array.from(new Set<any[]>([...this.systemRolesIds ,...systemRoles.map((ele:any) => ele?._id)]));\n this.selectedIds = Array.from(new Set<any[]>([...this.selectedIds ,...this.systemRolesIds])); \n this.selectedRoles = this.uniqueByProp([...systemRoles,...this.selectedRoles],'_id')\n }\n\n /**\n * #### Description\n * Selects item or deselect a itme\n * @param evt \n * @param payload \n */\n selectItem(evt:any,payload:any){\n evt?.target?.checked === true ? this.manipulateSelectedItems('ADD',payload) : this.manipulateSelectedItems('DELETE',payload)\n }\n\n /**\n * #### Description\n * \n * Manipulates selected items in role list\n * @param action :'ADD' | 'DELETE'\n * @param payload \n */\n manipulateSelectedItems(action :'ADD' | 'DELETE', payload:any){\n if(action === 'ADD'){\n this.selectedRoles = this.uniqueByProp([...this.selectedRoles ,...[payload]],'_id');\n this.selectedIds = this.selectedRoles.map((ele:any) => ele?._id)\n }else if(action === 'DELETE'){\n let index = this.selectedRoles.findIndex((ele :any) => ele?._id === payload?._id);\n if(index > -1){\n this.selectedRoles = this.selectedRoles.filter((ele :any) => ele?._id !== payload?._id);\n this.selectedIds = this.selectedIds.filter((ele:any)=> ele !== payload?._id)\n }\n }\n this.setAllSelectedStatus();\n }\n\n\n saveList(){\n this.save.emit(this.selectedRoles);\n }\n closeList(){\n this.cancel.emit();\n }\n\n /**\n * #### Description\n * \n * Returns the unique array of object based on unique key\n * @param array \n * @param key \n * @returns \n */\n uniqueByProp(array:any,key:string){\n return Array.from(\n array\n .reduce(\n (acc:any, item:any) => (\n item && item[key] && acc.set(item[key], item),\n acc\n ),\n new Map()\n )\n .values()\n );\n }\n}\n ","\n\nimport { Component, forwardRef, Provider } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst CHECKBOX_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n};\n\n@Component({\n selector: 'vui-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.less'],\n providers: [CHECKBOX_VALUE_ACCESSOR],\n inputs:['disabled','checked','indeterminateEnabled'],\n\n})\nexport class CheckboxComponent implements ControlValueAccessor{\n disabled !:boolean | any;\n checked !:boolean | any;\n indeterminateEnabled !:boolean | any;\n onChanged = (value:any) => {};\n onTouched = () => {};\n\n writeValue(value: boolean): void {\n this.checked = value ?? false\n }\n registerOnChange(fn: any): void {\n this.onChanged = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n valueChanged(){\n \n this.checked = !this.checked;\n this.onChanged(this.checked);\n this.onTouched();\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vui-pagination',\r\n templateUrl: './pagination.component.html',\r\n styleUrls: ['./pagination.component.less']\r\n})\r\nexport class PaginationComponent implements OnChanges {\r\n currPage = 1;\r\n @Input() from: number = 1;\r\n @Input() to: number = 30;\r\n @Input() total: any = 100;\r\n @Input() showPageDetail: boolean = true\r\n @Input() totalPage: number = 15;\r\n @Input('currentPage') set setPage(page: any) {\r\n this.currPage = page;\r\n this.displayArrayUpdate(page);\r\n }\r\n @Input() pageInSingleView: number = 5;\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>()\r\n public displayArray: Array<number> = []\r\n enterPageNo!: number | any;\r\n enterPressed = false;\r\n isInvalidInput: boolean = false;\r\n\r\n constructor() { }\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n console.log(\"change\", changes)\r\n this.displayArrayUpdate(this.currPage);\r\n this.startArray();\r\n }\r\n\r\n //Function responsible to generate the array to display the pagination at the beginning\r\n startArray() {\r\n this.displayArray = [];\r\n if (this.totalPage <= this.pageInSingleView) {\r\n for (let i = 1; i <= this.totalPage; ++i) {\r\n this.displayArray.push(i);\r\n }\r\n } else if (this.pageInSingleView < this.totalPage) {\r\n for (let i = 1; i <= this.pageInSingleView; ++i) {\r\n this.displayArray.push(i);\r\n }\r\n }\r\n }\r\n\r\n //Function responsible for update the current page while clicking prev or next button\r\n currentIndexUpdate(value: number) {\r\n this.currPage += value\r\n if (this.currPage <= this.totalPage && this.currPage > this.pageInSingleView - Math.floor(this.pageInSingleView / 2) && this.totalPage > this.pageInSingleView) {\r\n this.displayArrayUpdate(this.currPage)\r\n } else if (this.currPage <= this.pageInSingleView) {\r\n this.displayArray = [];\r\n this.startArray()\r\n }\r\n this.pageChanged.emit(this.currPage);\r\n this.enterPageNo=null;\r\n this.enterPressed = false;\r\n \r\n }\r\n\r\n //Function responsible for updating the current page while clicking on any page number\r\n currentIndexAssign(value: number) {\r\n this.currPage = value;\r\n if (this.currPage <= this.totalPage && this.currPage > this.pageInSingleView - Math.floor(this.pageInSingleView / 2) && this.totalPage > this.pageInSingleView) {\r\n this.displayArrayUpdate(this.currPage)\r\n } else if (this.currPage <= this.pageInSingleView) {\r\n this.displayArray = [];\r\n this.startArray()\r\n }\r\n this.pageChanged.emit(this.currPage);\r\n this.enterPageNo=null;\r\n this.enterPressed = false;\r\n }\r\n\r\n\r\n //Number validation check\r\n validateNumber(e: any) {\r\n const pattern = /^-?(0|[1-9]\\d*)?$/;\r\n return pattern.test(e);\r\n }\r\n\r\n //Function responsible for updating the current page while entering the page number\r\n onEnterPress(event: any) {\r\n if (event.key.toLowerCase() === 'enter') {\r\n this.enterPressed = true;\r\n if (this.enterPageNo <= this.totalPage && this.enterPageNo > 0 && this.enterPageNo && this.validateNumber(this.enterPageNo)) {\r\n this.currPage = this.enterPageNo;\r\n if (this.currPage <= this.totalPage && this.currPage > this.pageInSingleView - Math.floor(this.pageInSingleView / 2) && this.totalPage > this.pageInSingleView) {\r\n this.displayArrayUpdate(this.currPage);\r\n } else if (this.currPage <= this.pageInSingleView) {\r\n this.displayArray = [];\r\n this.startArray();\r\n\r\n }\r\n this.pageChanged.emit(this.currPage);\r\n }\r\n }\r\n }\r\n\r\n //Function responsible for manipulating the displayArray\r\n displayArrayUpdate(index: any) {\r\n if (this.currPage > this.pageInSingleView - Math.floor(this.pageInSingleView / 2) && this.currPage <= this.totalPage - Math.floor(this.pageInSingleView / 2) && this.totalPage > this.pageInSingleView) {\r\n if (this.pageInSingleView % 2 != 0) {\r\n let appendElement = this.pageInSingleView / 2;\r\n appendElement = Math.floor(appendElement);\r\n let startIndex = this.currPage - appendElement;\r\n let endIndex = this.currPage + appendElement;\r\n\r\n this.displayArray = [];\r\n for (let i = startIndex; i <= endIndex; ++i) {\r\n this.displayArray.push(i);\r\n }\r\n } else if (this.pageInSingleView % 2 === 0) {\r\n let appendElement = this.pageInSingleView / 2;\r\n let startIndex = this.currPage - appendElement;\r\n let endIndex = this.currPage + appendElement - 1;\r\n this.displayArray = [];\r\n for (let i = startIndex; i <= endIndex; ++i) {\r\n this.displayArray.push(i);\r\n }\r\n }\r\n } else if (this.currPage > this.totalPage - Math.floor(this.pageInSingleView / 2)) {\r\n this.displayArray = [];\r\n for (let i = this.totalPage - this.pageInSingleView + 1; i <= this.totalPage; ++i) {\r\n this.displayArray.push(i);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PaginationComponent } from './pagination/pagination.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PaginationComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n PaginationComponent\r\n ]\r\n})\r\nexport class PaginationModule { }\r\n","import { Component, Input, OnInit, Output, EventEmitter, OnChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vui-floating-bar',\r\n templateUrl: './floating-bar.component.html',\r\n styleUrls: ['./floating-bar.component.less'],\r\n})\r\nexport class VuiFloatingBarComponent implements OnInit, OnChanges {\r\n @Input() selectedData: any;\r\n @Input() displayElementKey = '';\r\n @Input() elementId: any = '';\r\n @Input() singularText = '';\r\n @Input() pluralText = '';\r\n @Input() showNextButton = true;\r\n @Input() showFrequencyText = false;\r\n @Input() showWorkflow = false;\r\n @Input() workflowText = '';\r\n @Input() currentFrequency = '';\r\n @Input() isDisabled = false;\r\n @Input() workflowList = ['SEQUENTIAL', 'ANY REVIEWER CAN MARK THIS AS REVIEWED'];\r\n @Input() selectedWorkflow: any;\r\n @Input() workflowPlaceHolder: any;\r\n @Input() mode: string = 'CREATE';\r\n\r\n @Input() nonRemovableUsersList: any = [];\r\n @Input() removePosition: any;\r\n @Output() closeEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() deleteEvent: EventEmitter<number> = new EventEmitter();\r\n @Output() closeList: EventEmitter<any> = new EventEmitter();\r\n @Output() workflowTypeChanged: EventEmitter<any> = new EventEmitter();\r\n constructor() {\r\n this.selectedData = [];\r\n }\r\n\r\n ngOnChanges() {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n next() {\r\n this.closeEvent.emit(this.selectedData);\r\n }\r\n\r\n deleteSelected(index: number) {\r\n this.deleteEvent.emit(index);\r\n }\r\n close() {\r\n this.closeList.emit();\r\n\r\n }\r\n selectedWorkflowType(event: any) {\r\n // debugger\r\n }\r\n\r\n selectedWorkflowChange(event: any) {\r\n console.log(\"event ==>\", event);\r\n this.workflowTypeChanged.emit(event);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'search'\n})\nexport class SearchPipe implements PipeTransform {\n\n transform(value: any, ...args: any[]): any {\n const key = args[1];\n if(value && value?.length){\n const searchTerm = args[0]?.toLowerCase()?.trim();\n return value.filter((ele:any) => {return ele[key].toLowerCase().includes(searchTerm.toLowerCase()) || ele[key].toString().toLowerCase().includes(searchTerm)});\n }else{\n return [];\n }\n \n }\n\n}\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-no-data',\r\n templateUrl: './no-data.component.html',\r\n styleUrls: ['./no-data.component.less'],\r\n})\r\nexport class NoDataComponent implements OnInit {\r\n @Input() action!: object;\r\n @Input() secondaryAction!: object; //button action\r\n @Input() noDataImage!: string;\r\n @Input() noDataText!: string;\r\n @Input() noDataButton!: string | boolean;\r\n @Input() secondaryButton!: string | boolean; //button text\r\n @Input() noDataSecButton!: string | boolean;\r\n @Input() altText!: string;\r\n @Output() buttonAction = new EventEmitter<object>();\r\n @Output() secondaryActionButton = new EventEmitter<object>();\r\n @Input() smallButton!: boolean;\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n actionEmitter(button: object) {\r\n this.buttonAction.emit(button);\r\n }\r\n\r\n secondaryActionEmitter(button: object) {\r\n this.secondaryActionButton.emit(button);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NoDataComponent } from './no-data.component';\r\n\r\n@NgModule({\r\n declarations: [NoDataComponent],\r\n imports: [CommonModule],\r\n exports: [NoDataComponent],\r\n})\r\nexport class NoDataModule {}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'user-group-list',\r\n templateUrl: './user-group-list.component.html',\r\n styleUrls: ['./user-group-list.component.less']\r\n})\r\nexport class UserGroupListComponent implements OnInit {\r\n\r\n @Output() save = new EventEmitter();\r\n @Output() cancel = new EventEmitter();\r\n @Input() groupEnabled !: false;\r\n @Input() panelTitle ='Select User(s)';\r\n @Input() singleSelect = false;\r\n @Input() fieldType =''\r\n searchKey = '';\r\n\r\n usersList: any = [];\r\n groupsList: any = [];\r\n\r\n @Input() userListInfo !: any;\r\n @Input() groupListInfo !: any;\r\n\r\n @Output() fetchUserData = new EventEmitter();\r\n\r\n @Input() nonRemovableUserIds: any = [];\r\n selectedUsers: any = [];\r\n selectedUserIds: any = [];\r\n allUsersIds: any = [];\r\n allUserSelected = false;\r\n allUserSelectedDisabled = false;\r\n\r\n\r\n @Input() nonRemovableGroupIds: any = [];\r\n selectedGroups: any = [];\r\n selectedGroupIds: any = [];\r\n allGroupsIds: any = [];\r\n allGroupSelected = false;\r\n allGroupSelectedDisabled = false;\r\n\r\n userCurrentPage = 1;\r\n groupCurrentPage = 1;\r\n\r\n @Input('userlist') set setUserList(value: any) {\r\n if (value && value?.length) {\r\n this.usersList = [...value];\r\n this.allUsersIds = this.usersList.map((ele: any) => ele?.member_id);\r\n this.allUserSelectedStatus();\r\n this.setUserListInit();\r\n }\r\n }\r\n\r\n\r\n @Input('selectedUsers') set setSelectedUser(value: any) {\r\n this.selectedUsers = this.uniqueByProp([...this.selectedUsers, ...value], 'member_id');\r\n this.selectedUserIds = this.selectedUsers.map((ele: any) => ele?.member_id);\r\n this.allUserSelectedStatus();\r\n this.setUserListInit();\r\n }\r\n\r\n\r\n setUserListInit() {\r\n if (this.userCurrentPage === 1) {\r\n const selected = this.selectedUsers;\r\n const otherUser = this.usersList.filter((ele: any) => !this.selectedUserIds.includes(ele?.member_id));\r\n console.log(\"fsfsfsf\", selected, otherUser)\r\n this.usersList = this.uniqueByProp([...selected?.sort(), ...otherUser?.sort()], 'member_id')\r\n }\r\n }\r\n allUserSelectedStatus() {\r\n this.allUserSelected = this.allUsersIds.sort().toString() === this.selectedUserIds.sort()?.toString();\r\n this.allUserSelectedDisabled = (this.allUsersIds.sort().toString() === this.selectedUserIds.sort()?.toString() ) && this.allUsersIds.sort().toString() === this.nonRemovableUserIds.sort()?.toString();\r\n }\r\n\r\n \r\n @Input('groupList') set setGroupList(value: any) {\r\n if (value && value?.length) {\r\n this.groupsList = [...value];\r\n this.allGroupsIds = this.groupsList.map((ele: any) => ele?.group_id);\r\n this.allGroupSelectedStatus();\r\n this.setGroupListInit();\r\n }\r\n }\r\n\r\n\r\n @Input('selectedGroups') set setSelectedGroup(value: any) {\r\n this.selectedGroups = this.uniqueByProp([...this.selectedGroups, ...value], 'group_id');\r\n this.selectedGroupIds = this.selectedGroups.map((ele: any) => ele?.group_id);\r\n this.allGroupSelectedStatus();\r\n this.setGroupListInit();\r\n }\r\n\r\n setGroupListInit() {\r\n if (this.userCurrentPage === 1) {\r\n const selected = this.selectedGroups;\r\n const otherGroup = this.groupsList.filter((ele: any) => !this.selectedGroupIds.includes(ele?.group_id));\r\n console.log(\"fsfsfsf\", selected, otherGroup)\r\n this.groupsList = this.uniqueByProp([...selected?.sort(), ...otherGroup?.sort()], 'group_id')\r\n }\r\n }\r\n allGroupSelectedStatus() {\r\n this.allGroupSelected = this.allGroupsIds?.sort()?.toString() === this.selectedGroupIds?.sort()?.toString();\r\n this.allGroupSelectedDisabled = (this.allGroupsIds.sort().toString() === this.selectedGroupIds.sort()?.toString() ) && this.allGroupsIds.sort().toString() === this.nonRemovableGroupIds.sort()?.toString();\r\n }\r\n\r\n\r\n userPageChange(page: any) {\r\n this.userCurrentPage = page;\r\n this.fetchUserData.emit({ page, searchKey: this.searchKey });\r\n }\r\n\r\n /**\r\n * #### Description\r\n * Selects item or deselect a itme\r\n * @param evt \r\n * @param payload \r\n */\r\n selectItem(evt: any, payload: any) {\r\n console.log(\"from sel\",evt)\r\n evt?.target?.checked === true ? this.manipulateSelectedUser('ADD', payload) : this.manipulateSelectedUser('DELETE', payload)\r\n }\r\n\r\n selectItemRadio(evt:any,payload:any){\r\n if(evt?.target?.checked){\r\n this.selectedUsers = [];\r\n this.manipulateSelectedUser('ADD', payload)\r\n }\r\n }\r\n\r\n /**\r\n * #### Description\r\n * \r\n * Manipulates selected items in role list\r\n * @param action :'ADD' | 'DELETE'\r\n * @param payload \r\n */\r\n manipulateSelectedUser(action: 'ADD' | 'DELETE', payload: any) {\r\n if (action === 'ADD') {\r\n this.selectedUsers = this.uniqueByProp([...this.selectedUsers, ...[payload]], 'member_id');\r\n this.selectedUserIds = this.selectedUsers.map((ele: any) => ele?.member_id)\r\n } else if (action === 'DELETE') {\r\n let index = this.selectedUsers.findIndex((ele: any) => ele?.member_id === payload?.member_id);\r\n if (index > -1) {\r\n this.selectedUsers = this.selectedUsers.filter((ele: any) => ele?.member_id !== payload?.member_id);\r\n this.selectedUserIds = this.selectedUserIds.filter((ele: any) => ele !== payload?.member_id)\r\n }\r\n }\r\n this.allUserSelectedStatus();\r\n }\r\n selectAllUser(evt:any){\r\n if(evt?.target?.checked === true){\r\n this.selectedUsers = this.usersList;\r\n this.selectedUserIds = this.usersList.map((ele:any) => ele?.member_id);\r\n \r\n }else {\r\n this.selectedUsers = this.usersList.filter((ele:any) => this.nonRemovableUserIds.includes(ele?.member_id));\r\n this.selectedUserIds = this.selectedUsers.map((ele:any) => ele?.member_id);\r\n }\r\n this.allUserSelectedStatus();\r\n }\r\n\r\n /**\r\n * #### Description\r\n * Selects item or deselect a itme\r\n * @param evt \r\n * @param payload \r\n */\r\n selectGroup(evt: any, payload: any) {\r\n evt?.target?.checked === true ? this.manipulateSelectedGroup('ADD', payload) : this.manipulateSelectedGroup('DELETE', payload)\r\n }\r\n\r\n /**\r\n * #### Description\r\n * \r\n * Manipulates selected items in role list\r\n * @param action :'ADD' | 'DELETE'\r\n * @param payload \r\n */\r\n manipulateSelectedGroup(action: 'ADD' | 'DELETE', payload: any) {\r\n if (action === 'ADD') {\r\n this.selectedGroups = this.uniqueByProp([...this.selectedGroups, ...[payload]], 'group_id');\r\n this.selectedGroupIds = this.selectedGroups.map((ele: any) => ele?.group_id)\r\n } else if (action === 'DELETE') {\r\n let index = this.selectedGroups.findIndex((ele: any) => ele?.group_id === payload?.group_id);\r\n if (index > -1) {\r\n this.selectedGroups = this.selectedGroups.filter((ele: any) => ele?.group_id !== payload?.group_id);\r\n this.selectedGroupIds = this.selectedGroupIds.filter((ele: any) => ele !== payload?.group_id)\r\n }\r\n }\r\n this.allGroupSelectedStatus();\r\n }\r\n selectAllGroup(evt:any){\r\n if(evt?.target?.checked === true){\r\n this.selectedGroups = this.groupsList;\r\n this.selectedGroupIds = this.groupsList.map((ele:any) => ele?.group_id);\r\n \r\n }else {\r\n this.selectedGroups = this.groupsList.filter((ele:any) => this.nonRemovableGroupIds.includes(ele?.group_id));\r\n this.selectedGroupIds = this.selectedGroups.map((ele:any) => ele?.group_id);\r\n }\r\n this.allGroupSelectedStatus();\r\n }\r\n\r\n\r\n\r\n animation = true;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n }\r\n currentTab = 'USER'\r\n switchTab(tab:string){\r\n this.currentTab = tab;\r\n this.searchKey = ''\r\n }\r\n\r\n saveList() {\r\n this.save.emit({ users: this.selectedUsers, groups: this.selectedGroups });\r\n }\r\n closeList() {\r\n this.cancel.emit();\r\n }\r\n\r\n //\r\n\r\n /**\r\n * #### Description\r\n * \r\n * Returns the unique array of object based on unique key\r\n * @param array \r\n * @param key \r\n * @returns \r\n */\r\n uniqueByProp(array: any, key: string) {\r\n return Array.from(\r\n array\r\n .reduce(\r\n (acc: any, item: any) => (\r\n item && item[key] && acc.set(item[key], item),\r\n acc\r\n ),\r\n new Map()\r\n )\r\n .values()\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'listToId'\n})\nexport class ListToIdPipe implements PipeTransform {\n\n transform(value: any, arg:any): any {\n return value.map((ele:any) => ele[arg]);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { cloneDeep } from 'lodash';\n\n@Pipe({\n name: 'refDisconnect'\n})\nexport class RefDisconnectPipe implements PipeTransform {\n\n transform(value: any, ...args: any[]): any {\n return cloneDeep(value);\n }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { retry } from 'rxjs/operators';\r\nimport { Configurations } from '../../../configurations';\r\nimport { AuthService } from '../../../workflow-services/auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssessmentService {\r\n\r\n env !: any;\r\n constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\r\n if (config) {\r\n this.env = config.envConfig;\r\n\r\n }\r\n }\r\n\r\n getAssessmentQuestions(id:string){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get(this.env.assessmentEnpoint+'assessment/fetchQuestionsByAssessmentId&id='+id,{headers}).pipe(retry(2));\r\n }\r\n getAssessmentCategory(payload: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.assessmentEnpoint + 'category/list&isCreateResponsibility=true', payload, {headers}).pipe(retry(2));\r\n }\r\n\r\n getAssessmentList(payload: any, id: string) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post<any>(this.env.assessmentEnpoint + 'assessment/selectAssessment&isCreateResponsibility=true&catid='+id, payload, {headers}).pipe(retry(2));\r\n }\r\n\r\n getAssessmentDetailsByID(id: string) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post<any>(this.env.assessmentEnpoint + 'assessment/getAssessmentById&id='+id, {}, {headers}).pipe(retry(2));\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { AuthService } from '../../../workflow-services/auth.service';\nimport { AssessmentService } from './assessment.service';\n\n\n@Component({\n selector: 'assessment-picker',\n templateUrl: './assessment-picker.component.html',\n styleUrls: ['./assessment-picker.component.less']\n})\nexport class AssessmentPickerComponent implements OnInit {\n animation = false;\n selectedData: any;\n subList = false;\n @Input() isEdit = false\n openedCategory: Array<number> = [];\n assessmentPayload = {\n search_title:\"\",\n page_no:\"1\",\n state:\"ACTIVE\",\n search_text: '',\n alphabet_filter: ''\n }\n\n dataPerPage = 0;\n\n assessmentCategory: any ={\n data: [],\n totalPage: 0,\n totalRecords: 0,\n start_value: 0,\n end_value: 0,\n currentPage: 0\n };\n isLoader = false\n\n\n @Input('selectedAssessment') set setSelected(value: any) {\n if (value && value?.length) {\n this.selectedAssessments = [...value];\n this.selectedAssessmentIds = this.selectedAssessmentIds.map((ele:any) => ele?.id)\n }\n }\n\n\n isDeleted = false;\n\n searchAssessments = '';\n previewQuestionData !: any;\n isPreview = false;\n @Input() selectedAssessmentData: any;\n\n @Output() onAssessmentSelect = new EventEmitter();\n\n @Output() cancelAssessment = new EventEmitter();\n\n constructor( \n private assessmentService: AssessmentService,\n private auth :AuthService\n ) { \n\n this.dataPerPage = 30;\n }\n\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log(\"changes ====>\", changes, this.selectedAssessmentData);\n \n }\n\n ngOnInit(): void {\n this.animation = true;\n this.getAssessmentCategoryList();\n setTimeout(() => {\n this.animation = false;\n }, 300);\n }\n\n onAssessmentSelected(event: any) {\n this.selectedData = event;\n }\n\n preview(evt:any){\n this.assessmentService.getAssessmentQuestions(evt?.id).subscribe({\n next:(res:any)=>{\n console.log(\"res\",res);\n this.auth.previewPanel.next(true)\n this.isPreview = true;\n this.previewQuestionData = res;\n\n }\n }) \n }\n\n previewBack(){\n this.isPreview = false;\n this.previewQuestionData = {};\n this.auth.previewPanel.next(false)\n }\n\n /**\n * \n * @param index : Accept index of elementPosition\n * \n */\n showSubList(index: number, id: string) {\n if(this.openedCategory.includes(index)) {\n this.openedCategory = this.openedCategory.filter(ele => ele !== index);\n } else {\n this.openedCategory.push(index);\n this.getAssessmentList(index, id)\n }\n return this.openedCategory\n }\n\n // TODO: Pagination\n /**\n * \n * @param event : page number that has been selected\n */\n onPageSelection(event: number) {\n this.openedCategory = [];\n this.assessmentPayload.page_no = event.toString();\n this.getAssessmentCategoryList();\n }\n\n // TODO: Search\n /**\n * \n * @param search : search text\n */\n onAssessmentSearch(search: string) {\n this.openedCategory = [];\n this.assessmentPayload.page_no = \"1\";\n this.assessmentPayload.search_title = search;\n this.assessmentPayload.search_text = search;\n this.getAssessmentCategoryList();\n }\n\n // TODO: Filter by alphabet\n/**\n * \n * @param event : Assessment category filter of Alphabet\n */\n onAlphabetSelected(event: string) {\n this.openedCategory = [];\n this.assessmentPayload.page_no = \"1\";\n this.assessmentPayload.alphabet_filter = event;\n this.assessmentPayload.search_text = '';\n this.getAssessmentCategoryList();\n }\n\n // TODO: Call API method\n getAssessmentCategoryList() {\n this.isLoader = true;\n this.assessmentService.getAssessmentCategory(this.assessmentPayload).subscribe((res: any) => {\n this.assessmentCategory = res;\n this.isLoader = false;\n })\n }\n\n // TODO: Call Sub data API method\n\n /**\n * \n * @param id : Assessment category id\n */\n getAssessmentList(index: number, id: string) {\n const payload = {\n search_title:\"\",\n }\n this.assessmentService.getAssessmentList(payload, id).subscribe((res: Array<any>) => {\n this.assessmentCategory.data[index].assessmentData = [...new Set(res)];\n })\n }\n\n selectedAssessments:any = [];\n selectedAssessmentIds:any = [];\n\n\n\n /**\n * #### Description\n * Selects item or deselect a itme\n * @param evt \n * @param payload \n */\n selectAssessment(evt: any, payload: any) {\n evt?.target?.checked === true ? this.manipulateSelectedAssessment('ADD', payload) : this.manipulateSelectedAssessment('DELETE', payload)\n }\n\n /**\n * #### Description\n * \n * Manipulates selected items in role list\n * @param action :'ADD' | 'DELETE'\n * @param payload \n */\n manipulateSelectedAssessment(action: 'ADD' | 'DELETE', payload: any) {\n if (action === 'ADD') {\n this.selectedAssessments = this.uniqueByProp([...this.selectedAssessments, ...[payload]], 'id');\n this.selectedAssessmentIds = this.selectedAssessments.map((ele: any) => ele?.id)\n } else if (action === 'DELETE') {\n let index = this.selectedAssessments.findIndex((ele: any) => ele?.id === payload?.id);\n if (index > -1) {\n this.selectedAssessments = this.selectedAssessments.filter((ele: any) => ele?.id !== payload?.id);\n this.selectedAssessmentIds = this.selectedAssessmentIds.filter((ele: any) => ele !== payload?.id)\n }\n }\n // this.allGroupSelectedStatus();\n }\n\n\n // TODO: Display selected data in bottom floating bar with next enabled button having\n \n // TODO: Send data in payload of create Responsibility form\n\n save() {\n this.onAssessmentSelect.emit(this.selectedAssessments)\n }\n\n close() {\n this.cancelAssessment.emit();\n }\n\n /**\n * #### Description\n * \n * Returns the unique array of object based on unique key\n * @param array \n * @param key \n * @returns \n */\n uniqueByProp(array: any, key: string) {\n return Array.from(\n array\n .reduce(\n (acc: any, item: any) => (\n item && item[key] && acc.set(item[key], item),\n acc\n ),\n new Map()\n )\n .values()\n );\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'assessment-loader',\n templateUrl: './assessment-loader.component.html',\n styleUrls: ['./assessment-loader.component.less']\n})\nexport class AssessmentLoaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'assessment-sub-loader',\n templateUrl: './assessment-sub-loader.component.html',\n styleUrls: ['./assessment-sub-loader.component.less']\n})\nexport class AssessmentSubLoaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'pagination',\r\n templateUrl: './workflow-pagination.component.html',\r\n styleUrls: ['./workflow-pagination.component.less']\r\n})\r\nexport class Pagination implements OnInit {\r\n alphabetsArray!: any;\r\n @Input() activeAlphabet = '';\r\n @Input() pageCount!: number;\r\n @Input() start !:number;\r\n @Input() end !:number;\r\n @Input() total !:number;\r\n @Input() noFilter!: boolean;\r\n public pageArray: Array<number> = [];\r\n @Input() currentPage = 1;\r\n public enterPageNumber!: any;\r\n public isInvalidInput = false;\r\n\r\n @Output() selectedPage: EventEmitter<any> = new EventEmitter();\r\n @Output() selectedAlphabet: EventEmitter<any> = new EventEmitter();\r\n\r\n pageList!: any;\r\n constructor() {\r\n this.alphabetsArray = 'abcdefghijklmnopqrstuvwxyz'.split('');\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n alphabetChange(alphabet: string) {\r\n this.activeAlphabet = alphabet;\r\n this.selectedAlphabet.emit(alphabet);\r\n this.goToPageArrayGenerate(1, false)\r\n }\r\n\r\n ngOnChanges(event: SimpleChanges) {\r\n this.pageArray = [];\r\n if (this.pageCount > 0) {\r\n if (this.pageCount < 5) {\r\n for (let i = 1; i <= this.pageCount; i++) {\r\n this.pageArray.push(i);\r\n }\r\n return;\r\n }\r\n this.goToPageArrayGenerate(this.currentPage,false);\r\n }\r\n }\r\n\r\n\r\n increaseOrDecrease(value: number) {\r\n this.currentPage += value;\r\n if (this.currentPage > 3 && this.currentPage <= this.pageCount && this.pageArray[this.pageArray.length - 1] < this.pageCount) {\r\n if (value > 0) {\r\n this.pageArray.shift();\r\n this.pageArray.push(this.pageArray[this.pageArray.length - 1] + 1);\r\n }\r\n }\r\n\r\n if (this.currentPage > 2 && value < 0 && this.pageArray[0] > 1 && this.currentPage < this.pageCount - 2) {\r\n this.pageArray.pop();\r\n this.pageArray.unshift(this.pageArray[0] - 1);\r\n }\r\n this.selectedPage.emit(this.currentPage);\r\n }\r\n onEnterPress(event: any) {\r\n if (event.key.toLowerCase() === 'enter') {\r\n if (!this.enterPageNumber || this.enterPageNumber > this.pageCount || this.enterPageNumber < 1) {\r\n this.isInvalidInput = true;\r\n return;\r\n } else {\r\n this.isInvalidInput = false;\r\n this.goToPageArrayGenerate(this.enterPageNumber,true);\r\n }\r\n }\r\n }\r\n\r\n\r\n goToPageArrayGenerate(page: any,shouldEmit:boolean) {\r\n this.isInvalidInput = false;\r\n this.currentPage = page;\r\n this.pageArray = [];\r\n if (this.currentPage > 3 && this.currentPage < this.pageCount - 2) {\r\n for (let i = this.currentPage - 2; i < this.currentPage + 3; i++) {\r\n this.pageArray.push(i);\r\n }\r\n } else if (this.currentPage <= 3) {\r\n if (this.pageCount > 4) {\r\n this.pageArray = [1, 2, 3, 4, 5];\r\n } else {\r\n for (let i = 1; i <= this.pageCount; i++) {\r\n this.pageArray.push(i);\r\n }\r\n }\r\n } else if (this.currentPage > this.pageCount - 3) {\r\n for (let i = this.pageCount - 4; i < this.pageCount + 1; i++) {\r\n this.pageArray.push(i);\r\n }\r\n } else {\r\n for (let i = this.currentPage - 2; i < this.currentPage + 2; i++) {\r\n this.pageArray.push(i);\r\n }\r\n }\r\n\r\n if(shouldEmit){\r\n this.selectedPage.emit(this.currentPage);\r\n }\r\n \r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-define-framework-listing',\r\n templateUrl: './define-framework-listing.component.html',\r\n styleUrls: ['./define-framework-listing.component.less']\r\n})\r\nexport class DefineFrameworkListingComponent implements OnInit {\r\n animation = true;\r\n hideCategoryList = false;\r\n hideFrameworkList = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n }\r\n\r\n clickCategoryList() {\r\n this.hideCategoryList = !this.hideCategoryList;\r\n }\r\n\r\n clickFrameworkList() {\r\n this.hideFrameworkList = !this.hideFrameworkList;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TabSelector } from './tab-selector/tab-selector.component';\r\nimport { TickMarkComponent } from './tick-mark/tick-mark.component';\r\nimport { FormFieldComponent } from './form-field/form-field.component';\r\nimport { FilePillComponent } from './file-pill/file-pill.component';\r\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\r\nimport { InputWithPillComponent } from './input-with-pill/input-with-pill.component';\r\nimport { SwitchComponent } from './cs-switch/cs-switch.component';\r\nimport { InputTrimDirective } from './directives/input-trim.directive';\r\nimport { RoleListComponent } from './role-list/role-list.component';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { PaginationModule } from './pagination/pagination.module';\r\nimport { VuiFloatingBarComponent } from './floating-bar/floating-bar.component';\r\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\r\nimport { SearchPipe } from './pipes/search.pipe';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NoDataModule } from '../../ui-kit/no-data/no-data.module';\r\nimport { UserGroupListComponent } from './user-group-list/user-group-list.component';\r\nimport { ListToIdPipe } from './pipes/list-to-id.pipe';\r\nimport { RefDisconnectPipe } from './pipes/ref-disconnect.pipe';\r\nimport { FormgroupModule } from '../../ui-kit/formgroup/formgroup.module';\r\nimport { AssessmentPickerComponent } from './assessment-picker/assessment-picker.component';\r\nimport { AssessmentLoaderComponent } from './assessment-picker/assessment-loader/assessment-loader.component';\r\nimport { AssessmentSubLoaderComponent } from './assessment-picker/assessment-sub-loader/assessment-sub-loader.component';\r\nimport { Pagination } from './assessment-picker/workflow-pagination/workflow-pagination.component';\r\nimport { AssessmentPreviewModule } from '../../sharedComponents/assessment-preview/assessment-preview.module';\r\nimport { DefineFrameworkListingComponent } from './define-framework-listing/define-framework-listing.component';\r\n// import { AssessmentListModule } from './assessment-list/assessment-list.module';\r\n// import { AssessmentPreviewModule } from '../../sharedComponents/assessment-preview/assessment-preview.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TabSelector,\r\n TickMarkComponent,\r\n FormFieldComponent,\r\n FilePillComponent,\r\n InputWithPillComponent,\r\n SwitchComponent,\r\n InputTrimDirective,\r\n RoleListComponent,\r\n CheckboxComponent,\r\n VuiFloatingBarComponent,\r\n SearchPipe,\r\n UserGroupListComponent,\r\n ListToIdPipe,\r\n RefDisconnectPipe,\r\n AssessmentPickerComponent,\r\n AssessmentLoaderComponent,\r\n AssessmentSubLoaderComponent,\r\n Pagination,\r\n DefineFrameworkListingComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TooltipModule,\r\n PaginationModule,\r\n PopoverModule,\r\n FormsModule,\r\n NoDataModule,\r\n FormgroupModule,\r\n AssessmentPreviewModule\r\n // AssessmentListModule,\r\n \r\n ],\r\n exports:[\r\n TabSelector,\r\n TickMarkComponent,\r\n FormFieldComponent,\r\n FilePillComponent,\r\n InputWithPillComponent,\r\n SwitchComponent,\r\n InputTrimDirective,\r\n CheckboxComponent,\r\n RoleListComponent,\r\n PaginationModule,\r\n VuiFloatingBarComponent,\r\n UserGroupListComponent,\r\n ListToIdPipe,\r\n RefDisconnectPipe,\r\n AssessmentPickerComponent,\r\n Pagination,\r\n DefineFrameworkListingComponent\r\n // AssessmentListModule\r\n ]\r\n})\r\nexport class CreateProgramUiModule { }\r\n","import { HttpClientModule } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { WorkflowEngineContainerComponent } from './workflow-engine-container/workflow-engine-container.component';\r\nimport { WorkflowRiskComponent } from './workflow-risk/workflow-risk.component';\r\nimport { WorkflowComplianceComponent } from './workflow-compliance/workflow-compliance.component';\r\nimport { WorkflowPolicyComponent } from './workflow-policy/workflow-policy.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MoreOptionComponent } from './more-option/more-option.component';\r\nimport { Configurations } from './configurations';\r\nimport { OwnerListComponent } from './sharedComponents/owner-list/owner-list.component';\r\nimport { CategoryListComponent } from './sharedComponents/category-list/category-list.component';\r\nimport { FloatingBarComponent } from './sharedComponents/floating-bar/floating-bar.component';\r\nimport { FormgroupModule } from './formgroup/formgroup.module';\r\nimport { TooltipModule } from './ui-kit/tooltip/tooltip.module';\r\nimport { MarxEditorModule } from 'vcomply-editor';\r\nimport { ResponsibilityCentersListComponent } from './sharedComponents/responsibility-centers-list/responsibility-centers-list.component';\r\nimport { WorkflowPaginationComponent } from './workflow-pagination/workflow-pagination.component';\r\nimport { LineLoaderModule } from './ui-kit/line-loader/line-loader.module';\r\nimport { AddMultipleRiskComponent } from './add-multiple-risk/add-multiple-risk.component';\r\nimport { BulkViewComponent } from './sharedComponents/bulk-view/bulk-view.component';\r\nimport { CheckpointsComponent } from './sharedComponents/checkpoint/checkpoints/checkpoints.component';\r\nimport { ConfirmationAlertComponent } from './confirmation-alert/confirmation-alert.component';\r\nimport { CheckpointsQuestionsComponent } from './sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CheckpointsListComponent } from './sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component';\r\nimport { SelectModule } from './formgroup/select/select.module';\r\nimport { FrequencyContainerComponent } from './sharedComponents/frequency/frequency-container/frequency-container.component';\r\nimport { FrequencyDailyComponent } from './sharedComponents/frequency/frequency-daily/frequency-daily.component';\r\nimport { FrequencyWeeklyComponent } from './sharedComponents/frequency/frequency-weekly/frequency-weekly.component';\r\nimport { FrequencyMonthlyComponent } from './sharedComponents/frequency/frequency-monthly/frequency-monthly.component';\r\nimport { FrequencyQuarterlyComponent } from './sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component';\r\nimport { FrequencyBiannualComponent } from './sharedComponents/frequency/frequency-biannual/frequency-biannual.component';\r\nimport { FrequencyAnnualComponent } from './sharedComponents/frequency/frequency-annual/frequency-annual.component';\r\nimport { FrequencyOneTimeComponent } from './sharedComponents/frequency/frequency-one-time/frequency-one-time.component';\r\nimport { FrequencyRandomComponent } from './sharedComponents/frequency/frequency-random/frequency-random.component';\r\nimport { FrequencyOnCompletionOfComponent } from './sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component';\r\nimport { FrequencyOngoingComponent } from './sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component';\r\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\r\nimport { FrequencyTopComponent } from './sharedComponents/frequency/frequency-top/frequency-top.component';\r\nimport { FrequencyLifecycleComponent } from './sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component';\r\nimport { DpDatePickerModule } from 'ng2-date-picker';\r\nimport { FrequencyDueDateComponent } from './sharedComponents/frequency/frequency-due-date/frequency-due-date.component';\r\nimport { FrequencyCheckboxListComponent } from './sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component';\r\nimport { FrequencyRadioListComponent } from './sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component';\r\nimport { AddMultipleResponsibilityComponent } from './add-multiple-responsibility/add-multiple-responsibility.component';\r\nimport { BulkResponsibilityViewComponent } from './sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component';\r\nimport { NoDataModule } from './sharedComponents/no-data/no-data.module';\r\nimport { VLoaderModule } from './sharedComponents/v-loader/v-loader.module';\r\nimport { PopoverModule } from './ui-kit/popover/popover.module';\r\nimport { CheckpointsPolicyContainerComponent } from './sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component';\r\nimport { CheckpointsPolicyListComponent } from './sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component';\r\nimport { CheckpointsPolicyQuestionsComponent } from './sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component';\r\nimport { WorkflowSurveyFormComponent } from './workflow-survey-form/workflow-survey-form.component';\r\nimport { LogAnIssueComponent } from './log-an-issue/log-an-issue.component';\r\nimport { FilterPipe } from './sharedComponents/pipes/filterPipe';\r\nimport { SmileyDialogModule } from './ui-kit/smiley-dialog/smiley-dialog.module';\r\nimport { CheckboxListComponent } from './sharedComponents/checkbox-list/checkbox-list.component';\r\nimport { RadioListComponent } from './sharedComponents/radio-list/radio-list.component';\r\nimport { ListMapperPipe } from './pipes/list-mapper.pipe';\r\n\r\nimport { CreateDocumentsComponent } from './create-documents/create-documents.component';\r\nimport { SearchPipe } from './pipes/search.pipe';\r\nimport { UserFilterPipe } from './pipes/user-filter.pipe';\r\nimport { GroupUsersListComponent } from './sharedComponents/group-users-list/group-users-list.component';\r\nimport { CategoryMultiSelectComponent } from './sharedComponents/category-multiselect/category-multi-select.component';\r\nimport { FrameworkListComponent } from './sharedComponents/framework-list/framework-list.component';\r\nimport { ParentTableComponent } from './sharedComponents/framework-list/parent-table/parent-table.component';\r\nimport { UserRadioListComponent } from './sharedComponents/users-radio-list/users-radio-list.component';\r\nimport { DataTypePipe } from './pipes/data-type.pipe';\r\nimport { CheckpointFloatingBarComponent } from './sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component';\r\nimport { SnackBarModule } from './ui-kit/snack-bar/snack-bar.module';\r\nimport { RiskClassificationComponent } from './sharedComponents/risk-classification/risk-classification.component';\r\nimport { FormatAndEvidenceComponent } from './sharedComponents/format-and-evidence/format-and-evidence.component';\r\nimport { DragDropDirective } from './sharedComponents/directive/drag-drop.directive';\r\nimport { AutofocusDirective } from './sharedComponents/directive/autofocus.directive';\r\nimport { ReviewFrequencyComponent } from './sharedComponents/review-frequency/review-frequency.component';\r\nimport { ScrollInViewDirective } from './sharedComponents/directive/scroll-in-view.directive';\r\nimport { SmileyDialogInlineModule } from './ui-kit/smiley-dialog-inline/smiley-dialog-inline.module';\r\nimport { ClickOutsideModule } from './ui-kit/click-outside/click-outside.module';\r\nimport { ShortMergePipe } from './sharedComponents/pipes/short-merge.pipe';\r\nimport { SpaceBreakerPipe } from './pipes/space-breaker.pipe';\r\n\r\nimport { FormatHtmlPipe } from \"./ui-kit/format-html.pipe\";\r\nimport { WithinDataPipe } from './sharedComponents/pipes/within-data.pipe';\r\nimport { PopoverHoverModule } from './ui-kit/popover-hover/popover-hover.module';\r\nimport { ResponsibilityRiskSelectorComponent } from './sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component';\r\nimport { ConditionalFocusDirective } from './sharedComponents/directive/conditional-focus.directive';\r\nimport { ListLoaderComponent } from './sharedComponents/list-loader/list-loader.component';\r\nimport { ArrayFilterPipe } from './sharedComponents/pipes/array-filter.pipe';\r\nimport { AuditCategoryListComponent } from './sharedComponents/audit-category-list/audit-category-list.component';\r\nimport { DocumentSectionComponent } from './sharedComponents/document-section/document-section.component';\r\nimport { WorkflowAssessmentComponent } from './workflow-assessment/workflow-assessment.component';\r\nimport { ImportAnAssessmentComponent } from './workflow-assessment/import-an-assessment/import-an-assessment.component';\r\nimport { AssessmentListComponent } from './sharedComponents/assessment-list/assessment-list.component';\r\nimport { RadioListWithPaginationComponent } from './sharedComponents/radio-list-with-pagination/radio-list.component';\r\nimport { PaginationModule } from './ui-kit/pagination/pagination.module';\r\nimport { LinkTreatmentLoaderComponent } from './sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component';\r\nimport { AssessmentListLoaderComponent } from './sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component'\r\nimport { AssessmentListSubLoaderComponent } from './sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component';\r\nimport { AssessmentPreviewModule } from './sharedComponents/assessment-preview/assessment-preview.module';\r\nimport { CreateAssessmentModule } from './sharedComponents/assessment-editor/create-assessment.module';\r\nimport { ActionDialogModule } from './ui-kit/action-dialog/action-dialog.module';\r\nimport { UncategorizedFilterPipe } from './pipes/uncategorized-filter.pipe';\r\nimport { WorkflowProgramComponent } from './workflow-program/workflow-program.component';\r\nimport { RolesListComponent } from './sharedComponents/roles-list/roles-list.component';\r\nimport { CreateProgramUiModule } from './workflow-program/create-program-ui/create-program-ui.module';\r\n\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n WorkflowEngineContainerComponent,\r\n WorkflowRiskComponent,\r\n WorkflowComplianceComponent,\r\n WorkflowPolicyComponent,\r\n MoreOptionComponent,\r\n OwnerListComponent,\r\n UserRadioListComponent,\r\n CategoryListComponent,\r\n CategoryMultiSelectComponent,\r\n FloatingBarComponent,\r\n ResponsibilityCentersListComponent,\r\n WorkflowPaginationComponent,\r\n AddMultipleRiskComponent,\r\n BulkViewComponent,\r\n CheckpointsComponent,\r\n ConfirmationAlertComponent,\r\n CheckpointsQuestionsComponent,\r\n CheckpointsListComponent,\r\n ReviewFrequencyComponent,\r\n FrequencyContainerComponent,\r\n FrequencyDailyComponent,\r\n FrequencyWeeklyComponent,\r\n FrequencyMonthlyComponent,\r\n FrequencyQuarterlyComponent,\r\n FrequencyBiannualComponent,\r\n FrequencyAnnualComponent,\r\n FrequencyOneTimeComponent,\r\n FrequencyRandomComponent,\r\n FrequencyOnCompletionOfComponent,\r\n FrequencyOngoingComponent,\r\n FrequencyTopComponent,\r\n FrequencyLifecycleComponent,\r\n FrequencyDueDateComponent,\r\n FrequencyCheckboxListComponent,\r\n FrequencyRadioListComponent,\r\n GroupUsersListComponent,\r\n AddMultipleResponsibilityComponent,\r\n BulkResponsibilityViewComponent,\r\n CheckpointsPolicyContainerComponent,\r\n CheckpointsPolicyListComponent,\r\n CheckpointsPolicyQuestionsComponent,\r\n WorkflowSurveyFormComponent,\r\n LogAnIssueComponent,\r\n FilterPipe,\r\n CheckboxListComponent,\r\n RadioListComponent,\r\n ListMapperPipe,\r\n CreateDocumentsComponent,\r\n SearchPipe,\r\n UserFilterPipe,\r\n FrameworkListComponent,\r\n ParentTableComponent,\r\n DataTypePipe,\r\n CheckpointFloatingBarComponent,\r\n FormatAndEvidenceComponent,\r\n RiskClassificationComponent,\r\n DragDropDirective,\r\n AutofocusDirective,\r\n ScrollInViewDirective,\r\n ShortMergePipe,\r\n SpaceBreakerPipe,\r\n FormatHtmlPipe,\r\n WithinDataPipe,\r\n ResponsibilityRiskSelectorComponent,\r\n ConditionalFocusDirective,\r\n ListLoaderComponent,\r\n ArrayFilterPipe,\r\n ConditionalFocusDirective,\r\n AuditCategoryListComponent,\r\n DocumentSectionComponent,\r\n DocumentSectionComponent,\r\n WorkflowAssessmentComponent,\r\n ImportAnAssessmentComponent,\r\n AssessmentListComponent,\r\n RadioListWithPaginationComponent,\r\n LinkTreatmentLoaderComponent,\r\n AssessmentListLoaderComponent,\r\n AssessmentListSubLoaderComponent,\r\n UncategorizedFilterPipe,\r\n WorkflowProgramComponent,\r\n RolesListComponent,\r\n \r\n ],\r\n imports: [\r\n ReactiveFormsModule,\r\n CreateAssessmentModule,\r\n MarxEditorModule,\r\n CommonModule,\r\n FormgroupModule,\r\n TooltipModule,\r\n PopoverModule,\r\n LineLoaderModule,\r\n FormsModule,\r\n SelectModule,\r\n NgxMaterialTimepickerModule,\r\n DpDatePickerModule,\r\n NoDataModule,\r\n VLoaderModule,\r\n SmileyDialogModule,\r\n SnackBarModule,\r\n HttpClientModule,\r\n SmileyDialogInlineModule,\r\n ClickOutsideModule,\r\n PopoverHoverModule,\r\n PaginationModule,\r\n CreateAssessmentModule,\r\n ActionDialogModule,\r\n AssessmentPreviewModule,\r\n CreateProgramUiModule\r\n ],\r\n exports: [\r\n WorkflowEngineContainerComponent,\r\n ],\r\n})\r\nexport class VComplyWorkflowEngineModule {\r\n public static forRoot(environmentConfig: Configurations): ModuleWithProviders<VComplyWorkflowEngineModule> {\r\n\r\n return {\r\n ngModule: VComplyWorkflowEngineModule,\r\n providers: [\r\n { provide: Configurations, useValue: environmentConfig }\r\n ]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of workflow-engine\r\n */\r\n\r\nexport * from './lib/workflow-engine.service';\r\n// export * from './lib/workflow-engine.component';\r\nexport * from './lib/workflow-engine.module';\r\nexport * from './lib/workflow-engine-container/workflow-engine-container.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AddMultipleResponsibilityComponent as ɵbs} from './lib/add-multiple-responsibility/add-multiple-responsibility.component';\nexport {AddMultipleRiskComponent as ɵu} from './lib/add-multiple-risk/add-multiple-risk.component';\nexport {Configurations as ɵe} from './lib/configurations';\nexport {ConfirmationAlertComponent as ɵx} from './lib/confirmation-alert/confirmation-alert.component';\nexport {CreateDocumentsComponent as ɵcf} from './lib/create-documents/create-documents.component';\nexport {CsCheckboxIndeterminateComponent as ɵfm} from './lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component';\nexport {CsCheckboxComponent as ɵfg} from './lib/formgroup/cs-checkbox/cs-checkbox.component';\nexport {CsRadioGroupComponent as ɵfj} from './lib/formgroup/cs-radio-group/cs-radio-group.component';\nexport {CsRadioComponent as ɵfh} from './lib/formgroup/cs-radio/cs-radio.component';\nexport {CsSelectComponent as ɵfk} from './lib/formgroup/cs-select/cs-select.component';\nexport {CsSwitchComponent as ɵfi} from './lib/formgroup/cs-switch/cs-switch.component';\nexport {FormgroupModule as ɵff} from './lib/formgroup/formgroup.module';\nexport {PascalPipe as ɵfl} from './lib/formgroup/pipes/pascal.pipe';\nexport {CsOptionComponent as ɵhk} from './lib/formgroup/select/cs-option/cs-option.component';\nexport {CsSelectComponent as ɵhi} from './lib/formgroup/select/cs-select/cs-select.component';\nexport {SelectModule as ɵhh} from './lib/formgroup/select/select.module';\nexport {SelectService as ɵhj} from './lib/formgroup/select/select.service';\nexport {LogAnIssueComponent as ɵbz} from './lib/log-an-issue/log-an-issue.component';\nexport {MoreOptionComponent as ɵm} from './lib/more-option/more-option.component';\nexport {DataTypePipe as ɵck} from './lib/pipes/data-type.pipe';\nexport {ListMapperPipe as ɵce} from './lib/pipes/list-mapper.pipe';\nexport {SearchPipe as ɵcg} from './lib/pipes/search.pipe';\nexport {SpaceBreakerPipe as ɵcs} from './lib/pipes/space-breaker.pipe';\nexport {UncategorizedFilterPipe as ɵdk} from './lib/pipes/uncategorized-filter.pipe';\nexport {UserFilterPipe as ɵch} from './lib/pipes/user-filter.pipe';\nexport {AddLogicComponent as ɵek} from './lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component';\nexport {AddPageDetailsComponent as ɵdy} from './lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component';\nexport {AddResponseSetPopupComponent as ɵec} from './lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component';\nexport {AddSegmentPopupComponent as ɵeb} from './lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component';\nexport {AssessmentSettingsComponent as ɵdz} from './lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component';\nexport {BuildModule as ɵfp} from './lib/sharedComponents/assessment-editor/components/build/build.module';\nexport {CheckboxComponent as ɵfr} from './lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component';\nexport {ChoiceSettingsPanelComponent as ɵgb} from './lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component';\nexport {DateTimeComponent as ɵga} from './lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component';\nexport {DropdownComponent as ɵfv} from './lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component';\nexport {ImageChoiceComponent as ɵfs} from './lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component';\nexport {MatrixDropdownComponent as ɵfu} from './lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component';\nexport {MatrixRatingScaleComponent as ɵfw} from './lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component';\nexport {MultipleChoiceComponent as ɵfq} from './lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component';\nexport {MultipleTextboxComponent as ɵfz} from './lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component';\nexport {RankingComponent as ɵfx} from './lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component';\nexport {SliderComponent as ɵfy} from './lib/sharedComponents/assessment-editor/components/build/slider/slider.component';\nexport {StarRatingComponent as ɵft} from './lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component';\nexport {ThankYouComponent as ɵgd} from './lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component';\nexport {WeightageSelectorComponent as ɵge} from './lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component';\nexport {WelcomeComponent as ɵgc} from './lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component';\nexport {EditorWrapperComponent as ɵed} from './lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component';\nexport {LogicCheckboxComponent as ɵia} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component';\nexport {LogicCommentBoxComponent as ɵie} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component';\nexport {LogicDateTimeComponent as ɵij} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component';\nexport {LogicDropdownComponent as ɵif} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component';\nexport {LogicImageChoiceComponent as ɵib} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component';\nexport {LogicMultipleChoiceComponent as ɵhz} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component';\nexport {LogicMultipleTextboxComponent as ɵii} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component';\nexport {LogicQuestionsModule as ɵhy} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module';\nexport {LogicRankingComponent as ɵig} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component';\nexport {LogicSingleTextboxComponent as ɵid} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component';\nexport {LogicSliderComponent as ɵih} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component';\nexport {LogicStarRatingComponent as ɵic} from './lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component';\nexport {LogicComponent as ɵej} from './lib/sharedComponents/assessment-editor/components/logic/logic.component';\nexport {MoveComponent as ɵei} from './lib/sharedComponents/assessment-editor/components/move/move.component';\nexport {PageHeaderComponent as ɵes} from './lib/sharedComponents/assessment-editor/components/page-header/page-header.component';\nexport {CurrentPageQuestionPipe as ɵeu} from './lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe';\nexport {ErrorMessagePipe as ɵem} from './lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe';\nexport {FormatterPipe as ɵep} from './lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe';\nexport {QuestionFilterPipe as ɵen} from './lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe';\nexport {QuestionPageFilterPipe as ɵev} from './lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe';\nexport {QuestionParserPipe as ɵeo} from './lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe';\nexport {TypeOfPipe as ɵew} from './lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe';\nexport {PreviewCheckboxComponent as ɵgs} from './lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component';\nexport {PreviewCommentBoxComponent as ɵgw} from './lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component';\nexport {PreviewDateTimeComponent as ɵhd} from './lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component';\nexport {PreviewDropdownComponent as ɵgy} from './lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component';\nexport {PreviewFileUploadComponent as ɵhe} from './lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component';\nexport {PreviewImageChoiceComponent as ɵgt} from './lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component';\nexport {PreviewMatrixDropdownComponent as ɵgx} from './lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component';\nexport {PreviewMatrixRatingScaleComponent as ɵgz} from './lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component';\nexport {PreviewMultipleChoiceComponent as ɵgr} from './lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component';\nexport {PreviewMultipleTextboxComponent as ɵhc} from './lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component';\nexport {PreviewRankingComponent as ɵha} from './lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component';\nexport {PreviewSingleTextboxComponent as ɵgv} from './lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component';\nexport {PreviewSliderComponent as ɵhb} from './lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component';\nexport {PreviewStarRatingComponent as ɵgu} from './lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component';\nexport {PreviewWrapperComponent as ɵgq} from './lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component';\nexport {PreviewModule as ɵgp} from './lib/sharedComponents/assessment-editor/components/preview/preview.module';\nexport {ThankYouComponent as ɵhg} from './lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component';\nexport {WelcomeComponent as ɵhf} from './lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component';\nexport {QuestionTypeComponent as ɵdx} from './lib/sharedComponents/assessment-editor/components/question-type/question-type.component';\nexport {QuickSettingsComponent as ɵef} from './lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component';\nexport {ResponseSelectorComponent as ɵeh} from './lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component';\nexport {SettingAnonymousComponent as ɵeq} from './lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component';\nexport {SettingResponseSegmentComponent as ɵer} from './lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component';\nexport {SingleLineEditorComponent as ɵeg} from './lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component';\nexport {ToolkitComponent as ɵel} from './lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component';\nexport {WelcomeThankyouComponent as ɵet} from './lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component';\nexport {CreateAssessmentContainerComponent as ɵdp} from './lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component';\nexport {CreateAssessmentModule as ɵdo} from './lib/sharedComponents/assessment-editor/create-assessment.module';\nexport {EditorService as ɵdq} from './lib/sharedComponents/assessment-editor/services/editor.service';\nexport {ResultCriteriaService as ɵea} from './lib/sharedComponents/assessment-editor/services/result-criteria.service';\nexport {ValidatorService as ɵee} from './lib/sharedComponents/assessment-editor/services/validator.service';\nexport {AssessmentListLoaderComponent as ɵdi} from './lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component';\nexport {AssessmentListSubLoaderComponent as ɵdj} from './lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component';\nexport {AssessmentListComponent as ɵde} from './lib/sharedComponents/assessment-list/assessment-list.component';\nexport {AssessmentService as ɵdf} from './lib/sharedComponents/assessment-list/service/assessment.service';\nexport {AssessmentPreviewModule as ɵhl} from './lib/sharedComponents/assessment-preview/assessment-preview.module';\nexport {CheckboxQuestionComponent as ɵhm} from './lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component';\nexport {DateTimeComponent as ɵhn} from './lib/sharedComponents/assessment-preview/date-time/date-time.component';\nexport {DeviceComponent as ɵho} from './lib/sharedComponents/assessment-preview/device/device.component';\nexport {FileUploadComponent as ɵhp} from './lib/sharedComponents/assessment-preview/file-upload/file-upload.component';\nexport {PageHeaderComponent as ɵhw} from './lib/sharedComponents/assessment-preview/page-header/page-header.component';\nexport {PreviewContainerComponent as ɵhr} from './lib/sharedComponents/assessment-preview/preview-container/preview-container.component';\nexport {PreviewComponent as ɵhq} from './lib/sharedComponents/assessment-preview/preview/preview.component';\nexport {QuickSettingsComponent as ɵhs} from './lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component';\nexport {RadioQuestionComponent as ɵht} from './lib/sharedComponents/assessment-preview/radio-question/radio-question.component';\nexport {SelectQuestionComponent as ɵhu} from './lib/sharedComponents/assessment-preview/select-question/select-question.component';\nexport {SingleTextboxComponent as ɵhv} from './lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component';\nexport {WelcomeComponent as ɵhx} from './lib/sharedComponents/assessment-preview/welcome/welcome.component';\nexport {AuditCategoryListComponent as ɵcz} from './lib/sharedComponents/audit-category-list/audit-category-list.component';\nexport {BulkResponsibilityViewComponent as ɵbu} from './lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component';\nexport {BulkViewComponent as ɵv} from './lib/sharedComponents/bulk-view/bulk-view.component';\nexport {CategoryListComponent as ɵp} from './lib/sharedComponents/category-list/category-list.component';\nexport {CategoryMultiSelectComponent as ɵq} from './lib/sharedComponents/category-multiselect/category-multi-select.component';\nexport {CheckboxListComponent as ɵcc} from './lib/sharedComponents/checkbox-list/checkbox-list.component';\nexport {CheckpointFloatingBarComponent as ɵcl} from './lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component';\nexport {CheckpointsPolicyContainerComponent as ɵbv} from './lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component';\nexport {CheckpointsPolicyListComponent as ɵbw} from './lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component';\nexport {CheckpointsPolicyQuestionsComponent as ɵbx} from './lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component';\nexport {CheckpointsListComponent as ɵz} from './lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component';\nexport {CheckpointsQuestionsComponent as ɵy} from './lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component';\nexport {CheckpointsComponent as ɵw} from './lib/sharedComponents/checkpoint/checkpoints/checkpoints.component';\nexport {AutofocusDirective as ɵcp} from './lib/sharedComponents/directive/autofocus.directive';\nexport {ConditionalFocusDirective as ɵcw} from './lib/sharedComponents/directive/conditional-focus.directive';\nexport {DragDropDirective as ɵco} from './lib/sharedComponents/directive/drag-drop.directive';\nexport {ScrollInViewDirective as ɵcq} from './lib/sharedComponents/directive/scroll-in-view.directive';\nexport {DocumentSectionComponent as ɵda} from './lib/sharedComponents/document-section/document-section.component';\nexport {FloatingBarComponent as ɵr} from './lib/sharedComponents/floating-bar/floating-bar.component';\nexport {FormatAndEvidenceComponent as ɵcm} from './lib/sharedComponents/format-and-evidence/format-and-evidence.component';\nexport {FrameworkListComponent as ɵci} from './lib/sharedComponents/framework-list/framework-list.component';\nexport {ParentTableComponent as ɵcj} from './lib/sharedComponents/framework-list/parent-table/parent-table.component';\nexport {FrequencyAnnualComponent as ɵbh} from './lib/sharedComponents/frequency/frequency-annual/frequency-annual.component';\nexport {FrequencyBiannualComponent as ɵbg} from './lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component';\nexport {FrequencyCheckboxListComponent as ɵbp} from './lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component';\nexport {FrequencyContainerComponent as ɵbb} from './lib/sharedComponents/frequency/frequency-container/frequency-container.component';\nexport {FrequencyDailyComponent as ɵbc} from './lib/sharedComponents/frequency/frequency-daily/frequency-daily.component';\nexport {FrequencyDueDateComponent as ɵbo} from './lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component';\nexport {FrequencyLifecycleComponent as ɵbn} from './lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component';\nexport {FrequencyMonthlyComponent as ɵbe} from './lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component';\nexport {FrequencyOnCompletionOfComponent as ɵbk} from './lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component';\nexport {FrequencyOneTimeComponent as ɵbi} from './lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component';\nexport {FrequencyOngoingComponent as ɵbl} from './lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component';\nexport {FrequencyQuarterlyComponent as ɵbf} from './lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component';\nexport {FrequencyRadioListComponent as ɵbq} from './lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component';\nexport {FrequencyRandomComponent as ɵbj} from './lib/sharedComponents/frequency/frequency-random/frequency-random.component';\nexport {FrequencyTopComponent as ɵbm} from './lib/sharedComponents/frequency/frequency-top/frequency-top.component';\nexport {FrequencyWeeklyComponent as ɵbd} from './lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component';\nexport {FrequencyService as ɵj} from './lib/sharedComponents/frequency/frequency.service';\nexport {GroupUsersListComponent as ɵbr} from './lib/sharedComponents/group-users-list/group-users-list.component';\nexport {ListLoaderComponent as ɵcx} from './lib/sharedComponents/list-loader/list-loader.component';\nexport {NoDataComponent as ɵfo} from './lib/sharedComponents/no-data/no-data.component';\nexport {NoDataModule as ɵfn} from './lib/sharedComponents/no-data/no-data.module';\nexport {OwnerListComponent as ɵn} from './lib/sharedComponents/owner-list/owner-list.component';\nexport {ArrayFilterPipe as ɵcy} from './lib/sharedComponents/pipes/array-filter.pipe';\nexport {FilterPipe as ɵcb} from './lib/sharedComponents/pipes/filterPipe';\nexport {ShortMergePipe as ɵcr} from './lib/sharedComponents/pipes/short-merge.pipe';\nexport {WithinDataPipe as ɵcu} from './lib/sharedComponents/pipes/within-data.pipe';\nexport {LinkTreatmentLoaderComponent as ɵdh} from './lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component';\nexport {RadioListWithPaginationComponent as ɵdg} from './lib/sharedComponents/radio-list-with-pagination/radio-list.component';\nexport {RadioListComponent as ɵcd} from './lib/sharedComponents/radio-list/radio-list.component';\nexport {ResponsibilityCentersListComponent as ɵs} from './lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component';\nexport {ResponsibilityRiskSelectorComponent as ɵcv} from './lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component';\nexport {ReviewFrequencyComponent as ɵba} from './lib/sharedComponents/review-frequency/review-frequency.component';\nexport {RiskClassificationComponent as ɵcn} from './lib/sharedComponents/risk-classification/risk-classification.component';\nexport {RolesListComponent as ɵdn} from './lib/sharedComponents/roles-list/roles-list.component';\nexport {UserRadioListComponent as ɵo} from './lib/sharedComponents/users-radio-list/users-radio-list.component';\nexport {LoaderInlineComponent as ɵiq} from './lib/sharedComponents/v-loader/loader-inline/loader-inline.component';\nexport {LoaderComponent as ɵip} from './lib/sharedComponents/v-loader/loader/loader.component';\nexport {VLoaderModule as ɵio} from './lib/sharedComponents/v-loader/v-loader.module';\nexport {ActionDialogModule as ɵjf} from './lib/ui-kit/action-dialog/action-dialog.module';\nexport {ActiveComponent as ɵji} from './lib/ui-kit/action-dialog/active/active.component';\nexport {DeactivateComponent as ɵjh} from './lib/ui-kit/action-dialog/deactivate/deactivate.component';\nexport {DeleteComponent as ɵjg} from './lib/ui-kit/action-dialog/delete/delete.component';\nexport {DuplicateComponent as ɵjj} from './lib/ui-kit/action-dialog/duplicate/duplicate.component';\nexport {ClickOutsideDirective as ɵiy} from './lib/ui-kit/click-outside/click-outside.directive';\nexport {ClickOutsideModule as ɵix} from './lib/ui-kit/click-outside/click-outside.module';\nexport {DialogConfig as ɵdw} from './lib/ui-kit/dialog/dialog-config';\nexport {DialogRef as ɵdv} from './lib/ui-kit/dialog/dialog-ref';\nexport {DialogComponent as ɵdt} from './lib/ui-kit/dialog/dialog.component';\nexport {DialogModule as ɵds} from './lib/ui-kit/dialog/dialog.module';\nexport {DialogService as ɵdr} from './lib/ui-kit/dialog/dialog.service';\nexport {InsertionDirective as ɵdu} from './lib/ui-kit/dialog/insertion.directive';\nexport {EditorLoaderModule as ɵik} from './lib/ui-kit/editor-loader/editor-loader.module';\nexport {EditorLoaderComponent as ɵil} from './lib/ui-kit/editor-loader/editor-loader/editor-loader.component';\nexport {FormatHtmlPipe as ɵct} from './lib/ui-kit/format-html.pipe';\nexport {ClickOutsideDirective as ɵgn} from './lib/ui-kit/formgroup/click-outside.directive';\nexport {CsCheckboxIndeterminateComponent as ɵgo} from './lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component';\nexport {CsCheckboxComponent as ɵgg} from './lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component';\nexport {CsRadioGroupComponent as ɵgj} from './lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component';\nexport {CsRadioComponent as ɵgh} from './lib/ui-kit/formgroup/cs-radio/cs-radio.component';\nexport {CsSelectComponent as ɵgk} from './lib/ui-kit/formgroup/cs-select/cs-select.component';\nexport {CsSwitchComponent as ɵgi} from './lib/ui-kit/formgroup/cs-switch/cs-switch.component';\nexport {FormgroupModule as ɵgf} from './lib/ui-kit/formgroup/formgroup.module';\nexport {PascalPipe as ɵgl} from './lib/ui-kit/formgroup/pipes/pascal.pipe';\nexport {SearchMultiSelectPipe as ɵgm} from './lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe';\nexport {LineLoaderComponent as ɵin} from './lib/ui-kit/line-loader/line-loader.component';\nexport {LineLoaderModule as ɵim} from './lib/ui-kit/line-loader/line-loader.module';\nexport {NoDataComponent as ɵki} from './lib/ui-kit/no-data/no-data.component';\nexport {NoDataModule as ɵkh} from './lib/ui-kit/no-data/no-data.module';\nexport {PaginationModule as ɵjd} from './lib/ui-kit/pagination/pagination.module';\nexport {PaginationComponent as ɵje} from './lib/ui-kit/pagination/pagination/pagination.component';\nexport {PopoverHoverComponent as ɵja} from './lib/ui-kit/popover-hover/popover-hover.component';\nexport {PopoverHoverDirective as ɵjc} from './lib/ui-kit/popover-hover/popover-hover.directive';\nexport {PopoverHoverModule as ɵiz} from './lib/ui-kit/popover-hover/popover-hover.module';\nexport {PopoverHoverService as ɵjb} from './lib/ui-kit/popover-hover/popover-hover.service';\nexport {PopoverEventDirective as ɵfd} from './lib/ui-kit/popover/popover-event.directive';\nexport {PopoverLongpressDirective as ɵfe} from './lib/ui-kit/popover/popover-longpress.directive';\nexport {PopoverComponent as ɵfa} from './lib/ui-kit/popover/popover.component';\nexport {PopoverDirective as ɵfc} from './lib/ui-kit/popover/popover.directive';\nexport {PopoverModule as ɵez} from './lib/ui-kit/popover/popover.module';\nexport {PopoverService as ɵfb} from './lib/ui-kit/popover/popover.service';\nexport {SmileyDialogInlineComponent as ɵiw} from './lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component';\nexport {SmileyDialogInlineModule as ɵiv} from './lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module';\nexport {SmileyDialogComponent as ɵis} from './lib/ui-kit/smiley-dialog/smiley-dialog.component';\nexport {SmileyDialogModule as ɵir} from './lib/ui-kit/smiley-dialog/smiley-dialog.module';\nexport {SnackBarComponent as ɵiu} from './lib/ui-kit/snack-bar/snack-bar.component';\nexport {SnackBarModule as ɵit} from './lib/ui-kit/snack-bar/snack-bar.module';\nexport {SnackBarService as ɵb} from './lib/ui-kit/snack-bar/snack-bar.service';\nexport {ToolTipDirective as ɵey} from './lib/ui-kit/tooltip/tooltip.directive';\nexport {TooltipModule as ɵex} from './lib/ui-kit/tooltip/tooltip.module';\nexport {ImportAnAssessmentComponent as ɵdd} from './lib/workflow-assessment/import-an-assessment/import-an-assessment.component';\nexport {WorkflowAssessmentComponent as ɵdb} from './lib/workflow-assessment/workflow-assessment.component';\nexport {WorkflowComplianceComponent as ɵh} from './lib/workflow-compliance/workflow-compliance.component';\nexport {WorkflowPaginationComponent as ɵt} from './lib/workflow-pagination/workflow-pagination.component';\nexport {WorkflowPolicyComponent as ɵk} from './lib/workflow-policy/workflow-policy.component';\nexport {AssessmentLoaderComponent as ɵkb} from './lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component';\nexport {AssessmentPickerComponent as ɵjz} from './lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component';\nexport {AssessmentSubLoaderComponent as ɵkc} from './lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component';\nexport {AssessmentService as ɵka} from './lib/workflow-program/create-program-ui/assessment-picker/assessment.service';\nexport {Pagination as ɵkd} from './lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component';\nexport {CheckboxComponent as ɵjt} from './lib/workflow-program/create-program-ui/checkbox/checkbox.component';\nexport {CreateProgramUiModule as ɵjk} from './lib/workflow-program/create-program-ui/create-program-ui.module';\nexport {SwitchComponent as ɵjq} from './lib/workflow-program/create-program-ui/cs-switch/cs-switch.component';\nexport {DefineFrameworkListingComponent as ɵke} from './lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component';\nexport {InputTrimDirective as ɵjr} from './lib/workflow-program/create-program-ui/directives/input-trim.directive';\nexport {FilePillComponent as ɵjo} from './lib/workflow-program/create-program-ui/file-pill/file-pill.component';\nexport {VuiFloatingBarComponent as ɵju} from './lib/workflow-program/create-program-ui/floating-bar/floating-bar.component';\nexport {FormFieldComponent as ɵjn} from './lib/workflow-program/create-program-ui/form-field/form-field.component';\nexport {InputWithPillComponent as ɵjp} from './lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component';\nexport {PaginationModule as ɵkf} from './lib/workflow-program/create-program-ui/pagination/pagination.module';\nexport {PaginationComponent as ɵkg} from './lib/workflow-program/create-program-ui/pagination/pagination/pagination.component';\nexport {ListToIdPipe as ɵjx} from './lib/workflow-program/create-program-ui/pipes/list-to-id.pipe';\nexport {RefDisconnectPipe as ɵjy} from './lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe';\nexport {SearchPipe as ɵjv} from './lib/workflow-program/create-program-ui/pipes/search.pipe';\nexport {RoleListComponent as ɵjs} from './lib/workflow-program/create-program-ui/role-list/role-list.component';\nexport {TabSelector as ɵjl} from './lib/workflow-program/create-program-ui/tab-selector/tab-selector.component';\nexport {TickMarkComponent as ɵjm} from './lib/workflow-program/create-program-ui/tick-mark/tick-mark.component';\nexport {UserGroupListComponent as ɵjw} from './lib/workflow-program/create-program-ui/user-group-list/user-group-list.component';\nexport {WorkflowProgramComponent as ɵdl} from './lib/workflow-program/workflow-program.component';\nexport {WorkflowRiskComponent as ɵf} from './lib/workflow-risk/workflow-risk.component';\nexport {AddRiskService as ɵg} from './lib/workflow-services/add-risk.service';\nexport {AssessmentService as ɵdc} from './lib/workflow-services/assessment.service';\nexport {AuthService as ɵc} from './lib/workflow-services/auth.service';\nexport {FrequencyBulkService as ɵbt} from './lib/workflow-services/frequency.service';\nexport {LogIssueService as ɵca} from './lib/workflow-services/log-issue.service';\nexport {PolicyService as ɵl} from './lib/workflow-services/policy.service';\nexport {ProgramsService as ɵdm} from './lib/workflow-services/programs.service';\nexport {ResponsibilityService as ɵi} from './lib/workflow-services/responsibility.service';\nexport {TokenDecoderService as ɵd} from './lib/workflow-services/token-decoder.service';\nexport {UiKitService as ɵa} from './lib/workflow-services/ui-kit.service';\nexport {WorkflowSurveyFormComponent as ɵby} from './lib/workflow-survey-form/workflow-survey-form.component';"],"names":["cloneDeep","CsCheckboxComponent","CsRadioComponent","CsSwitchComponent","CsRadioGroupComponent","CsSelectComponent","PascalPipe","CsCheckboxIndeterminateComponent","FormgroupModule","NoDataComponent","NoDataModule","SearchPipe","ClickOutsideDirective","AssessmentService","PaginationComponent","PaginationModule","DateTimeComponent","QuickSettingsComponent","PageHeaderComponent","WelcomeComponent","CheckboxComponent","ThankYouComponent","retry"],"mappings":"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"}
|