{"version":3,"file":"vcomply-risk-quickview.mjs","sources":["../../../../projects/vcomply/risk-quickview/src/lib/quick-view/configurations/constants.ts","../../../../projects/vcomply/risk-quickview/src/lib/subsink.class.ts","../../../../projects/vcomply/risk-quickview/src/lib/configurations.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/dialog/dialog-ref.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/dialog/dialog-config.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/snack-bar/snack-bar.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/services/token-decoder.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/services/auth.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/services/quick-view.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/tooltip/tooltip.directive.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/popover/popover.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/popover/popover.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/popover/popover.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/popover/popover.directive.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-factor-rating-guide/rating-guide/rating-guide.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-factor-rating-guide/rating-guide/rating-guide.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/bottom-confirmation-popup/bottom-confirmation-popup.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/bottom-confirmation-popup/bottom-confirmation-popup.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/inherent-risk-assessment-dialog/inherent-risk-assessment-dialog.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/inherent-risk-assessment-dialog/inherent-risk-assessment-dialog.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/services/frequency-dialog.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/dialog/insertion.directive.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/dialog/dialog.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/dialog/dialog.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/dialog/dialog.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/dialog/dialog-injector.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/dialog/dialog.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/services/date-picker.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/v-loader/loader-inline/loader-inline.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/v-loader/loader-inline/loader-inline.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/edit-residual-risk-rating/edit-residual-risk-rating.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/edit-residual-risk-rating/edit-residual-risk-rating.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/action-dialog/access-capability/access-capability.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/action-dialog/access-capability/access-capability.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/action-dialog/delete/delete.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/action-dialog/delete/delete.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/constants/session-storage.constants.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/services/session-storage.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/workflow/workflow.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/action-dialog/move/move.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/action-dialog/move/move.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/services/workshop.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/no-data/no-data.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/no-data/no-data.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/ripple/ripple.directive.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/pipes/categorylength.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/floating-bar/floating-bar.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/floating-bar/floating-bar.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/pipes/forage.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/rc-list/rc-list.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/rc-list/rc-list.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/services/pagination.service.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/risk-workshop-pagination/risk-workshop-pagination.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/risk-workshop-pagination/risk-workshop-pagination.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/pipes/filter.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/owner-list/owner-list.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/owner-list/owner-list.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/create-workshop/create-workshop.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/create-workshop/create-workshop.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/response-strategy-dialog/response-strategy-dialog.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/response-strategy-dialog/response-strategy-dialog.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/text-display/overflow.directive.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/text-display/text-display.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/text-display/text-display.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-inherent-risk-assessment/inherent-assessment-loader/inherent-assessment-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-inherent-risk-assessment/inherent-assessment-loader/inherent-assessment-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/pipes/profile.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-inherent-risk-assessment/quick-inherent-risk-assessment.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-inherent-risk-assessment/quick-inherent-risk-assessment.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/no-control-bottom-popup/no-control-bottom-popup.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/no-control-bottom-popup/no-control-bottom-popup.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/pipes/segmenter.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/residual-risk-assessment-dialog/residual-risk-assessment-dialog.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/residual-risk-assessment-dialog/residual-risk-assessment-dialog.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/floating-bar/floating-bar.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/floating-bar/floating-bar.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/pipes/search.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/user-list/user-list.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/user-list/user-list.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/create-control/create-control.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/create-control/create-control.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/table-card-loader/table-card-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/table-card-loader/table-card-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/pagination/pagination/pagination.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/pagination/pagination/pagination.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/table-loader/table-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/table-loader/table-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/effectiveness-picker-dialog/effectiveness-picker-dialog.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/effectiveness-picker-dialog/effectiveness-picker-dialog.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/pipes/is-checked.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/pipes/file-url.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/link-control/controls-list/controls-list.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/link-control/controls-list/controls-list.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/link-control/controls-program-list/controls-program-list.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/link-control/controls-program-list/controls-program-list.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/link-control/controls-sub-category-list/controls-sub-category-list.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/link-control/controls-sub-category-list/controls-sub-category-list.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/link-control/link-control-dialog/link-control-dialog.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/link-control/link-control-dialog/link-control-dialog.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/action-dialog/link/link.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/action-dialog/link/link.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-residual-risk-assessment/residual-assessment-loader/residual-assessment-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-residual-risk-assessment/residual-assessment-loader/residual-assessment-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/pipes/controlCount.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-residual-risk-assessment/quick-residual-risk-assessment.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-residual-risk-assessment/quick-residual-risk-assessment.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-treatment-plan/treatment-loader/treatment-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-treatment-plan/treatment-loader/treatment-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-treatment-plan/quick-treatment-plan.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-treatment-plan/quick-treatment-plan.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/details-metrics/details-metrics.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/details-metrics/details-metrics.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/version-history/version-history.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/version-history/version-history.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-discussion/quick-discussion-loader/quick-discussion-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-discussion/quick-discussion-loader/quick-discussion-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/pipes/domsanitizer.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-discussion/quick-discussion.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-discussion/quick-discussion.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-view/quick-view-loader/quick-view-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-view/quick-view-loader/quick-view-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-view/quick-view.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-view/quick-view.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/constants/iframe.constants.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/pipes/safe-url.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/components/vc-iframe/vc-iframe.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/workflow/workflow/workflow.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/workflow/workflow/workflow.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.html","../../../../projects/vcomply/risk-quickview/src/lib/risk-quickview-container/risk-quickview-container.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/risk-quickview-container/risk-quickview-container.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/score-settings/score-settings-loader/score-settings-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/score-settings/score-settings-loader/score-settings-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/score-settings/score-settings.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/score-settings/score-settings.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-activity/quick-activity-loader/quick-activity-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-activity/quick-activity-loader/quick-activity-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-activity/quick-activity.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-activity/quick-activity.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-document/quick-document-loader/quick-document-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-document/quick-document-loader/quick-document-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-document/quick-document.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-document/quick-document.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/click-outside.directive.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/pipes/pascal.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-select/cs-select.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-select/cs-select.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/tooltip/tooltip.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/popover/popover-event.directive.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/popover/popover-longpress.directive.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/popover/popover.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/formgroup/formgroup.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/no-data/no-data.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/text-display/text-display.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/pipes/safeHTML.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/effectiveness-picker-dialog/effectivness-picker-dialog.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-factor-rating-guide/risk-factor-rating-guide.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/business-cycle-loader/business-cycle-loader/business-cycle-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/business-cycle-loader/business-cycle-loader/business-cycle-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/business-cycle-loader/business-cycle-loader.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/pipes/profile.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/workshop-table/workshop-table.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/workshop-table/workshop-table.component.html","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/workshop-table/table-loader/table-loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/workshop-table/table-loader/table-loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/ripple/ripple.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/select/cs-select/cs-select.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/select/cs-select/cs-select.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/select/cs-option/cs-option.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/select/cs-option/cs-option.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/select/select.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/smiley-dialog/smiley-dialog.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/v-loader/loader/loader.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/v-loader/loader/loader.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/v-loader/v-loader.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/pipes/quarter.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/future-cycle-pipe/future-cycle.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/time-filter/time-filter.component.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/time-filter/time-filter.component.html","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/pipes/trim.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/pipes/safeHTML.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/pipes/profile.pipe.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/pipes/pipes.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/future-cycle-pipe/future-cycle-pipe.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/time-filter/time-filter.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/risk-workshop/risk-workshop.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/components/vc-iframe/vc-iframe.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/workflow/workflow.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/quick-view/quick-view.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/ui-kit/snack-bar/snack-bar.module.ts","../../../../projects/vcomply/risk-quickview/src/lib/risk-quickview.module.ts","../../../../projects/vcomply/risk-quickview/src/public-api.ts","../../../../projects/vcomply/risk-quickview/src/vcomply-risk-quickview.ts"],"sourcesContent":["export const CONFIGS = {\n    profilePicPath:'profile_pic/thumb'\n\n}","const isFunction = (fn: any) => typeof fn === 'function';\nexport type Nullable<T> = T | null | undefined;\n\nexport interface SubscriptionLike {\n  unsubscribe(): void;\n}\n\n/**\n * Subscription sink that holds Observable subscriptions\n * until you call unsubscribe on it in ngOnDestroy.\n */\nexport class SubSink {\n\n  protected _subs: Nullable<SubscriptionLike>[] = [];\n\n  /**\n   * Subscription sink that holds Observable subscriptions\n   * until you call unsubscribe on it in ngOnDestroy.\n   *\n   * @example\n   * In Angular:\n   * ```\n   *   private subs = new SubSink();\n   *   ...\n   *   this.subs.sink = observable$.subscribe(...)\n   *   this.subs.add(observable$.subscribe(...));\n   *   ...\n   *   ngOnDestroy() {\n   *     this.subs.unsubscribe();\n   *   }\n   * ```\n   */\n  constructor() {}\n\n  /**\n   * Add subscriptions to the tracked subscriptions\n   * @example\n   *  this.subs.add(observable$.subscribe(...));\n   */\n  add(...subscriptions: Nullable<SubscriptionLike>[]) {\n    this._subs = this._subs.concat(subscriptions);\n  }\n\n  /**\n   * Assign subscription to this sink to add it to the tracked subscriptions\n   * @example\n   *  this.subs.sink = observable$.subscribe(...);\n   */\n  set sink(subscription: Nullable<SubscriptionLike>) {\n    this._subs.push(subscription);\n  }\n\n  /**\n   * Unsubscribe to all subscriptions in ngOnDestroy()\n   * @example\n   *   ngOnDestroy() {\n   *     this.subs.unsubscribe();\n   *   }\n   */\n  unsubscribe() {\n    this._subs.forEach(sub => sub && isFunction(sub.unsubscribe) && sub.unsubscribe());\n    this._subs = [];\n  }\n}","export class Configurations {\n  public env: any;\n\n  constructor() {\n    this.env = {};\n  }\n\n}\n\nexport const RISK_QUICKVIEW_PROPERTIES = {\n  errorMessage: 'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n  riskAssessment: {\n      scoreUpdated: 'The scores have been updated.',\n      weightageHelpingText:\n        'All risk scoring factors may not be equally important. Hence, weightage helps reflect the perceived importance of each risk scoring factor. The higher the value of the weight, the more important the risk scoring factor is, and the more the risk scoring factor will contribute to the overall inherent risk score.',\n      assessmentConfirmParticipant: 'Once inherent assessment is completed, risk factor ratings cannot be changed.',\n      disabledAssessmentButton: 'To complete the inherent risk assessment, please select the ratings for all risk factors.',\n      incompleteAssessment: 'You have not completed the inherent risk assessment for this risk',\n      assessmentCompleted: 'The inherent risk assessment for this risk has been completed.',\n      editAssessment: 'The inherent risk assessment for this risk has been updated.',\n      saveForLater: 'The inherent risk assessment for this risk has been saved.',\n      myScoreApplied: 'Your assessment has been set as the inherent risk rating for this risk.',\n      avgScoreApplied: 'The average inherent risk rating has been set as the inherent risk rating for this risk.',\n      skipControlAssessment: 'Once you skip this stage, you do not have to link any controls to complete the assessment.',\n      revertSkippedAssessment: 'Once you enable this stage, you will have to link controls to complete the control assessment.',\n      performanceHelpingText: 'This shows the performance of the responsibility.',\n      effectivnessHelpingText: 'This shows the effectiveness of the responsibilities associated with the risk.',\n      completeIfControlEnabled: 'This action will complete the Inherent Risk & Control Assessment process.',\n      completeIfControlDisabled: 'This action will complete the <b>Inherent Risk Assessment</b> stage.',\n      myScoreConfirmation: 'Your assessment will be used as the inherent risk rating for this risk.',\n      averageScoreConfirmation: 'The average inherent risk rating will be set as the inherent risk rating for this risk.',\n      myScoreButton: 'Display my Rating as the inherent risk Rating',\n      averageScoreButton: 'Display Average Rating as the inherent risk Rating',\n      acceptedWithAutomation:\n        'The risk will now be move to the <b><i>\"Accept\"</i></b> state based on the automation criteria set by',\n      transferredWithAutomation:\n        'The risk will now be move to the <b><i>\"Transfer\"</i></b> state based on the automation criteria set by',\n      mitigatedWithAutomation:\n        'The risk will now be move to the <b><i>\"Mitigate\"</i></b> state based on the automation criteria set by',\n      avoidedWithAutomation:\n        'The risk will now be move to the <b><i>\"Avoid\"</i></b> state based on the automation criteria set by',\n      automationWithoutStrategy: 'The risk mitigation priority will be updated in accordance with the predefined rules that have been set in the Risk Settings',\n      editRatingConfirmation:\n        'The <b>Inherent Risk Assessment</b> stage is now complete. If you edit the ratings, the workflow will restart and, the stage will move back to in-progress.',\n      editRatingSuccessful: 'The Inherent Risk Assessment stage is now in-progress.',\n      updateDeadline: 'This action will reset the inherent risk assessment deadline for this risk.',\n      updateDeadlineConfirmed: 'The inherent risk assessment deadline for this risk has been reset.',\n      applySameForAllRC: 'Once you enable this setting, the same inherent risk ratings will be applied to all the Responsibility Centers associated with this risk.',\n      applyNotSameForAllRC: 'Once you disable this setting, the same inherent risk ratings will not be applied to all the Responsibility Centers associated with this risk.',\n      inherentConfirmationMessage: 'The Inherent Risk Rating cannot be lower than the Residual Risk Rating. If you proceed, an alert message will be shown to indicate that the Inherent Risk Rating is lower than the Residual Risk Rating, and the Residual Risk Rating must be updated.',\n    },\n    manageRisk: {\n      deleteRiskSuccessful: 'The risk has been deleted.',\n      deleteMultipleRisksSuccessful: 'The risks have been deleted.',\n      oversightAdded: 'The risk oversight has been added.',\n      descriptionUpdated: 'The risk description has been updated.',\n      riskMoved: 'The risk has been moved.',\n      responseStrategyUpdated: 'The response strategy for this risk has been updated.',\n    },\n    riskTreatment: {\n      enableSameRating:'Once you enable this setting, the same residual risk ratings will be applied to all the Responsibility Centers associated with this risk.',\n      disableSameRating:'Once you disable this setting, the same residual risk ratings will not be applied to all the Responsibility Centers associated with this risk.',\n      weightageHelpingText:\n        'The risk factors used to assess risk may not equally contribute to the level of risk that an organization is exposed to.  The risk factor weightage indicates the contribution that a risk factor has on the overall risk rating.',\n      effectivnessHelpingText:\n        'Control effectiveness represents the effectiveness of the controls that act upon a particular risk. This includes those controls that affect the likelihood of the risk (sometimes called ‘preventive controls’ when the controls act to reduce the likelihood of negative consequences) and those that affect the consequences (sometimes called ‘mitigating controls’ when the controls act to reduce the negative consequences).',\n      rcHelpingText:\n        'Responsibility Centers represent your organizational and operational infrastructure. You can specify which Responsibility Centers are impacted due to a risk. As a result, the risk will be assessed and mitigated in relation to the Responsibility Centers they affect.',\n      completeStepConfirmation: 'This action will complete the <b>Residual Risk Assessment & Treatment</b> process.',\n      saveForLater: 'The residual risk assessment for this risk has been saved.',\n      treatmentPlanSaveForLater: 'The treatment plan for this risk has been saved.',\n      treatmentCompleted: 'The residual risk assessment & treatment for this risk has been completed.',\n      treatmentMoreThanOnce: 'The residual risk assessment & treatment for this risk  has been updated.',\n      treatmentPlanMoreThanOnce: 'The treatment plan for this risk  has been updated.',\n      editRatingConfirmation:\n        'The <b>Residual Risk Assessment & Treatment</b> stage has been marked as complete. If you edit the risk factor ratings or controls, this stage will revert back to in progress and will need to be marked as complete again.',\n      treatmentRestart: 'The Residual Risk Assessment & Treatment stage is now in-progress.',\n      controlRemoved: 'The control has been removed.',\n      treatmentPlanRemoved: 'The treatment plan has been removed',\n      predefinedAutomationRules: 'The risk mitigation priority will be updated in accordance with the predefined rules that have been set in the Risk Settings.',\n    },\n    riskWorkshop: {\n      createWorkshop: 'The Risk Workshop invite has been sent to the participant(s).',\n      createWorkshopSave: 'The Risk Workshop has been saved.',\n      deleteWorkshop: 'The Risk Workshop has been deleted.',\n      deleteParticipant: 'The participant has been deleted.',\n      deleteWorkshopDialog: 'This action will <b>Delete</b> this risk workshop.',\n      deleteParticipantDialog: 'This action will remove the participant from this workshop.',\n      sendInvite: 'An invite to join the Risk Workshop has been sent.',\n      resendInvite: 'An invite to join the Risk Workshop has been resent.',\n    },\n    discussionBoard: {\n      commentAdded: 'The comment has been added.',\n      singleFileUpload: 'The file has been uploaded.',\n      multipleFilesUpload: 'The files have been uploaded.',\n      fileAndComment: 'The comment has been added and the file has been uploaded. ',\n      deleteComment: 'The comment has been deleted.',\n      deleteFile: 'The file has been deleted.',\n    },\n}\n","import { Observable, Subject } from 'rxjs';\n\nexport class DialogRef {\n  private readonly afterDialogClosed = new Subject<any>();\n  afterClosed: Observable<any> = this.afterDialogClosed.asObservable();\n  constructor() {}\n\n  close(result?: any) {\n    this.afterDialogClosed.next(result);\n  }\n}\n","export class DialogConfig<D = any> {\n  data?: D;\n  position?: any;\n  background?: any;\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class SnackBarService {\n  private snackbarSubject = new Subject<any>();\n  public snackbarState = this.snackbarSubject.asObservable();\n  constructor() {}\n\n  show(message: string, type?:'success'|'warning'|'info'|'alert'|'error') {\n    this.snackbarSubject.next({\n      show: true,\n      message,\n      icon:type,\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { JwtHelperService } from '@auth0/angular-jwt';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TokenDecoderService {\n\n  constructor() { }\n\n  getUserDetailsFromToken(){\n    if (localStorage.getItem(\"currentUser\")) {\n      const helper = new JwtHelperService();\n      const rawToken:any = JSON.parse(localStorage.getItem(\"currentUser\")??\"{}\").token;\n      const tokenInfo = helper.decodeToken(rawToken);\n      if(tokenInfo?.iss){\n        if(tokenInfo?.user){\n          try{\n            return JSON.parse(tokenInfo.user)\n          }\n          catch{\n             return null;\n          }\n        }\n      }else{\n        return tokenInfo.user??null;\n      }\n    }else{\n      return null;\n    }\n  }\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { BehaviorSubject, catchError, map, Observable, of, retry, shareReplay } from 'rxjs';\nimport { Configurations } from '../../configurations';\nimport { SubSink } from '../../subsink.class';\nimport { TokenDecoderService } from './token-decoder.service';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AuthService {\n  private permissions!: any;\n  roleBasedPermission !:any;\n  riskPermissions:any = [];\n  responsibilityPermissions: any = [];\n  env!: any;\n  userDetails: any;\n  public getUserInfo: BehaviorSubject<any> = new BehaviorSubject<any>({});\n  public permissionsDetails: BehaviorSubject<any> = new BehaviorSubject<any>({});\n\n  constructor(private http: HttpClient,\n              private authorizer: AuthorizerService,\n              private tokenDecoder: TokenDecoderService,\n              @Optional() config?: Configurations) {\n                if (config) {\n                  this.env = config.env;\n                }\n               // this.getUser().subscribe();\n                this.isValidToken();\n               // this.getMemberPermissionsInfo().subscribe();\n              }\n\n\n  userIdk() {\n    const helper = new JwtHelperService();\n    const CURRENT_USER = localStorage.getItem('currentUser');\n    let myRawToken;\n    CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\n    const isExpired = helper.isTokenExpired(myRawToken);\n    if (isExpired === false) {\n      const tokenInfo = helper.decodeToken(myRawToken);\n      return tokenInfo._id;\n    }\n    return '';\n  }\n\n  // getUserj() {\n  //   const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n  //   let params = new HttpParams();\n  //   params = params.append('moduleName', 'risk');\n  //   console.log(\"get user called in auth service\",params,this.userId())\n  //   return this.http\n  //     .get(this.env.apiEndpointWithoutV2 + 'organization/?mode=memberFindbyId&id=' + this.userId() + '&moduleName=risk', {headers} )\n  //     .pipe(\n  //       map((res) => {\n  //         this.setPermissions(res);\n  //         this.setPermission();\n  //         this.getUserInfo.next(res as any);\n  //       }),\n  //       shareReplay(1)\n  //     )\n  //     .pipe(retry(2));\n  // }\n\n  setPermissions(userResp: any) {\n    this.permissions = userResp.permission;\n  }\n\n  setPermission(){\n    //collecting all the risk module based permissions if enabled\n    let ifExistRisk = this.roleBasedPermission?.find((el:any)=> el.moduleName == \"risk\");\n\n    this.riskPermissions = [];\n    const allowedFlows:any = [];\n    ifExistRisk?.subModule?.forEach( (module: any) => {\n      module?.permissions?.forEach( (permission: any) => {\n\n        switch(permission?.code) {\n          case 'RRCVRC': {\n            if(permission?.defaultPermission==1 || permission?.enable==1){allowedFlows.push('view_risk_categories')};\n            break;\n          }\n          case 'RRCMRC': {\n            if(permission?.defaultPermission==1 || permission?.enable==1){allowedFlows.push('manage_risk_categories')};\n            break;\n          }\n          case 'RRRR': {\n            if(permission?.defaultPermission==1 || permission?.enable==1){allowedFlows.push('report_risks')};\n            break;\n          }\n          case 'RRMR': {\n            if(permission?.defaultPermission==1 || permission?.enable==1){allowedFlows.push('manage_risks')};\n            break;\n          }\n          case 'RRMRA': {\n            if(permission?.defaultPermission==1 || permission?.enable==1){allowedFlows.push('manage_risk_assessments')};\n            break;\n          }\n          case 'RRVCW': {\n            if(permission?.defaultPermission==1 || permission?.enable==1){allowedFlows.push('view_and_complete_workshop')};\n            break;\n          }\n          case 'RRVDRR': {\n            if(permission?.defaultPermission==1 || permission?.enable==1){allowedFlows.push('view_and_download_risk_reports')};\n            break;\n          }\n          case 'RRMRR': {\n            if(permission?.defaultPermission==1 || permission?.enable==1){allowedFlows.push('manage_reported_risks')};\n            break;\n          }\n        }\n      })\n    })\n    this.riskPermissions = allowedFlows;\n\n    // collecting manage-responsibility permission if enabbled\n    let ifExistResponsibility = this.roleBasedPermission?.find((el:any)=> el.moduleName == \"compliance\");\n    const allowedPermission: any = [];\n    ifExistResponsibility?.subModule?.forEach( (module: any) => {\n      module?.permissions?.forEach( (permission: any) => {\n        switch(permission?.code) {\n          case 'CRMR': {\n            if(permission?.defaultPermission==1 || permission?.enable==1){allowedPermission.push('manage_responsibilities')};\n            break;\n          }\n        }\n      })\n    })\n    this.responsibilityPermissions = allowedPermission;\n  }\n\n  getOrgObjectId() {\n    try {\n      if (this.isValidToken()) {\n        const helper = new JwtHelperService();\n        const tk: string | null = localStorage.getItem('currentUser');\n        if (tk) {\n          const myRawToken = JSON.parse(tk).token;\n          const tokenInfo = helper.decodeToken(myRawToken);\n          return tokenInfo._id;\n        }\n      }\n    } catch (err) { }\n  }\n\n  isValidToken() {\n    const helper = new JwtHelperService();\n    // const requestedUrl = JSON.parse(JSON.stringify(window.location.href));\n    const userToken = localStorage.getItem('currentUser');\n\n    if (userToken) {\n      const CURRENT_USER = localStorage.getItem('currentUser');\n      let myRawToken;\n      CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\n      const isExpired = helper.isTokenExpired(myRawToken);\n      if (isExpired === true) {\n        return false;\n      }\n      if (isExpired === false) {\n        return true;\n      }\n    } else {\n      // const url = localStorage.getItem('requestedUrl');\n      // if (!url) {\n      //   localStorage.setItem('requestedUrl', requestedUrl);\n\n      // }\n      window.location.href = this.env.apiEndpoint + '#/signin?redirectURL=' + encodeURIComponent(window.location.href);\n\n      return false;\n    }\n  }\n\n  getMemberId(): number {\n    try {\n      if (this.isValidToken()) {\n        const helper = new JwtHelperService();\n        const tk: string | null = localStorage.getItem('currentUser');\n        if (tk) {\n          const userInfo = this.tokenDecoder.getUserDetailsFromToken();\n          return userInfo?.id ? userInfo.id : null;\n        }\n        return -1;\n      }\n      return -1;\n    } catch (err) { }\n    return -1;\n  }\n\n  // getMemberPermissionsInfoj(): Observable<any> {\n  //   // debugger\n  //   const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n  //   return this.http\n  //     .get(this.env.apiEndpointWithoutV2 + \"organization/?mode=users&id=\" + this.userId(),{ headers: headers })\n  //     .pipe(map((res: any) => {\n  //       // debugger\n  //       this.userDetails = res;\n  //       this.permissionsDetails.next(<any>res);\n  //       this.roleBasedPermission = res?.roleActions;\n  //       this.setPermission();\n  //     }), catchError((err) => {\n  //       return of(err);\n  //     })\n  //     );\n  // }\n\n  getAuthorizationToken(): any {\n    try {\n      if (this.isValidToken()) {\n        const tk: string | null = localStorage.getItem('currentUser');\n        if (tk) {\n          const myRawToken = JSON.parse(tk).token;\n          return myRawToken;\n        }\n        return '';\n      }\n      return '';\n    } catch (err) { }\n    return '';\n  }\n\n  tokenInfo() {\n    const helper = new JwtHelperService();\n    const userToken = localStorage.getItem('currentUser');\n    if (userToken) {\n      const CURRENT_USER = localStorage.getItem('currentUser');\n      let myRawToken;\n      CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\n      const tokenInfo = helper.decodeToken(myRawToken);\n      return this.tokenDecoder.getUserDetailsFromToken();\n    }\n    return {};\n  }\n\n  isAdmin() {\n    if (this.isValidToken()) {\n      return this.tokenInfo().admin;\n    }\n  }\n\n  isKeyAdmin(): boolean {\n    if (this.isValidToken() && Object.keys(this.tokenInfo()).length > 0) {\n      return this.tokenInfo().keyAdmin;\n    }\n    return false;\n  }\n\n  getInfo() {\n    const helper = new JwtHelperService();\n    const CURRENT_USER = localStorage.getItem('currentUser');\n    let myRawToken;\n    CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\n    const isExpired = helper.isTokenExpired(myRawToken);\n    if (isExpired === false) {\n      // const tokenInfo = helper.decodeToken(myRawToken);\n      return this.tokenDecoder.getUserDetailsFromToken();\n    }\n    return {};\n  }\n\n  getPermissions() {\n    return this.permissions;\n  }\n\n  logout() {\n    this.resetBusinessCycle();\n    const primaryToken = localStorage.getItem('primaryuser');\n    if (primaryToken != null) {\n      localStorage.setItem('currentUser', primaryToken);\n      localStorage.removeItem('primaryuser');\n      window.location.href = window.location.host;\n    } else {\n      localStorage.removeItem('currentUser');\n      window.location.href = 'https://' + window.location.host;\n    }\n  }\n\n  isLoggedIn() {\n     console.log('window.location.host 444', window.location.host);\n    const helper = new JwtHelperService();\n    const userToken = localStorage.getItem('currentUser');\n    if (userToken) {\n      const myRawToken = JSON.parse(userToken).token;\n      const isExpired = helper.isTokenExpired(myRawToken);\n      if (isExpired === false) {\n        return true;\n      }\n      if (isExpired === true) {\n        this.logout();\n      }\n      window.location.href = 'https://' + window.location.host + '/#/signin?redirectURL= ' + encodeURIComponent(window.location.href);\n      return false;\n    } else {\n      window.location.href = 'https://' + window.location.host + '/#/signin?redirectURL= ' + encodeURIComponent(window.location.href);\n      return false;\n    }\n  }\n\n  getShortName(): string {\n    if (this.isLoggedIn()) {\n      const helper = new JwtHelperService();\n      const userInfo = this.tokenDecoder.getUserDetailsFromToken();\n      console.log(\"userInfo getShortName\",userInfo)\n      return userInfo?.short_name  ? userInfo?.short_name : '';\n    }\n    return '';\n  }\n\n  resetBusinessCycle() {\n    localStorage.removeItem('businessCycle');\n  }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { BehaviorSubject, map, Observable, retry, Subject } from 'rxjs';\nimport { Configurations } from '../../configurations';\nimport { TokenDecoderService } from './token-decoder.service';\nimport { AuthService } from './auth.service';\nimport { SubMenuOptions } from '../configurations/interface/subMenuOptions';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class QuickViewService {\n  public subscriptionDetails: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\n  public riskDetails$:any = new BehaviorSubject<any>(null);\n  public activeDueDateDetails$:any = new BehaviorSubject<any>(null);\n  public dueDateList$:any = new BehaviorSubject<any>(null);\n  public riskOrgSettings$:any = new BehaviorSubject<any>(null);\n  public actionEmitter$:any = new Subject<{eventType,payload}>()\n  public rawInherentAssessmentDetails$ = new BehaviorSubject<any>(null)\n  public inherentRiskDetailswithRC$ = new BehaviorSubject<any>([]);\n  public treatmentPlanData$:any = new BehaviorSubject<any>(null);\n  public inherentCompletionPayload$: any = new BehaviorSubject<any>(null);\n  public actionButtonLoader: any = new BehaviorSubject<boolean>(true);\n  public openResidualEdit$ = new Subject<boolean>();\n  public residualRiskDetails$:any = new BehaviorSubject<any>(null);\n  isEditTreatmentButton$ = new Subject<boolean>();\n  residualRiskDataLoadingState$ = new BehaviorSubject<'LOADING'|'LOADED'|'ERROR'>('LOADING');\n  riskDetailsLoadingState$ = new BehaviorSubject<'LOADING'|'LOADED'|'ERROR'>('LOADING');\n  public searchQuery = new BehaviorSubject<any>('');\n  public currentBusinessCycle = new Subject<any>();\n  public businessLoader = new BehaviorSubject<boolean>(false);\n  public dueDateLoader$ = new BehaviorSubject<boolean>(true);\n  public resetLocalFilter = new Subject<any>();\n  private isTimePeriodFilter = new BehaviorSubject<boolean>(true);\n  isTimePeriodVisible$ = this.isTimePeriodFilter.asObservable();\n  public userInfo$ :any = new BehaviorSubject<any>(null);\n\n  private headersMap = new Map<string, SubMenuOptions>();\n  public assessmentDetailsPayload: any = {};\n  env!: any;\n  userData:any ={}\n  isBeginAssessmentEnabled: boolean = true;\n  selectedTimeFilter = { type: '', start_date: '', end_date: '', selectedId: [] };\n  activeCycle!: any;\n  isRiskPermissionsLoaded=false;\n  ownerRiskDataExists = false;\n  ownerRiskCategoryDataExists = false;\n  riskPermissions:any = {\n    RRCVRC: false,\n    RRCMRC: false,\n    RRMR: false,\n    RRVDRR: false\n  }\n  public headerKey = '';\n\n  constructor(private http: HttpClient,private tokenDecoder: TokenDecoderService, private authorizer: AuthorizerService, @Optional() config?: Configurations, private auth?: AuthService) {\n    if (config) {\n      this.env = config.env;\n    }\n    this.getUserDetails();\n    if(auth.isKeyAdmin()){\n      for (const key in this.riskPermissions) {\n        this.riskPermissions[key] = true;\n      }\n      this.isRiskPermissionsLoaded=true;\n\n    }else{\n      this.auth.permissionsDetails.subscribe((res: any) => {\n      if (res?.roleActions?.length > 0) {\n        const index = res.roleActions.findIndex((module: any) => module.moduleName == 'risk')\n        res.roleActions[index].subModule.forEach((subModuleElement:any) => {\n          if(subModuleElement.isActive){\n            subModuleElement.permissions.forEach((permission:any) => {\n            if (this.riskPermissions.hasOwnProperty(permission.code)) {\n              this.riskPermissions[permission.code] = permission.enable ? true : false\n            }\n          });\n          }\n        });\n        if(res?.checkDataExists?.risk){\n          this.ownerRiskDataExists = true;\n        }\n        if(res?.checkDataExists?.riskCategory){\n          this.ownerRiskCategoryDataExists = true;\n        }\n\n        this.isRiskPermissionsLoaded=true;\n\n      }\n    })\n    }\n\n  }\n\n  getMemberId(): number {\n    try {\n\n        const helper = new JwtHelperService();\n        const tk: string | null = localStorage.getItem('currentUser');\n        if (tk) {\n          // const myRawToken = JSON.parse(tk).token;\n          // const tokenInfo = helper.decodeToken(myRawToken);\n          const userInfo = this.tokenDecoder.getUserDetailsFromToken();\n          return userInfo?.id ? userInfo.id : null;\n        }\n        return -1;\n    } catch (err) { }\n    return -1;\n  }\n\n  getDetails(riskId: string): any {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.get(this.env.apiEndpoint + 'risk?mode=risk/RiskDetailsById&RiskId=' + riskId, { headers: headers });\n  }\n\n  getDueDateList(riskId: number): any {\n    const businessCycle = this.getBusinessCycle();\n    const payload = { ...businessCycle, risk_id: riskId, time_filter_type: \"\" };\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/DueDateList', payload, { headers: headers });\n  }\n\n  getOrgRiskSettings(){\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.get(this.env.apiEndpoint + 'risk?mode=risk/GetRiskSettings', { headers: headers });\n  }\n\n  fetchInherentRiskDetails(payload:{dueDateId: string,risk_id:number}){\n    console.log('Number 2')\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    this.http.post(this.env.apiEndpoint + 'risk?mode=score/assessment',payload, { headers: headers }).pipe(\n      map(val => {\n        this.rawInherentAssessmentDetails$.next(val);\n        console.log('this is working 1111',val)\n        this.fetchInherentDataInRCSequence({\n          risk_id: payload?.risk_id,\n          dueDateId: payload?.dueDateId,\n          rcArr : Object.keys(val ?? {}).map(Number)\n        })\n        console.log(\"inherentData\",this.rawInherentAssessmentDetails$.value)\n      })).subscribe()\n  }\n\n  fetchInherentDataInRCSequence(payload:{risk_id:number,dueDateId:string,rcArr:number[]}){\n    console.log('this is working 2222')\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=score/assessmentRctree',payload, { headers: headers }).subscribe({\n      next:(val:any)=>{\n        this.inherentRiskDetailswithRC$.next(val);\n        console.log(\"RC Based Data\",val)\n      }\n    })\n  }\n\n  getBusinessCycle(){\n    let businessCycle = JSON.parse(localStorage.getItem(\"businessCycle\") ?? '{}');\n    let currentBusinessCycle = {\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    return currentBusinessCycle;\n  }\n\n  getProgramsListCount(req: any) {\n\n    let httpOptions:any = {};\n    if(req?.params){\n      httpOptions.params = req.params;\n    }\n    if(req?.headers){\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      httpOptions.headers = headers.append('payload-object',JSON.stringify(req?.headers))\n    }\n    return this.http.get<any[]>(this.env.apiEndpointWithoutV2 + 'program/overview-count', httpOptions).pipe(retry(2));\n  }\n\n  shortName(name: string): string {\n    const SPLIT_NAME = name.trim().split(' ');\n    let shortName = '';\n    if (SPLIT_NAME.length === 1) {\n      shortName = SPLIT_NAME[0].substr(0, 2).toUpperCase();\n    }\n    if (SPLIT_NAME.length > 1) {\n      shortName = SPLIT_NAME[0].charAt(0) + SPLIT_NAME[1].charAt(0);\n    }\n    return shortName;\n  }\n\n   getUserDetails() {\n     this.userInfo$.subscribe(\n      (res: any) => {\n        if (res && Object.keys(res)?.length > 0) {\n          this.userData = {\n            member_id: res.member_id,\n            member_name: res.member_name,\n            profile_pic: res.profile_pic,\n            short_name: this.shortName(res.member_name),\n          };\n        }\n      },\n      (error) => {\n        console.error(error);\n      }\n    );\n  }\n\n  getProgramsList(req: any) {\n\n    let httpOptions:any = {};\n    if(req?.params){\n      httpOptions.params = req.params;\n    }\n    if(req?.headers){\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      httpOptions.headers = headers.append('payload-object',JSON.stringify(req.headers))\n    }\n\n    if(req?.businessCycle){\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      httpOptions.headers = headers.append('x-business-cycle',JSON.stringify(req.businessCycle));\n    }\n    return this.http.get<any[]>(this.env.apiEndpointWithoutV2 + 'program/categoriesList?owner_list=1', httpOptions).pipe(retry(2),);\n  }\n\n  getSubCategoryList(payload: any) {\n    if(payload?.scopeType === 'not_completed'){ payload.scopeType = 'notCompleted' }\n    let headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    headers = headers.append('payload-object',JSON.stringify(payload?.businessCycle));\n    // headers = headers.append('x-business-cycle',JSON.stringify(payload?.businessCycle));\n    return this.http.get<any>(this.env.apiEndpointWithoutV2 + 'program/subCategories?isBusinessCycle=true&parentId=' + payload?.id + '&type='+ payload?.scopeType + (payload?.searchText ? '&q=' + encodeURI(payload?.searchText) : '') + (payload?.name ? '&sortBy=' + payload?.name : '') + (payload?.sortingCount ? '&sortValue=' + payload?.sortingCount : '') + ('&page=' + payload?.page ?? 1), {headers}).pipe(retry(1))\n  }\n\n  getControlsByCategoryId(req:any, payload?: any, filterPolicyData?: any){\n    // https://devapi.v-comply.com/category/editCategory\n    let httpOptions:any = {};\n    httpOptions.params = req;\n    let headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    // headers = headers.append('x-business-cycle',JSON.stringify(payload));\n    headers = headers.append('payload-object',JSON.stringify(payload));\n    httpOptions.headers = headers;\n    return this.http.get(this.env.apiEndpointWithoutV2 + 'program/responsibilityList' ,httpOptions).pipe(\n      map((items: any) => {\n        return {\n        items_from: items?.items_from,\n        items_to: items?.items_to,\n        total_pages: items?.total_pages,\n        total_items: items?.total_items,\n        data:items.data.map((item:any) => ({\n          item_name: item?.ReportName,\n          item_id: item?.ReportId,\n          control_id: item?.ControlId,\n          item_type: 'REPORT',\n          item_raw_name: item?.ReportName,\n          Approved_flag: 0,\n          Is_deleted: 0,\n          Is_inactive: 0,\n          Is_pending: 0,\n          contract_type: 0,\n          reportStatus:item?.reportStatus,\n          item_accept_flag : item?.AcceptFlag,\n          item_category_type: item?.ReportCategorysTypeArr ?? [],\n          type: 'TREATMENT',\n          item_obj_id: item?.EncryptedReportId,\n          item_performance: item?.ReportPerformance,\n          item_score_id: 0,\n          user_details: this.userData,\n          treatment_rating: {\n            likelihood: { rating: '', reason: '' },\n            impact: { rating: '', reason: '' },\n            velocity: { rating: '', reason: '' },\n            vulnerability: { rating: '', reason: '' },\n          },\n          effectiveness: { value: 0, name: '', color: '', description: '' },\n          employee_short_name: item?.employee_short_name,\n          employee_pic: item?.employee_pic,\n          member_short_name: item?.member_short_name,\n          member_pic: item?.member_pic,\n          is_key_compliance: item?.is_key_compliance,\n          AssignTo: item?.AssignTo,\n          AssignBy: item?.AssignBy,\n          isLinked: item?.isLinked,\n          programTypeArr: item?.programTypeArr\n\n        }))\n        }\n       }\n        // items.map((item) => ())\n      ));\n  }\n\n  getNotOnVComplyControls(params: any) {\n    let pageNo = params?.pageNo ?? 1;\n    let searchText = params?.searchText;\n    let sortValue = params?.sortValue;\n    let sortBy = params?.sortBy;\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.get(this.env.apiEndpoint + 'risk?mode=control/getAllControls&pageNo=' + pageNo +(searchText ? '&searchText=' + searchText : '') + ((sortValue && sortBy) ? '&sortValue=' + sortValue + '&sortBy=' + sortBy : ''),{ headers: headers }).pipe(\n      map((items: any) => {\n        return {\n          items_from: items?.recordsFrom ?? 1,\n          items_to: items?.recordsTo ?? 30,\n          total_items: items?.totalRecords,\n          total_pages: items?.totalPages,\n          data: items?.data?.map((item:any) => ({\n            item_name: item?.control_name,\n            item_id: item?.control_id,\n            control_id: item?.control_id,\n            item_type: 'CONTROLS_NOT_ON_VCOMPLY',\n            item_raw_name: '',\n            Approved_flag: 0,\n            Is_deleted: 0,\n            Is_inactive: 0,\n            Is_pending: 0,\n            contract_type: 0,\n            reportStatus: '',\n            item_accept_flag: 0,\n            item_category_type: '',\n            type: '',\n            item_obj_id: '',\n            item_performance: '',\n            item_score_id: 0,\n            user_details: this.userData,\n            treatment_rating: {\n              likelihood: { rating: '', reason: '' },\n              impact: { rating: '', reason: '' },\n              velocity: { rating: '', reason: '' },\n              vulnerability: { rating: '', reason: '' },\n            },\n            control_due_date: item?.control_due_date,\n            description: item?.description,\n            employee_short_name: item?.assignee_details?.short_name,\n            employee_pic: item?.assignee_details?.profile_pic,\n            member_short_name: item?.creator_details.short_name ? item?.creator_details.short_name : 'SN' ,\n            member_pic: item?.creator_details?.profile_pic,\n            AssignTo: item?.assignee_details?.member_name,\n            AssignBy: item?.creator_details?.member_name,\n            effectiveness: { value: 0, name: '', color: '', description: '' },\n            is_key_compliance: 0,\n            isLinked: 0,\n            programTypeArr: []\n          }))\n        }\n      })\n    )\n  }\n\n   /**\n   * If the control exists in the deletedControls array, return true, otherwise return false.\n   * @param {any[]} deletedControls - this is an array of objects that have been deleted from the\n   * table.\n   * @param {any} control - this is the control that is being checked to see if it exists in the\n   * deletedControls array.\n   */\n   isControlExist(deletedControls: any[], control: any) {\n    const objectIndex = deletedControls?.findIndex((responsibility: any) => responsibility?.item_id === control?.item_id);\n    if( objectIndex !== -1) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  getCountOfDifferentControls(payload: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/getAllControlsCount' ,payload, { headers: headers })\n  }\n\n  getTreatmentPlanData(PAYLOAD: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=score/treatmentPlan', PAYLOAD, { headers: headers });\n  }\n\n  deleteRisk(riskIds: number[]) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    const PAYLOAD = {\n      riskId: riskIds,\n    };\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/delete', PAYLOAD, { headers: headers });\n  }\n\n  //Assessment Service\n  saveAssessmentDetailsOnServer(payload: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint  + 'risk?mode=score/insert', payload, { headers: headers });\n  }\n\n  riskV2Post(url: string, payload: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint +'risk?mode=' +url, payload, {headers : headers})\n  }\n\n  acceptRecommendation(payload: any, id: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/acceptTreatmentRequired&risk_id=' + id, payload, { headers: headers }).pipe(retry(2));\n  }\n\n  fetchAssessmentDetails(payload: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=score/assessment', payload, { headers: headers });\n  }\n\n  fetchTreatmentDetails(riskId: number, version: string,dueDate:string) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    const PAYLOAD = {\n      risk_id: riskId,\n      risk_version: version,\n      dueDateId:dueDate\n    };\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/score/treatment', PAYLOAD, { headers: headers });\n  }\n\n  // Reassess the risk assessment APi\n  onRiskAssess(payload: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/ReassessRisk' ,payload, { headers: headers })\n  }\n\n  postRiskSettings(updateValue: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/SetRiskSettings', updateValue,{headers}).pipe(retry(2));\n  }\n\n\n  fetchResidaulRiskDetails(riskId: number, version: string,dueDate:string) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    const PAYLOAD = {\n      risk_id: riskId,\n      risk_version: version,\n      dueDateId:dueDate\n    };\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=score/treatment', PAYLOAD,{headers:headers});\n  }\n\n  setSearchKeyword(keyword: string) {\n    // if(emit){\n      this.searchQuery.next(keyword);\n    // }\n\n  }\n  getSearchKeyword(): Observable<any> {\n    return this.searchQuery.asObservable();\n  }\n\n  fetchDynamicQuarter(yearRange: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpointWithoutV2 + 'organization_post/?mode=GenerateDynamicQuarter', { business_cycle: yearRange ?? [] },{headers}).pipe(retry(2));\n  }\n\n  resetTimeFilter(reload = true) {\n    this.selectedTimeFilter = { type: '', start_date: '', end_date: '', selectedId: [] };\n    localStorage.removeItem('timefilter');\n    if (reload === true) {\n      this.currentBusinessCycle.next(this.activeCycle);\n    }\n  }\n\n\n    getBussinessCycleLoader() {\n      return this.businessLoader.asObservable();\n    }\n\n    changeTimeFilter(evt: any) {\n      console.log('Change in filter', evt);\n      this.selectedTimeFilter = evt;\n      localStorage.setItem('timefilter', JSON.stringify(this.selectedTimeFilter));\n      this.currentBusinessCycle.next(this.activeCycle);\n    }\n\n    decideTimePeriodVisibility() {\n\n      let bs = JSON.parse(localStorage.getItem('businessCycle') ?? '')\n      if (bs && bs.selectedCycle && bs.selectedCycle.business_cycle) {\n        if (typeof (bs.selectedCycle.business_cycle) === 'string' && bs.selectedCycle.business_cycle === 'Show Future Due Dates') {\n          this.isTimePeriodFilter.next(false);\n        } else {\n          this.isTimePeriodFilter.next(true);\n        }\n      } else {\n        this.isTimePeriodFilter.next(true);\n      }\n    }\n\n    changeBusinessCycle(cycle: any) {\n      console.log('loggedInMember', this.auth.getMemberId(), cycle);\n      const memberId = this.auth.getMemberId();\n      const selectedCycle = { userId: memberId, selectedCycle: cycle, setTimestamp: new Date().getTime() };\n      localStorage.setItem('businessCycle', JSON.stringify(selectedCycle));\n      this.activeCycle = cycle;\n      this.resetTimeFilter(false);\n      this.resetLocalFilter.next(true);\n      this.currentBusinessCycle.next(cycle);\n      this.decideTimePeriodVisibility();\n    }\n\n    changeResponseStrategy(url: string, payload: any) {\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      return this.http.post(this.env.apiEndpoint + url, payload, {headers: headers})\n    }\n\n    saveTreatmentData(PAYLOAD: any) {\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      return this.http.post(this.env.apiEndpoint + 'risk?mode=score/insertTreatmentScore', PAYLOAD,{headers});\n    }\n    createNotOnVcomplyControl(payload: any) {\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      return this.http.post(this.env.apiEndpoint + 'risk?mode=control/create', payload, {headers: headers});\n    }\n\n    getOrganisationUsers() {\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      return this.http.get(this.env.apiEndpointWithoutV2 + 'organization/?mode=selectAllUsers&type=all', {headers: headers});\n    }\n\n    createControlTreatmentPlan(PAYLOAD: any) {\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      return this.http.post(this.env.apiEndpoint + 'risk?mode=score/insertTreatmentPlanScore', PAYLOAD, {headers: headers});\n    }\n\n    getDiscussionComments(riskId: string, pid?: string) {\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      let concatStr = `&RiskId=${riskId}&type=comment`;\n      if (pid) {\n        concatStr = concatStr + `&pid=${pid}`;\n      }\n      return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/GetDiscussionById' + concatStr, {}, {headers: headers}).pipe(retry(3));\n    }\n\n    submitComment(payload: any, riskId: string) {\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      payload.member_id = this.getMemberId();\n      return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/CreateDiscussion&RiskId=' + riskId, payload, {headers: headers});\n    }\n\n    deleteComment(discussionId: any) {\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      const PAYLOAD = {\n        discussion_id: discussionId,\n      };\n      return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/DeleteComment', PAYLOAD, {headers: 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: string) {\n      const ORG_PATH = `o/${this.auth.getOrgObjectId()}/`;\n      console.log(\"ORG_PATH uploadFiles\",ORG_PATH)\n      return this.http.post(this.env.environment.fileUploadEndPoint + ORG_PATH + path + '/&ngsw-bypass=true', payload);\n    }\n\n    RCApplyToggle(paramValue: any) {\n      let toggleUpdateParam = \"\";\n      const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n      if(paramValue.hasOwnProperty('irRCToggleEnable')){\n        toggleUpdateParam += \"&irRCToggleEnable=\"+paramValue.irRCToggleEnable;\n      }\n      if(paramValue.hasOwnProperty('rrRCToggleEnable')){\n        toggleUpdateParam += \"&rrRCToggleEnable=\"+paramValue.rrRCToggleEnable;\n      }\n      return this.http.get(this.env.apiEndpoint + 'risk?mode=risk/RCApplyToggle&dueDateId='+paramValue.dueDateId + toggleUpdateParam, {headers: headers}).pipe(retry(2));\n    }\n\n\n\n\n    resetState(){\n      this.subscriptionDetails.next([]);\n      this.riskDetails$.next(null);\n      this.activeDueDateDetails$.next(null);\n      this.dueDateList$.next(null);\n      this.riskOrgSettings$.next(null);\n      this.rawInherentAssessmentDetails$.next(null);\n      this.inherentRiskDetailswithRC$.next([]);\n      this.treatmentPlanData$.next(null);\n      this.inherentCompletionPayload$.next(null);\n      this.actionButtonLoader.next(true);\n      this.dueDateLoader$.next(true);\n      this.residualRiskDetails$.next(null);\n      this.residualRiskDataLoadingState$.next('LOADING');\n      this.riskDetailsLoadingState$.next('LOADING');\n      this.searchQuery.next('');\n      this.businessLoader.next(false);\n      this.isTimePeriodFilter.next(true);\n      this.userInfo$.next(null);\n    }\n}\n","import {\n  Directive,\n  Input,\n  ElementRef,\n  HostListener,\n  Renderer2,\n  OnInit,\n  AfterViewInit,\n  ViewChild,\n} from '@angular/core';\n\n@Directive({\n  selector: '[appTooltip]',\n})\nexport class ToolTipDirective implements OnInit {\n  @Input('appTooltip') tooltipTitle!: string;\n  @Input() placement!: string;\n  @Input() type: any;\n  @Input() tooltipMandatory!: boolean;\n  @Input() showTooltip = true;\n  @Input() animate!: boolean;\n  tooltip!: HTMLElement;\n  offset = 8;\n\n  constructor(private el: ElementRef, private renderer: Renderer2) {}\n  ngOnInit() {}\n  @HostListener('mouseenter') onMouseEnter() {\n    this.hide();\n    this.show();\n  }\n  @HostListener('mouseover') onMouseOver() {\n    this.hide();\n    this.show();\n  }\n\n  @HostListener('mouseleave') onMouseLeave() {\n    this.hide();\n  }\n  @HostListener('mouseout') onMouseOut() {\n    this.hide();\n  }\n  @HostListener('click') onClick() {\n    this.hide();\n  }\n  show() {\n    if (!this.showTooltip) {\n      return;\n    }\n    this.create();\n    const element = this.el.nativeElement;\n    if (this.tooltipMandatory === true) {\n      this.setPosition();\n      this.renderer.addClass(this.tooltip, 'riskQv-tooltip-show');\n    } else {\n      if (\n        element.scrollWidth * element.scrollHeight >\n        element.offsetWidth * element.offsetHeight\n      ) {\n        this.setPosition();\n        this.renderer.addClass(this.tooltip, 'riskQv-tooltip-show');\n      }\n    }\n  }\n\n  hide() {\n    if (document.body.contains(this.tooltip)) {\n      if (this.renderer) {\n        this.renderer.removeChild(\n          document.body,\n          document.getElementById('tooltip')\n        );\n      }\n    }\n  }\n\n  create() {\n    this.tooltip = this.renderer.createElement('span');\n    this.tooltip.setAttribute('id', 'tooltip');\n    this.tooltip.innerHTML = this.tooltipTitle;\n    this.renderer.appendChild(document.body, this.tooltip);\n    this.renderer.addClass(this.tooltip, 'riskQv-tooltip');\n    this.renderer.addClass(this.tooltip, `riskQv-tooltip-${this.placement}`);\n    this.renderer.addClass(this.tooltip, `${this.type}`);\n    if (this.animate) {\n      this.renderer.addClass(this.tooltip, `animate-${this.placement}`);\n    }\n  }\n\n  setPosition() {\n    const hostPos = this.el.nativeElement.getBoundingClientRect();\n    const tooltipPos = this.tooltip.getBoundingClientRect();\n    const scrollPos =\n      window.pageYOffset ||\n      document.documentElement.scrollTop ||\n      document.body.scrollTop ||\n      0;\n    const w = window.innerWidth;\n    const h = window.innerHeight;\n    let top;\n    let left;\n    if (this.placement === 'top') {\n      top = hostPos.top - tooltipPos.height - this.offset;\n      left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n    }\n\n    if (this.placement === 'bottom') {\n      if (hostPos.top + tooltipPos.height > h) {\n        top = hostPos.top - tooltipPos.height;\n        left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n        this.renderer.removeClass(this.tooltip, `riskQv-tooltip-bottom`);\n        this.renderer.addClass(this.tooltip, `riskQv-tooltip-top`);\n      } else {\n        top = hostPos.bottom + this.offset;\n        left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n      }\n    }\n\n    if (this.placement === 'left') {\n      top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n      left = hostPos.left - tooltipPos.width - this.offset;\n    }\n\n    if (this.placement === 'right') {\n      top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n      left = hostPos.right + this.offset;\n    }\n    if (this.placement === 'bottom-right') {\n      top = hostPos.bottom + this.offset;\n      left = hostPos.left - (tooltipPos.width - 28);\n    }\n    if (this.placement === 'bottom-left') {\n      if (hostPos.top + tooltipPos.height > h - 30) {\n        top = hostPos.top - tooltipPos.height;\n        console.log('bottom left', hostPos.top - tooltipPos.height);\n        left = hostPos.left;\n        this.renderer.removeClass(this.tooltip, `riskQv-tooltip-bottom-left`);\n        this.renderer.addClass(this.tooltip, `riskQv-tooltip-top-left`);\n      } else {\n        top = hostPos.bottom + this.offset;\n        left = hostPos.left;\n      }\n    }\n    this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\n    this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-radio',\n  templateUrl: './cs-radio.component.html',\n  styleUrls: ['./cs-radio.component.less'],\n})\nexport class CsRadioComponent implements OnInit {\n  @Input() disabled!: boolean;\n  @Input() readonly!: boolean;\n  @Input() name!: string;\n  @Input() checked!: boolean;\n  @Input() value: any;\n  @Output() checkedEvent = new EventEmitter();\n  constructor() {}\n\n  ngOnInit(): void {}\n  changeState(evt: any) {\n    this.checkedEvent.emit(evt);\n  }\n}\n","<label class=\"radio-item\" [class.readonly]=\"readonly\">\n  <input type=\"radio\" [disabled]=\"disabled\" [name]=\"name\" [value]=\"value\" [checked]=\"checked\" (change)=\"changeState($event)\" />\n  <span class=\"radio\">\n    <span class=\"inner\"></span>\n  </span>\n  <svg class=\"radiomark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n    <circle class=\"radiomark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n    <circle class=\"radiomark__check\" cx=\"26\" cy=\"26\" r=\"5\" fill=\"none\" />\n  </svg>\n  <span class=\"value\"><ng-content></ng-content></span>\n</label>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-switch',\n  templateUrl: './cs-switch.component.html',\n  styleUrls: ['./cs-switch.component.less'],\n})\nexport class CsSwitchComponent implements OnInit {\n  @Input() disabled!: boolean;\n  @Input() ngValue: any;\n  @Input() value: any;\n  @Output() ngValueChange = new EventEmitter<any>();\n  @Input() tooltipMessage: any;\n  @Input() position: any;\n  constructor() {}\n\n  ngOnInit(): void {\n    // console.log(this.value);\n  }\n  valueChanged() {\n    this.ngValueChange.emit(this.ngValue);\n  }\n}\n","<label class=\"cs-switch\" [class.top]=\"position == 'top'\">\n  <!-- [class.large]=\"large\" -->\n  <span class=\"value\">\n    <span [innerHTML]=\"value\" *ngIf=\"value != undefined\"></span>\n    <!-- <span class=\"notification\" *ngIf=\"!tooltipMessage\" [appTooltip]=\"tooltipMessage\" placement=\"bottom-right\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n        <i class=\"vc-icons\">&#xe9f3;</i>\n      </span> -->\n  </span>\n  <!-- [class.last]=\"last\" -->\n  <span class=\"switch\" *ngIf=\"tooltipMessage === '' || tooltipMessage === undefined\">\n    <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\n    <span class=\"switch-box\">\n      <span class=\"switch-ball\"></span>\n    </span>\n  </span>\n  <span\n    class=\"switch\"\n    *ngIf=\"tooltipMessage !== '' && tooltipMessage !== undefined\"\n    [appTooltip]=\"tooltipMessage\"\n    placement=\"bottom-right\"\n    delay=\"0\"\n    type=\"black\"\n    [tooltipMandatory]=\"true\"\n  >\n    <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\n    <span class=\"switch-box\">\n      <span class=\"switch-ball\"></span>\n    </span>\n  </span>\n</label>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PopoverService {\n  positionX!: number;\n  positionY!: number;\n  popoverHeight: any;\n  popoverWidth: any;\n  elementPosition: any;\n  elementDirection: any;\n  constructor() {\n    console.log(this.popoverHeight);\n  }\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild, EventEmitter, Output } from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n@Component({\n  selector: 'app-popover',\n  templateUrl: './popover.component.html',\n  styleUrls: ['./popover.component.less'],\n})\nexport class PopoverComponent implements OnInit {\n  @Input() dontCloseonClick!: boolean;\n  popoverContainer = false;\n  @ViewChild('popoverRatio') popoverRatio!: ElementRef;\n  @ViewChild('popoverContent') popoverContent!: ElementRef;\n  @Output() closedOnOverlay = new EventEmitter();\n  constructor(public popoverService: PopoverService) {}\n  showPopover = false;\n  leftValue: any;\n  topValue: any;\n  popoverHeight: any;\n  popoverWidth: any;\n  positionX!: number;\n  positionY!: number;\n  ngOnInit(): void {}\n  popover() {\n    this.popoverContainer = false;\n    this.popoverContainer = true;\n    setTimeout(() => {\n      this.getPosition();\n      this.showPopover = true;\n    }, 10);\n    return false;\n  }\n  popoverEvent() {\n    this.popoverContainer = false;\n    this.popoverContainer = true;\n    setTimeout(() => {\n      // this.getPosition();\n      this.positionX = this.popoverService.positionX;\n      this.positionY = this.popoverService.positionY;\n      this.showPopover = true;\n    }, 10);\n    return false;\n  }\n  closePopover(top?: string) {\n    if (!this.dontCloseonClick || top === 'top') {\n      this.popoverContainer = false;\n      this.showPopover = false;\n    }\n  }\n\n  close(){\n    this.popoverContainer = false;\n    this.showPopover = false;\n  }\n  clickedPopover() {\n    this.getPosition();\n  }\n  getPosition() {\n    // setTimeout(() => {\n    const elementPositionn = this.popoverService.elementPosition;\n    this.popoverHeight = this.popoverRatio?.nativeElement.offsetHeight;\n    this.popoverWidth = this.popoverRatio?.nativeElement.offsetWidth;\n    if (this.popoverService.elementDirection === 'left') {\n      this.leftValue = elementPositionn.left;\n      if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      }\n    }\n    if (this.popoverService.elementDirection === 'right') {\n      this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverWidth;\n      if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      }\n    }\n    if (this.popoverService.elementDirection === 'top') {\n      this.leftValue = elementPositionn.left + elementPositionn.width;\n      if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      }\n    }\n    if (this.popoverService.elementDirection === 'bottom') {\n      this.leftValue = elementPositionn.left + elementPositionn.width;\n      if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      }\n    }\n    if (this.popoverService.elementDirection === 'self-position') {\n      this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\n      this.topValue = elementPositionn.top - 15;\n    }\n    if (this.popoverService.elementDirection === 'top-center') {\n      this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\n      // this.topValue = elementPositionn.top - this.popoverHeight;\n      if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight) {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      } else {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      }\n    }\n    if (this.popoverService.elementDirection === 'center') {\n      this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\n      this.topValue = elementPositionn.top + elementPositionn.height;\n    }\n    this.positionX = this.leftValue;\n    this.positionY = this.topValue;\n    // }, 10);\n  }\n}\n","<div class=\"risk-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\n  <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\n    <ng-content></ng-content>\n  </div>\n</div>\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n@Directive({\n  selector: '[appPopover]',\n})\nexport class PopoverDirective {\n  dynamicComponent: any;\n  @Input() refrence: any;\n  @Input() placement!: string;\n  leftValue: any;\n  topValue: any;\n  constructor(private elRef: ElementRef, private popoverService: PopoverService) {}\n  @HostListener('click') click() {\n    this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\n    this.popoverService.elementDirection = this.placement;\n    // this.getPosition();\n  }\n\n  getPosition() {\n    setTimeout(() => {\n      // this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\n      const elementPositionn = this.elRef.nativeElement.getBoundingClientRect();\n      if (this.placement === 'left') {\n        this.leftValue = elementPositionn.left;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top + elementPositionn.height;\n        }\n      }\n      if (this.placement === 'right') {\n        this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverService.popoverWidth;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top + elementPositionn.height;\n        }\n      }\n      if (this.placement === 'top') {\n        this.leftValue = elementPositionn.left + elementPositionn.width;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        }\n      }\n      if (this.placement === 'bottom') {\n        this.leftValue = elementPositionn.left + elementPositionn.width;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top + elementPositionn.height;\n        }\n      }\n      if (this.placement === 'self-position') {\n        this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\n        this.topValue = elementPositionn.top - 15;\n      }\n      if (this.placement === 'top-center') {\n        this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\n        this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n      }\n      this.popoverService.positionX = this.leftValue;\n      this.popoverService.positionY = this.topValue;\n    }, 10);\n  }\n}\n","import { Component, OnInit, HostListener, Input } from '@angular/core';\nimport { DialogConfig } from '../../../ui-kit/dialog/dialog-config';\nimport { DialogRef } from '../../../ui-kit/dialog/dialog-ref';\nimport { QuickViewService } from '../../services/quick-view.service';\n\n\n@Component({\n  selector: 'lib-rating-guide',\n  templateUrl: './rating-guide.component.html',\n  styleUrls: ['./rating-guide.component.less'],\n  inputs:['manageRiskDetails']\n})\nexport class RatingGuideComponent implements OnInit {\n  public scoringCriteriaDetails!: any;\n  public scoringCriteriaCondition!: any;\n  keysCheck = ['velocity', 'vulnerability'];\n  manageRiskDetails: any;\n\n  constructor(\n    private dialog: DialogRef,\n    public dialogConfig: DialogConfig,\n    public quickView: QuickViewService,\n  ) { }\n\n  ngOnInit(): void {\n    // this.getRiskDetails();\n    if(this.manageRiskDetails){\n      this.scoringCriteriaDetails = this.manageRiskDetails?.org_settings?.scoring_criteria;\n      this.scoringCriteriaCondition = this.manageRiskDetails?.riskDetails?.weightage_details;\n    }else{\n      this.scoringCriteriaDetails = this.dialogConfig.data.scoringCriteria;\n      this.scoringCriteriaCondition = this.dialogConfig.data.weightageDetails;\n    }\n    if(this.scoringCriteriaDetails?._id){\n       delete this.scoringCriteriaDetails._id;\n    }\n    this.removeDisabledKeys();\n  }\n\n \n  close() {\n    this.dialog.close(false);\n  }\n\n  removeDisabledKeys(){\n    Object.keys(this.scoringCriteriaCondition).forEach((factorKey) => {\n      if(factorKey === 'velocity'){\n        if(!this.scoringCriteriaCondition[factorKey]?.enabled){\n          delete (this.scoringCriteriaDetails?.velocity);\n        }\n      }else if(factorKey === 'vulnerability'){\n        if(!this.scoringCriteriaCondition[factorKey]?.enabled){\n          delete (this.scoringCriteriaDetails?.vulnerability);\n        }\n      }\n    });\n  }\n\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n    this.close();\n  }\n\n}\n","<div class=\"rating-guide\">\n    <div class=\"rating-guide-heading vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-mb-5\">\n        <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">Risk Factor Rating Guide</div>\n        <button (click)=\"close()\" class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'[Esc] to close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i></button>\n    </div>\n    <div class=\"rating-guide-body vx-pl-4 vx-pr-4\">\n        <div class=\"rating-guide-item\" *ngFor=\"let scoringCriteria of scoringCriteriaDetails | keyvalue let i = index\">\n            <div class=\"rating-guide-item-label vx-fs-10 vx-fw-600 vx-label-txt vx-tt-uppercase vx-pl-3 vx-pr-3 vx-lh-6\" [innerHTML]=\"scoringCriteria?.key\"></div>\n            <div class=\"rating-guide-table\">\n                <div class=\"guide-table-header\">\n                    <div class=\"guide-table-row vx-pl-1 vx-pr-1\">\n                        <div class=\"guide-table-column vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-2 vx-pr-2 vx-d-flex vx-align-center\">RISK RATING</div>\n                        <div *ngFor=\"let factor of scoringCriteria?.value?.keys let j = index\" class=\"guide-table-column vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\" [ngStyle]=\"{color: factor?.color}\"><span class=\"value\" [appTooltip]=\"'IMPROBABLE'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [innerHTML]=\"factor?.value\"></span> <span>{{j + 1}}</span></div>\n                    </div>\n                </div>\n                <div class=\"guide-table-body\">\n                    <div class=\"guide-table-row vx-pl-1 vx-pr-1\" *ngFor=\"let factorDetails of scoringCriteria?.value?.values\">\n                        <div class=\"guide-table-column vx-p-2 vx-pl-1 vx-pr-1 vx-d-flex vx-align-center\" *ngFor=\"let detail of factorDetails\">\n                            <div *ngIf=\"detail\" class=\"guide-area vx-fs-12 vx-label-txt vx-p-2 vx-pt-1 vx-pb-1\" appPopover placement=\"top-center\" (click)=\"guidePopupOne.popover()\" [innerHTML]=\"detail\"></div>\n                            <app-popover #guidePopupOne>\n                                <div class=\"guide-details vx-fs-12 vx-label-txt vx-p-2 vx-text-left\" [innerHTML]=\"detail\"></div>\n                            </app-popover>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'vc-bottom-confirmation-popup',\n  templateUrl: './bottom-confirmation-popup.component.html',\n  styleUrls: ['./bottom-confirmation-popup.component.less']\n})\nexport class BottomConfirmationPopupComponent implements OnInit {\n\n@Input() message :string = '';\n@Input() iconDetails = {code:'&#xe930;', color: 'red'} // color\" 'red' ,'blue'\n@Input() radioButton: Array<{id: string; name: string;}> = [] // id : unique id for differentiation , name: radio button label text\n@Output() action = new EventEmitter<'YES'|'NO'>();\n@Output() actionType: any = new EventEmitter<'move'|'complete'>();\n@Input() showInherentConfirmation: boolean = false;\ncheckedItem: string = 'move';\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  onSelectedValue(event: any) {\n    this.actionType.emit(event)\n  }\n\n}\n","<div class=\"overlay\"></div>\n<div class=\"bottom-form-dialog-confirmation\">\n    <div class=\"top vx-p-5\">\n        <div class=\"vx-d-flex vx-align-center vx-justify-start\">\n            <span class=\"icon-block vx-d-flex vx-align-center vx-justify-center vx-mr-4\">\n                <i class=\"icons vx-fs-12 vx-txt-{{iconDetails?.color}}\" [class.alert]=\"showInherentConfirmation\" [innerHTML]=\"iconDetails?.code\"></i>\n            </span>\n            <span class=\"text vx-fs-14 vx-fw-300 vx-txt-white\" [innerHTML]=\"message\"></span>\n        </div>\n\n        <div *ngIf=\"radioButton?.length\" class=\"move-option vx-mt-5\">\n            <ul class=\"vx-p-0 vx-m-0\">\n                <li *ngFor=\"let eachRadio of radioButton; let i = index;\">\n                  <app-cs-radio [checked]=\"eachRadio.id === 'move'\" (checkedEvent)=\"onSelectedValue(eachRadio.id)\">\n                    <span class=\"vx-fs-11 vx-fw-500 vx-lable-txt vx-tt-uppercase vx-lh-4\" name=\"radioGroup\">{{eachRadio?.name}}</span>\n                  </app-cs-radio>\n                </li>\n            </ul>\n        </div>\n\n    </div>\n    <div class=\"bottom vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-pr-5\">\n        <div class=\"message vx-fs-14 vx-fw-500 vx-lh-5 vx-txt-white\">Are you sure you would like to proceed?</div>\n        <div class=\"action vx-d-flex vx-align-center\">\n            <button type=\"button\" class=\"outline vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-m-0 vx-p-0 vx-txt-white\" (click)=\"action.emit('NO')\">NO</button>\n            <button type=\"button\" class=\"fill vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-m-0 vx-p-0 vx-txt-blue vx-ml-1\" (click)=\"action.emit('YES')\">Yes</button>\n        </div>\n    </div>\n</div>\n","import { KeyValue } from '@angular/common';\nimport { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport { EditorConfig } from '@vcomply/editor';\nimport { RISK_QUICKVIEW_PROPERTIES } from '../../configurations';\nimport { SubSink } from '../../subsink.class';\nimport { DialogConfig } from '../../ui-kit/dialog/dialog-config';\nimport { DialogRef } from '../../ui-kit/dialog/dialog-ref';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { QuickViewService } from '../services/quick-view.service';\n\n// import { SnackBarService } from 'src/app/ui-kit/snack-bar/snack-bar.service';\n// import { RiskWorkroomService } from '../services/risk-workroom.service';\n\n@Component({\n  selector: 'app-inherent-risk-assessment-dialog',\n  templateUrl: './inherent-risk-assessment-dialog.component.html',\n  styleUrls: ['./inherent-risk-assessment-dialog.component.less'],\n})\nexport class InherentRiskAssessmentDialogComponent\n  implements OnInit, OnDestroy\n{\n  animation!: boolean;\n  hideControls: number = 0;\n  hideGuide = false;\n  selectedRcIndex: number = 0;\n  riskAssessmentData: any;\n  assessmentEditorIndex: number = 0;\n  PREVIOUS_APPLY_SAME_VALUE: boolean = false; // This indicates the initial value of toggle which is only updated on ngOnInit. Value should not be changed later\n  isApplySame: boolean = false;\n  lastSelectedIndex: number = -1;\n  // Automation variable\n  errorPresent!: boolean;\n  loader = false;\n  automationEnabled: boolean = false;\n  riskProperties = RISK_QUICKVIEW_PROPERTIES;\n  private tempAutomationPayload!: any;\n  public responseStrategyActive = false;\n  confirmationMessage: string = '';\n  private respStartegyMessage: any = {\n    2: RISK_QUICKVIEW_PROPERTIES.riskAssessment.acceptedWithAutomation,\n    3: RISK_QUICKVIEW_PROPERTIES.riskAssessment.transferredWithAutomation,\n    4: RISK_QUICKVIEW_PROPERTIES.riskAssessment.mitigatedWithAutomation,\n    5: RISK_QUICKVIEW_PROPERTIES.riskAssessment.avoidedWithAutomation,\n  };\n  public automationMessage = '';\n  onConfirmationPopup: boolean = false;\n  automationRadio: Array<any> = [];\n  automationType: string = 'move';\n  showInherentConfirmation: boolean = false;\n  inherentMessage =\n    RISK_QUICKVIEW_PROPERTIES.riskAssessment.inherentConfirmationMessage;\n  subscriptions: SubSink = new SubSink();\n\n  constructor(\n    private dialog: DialogRef,\n    public dialogConfig: DialogConfig,\n    // private riskAssessmentService: RiskWorkroomService,\n    private snackBarService: SnackBarService,\n    private quickView: QuickViewService\n  ) {\n    // copying value by call by value method\n    this.riskAssessmentData = Object.assign({}, dialogConfig?.data?.payload);\n    this.InitializeValues();\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 3000);\n    this.isApplySame =\n      this.dialogConfig?.data?.dueDateData?.rcToggle?.irRCToggleEnable == 1\n        ? true\n        : false;\n    this.PREVIOUS_APPLY_SAME_VALUE = this.isApplySame;\n  }\n\n  closeForm(type?: any) {\n    if (this.PREVIOUS_APPLY_SAME_VALUE != this.isApplySame) {\n      this.dialog.close({ refreshPage: true });\n    } else {\n      this.dialog.close(type);\n    }\n  }\n\n  description: EditorConfig = {\n    mode: 'prime',\n    placeholder: 'Add Comments',\n  };\n\n  showControls(index: number): void {\n    this.lastSelectedIndex = index;\n    this.hideControls = index === this.hideControls ? -1 : index;\n    this.updateSelectedDetails(this.hideControls);\n  }\n\n  showGuide() {\n    this.hideGuide = true;\n  }\n\n  closeGuide() {\n    this.hideGuide = false;\n  }\n\n  InitializeValues() {\n    this.selectedRcIndex = this.riskAssessmentData.selectedRcIndex;\n    if (this.selectedRcIndex > -1) {\n      this.lastSelectedIndex = this.selectedRcIndex;\n      this.hideControls = this.selectedRcIndex;\n      if (\n        !this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n          ?.assessmentDetails?.length\n      ) {\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails = [{}];\n      }\n      if (\n        this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n          .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex] &&\n        Object.keys(\n          this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n            .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n        ).length <= 1\n      ) {\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].rating = {\n          likelihood: 0,\n          impact: 0,\n          velocity: 0,\n          vulnerability: 0,\n        };\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].score = 0;\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].rating_value = {\n          likelihood: '',\n          impact: '',\n          velocity: '',\n          vulnerability: '',\n        };\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].calculation_value = {\n          likelihood: 0,\n          impact: 0,\n          velocity: 0,\n          vulnerability: 0,\n        };\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].rating_reason = {\n          likelihood: '',\n          impact: '',\n          velocity: '',\n          vulnerability: '',\n        };\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].rating_color = {\n          likelihood: '',\n          impact: '',\n          velocity: '',\n          vulnerability: '',\n        };\n      }\n      this.riskAssessmentData = Object.assign({}, this.riskAssessmentData);\n    }\n  }\n\n  /**\n   * It takes in 5 parameters, and updates the score, scoreName, scoreColor, and calculation_value\n   * properties of the riskAssessmentData object.\n   * @param {number} scoringCriteriaValue - number, scoringCriteriaKey: string, scoreValue: string,\n   * weightageValue: number, scoreColor: string\n   * @param {string} scoringCriteriaKey - string\n   * @param {string} scoreValue - string\n   * @param {number} weightageValue - number = 0;\n   * @param {string} scoreColor - string = '#ffffff';\n   */\n  updateRating(\n    scoringCriteriaValue: number,\n    scoringCriteriaKey: string,\n    scoreValue: string,\n    weightageValue: number,\n    scoreColor: string\n  ) {\n    this.assessmentEditorIndex = scoringCriteriaValue - 1;\n    if (\n      this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n        .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n        ?.score &&\n      this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n        .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n        .score > 0\n    ) {\n      if (\n        !this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n          .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n          .calculation_value\n      ) {\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].calculation_value = {};\n      }\n      if (\n        this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n          .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n          .calculation_value[scoringCriteriaKey] > 0\n      ) {\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].score = parseFloat(\n          (\n            this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n              .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n              .score /\n            this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n              .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n              .calculation_value[scoringCriteriaKey]\n          ).toFixed(2)\n        );\n      }\n    } else {\n      this.riskAssessmentData.inherentDetails[\n        this.selectedRcIndex\n      ].assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex][\n        'score'\n      ] = 1;\n    }\n    this.riskAssessmentData.inherentDetails[\n      this.selectedRcIndex\n    ].assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex].rating[\n      scoringCriteriaKey\n    ] = scoringCriteriaValue;\n    this.riskAssessmentData.inherentDetails[\n      this.selectedRcIndex\n    ].assessmentDetails[\n      this.riskAssessmentData.assessmentDetailsIndex\n    ].rating_value[scoringCriteriaKey] = scoreValue;\n    this.riskAssessmentData.inherentDetails[\n      this.selectedRcIndex\n    ].assessmentDetails[\n      this.riskAssessmentData.assessmentDetailsIndex\n    ].rating_color[scoringCriteriaKey] = scoreColor;\n    this.riskAssessmentData.inherentDetails[\n      this.selectedRcIndex\n    ].assessmentDetails[\n      this.riskAssessmentData.assessmentDetailsIndex\n    ].calculation_value[scoringCriteriaKey] =\n      (scoringCriteriaValue * weightageValue) / 100;\n    this.riskAssessmentData.inherentDetails[\n      this.selectedRcIndex\n    ].assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex].score =\n      parseFloat(\n        (\n          this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n            .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n            .score *\n          this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n            .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n            .calculation_value[scoringCriteriaKey]\n        ).toFixed(2)\n      );\n    for (const SEGMENT of this.riskAssessmentData.segmentDetails) {\n      if (\n        this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n          .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n          .score > SEGMENT.start &&\n        this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n          .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex]\n          .score <= SEGMENT.end\n      ) {\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].scoreName = SEGMENT.segment_name;\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].scoreColor = SEGMENT.segment_color;\n        break;\n      } else {\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].scoreName = '';\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].scoreColor = '';\n      }\n    }\n    this.calculateTotalScore();\n    if (\n      this.riskAssessmentData.inherentDetails[this.selectedRcIndex]\n        .assessmentDetails[this.riskAssessmentData.assessmentDetailsIndex].error\n    ) {\n      const ERR_INDEX = this.riskAssessmentData.inherentDetails[\n        this.selectedRcIndex\n      ].assessmentDetails[\n        this.riskAssessmentData.assessmentDetailsIndex\n      ].error.findIndex((val: string) => val === scoringCriteriaKey);\n      if (ERR_INDEX > -1) {\n        this.riskAssessmentData.inherentDetails[\n          this.selectedRcIndex\n        ].assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].error.splice(ERR_INDEX, 1);\n        this.checkForRcLevelError();\n      }\n    }\n    this.applySameRating(this.isApplySame);\n  }\n\n  /**\n   * Calculates the total score for a risk for a particular user\n   */\n  calculateTotalScore() {\n    this.riskAssessmentData.total_score = 0;\n    this.riskAssessmentData.inherentDetails.forEach((rcDetails: any) => {\n      if (\n        rcDetails.assessmentDetails.length > 0 &&\n        rcDetails.assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].score\n      ) {\n        this.riskAssessmentData.total_score =\n          parseFloat(this.riskAssessmentData.total_score) +\n          rcDetails.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].score;\n      }\n    });\n    this.riskAssessmentData.total_score = parseFloat(\n      (\n        this.riskAssessmentData.total_score /\n        this.riskAssessmentData.inherentDetails.length\n      ).toFixed(2)\n    );\n    for (const SEGMENT of this.riskAssessmentData.segmentDetails) {\n      if (\n        this.riskAssessmentData.total_score > SEGMENT.start &&\n        this.riskAssessmentData.total_score <= SEGMENT.end\n      ) {\n        this.riskAssessmentData.total_score_name = SEGMENT.segment_name;\n        this.riskAssessmentData.total_score_color = SEGMENT.segment_color;\n        break;\n      }\n    }\n    if (this.errorPresent) this.validateScore();\n  }\n\n  /**\n   * Validates for error for all risk factors on complete RC\n   */\n  checkForRcLevelError() {\n    let errorPresent = false;\n    for (const INHERENT of this.riskAssessmentData.inherentDetails[\n      this.selectedRcIndex\n    ].assessmentDetails) {\n      if (INHERENT.error.length > 0) {\n        errorPresent = true;\n        break;\n      }\n    }\n    if (!errorPresent) {\n      this.riskAssessmentData.inherentDetails[this.selectedRcIndex].error =\n        false;\n    }\n    this.checkForOverallError();\n  }\n\n  /**\n   * Checks if error is present in any rc ratings\n   */\n  checkForOverallError() {\n    let error = false;\n    for (const INHERENT of this.riskAssessmentData.inherentDetails) {\n      if (INHERENT.error) {\n        error = true;\n        break;\n      }\n    }\n\n    if (!error) {\n      // this.errorPresentUpdate.emit();\n    }\n  }\n\n  /**\n   * Keeps the order of key value pairs as per the response from server side\n   * @param a\n   * @param b\n   * @returns\n   */\n  originalOrder = (\n    a: KeyValue<string, any[]>,\n    b: KeyValue<string, any[]>\n  ): number => {\n    return 0;\n  };\n\n  /**\n   * Can be removed\n   * @param reason Explanation for each score criteria selected\n   * @param scoreCriteria Risk factor for which explanation is modified\n   */\n  updateReason(reason: string, scoreCriteria: string) {\n    this.riskAssessmentData.inherentDetails[\n      this.selectedRcIndex\n    ].assessmentDetails[\n      this.riskAssessmentData.assessmentDetailsIndex\n    ].rating_reason[scoreCriteria] = reason;\n  }\n\n  /**\n   * Initialises the structure and values for the selected RC\n   * @param rcIndex Index of rc for which scores need to be selected\n   */\n  updateSelectedDetails(rcIndex: number) {\n    this.riskAssessmentData.selectedRcIndex = rcIndex;\n    this.selectedRcIndex = rcIndex;\n    if (this.selectedRcIndex > -1) {\n      this.InitializeValues();\n    }\n  }\n\n  /**\n   * It takes an event, and if the event is true, it sets the assessmentDetails of each element in the\n   * inherentDetails array to the assessmentDetails of the element at the selectedRcIndex. If the event\n   * is false, it sets the assessmentDetails of each element in the inherentDetails array to an empty\n   * array, unless the index of the element is the same as the selectedRcIndex.\n   * @param {any} event - any - this is the checkbox value\n   */\n  applySameRating(event: any) {\n    // this.setAllRCSameValue()\n    this.isApplySame = event;\n    const selectedScore =\n      this.riskAssessmentData.inherentDetails[this.lastSelectedIndex]\n        .assessmentDetails;\n    this.riskAssessmentData.inherentDetails.forEach(\n      (ele: any, index: number) => {\n        if (this.isApplySame)\n          ele.assessmentDetails = JSON.parse(JSON.stringify(selectedScore));\n      }\n    );\n    this.calculateTotalScore();\n  }\n\n  /**\n   * Checks if automation rules are applied or not\n   */\n  checkForAutomation() {\n    this.responseStrategyActive = false;\n    this.automationEnabled = false;\n    if (\n      this.riskAssessmentData.manageRiskDetails.riskDetails\n        .ifAssessmentDoneByLoggedInMember > 0\n    ) {\n      if (\n        this.riskAssessmentData.manageRiskDetails.org_settings\n          .risk_automation_enable === 1 &&\n        this.riskAssessmentData.manageRiskDetails.riskDetails.workshop_id === ''\n      ) {\n        for (const AUTOMATION of this.riskAssessmentData.manageRiskDetails\n          .org_settings.risk_automation) {\n          if (\n            AUTOMATION.appetite_id ===\n            this.riskAssessmentData.manageRiskDetails.riskDetails.riskAppetite\n              .appetite_id\n          ) {\n            if (AUTOMATION.inherent_automation_enable === 1) {\n              for (const INHERENT of AUTOMATION.inherent_automation) {\n                if (\n                  this.tempAutomationPayload.total_score > INHERENT.start &&\n                  this.tempAutomationPayload.total_score <= INHERENT.end &&\n                  (INHERENT.mitigation_priority > 0 ||\n                    INHERENT.response_strategy > 0 ||\n                    INHERENT.treatment_required > 0) &&\n                  ((INHERENT.response_strategy > 0 &&\n                    INHERENT.response_strategy !==\n                      this.riskAssessmentData.manageRiskDetails.riskDetails\n                        .status) ||\n                    INHERENT.response_strategy === 0)\n                ) {\n                  this.responseStrategyActive =\n                    INHERENT.response_strategy === 0 ? false : true;\n                  if (this.responseStrategyActive) {\n                    this.automationMessage =\n                      this.respStartegyMessage[INHERENT.response_strategy];\n                  } else {\n                    this.automationMessage =\n                      RISK_QUICKVIEW_PROPERTIES.riskAssessment.automationWithoutStrategy;\n                  }\n                  this.automationEnabled = true;\n                  this.loader = false;\n                  break;\n                }\n              }\n            } else {\n              this.automationEnabled = false;\n              this.saveCompletedDetails();\n              break;\n            }\n          }\n        }\n      } else {\n        this.automationEnabled = false;\n        this.saveCompletedDetails();\n      }\n      if (!this.automationEnabled) {\n        this.automationEnabled = false;\n        this.saveCompletedDetails();\n      }\n    } else {\n      this.saveCompletedDetails();\n    }\n    this.getAutomationButton(this.responseStrategyActive);\n    // if(this.automationEnabled) {\n    //   this.onConfirmationPopup = true;\n    //   this.confirmationMessage = this.respStartegyMessage;\n    // }\n  }\n\n  /**\n   * Save the details if automation rules are not applied\n   */\n  saveCompletedDetails() {\n    if (!this.validateScore()) {\n      this.saveAssessmentDetailsOnServer(this.tempAutomationPayload, 0);\n    } else {\n      this.loader = false;\n    }\n  }\n\n  /**\n   * Validates the scores selected by user on click of Next button\n   * @returns The flag indicating if error is present or not\n   */\n  validateScore() {\n    let errorPresent = false;\n    this.riskAssessmentData.inherentDetails.forEach((inherent: any) => {\n      inherent.error = false;\n      if (inherent.assessmentDetails.length > 0) {\n        inherent.assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ].error = [];\n        if (\n          this.riskAssessmentData.weightage[0] > 0 &&\n          (!inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].rating ||\n            inherent.assessmentDetails[\n              this.riskAssessmentData.assessmentDetailsIndex\n            ].rating.likelihood <= 0)\n        ) {\n          inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].error.push('likelihood');\n          inherent.error = true;\n          errorPresent = true;\n        }\n        if (\n          this.riskAssessmentData.weightage[1] > 0 &&\n          (!inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].rating ||\n            inherent.assessmentDetails[\n              this.riskAssessmentData.assessmentDetailsIndex\n            ].rating.impact <= 0)\n        ) {\n          inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].error.push('impact');\n          inherent.error = true;\n          errorPresent = true;\n        }\n        if (\n          this.riskAssessmentData.weightage[2] > 0 &&\n          (!inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].rating ||\n            inherent.assessmentDetails[\n              this.riskAssessmentData.assessmentDetailsIndex\n            ].rating.velocity <= 0)\n        ) {\n          inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].error.push('velocity');\n          inherent.error = true;\n          errorPresent = true;\n        }\n        if (\n          this.riskAssessmentData.weightage[3] > 0 &&\n          (!inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].rating ||\n            inherent.assessmentDetails[\n              this.riskAssessmentData.assessmentDetailsIndex\n            ].rating.vulnerability <= 0)\n        ) {\n          inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].error.push('vulnerability');\n          inherent.error = true;\n          errorPresent = true;\n        }\n      } else {\n        inherent.assessmentDetails.push({ error: [] });\n        if (this.riskAssessmentData.weightage[0] > 0) {\n          inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].error.push('likelihood');\n        }\n        if (this.riskAssessmentData.weightage[1] > 0) {\n          inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].error.push('impact');\n        }\n        if (this.riskAssessmentData.weightage[2] > 0) {\n          inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].error.push('velocity');\n        }\n        if (this.riskAssessmentData.weightage[3] > 0) {\n          inherent.assessmentDetails[\n            this.riskAssessmentData.assessmentDetailsIndex\n          ].error.push('vulnerability');\n        }\n        errorPresent = true;\n        inherent.error = true;\n      }\n    });\n    this.riskAssessmentData = { ...this.riskAssessmentData };\n    this.errorPresent = errorPresent;\n    return errorPresent;\n  }\n\n  /**\n   * Saves the assessment details on server side\n   * @param payload Details to be saved on server side\n   * @param automationEnabled Flag to check whether automation rules are applied or not\n   */\n  saveAssessmentDetailsOnServer(payload: any, automationEnabled: number) {\n    payload.inherentDetails.forEach((inherent: any) => {\n      inherent.assessmentDetails =\n        inherent.assessmentDetails[\n          this.riskAssessmentData.assessmentDetailsIndex\n        ];\n    });\n    if (\n      this.riskAssessmentData.manageRiskDetails.riskDetails\n        .ifAssessmentDoneByLoggedInMember > 0\n    ) {\n      payload.assessment_save_for_later_flag = 0;\n    }\n    if (automationEnabled) {\n      payload.automation_apply = 1;\n    }\n    this.quickView.assessmentDetailsPayload = payload;\n\n    this.subscriptions.add(\n      this.quickView.saveAssessmentDetailsOnServer(payload).subscribe(\n        () => {\n          if (payload.assessment_save_for_later_flag === 0) {\n            this.snackBarService.show(\n              RISK_QUICKVIEW_PROPERTIES.riskAssessment.editAssessment,\n              'success'\n            );\n          } else {\n            this.snackBarService.show(\n              RISK_QUICKVIEW_PROPERTIES.riskAssessment.saveForLater,\n              'success'\n            );\n          }\n          this.closeForm(payload);\n          this.quickView.actionEmitter$.next({\n            eventType: 'REFRESH_RISK_DETAILS',\n            payload: '',\n          });\n        },\n        (error) => {\n          console.error('saveAssessmentDetailsOnServer ==>', error);\n          this.snackBarService.show(\n            RISK_QUICKVIEW_PROPERTIES.errorMessage,\n            'alert'\n          );\n        }\n      )\n    );\n  }\n\n  /**\n   *\n   * @param saveForLaterFlag Flag to check whether user clicked on save for later or next\n   */\n  saveDetails(saveForLaterFlag: boolean) {\n    this.loader = true;\n    const PAYLOAD = {\n      inherentDetails: this.riskAssessmentData.inherentDetails,\n      total_score: this.riskAssessmentData.total_score,\n      total_score_name: this.riskAssessmentData.total_score_name,\n      total_score_color: this.riskAssessmentData.total_score_color,\n      risk_id: this.riskAssessmentData.manageRiskDetails.riskId,\n      version_key: '',\n      assessment_save_for_later_flag: 1,\n      treatment_type:\n        this.dialogConfig?.data?.manageRiskDetails?.riskDetails?.treatment_type,\n      risk_automation_enable:\n        this.riskAssessmentData.manageRiskDetails.org_settings\n          .org_risk_automation_enable,\n      role: this.riskAssessmentData.manageRiskDetails.riskDetails\n        .LoginMemberType,\n      due_date: this.riskAssessmentData.dueDate,\n    };\n    this.tempAutomationPayload = PAYLOAD;\n\n    this.quickView.inherentCompletionPayload$.next(this.tempAutomationPayload);\n    if (saveForLaterFlag) {\n      this.saveAssessmentDetailsOnServer(PAYLOAD, 0);\n    } else {\n      if (\n        this.riskAssessmentData.manageRiskDetails.riskDetails\n          .ifAssessmentDoneByLoggedInMember <= 0\n      ) {\n        if (\n          this.riskAssessmentData?.manageRiskDetails?.residual_risk?.riskScore >\n          this.riskAssessmentData.total_score\n        ) {\n          this.showInherentConfirmation = true;\n        } else {\n          if (!this.validateScore()) {\n            this.saveAssessmentDetailsOnServer(PAYLOAD, 0);\n          } else {\n            this.loader = false;\n          }\n        }\n      } else {\n        if (\n          this.riskAssessmentData?.manageRiskDetails?.residual_risk?.riskScore >\n          this.riskAssessmentData.total_score\n        ) {\n          this.showInherentConfirmation = true;\n        } else {\n          this.tempAutomationPayload = PAYLOAD;\n          this.checkForAutomation();\n        }\n      }\n    }\n  }\n\n  inherentAction(event: any) {\n    if (event.toUpperCase() === 'YES') {\n      this.saveCompletedDetails();\n    } else {\n      this.showInherentConfirmation = false;\n    }\n  }\n\n  onReason(event: any, key: string) {\n    this.riskAssessmentData.inherentDetails[\n      this.selectedRcIndex\n    ].assessmentDetails[\n      this.riskAssessmentData.assessmentDetailsIndex\n    ].rating_reason[key] = event;\n  }\n\n  onAction(event: string) {\n    this.onConfirmationPopup = false;\n\n    if (event.toUpperCase() === 'YES') {\n      this.setAllRCSameValue();\n      this.applySameRating(this.isApplySame);\n    } else {\n      this.isApplySame = !this.isApplySame;\n    }\n  }\n\n  onApplySameForRC(event: boolean): void {\n    this.isApplySame = event;\n    this.onConfirmationPopup = true;\n    if (event) {\n      this.confirmationMessage =\n        RISK_QUICKVIEW_PROPERTIES.riskAssessment?.applySameForAllRC;\n    } else {\n      this.confirmationMessage =\n        RISK_QUICKVIEW_PROPERTIES.riskAssessment?.applyNotSameForAllRC;\n    }\n  }\n\n  getAutomationButton(event: boolean): void {\n    if (event) {\n      this.automationRadio = [\n        { id: 'move', name: 'Apply Predefined Rules & Move Risk' },\n        { id: 'complete', name: 'Do Not Move Risk & Complete Assessment' },\n      ];\n    } else {\n      this.automationRadio = [\n        { id: 'move', name: 'Apply Predefined Rules' },\n        {\n          id: 'complete',\n          name: 'Complete Assessment & Do Not Apply Predefined Rules',\n        },\n      ];\n    }\n  }\n\n  onSelected(event: string) {\n    this.automationType = event;\n  }\n\n  closeConfirmation(closeType: string) {\n    this.automationEnabled = false;\n    this.loader = true;\n    if (closeType.toUpperCase() === 'YES') {\n      if (this.automationType === 'move') {\n        // this.riskAssessmentService.assessmentDetailsPayload.automation_apply = 1;\n        this.saveAssessmentDetailsOnServer(this.tempAutomationPayload, 1);\n      } else if (this.automationType === 'complete') {\n        this.saveAssessmentDetailsOnServer(this.tempAutomationPayload, 0);\n      }\n    }\n  }\n\n  /* A HostListener that listens to the escape key and closes the dialog. */\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\n    event: KeyboardEvent\n  ) {\n    this.closeForm();\n  }\n\n  setAllRCSameValue() {\n    this.quickView\n      .RCApplyToggle({\n        dueDateId: this.riskAssessmentData.dueDate.id,\n        irRCToggleEnable: this.isApplySame,\n      })\n      .subscribe({\n        next: (res: any) => {\n          console.log('RCApplyToggle updated for inherent risk assessment');\n          this.isApplySame = res?.ir_rc_toggle == 1 ? true : false;\n        },\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<div class=\"inherent-form-dialog\">\n    <div (click)=\"showGuide()\" *ngIf=\"!hideGuide\" class=\"view-label-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pt-2 vx-pb-2 vx-m-0 vx-lh-6\">VIEW RISK FACTOR RATING GUIDE</div>\n    <div class=\"inherent-form-dialog-heading vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-mb-5\">\n        <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">Inherent Risk Assessment</div>\n        <button (click)=\"closeForm()\" class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'[Esc] to close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i></button>\n    </div>\n    <div class=\"inherent-form-dialog-mid vx-pl-4 vx-pr-4\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2 vx-lh-4 vx-pl-4 vx-pr-4\">RESPONSIBILITY CENTER(S) <span class=\"vx-fs-16 vx-txt-red vx-ml-1\">*</span></div>\n        <div *ngIf=\"riskAssessmentData?.inherentDetails?.length > 1\" class=\"vx-d-flex vx-align-center vx-mb-2 vx-lh-4 vx-pl-4 vx-pr-4\">\n            <app-cs-switch (ngValueChange)=\"onApplySameForRC($event)\" [ngValue]=\"isApplySame\"></app-cs-switch>\n            <div class=\"vx-fs-11 vx-label-txt vx-tt-uppercase vx-ml-3\">APPLY SAME RISK RATINGS TO ALL RESPONSIBILITY CENTRES BELOW</div>\n            <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"riskProperties?.riskAssessment?.applySameForAllRC\" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n        </div>\n        <div class=\"inherent-form-dialog-mid-inner vx-pl-4 vx-pr-4\" [class.with-apply-rc]=\"riskAssessmentData?.inherentDetails?.length > 1\" [class.with-error]=\"errorPresent\">\n            <div *ngFor=\"let inherent of riskAssessmentData?.inherentDetails ; let  i =index;\" class=\"control-item vx-mb-2\" [class.active]=\"hideControls === i\" [class.with-value]=\"inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex ]?.score\" [class.error]=\"inherent?.error\">\n                <div (click)=\"showControls(i)\" class=\"control-item-top vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n                    <div class=\"control-item-top-left vx-d-flex vx-align-center\">\n                        <div class=\"icon-area vx-fs-12 vx-paragraph-txt vx-d-flex vx-align-center vx-justify-center vx-mr-3\">\n                            <i class=\"icons\">&#xe908;</i>\n                        </div>\n                        <div class=\"vx-d-block\">\n                            <div class=\"control-name vx-fs-13 vx-label-txt\" [appTooltip]=\"inherent?.rcDetails?.rc_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"> {{ inherent?.rcDetails?.rc_name }}</div>\n                            <div  *ngIf=\"inherent?.rcDetails?.parent_rc?.length > 0\" class=\"within-part vx-d-flex vx-align-center\">\n                                <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-1 vx-lh-3\">Within</div>\n                                <div class=\"value vx-fs-12 vx-paragraph-txt\" [appTooltip]=\"inherent?.rcDetails?.parent_rc\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                                  inherent?.rcDetails?.parent_rc\n                                }}</div>\n                              </div>\n                        </div>\n                    </div>\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <div  *ngIf=\"inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex ]?.score\" class=\"control-value vx-d-flex vx-align-center vx-p-1 vx-mr-2\">\n                            <div *ngIf=\"false\" class=\"vx-fs-11 vx-fw-500 vx-label-txt\">--</div>\n                            <ng-container  *ngIf=\"inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex]?.score\">\n                                <div class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt vx-text-center\">{{inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex]?.score}}</div>\n                                <div class=\"separator vx-mr-1\"></div>\n                                <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex]?.scoreName\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" *ngIf=\"inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex]?.scoreName?.length > 0\"\n                                    [ngStyle]=\"{\n                                      color: inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex]?.scoreColor\n                                    }\">{{ inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex]?.scoreName }}</div>\n                            </ng-container>\n                        </div>\n                        <i *ngIf=\"inherent?.error\" class=\"icons error-icon vx-fs-16 vx-mr-2\">&#xe930;</i>\n                        <i class=\"icons arrow vx-fs-14 vx-paragraph-txt\">\n                            <ng-container *ngIf=\"hideControls !== i\">&#xe970;</ng-container>\n                            <ng-container *ngIf=\"hideControls === i\">&#xe9e8;</ng-container>\n                        </i>\n                    </div>\n                </div>\n\n                <ng-container *ngIf=\"hideControls === i\">\n                  <ng-container *ngFor=\"let scoreCriteria of riskAssessmentData?.scoreCriteria | keyvalue: originalOrder; let j = index\" >\n                      <div *ngIf=\"riskAssessmentData?.weightage[j] > 0\" class=\"control-item-selection vx-pt-3 vx-pl-3\">\n                          <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-3\">{{ scoreCriteria?.key }} <span class=\"vx-paragraph-txt vx-ml-1\">(WEIGHTAGE: <span class=\"vx-fw-600\">{{ riskAssessmentData?.weightage[j] }} %</span>)</span></div>\n                          <div *ngFor=\"let scores of scoreCriteria?.value; let k = index\"  class=\"selection-item vx-mb-4\" >\n                            <app-cs-radio\n                            [name]=\"scoreCriteria?.key\"\n                            [checked]=\"inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex]?.rating[scoreCriteria?.key] == k + 1\"\n                            (checkedEvent)=\"updateRating(k + 1, scoreCriteria.key, scores.value, riskAssessmentData.weightage[j], scores.color)\">\n                                <span class=\"vx-fs-11 vx-fw-500 vx-tt-uppercase\" [ngStyle]=\"{ color: scores?.color }\">\n                                    {{ k + 1 }} - {{ scores?.value }}\n                                </span>\n                            </app-cs-radio>\n                            <vcomply-editor\n                            [id]=\"i + j + k + scoreCriteria.key\"\n                            *ngIf=\"inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex]?.rating[scoreCriteria?.key] == k + 1\" [editorConfig]=\"{ placeholder: 'Add Comments', maxHeight: '150px'}\" [ngModel]=\"inherent?.assessmentDetails[riskAssessmentData?.assessmentDetailsIndex]?.rating_reason[scoreCriteria.key.toLowerCase()]\"\n                            (ngModelChange)=\"onReason($event, scoreCriteria.key.toLowerCase())\"\n                            ></vcomply-editor>\n                        </div>\n                      </div>\n                  </ng-container>\n                </ng-container>\n            </div>\n        </div>\n    </div>\n       <ng-container *ngIf=\"!automationEnabled\">\n            <div *ngIf=\"errorPresent\" class=\"inherent-form-dialog-error vx-fs-12 vx-txt-white vx-d-flex vx-align-center vx-mt-4\">\n                <i class=\"icons vx-fs-16 vx-mr-2\">&#xe930;</i> Select ratings for all risk factors.\n            </div>\n            <!-- when error apper then with-error class was active -->\n            <div class=\"inherent-form-dialog-calculate vx-d-flex vx-align-center vx-justify-between vx-mt-4\" [class.with-error]=\"errorPresent\">\n                <div  class=\"vx-fs-11 vx-paragraph-txt vx-tt-uppercase\">YOUR INHERENT RISK RATING:</div>\n                <div class=\"calculate-area vx-d-flex vx-align-center vx-justify-center\">\n                    <div class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt\">{{ riskAssessmentData?.total_score > 0 ? riskAssessmentData?.total_score : '--' }}</div>\n                    <div class=\"separator vx-mr-1\"></div>\n                    <div *ngIf=\"riskAssessmentData?.total_score_name?.length > 0\"  class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"riskAssessmentData?.total_score_name\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"  [ngStyle]=\"{ color: riskAssessmentData?.total_score_color, backgroundColor: riskAssessmentData?.total_score_color + '1A' }\">{{\n                        riskAssessmentData?.total_score_name\n                    }}</div>\n                </div>\n            </div>\n            <div class=\"inherent-form-dialog-btn vx-d-flex vx-align-center vx-justify-center\">\n                <ng-container *ngIf=\" dialogConfig?.data?.dueDateData?.completionDetails?.ifAssessmentDoneByLoggedInMember <= 0\" >\n                    <button (click)=\"saveDetails(true)\" class=\"white-btn vx-fs-14 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">SAVE FOR LATER</button>\n                    <button (click)=\"saveDetails(false)\" class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">NEXT <i class=\"icons arrow-icon vx-fs-20 vx-txt-white\">&#xe91e;</i></button>\n                </ng-container>\n                <button *ngIf=\"!(dialogConfig?.data?.dueDateData?.completionDetails?.ifAssessmentDoneByLoggedInMember <= 0)\" (click)=\"saveDetails(false)\" class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">Complete Inherent Risk Assessment</button>\n            </div>\n        </ng-container>\n        <vc-bottom-confirmation-popup *ngIf=\"onConfirmationPopup\" [message]=\"confirmationMessage\" (action)=\"onAction($event)\"></vc-bottom-confirmation-popup>\n        <vc-bottom-confirmation-popup *ngIf=\"automationEnabled\" [radioButton]=\"automationRadio\" [message]=\"automationMessage\" [iconDetails]=\"{code:'&#xea7c;', color:'blue'}\" (actionType)=\"onSelected($event)\" (action)=\"closeConfirmation($event)\"></vc-bottom-confirmation-popup>\n        <vc-bottom-confirmation-popup *ngIf=\"showInherentConfirmation\" [showInherentConfirmation]=\"showInherentConfirmation\" [message]=\"inherentMessage\" (action)=\"inherentAction($event)\"></vc-bottom-confirmation-popup>\n </div>\n\n\n<div class=\"hide-area\" *ngIf=\"hideGuide\" [class.animate]=\"animation\">\n    <div (click)=\"closeGuide()\" class=\"view-label-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pt-2 vx-pb-2 vx-m-0 vx-lh-6\">CLOSE RISK FACTOR RATING GUIDE</div>\n    <lib-rating-guide [manageRiskDetails]=\"riskAssessmentData?.manageRiskDetails\"></lib-rating-guide>\n</div>\n","import { Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n//import { AuthService } from \"../../../services/auth.service\";\nimport * as moment from 'moment';\n//import { environment } from 'src/environments/environment';\nimport { retry } from 'rxjs';\nimport { AuthService } from '../../services/auth.service';\nimport { Configurations } from '../../../configurations';\nimport dayjs from 'dayjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FrequencyService {\n\n  env!: any;\n  public monthArray: Array<string> = [\n    'January',\n    'February',\n    'March',\n    'April',\n    'May',\n    'June',\n    'July',\n    'August',\n    'September',\n    'October',\n    'November',\n    'December'\n  ]\n\n  public dayName: Array<string> = [\n    'Monday',\n    'Tuesday',\n    'Wednesday',\n    'Thursday',\n    'Friday',\n    'Saturday',\n    'Sunday'\n  ]; // full day name\n\n  public quarterlyMonth: Array<string> = [\n    'January, April, July, October',\n    'February, May, August, November',\n    'March, June, September, December'];\n\n  public dateConfig = {\n    format: \"DD MMM YYYY\",\n    showGoToCurrent: false\n  };\n\n  public frequencyInfo = {\n    placeholder: '',\n    pattern: '',\n    case: '',\n    failedAfter: 0,\n    window: 0,\n    timeIn12hr: '',\n    timeIn24Hr: '',\n    lifecycleDetails: '0000-00-00~~0',\n    startFrom: Math.floor(Date.now() / 1000),\n    reportId: 0,\n    failed_time_utc: Math.floor(Date.now() / 1000),\n    continuous_failed_days: 0,\n    dateOfModified: 0,\n    startDate: '',\n  };\n\n  public frequencyDetails: object = {\n    pattern: '',\n    notificationPending: 0,\n    dateOfModified: 0,\n    deactivationValue: 0,\n    selectedReport: 0,\n    lifecycle: '0000-00-00~~0',\n    startDate: Math.floor(new Date().getTime() /1000),\n    startOnTheDay:  Math.floor(new Date().getTime() /1000),\n    window: 0,\n    failed: 0,\n    time: '11:00 pm'\n  };\n\n  constructor( private http: HttpClient, private authService: AuthService,  @Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.env;\n    }\n    }\n\n   timeFrom12hTo24h(value: string) {\n    if (value != undefined) {\n      const time_arr = value.split(' ');\n      const meridian = time_arr[1];\n      const hr_min = time_arr[0].split(':').map(Number);\n      const hr = hr_min[0];\n      const min = hr_min[1];\n\n      let return_time = '';\n\n      if (meridian.toLowerCase() == 'pm') {\n        if (hr == 12) {\n          return_time = 12 + ':' + min + ':00';\n        } else if (hr < 12) {\n          return_time = +hr + 12 + ':' + min + ':00';\n        }\n      } else {\n        if (hr == 12) {\n          return_time = '00:' + min + ':00';\n        } else if (hr < 12) {\n          return_time = hr + ':' + min + ':00';\n        }\n      }\n\n      return return_time;\n    } else {\n    }\n  }\n\n  timeIn12(value: any) {\n    if (value != undefined) {\n      let hr;\n      let min;\n      let meridian;\n      if (value.split(':')[0] >= 12) {\n        hr = value.split(':')[0] === '12' ? 12 : value.split(':')[0] - 12;\n        min = value.split(':')[1];\n        if(min.length < 2) {\n          min  = \"0\" + min;\n        }\n        meridian = 'pm';\n      } else {\n        hr = value.split(':')[0] == '00' ? 12 : value.split(':')[0];\n        min = value.split(':')[1];\n        if(min.length < 2) {\n          min  = \"0\" + min;\n        }\n        meridian = 'am';\n      }\n      return hr + ':' + min + ' ' + meridian;\n    } else {\n    }\n  }\n\n  frameworkStartDate(row: any) {\n    console.log('row....', row);\n    let calculatedDay:number = 0;\n    const startDate = new Date(parseInt(row.start_date) * 1000).getDay();\n    const getDate = new Date(parseInt(row.start_date) * 1000).getDate();\n    const currentDate = new Date().getDay();\n    const startMonth = new Date(parseInt(row.start_date) * 1000).getMonth();\n\n    if (\n      parseInt(row.start_date) < Date.now() / 1000 &&\n      (row.frequency_template === 'every week' || row.frequency_template === 'every 2 weeks' || row.frequency_template === 'every 3 weeks')\n    ) {\n      let daysToBeAdded = 0;\n      for (let i = 0; i < 7; i++) {\n        if ((currentDate + i) % 7 === startDate) {\n          daysToBeAdded = i;\n          break;\n        }\n      }\n      const timestampToBeAdded = daysToBeAdded * 24 * 60 * 60 * 1000;\n      calculatedDay = new Date(new Date().getTime() + timestampToBeAdded).getTime();\n      console.log('calculatedDay 1', calculatedDay);\n      // tslint:disable-next-line: max-line-length\n    } else if (\n      parseInt(row.start_date) < Date.now() / 1000 &&\n      !(row.frequency_template === 'every week' || row.frequency_template === 'every 2 weeks' || row.frequency_template === 'every 3 weeks') &&\n      row.frequency_template !== 'every day'\n    ) {\n      const momentUnix = moment(getDate + '-' + (new Date().getMonth() + 1) + '-' + new Date().getFullYear() + ' 00:00', 'DD-MM-YYYY HH:mm').unix();\n      calculatedDay = momentUnix * 1000;\n      console.log('getDate', getDate, new Date().getMonth() + 2 + '-' + new Date().getFullYear(), momentUnix);\n      console.log('calculatedDay 2', calculatedDay);\n    } else if (row.frequency_template === 'every day' && parseInt(row.start_date) < Date.now() / 1000) {\n      calculatedDay = Date.now();\n      console.log('calculatedDay 3', calculatedDay);\n    } else {\n      calculatedDay = parseInt(row.start_date) * 1000;\n      console.log('calculatedDay 4', calculatedDay);\n    }\n    return calculatedDay / 1000;\n  }\n\n  frameworkFrequency(frequency: any, start_date: any) {\n    try {\n      console.log('frequency', frequency, start_date);\n      const startDate = new Date(start_date * 1000);\n      console.log('strat date', start_date, startDate);\n      const firstHalfMonth = ['1', '2', '3', '4', '5', '6'];\n      const secondHalfMonth = ['7', '8', '9', '10', '11', '12'];\n      const getDayData = startDate.getDay() === 0 ? 7 : startDate.getDay();\n      const month = startDate.getMonth();\n      let quarterPattern = '~1,4,7,10~0';\n      switch (month) {\n        case 0:\n        case 3:\n        case 6:\n        case 9:\n          quarterPattern = '~1,4,7,10~0';\n          break;\n        case 1:\n        case 4:\n        case 7:\n        case 10:\n          quarterPattern = '~2,5,8,11~0';\n          break;\n        case 2:\n        case 5:\n        case 8:\n        case 11:\n          quarterPattern = '~3,6,9,12~0';\n          break;\n      }\n      // ];\n      let frequency_pattern;\n\n      frequency = frequency.toLowerCase();\n      let continuous_failed_days = 0;\n      // @ => day (1 to 7)\n      // # => month (1 to 12)\n      // ? => month % 2 == 0 ? \"2,4,6,8,10,12\" : \"1,3,5,7,9,11\"\n\n      if (frequency === 'every week') {\n        frequency_pattern = '2~' + getDayData + '~0~1';\n        continuous_failed_days = 10;\n      } else if (frequency === 'one time') {\n        frequency_pattern = '0~' + startDate.getFullYear() + '~' + (startDate.getMonth() + 1) + '~' + startDate.getDate();\n      } else if (frequency === 'every day') {\n        frequency_pattern = '1~0~0~1';\n        continuous_failed_days = 15;\n      } else if (frequency === 'every alternate day') {\n        frequency_pattern = '1~0~0~2';\n        continuous_failed_days = 15;\n      } else if (frequency === 'every 10 days') {\n        frequency_pattern = '1~0~0~10';\n        continuous_failed_days = 15;\n      } else if (frequency === 'every 2 weeks') {\n        frequency_pattern = '2~' + getDayData + '~0~2';\n        continuous_failed_days = 10;\n      } else if (frequency === 'every fortnight') {\n        frequency_pattern = '1~' + getDayData + '~0~14';\n        continuous_failed_days = 15;\n      } else if (frequency === 'every 3 weeks') {\n        frequency_pattern = '2~' + getDayData + '~0~3';\n        continuous_failed_days = 10;\n      } else if (frequency === 'every month') {\n        frequency_pattern = '3~' + startDate.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';\n        continuous_failed_days = 10;\n      } else if (frequency === 'every 45 days') {\n        frequency_pattern = '1~0~0~45';\n        continuous_failed_days = 15;\n      } else if (frequency === 'every alternate month') {\n        frequency_pattern = '3~' + startDate.getDate() + '~' + ((startDate.getMonth() + 1) % 2 == 0 ? '2,4,6,8,10,12' : '1,3,5,7,9,11') + '~0';\n        continuous_failed_days = 10;\n      } else if (frequency === 'every quarter') {\n        frequency_pattern = '7~' + startDate.getDate() + quarterPattern;\n      } else if (frequency === 'every 120 days') {\n        frequency_pattern = '1~0~0~120';\n      } else if (frequency === 'half yearly') {\n        const index1 = firstHalfMonth.indexOf((startDate.getMonth() + 1).toString());\n        const index2 = secondHalfMonth.indexOf((startDate.getMonth() + 1).toString());\n        const pattern = index1 > -1 ? '~' + firstHalfMonth[index1] + ',' + secondHalfMonth[index1] + '~0' : '~' + firstHalfMonth[index2] + ',' + secondHalfMonth[index2] + '~0';\n        frequency_pattern = '3~' + startDate.getDate() + pattern;\n        continuous_failed_days = 10;\n      } else if (frequency === 'yearly') {\n        frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~1';\n      } else if (frequency === 'every 2 years') {\n        frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~2';\n      } else if (frequency === 'every 3 years') {\n        frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~3';\n      } else if (frequency === 'every 4 years') {\n        frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~4';\n      } else if (frequency === 'every 5 years') {\n        frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~5';\n      } else if (frequency === 'every 10 years') {\n        frequency_pattern = '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~10';\n      } else if (frequency === 'to be decided later') {\n        frequency_pattern = '';\n      } else {\n        frequency_pattern = '';\n      }\n      // this.editData.frequency_details = frequency_pattern;\n\n      return {frequency_pattern, continuous_failed_days};\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  shortHand_freqCal(frequency: any, day: any, month: any, year?: any) {\n    const monthNames = [\n      { value: 1, month: 'Jan' },\n      { value: 2, month: 'Feb' },\n      { value: 3, month: 'Mar' },\n      { value: 4, month: 'Apr' },\n      { value: 5, month: 'May' },\n      { value: 6, month: 'Jun' },\n      { value: 7, month: 'Jul' },\n      { value: 8, month: 'Aug' },\n      { value: 9, month: 'Sep' },\n      { value: 10, month: 'Oct' },\n      { value: 11, month: 'Nov' },\n      { value: 12, month: 'Dec' },\n    ];\n    let frequency_details;\n    let continuous_failed_days = 0;\n    const date_value = new Date();\n\n    date_value.setMonth(typeof month !== 'number' ? monthNames.filter((x) => x.month === month?.substring(0, 3))[0]?.value - 1 : month);\n    if (!year) {\n      date_value.setFullYear(20 + month.split(\"'\")[1]);\n    } else {\n      date_value.setFullYear(year);\n    }\n    date_value.setDate(day);\n    let quarterPattern = '~1,4,7,10~0';\n    const firstHalfMonth = ['1', '2', '3', '4', '5', '6'];\n    const secondHalfMonth = ['7', '8', '9', '10', '11', '12'];\n    frequency = frequency.toLowerCase();\n\n    switch (date_value.getMonth()) {\n      case 0:\n      case 3:\n      case 6:\n      case 9:\n        quarterPattern = '~1,4,7,10~0';\n        break;\n      case 1:\n      case 4:\n      case 7:\n      case 10:\n        quarterPattern = '~2,5,8,11~0';\n        break;\n      case 2:\n      case 5:\n      case 8:\n      case 11:\n        quarterPattern = '~3,6,9,12~0';\n        break;\n    }\n    const getDay = date_value.getDay() === 0 ? 7 : date_value.getDay();\n    switch (frequency) {\n      case 'every week':\n        frequency_details = '2~' + getDay + '~0~1';\n        continuous_failed_days = 10;\n        break;\n      case 'one time':\n        frequency_details = '0~' + '' + date_value.getFullYear() + '~' + (date_value.getMonth() + 1) + '~' + date_value.getDate();\n        break;\n      case 'every day':\n        frequency_details = '1~0~0~1';\n        continuous_failed_days = 15;\n        break;\n      case 'every alternate day':\n        frequency_details = '1~0~0~2';\n        continuous_failed_days = 15;\n        break;\n      case 'every 10 days':\n        frequency_details = '1~0~0~10';\n        continuous_failed_days = 15;\n        break;\n      case 'every 2 weeks':\n        frequency_details = '2~' + getDay + '~0~2';\n        continuous_failed_days = 10;\n        break;\n      case 'every fortnight':\n        frequency_details = '1~' + getDay + '~0~14';\n        continuous_failed_days = 15;\n        break;\n      case 'every 3 weeks':\n        frequency_details = '2~' + getDay + '~0~3';\n        continuous_failed_days = 10;\n        break;\n      case 'every month':\n        frequency_details = '3~' + date_value.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';\n        continuous_failed_days = 10;\n        break;\n      case 'every 45 days':\n        frequency_details = '1~0~0~45';\n        continuous_failed_days = 15;\n        break;\n      case 'every alternate month':\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';\n        continuous_failed_days = 10;\n        break;\n      case 'every quarter':\n        frequency_details = '7~' + date_value.getDate() + quarterPattern;\n        break;\n      case 'every 120 days':\n        frequency_details = '1~0~0~120';\n        continuous_failed_days = 15;\n        break;\n      case 'half yearly':\n        const index1 = firstHalfMonth.indexOf((date_value.getMonth() + 1).toString());\n        const index2 = secondHalfMonth.indexOf((date_value.getMonth() + 1).toString());\n        const pattern = index1 > -1 ? '~' + firstHalfMonth[index1] + ',' + secondHalfMonth[index1] + '~0' : '~' + firstHalfMonth[index2] + ',' + secondHalfMonth[index2] + '~0';\n        frequency_details = '3~' + date_value.getDate() + pattern;\n        break;\n      case 'annual':\n      case 'yearly':\n        frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~1';\n        break;\n      case 'every 2 years':\n        frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~2';\n        break;\n      case 'every 3 years':\n        frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~3';\n        break;\n      case 'every 4 years':\n        frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~4';\n        break;\n      case 'every 5 years':\n        frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~5';\n        break;\n      case 'every 10 years':\n        frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~10';\n        break;\n      case 'ongoing':\n        frequency_details = '10~0~0~0';\n        break;\n      case 'to be decided later':\n      default:\n        frequency_details = '5~0~0~0';\n    }\n    return {\n      pattern: frequency_details,\n      continuous_failed_days: continuous_failed_days\n    }\n  }\n\n\n  getOnCompletionOfResponsibility() {\n    const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n    return this.http\n    .get<any[]>(this.env.apiEndpointWithoutV2 + 'organization/?mode=reports/onCompletionOfReports', { headers })\n    .pipe(retry(2));\n  }\n\n  changeTimeZone(date: any): any {\n    if (typeof date === 'number') {\n      date = new Date(date);\n    }\n      const invDate = new Date(\n        date.toLocaleString('en-US', {\n          timeZone: this.authService?.userDetails?.timezone\n        })\n      );\n      return invDate;\n  }\n\nformatDate() {\n  const currentDate = new Date();\n  const timeZoneAdjustedDate = dayjs(this.changeTimeZone(currentDate));\n  const nextDate = timeZoneAdjustedDate.add(1, 'day');\n  const formattedDate = nextDate.format('DD MMM YYYY');\n  return formattedDate;\n}\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[appInsertion]',\n})\nexport class InsertionDirective {\n  constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { Component, Type, ComponentFactoryResolver, ViewChild, OnDestroy, ComponentRef, AfterViewInit, ChangeDetectorRef, OnInit } from '@angular/core';\nimport { InsertionDirective } from './insertion.directive';\nimport { Subject } from 'rxjs';\nimport { DialogRef } from './dialog-ref';\nimport { DialogConfig } from './dialog-config';\nimport { NavigationEnd, NavigationError, NavigationStart, Router, ROUTER_CONFIGURATION } from '@angular/router';\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: './dialog.component.html',\n  styleUrls: ['./dialog.component.css'],\n})\nexport class DialogComponent implements AfterViewInit, OnDestroy, OnInit {\n  componentRef!: ComponentRef<any>;\n  position: any;\n  background: any;\n  @ViewChild(InsertionDirective, { static: true })\n  insertionPoint!: InsertionDirective;\n  animation = true;\n\n  private readonly onDialogClose = new Subject<any>();\n  public onClose = this.onDialogClose.asObservable();\n\n  childComponentType!: Type<any>;\n\n  constructor(\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private cd: ChangeDetectorRef,\n    private dialogRef: DialogRef,\n    public config: DialogConfig,\n    private router: Router\n  ) {\n    // this.componentRef = this.componentRef;\n    // this.animate =   this.animate;\n    // this.insertionPoint =  this.insertionPoint;\n    // this.childComponentType =  this.childComponentType;\n  }\n  ngOnInit() {\n    this.position = this.config.position;\n    this.background = this.config.background;\n    document.body.style.overflow = 'hidden';\n    setTimeout(() => {\n      this.animation = false;\n    }, 200);\n    this.routeAction();\n  }\n\n  routeAction() {\n    this.router.events.subscribe((event: any) => {\n      if (event instanceof NavigationStart) {\n        // Show loading indicator\n      }\n      if (event instanceof NavigationEnd) {\n        // Hide loading indicator\n        this.dialogRef.close();\n      }\n      if (event instanceof NavigationError) {\n        // Hide loading indicator\n        // Present error to user\n      }\n    });\n  }\n  ngAfterViewInit() {\n    this.loadChildComponent(this.childComponentType);\n    this.cd.detectChanges();\n  }\n\n  onOverlayClicked(evt: MouseEvent) {\n    // this.dialogRef.close();\n  }\n\n  onDialogClicked(evt: MouseEvent) {\n    evt.stopPropagation();\n  }\n\n  loadChildComponent(componentType: Type<any>) {\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n\n    const viewContainerRef = this.insertionPoint.viewContainerRef;\n    viewContainerRef.clear();\n\n    this.componentRef = viewContainerRef.createComponent(componentFactory);\n  }\n\n  ngOnDestroy() {\n    if (this.componentRef) {\n      this.componentRef.destroy();\n    }\n  }\n\n  close() {\n    this.onDialogClose.next(false);\n    document.body.style.overflow = 'auto';\n  }\n}\n","<div\n  class=\"risk-overlay\"\n  (click)=\"onOverlayClicked($event)\"\n  [ngClass]=\"{\n    top: position === 'TOP',\n    right: position === 'RIGHT',\n    bottom: position === 'BOTTOM',\n    left: position === 'LEFT',\n    center: position === 'CENTER',\n    black: background === 'black'\n  }\"\n>\n  <div\n    class=\"dialog\"\n    [class.animate]=\"animation\"\n    (click)=\"onDialogClicked($event)\"\n    [ngClass]=\"{\n      top: position === 'TOP',\n      right: position === 'RIGHT',\n      bottom: position === 'BOTTOM',\n      left: position === 'LEFT',\n      center: position === 'CENTER'\n    }\"\n  >\n    <ng-template appInsertion></ng-template>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogComponent } from './dialog.component';\nimport { InsertionDirective } from './insertion.directive';\nimport { DialogRef } from './dialog-ref';\n@NgModule({\n    imports: [CommonModule],\n    declarations: [DialogComponent, InsertionDirective],\n    providers: [DialogRef]\n})\nexport class DialogModule {}\n","import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\n\nexport class DialogInjector implements Injector {\n  constructor(private parentDialogInjector: Injector, private dialogAdditionalTokens: WeakMap<any, any>) {}\n\n  get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\n  // get(token: any, notFoundValue?: any){return; }\n  get(token: any, notFoundValue?: any, flags?: any) {\n    const value = this.dialogAdditionalTokens.get(token);\n    if (value) {\n      return value;\n    }\n    return this.parentDialogInjector.get<any>(token, notFoundValue);\n  }\n}\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, Type, EmbeddedViewRef, ComponentRef } from '@angular/core';\nimport { DialogModule } from './dialog.module';\nimport { DialogComponent } from './dialog.component';\nimport { DialogInjector } from './dialog-injector';\nimport { DialogConfig } from './dialog-config';\nimport { DialogRef } from './dialog-ref';\n\n@Injectable({\n  providedIn: DialogModule,\n})\nexport class DialogService {\n  dialogComponentRef: ComponentRef<DialogComponent>[] = [];\n\n  constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) {}\n\n  public open(componentType: Type<any>, config: DialogConfig) {\n    const dialogRef = this.appendDialogComponentToBody(config);\n\n    this.dialogComponentRef[this.dialogComponentRef?.length - 1].instance.childComponentType = componentType;\n\n    return dialogRef;\n  }\n\n  private appendDialogComponentToBody(config: DialogConfig) {\n    const map = new WeakMap();\n    map.set(DialogConfig, config);\n\n    const dialogRef = new DialogRef();\n    map.set(DialogRef, dialogRef);\n\n    const sub = dialogRef.afterClosed.subscribe(() => {\n      this.removeDialogComponentFromBody();\n      sub.unsubscribe();\n    });\n\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DialogComponent);\n    const componentRef = componentFactory.create(new DialogInjector(this.injector, map));\n\n    this.appRef.attachView(componentRef.hostView);\n\n    const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n    document.body.appendChild(domElem);\n\n    this.dialogComponentRef.push(componentRef);\n\n    this.dialogComponentRef[this.dialogComponentRef?.length - 1].instance.onClose.subscribe(() => {\n      this.removeDialogComponentFromBody();\n    });\n\n    return dialogRef;\n  }\n\n  private removeDialogComponentFromBody() {\n    this.appRef.detachView(this.dialogComponentRef[this.dialogComponentRef?.length - 1].hostView);\n    this.dialogComponentRef.pop()?.destroy();\n  }\n}\n","import { ElementRef, Injectable, Optional } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DatePickerService {\n    datePickerObject = {\n        event: null,\n        class: '',\n        popup: null,\n        component: null,\n        overlay: false,\n    }\n    handleDocumentClick(datePickerObject: any): boolean {\n      const { event, popup, class: className } = datePickerObject || {};\n      const targetElement = event?.target as Element;\n\n      if (!targetElement) return false;\n\n      const dateInputElement = document?.getElementById(className);\n      const datePickerCalendarContainer = document?.querySelector(\n        \".dp-day-calendar-container\"\n      );\n      const monthYearElement = document?.querySelector(\n        \".dp-month-calendar-container\"\n      );\n\n      const isNotMonthYearElement = !monthYearElement?.contains(targetElement);\n      const isOutsidePopup = !popup?.nativeElement?.contains(targetElement);\n      const isNotDateInputElement = targetElement !== dateInputElement;\n      const isNotInsideCalendar =\n        !datePickerCalendarContainer?.contains(targetElement);\n      const isNotCalendarMonth =\n        !targetElement?.className?.includes(\"dp-calendar-month\");\n\n      if (\n        datePickerCalendarContainer &&\n        isNotMonthYearElement &&\n        isOutsidePopup &&\n        isNotDateInputElement &&\n        isNotInsideCalendar &&\n        isNotCalendarMonth\n      ) {\n        this.closeDatePickerIfOpen(\n          targetElement,\n          popup,\n          datePickerObject?.overlay,\n          datePickerObject?.component\n        );\n        return true;\n      }\n\n      return false;\n    }\n\n  private closeDatePickerIfOpen(\n    target: any,\n    openedElement: ElementRef,\n    datePickerOverlay: boolean,\n    DatePicker: any\n  ): void {\n    if (\n      !openedElement?.nativeElement?.contains(target) &&\n      DatePicker?.areCalendarsShown\n    ) {\n      DatePicker?.api?.close();\n      datePickerOverlay = false;\n    }\n  }\n}\n","import { Component, OnInit, Optional } from '@angular/core';\nimport { Configurations } from '../../../configurations';\n\n@Component({\n  selector: 'app-loader-inline',\n  templateUrl: './loader-inline.component.html',\n  styleUrls: ['./loader-inline.component.less'],\n})\nexport class LoaderInlineComponent implements OnInit {\n  vLoader: any;\n  \n  public env!: any;\n\n  constructor(@Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.env.environment;\n    }\n    this.vLoader = this.env.vLoader;\n  }\n\n  ngOnInit(): void {}\n}\n","<div class=\"inline-loader\">\n  <img src=\"{{vLoader}}\" alt=\"\" />\n  <div class=\"loader-index\">\n    <div class=\"loader-index-circle\"></div>\n  </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment';\n\n@Component({\n  selector: 'app-frequency-dialog-top',\n  templateUrl: './frequency-dialog-top.component.html',\n  styleUrls: ['./frequency-dialog-top.component.less']\n})\nexport class FrequencyDialogTopComponent implements OnInit {\n  @Input() occurrenceFirst = 0;\n  @Input() id = 0; // 0 = Daily, 1: weekly, 5: Annually\n  @Input() inputTime = '11:00 pm';\n  @Input() frequencyType = 0; // 0 = days, 1 = weeks & 2 = years\n  @Input() yearlyDay = new Date().getDate();\n\n  @Output() valueChangedFirst: EventEmitter<any> = new EventEmitter();\n  @Output() nextDisable: EventEmitter<any> = new EventEmitter();\n  @Output() timeChanged: EventEmitter<any> = new EventEmitter();\n  @Output() yearlyDateChanged: EventEmitter<any> = new EventEmitter();\n\n  todayDate = new Date();\n  dateObjectData = new Date();\n  timeData = '11:00 pm';\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  enterValueFirst(event:any, actionType:string) {\n    if(this.id !== 0 && this.id !== 1 && this.id !== 5) {\n      this.enterValue(this.occurrenceFirst,actionType);\n      return;\n    }\n    if (!Number.isNaN(Number(this.occurrenceFirst)) && this.occurrenceFirst !== 0 && Number(this.occurrenceFirst) > 0) {\n      this.occurrenceFirst = Number(this.occurrenceFirst);\n      this.valueChangedFirst.emit({\n        type: actionType,\n        value: Number(this.occurrenceFirst),\n        pageName: '',\n      });\n    } else {\n      this.occurrenceFirst = 1;\n    }\n  }\n\n  enterValue(event: any, actionType: any) {\n    if (!Number.isNaN(Number(event)) && event !== 0 && Number(event) > 0 && Number(event) < 32) {\n      this.occurrenceFirst = Number(event); \n      this.valueChangedFirst.emit({\n        type: actionType,\n        value: Number(event),\n        pageName: '',\n      });\n    } else {\n      this.occurrenceFirst = new Date().getDate();\n    }\n  }\n\n  getToday(): string {\n    return moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')?.split(' ')[0];\n  }\n\n  onTimeChanged(event:string) {\n    try {\n      this.timeData = event;\n      if (typeof this.dateObjectData == 'object') {\n        this.dateObjectData = moment(this.dateObjectData).toDate();\n      }\n      let timeStamp = moment(\n        this.dateObjectData.getDate() + '-' + (this.dateObjectData.getMonth() + 1) + '-' + this.dateObjectData.getFullYear() + ' ' + this.timeData,\n        'DD-MM-YYYY hh:mm a'\n      ).unix();\n      if (Date.now() / 1000 > timeStamp) {\n        this.nextDisable.emit(true);\n      } else {\n        this.nextDisable.emit(false);\n      }\n      this.timeChanged.emit(event);\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  enterYearDay(event: any) {\n    if (!Number.isNaN(Number(this.yearlyDay)) && this.yearlyDay !== 0 && Number(this.yearlyDay) > 0 && Number(this.yearlyDay) < 32) {\n      //this.yearlyDay = Number(event.target.value);\n      this.yearlyDateChanged.emit(\n        this.yearlyDay\n      );\n    } else {\n      this.yearlyDay = new Date().getDate();\n    }\n  }\n}\n","<div class=\"frequency-dialog-top vx-p-3 vx-d-flex vx-align-center\">\n    <div class=\"vx-fs-13 vx-paragraph-txt vx-mr-3\">{{id === 0 || id === 1 || id === 5 ? 'Every' : 'Day'}}</div>\n    <input type=\"number\" \n    [id]=\"'occurrence' + id\" \n    [(ngModel)]=\"occurrenceFirst\" \n    class=\"day-counter\" \n    onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\"\n    (focusout) = \"enterValueFirst($event, 'occurrenceFirst')\" />\n    <div *ngIf=\"frequencyType === 1\" class=\"vx-fs-13 vx-paragraph-txt vx-ml-3 vx-mr-3\">{{ occurrenceFirst > 1 ? 'weeks' : 'week' }} by  </div>\n    <div class=\"vx-fs-13 vx-paragraph-txt vx-ml-3 vx-mr-3\" *ngIf=\"id !== 0 && id !== 1 && id !== 5\">by</div>\n    <ng-container  *ngIf=\"frequencyType === 2\">\n        <div  class=\"vx-fs-13 vx-paragraph-txt vx-ml-3 vx-mr-3\">{{ occurrenceFirst > 1 ? 'years' : 'year' }} on day</div>\n        <input type=\"number\" type=\"number\" [id]=\"'occurrence-day' + id\" [(ngModel)]=\"yearlyDay\" (focusout)=\"enterYearDay($event)\"  onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\n        <div class=\"vx-fs-13 vx-paragraph-txt vx-ml-3 vx-mr-3\">by</div>\n    </ng-container>\n    <div class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\">\n        <input type=\"text\" [id]=\"'time-picker-input-top'+id\" [(ngModel)]=\"inputTime\" readonly aria-label=\"12hr format\" [ngxTimepicker]=\"dailyTime\" placeholder=\"11:00 PM\">\n        <i class=\"icons vx-fs-12 vx-txt-blue\">&#xe955;</i>\n        <ngx-material-timepicker [id]=\"'time-picker-top'+id\" [hoursOnly]=\"true\" (timeChanged)=\"onTimeChanged($event)\" #dailyTime></ngx-material-timepicker>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-checkbox',\n  templateUrl: './cs-checkbox.component.html',\n  styleUrls: ['./cs-checkbox.component.less'],\n})\nexport class CsCheckboxComponent implements OnInit {\n  @Input() disabled!: boolean;\n  @Input() ngValue: any;\n  @Input() value: any;\n  @Output() ngValueChange = new EventEmitter<any>();\n  constructor() {}\n\n  ngOnInit(): void {}\n  valueChanged() {\n    this.ngValueChange.emit(this.ngValue);\n  }\n}\n","<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\n  <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\n  <span class=\"checkbox\">\n    <span class=\"inner\"></span>\n  </span>\n  <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n    <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n    <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n  </svg>\n  <span class=\"value\"><ng-content></ng-content></span>\n</label>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-frequency-dialog-checkbox-list',\n  templateUrl: './frequency-dialog-checkbox-list.component.html',\n  styleUrls: ['./frequency-dialog-checkbox-list.component.less']\n})\nexport class FrequencyDialogCheckboxListComponent implements OnInit {\n\n  @Input() selectedType = 'WEEKLY';\n  @Input() id = -1;\n  @Input() listArray: Array<string> = [];\n  @Input() selectedIndex: Array<number> = [];\n  @Output() selectedCheckbox = new EventEmitter<any>();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"frequency-dialog-checkbox-list vx-d-flex\" [class.week]=\"id === 1\" [class.vx-align-center]=\"id === 1\" [class.month]=\"id === 2 || id === 4\" [class.vx-flex-wrap]=\"id === 2 || id === 4\">\n    <app-cs-checkbox\n    *ngFor=\"let eachList of listArray; let i = index;\"\n        [value]=\"i\" [ngValue]=\"selectedIndex.includes(i)\" \n        (ngValueChange)=\"selectedCheckbox.emit({checked:$event, index:i})\"\n        [disabled]=\"id === 4 && selectedIndex.length == 2 && !selectedIndex.includes(i)\"\n    >\n        <div class=\"vx-fs-12 vx-label-txt\">{{eachList}}</div>\n    </app-cs-checkbox>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-frequency-dialog-due-date',\n  templateUrl: './frequency-dialog-due-date.component.html',\n  styleUrls: ['./frequency-dialog-due-date.component.less']\n})\nexport class FrequencyDialogDueDateComponent implements OnInit {\n\n  defaultWindow: number = 1;;\n  defaultFailed: number = 0;;\n  defaultDeactivate: number = 0;;\n\n  @Input() completedValue = 5; // take input for completed\n  @Input() deactivateValue = 15;\n  @Input() isDeactivated = false;\n  @Input() id = 0;\n  @Input() pageName = '';\n\n  @Output() valueChange: EventEmitter<any> = new EventEmitter();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  onValueChange(event: any, actionType: any) {\n    if (!Number.isNaN(Number(event?.target?.value)) && parseInt(event.target.value) > 0) {\n      this.valueChange.emit({\n        type: actionType,\n        value: Number(event?.target?.value),\n        pageName: this.pageName,\n      });\n    } else {\n      if (actionType === 'completed') {\n        this.completedValue = this.defaultWindow;\n        this.valueChange.emit({\n          type: actionType,\n          value: this.defaultWindow,\n          pageName: this.pageName,\n        });\n      }\n    }\n  }\n}\n","<div class=\"frequency-dialog-due-date-item vx-p-3 vx-d-flex vx-align-center\">\n    <div class=\"vx-fs-13 vx-paragraph-txt vx-mr-2\">VComply will send email reminders every</div>\n    <input type=\"number\" [id]=\"'complete-' + id\"  [(ngModel)]=\"completedValue\" (change)=\"onValueChange($event, 'completed')\"\n    onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\n    <div class=\"vx-fs-13 vx-paragraph-txt vx-ml-2\">{{ completedValue < 2 ? 'day' : 'days' }} to <span class=\"vx-fw-500\">complete</span> the risk assessment if it is not done.</div>\n</div>\n<div *ngIf=\"false\" class=\"frequency-dialog-due-date-item vx-p-3 vx-d-flex vx-align-center\">\n    <div class=\"vx-fs-13 vx-paragraph-txt vx-mr-2\">VComply will send email reminders every</div>\n    <input type=\"number\" value=\"10\" />\n    <div class=\"vx-fs-13 vx-paragraph-txt vx-ml-2\">days to <span class=\"vx-fw-500\">not complete</span> the risk assessment if it is not done.</div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment';\nimport { FrequencyService } from '../services/frequency-dialog.service';\n\n@Component({\n  selector: 'app-frequency-dialog-weekly',\n  templateUrl: './frequency-dialog-weekly.component.html',\n  styleUrls: ['./frequency-dialog-weekly.component.less']\n})\nexport class FrequencyDialogWeeklyComponent implements OnInit {\n\n  weeklyInterval = '11:00 pm';\n  weeklyInput = 1;\n  weeklyWindow = 2;\n  weeklyLifeCycleStart = this.frequencyService.changeTimeZone(new Date());\n  weeklyLifeCycleEndTime = new Date(this.weeklyLifeCycleStart?.getTime() + 86400000);\n  weeklyLifecycleOccurance = 10;\n  selectedWeekly = [this.frequencyService.changeTimeZone(new Date())?.getDay() == 0 ? 6 : this.frequencyService.changeTimeZone(new Date())?.getDay() - 1];\n  weeklyDeactivatedValue = 10;\n  dayArray: Array<string> = [];\n\n  frequencyInfo: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n  constructor(private frequencyService: FrequencyService) { }\n\n  ngOnInit(): void {\n    this.dayArray = [...new Set(this.frequencyService.dayName)];\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    if(this.frequencyData?.pattern != '' && parseInt(this.frequencyData?.pattern?.split('~')[0]) === 2) {\n      this.populateFrequency();\n    }\n    this.getWeeklyFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~')\n    this.selectedWeekly = patternInfo[1].split(',').map((ele: any) => Number(ele) - 1);\n    this.weeklyInterval = this.frequencyData?.failedTime;\n    this.weeklyWindow = this.frequencyData?.window;\n    this.weeklyInput = patternInfo[3];\n    this.weeklyLifecycleOccurance = Number(patternInfo[3]);\n    this.startDate = this.frequencyData?.startFrom ?? this.frequencyData?.startDate;\n    this.weeklyLifeCycleStart = new Date((this.frequencyData?.startDate ?? this.frequencyData?.startDate) * 1000);\n    this.weeklyDeactivatedValue = this.frequencyData?.continuous_failed_days;\n  }\n\n  onTimeChanged(event:string) {\n    this.weeklyInterval = event;\n    this.getWeeklyFrequency();\n  }\n\n  valueChangedFirst(event: any) {\n    this.weeklyInput = event.value;\n    this.getWeeklyFrequency();\n   }\n\n   onDaySelected(event: any) {\n     if (event.checked) {\n      this.selectedWeekly.push(event.index);\n    } else {\n      this.selectedWeekly = this.selectedWeekly.filter((ele) => ele !== event.index);\n    }\n    this.getWeeklyFrequency();\n   }\n\n   lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\n    }\n    this.weeklyLifeCycleStart = new Date(this.startDate * 1000);\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getWeeklyFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'deactivated') {\n      this.weeklyDeactivatedValue = event.value;\n    } else if (event.type === 'completed') {\n      this.weeklyWindow = event.value;\n    } else {\n      // this.weeklyFailed = event.value;\n    }\n    this.getWeeklyFrequency();\n}\n\n  getWeeklyFrequency() {\n    this.selectedWeekly = this.selectedWeekly.sort((n1, n2) => n1 - n2);\n    this.frequencyInfo.placeholder = this.getPlaceholder(Number(this.weeklyInput))\n    this.frequencyInfo.pattern = 2 + '~' + this.selectedWeekly.map((ele) => ele + 1).join(',') + '~' + '0' + '~' + this.weeklyInput;\n    this.frequencyInfo.case = 'week';\n    this.frequencyInfo.window = this.weeklyWindow;\n    this.frequencyInfo.timeIn12hr = this.weeklyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.weeklyInterval);\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate ?? Math.floor(Date.now()/1000);\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.continuous_failed_days = this.weeklyDeactivatedValue;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getPlaceholder(weeklyInput: number) {\n    let placeholder = '';\n    weeklyInput = Number(weeklyInput)\n\n    const selectedDay = this.selectedWeekly.map((ele) => {\n      return this.frequencyService.dayName[ele];\n    });\n    if (weeklyInput === 1) {\n     placeholder = 'Every ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\n    }\n    if (weeklyInput === 2) {\n     placeholder = 'Every alternate ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\n    }\n    if (weeklyInput === 3) {\n     placeholder = 'Every 3rd ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\n    }\n    if (weeklyInput > 3) {\n     placeholder = 'Every ' + this.weeklyInput + 'th ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\n    }\n    return placeholder;\n  }\n\n}\n","<div class=\"frequency-dialog-weekly\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-weekly-item vx-mb-5\">\n        <app-frequency-dialog-top\n            [id]=\"1\"\n            [inputTime]=\"weeklyInterval\"\n            [occurrenceFirst]=\"weeklyInput\"\n            [frequencyType]=\"1\"\n            (timeChanged)=\"onTimeChanged($event)\"\n            (valueChangedFirst)=\"valueChangedFirst($event)\">\n        </app-frequency-dialog-top>\n        <app-frequency-dialog-checkbox-list \n            [id]=\"1\"\n            [listArray]=\"dayArray\"\n            [selectedIndex]=\"selectedWeekly\"\n            (selectedCheckbox)=\"onDaySelected($event)\">\n        </app-frequency-dialog-checkbox-list>\n    </div>\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\n    <div class=\"frequency-dialog-weekly-item vx-mb-5\">\n        <app-frequency-dialog-due-date\n            [id] = '1'\n            [pageName]=\"'weekly'\"\n            [deactivateValue]=\"weeklyDeactivatedValue\"\n            [isDeactivated]=\"true\"\n            [completedValue]=\"weeklyWindow\"\n            (valueChange)=\"onValueChange($event)\">\n        </app-frequency-dialog-due-date>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment';\nimport { FrequencyService } from '../services/frequency-dialog.service';\n\n@Component({\n  selector: 'app-frequency-dialog-monthly',\n  templateUrl: './frequency-dialog-monthly.component.html',\n  styleUrls: ['./frequency-dialog-monthly.component.less']\n})\nexport class FrequencyDialogMonthlyComponent implements OnInit {\n\n\n  monthlyInterval = '11:00 pm';\n  monthlyInput = this.frequencyService.changeTimeZone(new Date())?.getDate();\n  monthlyFailed = 5;\n  monthlyWindow = 7;\n\n  monthlyLifeCycleStart = this.frequencyService.changeTimeZone(new Date());\n  monthlyLifeCycleEndTime = new Date(this.monthlyLifeCycleStart?.getTime() + 86400000);\n  monthlyLifecycleOccurance = 10;\n  monthlySeletedLifecycleType = 2;\n  selectedMonthly = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n  monthlyDeactivatedValue = 10;\n  frequencyInfo: any;\n  monthNameArray: Array<string> = [];\n  shortMonth:Array<string> = [];\n\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) { }\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService?.frequencyInfo);\n    this.monthNameArray = [...new Set(this.frequencyService?.monthArray)];\n    this.shortMonth = this.frequencyService?.monthArray.map(month => month.substring(0, 3));\n    if(this.frequencyData?.pattern != '' && parseInt(this.frequencyData?.pattern.split('~')[0]) === 3) {\n      this.populateFrequency();\n    }\n    this.getMonthlyFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~');\n    this.selectedMonthly = patternInfo[2].split(',').map((ele: any) => Number(ele) - 1)\n    this.monthlyInterval = this.frequencyData?.failedTime;\n    this.monthlyWindow = this.frequencyData?.window;\n    this.monthlyInput = Number(patternInfo[1]);\n\n    this.monthlyLifecycleOccurance = Number(patternInfo[1]);\n    this.startDate = this.frequencyData?.startDate\n    this.monthlyLifeCycleStart = new Date(this.frequencyData?.startDate * 1000);\n    this.monthlyFailed = this.frequencyData?.failed;\n    this.monthlyDeactivatedValue = this.frequencyData?.continuous_failed_days\n    this.lifecycleDetails = this.frequencyData?.lifecycle;\n    if(  this.frequencyData?.lifecycle == '0000-00-00~~0') {\n      this.monthlySeletedLifecycleType = 2;\n    } else {\n      this.monthlySeletedLifecycleType = 1;\n    }\n  }\n\n  valueChangedFirst(event: any) {\n    this.monthlyInput = event.value;\n    this.getMonthlyFrequency();\n   }\n\n   onTimeChanged(event:string) {\n    this.monthlyInterval = event;\n    this.getMonthlyFrequency();\n  }\n\n\n  onMonthSelected(event: any) {\n    if (event.checked) {\n     this.selectedMonthly.push(event.index);\n   } else {\n     this.selectedMonthly = this.selectedMonthly.filter((ele) => ele !== event.index);\n   }\n   this.getMonthlyFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\n    }\n    this.monthlyLifeCycleStart = new Date(this.startDate * 1000);\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getMonthlyFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'deactivated') {\n      this.monthlyDeactivatedValue = event.value;\n    } else if (event.type === 'completed') {\n      this.monthlyWindow = event.value;\n    } else {\n      this.monthlyFailed = event.value;\n    }\n    this.getMonthlyFrequency();\n}\n\n  getMonthlyFrequency(){\n    this.selectedMonthly = this.selectedMonthly.sort((n1, n2) => n1 - n2);   \n    const monthIndex = this.selectedMonthly.map((ele) => ele + 1);\n    this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(Number(this.monthlyInput));\n    this.frequencyInfo.pattern = 3 + '~' + this.monthlyInput + '~' + monthIndex + '~' + '0';\n    this.frequencyInfo.case = 'month';\n    this.frequencyInfo.failedAfter = this.monthlyFailed;\n    this.frequencyInfo.window = this.monthlyWindow;\n    this.frequencyInfo.timeIn12hr = this.monthlyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.monthlyInterval);\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = Math.floor(this.monthlyLifeCycleStart?.getTime()/1000);\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.continuous_failed_days = this.monthlyDeactivatedValue;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getFrequencyPlaceholder(monthlyInput: number) {\n    const selectedMonth = this.selectedMonthly.map((ele) => {\n      return this.shortMonth[ele];\n    });\n    let placeholder = '';\n    if (monthlyInput === 1) {\n     placeholder = '1st of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\n    } else if (monthlyInput === 2) {\n     placeholder = '2nd of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\n    } else if (monthlyInput === 3) {\n     placeholder = '3rd of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\n    } else if (monthlyInput === 21 || monthlyInput === 31) {\n     placeholder = monthlyInput + 'st of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\n    } else if (monthlyInput === 22) {\n     placeholder = monthlyInput + 'nd of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\n    } else if (monthlyInput === 23) {\n     placeholder = monthlyInput + 'rd of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\n    } else if (monthlyInput > 3) {\n     placeholder = monthlyInput + 'th of every ' + selectedMonth.join(', ') + ' by ' + this.monthlyInterval;\n    }\n    return placeholder;\n  }\n\n\n}\n","<div class=\"frequency-dialog-monthly\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-monthly-item vx-mb-5\">\n        <app-frequency-dialog-top\n            [id]=\"2\"\n            [inputTime]=\"monthlyInterval\"\n            [occurrenceFirst]=\"monthlyInput\"\n            [frequencyType]=\"3\"\n            (timeChanged)=\"onTimeChanged($event)\"\n            (valueChangedFirst)=\"valueChangedFirst($event)\">\n        </app-frequency-dialog-top>\n        <app-frequency-dialog-checkbox-list \n            [id]=\"2\"\n            [listArray]=\"monthNameArray\"\n            [selectedIndex]=\"selectedMonthly\"\n            (selectedCheckbox)=\"onMonthSelected($event)\">\n        </app-frequency-dialog-checkbox-list>\n    </div>\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\n    <div class=\"frequency-dialog-monthly-item vx-mb-5\">\n        <app-frequency-dialog-due-date \n        [id] = '2'\n        [pageName]=\"'monthly'\"\n        [deactivateValue]=\"monthlyDeactivatedValue\"\n        [isDeactivated]=\"true\"\n        [completedValue]=\"monthlyWindow\"\n        (valueChange)=\"onValueChange($event)\"></app-frequency-dialog-due-date>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-frequency-dialog-radio-list',\n  templateUrl: './frequency-dialog-radio-list.component.html',\n  styleUrls: ['./frequency-dialog-radio-list.component.less']\n})\nexport class FrequencyDialogRadioListComponent implements OnInit {\n\n  noAnimation = true;\n  @Input() radioList = [];\n  @Input() selectedIndex = -1;\n  @Input() name = ''\n  @Output() selectedRadio = new EventEmitter();\n  constructor() { }\n\n  ngOnInit(): void {\n    setTimeout(() => {\n      this.noAnimation = false;\n    }, 1000);\n  }\n\n}\n","<div class=\"frequency-dialog-radio-list vx-d-flex \" [class.vx-align-center]=\"name === 'quarter'\" [class.quarterly]=\"name === 'quarter'\" [class.vx-flex-wrap]=\"name === 'annual'\" [class.yearly]=\"name === 'annual'\">\n    <app-cs-radio \n        *ngFor=\"let eachList of radioList; let i = index;\" \n        [id]=\"i\" \n        [value]=\"i\" \n        [name]=\"name\"\n        [checked]=\"(selectedIndex === i)\" \n        (checkedEvent)=\"selectedRadio.emit($event)\">\n        <div class=\"vx-fs-12 vx-label-txt\">{{eachList}}</div>\n    </app-cs-radio>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment';\nimport { FrequencyService } from '../services/frequency-dialog.service';\n\n@Component({\n  selector: 'app-frequency-dialog-quarterly',\n  templateUrl: './frequency-dialog-quarterly.component.html',\n  styleUrls: ['./frequency-dialog-quarterly.component.less']\n})\nexport class FrequencyDialogQuarterlyComponent implements OnInit {\n\n  quarterlyInterval = '11:00 pm';\n  quarterlyInput = this.frequencyService.changeTimeZone(new Date())?.getDate();\n  quarterlyFailed = 5;\n  quarterlyWindow = 7;\n  selectedQuarterly = 1;\n  quarterlyLifeCycleStart = this.frequencyService.changeTimeZone(new Date());\n  quarterlyLifeCycleEndTime = new Date(this.quarterlyLifeCycleStart?.getTime() + 86400000);\n  quarterlyLifecycleOccurance = 10;\n  quarterlySeletedLifecycleType = 2;\n  quarterlyGroup = [0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11];\n  frequencyInfo: any\n  quarterlyArray: Array<string> = [];\n\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) { }\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService?.frequencyInfo);\n    this.quarterlyArray = [...new Set(this.frequencyService.quarterlyMonth)];\n    const indexOfMonth = this.quarterlyGroup.indexOf(this.frequencyService.changeTimeZone(new Date())?.getMonth());\n    this.selectedQuarterly = indexOfMonth < 4 ? 0 : indexOfMonth > 3 && indexOfMonth < 8 ? 1 : 2;\n    if(this.frequencyData?.pattern != '' && parseInt(this.frequencyData?.pattern?.split('~')[0]) === 7) {\n      this.populateFrequency();\n    }\n    this.getQuarterlyFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~');\n    const month = parseInt(patternInfo[2].split(',').map(Number)[0]);\n    const index = this.quarterlyGroup.indexOf(month - 1);\n    this.selectedQuarterly = index < 4 ? 0 : index > 3 && index < 8 ? 1 : 2;\n    this.quarterlyInterval = this.frequencyData?.failedTime;\n    this.quarterlyWindow = this.frequencyData?.window;\n    this.quarterlyInput = patternInfo[1];\n    this.quarterlyLifecycleOccurance = Number(patternInfo[1]);\n    this.startDate = this.frequencyData?.startDate;\n    this.quarterlyLifeCycleStart = new Date(this.frequencyData?.startDate * 1000);\n    this.quarterlyFailed = this.frequencyData?.failed;\n    this.lifecycleDetails = this.frequencyData?.lifecycle;\n  }\n\n\n  valueChangedFirst(event: any) {\n    this.quarterlyInput = event.value;\n    this.getQuarterlyFrequency();\n   }\n\n   onTimeChanged(event:string) {\n    this.quarterlyInterval = event;\n    this.getQuarterlyFrequency();\n  }\n\n  selectedMonth(event: any) {\n    this.selectedQuarterly = parseInt(event.target.value);\n    this.getQuarterlyFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getQuarterlyFrequency();\n  }\n\n\n  onValueChange(event: any) {\n        if (event.type === 'completed') {\n          this.quarterlyWindow = event.value;\n        } else {\n          this.quarterlyFailed = event.value;\n        }\n        this.getQuarterlyFrequency();\n  }\n\n  getQuarterlyFrequency() {\n    let monthSequence = this.selectedQuarterly === 0 ? this.quarterlyGroup.slice(0, 4) : this.selectedQuarterly === 1 ? this.quarterlyGroup.slice(4, 8) : this.quarterlyGroup.slice(8);\n    monthSequence = monthSequence.map((ele) => ele + 1);\n    this.frequencyInfo.pattern = 7 + '~' + this.quarterlyInput + '~' + monthSequence + '~' + '0';\n    this.frequencyInfo.case = 'quarterly';\n    this.frequencyInfo.failedAfter = this.quarterlyFailed;\n    this.frequencyInfo.window = this.quarterlyWindow;\n    this.frequencyInfo.timeIn12hr = this.quarterlyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.quarterlyInterval);\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.placeholder = this.getPlaceholder(Number(this.quarterlyInput));\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getPlaceholder(quarterlyInput: number) {\n    let placeholder = '';\n    if (quarterlyInput === 1) {\n      placeholder = '1st of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\n    } else if (quarterlyInput === 2) {\n      placeholder = '2nd of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\n    } else if (quarterlyInput === 3) {\n      placeholder = '3rd of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\n    } else if (quarterlyInput === 21 || quarterlyInput === 31) {\n      placeholder = quarterlyInput + 'st of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\n    } else if (quarterlyInput === 22) {\n      placeholder = quarterlyInput + 'nd of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\n    } else if (quarterlyInput === 23) {\n      placeholder = quarterlyInput + 'rd of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\n    } else if (quarterlyInput > 3) {\n      placeholder = quarterlyInput + 'th of every ' + this.quarterlyArray[this.selectedQuarterly] + ' by ' + this.quarterlyInterval;\n    }\n    return placeholder;\n  }\n}\n","<div class=\"frequency-dialog-quarterly\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-quarterly-item vx-mb-5\">\n        <app-frequency-dialog-top\n            [id]=\"3\"\n            [inputTime]=\"quarterlyInterval\"\n            [occurrenceFirst]=\"quarterlyInput\"\n            [frequencyType]=\"3\"\n            (timeChanged)=\"onTimeChanged($event)\"\n            (valueChangedFirst)=\"valueChangedFirst($event)\">\n        </app-frequency-dialog-top>\n        <app-frequency-dialog-radio-list\n            [radioList]=\"quarterlyArray\" \n            [selectedIndex]=\"selectedQuarterly\" \n            (selectedRadio)=\"selectedMonth($event)\"\n            [name]=\"'quarter'\">\n        </app-frequency-dialog-radio-list>\n    </div>\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\n    <div class=\"frequency-dialog-quarterly-item vx-mb-5\">\n        <app-frequency-dialog-due-date\n            [id] = '3'\n            [pageName]=\"'quarterly'\"\n            [isDeactivated]=\"false\"\n            [completedValue]=\"quarterlyWindow\"\n            (valueChange)=\"onValueChange($event)\">\n        </app-frequency-dialog-due-date>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment';\nimport { FrequencyService } from '../services/frequency-dialog.service';\n\n@Component({\n  selector: 'app-frequency-dialog-biannual',\n  templateUrl: './frequency-dialog-biannual.component.html',\n  styleUrls: ['./frequency-dialog-biannual.component.less']\n})\nexport class FrequencyDialogBiannualComponent implements OnInit {\n\n  biannualInterval = '11:00 pm';\n  biannualInput = this.frequencyService.changeTimeZone(new Date())?.getDate();\n  biannualFailed = 5;\n  biannualWindow = 30;\n  biannualDay = this.frequencyService.changeTimeZone(new Date())?.getDate();\n  biannualLifeCycleStart = this.frequencyService.changeTimeZone(new Date());\n  biannualLifeCycleEndTime = new Date(this.biannualLifeCycleStart?.getTime() + 86400000);\n  biannualLifecycleOccurance = 10;\n  biannualSeletedLifecycleType = 2;\n  biannualSelected: Array<number> = [];\n  biannualLifecycle = false;\n  frequencyInfo: any;\n  monthNameArray: Array<string> = [];\n  shortMonth: Array<string> = [];\n  selectedMonthly: Array<number> = [];\n\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n  constructor(private frequencyService: FrequencyService) { }\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.monthNameArray = [...new Set(this.frequencyService.monthArray)];\n    this.shortMonth = this.frequencyService.monthArray.map(month => month.substring(0, 3));\n    if(this.frequencyData?.pattern != '' && parseInt(this.frequencyData?.pattern.split('~')[0]) === 9) {\n      this.populateFrequency();\n    }\n    this.getBiannualFrequency()\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~')\n    this.biannualSelected = patternInfo[2].split(',').map((ele: any) => Number(ele) - 1)\n    this.biannualInterval = this.frequencyData?.failedTime;\n    this.biannualWindow = this.frequencyData?.window;\n    this.biannualInput = patternInfo[1];\n    this.biannualLifecycleOccurance = Number(patternInfo[1]);\n    this.biannualLifeCycleStart = new Date(this.frequencyData?.startDate * 1000) \n    this.biannualFailed = this.frequencyData?.failed;\n    this.lifecycleDetails = this.frequencyData?.lifecycle;\n  }\n\n  onMonthSelected(event: any) {\n    if (event.checked) {\n     this.biannualSelected.push(event.index);\n   } else {\n     this.biannualSelected = this.biannualSelected.filter((ele) => ele !== event.index);\n   }\n   this.getBiannualFrequency();\n  }\n\n  valueChangedFirst(event: any) {\n    this.biannualInput = event.value;\n    this.getBiannualFrequency();\n   }\n\n   onTimeChanged(event:string) {\n    this.biannualInterval = event;\n    this.getBiannualFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.biannualWindow = event.value;\n    } else {\n      this.biannualFailed = event.value;\n    }\n    this.getBiannualFrequency();\n}\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getBiannualFrequency();\n  }\n\n  getBiannualFrequency() {\n    this.biannualSelected = this.biannualSelected.sort((n1, n2) => n1 - n2);\n    const monthIndex = this.biannualSelected.map((ele) => ele + 1);\n    this.frequencyInfo.pattern = 9 + '~' + this.biannualInput + '~' + monthIndex.join(',') + '~0';\n    this.frequencyInfo.case = 'biannual';\n    this.frequencyInfo.failedAfter = this.biannualFailed;\n    this.frequencyInfo.window = this.biannualWindow;\n    this.frequencyInfo.timeIn12hr = this.biannualInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.biannualInterval);\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(Number(this.biannualInput));\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getFrequencyPlaceholder(biannualInput: number) {\n    let placeholder = '';\n    const selectedMonth = this.biannualSelected.map((ele) => {\n      return this.shortMonth[ele];\n    });\n\n    if (biannualInput === 1) {\n      placeholder = '1st of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\n    } else if (biannualInput === 2) {\n      placeholder = '2nd of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\n    } else if (biannualInput === 3) {\n      placeholder = '3rd of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\n    } else if (biannualInput === 21 || biannualInput === 31) {\n      placeholder = biannualInput + 'st of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\n    } else if (biannualInput === 22) {\n      placeholder = biannualInput + 'nd of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\n    } else if (biannualInput === 23) {\n      placeholder = biannualInput + 'rd of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\n    } else if (biannualInput > 3) {\n      placeholder = biannualInput + 'th of every ' + selectedMonth.join(', ') + ' by ' + this.biannualInterval;\n    }\n    return placeholder;\n  }\n\n}\n","<div class=\"frequency-dialog-biannual\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-biannual-item vx-mb-5\">\n        <app-frequency-dialog-top\n            [id]=\"4\"\n            [inputTime]=\"biannualInterval\"\n            [occurrenceFirst]=\"biannualInput\"\n            [frequencyType]=\"4\"\n            (timeChanged)=\"onTimeChanged($event)\"\n            (valueChangedFirst)=\"valueChangedFirst($event)\">\n        </app-frequency-dialog-top>\n        <app-frequency-dialog-checkbox-list\n            [id]=\"4\"\n            [listArray]=\"monthNameArray\"\n            [selectedIndex]=\"biannualSelected\"\n            (selectedCheckbox)=\"onMonthSelected($event)\">\n        </app-frequency-dialog-checkbox-list>\n    </div>\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\n    <div class=\"frequency-dialog-biannual-item vx-mb-5\">\n        <app-frequency-dialog-due-date\n            [pageName]=\"'biannual'\"\n            [id]=\"4\"\n            [completedValue]=\"biannualWindow\"\n            (valueChange)=\"onValueChange($event)\">\n        </app-frequency-dialog-due-date>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment';\nimport { FrequencyService } from '../services/frequency-dialog.service';\n\n@Component({\n  selector: 'app-frequency-dialog-annual',\n  templateUrl: './frequency-dialog-annual.component.html',\n  styleUrls: ['./frequency-dialog-annual.component.less']\n})\nexport class FrequencyDialogAnnualComponent implements OnInit {\n\n  monthList: Array<any> = [];\n  yearlyInterval: string = '11:00 pm';\n  yearlyInput: number = 1;\n  yearlyFailed: number = 5;\n  yearlyWindow: number = 30;\n  yearlyDay = this.frequencyService.changeTimeZone(new Date())?.getDate();\n  yearlyLifeCycleStart = new Date();\n  yearlyLifeCycleEndTime = new Date(this.yearlyLifeCycleStart.getTime() + 86400000);\n  yearlyLifecycleOccurance: number = 10;\n  yearlySeletedLifecycleType: number = 2;\n  yearlySelected = this.frequencyService.changeTimeZone( new Date())?.getMonth();\n  lifecycleDetails: any = '0000-00-00~~0';\n  previousStartDate = Math.floor(Date.now() / 1000);\n  frequencyInfo: any;\n  shortMonth:Array<string> = [];\n\n  @Input() frequencyData: any;\n\n  @Input() startDate = Math.floor(Date.now() / 1000);\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n\n  constructor(private frequencyService: FrequencyService) { }\n\n  ngOnInit(): void {\n    this.monthList = this.frequencyService.monthArray;\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.shortMonth = this.frequencyService.monthArray.map(month => month.substring(0, 3));\n    if(this.frequencyData?.pattern != '' && parseInt(this.frequencyData?.pattern.split('~')[0]) === 4) {\n      this.populateFrequency();\n    }\n    this.getAnnualFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~').map(Number);\n    this.yearlySelected = patternInfo[2] - 1;\n    this.yearlyInterval = this.frequencyData?.failedTime;\n    this.yearlyWindow = this.frequencyData?.window;\n    this.yearlyInput = patternInfo[3];\n    this.yearlyDay = patternInfo[1]\n    this.yearlyLifecycleOccurance = Number(patternInfo[1]);\n    this.yearlyLifeCycleStart = new Date(this.frequencyData?.startDate * 1000)\n    this.startDate = this.frequencyData?.startFrom ?? this.frequencyData?.startDate\n    this.yearlyFailed = this.frequencyData?.failed;\n    this.lifecycleDetails = this.frequencyData?.lifecycle;\n  }\n\n  onTimeChanged(event:string) {\n    this.yearlyInterval = event;\n    this.getAnnualFrequency();\n  }\n\n  dateChange(event: number) {\n    this.yearlyDay = event;\n    this.getAnnualFrequency();\n  }\n\n  valueChangedFirst(event: any) {\n   this.yearlyInput = event.value;\n   this.getAnnualFrequency();\n  }\n\n  selectedMonth(event: any) {\n    this.yearlySelected = parseInt(event.target.value);\n    this.getAnnualFrequency();\n  }\n\n  lifecycleChange(event: any) {\n\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix() : endByDate;\n\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getAnnualFrequency();\n  }\n\n\n  onValueChange(event: any) {\n        if (event.type === 'completed') {\n          this.yearlyWindow = event.value;\n        } else {\n          this.yearlyFailed = event.value;\n        }\n        this.getAnnualFrequency();\n  }\n\n\n  // frequency pattern and details info\n  getAnnualFrequency() {\n    this.frequencyInfo.placeholder =  this.getFrequencyPlaceholder(Number(this.yearlyInput));\n    this.frequencyInfo.pattern = 4 + '~' + this.yearlyDay + '~' + (this.yearlySelected + 1) + '~' + this.yearlyInput;\n    this.frequencyInfo.case = 'yearly';\n    this.frequencyInfo.failedAfter = this.yearlyFailed;\n    this.frequencyInfo.window = this.yearlyWindow;\n    this.frequencyInfo.timeIn12hr = this.yearlyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.yearlyInterval);\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getFrequencyPlaceholder(yearlyInput: any) { \n    let placeholder = '';\n    if(yearlyInput === 1) {\n      placeholder =  this.getPlaceholderForSt2(); \n    } else {\n      placeholder =  this.getPlaceholderForGt1()\n    }\n    return placeholder;\n  }\n\n  // if yearlyInput is smaller than 2 then this function will called\n  getPlaceholderForSt2() {\n    let placeholder = '';\n    if (this.yearlyDay === 1) {\n      placeholder = '1st of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay === 2) {\n      placeholder = '2nd of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay === 3) {\n      placeholder = '3rd of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay > 3) {\n      placeholder = this.yearlyDay + 'th of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay === 31 || this.yearlyDay === 21) {\n      placeholder = this.yearlyDay + 'st of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay === 22) {\n      placeholder = this.yearlyDay + 'nd of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay === 23) {\n      placeholder = this.yearlyDay + 'rd of every ' + this.shortMonth[this.yearlySelected] + ' by ' + this.yearlyInterval;\n    }\n    return placeholder;\n  }\n\n  // if yearlyInput is greater than 1 then this function will called\n  getPlaceholderForGt1() {\n    let placeholder = '';\n    if (this.yearlyDay === 1) {\n      placeholder = '1st of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay === 2) {\n      placeholder = '2nd of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay === 3) {\n      placeholder = '3rd of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay > 3) {\n      placeholder = this.yearlyDay + 'th of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay === 31 || this.yearlyDay === 21) {\n      placeholder = this.yearlyDay + 'st of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay === 22) {\n      placeholder = this.yearlyDay + 'nd of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\n    }\n    if (this.yearlyDay === 23) {\n      placeholder = this.yearlyDay + 'rd of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;\n    }\n    return placeholder;\n\n  }\n}\n","<div class=\"frequency-dialog-annual\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-annual-item vx-mb-5\">\n        <app-frequency-dialog-top\n            [id]=\"5\"\n            [inputTime]=\"yearlyInterval\"\n            [occurrenceFirst]=\"yearlyInput\"\n            [yearlyDay]=\"yearlyDay\"\n            [frequencyType]=\"2\"\n            (timeChanged)=\"onTimeChanged($event)\"\n            (valueChangedFirst)=\"valueChangedFirst($event)\"\n            (yearlyDateChanged)=\"dateChange($event)\">\n        </app-frequency-dialog-top>\n        <app-frequency-dialog-radio-list\n            [radioList]=\"monthList\" \n            [selectedIndex]=\"yearlySelected\" \n            (selectedRadio)=\"selectedMonth($event)\"\n            [name]=\"'annual'\">\n        </app-frequency-dialog-radio-list>\n    </div>\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\n    <div class=\"frequency-dialog-annual-item vx-mb-5\">\n        <app-frequency-dialog-due-date\n            [pageName]=\"'yearly'\"\n            [id]=\"5\"\n            [completedValue]=\"yearlyWindow\"\n            (valueChange)=\"onValueChange($event)\">\n        </app-frequency-dialog-due-date>\n    </div>\n</div>","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport moment from 'moment';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { FrequencyService } from '../services/frequency-dialog.service';\nimport { DatePickerService } from '../../services/date-picker.service';\n@Component({\n  selector: 'app-frequency-dialog-one-time',\n  templateUrl: './frequency-dialog-one-time.component.html',\n  styleUrls: ['./frequency-dialog-one-time.component.less'],\n})\nexport class FrequencyDialogOneTimeComponent implements OnInit {\n  timeData = '11:00 pm';\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n  datepickerOverlay = false;\n  showDateError = false;\n  oneTimeFailed = 5;\n  oneTimeWindow = 15;\n  oneTimeStartTime: any = '11:00 pm';\n  oneTimeSelected = '';\n  dateConfig: any;\n  todayDate = this.frequencyService.changeTimeZone(\n    new Date()?.setDate(new Date()?.getDate() + 1)\n  );\n  frequencyInfo: any;\n  shortMonth: Array<string> = [];\n  dateObjectData = this.frequencyService.changeTimeZone(\n    new Date()?.setDate(new Date()?.getDate() + 1)\n  );\n  minDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')?.split(' ')[0];\n  selectedDate: any;\n  @Input() frequencyData: any;\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(\n    private frequencyService: FrequencyService,\n    private datePickerService: DatePickerService\n  ) {}\n\n  ngOnInit(): void {\n    this.dateConfig = this.frequencyService.dateConfig;\n    this.dateConfig['min'] = this.frequencyService?.formatDate();\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.shortMonth = this.frequencyService.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    this.selectedDate = moment(this.todayDate);\n    if (\n      this.frequencyData?.pattern != '' &&\n      this.frequencyData?.pattern.split('~')[0] === '0'\n    ) {\n      this.populateFrequency();\n    } else {\n      this.getOneTimeFrequency();\n    }\n  }\n\n  openDatePicker() {\n    const newDate: any = moment(this.todayDate);\n    this.datePicker?.api?.open();\n    this.datePicker?.api?.moveCalendarTo(newDate);\n    this.datepickerOverlay = true;\n  }\n\n  closeDatepicker() {\n    this.datePicker?.api?.close();\n    this.datepickerOverlay = false;\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~');\n    const timeStamp = moment(\n      `${patternInfo[3]}-${patternInfo[2]}-${patternInfo[1]} ${this.frequencyData?.failedTime}`,\n      'DD-MM-YYYY HH:mm a'\n    ).unix();\n    this.todayDate = new Date(timeStamp * 1000);\n    this.selectedDate = moment(this.todayDate);\n    this.oneTimeFailed = this.frequencyData?.failed;\n    this.oneTimeWindow = this.frequencyData?.window;\n    this.oneTimeStartTime = this.frequencyData?.failedTime;\n    this.oneTimeSelected =\n      patternInfo[1] + '~' + patternInfo[2] + '~' + patternInfo[3];\n    this.dateObjectData = new Date(\n      moment(\n        this.oneTimeSelected + ' ' + this.oneTimeStartTime,\n        'YYYY~MM~DD HH:mm:ss'\n      ).unix() * 1000\n    );\n    this.getOneTimeFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.oneTimeWindow = event?.value;\n    } else {\n      this.oneTimeFailed = event?.value;\n    }\n    this.closeDatepicker();\n    this.getOneTimeFrequency();\n  }\n\n  onTimeChanged(event: string) {\n    this.oneTimeStartTime = event;\n    if (typeof this.dateObjectData == 'object') {\n      this.dateObjectData = moment(this.dateObjectData).toDate();\n    }\n    let timeStamp = moment(\n      this.dateObjectData.getDate() +\n        '-' +\n        (this.dateObjectData.getMonth() + 1) +\n        '-' +\n        this.dateObjectData.getFullYear() +\n        ' ' +\n        this.oneTimeStartTime,\n      'DD-MM-YYYY hh:mm a'\n    ).unix();\n    this.oneTimeSelected = moment(timeStamp * 1000)\n      .format('YYYY~MM~DDTHH:mm:ssZ')\n      .split('T')[0];\n    this.getOneTimeFrequency();\n  }\n\n  dateChange(event: any) {\n    this.selectedDate = event?.date?.$d;\n    const newDate = moment(this.selectedDate)?.unix();\n    this.dateObjectData = new Date(newDate * 1000);\n    this.todayDate = this.dateObjectData;\n    let timeStamp = moment(\n      this.dateObjectData?.getDate() +\n        '-' +\n        (this.dateObjectData?.getMonth() + 1) +\n        '-' +\n        this.dateObjectData?.getFullYear() +\n        ' ' +\n        this.oneTimeStartTime,\n      'DD-MM-YYYY hh:mm a'\n    ).unix();\n    const momentDate = moment(event?.date?.$d);\n    this.oneTimeSelected = momentDate\n      .format('YYYY~MM~DDTHH:mm:ssZ')\n      .split('T')[0];\n    this.getOneTimeFrequency();\n  }\n\n  getOneTimeFrequency() {\n    if (this.oneTimeSelected !== '') {\n      this.todayDate = moment(this.todayDate).toDate();\n    }\n    this.selectedDate = moment(this.todayDate);\n    this.frequencyInfo.placeholder =\n      'One Time ' +\n      this.todayDate?.getDate() +\n      ' ' +\n      this.shortMonth[this.todayDate?.getMonth()] +\n      ' ' +\n      this.todayDate?.getFullYear() +\n      ' by ' +\n      this.oneTimeStartTime;\n    this.frequencyInfo.pattern =\n      0 +\n      '~' +\n      (this.oneTimeSelected === ''\n        ? this.frequencyService\n            .changeTimeZone(new Date()?.setDate(new Date()?.getDate() + 1))\n            ?.getFullYear() +\n          '~' +\n          (this.frequencyService\n            .changeTimeZone(new Date()?.setDate(new Date()?.getDate() + 1))\n            ?.getMonth() +\n            1) +\n          '~' +\n          this.frequencyService\n            .changeTimeZone(new Date()?.setDate(new Date()?.getDate() + 1))\n            ?.getDate()\n        : this.oneTimeSelected);\n    this.frequencyInfo.case = 'oneTime';\n    this.frequencyInfo.failedAfter = this.oneTimeFailed;\n    this.frequencyInfo.window = this.oneTimeWindow;\n    this.frequencyInfo.timeIn12hr = this.oneTimeStartTime;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.oneTimeStartTime\n    );\n    this.frequencyInfo.failed_time_utc = 0;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'frequency-date',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datepickerOverlay,\n    };\n    this.datePickerService?.handleDocumentClick(datePickerObject);\n  }\n}\n","<div class=\"frequency-dialog-one-time\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-one-time-item vx-p-3 vx-d-flex vx-align-center vx-justify-between vx-mb-5\">\n        <div class=\"date-picker\">\n            <i class=\"icons calendar-icon vx-fs-14 vx-txt-blue\">&#xe92d;</i>\n            <input class=\"datePicker vx-fs-13 vx-paragraph-txt vx-pl-2 vx-w-100\"  [value]=\"todayDate | date: 'dd MMM yyyy'\" [placeholder]=\"todayDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker()\" placeholder=\"Select Date\" id=\"frequency-date\"/>\n            <dp-date-picker #datePicker [id]=\"'start-date-' + 6\"\n            [placeholder]=\"todayDate | date: 'dd MMM yyyy'\"\n            [(ngModel)]=\"selectedDate\"\n            [config]=\"dateConfig\"\n            (onSelect)=\"openDatePicker();dateChange($event); showDateError = false; datepickerOverlay = false\"></dp-date-picker>\n            <div class=\"overlay\" (click)=\"closeDatepicker()\" *ngIf=\"datepickerOverlay\"></div>\n        </div>\n        <div class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\">\n            <input type=\"text\" readonly aria-label=\"12hr format\" [(ngModel)]=\"oneTimeStartTime\" [ngxTimepicker]=\"dailyTime\" placeholder=\"11:00 PM\">\n            <i class=\"icons vx-fs-12 vx-txt-blue\">&#xe955;</i>\n            <ngx-material-timepicker (timeSet)=\"onTimeChanged($event)\" [hoursOnly]=\"true\" #dailyTime></ngx-material-timepicker>\n        </div>\n    </div>\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\n    <div class=\"frequency-dialog-one-time-item vx-mb-5\">\n        <app-frequency-dialog-due-date\n        [id] = '6'\n        [pageName]=\"'one-time'\"\n        [isDeactivated]=\"false\"\n        [completedValue]=\"oneTimeWindow\"\n        (valueChange)=\"onValueChange($event)\">\n    </app-frequency-dialog-due-date>\n    </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment';\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\nimport { FrequencyService } from '../services/frequency-dialog.service';\n\n@Component({\n  selector: 'app-frequency-dialog-container',\n  templateUrl: './frequency-dialog-container.component.html',\n  styleUrls: ['./frequency-dialog-container.component.less']\n})\nexport class FrequencyDialogContainerComponent implements OnInit {\n  animation!: boolean;\n\n  frequencyDetails: any ={\n    pattern: '',\n    window: 0,\n    timeIn12hr: '',\n  };\n  currentTabName = 'a weekly';\n  frequencyData: any;\n  frequencyList = [\n    {\n      name: 'Daily',\n      type: 'daily',\n    },\n    {\n      name: 'Weekly',\n      type: 'weekly'\n    },\n    {\n      name: 'Monthly',\n      type: 'monthly'\n    },\n    {\n      name: 'Quarterly',\n      type: 'quarterly'\n    },\n    {\n      name: 'Biannual',\n      type: 'biannual'\n    },\n    {\n      name: 'Annual',\n      type: 'annual'\n    },\n    {\n      name: 'One Time',\n      type: 'oneTime'\n    },\n    {\n      name: 'Random',\n      type: 'random'\n    },\n    {\n      name: 'On Completion Of',\n      type: 'onCompletionOf'\n    },\n    {\n      name: 'Ongoing',\n      type: 'ongoing'\n    },\n  ]\n  selectedFrequencyData: any;\n  isNextDisabled :any  = false;\n  @Output() selectedFrequency = new EventEmitter<any>();\n  @Output() closeFrequency = new EventEmitter<boolean>();\n  frequencyTab = 'weekly';\n  @Input('frequencyDetails') set getFrequencyDetails(frequency: any) {\n    this.frequencyDetails['pattern'] = frequency?.frequency;\n    this.frequencyDetails['window'] = frequency?.remind_before_days;\n    this.frequencyDetails['failedTime'] = frequency?.frequency_time;\n    console.log(\"frequencyDetailsfrequencyDetailsfrequencyDetails\",this.frequencyDetails)\n  }\n\n  constructor(private frequencyService: FrequencyService, private snackbar: SnackBarService) { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.populateFrequency();\n  }\n\n  switchTab(frequency: any) {\n    this.frequencyTab = frequency;\n    if (frequency == 'oneTime') {\n      this.currentTabName ='a one time';\n    } else {\n      this.currentTabName = (frequency.startsWith('On') || frequency.toLowerCase() === 'annual') ? 'an '  + frequency: 'a ' + frequency;\n    }\n  }\n\n  close() {\n    this.closeFrequency.emit(false);\n  }\n\n  onFrequencySelected(event: any) {\n    this.frequencyData = event\n    this.isNextDisabled = this.isInvalid();\n  }\n\n  ngOnChanges() {\n    this.selectedFrequencyData = Object.assign({...this.frequencyDetails});\n    this.frequencyData = Object.assign({...this.frequencyDetails});\n  }\n\n  populateFrequency() {\n    const frequencyPattern = parseInt(this.frequencyDetails?.pattern.split('~')[0]);\n    switch (frequencyPattern) {\n      case 0: this.frequencyTab = 'oneTime'; this.currentTabName = \"a one time\"; break;\n      case 1: this.frequencyTab = 'daily';  this.currentTabName = \"a daily\"; break;\n      case 2: this.frequencyTab = 'weekly';  this.currentTabName = \"a weekly\"; break;\n      case 3: this.frequencyTab = 'monthly';  this.currentTabName = \"a monthly\"; break;\n      case 4: this.frequencyTab = 'annual';  this.currentTabName = \"an annual \";break;\n      case 5: this.frequencyTab = 'daily';  this.currentTabName = \"a daily\"; break;\n      case 6: this.frequencyTab = 'onCompletionOf';  this.currentTabName = \"an on completion of\"; this.frequencyData.report_id = this.frequencyDetails?.selectedReport; break;\n      case 7: this.frequencyTab = 'quarterly';  this.currentTabName = \"a quarterly\"; break;\n      case 8: this.frequencyTab = 'random';  this.currentTabName = \"a random\"; break;\n      case 9: this.frequencyTab = 'biannual';  this.currentTabName = \"a biannual\"; break;\n      case 10: this.frequencyTab = 'ongoing'; this.currentTabName = \"an ongoing\"; break;\n    }\n    this.isNextDisabled = false;\n  }\n  isInvalid() : boolean {\n    let isInvalid = false;\n    const frequencyDetails =  this.frequencyData?.pattern?.split('~');\n    switch(this.frequencyTab) {\n      case 'daily':\n        if(this.frequencyData.continuous_failed_days < 2) {\n          this.snackbar.show('Input value should be greater than 1.', 'alert');\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n          this.isNextDisabled = false;\n        };\n        break;\n      case 'weekly':\n        if(this.frequencyData.continuous_failed_days < 2) {\n          this.snackbar.show('Input value should be greater than 1.', 'alert');\n          isInvalid = true;\n        break;\n        } else {\n          isInvalid = false;\n          this.isNextDisabled = false;\n        };\n        if(frequencyDetails[1] == '' || !frequencyDetails[1] || frequencyDetails.length < 4) {\n          isInvalid = true;\n        }  else {\n          isInvalid = false;\n        };\n        break;\n      case 'monthly':\n        if(this.frequencyData.continuous_failed_days < 2) {\n          this.snackbar.show('Input value should be greater than 1.', 'alert');\n          isInvalid = true;\n          break;\n        } else {\n          isInvalid = false;\n          this.isNextDisabled = false;\n        };\n        if(frequencyDetails[2] == '' || !frequencyDetails[2] || frequencyDetails.length < 4) {\n          isInvalid = true;\n        }  else {\n          isInvalid = false;\n        };\n        break;\n      case 'biannual':\n        if(frequencyDetails.length === 0 ||frequencyDetails[2] === '' || frequencyDetails[2].split(',')?.length < 2) {\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n        }\n        break;\n      case 'oneTime':\n        if(frequencyDetails?.length > 0) {\n          const selectedTime = moment(`${frequencyDetails[3]}-${frequencyDetails[2]}-${frequencyDetails[1]} ${this.frequencyData.timeIn12hr}`, 'DD-MM-YYYY HH:mm a').unix();\n          if(this.frequencyService?.changeTimeZone(Date.now())?.getTime() / 1000 > selectedTime) {\n            this.snackbar.show('Please set a future date.', 'alert');\n            isInvalid = true;\n          break;\n          } else {\n            isInvalid = false;\n            this.isNextDisabled = false;\n          }\n        } else {\n          isInvalid = true;\n        }\n        break;\n      case 'onCompletionOf':\n        if(this.frequencyData.reportId > 0) {\n          isInvalid = false;\n        } else {\n          isInvalid = true;\n        }\n        break;\n      case 'random':\n       if(parseInt(frequencyDetails[1]) == 2 && ( frequencyDetails[2] == '' || !frequencyDetails[2] || frequencyDetails.length < 4)) {\n        isInvalid = true;\n      }  else {\n        isInvalid = false;\n      };\n      break;\n      default: isInvalid = false;\n    }\n     return isInvalid;\n  }\n  save() {\n    let frequency_details = {\n      \"frequency\": this.frequencyData?.pattern,\n      \"started_at\": this.frequencyService?.changeTimeZone(new Date) ? moment(this.frequencyService?.changeTimeZone(new Date))?.format(\"YYYY-MM-DD\") : moment().format(\"YYYY-MM-DD\"),\n      \"frequency_time\": this.frequencyData?.timeIn12hr,\n      \"remind_before_days\": this.frequencyData?.window,\n      placeholder: this.frequencyData?.placeholder\n    }\n    this.selectedFrequency.emit(frequency_details)\n    this.closeFrequency.emit(true);\n  }\n}\n","<div class=\"risk-frequency-dialog\" [class.animate]=\"animation\">\n    <div class=\"risk-frequency-dialog-head vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\">\n        <div class=\"risk-frequency-dialog-title vx-fs-14 vx-fw-500 vx-label-txt\">Set a Reassessment Frequency</div>\n    </div>\n    <div class=\"risk-frequency-dialog-body\">\n        <div class=\"risk-frequency-dialog-tab vx-mb-3 vx-d-flex\">\n            <button (click)=\"switchTab('weekly')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'weekly'\">WEEKLY</button>\n            <button (click)=\"switchTab('monthly')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'monthly'\">MONTHLY</button>\n            <button (click)=\"switchTab('quarterly')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'quarterly'\">QUARTERLY</button>\n            <button (click)=\"switchTab('biannual')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'biannual'\">BIANNUAL</button>\n            <button (click)=\"switchTab('annual')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'annual'\">ANNUAL</button>\n            <button (click)=\"switchTab('oneTime')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'oneTime'\">ONE TIME</button>\n        </div>\n\n        <div class=\"risk-frequency-dialog-container vx-p-4\">\n            <app-frequency-dialog-weekly \n                *ngIf=\"frequencyTab === 'weekly'\"\n                (frequencyDetails)=\"onFrequencySelected($event)\"\n                [frequencyData]=\"frequencyDetails\">\n            </app-frequency-dialog-weekly>\n            <app-frequency-dialog-monthly \n                *ngIf=\"frequencyTab === 'monthly'\"\n                (frequencyDetails)=\"onFrequencySelected($event)\"\n                [frequencyData]=\"frequencyDetails\">\n            </app-frequency-dialog-monthly>\n            <app-frequency-dialog-quarterly \n                *ngIf=\"frequencyTab === 'quarterly'\"\n                (frequencyDetails)=\"onFrequencySelected($event)\"\n                [frequencyData]=\"frequencyDetails\">\n            </app-frequency-dialog-quarterly>\n            <app-frequency-dialog-biannual \n                *ngIf=\"frequencyTab === 'biannual'\"\n                (frequencyDetails)=\"onFrequencySelected($event)\"\n                [frequencyData]=\"frequencyDetails\"></app-frequency-dialog-biannual>\n            <app-frequency-dialog-annual \n                *ngIf=\"frequencyTab === 'annual'\"\n                (frequencyDetails)=\"onFrequencySelected($event)\"\n                [frequencyData]=\"frequencyDetails\">\n            </app-frequency-dialog-annual>\n            <app-frequency-dialog-one-time \n                *ngIf=\"frequencyTab === 'oneTime'\"\n                (frequencyDetails)=\"onFrequencySelected($event)\"\n                [frequencyData]=\"frequencyDetails\">\n            </app-frequency-dialog-one-time>\n        </div>\n    </div>\n    <div class=\"risk-frequency-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-3 vx-ml-4 vx-mr-4\">\n        <div class=\"vx-fs-12 vx-paragraph-txt\">You have selected <span class=\"vx-fw-500 vx-label-txt\">{{currentTabName}}</span> frequency.</div>\n        <div class=\"vx-d-flex vx-align-center\">\n            <button class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-7\" (click)=\"close()\">CANCEL</button>\n            <button class=\"next-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-ml-3 vx-d-flex vx-align-center vx-lh-7\" [class.disabled]=\"isNextDisabled\" (click)=\"save()\">NEXT <i class=\"icons vx-fs-14 vx-ml-2\">&#xe91e;</i></button>\n        </div>\n    </div>\n</div>","import { Component, ElementRef, HostListener, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport sortBy from 'lodash-es/sortBy';\nimport moment from 'moment';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { SubSink } from '../../subsink.class';\nimport { DialogConfig } from '../../ui-kit/dialog/dialog-config';\nimport { DialogRef } from '../../ui-kit/dialog/dialog-ref';\nimport { DialogService } from '../../ui-kit/dialog/dialog.service';\nimport { FrequencyService } from '../frequency-dialog/services/frequency-dialog.service';\nimport { InherentRiskAssessmentDialogComponent } from '../inherent-risk-assessment-dialog/inherent-risk-assessment-dialog.component';\nimport { AuthService } from '../services/auth.service';\nimport { QuickViewService } from '../services/quick-view.service';\nimport { DatePickerService } from '../services/date-picker.service';\n\n@Component({\n  selector: 'app-edit-residual-risk-rating',\n  templateUrl: './edit-residual-risk-rating.component.html',\n  styleUrls: ['./edit-residual-risk-rating.component.less']\n})\nexport class EditResidualRiskRatingComponent implements OnInit, OnDestroy {\n  newFrequency = false;\n  sameFrequency = false;\n  timeData = '11:00 pm';\n  @ViewChild('oneTimePicker') datePicker!: DatePickerComponent;\n  @ViewChild('oneTimePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n  datepickerOverlay = false;\n  todayDate = new Date();\n  selectedFrequencyKey: any;\n  selectFrequencyOptions = ['Select a new reassessment frequency', 'Keep the same reassessment frequency']\n  hideFrequency = false;\n  frequencyTab = 'weekly';\n  frequency_details = {\n    \"frequency\":  '',\n    \"started_at\": '',\n    \"frequency_time\": '',\n    \"remind_before_days\": 0\n  };\n  currentAssessmentDate = '';\n  temp_frequency_details = {\n    \"frequency\":  '',\n    \"started_at\": '',\n    \"frequency_time\": '',\n    \"remind_before_days\": 0\n  }\n  frequencyPlaceholder = 'Set a Reassessment Frequency';\n  shortMonth: Array<string> = [];\n  totalScoreDetails: any = {};\n  formTitle: any = [];\n  dueDateData: any;\n  riskDetails: any;\n  dueDateDetails: any;\n  isLoading = false;\n  inherentData: any [] = [];\n  activeUserIndex = -1;\n  finalScoreCreatorIndex = -1;\n  radioKey: any;\n  isOneTimeAndPast = false;\n  residualDetails = [];\n  stage = '';\n  preSelected = false;\n  settings : any;\n  buttonDisable = false;\n  isFormOpen = false;\n  errorText: string = '';\n  selectedDate: any;\n  dateConfig: any;\n  showDateError = false;\n  oneTimeStartTime: any = '11:00 pm';\n  isItOneTime: boolean = false;\n  isDisableOtherFrequency: boolean  = false;\n  subscriptions:SubSink = new SubSink()\n\n  constructor(\n    private dialog: DialogRef,\n    private dialogConfig: DialogConfig,\n    private frequencyService: FrequencyService,\n    private dialogService: DialogService,\n    private quickViewService: QuickViewService,\n    private authService: AuthService,\n    private datePickerService: DatePickerService\n  ) {\n    this.initiateReassess()\n   }\n\n  ngOnInit(): void {\n    if(this.preSelected) {\n      this.radioKey = 2;\n    }\n    if(this.stage === 'INHERENT') {\n      this.getDueDateDetails();\n    }\n    if(this.stage === 'RESIDUAL') {\n      this.fetchResidualData();\n    }\n    this.shortMonth = this.frequencyService.monthArray.map(month => month.substring(0, 3));\n    this.isOneTimeFrequency(this.temp_frequency_details);\n    this.getFrequencyPlaceholder(this.frequency_details);\n\n  }\n\n  isOneTimeFrequency(frequencyData: any) {\n    if(frequencyData.frequency) {\n      const frequencyDetails = frequencyData?.frequency.split('~');\n      const frequencyTime = moment(`${frequencyDetails[3]}-${frequencyDetails[2]}-${frequencyDetails[1]} ${frequencyData?.timeIn12hr ?? 'pm'}`, 'DD-MM-YYYY HH:mm a').unix();\n      if(frequencyDetails[0] == 0) {\n        this.isOneTimeAndPast =  this.frequencyService?.changeTimeZone(new Date()?.setDate(new Date()?.getDate()+1))?.getTime() / 1000 > frequencyTime;\n        this.buttonDisable = this.isOneTimeAndPast;\n      }\n      else{\n        this.isOneTimeAndPast = false;\n      }\n    }\n  }\n\n  changeSelected(event: boolean) {\n    this.hideFrequency = !this.hideFrequency;\n    if(!event && Object.entries(this.frequency_details)?.sort()?.toString() === Object.entries(this.temp_frequency_details)?.sort()?.toString()) {\n      this.selectedFrequencyKey = undefined;\n    }\n  }\n\n  selected(event: any, value: number) {\n    this.radioKey = value;\n    console.log(\" this.radioKey ====>\",  this.radioKey)\n\n  }\n\n  getDueDateDetails() {\n    this.isLoading = true;\n    const payload = {\n      risk_id: this.riskDetails?.riskId,\n      dueDateId: this.dueDateData?._id\n    }\n    this.subscriptions.add(this.quickViewService.fetchAssessmentDetails(payload).subscribe(\n      {\n        next: (res) => {\n          if(res) {\n            this.dueDateDetails = res;\n         //  this.riskWorkroomService.isBeginAssessmentEnabled = (Object.values(res)[0][0]?.assessed_by?.length === 0);\n            this.isLoading = false;\n            this.populateInherentData();\n          }\n\n        },\n        error: (err) => {\n          console.error(err);\n          this.isLoading = false;\n        }\n      }\n    ))\n  }\n\n  openInherentForm(index: any) {\n    this.isFormOpen = true;\n   const ref = this.dialogService.open(InherentRiskAssessmentDialogComponent, {\n     data: {payload: this.dialogData(index), dueDateData: this.dueDateData, applyAllRC:this.settings?.ir_rc_applicable ? true :false},\n     position: 'RIGHT',\n     background: 'black',\n   })\n\n   .afterClosed.subscribe((res: any) => {\n    this.isFormOpen = false;\n    if(res) {\n      this.close(true);\n    }\n   })\n }\n\n fetchResidualData() {\n  this.isLoading = true;\n  this.subscriptions.add(this.quickViewService.fetchResidaulRiskDetails(this.riskDetails?.riskId, '', this.dueDateDetails?._id).subscribe({\n    next: (res: any) => {\n      this.isLoading = false;\n      console.log(\"treatment Data\", res)\n      this.residualDetails = res\n    },\n    error: (err: any) => {\n      this.isLoading = false;\n      //TODO snackbar error message\n    }\n  }))\n}\n\n openResidualAssessment(event?: any) {\n  this.close('EDIT_RESIDUAL');\n }\n\n  dialogData(rcIndex: number) {\n    let userIndex = this.inherentData[rcIndex]?.assessmentDetails.findIndex((assessmentDetails: any) => assessmentDetails.member_id === this.authService.getMemberId() || assessmentDetails.member_id === 0);\n    const payload = {\n      selectedRcIndex: rcIndex,\n      assessmentDetailsIndex: userIndex,\n      inherentDetails: this.inherentData,\n      scoreCriteria: this.riskDetails.org_settings.scoring_criteria_keys,\n      weightage: this.riskDetails.riskDetails.weightage_str,\n      manageRiskDetails: this.riskDetails,\n      segmentDetails: this.riskDetails.org_settings.segments,\n      total_score: this.totalScoreDetails.total_score,\n      total_score_name: this.totalScoreDetails.total_score_name,\n      total_score_color: this.totalScoreDetails.total_score_color,\n      dueDate: {\n        id: this.dueDateData?._id,\n        timestamp: this.dueDateData?.dueDateTimeStamp\n      }\n    }\n    return payload\n  }\n\n  populateInherentData() {\n    this.inherentData = [];\n    this.riskDetails.riskDetails.entity_arr.forEach((rc: any) => {\n      this.inherentData.push({ rcDetails: rc, assessmentDetails: [] });\n    });\n    const rc_ids = Object.keys(this.dueDateDetails);\n    rc_ids.forEach((rc: any) => {\n      this.inherentData.forEach((inherent: any) => {\n        if(inherent.rcDetails.rc_id == rc){\n          inherent.assessmentDetails = (this.dueDateDetails[rc]);\n        }\n      })\n    })\n    this.mapResponseToInherentData(this.dueDateDetails);\n  }\n\n  mapResponseToInherentData(response: any) {\n    this.inherentData.forEach((inherent: any) => {\n      inherent.assessmentDetails = response[inherent.rcDetails.rc_id];\n      inherent.assessmentDetails.forEach((assessment: any) => {\n        if (!assessment.rating_value) {\n          assessment.rating_value = {};\n          assessment.rating_color = {};\n        }\n        assessment.rating_value.likelihood =\n          assessment.rating.likelihood > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.likelihood[assessment.rating.likelihood - 1].value : '';\n        assessment.rating_value.impact = assessment.rating.impact > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.impact[assessment.rating.impact - 1].value : '';\n        assessment.rating_value.velocity =\n          assessment.rating.velocity > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.velocity[assessment.rating.velocity - 1].value : '';\n        assessment.rating_value.vulnerability =\n          assessment.rating.vulnerability > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.vulnerability[assessment.rating.vulnerability - 1].value : '';\n        assessment.rating_color.likelihood =\n          assessment.rating.likelihood > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.likelihood[assessment.rating.likelihood - 1].color : '';\n        assessment.rating_color.impact = assessment.rating.impact > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.impact[assessment.rating.impact - 1].color : '';\n        assessment.rating_color.velocity =\n          assessment.rating.velocity > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.velocity[assessment.rating.velocity - 1].color : '';\n        assessment.rating_color.vulnerability =\n          assessment.rating.vulnerability > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.vulnerability[assessment.rating.vulnerability - 1].color : '';\n        for (const SEGMENT of this.riskDetails.org_settings.segments) {\n          if (assessment.score > SEGMENT.start && assessment.score <= SEGMENT.end) {\n            assessment.scoreName = SEGMENT.segment_name;\n            assessment.scoreColor = SEGMENT.segment_color;\n            break;\n          }\n        }\n        for (const SEGMENT of this.riskDetails.org_settings.segments) {\n          if (assessment.total_rating > SEGMENT.start && assessment.total_rating <= SEGMENT.end) {\n            assessment.total_rating_name = SEGMENT.segment_name;\n            assessment.total_rating_color = SEGMENT.segment_color;\n            break;\n          }\n        }\n      });\n      inherent.assessmentDetails = sortBy(inherent.assessmentDetails, ['role', 'member_id']);\n    });\n    this.activeUserIndex = this.inherentData[0].assessmentDetails.findIndex((assessment: any) => assessment.member_id === this.authService.getMemberId());\n    this.finalScoreCreatorIndex = this.inherentData[0].assessmentDetails.findIndex(\n      (assessment: any) => assessment.member_id === this.riskDetails.inherentRisk.final_score_creator\n    );\n    if (this.activeUserIndex === -1) {\n      this.activeUserIndex = 0;\n    }\n    if (this.finalScoreCreatorIndex === -1) {\n      this.finalScoreCreatorIndex = 0;\n    }\n    if (this.riskDetails.inherentRisk.finalScoreType === 0) {\n      this.finalScoreCreatorIndex = this.activeUserIndex;\n    }\n\n    this.calculateTotalScore(this.activeUserIndex);\n    this.validateScore();\n  }\n\n  /**\n   * Calculates the total score for currently active user\n   * @param index Index of data for currently active user\n   */\n  calculateTotalScore(index: number) {\n    this.totalScoreDetails.total_score = 0;\n    this.inherentData.forEach((rcDetails: any) => {\n      if (rcDetails.assessmentDetails.length > 0 && rcDetails.assessmentDetails[index].score) {\n        this.totalScoreDetails.total_score = this.totalScoreDetails.total_score + parseFloat(parseFloat(rcDetails.assessmentDetails[index].score).toFixed(2));\n      }\n    });\n    this.totalScoreDetails.total_score = parseFloat((this.totalScoreDetails.total_score / this.inherentData.length).toFixed(2));\n    for (const SEGMENT of this.riskDetails.org_settings.segments) {\n      if (this.totalScoreDetails.total_score > SEGMENT.start && this.totalScoreDetails.total_score <= SEGMENT.end) {\n        this.totalScoreDetails.total_score_name = SEGMENT.segment_name;\n        this.totalScoreDetails.total_score_color = SEGMENT.segment_color;\n        break;\n      }\n    }\n  }\n\n  /**\n   * Validates the scores to check whether Complete Assessment button should be enabled or not\n   */\n  validateScore() {\n    // this.disableButton = false;\n    for (const INHERENT of this.inherentData) {\n      const INDEX = INHERENT.assessmentDetails.findIndex((assessment: any) => assessment.member_id === this.authService.getMemberId());\n      if (INHERENT.assessmentDetails.length > 0 && INDEX > -1) {\n        if (this.riskDetails.riskDetails.weightage_str[0] > 0 && INHERENT.assessmentDetails[INDEX].rating.likelihood <= 0) {\n          // this.disableButton = true;\n          break;\n        } else if (this.riskDetails.riskDetails.weightage_str[1] > 0 && INHERENT.assessmentDetails[INDEX].rating.impact <= 0) {\n          // this.disableButton = true;\n          break;\n        } else if (this.riskDetails.riskDetails.weightage_str[2] > 0 && INHERENT.assessmentDetails[INDEX].rating.velocity <= 0) {\n          // this.disableButton = true;\n          break;\n        } else if (this.riskDetails.riskDetails.weightage_str[3] > 0 && INHERENT.assessmentDetails[INDEX].rating.vulnerability <= 0) {\n          // this.disableButton = true;\n          break;\n        }\n      } else {\n        // this.disableButton = true;\n        break;\n      }\n    }\n    // this.createInsertionPayload();\n    // this.updateDisableButton.emit(this.disableButton);\n  }\n\n  /* This is a decorator that listens to the keydown event on the form to close form on escape key down. */\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n    if(!this.hideFrequency && !this.isFormOpen) {\n      this.close();\n    }\n  }\n\n  frequencyData(event: any) {\n    this.frequency_details = {\n      \"frequency\": event?.frequency,\n      \"started_at\": event?.started_at,\n      \"frequency_time\": event?.frequency_time,\n      \"remind_before_days\": event?.remind_before_days\n    };\n    this.frequencyPlaceholder = event?.placeholder;\n    this.buttonDisable = false;\n    if(Object(this.frequency_details).length === Object(this.temp_frequency_details).length && this.frequency_details.frequency === this.temp_frequency_details.frequency && this.frequency_details.started_at === this.temp_frequency_details.started_at && this.frequency_details.frequency_time === this.temp_frequency_details.frequency_time && this.frequency_details.remind_before_days === this.temp_frequency_details.remind_before_days) {\n      this.selectedFrequencyKey = 2;\n      this.getFrequencyPlaceholder(this.frequency_details);\n    }\n  }\n\n  getFrequencyPlaceholder(res: any) {\n    try {\n      if (res?.frequency) {\n        const frequencyDetails = res?.frequency.split('~');\n        const frequencyTime = res?.frequency_time === '00:00:00' ? '12:00 am' : res?.frequency_time;\n        switch (parseInt(frequencyDetails[0])) {\n          case 2:\n            this.getWeeklyPlaceholder(frequencyDetails, frequencyTime);\n            break;\n          case 3:\n            this.getMonthlyPlaceholder(frequencyDetails, frequencyTime);\n            break;\n          case 4:\n            this.getYearlyPlaceholder(frequencyDetails, frequencyTime);\n            break;\n          case 7:\n            this.getQuarterlyPlaceholder(frequencyDetails, frequencyTime);\n            break;\n          case 9:\n            this.getBiannualPlaceholder(frequencyDetails, frequencyTime);\n            break;\n          case 0:\n            {\n              const dateObject = new Date(moment(frequencyDetails[1] + '-' + frequencyDetails[2] + '-' + frequencyDetails[3] + ' 00:00:00', 'YYYY-MM-DD HH:mm:ss').unix() * 1000);\n              this.frequencyPlaceholder = 'One Time ' + dateObject.getDate() + ' ' + this.shortMonth[dateObject.getMonth()] + ' ' + dateObject.getFullYear() + ' by ' + frequencyTime;\n            }\n            break;\n        }\n      }\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  getWeeklyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    const selectedDay = frequencyDetails[1].split(',').map((ele: any) => {\n      return this.frequencyService.dayName[parseInt(ele) - 1];\n    });\n    if (parseInt(frequencyDetails[3]) === 1) {\n      this.frequencyPlaceholder = 'Every ' + selectedDay.join() + ' by ' + frequencyTime;\n    }\n    if (parseInt(frequencyDetails[3]) === 2) {\n      this.frequencyPlaceholder = 'Every alternate ' + selectedDay.join() + ' by ' + frequencyTime;\n    }\n    if (parseInt(frequencyDetails[3]) === 3) {\n      this.frequencyPlaceholder = 'Every 3rd ' + selectedDay.join() + ' by ' + frequencyTime;\n    }\n    if (parseInt(frequencyDetails[3]) > 3) {\n      this.frequencyPlaceholder = 'Every ' + parseInt(frequencyDetails[1]) + 'th ' + selectedDay.join() + ' by ' + frequencyTime;\n    }\n  }\n\n  getMonthlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    const selectedMonth = frequencyDetails[2].split(',').map((ele: any) => {\n      return this.shortMonth[parseInt(ele) - 1];\n    });\n    if (parseInt(frequencyDetails[1]) === 1) {\n      this.frequencyPlaceholder = '1st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 2) {\n      this.frequencyPlaceholder = '2nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 3) {\n      this.frequencyPlaceholder = '3rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 21 || parseInt(frequencyDetails[1]) === 31) {\n      this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 22) {\n      this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 23) {\n      this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) > 3) {\n      this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'th of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    }\n  }\n\n  getYearlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    const yearSequence = parseInt(frequencyDetails[3]) > 0 ? parseInt(frequencyDetails[3]) : 1;\n    if (parseInt(frequencyDetails[1]) < 2) {\n      if (parseInt(frequencyDetails[1]) === 1) {\n        this.frequencyPlaceholder = '1st of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) === 2) {\n        this.frequencyPlaceholder = '2nd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) === 3) {\n        this.frequencyPlaceholder = '3rd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) > 3) {\n        this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'th of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) === 31 || parseInt(frequencyDetails[1]) === 21) {\n        this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'st of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) === 22) {\n        this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'nd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) === 23) {\n        this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'rd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\n      }\n    }\n    if (parseInt(frequencyDetails[1]) > 1) {\n      if (parseInt(frequencyDetails[1]) === 1) {\n        // tslint:disable-next-line: max-line-length\n        this.frequencyPlaceholder = '1st ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ', Interval: every ' + yearSequence + ' years by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) === 2) {\n        // tslint:disable-next-line: max-line-length\n        this.frequencyPlaceholder = '2nd ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ', Interval: every ' + yearSequence + ' years by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) === 3) {\n        // tslint:disable-next-line: max-line-length\n        this.frequencyPlaceholder = '3rd ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ', Interval: every ' + yearSequence + ' years by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) > 3) {\n        // tslint:disable-next-line: max-line-length\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) + 'th of  ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ', Interval: every ' + yearSequence + ' years by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) === 31 || parseInt(frequencyDetails[1]) === 21) {\n        this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'st of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) === 22) {\n        this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'nd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[1]) === 23) {\n        this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'rd of every ' + this.shortMonth[parseInt(frequencyDetails[2]) - 1] + ' by ' + frequencyTime;\n      }\n    }\n  }\n\n  getQuarterlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    const quarterly = ['January, April, July, October', 'February, May, August, November', ' March, June, September, December'];\n    if (parseInt(frequencyDetails[1]) === 1) {\n      this.frequencyPlaceholder = '1st of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 2) {\n      this.frequencyPlaceholder = '2nd of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 3) {\n      this.frequencyPlaceholder = '3rd of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 21 || parseInt(frequencyDetails[1]) === 31) {\n      this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'st of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 22) {\n      this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'nd of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 23) {\n      this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'rd of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) > 3) {\n    this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'th of every ' + quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] + ' by ' + frequencyTime;\n    }\n  }\n\n  getBiannualPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    const selectedMonth = frequencyDetails[2].split(',').map((ele: any) => {\n      return this.shortMonth[parseInt(ele) - 1];\n    });\n    if (parseInt(frequencyDetails[1]) === 1) {\n      this.frequencyPlaceholder = '1st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 2) {\n      this.frequencyPlaceholder = '2nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 3) {\n      this.frequencyPlaceholder = '3rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 21 || parseInt(frequencyDetails[1]) === 31) {\n      this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 22) {\n        this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) === 23) {\n      this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    } else if (parseInt(frequencyDetails[1]) > 3) {\n      this.frequencyPlaceholder = parseInt(frequencyDetails[1]) + 'th of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n    }\n  }\n\n  resetFrequency() {\n    if(!this.isOneTimeAndPast) {\n      this.selectedFrequencyKey = 2;\n      this.frequency_details = this.temp_frequency_details;\n      this.getFrequencyPlaceholder(this.frequency_details);\n    } else {\n      this.errorText = 'Please select a new reassessment frequency, One time frequency should be future date.';\n    }\n  }\n\n  close(event: boolean|string = false) {\n    this.dialog.close(event);\n  }\n\n  clickFrequency() {\n    this.errorText = '';\n    this.selectedFrequencyKey = 1;\n    this.hideFrequency = true;\n  }\n\n  get disable() {\n    // console.table({\n    //   hideFrequency: this.hideFrequency,\n    //   radioKey:this.radioKey,\n    //   buttonDisable: this.buttonDisable,\n    //   selectedFrequencyKey: this.selectedFrequencyKey\n    // })\n    return (this.hideFrequency || !this.radioKey || (this.radioKey == 2 && (this.buttonDisable || !this.selectedFrequencyKey)))\n  }\n\n  complete() {\n\n    if(this.radioKey === 1 && this.stage === 'RESIDUAL') {\n      this.openResidualAssessment();\n    } if(this.radioKey === 1 && this.stage === 'INHERENT') {\n      this.openInherentForm(0);\n    } else{\n      let payload = {\n        frequency_details: {\n          \"frequency\":  '',\n          \"started_at\": '',\n          \"frequency_time\": '',\n          \"remind_before_days\": 0\n        }\n      }\n      if(this.selectedFrequencyKey === 1){\n        payload.frequency_details.frequency = this.frequency_details?.frequency;\n        payload.frequency_details.started_at = this.frequency_details?.started_at;\n        payload.frequency_details.frequency_time = this.frequency_details?.frequency_time;\n        payload.frequency_details.remind_before_days = this.frequency_details?.remind_before_days;\n      }\n      else{\n        payload.frequency_details.frequency = this.temp_frequency_details?.frequency;\n        payload.frequency_details.started_at = this.temp_frequency_details?.started_at;\n        payload.frequency_details.frequency_time = this.temp_frequency_details?.frequency_time;\n        payload.frequency_details.remind_before_days = this.temp_frequency_details?.remind_before_days;\n      }\n\n      if(this.radioKey === 2) this.onReassessRisk(payload);\n    }\n  }\n\n  onReassessRisk(payload: any) {\n    this.isLoading = true;\n    payload.risk_id = this.riskDetails.riskId ?? this.riskDetails.RiskId;\n    this.subscriptions.add(this.quickViewService.onRiskAssess(payload).subscribe({\n      next: (res: any) => {\n        this.isLoading = false;\n        this.close(true)\n      },\n      error: (err: any) => {\n        console.error(err);\n      }\n    }))\n  }\n\n  openDatePicker() {\n    this.datepickerOverlay = !this.datepickerOverlay;\n    this.datePicker?.api?.open();\n\n  }\n\n  closeDatepicker() {\n    this.datePicker?.api?.close();\n    this.datepickerOverlay = false;\n  }\n\n  clickNewFrequency() {\n    this.newFrequency = true;\n    this.sameFrequency = false;\n  }\n\n  clickSameFrequency() {\n    this.newFrequency = false;\n    this.sameFrequency = true;\n    this.buttonDisable = false;\n    this.selectedFrequencyKey = 2;\n  }\n\n  dateChange(event: any) {\n    this.datePicker?.api?.close();\n    this.datepickerOverlay = false;\n    this.selectedDate = event?.date?.$d;\n    this.frequency_details.frequency = '0~' + moment(event.date).format('YYYY~MM~DD');\n  }\n\n  initiateReassess() {\n    this.riskDetails = this.dialogConfig?.data?.riskDetails;\n    this.frequency_details = this.dialogConfig?.data?.frequency_details;\n    this.temp_frequency_details = this.dialogConfig?.data?.frequency_details;\n    this.currentAssessmentDate = this.dialogConfig?.data?.assessment_date;\n    this.dueDateData = this.dialogConfig?.data?.dueDateData;\n    this.stage = this.dialogConfig?.data?.stage ?? '';\n    this.settings = this.dialogConfig?.data?.settings;\n    this.preSelected = this.dialogConfig?.data?.preSelected ?? false;\n    this.formTitle['INHERENT'] = 'Edit Inherent Risk Rating';\n    this.formTitle['RESIDUAL'] = 'Edit Residual Risk Rating';\n    this.formTitle['REASSESS'] = 'Reassess the Risk';\n    this.todayDate = this.frequencyService.changeTimeZone(new Date()?.setDate(new Date()?.getDate()+1));\n    this.dateConfig = this.frequencyService.dateConfig;\n    this.dateConfig['min'] = this.frequencyService?.formatDate();\n    this.isItOneTime =  this.frequency_details?.frequency?.split('~')[0] === '0';\n    if(this.isItOneTime) {\n      this.frequency_details.frequency = '0~' + moment(this.frequencyService.changeTimeZone(new Date()?.setDate(new Date()?.getDate()+1))).format('YYYY~MM~DD')\n    }\n  }\n\n  onTimeChanged(event:string) {\n    this.oneTimeStartTime = event;\n    this.frequency_details.frequency_time = event;\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'date-picker-edit',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datepickerOverlay,\n    };\n    this.datePickerService.handleDocumentClick(datePickerObject);\n  }\n}\n","<div class=\"form-dialog\" [class.disabled]=\"hideFrequency\">\n  <div\n    class=\"form-dialog-heading vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-mb-5\"\n  >\n    <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">\n      {{ formTitle[stage] ? formTitle[stage] : \"Reassess Risk\" }}\n    </div>\n    <button\n      class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n      (click)=\"close()\"\n      [class.disabled]=\"false\"\n      [appTooltip]=\"'[Esc] to close'\"\n      placement=\"left\"\n      delay=\"0\"\n      type=\"black\"\n      [tooltipMandatory]=\"true\"\n    >\n      <i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i>\n    </button>\n  </div>\n  <div class=\"form-dialog-mid vx-pb-5\">\n    <ng-container>\n      <div\n        *ngIf=\"false\"\n        class=\"rating-field vx-mb-2\"\n        [class.disabled]=\"hideFrequency\"\n      >\n        <app-cs-radio (checkedEvent)=\"clickNewFrequency(); clickFrequency()\">\n          <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n            SELECT A NEW REASSESSMENT FREQUENCY\n          </div>\n          <div class=\"vx-fs-11 vx-paragraph-txt\">\n            This option allows users to select a new reassessment frequency for\n            the risk.\n          </div>\n        </app-cs-radio>\n      </div>\n\n      <div\n        class=\"rating-field vx-mb-2\"\n        *ngIf=\"stage\"\n        [class.disabled]=\"hideFrequency\"\n      >\n        <app-cs-radio\n          [value]=\"radioKey\"\n          [checked]=\"radioKey == 1\"\n          (checkedEvent)=\"selected($event, 1)\"\n        >\n          <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n            EDIT {{ stage }} RISK RATING\n          </div>\n          <div class=\"vx-fs-11 vx-paragraph-txt\">\n            This option allows you to change your individual\n            {{ stage.toLowerCase() }} risk rating scores within the current due\n            date.\n          </div>\n        </app-cs-radio>\n      </div>\n      <div\n        *ngIf=\"\n          !['PARTICIPANT', 'OVERSIGHT', 'RC_HEAD', 'GLOBAL_DASHBOARD'].includes(\n            riskDetails?.riskDetails?.LoginMemberType | uppercase\n          )\n        \"\n        class=\"rating-field vx-mb-2\"\n        [class.active]=\"hideFrequency\"\n      >\n        <app-cs-radio\n          [value]=\"radioKey\"\n          [checked]=\"radioKey == 2\"\n          (checkedEvent)=\"selected($event, 2)\"\n        >\n          <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n            REASSESS THE RISK\n          </div>\n          <div class=\"vx-fs-11 vx-paragraph-txt\">\n            This option allows you to reassess the risk and specify a new\n            assessment due date.\n          </div>\n          <div class=\"rating-bottom vx-mt-3\">\n            <div\n              class=\"label vx-fs-11 vx-txt-white vx-pl-1 vx-pr-1 vx-mb-1 vx-lh-4\"\n            >\n              Current Reassessment Frequency: {{ currentAssessmentDate }}\n            </div>\n            <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\"\n              >DO YOU WANT TO CHANGE OR KEEP THE SAME REASSESSMENT FREQUENCY?\n              <span class=\"required vx-fs-16 vx-fw-400 vx-txt-red\"\n                >*</span\n              ></label\n            >\n            <div\n              class=\"inner-radio vx-pt-2 vx-mt-2\"\n              [class.checked]=\"newFrequency\"\n              (click)=\"clickNewFrequency(); clickFrequency()\"\n            >\n              <div class=\"innerRadio-uncheck\"></div>\n              <svg\n                class=\"innerRadio\"\n                xmlns=\"http://www.w3.org/2000/svg\"\n                viewBox=\"0 0 52 52\"\n              >\n                <circle\n                  class=\"innerRadio__circle\"\n                  cx=\"26\"\n                  cy=\"26\"\n                  r=\"25\"\n                  fill=\"none\"\n                />\n                <circle\n                  class=\"innerRadio__check\"\n                  cx=\"26\"\n                  cy=\"26\"\n                  r=\"5\"\n                  fill=\"none\"\n                />\n              </svg>\n              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-mb-1\">\n                SELECT A NEW REASSESSMENT FREQUENCY\n              </div>\n              <!-- <div class=\"vx-fs-11 vx-paragraph-txt\">This option allows users to select a new reassessment frequency for the risk.</div> -->\n            </div>\n            <div\n              class=\"after-select vx-align-center vx-justify-between vx-p-2 vx-mt-2\"\n            >\n              <div\n                class=\"frequency-value vx-fs-13 vx-paragraph-txt vx-pr-3\"\n                [appTooltip]=\"frequencyPlaceholder\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n              >\n                {{ frequencyPlaceholder }}\n              </div>\n              <button\n                class=\"edit-btn vx-fs-11 vx-fw-500 vx-lh-6 vx-txt-blue vx-tt-uppercase vx-d-flex vx-align-center vx-m-0 vx-p-1\"\n                *ngIf=\"!hideFrequency && selectedFrequencyKey != 2\"\n                (click)=\"clickFrequency()\"\n              >\n                <i class=\"icons vx-fs-8 vx-mr-1\">&#xe9ba;</i> EDIT\n              </button>\n            </div>\n            <div\n              class=\"inner-radio same-frequency vx-pt-2 vx-mt-2\"\n              [class.checked]=\"sameFrequency\"\n              (click)=\"clickSameFrequency()\"\n            >\n              <div class=\"innerRadio-uncheck\"></div>\n              <svg\n                class=\"innerRadio\"\n                xmlns=\"http://www.w3.org/2000/svg\"\n                viewBox=\"0 0 52 52\"\n              >\n                <circle\n                  class=\"innerRadio__circle\"\n                  cx=\"26\"\n                  cy=\"26\"\n                  r=\"25\"\n                  fill=\"none\"\n                />\n                <circle\n                  class=\"innerRadio__check\"\n                  cx=\"26\"\n                  cy=\"26\"\n                  r=\"5\"\n                  fill=\"none\"\n                />\n              </svg>\n              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-mb-1\">\n                KEEP THE SAME REASSESSMENT FREQUENCY\n              </div>\n              <!-- <div class=\"vx-fs-11 vx-paragraph-txt vx-mb-2\">Need Content for this as discussed earlier. Need Content for this as discussed earlier. Need Content for this as discussed earlier.</div> -->\n              <div *ngIf=\"isItOneTime\" class=\"after-same-select\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-mb-1\">\n                  ONETIME FREQUENCY\n                  <span class=\"required vx-fs-16 vx-fw-400 vx-txt-red\">*</span>\n                </div>\n                <div class=\"vx-fs-11 vx-paragraph-txt vx-mb-1\">\n                  Select a date by which this risk should be reassessed.\n                </div>\n                <div class=\"date-time-field vx-d-flex vx-align-center\">\n                  <div class=\"date-picker\">\n                    <i\n                      class=\"icons calendar-icon vx-fs-14\"\n                      (click)=\"openDatePicker()\"\n                      >&#xe92d;</i\n                    >\n                    <input\n                      class=\"datePicker vx-fs-13 vx-paragraph-txt vx-pl-2 vx-w-100\"\n                      id=\"date-picker-edit\"\n                      [placeholder]=\"\n                        selectedDate\n                          ? (selectedDate | date : 'dd MMM yyyy')\n                          : (todayDate | date : 'dd MMM yyyy')\n                      \"\n                      (click)=\"openDatePicker()\"\n                    />\n                    <dp-date-picker\n                      #oneTimePicker\n                      style=\"display: none\"\n                      (click)=\"openDatePicker()\"\n                      [id]=\"'oneTimeDatePicker-' + 6\"\n                      [placeholder]=\"todayDate | date : 'dd MMM yyyy'\"\n                      [(ngModel)]=\"selectedDate\"\n                      [config]=\"dateConfig\"\n                      (onSelect)=\"dateChange($event); showDateError = false\"\n                    ></dp-date-picker>\n\n                    <div\n                      class=\"overlay\"\n                      *ngIf=\"datepickerOverlay\"\n                      (click)=\"closeDatepicker()\"\n                    ></div>\n                  </div>\n                  <div\n                    class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\"\n                  >\n                    <i class=\"icons vx-fs-14 vx-ml-5\">&#xe955;</i>\n                    <input\n                      type=\"text\"\n                      readonly\n                      [(ngModel)]=\"oneTimeStartTime\"\n                      placeholder=\"11:00 PM\"\n                    />\n                    <!-- <ngx-material-timepicker (timeSet)=\"onTimeChanged($event)\" [hoursOnly]=\"true\" #dailyTime2></ngx-material-timepicker> -->\n                  </div>\n                </div>\n              </div>\n            </div>\n            <!-- <div appPopover (click)=\"selectFrequency.popover()\" placement=\"left\" class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-3 vx-mt-2\" [class.error]=\"false\">\n                          <span class=\"vx-fs-13 vx-paragraph-txt\">{{ selectedFrequencyKey ? selectFrequencyOptions[selectedFrequencyKey - 1] : 'Select reassessment frequency'}}</span>\n                          <i class=\"icons arrow vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n                      </div>\n                      <app-popover #selectFrequency>\n                          <div class=\"action-list\" style=\"width: 350px;\">\n                            <ul class=\"action-item\">\n                              <li><button (click)=\"clickFrequency()\">Select a new reassessment frequency</button></li>\n                              <li [class.disabled]=\"isOneTimeAndPast\"><button (click)=\"resetFrequency()\" >Keep the same reassessment frequency</button></li>\n                            </ul>\n                          </div>\n                      </app-popover> -->\n            <div\n              class=\"vx-fs-11 vx-paragraph-txt error\"\n              *ngIf=\"isOneTimeAndPast && errorText\"\n            >\n              {{ errorText }}\n            </div>\n          </div>\n        </app-cs-radio>\n      </div>\n    </ng-container>\n    <app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>\n  </div>\n  <div class=\"form-dialog-btn vx-d-flex vx-align-center vx-mt-4\">\n    <button\n      class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n      (click)=\"complete()\"\n      [class.disabled]=\"disable\"\n    >\n      {{ radioKey === 2 ? \"SAVE\" : \"CONTINUE\" }}\n    </button>\n  </div>\n</div>\n\n<app-frequency-dialog-container\n  (closeFrequency)=\"changeSelected($event)\"\n  *ngIf=\"hideFrequency\"\n  [frequencyDetails]=\"frequency_details\"\n  (selectedFrequency)=\"frequencyData($event)\"\n>\n</app-frequency-dialog-container>\n","import { Component, OnInit } from '@angular/core';\nimport { EditorConfig } from '@vcomply/editor';\nimport { DialogConfig } from '../../dialog/dialog-config';\nimport { DialogRef } from '../../dialog/dialog-ref';\n\n@Component({\n  selector: 'app-access-capability',\n  templateUrl: './access-capability.component.html',\n  styleUrls: ['./access-capability.component.less'],\n})\nexport class AccessCapabilityComponent implements OnInit {\n  animation = false;\n  public comment!: string;\n  editor = true;\n  constructor(\n    public dialogConfig: DialogConfig,\n    private dialogRef: DialogRef\n  ) {}\n  editorConfig: EditorConfig = {\n    maxHeight: '100px',\n    placeholder: 'Add comments',\n  };\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  close(flag: boolean) {\n    this.dialogRef.close({ flag, comment: this.comment });\n  }\n  toggleComment() {\n    this.editor = !this.editor;\n  }\n}\n","<div class=\"alert-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n  <div class=\"alert-dialog-container\">\n    <div class=\"alert-dialog-body\">\n      <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\" >\n        <i class=\"icons\">&#xe921;</i>\n      </div>\n      <div class=\"vx-fs-13 vx-lable-txt vx-mb-2 vx-text-center\"><span class=\"vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-mr-1 vx-lh-5\">Risk name:</span>{{ dialogConfig?.data?.heading }}</div>\n      <div class=\"vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center\" [innerHTML]=\"dialogConfig?.data?.info\"></div>\n    </div>\n    <div class=\"editor-block vx-pl-4 vx-pr-4 vx-pb-5\" [class.space-bottom]=\"!editor\">\n      <button class=\"add-coment vx-fs-8 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"toggleComment()\">\n        <i class=\"icons vx-mr-1 vx-lh-4\">\n          <ng-container *ngIf=\"!editor\">&#xe915;</ng-container>\n          <ng-container *ngIf=\"editor\">&#xe90d;</ng-container>\n        </i> Add Comments</button>\n      <vcomply-editor [(ngModel)]=\"comment\" *ngIf=\"editor\" [editorConfig]=\"editorConfig\"></vcomply-editor>\n    </div>\n    <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n      <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n      <div class=\"vx-d-flex vx-align-center\">\n        <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"close(false)\">No</button>\n        <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"close(true)\">Yes</button>\n      </div>\n    </div>\n  </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { DialogConfig } from '../../dialog/dialog-config';\nimport { DialogRef } from '../../dialog/dialog-ref';\n\n@Component({\n  selector: 'app-delete',\n  templateUrl: './delete.component.html',\n  styleUrls: ['./delete.component.less'],\n})\nexport class DeleteComponent implements OnInit {\n  animation = false;\n\n  constructor(\n    private dialog: DialogRef,\n    public dialogConfig: DialogConfig\n  ) {}\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n  \n  delete(deleteFlag: boolean) {\n    this.dialog.close(deleteFlag);\n  }\n}\n","<div class=\"alert-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n  <div class=\"alert-dialog-container\">\n    <div class=\"alert-dialog-body\">\n      <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\" >\n        <i class=\"icons delete\">&#xe923;</i>\n      </div>\n      <div class=\"vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center\" [innerHTML]=\"dialogConfig?.data?.message\"></div>\n    </div>\n    <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n      <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n      <div class=\"vx-d-flex vx-align-center\">\n        <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"delete(false)\">No</button>\n        <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"delete(true)\">Yes</button>\n      </div>\n    </div>\n  </div>\n</div>\n","export const WFE_IFRAME = 'wvData';\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\n\nexport class SessionStorageService {\n  /**\n   * Sets metadata in session storage\n   * @param metadata - Object containing metadata to store\n   */\n  setMetadata(metadata: Record<string, any>, key: string): void {\n    try {\n      const serializedData = JSON.stringify(metadata);\n      sessionStorage.setItem(key, serializedData);\n    } catch (error) {\n      console.error('Error setting metadata in session storage:', error);\n    }\n  }\n\n  /**\n   * Gets metadata from session storage\n   * @returns Parsed metadata object or null if not found\n   */\n  getMetadata(key: string): Record<string, any> | null {\n    try {\n      const data = sessionStorage.getItem(key);\n      return data ? JSON.parse(data) : null;\n    } catch (error) {\n      console.error('Error getting metadata from session storage:', error);\n      return null;\n    }\n  }\n\n  /**\n   * Removes metadata from session storage\n   */\n  clearMetadata(key: string): void {\n    try {\n      sessionStorage.removeItem(key);\n    } catch (error) {\n      console.error('Error clearing metadata from session storage:', error);\n    }\n  }\n\n  /**\n   * Updates specific fields in the metadata\n   * @param updates - aPartial metadata object containing fields to update\n   */\n  updateMetadata(updates: Partial<Record<string, any>>, key: string): void {\n    try {\n      const currentMetadata = this.getMetadata(key) || {};\n      const updatedMetadata = { ...currentMetadata, ...updates };\n      this.setMetadata(updatedMetadata, key);\n    } catch (error) {\n      console.error('Error updating metadata in session storage:', error);\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { SessionStorageService } from '../services/session-storage.service';\n\nimport { WFE_IFRAME } from '../constants/session-storage.constants';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class WorkflowService {\n  modulePermissions!: any;\n  featureFlaService!: any;\n\n  private refreshSubject = new Subject<boolean>();\n  public isWorkflowOpenedSubject = new Subject<boolean>();\n\n  constructor(private sessionStorage: SessionStorageService) {\n    //this.setModuleSubscription();\n  }\n\n  workFlowConfig: any = {\n    mode: 'CREATE',\n    id: '',\n    workflowType: 'AAR',\n    openedFrom: 'GLOBAL',\n    allowedWorkflows: ['AAR'],\n    defaultRiskType: 'NORMAL',\n    secondaryPortal: 'NonOther',\n    riskRCId: null,\n  };\n\n  openWorkflow(\n    mode: string,\n    workFlowType: string,\n    openedFrom: string,\n    id: string = '',\n    secondaryPortal = 'NonOther',\n    permission: any = this.workFlowConfig.allowedWorkflows,\n    featureFlag?: any\n  ) {\n    this.workFlowConfig.mode = mode;\n    workFlowType && workFlowType?.length > 0\n      ? (this.workFlowConfig.workflowType = workFlowType)\n      : (this.workFlowConfig.workflowType = this.workFlowConfig.workflowType);\n    this.workFlowConfig.openedFrom = openedFrom;\n    this.workFlowConfig.id = id;\n    this.workFlowConfig.allowedWorkflows = permission;\n    this.workFlowConfig.secondaryPortal = secondaryPortal;\n    this.setWFESessionStorage();\n    return this.refreshSubject.asObservable();\n  }\n\n  setWFESessionStorage() {\n    this.sessionStorage.setMetadata(this.createSessionData(), WFE_IFRAME);\n    this.isWorkflowOpenedSubject.next(true);\n    this.refreshSubject.next(true);\n  }\n\n  createSessionData() {\n    return {\n      wfe: {\n        workflowType: this.workFlowConfig.workflowType,\n        mode: this.workFlowConfig.mode,\n        allowedWorkflows: this.workFlowConfig.allowedWorkflows,\n        feature: this.workFlowConfig.feature,\n        id: this.workFlowConfig.id,\n        openedFrom: this.workFlowConfig.openedFrom,\n        secondaryPortal: this.workFlowConfig.secondaryPortal,\n      },\n    };\n  }\n\n  // setModuleSubscription(){\n  //   this.authService.subscriptionDetails.subscribe((data: any) => {\n  //     if (data?.length){\n  //       this.modulePermissions = data[0];\n  //       console.log('ModulePermissions', this.modulePermissions);\n  //       console.log('ModulePermissions', this.setAuthorization());\n  //       setTimeout(() => {\n  //            console.log('ModulePermissions', this.workFlowConfig);\n  //       }, 3000);\n  //     }\n\n  //   });\n  // }\n\n  setAuthorization(UserInfo: any) {\n    const tracker = [];\n    let data = UserInfo;\n    //  UserInfo.pipe(take(1)).subscribe((data: any) => {\n    console.log('User Data', data);\n    const permissions = JSON.parse(data?.permission); // will be used for policy surevy and form\n\n    if (data && data?.quick_link?.risk) {\n      this.workFlowConfig.allowedWorkflows.push('RISK');\n      // if (permissions?.riskCategoryCount !== 0){\n      if (permissions.MRISK) {\n        this.workFlowConfig.allowedWorkflows.push('MULTIPLE_RISK');\n      }\n\n      // }\n      if (!tracker.length) {\n        this.workFlowConfig.workflowType = 'AAR';\n        tracker.push('AAR');\n      }\n    }\n    if (data?.quick_link?.entrust) {\n      this.workFlowConfig.allowedWorkflows.push('RESPONSIBILITY');\n      this.workFlowConfig.allowedWorkflows.push('MULTIPLE_RESPONSIBILITY');\n      if (!tracker.length) {\n        this.workFlowConfig.workflowType = 'CAR';\n        tracker.push('CAR');\n      }\n    }\n\n    if (data?.quick_link?.assessment) {\n      this.workFlowConfig.allowedWorkflows.push('ASSESSMENT');\n      if (!tracker.length) {\n        this.workFlowConfig.workflowType = 'AAA';\n        tracker.push('AAA');\n      }\n    }\n    if (data && data?.quick_link?.policy) {\n      // if (!data?.quick_link?.entrust && !data?.quick_link?.risk) {\n      //   this.workFlowConfig.workflowType  = 'CAP';\n      // }\n      this.workFlowConfig.allowedWorkflows.push('POLICY');\n      if (!tracker.length) {\n        this.workFlowConfig.workflowType = 'CAP';\n        tracker.push('CAP');\n      }\n    }\n    if (data && data?.quick_link?.incident) {\n      this.workFlowConfig.allowedWorkflows.push('ISSUE');\n      if (!tracker.length) {\n        this.workFlowConfig.workflowType = 'LAI';\n        tracker.push('LAI');\n      }\n    }\n    if (data?.quick_link?.program) {\n      this.workFlowConfig.allowedWorkflows.push('PROGRAM');\n    }\n    //  });\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DialogConfig } from '../../dialog/dialog-config';\nimport { DialogRef } from '../../dialog/dialog-ref';\n\n@Component({\n  selector: 'app-move',\n  templateUrl: './move.component.html',\n  styleUrls: ['./move.component.less'],\n})\nexport class MoveComponent implements OnInit {\n  animation = false;\n\n  state = 'move';\n  constructor(private dialog: DialogRef, public dialogConfig: DialogConfig) {}\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n  handleChecked(evt: any, type: any) {\n    this.state = type;\n  }\n  moveTheRisk(state: string) {\n    if (state === 'NO') {\n      this.dialog.close();\n    } else if (state === 'YES') {\n      this.dialog.close(this.state);\n    }\n  }\n}\n","<div class=\"alert-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n  <div class=\"alert-dialog-container\">\n    <div class=\"alert-dialog-body\">\n      <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\" >\n        <i class=\"icons\">&#xea7c;</i>\n      </div>\n      <div class=\"details vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center vx-lh-5\" [innerHTML]=\"dialogConfig?.data?.message\"></div>\n      <div class=\"move-option vx-mt-5\">\n        <ul class=\"vx-p-0 vx-m-0\">\n          <ng-container *ngIf=\"dialogConfig?.data?.responseStrategyActive\">\n            <li>\n              <app-cs-radio [checked]=\"state === 'move'\" (checkedEvent)=\"handleChecked($event, 'move')\"><span class=\"vx-fs-11 vx-fw-500 vx-lable-txt vx-tt-uppercase vx-lh-4\">Apply Predefined Rules & Move Risk</span></app-cs-radio>\n            </li>\n            <li>\n              <app-cs-radio [checked]=\"state === 'complete'\" (checkedEvent)=\"handleChecked($event, 'complete')\"><span class=\"vx-fs-11 vx-fw-500 vx-lable-txt vx-tt-uppercase vx-lh-4\">Do Not Move Risk & Complete Assessment</span></app-cs-radio>\n            </li>\n          </ng-container>\n          <ng-container *ngIf=\"!dialogConfig?.data?.responseStrategyActive\">\n            <li>\n              <app-cs-radio [checked]=\"state === 'move'\" (checkedEvent)=\"handleChecked($event, 'move')\"><span class=\"vx-fs-11 vx-fw-500 vx-lable-txt vx-tt-uppercase vx-lh-4\">Apply Predefined Rules</span></app-cs-radio>\n            </li>\n            <li>\n              <app-cs-radio [checked]=\"state === 'complete'\" (checkedEvent)=\"handleChecked($event, 'complete')\"><span class=\"vx-fs-11 vx-fw-500 vx-lable-txt vx-tt-uppercase vx-lh-4\">Complete Assessment & Do Not Apply Predefined Rules</span></app-cs-radio>\n            </li>\n          </ng-container>\n        </ul>\n      </div>\n    </div>\n    <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n      <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n      <div class=\"vx-d-flex vx-align-center\">\n        <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"moveTheRisk('NO')\">No</button>\n        <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"moveTheRisk('YES')\">Yes</button>\n      </div>\n    </div>\n  </div>\n</div>","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { retry } from 'rxjs/operators';\nimport { Configurations } from '../../../configurations';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class WorkshopService {\n  env!: any;\n  constructor(private http: HttpClient,\n    private authorizer: AuthorizerService,\n    @Optional() config?: Configurations) {\n      // if (config) {\n      //   this.env = config.env;\n      // }\n      if(localStorage.getItem('risk-quickview-config')){\n        this.env = JSON.parse(localStorage.getItem('risk-quickview-config'));\n\n      }\n    }\n\n  \n  orgUsers(url: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    // return this.http.get(environment.organizationGet + 'users').pipe(retry(2));\n    return this.http\n      .get(\n        this.env.apiEndpointWithoutV2 +\n          'organization/?mode=organisationUsersList' +\n          (url.a ? '&a=' + url.a : '') +\n          (url.p ? '&p=' + url.p : '') +\n          (url.type ? '&type=' + url.type : '') +\n          (url.q ? '&q=' + url.q : '')\n          , { headers: headers }\n      )\n      .pipe(retry(2));\n  }\n\n  /**\n   * Fetches the OrganizationUsers details of users List to set pagination details including number of\n   * pages and records limit per page,\n   * @param url  contains info about type & search query\n   */\n  getOrganizationUsersCount(url?: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http\n      .get(\n        this.env.apiEndpointWithoutV2 +\n          'organization/?mode=organisationUsersCount' +\n          (url.a ? '&a=' + url.a : '') +\n          (url.p ? '&p=' + url.p : '') +\n          (url.type ? '&type=' + url.type : '') +\n          (url.q ? '&q=' + url.q : '')\n          , { headers: headers }\n      )\n      .pipe(retry(2));\n  }\n  getRiskDetails(id: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/RiskDetailsById&RiskId=' + id, {}, { headers: headers }).pipe(retry(2));\n  }\n  getRcList() {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=risk/responsibilityCenterList', {}, { headers: headers }).pipe(retry(2));\n  }\n  createWorkshop(payload: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=workshop/create', payload, { headers: headers });\n  }\n\n  deleteWorkshop(id: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.get(this.env.apiEndpoint + 'risk?mode=workshop/delete&id=' + id, { headers: headers }).pipe(retry(2));\n  }\n\n  deleteParticipant(payload: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=workshop/deleteParticipant', payload, { headers: headers }).pipe(retry(2));\n  }\n  sendOrResendInvite(payload: any) {\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.post(this.env.apiEndpoint + 'risk?mode=workshop/sendParticipantInviteMail', payload, { headers: headers }).pipe(retry(2));\n  }\n  getGroupList(){\n    const headers = new HttpHeaders().set(\"token\", this.authorizer.getToken());\n    return this.http.get(this.env.apiEndpointWithoutV2 + 'organization/?mode=groupsList&fetch_all=true', { headers: headers });\n  }\n}\n","import { Component, Input, OnInit, EventEmitter, Output, HostListener } from '@angular/core';\n\n@Component({\n  selector: 'app-smiley-dialog',\n  templateUrl: './smiley-dialog.component.html',\n  styleUrls: ['./smiley-dialog.component.less'],\n})\nexport class SmileyDialogComponent implements OnInit {\n  @Input() message!: string;\n  @Input() autoClose!: boolean;\n  @Input() actionButtons!: any[];\n  @Output() action: EventEmitter<string> = new EventEmitter();\n  @Output() closeSmiley: EventEmitter<any> = new EventEmitter();\n\n  @HostListener('window:keyup', ['$event']) handleKeyboardEvent(event: KeyboardEvent) {\n    if (event.key === 'Escape') {\n      this.smileyCloseEmitter({});\n    }\n  }\n  constructor() {}\n\n  ngOnInit(): void {\n    if (this.autoClose) {\n      setTimeout(() => {\n        this.close();\n      }, 8000);\n    }\n  }\n  close() {\n    this.closeSmiley.emit();\n  }\n\n  actionEmitter(event: any) {\n    this.action.emit(event?.id);\n  }\n\n  smileyCloseEmitter(event: any) {\n    this.closeSmiley.emit();\n  }\n}\n","<div class=\"smiley-dialog vx-d-flex vx-align-center vx-justify-center\">\n  <button (click)=\"smileyCloseEmitter($event)\" class=\"close vx-fs-22 vx-label-txt vx-p-0 vx-m-0\">\n    <i class=\"icons\">&#xe93f;</i>\n  </button>\n  <div class=\"smiley-container\">\n    <div class=\"smiley-round\">\n      <!-- when smiley was active then active class was true -->\n      <!-- when smiley was deactive then deactive class was true -->\n      <div class=\"smiley-circle\" [class.active]=\"true\" [class.deactive]=\"false\">\n        <div class=\"smiley-circle-inner\">\n          <div class=\"eyes\">\n            <div class=\"eye\"></div>\n            <div class=\"eye\"></div>\n          </div>\n          <div class=\"mouth\"></div>\n        </div>\n      </div>\n    </div>\n    <div class=\"massage vx-fs-24 vx-label-txt vx-text-center\">{{ message }}</div>\n    <div class=\"successSmilyButton\">\n      <button class=\"vx-d-flex vx-align-center vx-justify-center vx-fs-11 vx-fw-500 vx-tt-uppercase vx-mb-2\" *ngFor=\"let button of actionButtons\" (click)=\"actionEmitter(button)\" [class]=\"button?.class\">{{ button?.buttonText }}</button>\n    </div>\n  </div>\n</div>\n\n\n\n\n\n\n<!-- active -->\n<div *ngIf=\"false\" class=\"smiley-popup active\">\n  <button class=\"close\" (click)=\"smileyCloseEmitter($event)\">\n    <i class=\"icons\">&#xe93f;</i>\n  </button>\n  <div class=\"smiley-container\">\n    <div class=\"smiley\">\n      <!-- active deactive -->\n      <div class=\"smiley-circle active\">\n        <div class=\"smiley-circle-inner\">\n          <div class=\"eyes\">\n            <div class=\"eye\"></div>\n            <div class=\"eye\"></div>\n          </div>\n          <div class=\"mouth\"></div>\n        </div>\n      </div>\n    </div>\n    <h3>{{ message }}</h3>\n    <div class=\"successSmilyButton\">\n      <button *ngFor=\"let button of actionButtons\" (click)=\"actionEmitter(button)\" [class]=\"button?.class\">\n        {{ button?.buttonText }}\n      </button>\n    </div>\n    <!-- <div class=\"successSmilyButton\"> -->\n    <!-- <button>White Button</button>\n            <button class=\"blue-btn\">Blue Button</button> -->\n    <!-- </div> -->\n  </div>\n</div>\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'app-no-data',\n  templateUrl: './no-data.component.html',\n  styleUrls: ['./no-data.component.less'],\n})\nexport class NoDataComponent implements OnInit {\n  @Input() action!: object;\n  @Input() noDataImage!: string;\n  @Input() noDataText!: string;\n  @Input() noDataButton!: string | boolean;\n  @Input() noDataSecButton!: string | boolean;\n  @Input() noDataMultipleButtons!: Array<string> |any;\n  @Input() altText!: string;\n  @Output() buttonAction = new EventEmitter<object>();\n  @Output() clickedButton = new EventEmitter<object>();\n  @Input() smallButton!: boolean;\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  actionEmitter(button: object) {\n    this.buttonAction.emit(button);\n  }\n\n  getClickedButton(button: any) {\n    this.clickedButton.emit(button);\n  }\n}\n","<div class=\"no-data-wrapper\">\n  <div class=\"no-data-container\">\n    <img [src]=\"noDataImage\" [alt]=\"altText\" class=\"image\" />\n    <p class=\"text\" [innerHTML]=\"noDataText\" *ngIf=\"noDataText\"></p>\n    <div *ngIf=\"noDataButton\" class=\"button-row\">\n      <button *ngIf=\"noDataButton\" class=\"vx-btn md primary\" (click)=\"actionEmitter($event)\">{{noDataButton}}</button>\n    </div>\n    \n    <div *ngIf=\"noDataMultipleButtons?.length\" class=\"button-row\">\n      <button *ngFor=\"let button of noDataMultipleButtons\" class=\"vx-btn md primary\" (click)=\"getClickedButton(button)\">{{button.buttonText}}</button>\n    </div>\n  </div>\n</div>\n\n\n\n\n<!-- <div class=\"no-data-wrapper\">\n  <div class=\"no-data-container\">\n    <img [src]=\"noDataImage\" [alt]=\"altText\" class=\"image\" />\n    <p class=\"text\" [innerHTML]=\"noDataText\" *ngIf=\"noDataText\"></p>\n    <div class=\"button-row\">\n      <button *ngFor=\"let button of action\" (click)=\"actionEmitter(button)\" [innerHTML]=\"button?.buttonText\" [class.small]=\"smallButton\"></button>\n    </div>\n  </div>\n</div> -->\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n  selector: '[appRipple]',\n})\nexport class RippleDirective {\n  constructor(private el: ElementRef) {}\n  @HostListener('mousedown', ['$event']) mousedown(event: any) {\n    this.getPosition(event);\n  }\n  getPosition(event: any) {\n    const container = event.currentTarget;\n    const containerPosition = this.el.nativeElement.getBoundingClientRect();\n    const circle = document.createElement('span');\n    const diameter = Math.max(container.clientWidth, container.clientHeight);\n    container.classList.add('ripple-effect');\n    circle.style.width = circle.style.height = `${diameter}px`;\n    circle.style.width = circle.style.height = `${diameter}px`;\n    circle.style.left = `${event.clientX - containerPosition.left - containerPosition.width / 2}px`;\n    circle.style.top = `${event.clientY - containerPosition.top - containerPosition.height / 2}px`;\n    circle.classList.add('ripple');\n    const ripple = container.getElementsByClassName('ripple')[0];\n\n    if (ripple) {\n      ripple.remove();\n    }\n    container.appendChild(circle);\n    // setTimeout(() => {\n    //   circle.remove();\n    //   container.classList.remove('ripple-effect');\n    // }, 800);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'categorylength',\n})\nexport class CategorylengthPipe implements PipeTransform {\n  transform(value: any, ...args: unknown[]): number {\n    if (typeof value === 'object') {\n      let len: number;\n      len = 0;\n      for (const key in value) {\n        if (value.hasOwnProperty(key) && Array.isArray(value[key])) {\n          len += value[key].length;\n        }\n      }\n      return len || -1;\n    }\n    return -1;\n  }\n}\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\n// import { FeatureFlagService } from '../../../../../../../workroom-client/src/app/featureFlag/feature-flag.service'\n\n@Component({\n  selector: 'app-floating',\n  templateUrl: './floating-bar.component.html',\n  styleUrls: ['./floating-bar.component.less'],\n})\nexport class FloatingBarComponent implements OnInit {\n  @Input() selectedData: any;\n  @Input() selectedgroup:any;\n  @Input() listType!: 'user' | 'rc' | 'category';\n  @Input() feature!: any;\n  @Output() closeEvent: EventEmitter<any> = new EventEmitter();\n  @Output() closeEvent1: EventEmitter<any> = new EventEmitter();\n  @Output() deleteEvent: EventEmitter<number> = new EventEmitter();\n  @Output() removeGroupEvent = new EventEmitter<any>();\n  constructor() {\n    this.selectedData = [];\n  }\n  featureflag_groups: boolean = false;\n\n  ngOnInit(): void {\n    this.featureflag_groups = this.feature.isFeatureEnabled(\"ff_risk_groups\");\n  }\n\n  nextClose() {\n    if(this.featureflag_groups){\n      this.closeEvent1.emit({users:this.selectedData,groups:this.selectedgroup});\n    }else{\n      this.closeEvent.emit(this.selectedData);\n    }\n  }\n\n  deleteSelected(index: number) {\n    this.deleteEvent.emit(index);\n  }\n\n  removegroup(data :any){\n    this.removeGroupEvent.emit(data)\n  }\n}\n","<div class=\"floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n  <div class=\"floating-bar-left vx-d-flex vx-align-center\">\n    <ng-container *ngIf=\"listType === 'user' && (selectedData?.length > 0 && selectedData?.length <= 500) || selectedgroup?.length >0\">\n      <span class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6 vx-mr-1\" *ngFor=\"let data of selectedData | slice: 0:1\">\n        <i class=\"icons vx-mr-1\" (click)=\"deleteSelected(data?.member_id)\">&#xe9ae;</i> {{ data['user_name'] }}\n      </span>\n      <button class=\"count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-mr-1 vx-lh-6\" *ngIf=\"selectedData?.length > 1\" appPopover (click)=\"participant.popover()\" placement=\"left\">{{ selectedData?.length - 1 }}</button>\n      <div *ngIf=\"selectedData?.length > 1\" class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt\">{{featureflag_groups ?'Users selected':'Participants selected'}}</div>\n      <div *ngIf=\"selectedgroup?.length >0 && selectedData?.length > 1\" class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</div>\n      <button *ngIf=\"selectedgroup?.length >0\" class=\"count group vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-mr-1 vx-lh-6\" appPopover (click)=\"groups.popover()\" placement=\"left\">+{{selectedgroup?.length}}</button>\n      <div *ngIf=\"selectedgroup?.length >0\" class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt\">{{selectedgroup?.length === 1 ?'User Group selected':'User Groups selected'}}</div>\n    </ng-container>\n    <ng-container *ngIf=\"listType === 'rc' && selectedData?.length > 0\">\n      <span class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6 vx-mr-1\" *ngFor=\"let data of selectedData | slice: 0:1\">\n        <i class=\"icons vx-mr-1\" (click)=\"deleteSelected(data?.member_id)\">&#xe9ae;</i> {{ data?.rc_name }}\n      </span>\n      <button class=\"count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-mr-1 vx-lh-6\" *ngIf=\"selectedData?.length > 1\" appPopover (click)=\"rcCenter.popover()\" placement=\"left\">+{{ selectedData?.length - 1 }}</button>\n      <div *ngIf=\"selectedData?.length === 1\" class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt\">Responsibility Center selected</div>\n      <div *ngIf=\"selectedData?.length > 1\" class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt\">Responsibility Centers selected</div>\n    </ng-container>\n    <ng-container *ngIf=\"listType === 'category' && (selectedData | categorylength) as result\">\n      <div class=\"counter vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-mr-1 vx-lh-6\" *ngIf=\"result > 0\">{{ result }}</div>\n      <div *ngIf=\"result === 1\" class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt\">Category selected</div>\n      <div *ngIf=\"result > 1\" class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt\">Categories selected</div>\n    </ng-container>\n    <div *ngIf=\"selectedData?.length > 500\" class=\"vx-fs-12 vx-fw-500 vx-txt-red\">You can send this workshop to a maximum of 500 users at a time.</div>\n  </div>\n\n  <div class=\"floating-bar-right vx-d-flex vx-align-center\">\n    <ng-container *ngIf=\"true\">\n      <button (click)=\"closeEvent.emit()\" class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\">CANCEL</button>\n      <button class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white\" (click)=\"nextClose()\" [class.disabled]=\"listType === 'user' && selectedData?.length > 500\">NEXT <i class=\"icons vx-ml-2\">&#xe91e;</i></button>\n    </ng-container>\n  </div>\n</div>\n<app-popover #participant [dontCloseonClick]=\"true\">\n  <div class=\"action-list\">\n    <ul class=\"action-item\">\n      <li *ngFor=\"let data of selectedData | slice: 1\">\n        <div class=\"chip-item\">\n          <i class=\"icons\" (click)=\"deleteSelected(data?.member_id)\">&#xe90d;</i>\n          <span>{{ data['user_name'] }}</span>\n        </div>\n      </li>\n    </ul>\n  </div>\n</app-popover>\n<app-popover #groups [dontCloseonClick]=\"true\">\n  <div class=\"action-list\">\n    <ul class=\"action-item\">\n      <li *ngFor=\"let data of selectedgroup\">\n        <div class=\"chip-item\">\n          <i class=\"icons\" (click)=\"removegroup(data)\">&#xe90d;</i>\n          <span>{{data?.group_name}}</span>\n        </div>\n      </li>\n    </ul>\n  </div>\n</app-popover>\n<app-popover #rcCenter [dontCloseonClick]=\"true\">\n  <div class=\"action-list\">\n    <ul class=\"action-item\">\n      <li *ngFor=\"let data of selectedData | slice: 1\">\n        <div class=\"chip-item\">\n          <i class=\"icons\" (click)=\"deleteSelected(data?.member_id)\">&#xe90d;</i>\n          <span>{{ data?.rc_name }}</span>\n        </div>\n      </li>\n    </ul>\n  </div>\n</app-popover>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'forage',\n})\nexport class Forage implements PipeTransform {\n  transform(value: any, args?: any): any {\n    if (!value) {\n      return null;\n    }\n    if (!args) {\n      return value;\n    }\n\n    args = args.toLowerCase();\n\n    return value.filter((item: any) => {\n      return JSON.stringify(item).toLowerCase().includes(args);\n    });\n  }\n}\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\n\n@Component({\n  selector: 'app-res-list',\n  templateUrl: './rc-list.component.html',\n  styleUrls: ['./rc-list.component.less'],\n})\nexport class ResponsibilityListComponent implements OnInit, OnChanges {\n  @Input() data: any[];\n  @Output() closeList: EventEmitter<any[]> = new EventEmitter();\n  @Input() selectedData: any[];\n  checkBoxSelect: boolean[];\n  all!: boolean;\n  animation = false;\n  selectedIds: any[] = [];\n  searchKey!: string;\n\n  constructor() {\n    this.data = [];\n    this.checkBoxSelect = [];\n    this.selectedData = [];\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes?.['selectedData'] || changes?.['data']) {\n      this.populateList();\n    }\n    const Data = cloneDeep(this.selectedData);\n    if (Data.length > 0) {\n      const selectedData = [...Data];\n      this.selectedIds = selectedData.map((ele: any) => {\n        if (ele.rc_id) {\n          return ele.rc_id;\n        }\n      });\n    }\n    this.all = this.selectedData.length === this.data.length;\n  }\n\n  populateList() {\n    if (Array.isArray(this.data) && this.data.length > 0 && Array.isArray(this.selectedData)) {\n      this.checkBoxSelect = Array(this.data.length).fill(false);\n      const selectSet: Set<string> = new Set();\n      for (const data of this.selectedData) {\n        selectSet.add(data._id);\n      }\n      for (let i = 0; i < this.data.length; i++) {\n        if (selectSet.has(this.data[i]._id)) {\n          this.checkBoxSelect[i] = true;\n        }\n      }\n    }\n  }\n\n  selectAllChange(event: boolean) {\n    if (!event) {\n      this.selectedData = [];\n      this.selectedIds = [];\n      this.all = false;\n    } else {\n      this.selectedData = JSON.parse(JSON.stringify(this.data));\n      const Data = cloneDeep(this.selectedData);\n      if (Data.length > 0) {\n        const selectedData = [...Data];\n        this.selectedIds = selectedData.map((ele: any) => {\n          if (ele.rc_id) {\n            return ele.rc_id;\n          }\n        });\n      }\n      this.all = true;\n\n      // this.checkBoxSelect.forEach((item, index) => {\n      //   this.checkBoxSelect[index] = true;\n      // });\n    }\n  }\n\n  rcSelectionChange(event: boolean, rc: any) {\n    if (event) {\n      this.selectedData.push(rc);\n      this.selectedIds.push(rc.rc_id);\n    } else {\n      const index = this.selectedData.findIndex((ele: any) => ele.rc_id === rc.rc_id);\n      this.selectedData.splice(index, 1);\n      const idIndex = this.selectedIds.findIndex((ele: any) => ele === rc.rc_id);\n      this.selectedIds.splice(idIndex, 1);\n\n      // this.selectedData.splice(this.getArrayIndex(this.selectedData, this.data[index], '_id'), 1);\n      // this.selectedIds.splice(this.getArrayIndex(this.selectedIds, this.data[index].rc_id, '_id'), 1);\n    }\n    this.all = this.selectedData.length === this.data.length;\n  }\n\n  getArrayIndex(array: any[], obj: any, key: string) {\n    for (let i = 0; i < array.length; i++) {\n      if (array[i][key] === obj[key]) {\n        return i;\n      }\n    }\n    return -1;\n  }\n\n  closeEvent(event: any[]): void {\n    this.closeList.emit(event);\n  }\n\n  goBack(): void {\n    this.closeList.emit(undefined);\n  }\n\n  deleteEvent(index: number): void {\n    this.selectedData.splice(index, 1);\n    this.selectedIds.splice(index, 1);\n    this.all = false;\n  }\n}\n","<div class=\"form-dialog-left\" [class.animate]=\"animation\">\n  <div class=\"form-dialog-left-heading vx-d-flex vx-align-center vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-fs-14 vx-fw-500 vx-lable-txt\">Select Responsibility Center(s)</div>\n\n  <div class=\"form-dialog-left-container vx-pl-4 vx-pr-4\">\n    <div class=\"form-dialog-left-inner vx-pt-3 vx-pl-4 vx-pr-4\">\n      <div class=\"form-dialog-left-search vx-mb-1\">\n        <i class=\"icons vx-fs-12\">&#xe90b;</i>\n        <input type=\"text\" placeholder=\"Search Responsibility Center\" [(ngModel)]=\"searchKey\" />\n      </div>\n      <div class=\"form-dialog-left-mid\">\n        <ng-container *ngIf=\"data | forage: searchKey as rcenters\">\n          <div *ngIf=\"data?.length == rcenters?.length\" class=\"rc-list-select vx-mb-2\">\n            <app-cs-checkbox [(ngValue)]=\"all\" (ngValueChange)=\"selectAllChange($event)\">Select All</app-cs-checkbox>\n          </div>\n          <div class=\"rc-list-item\">\n            <ul class=\"vx-m-0 vx-p-0\" *ngIf=\"rcenters?.length > 0\">\n              <li class=\"vx-mb-2\" *ngFor=\"let rc of rcenters; let i = index\">\n                <app-cs-checkbox [ngValue]=\"selectedIds?.includes(rc?.rc_id)\" (ngValueChange)=\"rcSelectionChange($event, rc)\">\n                  <ul class=\"rc-name vx-m-0 vx-p-0 vx-d-flex vx-justify-start\">\n                    <li class=\"vx-fs-12 vx-paragraph-txt vx-pr-2\" *ngFor=\"let entity of rc?.rc_name_arr; let j = index\" [appTooltip]=\"entity\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                      <i class=\"icons vx-fs-8 vx-pr-2\" *ngIf=\"j !== 0\">&#xe910;</i>\n                      {{ entity }}\n                    </li>\n                  </ul>\n                </app-cs-checkbox>\n              </li>\n            </ul>\n          </div>\n        </ng-container>\n      </div>\n    </div>\n    <app-floating [selectedData]=\"selectedData\" (closeEvent)=\"closeEvent($event)\" [listType]=\"'rc'\" (deleteEvent)=\"deleteEvent($event)\"></app-floating>\n  </div>\n</div>\n\n\n\n\n\n\n\n\n\n<div *ngIf=\"false\" class=\"risk-workshop-rc\" [class.animate]=\"animation\">\n  <div class=\"risk-workshop-rc-head\">\n    <h3 class=\"risk-workshop-rc-title\">Select Responsibility Center(s)</h3>\n    <button appRipple class=\"risk-workshop-rc-close\" (click)=\"goBack()\">\n      <i class=\"icons\">&#xe90d;</i>\n    </button>\n  </div>\n  <div class=\"risk-workshop-rc-body\">\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input type=\"text\" placeholder=\"Search Responsibility Center\" [(ngModel)]=\"searchKey\" />\n    </div>\n    <ng-container *ngIf=\"data | forage: searchKey as rcenters\">\n      <div class=\"body-top\" *ngIf=\"data?.length == rcenters?.length\">\n        <app-cs-checkbox [(ngValue)]=\"all\" (ngValueChange)=\"selectAllChange($event)\"><strong>Select All</strong> </app-cs-checkbox>\n        <div class=\"pagination\"></div>\n      </div>\n      <ul class=\"risk-workshop-rc-list\" *ngIf=\"rcenters?.length > 0\">\n        <li *ngFor=\"let rc of rcenters; let i = index\">\n          <app-cs-checkbox [ngValue]=\"selectedIds?.includes(rc?.rc_id)\" (ngValueChange)=\"rcSelectionChange($event, rc)\">\n            <ul class=\"risk-workshop-rc-name\">\n              <li *ngFor=\"let entity of rc?.rc_name_arr; let j = index\" [appTooltip]=\"entity\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                <i class=\"icons\" *ngIf=\"j !== 0\">&#xe910;</i>\n                {{ entity }}\n              </li>\n            </ul>\n          </app-cs-checkbox>\n        </li>\n      </ul>\n      <app-no-data *ngIf=\"rcenters?.length === 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/quick-view/search-data.svg'\" [noDataText]=\"'No Responsibility Centers Found'\"></app-no-data>\n    </ng-container>\n  </div>\n  <app-floating [selectedData]=\"selectedData\" (closeEvent)=\"closeEvent($event)\" [listType]=\"'rc'\" (deleteEvent)=\"deleteEvent($event)\"></app-floating>\n</div>\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\n\n/**\n * Service to implement pagination for users while creating an app\n */\nexport class PaginationService {\n  currentPage = 1;\n  searchValue = '';\n  currentAlphabet = 'all';\n\n  currentValues = new BehaviorSubject({});\n\n  constructor() {}\n\n  setCurrentState() {\n    this.currentValues.next(true);\n  }\n  reset() {\n    this.currentPage = 1;\n    this.searchValue = '';\n  }\n}\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from '@angular/core';\nimport { SubSink } from '../../../subsink.class';\nimport { PaginationService } from '../services/pagination.service';\n\n@Component({\n  selector: 'app-risk-workshop-pagination',\n  templateUrl: './risk-workshop-pagination.component.html',\n  styleUrls: ['./risk-workshop-pagination.component.less'],\n})\nexport class RiskWorkshopPaginationComponent implements OnInit, OnChanges, OnDestroy {\n  start = 1;\n  totalCount!: number;\n  paginationArray: any[] = [];\n  currentPage!: number;\n  @Input() totalPages = 1;\n  @Input() limit = 1;\n  @Input() totalList = 1;\n  @Output() paginationFilter = new EventEmitter();\n  currentFilter = 'all';\n  subscriptions:SubSink = new SubSink()\n  constructor(private paginationService: PaginationService) {}\n  ngOnChanges() {\n    this.currentPage = Number(this.paginationService.currentPage);\n    this.start = Number(this.paginationService.currentPage);\n    this.rebuildPagination(this.currentPage, this.totalPages);\n  }\n\n  ngOnInit() {\n    this.currentPage = Number(this.paginationService.currentPage);\n    this.start = Number(this.paginationService.currentPage);\n    this.rebuildPagination(this.currentPage, this.totalPages);\n    this.subscriptions.add(this.paginationService.currentValues.subscribe(\n      (event: any) => {\n        if (event && this.paginationService.currentPage !== this.currentPage) {\n          this.currentPage = this.paginationService.currentPage;\n        }\n        if (event && this.paginationService.currentAlphabet !== this.currentFilter) {\n          this.currentFilter = this.paginationService.currentAlphabet;\n        }\n      },\n      (error) => {\n        console.error(error);\n      }\n    ));\n    this.currentFilter = this.paginationService.currentAlphabet;\n  }\n\n  /* In this function we will recreate the pagination structure as per current page and\n   total number of pages */\n\n  rebuildPagination(currentPage: number, totalCount: number) {\n    this.paginationArray = [];\n    this.totalCount = totalCount;\n    this.currentPage = currentPage;\n    if (this.paginationService.currentPage !== this.currentPage) {\n      this.paginationService.currentPage = this.currentPage;\n      this.paginationFilter.emit(true);\n    }\n\n    // If there are only 6 pages or less in total, just display all pages without \"...\"\n    if (totalCount <= 6) {\n      for (let i = 1; i <= totalCount; i++) {\n        this.paginationArray.push(i);\n      }\n    }\n    // ELSE display with ...\n    else {\n      // Always print first page button\n      this.paginationArray.push(1);\n\n      // Print \"...\" if currentPage is > 3\n      if (currentPage > 3) {\n        // this.paginationArray.push(2);\n        this.paginationArray.push('...');\n      }\n      // special case where last page is selected...\n      // Without this special case, only 2 buttons would be shown after ... if you were on last page\n      if (currentPage === totalCount) {\n        this.paginationArray.push(currentPage - 2);\n      }\n\n      // Print previous number button if currentPage > 2\n      if (currentPage > 2) {\n        this.paginationArray.push(currentPage - 1);\n      }\n\n      // Print current page number button as long as it not the first or last page\n      if (currentPage !== 1 && currentPage !== totalCount) {\n        this.paginationArray.push(currentPage);\n      }\n\n      // print next page number button if currentPage < lastPage - 1\n      if (currentPage < totalCount - 1) {\n        this.paginationArray.push(currentPage + 1);\n      }\n\n      // special case where first page is selected...\n      // Without this special case, only 2 buttons would be shown before ... if you were on first page\n      if (currentPage === 1) {\n        this.paginationArray.push(currentPage + 2);\n      }\n\n      // print \"...\" if currentPage is < lastPage -2\n      if (currentPage < totalCount - 2) {\n        this.paginationArray.push('...');\n\n        // HTML += \"...\";\n      }\n\n      // Always print last page button if there is more than 1 page\n      if (totalCount > 1) {\n        this.paginationArray.push(totalCount);\n      }\n    }\n  }\n  /* In this function we will set current page according to the action performed on browser\n     ex: prev next buttons clicks or selecting a particular page */\n\n  changePage(prev: string, page: number, next: string) {\n    if (prev) {\n      if (this.start > 1) {\n        this.start--;\n        // We have changed the start page, total rebuild the pagination\n        this.rebuildPagination(this.start, this.totalCount);\n      }\n    }\n    if (next) {\n      if (this.start < this.totalCount) {\n        this.start++;\n        this.rebuildPagination(this.start, this.totalCount);\n      }\n    }\n    if (page) {\n      this.start = page;\n      this.rebuildPagination(this.start, this.totalCount);\n    }\n  }\n  filterByLetter(letter: any) {\n    this.currentFilter = letter;\n    // this.router.navigate(['organization/users/users', { a: this.vcService.currentAlphabet , p: this.vcService.currentPage}]);\n    if (this.paginationService.currentAlphabet !== this.currentFilter) {\n      this.paginationService.currentAlphabet = this.currentFilter;\n      this.paginationService.currentPage = 1;\n      this.paginationFilter.emit(true);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<div class=\"pagination-sec-ds vx-d-flex vx-align-center vx-justify-between vx-pb-2 vx-pl-1 vx-d-flex\">\n  <div class=\"left vx-label-txt vx-fs-12 vx-fw-400 vx-tt-uppercase vx-lh-6\">\n    <div class=\"pagination-box\">\n        <ul class=\"vx-d-flex vx-align-center vx-m-0 vx-p-0\">\n            <li class=\"vx-d-flex\"><button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-p-0 vx-m-0\" (click)=\"filterByLetter('all')\" [class.active]=\"currentFilter == 'all'\">All</button></li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('a')\" [class.active]=\"currentFilter == 'a'\">A</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('b')\" [class.active]=\"currentFilter == 'b'\">B</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('c')\" [class.active]=\"currentFilter == 'c'\">C</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('d')\"[class.active]=\"currentFilter == 'd'\">D</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('e')\" [class.active]=\"currentFilter == 'e'\">E</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('f')\" [class.active]=\"currentFilter == 'f'\">F</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('g')\" [class.active]=\"currentFilter == 'g'\">G</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('h')\" [class.active]=\"currentFilter == 'h'\">H</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('i')\" [class.active]=\"currentFilter == 'i'\">I</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('j')\" [class.active]=\"currentFilter == 'j'\">J</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('k')\" [class.active]=\"currentFilter == 'k'\">K</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('l')\" [class.active]=\"currentFilter == 'l'\">L</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('m')\" [class.active]=\"currentFilter == 'm'\">M</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('n')\" [class.active]=\"currentFilter == 'n'\">N</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('o')\" [class.active]=\"currentFilter == 'o'\">O</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('p')\" [class.active]=\"currentFilter == 'p'\">P</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('q')\" [class.active]=\"currentFilter == 'q'\">Q</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('r')\" [class.active]=\"currentFilter == 'r'\">R</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('s')\" [class.active]=\"currentFilter == 's'\">S</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('t')\" [class.active]=\"currentFilter == 't'\">T</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('u')\" [class.active]=\"currentFilter == 'u'\">U</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('v')\" [class.active]=\"currentFilter == 'v'\">V</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('w')\" [class.active]=\"currentFilter == 'w'\">W</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('x')\" [class.active]=\"currentFilter == 'x'\">X</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('y')\" [class.active]=\"currentFilter == 'y'\">Y</button>\n            </li>\n            <li class=\"vx-d-flex\">\n                <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-m-0\" (click)=\"filterByLetter('z')\" [class.active]=\"currentFilter == 'z'\">Z</button>\n            </li>\n        </ul>\n    </div>\n  </div>\n\n  <div class=\"right vx-d-flex vx-align-center\" *ngIf=\"totalPages > 1\">\n      <div class=\"pagination-box\">\n          <ul class=\"vx-d-flex vx-align-center vx-m-0 vx-p-0\">\n              <li class=\"vx-d-flex vx-mr-0\">\n                  <button class=\"vx-m-0\" [class.disabled]=\"currentPage == 1\" (click)=\"changePage('prev', 0, '')\">\n                      <i class=\"icons vx-fs-10\">&#xe96b;</i>\n                  </button>\n              </li>\n\n              <li class=\"vx-d-flex\" *ngFor=\"let page of paginationArray\">\n                  <button class=\"vx-label-txt vx-fs-11 vx-fw-400 vx-pl-1 vx-pr-1 vx-d-inline-flex vx-align-center vx-justify-center vx-m-0 vx-ml-1\" [disabled]=\"page == '...'\" [class.disable]=\"page == '...'\" [class.active]=\"currentPage == page\" (click)=\"changePage('', page, '')\">\n                    <i *ngIf=\"page == '...'\" class=\"icons vx-fs-10\">&#xe911;</i>{{ page != '...' ? page : '' }}\n                  </button>\n              </li>\n\n              <li class=\"vx-d-flex vx-ml-2\">\n                  <button  class=\"vx-m-0\" [class.disabled]=\"currentPage == totalCount\" (click)=\"changePage('', 0, 'next')\">\n                      <i class=\"icons vx-fs-10\">&#xe970;</i>\n                  </button>\n              </li>\n          </ul>\n      </div>\n  </div>\n</div>\n\n\n\n<!-- <p>risk-workshop-pagination works!</p> -->\n<div *ngIf=\"false\" class=\"pagination-sec\">\n  <div class=\"left\">\n    <div class=\"pagination-box\">\n      <ul>\n        <!-- <li><button class=\"active\" [class.active]=\"true\">All</button></li>\n                <li\n                    *ngFor=\"let data of ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','w','x','y','z']\">\n                    <button [class.active]=\"false\">{{data}}</button>\n                </li> -->\n        <li>\n          <button (click)=\"filterByLetter('all')\" [class.active]=\"currentFilter == 'all'\">all</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('a')\" [class.active]=\"currentFilter == 'a'\">a</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('b')\" [class.active]=\"currentFilter == 'b'\">b</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('c')\" [class.active]=\"currentFilter == 'c'\">c</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('d')\" [class.active]=\"currentFilter == 'd'\">d</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('e')\" [class.active]=\"currentFilter == 'e'\">e</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('f')\" [class.active]=\"currentFilter == 'f'\">f</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('g')\" [class.active]=\"currentFilter == 'g'\">g</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('h')\" [class.active]=\"currentFilter == 'h'\">h</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('i')\" [class.active]=\"currentFilter == 'i'\">i</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('j')\" [class.active]=\"currentFilter == 'j'\">j</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('k')\" [class.active]=\"currentFilter == 'k'\">k</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('l')\" [class.active]=\"currentFilter == 'l'\">l</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('m')\" [class.active]=\"currentFilter == 'm'\">m</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('n')\" [class.active]=\"currentFilter == 'n'\">n</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('o')\" [class.active]=\"currentFilter == 'o'\">o</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('p')\" [class.active]=\"currentFilter == 'p'\">p</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('q')\" [class.active]=\"currentFilter == 'q'\">q</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('r')\" [class.active]=\"currentFilter == 'r'\">r</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('s')\" [class.active]=\"currentFilter == 's'\">s</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('t')\" [class.active]=\"currentFilter == 't'\">t</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('u')\" [class.active]=\"currentFilter == 'u'\">u</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('v')\" [class.active]=\"currentFilter == 'v'\">v</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('w')\" [class.active]=\"currentFilter == 'w'\">w</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('x')\" [class.active]=\"currentFilter == 'x'\">x</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('y')\" [class.active]=\"currentFilter == 'y'\">y</button>\n        </li>\n        <li>\n          <button (click)=\"filterByLetter('z')\" [class.active]=\"currentFilter == 'z'\">z</button>\n        </li>\n      </ul>\n    </div>\n  </div>\n  <div class=\"right\" *ngIf=\"totalPages > 1\">\n    <div class=\"pagination-box\">\n      <!-- <ul>\n                <li>\n                    <button [disabled]=\"true\" [class.disabled]=\"true\">\n                        <i class=\"risk-icons\">&#xe90f;</i>\n                    </button>\n                </li>\n\n                <li *ngFor=\"let page of [1,1,1]; let i = index\">\n                    <button [disabled]=\"false\" [class.active]=\"false\">{{page}}</button>\n                </li>\n\n                <li>\n                    <button [disabled]=\"false\" [class.disabled]=\"false\">\n                        <i class=\"risk-icons\">&#xe910;</i>\n                    </button>\n                </li>\n            </ul> -->\n      <ul>\n        <li>\n          <button [class.disabled]=\"currentPage == 1\" (click)=\"changePage('prev', 0, '')\">\n            <i class=\"icons\">&#xe90f;</i>\n          </button>\n        </li>\n        <li *ngFor=\"let page of paginationArray\">\n          <button [disabled]=\"page == '...'\" [class.disable]=\"page == '...'\" [class.active]=\"currentPage == page\" (click)=\"changePage('', page, '')\">\n            <i *ngIf=\"page == '...'\" class=\"icons\">&#xe911;</i>{{ page != '...' ? page : '' }}\n          </button>\n        </li>\n\n        <li>\n          <button [class.disabled]=\"currentPage == totalCount\" (click)=\"changePage('', 0, 'next')\">\n            <i class=\"icons\">&#xe910;</i>\n          </button>\n        </li>\n      </ul>\n    </div>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({\n  name: 'filter',\n})\nexport class FilterPipe implements PipeTransform {\n  transform(items: any[], searchText: string): any[] {\n    if (!items) {\n      return [];\n    }\n    if (!searchText) {\n      return items;\n    }\n    searchText = searchText.toLowerCase();\n    return items.filter((it: any) => {\n      return JSON.stringify(it).toLowerCase().includes(searchText);\n    });\n  }\n}\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, OnDestroy } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { SubSink } from '../../../subsink.class';\nimport { PaginationService } from '../services/pagination.service';\nimport { WorkshopService } from '../services/workshop.service';\n@Component({\n  selector: 'app-owner',\n  templateUrl: './owner-list.component.html',\n  styleUrls: ['./owner-list.component.less'],\n})\nexport class OwnersListComponent implements OnInit, OnChanges, OnDestroy {\n  @Input() data: any[];\n  @Output() closeList: EventEmitter<any[]> = new EventEmitter();\n  @Output() closeList1: EventEmitter<any[]> = new EventEmitter();\n  @Input() selectedUsers: any[] = [];\n  @Input() totalPages = 1;\n  @Input() allRCHeadOwners: any[] = [];\n  @Input() workshopParticipants: any[] = [];\n  @Input() workshopGroupParticipants: any[] = [];\n  @Input() groupList: any[] = [];\n  @Input() select_group: any[] = [];\n  @Input() disableGroupId: any[] = [];\n  @Input() feature!: any;\n  selectedData: any[];\n  searchList: any[] = [];\n  searchValue = '';\n  selectedIds: any[] = [];\n  checkBoxSelect: boolean[];\n  disabledSelect: boolean[];\n  setDefaultValues = false;\n  all!: boolean;\n  animation = false;\n  loader = false;\n  selectedgroup: any[]=[];\n  featureflag_groups: boolean = false;\n  subscriptions:SubSink = new SubSink()\n  constructor(private workshopService: WorkshopService, public paginationService: PaginationService) {\n    this.data = [];\n    this.checkBoxSelect = [];\n    this.disabledSelect = [];\n    this.selectedData = [];\n    this.paginationService.currentAlphabet = 'all';\n    this.paginationService.currentPage = 1;\n    this.paginationService.searchValue = '';\n  }\n\n  ngOnChanges() {\n    //     if (changes.selectedData || changes.data) {\n    // debugger\n    //  }\n    this.selectedData = cloneDeep(this.selectedUsers);\n    if (this.selectedData.length > 0) {\n      const selectedData = [...this.selectedData];\n      this.selectedIds = selectedData.map((ele: any) => {\n        if (ele.member_id) {\n          return ele.member_id;\n        }\n      });\n    }\n    this.selectedGroupList();\n    this.getUsersList({\n      p: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\n    });\n  }\n  ngOnInit(): void {\n    this.featureflag_groups = this.feature.isFeatureEnabled(\"ff_risk_groups\");\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n\n  }\n\n  selectGroup(event: any, data: any) {\n    this.groupList?.forEach((element: any) => {\n      if (element._id == data._id) {\n        if (event) {\n          element.checked = event;\n          this.selectedgroup.push(element);\n        } else {\n          element.checked = event;\n          this.selectedgroup = this.selectedgroup.filter((ele: any) => ele._id !== data._id);\n        }\n      }\n    })\n  }\n//To dispaly the count of groups\n  getGroupCountWithoutWorkshop() : Number {\n    const groupsWithoutWorkshop = this.groupList.filter((group:any) => {\n      if(!this.workshopGroupParticipants?.includes(group._id)) {\n        return group;\n      }\n    });\n    return groupsWithoutWorkshop.length;\n  }\n  //To dispaly the count of User\n  getUserCountWithoutWorkshop() : Number {\n    const UserWithoutWorkshop = this.searchList.filter((user:any) => {\n      if(!this.workshopParticipants?.includes(user.member_id)) {\n        return user;\n      }\n    });\n    return UserWithoutWorkshop.length;\n  }\n\n  //select All groups\n  selectAllGroups(event: any) {\n    this.groupList?.forEach((element: any) => {\n      if(event){\n        if (!element.checked) {\n          element.checked = true;\n          if(this.disableGroupId?.includes(element._id) || this.workshopGroupParticipants?.includes(element._id)){\n            element.checked =false;\n          } else {\n            this.selectedgroup.push(element);\n          }\n        }\n      }else{\n        this.selectedgroup = [];\n        element.checked = false ;\n      }\n    })\n\n  }\n  //check and uncheck select all\n  checkSelectAllgroups() {\n    if (this.groupList?.length > 0) {\n      const data: boolean = this.groupList.every((ele: any) => ele.checked || this.disableGroupId?.includes(ele._id));\n      return data;\n    } else {\n      return false;\n    }\n  }\n  //remove group\n  deleteSelectedGroup(event:any){\n    const index = this.groupList?.findIndex((item: any) => item._id === event._id);\n    if (index > -1) {\n      this.groupList[index].checked = false;\n      this.selectedgroup = this.selectedgroup?.filter((item: any) => item._id !== event._id)\n    }\n  }\n\n  selectedGroupList(){\n    this.selectedgroup = cloneDeep(this.select_group);\n    if (this.selectedgroup.length > 0) {\n      const selectedgroup = [...this.selectedgroup];\n      this.selectedgroup = selectedgroup.map((ele: any) => {\n        if (ele) {\n          return ele;\n        }\n      });\n    }\n    this.groupList.forEach((element:any)=>{\n      element.checked =false;\n    })\n    this.groupList.forEach((ele:any)=>{\n      this.selectedgroup.forEach((group:any)=>{\n        if(ele._id === group._id){\n          ele.checked = true\n        }\n      })\n    })\n  }\n  // populateList() {\n  //   if (Array.isArray(this.data) && this.data.length > 0 && Array.isArray(this.selectedData)) {\n  //     this.checkBoxSelect = Array(this.data.length).fill(false);\n  //     this.disabledSelect = Array(this.data.length).fill(false);\n  //     if (this.selectedData.length > 0) {\n  //       const selectMap: Map<string, number> = new Map();\n  //       for (const data of this.selectedData) {\n  //         selectMap.set(data.member_id, data.assessment_done);\n  //       }\n  //       for (let i = 0; i < this.data.length; i++) {\n  //         if (selectMap.has(this.data[i].member_id)) {\n  //           this.checkBoxSelect[i] = true;\n  //           if (selectMap.get(this.data[i].member_id) === 1) {\n  //             this.disabledSelect[i] = true;\n  //           }\n  //         }\n  //       }\n  //     }\n  //   }\n  // }\n\n  selectAllChange(event: boolean) {\n    // debugger\n    // if (!event) {\n    //   this.selectedData = [];\n    //   this.checkBoxSelect.forEach((item, index) => {\n    //     this.checkBoxSelect[index] = false;\n    //   });\n    // } else {\n    //   this.selectedData = JSON.parse(JSON.stringify(this.data));\n    //   this.checkBoxSelect.forEach((item, index) => {\n    //     this.checkBoxSelect[index] = true;\n    //   });\n    // }\n    if (event) {\n      this.searchList.forEach((searchElement) => {\n        if (\n          !this.selectedIds.includes(searchElement.member_id) &&\n          !this.allRCHeadOwners.includes(searchElement.member_id) &&\n          !this.workshopParticipants.includes(searchElement.member_id)\n        ) {\n          // console.log(this.selectedIds.includes(searchElement.member_id),this.allRCHeadOwners.includes(searchElement.member_id))\n          this.selectedData.push(searchElement);\n          this.selectedIds.push(searchElement.member_id);\n        }\n      });\n    } else {\n      this.searchList.forEach((searchElement) => {\n        const index = this.selectedData.findIndex((ele: any) => ele.member_id === searchElement.member_id);\n        this.selectedData.splice(index, 1);\n        const idIndex = this.selectedIds.findIndex((ele: any) => ele === searchElement.member_id);\n        this.selectedIds.splice(idIndex, 1);\n      });\n      this.setDefaultUsers();\n    }\n  }\n  selectAllFromBackEnd(event: any) {\n    if (event) {\n      this.loader = true;\n\n      // this.workshopService.orgUsers('').subscribe((res: any) => {\n\n      const list = cloneDeep(this.searchList);\n      // this.selectedData = [];\n      list.forEach((element) => {\n        if (!this.allRCHeadOwners.includes(element.member_id) && !this.workshopParticipants.includes(element.member_id)) {\n          if (!this.selectedIds.includes(element.member_id)) {\n            this.selectedData.push(element);\n          }\n        }\n      });\n\n      const selectedData = [...this.selectedData];\n      this.selectedIds = selectedData.map((ele: any) => {\n        if (ele.member_id) {\n          return ele.member_id;\n        }\n      });\n      this.loader = false;\n\n      // }, error => {\n      //   console.error(error);\n      //   this.loader = false;\n\n      // });\n\n      // this.selectedList = [...this.listDetails.elementsList];\n      // this.visibility = 1;\n    } else {\n      // if (this.listDetails.currentEventName === 'viewers') {\n      //   this.selectedList = this.selectedList.filter(ele => ele.member_role === 'Keyadmin');\n\n      //   const selectedData = [...this.selectedList];\n      //   this.selectedIds = selectedData.map((ele: any) => {\n      //     if (ele[this.listDetails.filterElementKey]) { return ele[this.listDetails.filterElementKey]; }\n      //   });\n      //   if (this.allAdmins.length === 1) {\n      //     this.visibility = 0;\n      //   } else {\n      //     this.visibility = 1;\n      //   }\n      //   return;\n      // }\n      // this.selectedData = [];\n      // this.selectedIds = [];\n      // this.setDefaultUsers();\n      this.loader = true;\n\n      // this.workshopService.orgUsers('').subscribe((res: any) => {\n\n      const list = cloneDeep(this.searchList);\n      // this.selectedData = [];\n      list.forEach((element) => {\n        if (!this.allRCHeadOwners.includes(element.member_id)) {\n          if (this.selectedIds.includes(element.member_id)) {\n            const index = this.selectedData.findIndex((selectedElement: any) => selectedElement.member_id == element.member_id);\n            this.selectedData.splice(index, 1);\n          }\n        }\n      });\n\n      const selectedData = [...this.selectedData];\n      this.selectedIds = selectedData.map((ele: any) => {\n        if (ele.member_id) {\n          return ele.member_id;\n        }\n      });\n      this.loader = false;\n    }\n  }\n\n  userSelectionChange(event: boolean, index: number) {\n    // if (event) {\n    //   this.selectedData.push(this.data[index]);\n    // } else {\n    //   this.selectedData.splice(this.getArrayIndex(this.selectedData, this.data[index], 'member_id'), 1);\n    // }\n    // this.all = this.selectedData.length === this.data.length;\n    if (event) {\n      this.selectedData.push(this.searchList[index]);\n      this.selectedIds.push(this.searchList[index].member_id);\n    } else {\n      this.selectedData.splice(\n        this.selectedData.findIndex((ele: any) => ele.member_id == this.searchList[index].member_id),\n        1\n      );\n      this.selectedIds.splice(\n        this.selectedIds.findIndex((ele: any) => ele == this.searchList[index].member_id),\n        1\n      );\n    }\n  }\n\n  /**\n   * It is used to set and search value incase of backend driven list to differentiate search list and original list\n   */\n  setSearchValue() {\n    this.paginationService.searchValue = this.searchValue;\n    this.paginationFilter(true);\n  }\n\n  closeEvent(event: any[]) {\n    this.closeList.emit(this.selectedData);\n  }\n  closeEvent1(event:any){\n    this.closeList1.emit(event);\n  }\n\n  deleteSelectedData(event: number) {\n    this.selectedIds.splice(\n      this.selectedIds.findIndex((ele: any) => ele == event),\n      1\n    );\n    this.selectedData.splice(\n      this.selectedData.findIndex((ele: any) => ele.member_id == event),\n      1\n    );\n  }\n\n  goBack() {\n    this.closeList.emit(undefined);\n  }\n  /**\n   * Filter list user's list based on pagination by making api call\n   * @param event specifies a boolean value to call api\n   */\n  paginationFilter(event: any) {\n    // this.paginationFilterEvent.emit(event);\n    if (event) {\n      this.getUsersList({\n        a: this.paginationService.currentAlphabet === 'all' ? '' : this.paginationService.currentAlphabet,\n        p: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\n        q: !this.paginationService.searchValue ? '' : this.paginationService.searchValue,\n      });\n      this.getOrganizationUsersCount({\n        a: this.paginationService.currentAlphabet === 'all' ? '' : this.paginationService.currentAlphabet,\n        p: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\n        q: !this.paginationService.searchValue ? '' : this.paginationService.searchValue,\n      });\n    }\n  }\n  getOrganizationUsersCount(apiUrl: any) {\n    this.subscriptions.add(this.workshopService.getOrganizationUsersCount(apiUrl).subscribe(\n      (res: any) => {\n        if (res.total_members && res.limit_per_page > 1) {\n          this.totalPages = res.create_page;\n        } else {\n          this.totalPages = 1;\n        }\n      },\n      (error) => {\n        console.error(error);\n      }\n    ));\n  }\n\n  /**\n   * Gets user's list  by making api call\n   * @param url contains user list filter details\n   */\n  getUsersList(url: any) {\n    this.loader = true;\n\n    this.subscriptions.add(this.workshopService.orgUsers(url ? url : '').subscribe(\n      (res: any) => {\n        this.searchList = res;\n        this.loader = false;\n\n        if (!this.setDefaultValues) {\n          // this.setDefaultUsers();\n        }\n      },\n      (err) => {\n        console.log(err);\n        this.loader = false;\n      }\n    ));\n  }\n  setDefaultUsers() {\n    this.setDefaultValues = true;\n    // this.allRCHeadOwners.forEach((userId: any) => {\n    //   if (!this.selectedIds.includes(userId)) {\n    //     const index = this.searchList.findIndex((ele: any) => ele.member_id == userId);\n    //     if (index !== -1) {\n    //       this.selectedData.push(this.searchList[index]);\n    //       this.selectedIds.push(this.searchList[index].member_id);\n    //     }\n    //   }\n    // });\n  }\n  /**\n   * it is used check select all condition incase of backend driven search\n   */\n  checkSelectAll() {\n    const list = [...this.searchList];\n    const filteredList = list.filter((filteredEle) => !this.allRCHeadOwners.includes(filteredEle.member_id));\n    if (this.searchList.length > 0 && filteredList.length > 0) {\n      const data: boolean = filteredList.every((ele) => this.selectedIds.includes(ele.member_id));\n      return data;\n    } else {\n      return false;\n    }\n  }\n\n  currentTab = 'USER'\n  switchTab(tab:string){\n    this.currentTab = tab;\n    this.searchValue ='' ;\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<div class=\"form-dialog-left\" [class.animate]=\"animation\">\n  <div class=\"form-dialog-left-heading vx-d-flex vx-align-center vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-fs-14 vx-fw-500 vx-lable-txt\">Select Participant(s)</div>\n\n  <div class=\"form-dialog-left-container vx-pl-4 vx-pr-4\">\n      <div class=\"form-dialog-left-inner vx-pt-3 vx-pl-4 vx-pr-4\">\n        <div class=\"form-dialog-left-search vx-mb-1\">\n          <i class=\"icons vx-fs-12\">&#xe90b;</i>\n          <input type=\"text\" [(ngModel)]=\"searchValue\" (keyup.enter)=\"setSearchValue()\" [placeholder]=\"currentTab ==='USER'?'Search participant':'Search User Group'\" />\n        </div>\n        <app-risk-workshop-pagination *ngIf=\"currentTab ==='USER'\" [totalPages]=\"totalPages\" (paginationFilter)=\"paginationFilter($event)\"></app-risk-workshop-pagination>\n        <div class=\"form-dialog-left-mid\">\n          <ng-container *ngIf=\"searchList?.length != 0\">\n            <div class=\"form-dialog-left-tab vx-d-flex vx-align-center vx-mb-2 vx-mr-3\" *ngIf=\"featureflag_groups\">\n            <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'USER'\">USERS <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{getUserCountWithoutWorkshop()}}</span></button>\n            <button (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\">USER GROUPS <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{getGroupCountWithoutWorkshop()}}</span></button>\n            </div>\n\n            <ng-container *ngIf=\"currentTab === 'USER'\">\n                <div *ngIf=\"searchList?.length > 0\" class=\"user-list-select vx-mb-2\">\n                  <app-cs-checkbox [ngValue]=\"checkSelectAll()\" *ngIf=\"searchValue || paginationService?.currentAlphabet != 'all'\" (ngValueChange)=\"selectAllChange($event)\">Select All</app-cs-checkbox>\n                  <app-cs-checkbox [ngValue]=\"checkSelectAll()\" *ngIf=\"!searchValue && paginationService?.currentAlphabet == 'all'\" (ngValueChange)=\"selectAllFromBackEnd($event)\">Select All</app-cs-checkbox>\n                </div>\n                <div class=\"user-list-item\">\n                    <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\n                      <ng-container *ngFor=\"let user of searchList; let i = index\">\n                        <li class=\"vx-mb-4\" *ngIf=\"!workshopParticipants?.includes(user?.member_id)\">\n                            <app-cs-checkbox [ngValue]=\"selectedIds?.includes(user?.member_id)\" [disabled]=\"allRCHeadOwners?.includes(user?.member_id)\" (ngValueChange)=\"userSelectionChange($event, i)\">\n                                <div class=\"user-name\" [appTooltip]=\"user?.user_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{ user?.user_name }}</div>\n                            </app-cs-checkbox>\n                        </li>\n                      </ng-container>\n                    </ul>\n                </div>\n            </ng-container>\n\n            <ng-container *ngIf=\"currentTab === 'GROUP'\">\n              <div class=\"user-list-select vx-mb-2\">\n                <app-cs-checkbox [ngValue]=\"checkSelectAllgroups()\" (ngValueChange)=\"selectAllGroups($event)\">Select All</app-cs-checkbox>\n              </div>\n                <div class=\"user-list-item\">\n                    <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\n                      <ng-container *ngFor=\"let data of groupList | filter: searchValue\">\n                        <li class=\"vx-mb-4\" *ngIf=\"!workshopGroupParticipants?.includes(data?._id)\">\n                            <app-cs-checkbox [disabled]=\"disableGroupId?.includes(data?._id)\"  [ngValue]=\"data.checked\" (ngValueChange)=\"selectGroup($event,data)\">\n                                <div class=\"user-name\" [appTooltip]=\"data?.group_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.group_name}}</div>\n                                <span class=\"counter vx-fs-9 vx-fw-600 vx-pl-1 vx-pr-1 vx-lh-3 vx-tt-uppercase vx-ml-2\">{{data.associatedUsers?.length}}USERS</span>\n                            </app-cs-checkbox>\n                        </li>\n                       </ng-container>\n                    </ul>\n                </div>\n            </ng-container>\n          </ng-container>\n\n\n            <app-no-data *ngIf=\"!loader && searchList?.length === 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/quick-view/search-data.svg'\" [noDataText]=\"'No Participant Found'\"></app-no-data>\n        </div>\n      </div>\n      <app-floating [selectedgroup]=\"selectedgroup\" [selectedData]=\"selectedData\" (closeEvent)=\"closeEvent($event)\" (closeEvent1)=\"closeEvent1($event)\" (deleteEvent)=\"deleteSelectedData($event)\" (removeGroupEvent)=\"deleteSelectedGroup($event)\"[listType]=\"'user'\" [feature]=\"feature\"></app-floating>\n    <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n  </div>\n</div>\n\n\n\n\n\n\n\n\n<div *ngIf=\"false\" class=\"workshop-owner-list\" [class.animate]=\"animation\">\n  <div class=\"workshop-owner-list-head\">\n    <h3 class=\"workshop-owner-list-title\">Select Participant(s)</h3>\n    <button appRipple class=\"workshop-owner-list-close\" (click)=\"goBack()\">\n      <i class=\"icons\">&#xe90d;</i>\n    </button>\n  </div>\n  <div class=\"workshop-owner-list-body\">\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input type=\"text\" [(ngModel)]=\"searchValue\" (keyup.enter)=\"setSearchValue()\" [placeholder]=\"currentTab ==='USER'?'Search participant':'Search User Group'\" />\n    </div>\n    <app-risk-workshop-pagination [totalPages]=\"totalPages\" (paginationFilter)=\"paginationFilter($event)\"></app-risk-workshop-pagination>\n    <div class=\"body-top\">\n      <ng-container *ngIf=\"searchList?.length > 0\">\n        <app-cs-checkbox [ngValue]=\"checkSelectAll()\" *ngIf=\"searchValue || paginationService?.currentAlphabet != 'all'\" (ngValueChange)=\"selectAllChange($event)\"\n          ><strong>Select All</strong></app-cs-checkbox\n        >\n        <app-cs-checkbox [ngValue]=\"checkSelectAll()\" *ngIf=\"!searchValue && paginationService?.currentAlphabet == 'all'\" (ngValueChange)=\"selectAllFromBackEnd($event)\"\n          ><strong>Select All</strong></app-cs-checkbox\n        >\n      </ng-container>\n\n      <div class=\"pagination\"></div>\n    </div>\n    <ul class=\"workshop-owner-list\">\n      <ng-container *ngFor=\"let user of searchList; let i = index\">\n        <li *ngIf=\"!workshopParticipants?.includes(user?.member_id)\">\n          <app-cs-checkbox [ngValue]=\"selectedIds?.includes(user?.member_id)\" [disabled]=\"allRCHeadOwners?.includes(user?.member_id)\" (ngValueChange)=\"userSelectionChange($event, i)\">\n            <span class=\"name\">{{ user?.user_name }}</span>\n            <!-- <li *ngFor=\"let user of searchList; let i = index;\">\n                <app-cs-checkbox  [(ngValue)]=\"true\" (ngValueChange)=\"userSelectionChange($event, i)\" [disabled]=\"disabledSelect[i]\">\n                   <span class=\"name\">{{user?.user_name}}</span> -->\n            <span class=\"position key-admin\" *ngIf=\"false\"> key Admin</span>\n          </app-cs-checkbox>\n        </li>\n      </ng-container>\n    </ul>\n    <app-no-data *ngIf=\"!loader && searchList?.length === 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/quick-view/search-data.svg'\" [noDataText]=\"'No Participant Found'\"></app-no-data>\n  </div>\n  <app-floating [selectedData]=\"selectedData\" (closeEvent)=\"closeEvent($event)\" (deleteEvent)=\"deleteSelectedData($event)\" [listType]=\"'user'\"></app-floating>\n</div>\n<!-- <app-loader *ngIf=\"loader\"></app-loader> -->\n","import { DatePipe } from '@angular/common';\nimport { Component, ElementRef, HostListener, Input, OnChanges, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { RISK_QUICKVIEW_PROPERTIES } from '../../../configurations'\nimport { DialogConfig } from '../../../ui-kit/dialog/dialog-config';\nimport { DialogRef } from '../../../ui-kit/dialog/dialog-ref';\nimport { WorkshopService } from '../services/workshop.service';\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\nimport { QuickViewService } from '../../services/quick-view.service';\nimport { SubSink } from '../../../subsink.class';\nimport { DatePickerService } from '../../services/date-picker.service';\nimport { FrequencyService } from '../../frequency-dialog/services/frequency-dialog.service';\n\n@Component({\n  selector: 'app-create-workshop',\n  templateUrl: './create-workshop.component.html',\n  styleUrls: ['./create-workshop.component.less'],\n})\nexport class CreateWorkshopComponent implements OnInit, OnChanges, OnDestroy {\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n  datePickerOverlay = false;\n  @Input() startDate = new Date();\n  dateConfig: any;\n  organizationUsersList: any[] = [];\n  selectedUsers: any[] = [];\n  selectedGroups: any[] = [];\n  selectedResponsibilityCenter: any[] = [];\n  responsibilityCenterList: any[] = [];\n  selectParticipant = 1;\n  dueDate: any;\n  riskDetails: any;\n  showRcList = false;\n  showOwnersList = false;\n  paginationLimit = 1;\n  totalPages = 1;\n  totalList = 1;\n  workshopTime = '11:00 PM';\n  minDate = new Date();\n  showDateError = false;\n  config!: any;\n  smileyMessage = '';\n  showSmiley = false;\n  loader = false;\n  usersListLoaded = false;\n  rcListLoaded = false;\n  // public environment = environment;\n  actionButtons: any[];\n  datepickerOverlay = false;\n  pastTimeError = false;\n  alreadyCreatedWorkshop = false;\n  groupsdata: any[] = [];\n  feature: any;\n  featureflag_groups: boolean = false;\n  subscriptions:SubSink = new SubSink()\n\n  constructor(\n    private dialogConfig: DialogConfig,\n    private dialog: DialogRef,\n    private workshopService: WorkshopService,\n    private datePipe: DatePipe,\n    private snackbar: SnackBarService,\n    private router: Router,\n    public quickViewService: QuickViewService,\n    private datePickerService: DatePickerService,\n    private frequencyService: FrequencyService,\n    // private feature: FeatureFlagService\n  ) {\n    this.riskDetails = this.dialogConfig.data.riskDetails;\n    this.feature = this.dialogConfig?.data?.featureFlag;\n    if (this.dialogConfig.data.addMore) {\n\n      this.getRiskDetails(this.dialogConfig.data.riskDetails.risk_obj_id);\n    }\n    this.actionButtons = [\n      {\n        buttonText: 'Add more participants',\n        class: 'white-btn',\n        id: 'addMore',\n      },\n      { buttonText: 'View Workshop', class: 'blue-btn', id: 'viewWorkshop' },\n    ];\n  }\n\n  ngOnInit(): void {\n    this.featureflag_groups = this.feature.isFeatureEnabled(\"ff_risk_groups\");\n    this.getGroupList();\n    this.getUsers();\n    this.getRCList();\n    this.getOrganizationUsersCount('');\n    this.checkWhetherAllListsLoaded();\n    this.config = {\n      disableKeypress: true,\n      format: 'DD MMM YYYY',\n      min: this.frequencyService?.formatDate(),\n      hideOnOutsideClick: true,\n      max: this.riskDetails?.riskDetails?.assessmentDeadlineDate,\n    };\n  }\n\n  ngOnChanges() {\n  }\n\n  openDatePicker() {\n    this.datePicker.api.open();\n    this.datepickerOverlay = true;\n  }\n\n  closeDatepicker() {\n    this.datePicker.api.close();\n    this.datepickerOverlay = false;\n  }\n\n  close(event?: any) {\n    if (event) {\n      this.dialog.close(true);\n    } else {\n      this.dialog.close(this.alreadyCreatedWorkshop);\n    }\n\n    // this.dialog.close({ closeEvent: true, reload: false });\n  }\n\n  setDueDate(evt: any) {\n    if (evt && evt?.date) {\n      this.dueDate = evt?.date?.$d;\n    }\n    this.checkPastDateError();\n  }\n\n  submitCreateWorkshop(event: any) {\n    this.dialog.close(event);\n  }\n\n  //TO get groupList data\n  getGroupList() {\n    this.subscriptions.add(this.workshopService.getGroupList().subscribe((res: any) => {\n      this.groupsdata = res?.data\n    }, err => {\n      console.error(err);\n    }))\n  }\n\n  getUsers() {\n    this.subscriptions.add(this.workshopService.orgUsers('').subscribe(\n      (res: any) => {\n        this.organizationUsersList = res;\n        this.usersListLoaded = true;\n      },\n      (err) => {\n        console.error(err);\n      }\n    ));\n  }\n\n  getRCList() {\n    this.subscriptions.add(this.workshopService.getRcList().subscribe(\n      (res: any) => {\n        this.responsibilityCenterList = res;\n        this.rcListLoaded = true;\n      },\n      (err) => {\n        console.error(err);\n      }\n    ));\n  }\n\n  getRiskDetails(id: any) {\n    this.subscriptions.add(this.workshopService.getRiskDetails(id).subscribe(\n      (res: any) => {\n        this.riskDetails = res;\n        this.config = {\n          disableKeypress: true,\n          format: 'DD MMM YYYY',\n          min: this.frequencyService?.formatDate(),\n          max: res.riskDetails.assessmentDeadlineDate,\n        };\n      },\n      (err) => {\n        console.error(err);\n      }\n    ));\n  }\n\n  closeRCList(event: any) {\n    this.showRcList = false;\n    if (event) {\n      this.selectedResponsibilityCenter = event;\n      if (event?.length === 0) {\n        this.selectParticipant = 1;\n      }\n    } else {\n      this.selectParticipant = 1;\n      this.selectedResponsibilityCenter = [];\n    }\n  }\n\n  closeOwnersList(event: any) {\n    this.showOwnersList = false;\n    if (event) {\n      this.selectedUsers = event;\n    }\n  }\n\n  closeOwnersList1(event:any){\n    this.showOwnersList = false;\n    if (event) {\n      this.selectedUsers = event?.users;\n      this.selectedGroups = event?.groups;\n    }\n  }\n\n  removeElement(type: string, element: any) {\n    switch (type) {\n      case 'rc':\n        this.selectedResponsibilityCenter.splice(\n          this.selectedResponsibilityCenter.findIndex((e) => e.rc_id === element.rc_id),\n          1\n        );\n        if (this.selectedResponsibilityCenter.length === 0) {\n          this.selectParticipant = 1;\n        }\n        break;\n      case 'user':\n        this.selectedUsers.splice(\n          this.selectedUsers.findIndex((e) => e.user_email === element.user_email),\n          1\n        );\n        break;\n      case 'group':\n        this.selectedGroups.splice(\n          this.selectedGroups.findIndex((ele:any) => ele._id === element._id),\n          1\n        );\n        break;\n    }\n  }\n\n  checkWhetherAllListsLoaded() {\n    this.loader = true;\n    if (this.usersListLoaded && this.rcListLoaded) {\n      this.loader = false;\n    } else {\n      setTimeout(() => {\n        this.checkWhetherAllListsLoaded();\n      }, 300);\n    }\n  }\n\n  /**\n   * Fetches the OrganizationUsers details of users List to set pagination details including number of\n   * pages and records limit per page,\n   * @param apiUrl  contains info about type & search query\n   */\n  getOrganizationUsersCount(apiUrl: any) {\n    this.subscriptions.add(this.workshopService.getOrganizationUsersCount(apiUrl).subscribe(\n      (res: any) => {\n        this.paginationLimit = res.limit_per_page;\n        this.totalList = res.total_members;\n        if (res.total_members && res.limit_per_page > 1) {\n          this.totalPages = res.create_page;\n        } else {\n          this.totalPages = 1;\n        }\n      },\n      (error) => {\n        console.error(error);\n      }\n    ));\n  }\n\n  setParticipants(event: any) {\n    if (event === 'automatic') {\n      this.selectParticipant = 1;\n      this.selectedResponsibilityCenter = [];\n    } else if (event === 'specify') {\n      this.selectParticipant = 2;\n    }\n  }\n\n  submit(flag: number) {\n    if (!this.dueDate) {\n      this.showDateError = true;\n      return;\n    }\n    if (flag) {\n      this.smileyMessage = RISK_QUICKVIEW_PROPERTIES?.riskWorkshop?.createWorkshop;\n    } else {\n      this.smileyMessage = RISK_QUICKVIEW_PROPERTIES?.riskWorkshop?.createWorkshopSave;\n    }\n\n    const payload = {\n      risk_id: this.riskDetails.riskId,\n      select_participant_opt: this.selectParticipant,\n      participants: this.selectedUsers.map((user) => {\n        if (user.member_id) {\n          return user.member_id;\n        }\n      }),\n      usergroup_ids:this.selectedGroups.map((group:any)=>{\n        if (group._id) {\n          return group._id;\n        }\n      }),\n      workshop_date: this.datePipe.transform(this.dueDate.toLocaleString('en-US'), 'yyyy-MM-dd'),\n      workshop_time: this.workshopTime,\n      rc_id: this.selectedResponsibilityCenter.map((rc) => {\n        if (rc.rc_id) {\n          return rc.rc_id;\n        }\n      }),\n      participant_invite_mail_flag: flag,\n      dueDateId : this.dialogConfig?.data?.dueDateDetails?._id ?? this.riskDetails?.riskDetails?.dueDateObjId // due date id and details require from backend in risk details API in case of create Workshop from header\n    };\n    this.loader = true;\n    this.subscriptions.add(this.workshopService.createWorkshop(payload).subscribe(\n      (res: any) => {\n        this.loader = false;\n        this.quickViewService.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS'});\n        this.showSmileyEvent();\n      },\n      (err) => {\n        console.error(err);\n        this.loader = false;\n       // this.settingsService.showSnackbar(RISK_PROPERTIES.errorMessage, 'alert');\n        this.snackbar.show(RISK_QUICKVIEW_PROPERTIES.errorMessage, 'alert');\n\n      }\n    ));\n  }\n\n  showSmileyEvent() {\n    this.showSmiley = true;\n  }\n\n  closeSmiley() {\n    this.showSmiley = false;\n    this.close(true);\n   // this.router.navigate(['/risk-workshop']);\n  }\n\n  action(event: string) {\n    switch (event) {\n      case 'addMore':\n        this.addMoreRisks();\n        break;\n      case 'viewWorkshop':\n        this.viewWorkshop();\n        break;\n      default: {\n        this.close(true);\n       // this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n       // this.router.onSameUrlNavigation = 'reload';\n      //  this.router.navigate(['/risk-workshop']);\n      }\n    }\n  }\n\n  addMoreRisks() {\n    this.showSmiley = false;\n    this.alreadyCreatedWorkshop = true;\n    this.resetForm();\n    this.getRiskDetails(this.riskDetails.riskObjId);\n    this.showOwnersList = true;\n  }\n\n  viewWorkshop() {\n    this.showSmiley = false;\n    this.close(true);\n  //  this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n   // this.router.onSameUrlNavigation = 'reload';\n    //this.router.navigate(['/risk-workshop']);\n  }\n\n  resetForm() {\n    this.selectedUsers = [];\n    this.selectedResponsibilityCenter = [];\n    this.dueDate = undefined;\n    this.selectParticipant = 1;\n    this.workshopTime = '11:00 PM';\n  }\n\n  checkPastDateError() {\n    let selectedDateTime = this.dueDate ?? new Date();\n    let hrTime = this.get24hr(this.workshopTime);\n    selectedDateTime.setHours(hrTime.hh);\n    selectedDateTime.setMinutes(hrTime.mm);\n    if (selectedDateTime < new Date().getTime()) {\n      this.pastTimeError = true;\n    } else {\n      this.pastTimeError = false;\n    }\n  }\n\n  get24hr(time12h: any) {\n    const [time, modifier] = time12h.split(' ');\n    let [hours, minutes] = time.split(':');\n    if (hours === '12') {\n      hours = '00';\n    }\n    if (modifier === 'PM') {\n      hours = parseInt(hours, 10) + 12;\n    }\n    return { hh: hours, mm: minutes };\n  }\n\n  /* A HostListener that listens to the escape key and closes the dialog. */\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n    this.close();\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'date-picker-workshop',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datepickerOverlay,\n    };\n    this.datePickerService?.handleDocumentClick(datePickerObject);\n  }\n\n}\n","<div class=\"form-dialog\">\n  <div class=\"form-dialog-heading vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-mb-5\">\n      <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">Create a Risk Workshop</div>\n      <button class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"close()\" [class.disabled]=\"false\" [appTooltip]=\"'[Esc] to close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i></button>\n  </div>\n  <div class=\"form-dialog-mid vx-pb-5\">\n      <ng-container>\n          <div class=\"from-group vx-mt-1 vx-mb-5\" [class.disable]=\"showRcList\" [class.active]=\"showOwnersList\">\n              <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">PARTICIPANTS <span class=\"required vx-fs-16 vx-fw-400 vx-txt-red\">*</span></label>\n              <div class=\"vx-fs-11 vx-paragraph-txt vx-mb-1\">Select the participants for the Risk Workshop. The participants will be required to undertake an inherent risk assessment of the risk.</div>\n              <div class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-3\" *ngIf=\"selectedUsers?.length == 0 && selectedGroups?.length === 0\" (click)=\"showOwnersList = true\">\n                  <span class=\"vx-fs-13 vx-paragraph-txt\">Select Participants</span>\n                  <i class=\"icons arrow vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n              </div>\n              <div class=\"after-select vx-d-flex vx-align-center vx-justify-between vx-p-2\" *ngIf=\"selectedUsers?.length > 0 || selectedGroups?.length>0\">\n                <div class=\"chip-container vx-d-flex vx-align-center\">\n                  <div class=\"chip-inner\" *ngIf=\"featureflag_groups\">\n                    <span class=\"chip\"><span *ngIf=\"selectedUsers?.length >0\" class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\n                    <button *ngIf=\"selectedUsers?.length >0\" class=\"count user\" appPopover (click)=\"userCount.popover()\" placement=\"left\">{{selectedUsers?.length}}</button>\n                  </div>\n                  <span *ngIf=\"featureflag_groups && selectedUsers?.length >0 && selectedGroups?.length >0\" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\n                  <div class=\"chip-inner\" *ngIf=\"featureflag_groups\">\n                    <span class=\"chip\"><span *ngIf=\"selectedGroups?.length >0\" class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER GROUP(S)</span></span>\n                    <button *ngIf=\"selectedGroups?.length >0\" class=\"count\" appPopover (click)=\"groupCount.popover()\" placement=\"right\">{{selectedGroups?.length}}</button>\n                  </div>\n\n                  <app-popover #userCount [dontCloseonClick]=\"true\">\n                    <div class=\"action-list\">\n                      <ul class=\"action-item\">\n                        <li *ngFor=\"let data of selectedUsers\">\n                          <div class=\"avatar-card\">\n                            <span class=\"value\">\n                              <i class=\"icons\" (click)=\"removeElement('user', data)\">&#xe90d;</i> {{ data?.user_name }}\n                            </span>\n                          </div>\n                        </li>\n                      </ul>\n                    </div>\n                  </app-popover>\n                  <app-popover #groupCount [dontCloseonClick]=\"true\">\n                    <div class=\"action-list\">\n                      <ul class=\"action-item\">\n                        <li *ngFor=\"let data of selectedGroups\">\n                          <div class=\"avatar-card\">\n                            <span class=\"value\">\n                              <i  class=\"icons\" (click)=\"removeElement('group',data)\">&#xe90d;</i>{{data?.group_name}}\n                            </span>\n                          </div>\n                        </li>\n                      </ul>\n                    </div>\n                  </app-popover>\n\n\n                  <span *ngIf=\"!featureflag_groups\" class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6\">\n                      <i (click)=\"removeElement('user', selectedUsers[0])\" class=\"icons vx-mr-1\">&#xe9ae;</i> {{ selectedUsers[0]?.user_name }}\n                  </span>\n                  <button *ngIf=\"!featureflag_groups && selectedUsers?.length > 1\" class=\"count vx-fs-13 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-pl-2 vx-pr-2 vx-ml-1\" appPopover (click)=\"countUser.popover()\" placement=\"left\">+{{ selectedUsers?.slice(1)?.length }}</button>\n\n                  <app-popover #countUser [dontCloseonClick]=\"true\">\n                      <div class=\"action-list\">\n                        <ul class=\"action-item\">\n                          <li *ngFor=\"let data of selectedUsers?.slice(1)\">\n                            <div class=\"avatar-card\">\n                              <span class=\"value\">\n                                <i (click)=\"removeElement('user', data)\" class=\"icons\">&#xe90d;</i> {{ data?.user_name }}\n                              </span>\n                            </div>\n                          </li>\n                        </ul>\n                      </div>\n                  </app-popover>\n                </div>\n\n                <button (click)=\"showOwnersList = true\" class=\"edit-btn vx-fs-11 vx-fw-500 vx-lh-6 vx-txt-blue vx-tt-uppercase vx-d-flex vx-align-center vx-m-0 vx-p-1\"><i class=\"icons vx-fs-8 vx-mr-1\">&#xe9ba;</i> EDIT</button>\n              </div>\n          </div>\n          <div class=\"from-group vx-mt-1 vx-mb-5\" [class.disable]=\"showOwnersList || showRcList\">\n              <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">DEADLINE <span class=\"required vx-fs-16 vx-fw-400 vx-txt-red\">*</span></label>\n              <div class=\"vx-fs-11 vx-paragraph-txt vx-mb-1\">Set a time frame for assessing the risk. Where a standard time frame for assessing all risks has been set in the Risk Setting, the time frame for this Risk Workshop must be within that standard time frame.</div>\n              <div class=\"deadline-area vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-pl-4 vx-pr-3\">\n                  <div class=\"input-group datepicker vx-d-flex vx-align-center\" (click)=\"openDatePicker(); datePickerOverlay = true\">\n                    <i class=\"icons\">&#xe92d;</i>\n                    <input class=\"date-field\" type=\"text\" [value]=\"dueDate | date: 'dd MMM yyyy'\" placeholder=\"Select Date\" readonly id=\"date-picker-workshop\">\n                    <dp-date-picker\n                    #datePicker\n                    (onSelect)=\"setDueDate($event)\"\n                    [ngModel]=\"dueDate\"\n                    [config]=\"config\"\n                    (onSelect)=\"showDateError = false; datepickerOverlay = false\"\n                    ></dp-date-picker>\n                    <div class=\"vx-overlay\" (click)=\"closeDatepicker()\" *ngIf=\"datePickerOverlay\"></div>\n\n\n                      <!-- <i class=\"icons\">&#xe92d;</i>\n                      <span class=\"datePicker vx-fs-13 vx-paragraph-txt vx-pl-2 vx-w-100\" (click)=\"openDatePicker()\" placeholder=\"Select Date\">{{ dueDate | date: 'dd MMM yyyy' }}</span>\n                      <dp-date-picker\n                      #datePicker\n                      placeholder=\"Select Date\"\n                      (onSelect)=\"setDueDate($event)\"\n                      [ngModel]=\"dueDate\"\n                      [config]=\"config\"\n                      (onSelect)=\"showDateError = false; datepickerOverlay = false\"\n                    ></dp-date-picker>\n                      <div class=\"overlay\" (click)=\"closeDatepicker()\" *ngIf=\"datepickerOverlay\"></div> -->\n                  </div>\n                  <div class=\"input-group timepicker vx-d-flex vx-align-center vx-pl-3\">\n                    <i class=\"icons\">&#xe955;</i>\n                    <input\n                      readonly\n                      class=\"time\"\n                      aria-label=\"12hr format\"\n                      [(ngModel)]=\"workshopTime\"\n                      (ngModelChange)=\"checkPastDateError()\"\n\n                      placeholder=\"Select Time\"\n                    />\n                    <ngx-material-timepicker [hoursOnly]=\"true\" #dailyTime></ngx-material-timepicker>\n                  </div>\n              </div>\n              <div *ngIf=\"showDateError\" class=\"error-msg vx-fs-11 vx-txt-red\">Please set the assessment deadline for this workshop.</div>\n              <div *ngIf=\"pastTimeError\" class=\"error-msg vx-fs-11 vx-txt-red\">Select a future date & time</div>\n          </div>\n          <div class=\"from-group vx-mt-1 vx-mb-5\" [class.disable]=\"showOwnersList\" [class.active]=\"showRcList\">\n              <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">RESPONSIBILITY CENTER(S)</label>\n              <div class=\"vx-fs-11 vx-paragraph-txt vx-mb-1\">Select which participants will assess the risk in relation to each Responsibility Center that the risk has been assigned to.</div>\n              <app-cs-radio [checked]=\"selectParticipant == 1\" (checkedEvent)=\"setParticipants('automatic')\"><span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">ASSIGN ALL PARTICIPANTS TO ALL RESPONSIBILITY CENTERS.</span></app-cs-radio>\n              <app-cs-radio *ngIf=\"riskDetails?.riskDetails?.entity_arr?.length > 1\" [checked]=\"selectParticipant == 2\" (checkedEvent)=\"setParticipants('specify')\" (click)=\"showRcList = true\"><span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">SPECIFY PARTICIPANTS FOR EACH RESPONSIBILITY CENTER.</span></app-cs-radio>\n\n              <div class=\"after-select after-select-rc vx-d-flex vx-align-center vx-justify-between vx-p-2\" *ngIf=\"selectedResponsibilityCenter?.length > 0\">\n                <div class=\"chip-container vx-d-flex vx-align-center\">\n                    <span class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6\">\n                        <i (click)=\"removeElement('rc', selectedResponsibilityCenter[0])\" class=\"icons vx-mr-1\">&#xe9ae;</i> {{ selectedResponsibilityCenter[0]?.rc_name }}\n                    </span>\n                    <button *ngIf=\"selectedResponsibilityCenter?.length > 1\" class=\"count vx-fs-13 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-pl-2 vx-pr-2 vx-ml-1\" appPopover (click)=\"countRC.popover()\" placement=\"left\">+{{ selectedResponsibilityCenter?.slice(1)?.length }}</button>\n\n                    <app-popover #countRC [dontCloseonClick]=\"true\">\n                        <div class=\"action-list\">\n                          <ul class=\"action-item\">\n                            <li *ngFor=\"let data of selectedResponsibilityCenter?.slice(1)\">\n                              <div class=\"avatar-card\">\n                                <span class=\"value\">\n                                  <i (click)=\"removeElement('rc', data)\" class=\"icons\">&#xe90d;</i> {{ data?.rc_name }}\n                                </span>\n                              </div>\n                            </li>\n                          </ul>\n                        </div>\n                    </app-popover>\n                </div>\n                <button (click)=\"showRcList = true\" class=\"edit-btn vx-fs-11 vx-fw-500 vx-lh-6 vx-txt-blue vx-tt-uppercase vx-d-flex vx-align-center vx-m-0 vx-p-1\"><i class=\"icons vx-fs-8 vx-mr-1\">&#xe9ba;</i> EDIT</button>\n              </div>\n          </div>\n      </ng-container>\n      <app-loader-inline *ngIf=\"false\"></app-loader-inline>\n  </div>\n  <div *ngIf=\"selectedUsers?.length > 0 || selectedGroups?.length >0\" class=\"form-dialog-btn vx-d-flex vx-align-center vx-mt-4\">\n      <button (click)=\"submit(0)\" class=\"white-btn vx-fs-14 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"pastTimeError\">SAVE</button>\n      <button (click)=\"submit(1)\" class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"pastTimeError\">SEND WORKSHOP INVITATION</button>\n  </div>\n  <app-smiley-dialog\n  [autoClose]=\"true\"\n  [message]=\"smileyMessage\"\n  [actionButtons]=\"actionButtons\"\n  (action)=\"action($event)\"\n  *ngIf=\"showSmiley\"\n  (closeSmiley)=\"closeSmiley()\"\n></app-smiley-dialog>\n</div>\n\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n<app-owner\n  *ngIf=\"showOwnersList\"\n  [allRCHeadOwners]=\"riskDetails?.riskDetails?.allRCHeadOwnerOverSigntArr\"\n  (closeList)=\"closeOwnersList($event)\"\n  (closeList1)=\"closeOwnersList1($event)\"\n  [totalPages]=\"totalPages\"\n  [workshopParticipants]=\"riskDetails?.riskDetails?.workshop_participants\"\n  [data]=\"organizationUsersList\"\n  [selectedUsers]=\"selectedUsers\"\n  [groupList]='groupsdata'\n  [select_group]='selectedGroups'\n  [disableGroupId]=\"riskDetails?.riskDetails?.all_group_details\"\n  [workshopGroupParticipants]=\"riskDetails?.riskDetails?.workshop_group_participants\"\n  [feature]=\"feature\"\n></app-owner>\n\n<app-res-list *ngIf=\"showRcList\" (closeList)=\"closeRCList($event)\" [data]=\"riskDetails?.riskDetails?.entity_arr\" [selectedData]=\"selectedResponsibilityCenter\"></app-res-list>\n","import { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport { EditorConfig } from '@vcomply/editor';\nimport { RISK_QUICKVIEW_PROPERTIES } from '../../configurations';\nimport { DialogRef } from '../../ui-kit/dialog/dialog-ref';\nimport { DialogConfig } from '../../ui-kit/dialog/dialog-config';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { QuickViewService } from '../services/quick-view.service';\nimport { SubSink } from '../../subsink.class';\n\n@Component({\n  selector: 'app-response-strategy-dialog',\n  templateUrl: './response-strategy-dialog.component.html',\n  styleUrls: ['./response-strategy-dialog.component.less'],\n})\nexport class ResponseStrategyDialogComponent implements OnInit, OnDestroy {\n  responseStrategyData: any;\n  riskData: any;\n  dueDateData: any;\n  comments: string = '';\n  activeState: any = '';\n  preSelectedState: any = '';\n  bulkSelectedState: any;\n  subscriptions: SubSink = new SubSink();\n\n  riskStates = ['ACCEPT', 'MITIGATE', 'TRANSFER', 'AVOID'];\n  isDataSaving: boolean = false;\n  constructor(\n    private dialog: DialogRef,\n    private dialogConfig: DialogConfig,\n    public quickView: QuickViewService,\n    private snackbarService: SnackBarService\n  ) {\n    this.responseStrategyData = this.dialogConfig?.data;\n\n    if (this.dialogConfig.data) {\n      this.initiateDialog();\n    }\n  }\n\n  ngOnInit(): void {}\n\n  initiateDialog() {\n    console.log('this is the data', this.responseStrategyData);\n    this.riskData = this.dialogConfig.data?.riskInfo;\n    this.dueDateData = this.dialogConfig.data?.dueDateDetails;\n    this.preSelectedState = this.responseStrategyData?.initialStage;\n    this.activeState = this.responseStrategyData?.movedStage;\n    this.comments = this.dueDateData?.responseStrategyComments;\n  }\n\n  close(hasChanged: boolean = false) {\n    this.dialog.close(hasChanged);\n  }\n\n  editorConfig: EditorConfig = {\n    placeholder: 'Add a comment.',\n  };\n\n  stateChange(stage: any) {\n    this.activeState = stage;\n  }\n\n  onSave() {\n    if (this.responseStrategyData?.type?.toLowerCase() == 'bulk') {\n      const PAYLOAD = {\n        comment: this.comments ?? '',\n        source: this.responseStrategyData?.selectedRiskData?.stage,\n        destination: this.activeState,\n      };\n      this.dialog.close(PAYLOAD);\n    } else {\n      this.isDataSaving = true;\n      const PAYLOAD = {\n        Risk_automation_enable:\n          this.riskData?.org_settings?.org_risk_automation_enable ?? 0,\n        is_permanent: 0, // From previous code, found this key always 0\n        Treatment_type: 2,\n        drop_state: this.activeState,\n        drag_state:\n          this.dueDateData?.responseStrategyDetails?.responseStrategyState,\n        Treatment_required: 0, // From previous code, found this key always 0\n        Move_by_automation: 0, // From previous code, found this key always 0\n        comment: this.comments,\n        dueDateId: this.dueDateData?._id,\n        end_date: this.dueDateData?.dueDate,\n        end_time: this.dueDateData?.dueTime.toLowerCase(),\n      };\n      const url =\n        'risk?mode=risk/StateChange&RiskId=' + this.riskData.riskObjId;\n      this.subscriptions.add(\n        this.quickView.changeResponseStrategy(url, PAYLOAD).subscribe({\n          next: (res: any) => {\n            this.isDataSaving = false;\n            this.snackbarService.show(\n              RISK_QUICKVIEW_PROPERTIES.manageRisk.responseStrategyUpdated,\n              'success'\n            );\n            this.close(true);\n            this.quickView.actionEmitter$.next({\n              eventType: 'REFRESH_RISK_DETAILS',\n              payload: '',\n            });\n            console.log('resssssssssss ==>', res);\n          },\n          error: (err: any) => {\n            this.isDataSaving = false;\n            this.snackbarService.show(\n              RISK_QUICKVIEW_PROPERTIES.errorMessage,\n              'alert'\n            );\n            this.close(true);\n            this.quickView.actionEmitter$.next({\n              eventType: 'REFRESH_RISK_DETAILS',\n              payload: '',\n            });\n            console.error('response strtaey save');\n          },\n        })\n      );\n    }\n  }\n\n  /* A HostListener that listens to the escape key and closes the dialog. */\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\n    event: KeyboardEvent\n  ) {\n    this.close();\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<div class=\"strategy-form-dialog\">\n    <div class=\"strategy-form-dialog-heading vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-mb-5\">\n        <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">{{ responseStrategyData?.initialStage?.toLowerCase() == 'assess' ? 'Response Strategy' : 'Change Response Strategy'}}</div>\n        <button class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"close()\" [class.disabled]=\"false\" [appTooltip]=\"'[Esc] to close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i></button>\n    </div>\n    <div class=\"strategy-form-dialog-mid vx-pb-5\">\n        <ng-container>\n            <div *ngIf=\"dueDateData?.dueDate && responseStrategyData?.type?.toLowerCase() !== 'bulk'\" class=\"strategy-label vx-fs-11 vx-txt-white vx-pl-2 vx-pr-1 vx-mb-4 vx-d-flex vx-align-center vx-lh-6\">\n                <i class=\"icons info vx-mr-1\">&#xe932;</i>\n                This risk will remain within the selected response strategy up to {{dueDateData?.dueDate}}\n            </div>\n            <div *ngIf=\"responseStrategyData?.type?.toLowerCase() !== 'bulk'\" class=\"from-group vx-mt-1 vx-mb-5\" [class.disable]=\"false\" [class.active]=\"false\" id=\"riskName\">\n                <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">RISK NAME</label>\n                <input type=\"text\" [value]=\"riskData?.riskName\" [class.disable]=\"true\" />\n            </div>\n            <div class=\"from-group vx-mt-1 vx-mb-5\" [class.disable]=\"false\" [class.active]=\"false\" id=\"checkBox\">\n                <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">WHAT IS THE RESPONSE STRATEGY FOR THIS RISK? </label>\n                <div class=\"strategy-select vx-p-4 vx-pb-0\" >\n                    <app-cs-radio *ngFor=\"let state of riskStates; let i = index \" [checked]=\"preSelectedState === state\" [disabled]=\"preSelectedState === state\" [name]=\"'responseStrategy'\" [attr.id]=\"state | lowercase\" (checkedEvent)=\"stateChange(state)\"><div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\" > {{ state }}</div></app-cs-radio>\n                </div>\n            </div>\n            <div class=\"from-group vx-mt-1 vx-mb-5\" [class.disable]=\"false\" [class.active]=\"false\" id=\"comment\">\n                <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">COMMENTS</label>\n                <vcomply-editor [(ngModel)]=\"comments\" [editorConfig]=\"editorConfig\"></vcomply-editor>\n            </div>\n        </ng-container>\n        <app-loader-inline *ngIf=\"isDataSaving\"></app-loader-inline>\n    </div>\n    <div class=\"strategy-form-dialog-btn vx-d-flex vx-align-center vx-mt-4\">\n        <button (click)=\"onSave()\" class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"!activeState || (activeState ===  dueDateData?.responseStrategy)\">SAVE</button>\n    </div>\n</div>\n","import { AfterContentChecked, ContentChild, ContentChildren, Directive, ElementRef, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[vcOverflow]',\n  exportAs: 'overflowData',\n})\nexport class OverflowDirective {\n\n  @ContentChild('overflowElement') overflowElement!: ElementRef;\n  constructor() { }\n\n  get isOverflow() {\n    return this.overflowElement?.nativeElement?.scrollHeight > this.overflowElement?.nativeElement?.clientHeight;\n  }\n\n  get height() {\n    return this.overflowElement?.nativeElement?.clientHeight;\n  }\n\n}\n\n\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'text-display',\n  templateUrl: './text-display.component.html',\n  styleUrls: ['./text-display.component.less']\n})\nexport class TextDisplayComponent implements OnInit {\n\n  @Input() text!: any;\n  textShow!: any;\n\n  isExpanded: boolean = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.textShow = this.text?.replace( /(<([^>]+)>)/ig, '');\n  }\n\n  showButtons(){\n    this.isExpanded = !this.isExpanded;\n  }\n\n\n}\n","<div vcOverflow #data = \"overflowData\">\n    <div #overflowElement class=\"notes-details vx-fs-12 vx-paragraph-txt\" [class.expand]=\"isExpanded\" [innerHTML]=\"textShow ? text : '--'\" id=\"description-content\"></div>\n    <div class=\"vx-d-flex vx-justify-end\" *ngIf=\"true\">\n    <button  (click)=\"showButtons()\" *ngIf=\" data?.isOverflow || data.height > 72\" class=\"more-btn vx-fs-9 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex\" id=\"description-more-btn\">\n        <ng-container *ngIf=\"!isExpanded\">READ MORE</ng-container>\n        <ng-container *ngIf=\"isExpanded\">SHOW LESS</ng-container>\n    </button>\n    </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'inherent-assessment-loader',\n  templateUrl: './inherent-assessment-loader.component.html',\n  styleUrls: ['./inherent-assessment-loader.component.less']\n})\nexport class InherentAssessmentLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"inherent-assessment-loader\">\n    <div class=\"table_header\">\n        <div class=\"table_row\">\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 responsibility-center\">\n                <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 likelihood\">\n                <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 impact\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <div class=\"calculate-divition vx-fs-9 vx-fw-600 vx-paragraph-txt\"><i class=\"icons\">&#xe9ae;</i></div>\n                    <div class=\"vx-d-block\">\n                        <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 rating\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <div class=\"calculate-divition vx-fs-14 vx-fw-600 vx-paragraph-txt\">=</div>\n                    <div class=\"vx-d-block\">\n                        <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class=\"table_body\">\n        <div class=\"table_row\" *ngFor=\"let data of [1, 1, 1]\">\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center responsibility-center\">\n                <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center likelihood\">\n                <div class=\"vx-d-block\">\n                    <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n                </div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center impact\">\n                <div class=\"vx-d-block\">\n                    <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n                </div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center rating\">\n                <div class=\"loader list\"></div>\n            </div>\n        </div>\n    </div>\n</div>","import { Optional, Pipe, PipeTransform } from '@angular/core';\nimport { Configurations } from '../../configurations';\nimport { CONFIGS } from '../configurations/constants';\n\n@Pipe({\n  name: 'profile'\n})\nexport class ProfilePipe implements PipeTransform {\n  /* Application wide configuration */\n  CONFIG = CONFIGS;\n  ENVIRONMENT!: any;\n  constructor(@Optional() config?: Configurations) {\n    if (config) {\n      this.ENVIRONMENT = config.env;\n    }\n  }\n  transform(value: any, ...args: any[]): string {\n    console.log(\"valueee\",value)\n    console.log(\"this.CONFIG\",this.CONFIG)\n    return `${this.ENVIRONMENT.environment.s3Url}${this.ENVIRONMENT.environment.s3Bucket}/${this.CONFIG.profilePicPath}/${value}`;\n  }\n\n}\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\nimport { QuickViewService } from '../services/quick-view.service';\nimport sortBy from 'lodash-es/sortBy';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { KeyValue } from '@angular/common';\nimport { InherentRiskAssessmentDialogComponent } from '../inherent-risk-assessment-dialog/inherent-risk-assessment-dialog.component';\nimport { DialogService } from '../../ui-kit/dialog/dialog.service';\nimport { EditResidualRiskRatingComponent } from '../edit-residual-risk-rating/edit-residual-risk-rating.component';\nimport { cloneDeep } from 'lodash-es';\nimport { SubSink } from '../../subsink.class';\n@Component({\n  selector: 'app-quick-inherent-risk-assessment',\n  templateUrl: './quick-inherent-risk-assessment.component.html',\n  styleUrls: ['./quick-inherent-risk-assessment.component.less'],\n  inputs: ['dueDateDetails']\n})\nexport class QuickInherentRiskAssessmentComponent implements OnInit, OnDestroy {\n  dueDateDetails !: any;\n  activeDueDateDetails\n  inherentData: Array<any> = [];\n  rcDetailsArray: Array<any> = [];\n  riskDetails !: any;\n  settings !:any;\n  public activeUserIndex = -1;\n  public finalScoreCreatorIndex = -1;\n  getClassName:string = ''\n  totalScoreDetails: any = {};\n  riskType: Array<string> = [ 'impact','likelihood', 'velocity', 'vulnerability']\n  isEditModeOn: boolean = false;\n  loader: boolean = true;\n  subscriptions:SubSink = new SubSink()\n  disableButton: boolean = false;\n  @Output() updateDisableButton: EventEmitter<boolean> = new EventEmitter();\n  constructor(public quickView: QuickViewService, \n              private authorizer: AuthorizerService,\n              private dialog: DialogService,\n              private dialogService: DialogService,) { }\n\n  ngOnInit(): void {\n    this.handleInherentRiskDataChange();\n  }\n\n  className() {\n    const columnLength = this.riskDetails?.riskDetails?.weightage_str?.filter((ele: any) => ele > 0).length;\n    let className: string = ''\n\n    switch(columnLength) {\n      case 3: className = 'three-column'; break;\n      case 4: className = 'four-column'; break;\n      default: className = '';\n    }\n    return className;\n  }\n\n  setRiskDetails() {\n    this.subscriptions.add(this.quickView.riskDetails$.subscribe({\n      next: (val:any) => { \n        this.riskDetails = val\n        this.getClassName = this.className()\n      }\n    }))\n\n    this.subscriptions.add(this.quickView.activeDueDateDetails$.subscribe({\n      next: (val:any) => { \n        this.activeDueDateDetails = val;\n      }\n    }))\n    \n    this.subscriptions.add(this.quickView.rawInherentAssessmentDetails$.subscribe({\n      next: (val: any) => {\n        this.dueDateDetails = val\n      }\n    }))\n\n    this.subscriptions.add(this.quickView.riskOrgSettings$.subscribe({\n      next: (val:any) => { \n        this.settings = val \n      }\n    }))\n  }\n\n  handleInherentRiskDataChange() {\n    this.setRiskDetails();\n    this.subscriptions.add(this.quickView.inherentRiskDetailswithRC$.subscribe({\n      next: (val: Array<any>) => {\n  \n        if (val?.length) {\n          this.loader = false;\n          this.rcDetailsArray = val;\n          this.populateInherentData();\n        }\n      }\n    }))\n  }\n\n  originalOrder = (a: KeyValue<string, any[]>, b: KeyValue<string, any[]>): number => {\n    return 0;\n  };\n\n  openInherentForm(index: number) {\n    const ref = this.dialog.open(InherentRiskAssessmentDialogComponent, {\n      data: {payload: this.dialogData(index), dueDateData: this.activeDueDateDetails, applyAllRC:this.settings?.ir_rc_applicable ? true :false},\n      position: 'RIGHT',\n      background: 'black',\n    })\n\n    .afterClosed.subscribe((res: any) => {\n      if(res)  {\n        this.isEditModeOn = false;\n        this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS', payload: ''});\n      }\n    })\n  } \n\n  dialogData(rcIndex: number) {\n    let userIndex = this.inherentData[rcIndex]?.assessmentDetails.findIndex((assessmentDetails: any) => assessmentDetails.member_id === this.quickView.getMemberId() || assessmentDetails.member_id === 0);\n    const payload = {\n      selectedRcIndex: rcIndex,\n      assessmentDetailsIndex: userIndex,\n      inherentDetails: this.inherentData,\n      scoreCriteria: this.riskDetails.org_settings.scoring_criteria_keys,\n      weightage: this.riskDetails.riskDetails.weightage_str,\n      manageRiskDetails: this.riskDetails,\n      segmentDetails: this.riskDetails.org_settings.segments,\n      total_score: this.totalScoreDetails.total_score,\n      total_score_name: this.totalScoreDetails.total_score_name,\n      total_score_color: this.totalScoreDetails.total_score_color,\n      dueDate: {\n        id: this.activeDueDateDetails?._id,\n        timestamp: this.activeDueDateDetails?.dueDateTimeStamp\n      }\n    }\n    return payload\n  }\n\n  onComplete(comment: string = '', progressStage: number = 2, actionType?: any) {\n    this.validateScore();\n    const PAYLOAD = this.quickView.assessmentDetailsPayload;\n    PAYLOAD['markAsComplete'] = {\n      comment, progressStage,\n      riskObjId: this.riskDetails.riskObjId,\n      dueDateId: this.activeDueDateDetails._id\n    }\n    if(actionType == 'move') {\n      PAYLOAD.automation_apply = 1\n    }\n    console.log('this is the data', PAYLOAD)\n    this.subscriptions.add(this.quickView.riskV2Post('score/insert', PAYLOAD).subscribe(\n      {\n        next: (res: any) => {\n          this.isEditModeOn = false;\n          this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS', payload:''});\n          // this.snackbar.show(RISK_PROPERTIES.riskAssessment.assessmentCompleted, 'success')\n        },\n        error: (err: any) => {\n          // this.snackbar.show(RISK_PROPERTIES.errorMessage,  'alert')\n        }\n      }))\n  }\n\n  populateInherentData() {\n    this.inherentData = [];\n    this.riskDetails.riskDetails.entity_arr.forEach((rc: any) => {\n      this.inherentData.push({ rcDetails: rc, assessmentDetails: [] });\n    });\n    const rc_ids = Object.keys(this.dueDateDetails);\n    rc_ids.forEach((rc: any) => {\n      this.inherentData.forEach((inherent: any) => {\n        if(inherent.rcDetails.rc_id == rc){\n          inherent.assessmentDetails = (this.dueDateDetails[rc]);\n        }\n      })\n    })\n    this.mapResponseToInherentData(this.dueDateDetails);\n  }\n\n  mapResponseToInherentData(response: any) {\n    this.inherentData.forEach((inherent: any) => {\n      inherent.assessmentDetails = response[inherent.rcDetails.rc_id];\n      inherent.assessmentDetails.forEach((assessment: any) => {\n        if (!assessment.rating_value) {\n          assessment.rating_value = {};\n          assessment.rating_color = {};\n        }\n        assessment.rating_value.likelihood =\n          assessment.rating.likelihood > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.likelihood[assessment.rating.likelihood - 1].value : '';\n        assessment.rating_value.impact = assessment.rating.impact > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.impact[assessment.rating.impact - 1].value : '';\n        assessment.rating_value.velocity =\n          assessment.rating.velocity > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.velocity[assessment.rating.velocity - 1].value : '';\n        assessment.rating_value.vulnerability =\n          assessment.rating.vulnerability > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.vulnerability[assessment.rating.vulnerability - 1].value : '';\n        assessment.rating_color.likelihood =\n          assessment.rating.likelihood > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.likelihood[assessment.rating.likelihood - 1].color : '';\n        assessment.rating_color.impact = assessment.rating.impact > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.impact[assessment.rating.impact - 1].color : '';\n        assessment.rating_color.velocity =\n          assessment.rating.velocity > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.velocity[assessment.rating.velocity - 1].color : '';\n        assessment.rating_color.vulnerability =\n          assessment.rating.vulnerability > 0 ? this.riskDetails.org_settings.scoring_criteria_keys.vulnerability[assessment.rating.vulnerability - 1].color : '';\n        for (const SEGMENT of this.riskDetails.org_settings.segments) {\n          if (assessment.score > SEGMENT.start && assessment.score <= SEGMENT.end) {\n            assessment.scoreName = SEGMENT.segment_name;\n            assessment.scoreColor = SEGMENT.segment_color;\n            break;\n          }\n        }\n        for (const SEGMENT of this.riskDetails.org_settings.segments) {\n          if (assessment.total_rating > SEGMENT.start && assessment.total_rating <= SEGMENT.end) {\n            assessment.total_rating_name = SEGMENT.segment_name;\n            assessment.total_rating_color = SEGMENT.segment_color;\n            break;\n          }\n        }\n      });\n      inherent.assessmentDetails = sortBy(inherent.assessmentDetails, ['role', 'member_id']);\n    });\n    this.activeUserIndex = this.inherentData[0].assessmentDetails.findIndex((assessment: any) => assessment.member_id === this.quickView.getMemberId());\n    this.finalScoreCreatorIndex = this.inherentData[0].assessmentDetails.findIndex(\n      (assessment: any) => assessment.member_id === this.riskDetails.inherentRisk.final_score_creator\n    );\n    if (this.activeUserIndex === -1) {\n      this.activeUserIndex = 0;\n    }\n    if (this.finalScoreCreatorIndex === -1) {\n      this.finalScoreCreatorIndex = 0;\n    }\n    if (this.riskDetails.inherentRisk.finalScoreType === 0) {\n      this.finalScoreCreatorIndex = this.activeUserIndex;\n    }\n\n    this.calculateTotalScore(this.activeUserIndex);\n    this.validateScore();\n  }\n\n  /**\n   * Calculates the total score for currently active user\n   * @param index Index of data for currently active user\n   */\n  calculateTotalScore(index: number) {\n    this.totalScoreDetails.total_score = 0;\n    this.inherentData.forEach((rcDetails: any) => {\n      if (rcDetails.assessmentDetails.length > 0 && rcDetails.assessmentDetails[index].score) {\n        this.totalScoreDetails.total_score = this.totalScoreDetails.total_score + parseFloat(parseFloat(rcDetails.assessmentDetails[index].score).toFixed(2));\n      }\n    });\n    this.totalScoreDetails.total_score = parseFloat((this.totalScoreDetails.total_score / this.inherentData.length).toFixed(2));\n    for (const SEGMENT of this.riskDetails.org_settings.segments) {\n      if (this.totalScoreDetails.total_score > SEGMENT.start && this.totalScoreDetails.total_score <= SEGMENT.end) {\n        this.totalScoreDetails.total_score_name = SEGMENT.segment_name;\n        this.totalScoreDetails.total_score_color = SEGMENT.segment_color;\n        break;\n      }\n    }\n  }\n\n  /**\n   * Validates the scores to check whether Complete Assessment button should be enabled or not\n   */\n  validateScore() {\n    this.disableButton = false;\n    for (const INHERENT of this.inherentData) {\n      const INDEX = INHERENT.assessmentDetails.findIndex((assessment: any) => assessment.member_id === this.quickView.getMemberId());\n      if (INHERENT.assessmentDetails.length > 0 && INDEX > -1) {\n        if (this.riskDetails.riskDetails.weightage_str[0] > 0 && INHERENT.assessmentDetails[INDEX].rating.likelihood <= 0) {\n          this.disableButton = true;\n          break;\n        } else if (this.riskDetails.riskDetails.weightage_str[1] > 0 && INHERENT.assessmentDetails[INDEX].rating.impact <= 0) {\n          this.disableButton = true;\n          break;\n        } else if (this.riskDetails.riskDetails.weightage_str[2] > 0 && INHERENT.assessmentDetails[INDEX].rating.velocity <= 0) {\n          this.disableButton = true;\n          break;\n        } else if (this.riskDetails.riskDetails.weightage_str[3] > 0 && INHERENT.assessmentDetails[INDEX].rating.vulnerability <= 0) {\n          this.disableButton = true;\n          break;\n        }\n      } else {\n        this.disableButton = true;\n        break;\n      }\n    }\n     this.createInsertionPayload();\n    this.updateDisableButton.emit(this.disableButton);\n    this.quickView.actionButtonLoader.next(false);\n  }\n\n    /**\n   * Generates the payload to submit and complete assessment on server side\n   */\n    createInsertionPayload() {\n      const PAYLOAD = {\n        inherentDetails: cloneDeep(this.inherentData)  ,\n        total_score: this.totalScoreDetails.total_score,\n        total_score_name: this.totalScoreDetails.total_score_name,\n        total_score_color: this.totalScoreDetails.total_score_color,\n        risk_id: this.riskDetails.riskId,\n        version_key: '',\n        assessment_save_for_later_flag: 0,\n        risk_automation_enable: this.riskDetails.org_settings.org_risk_automation_enable,\n        role: this.riskDetails.riskDetails.LoginMemberType,\n        due_date: {\n          id: this.activeDueDateDetails?._id,\n          timestamp: this.activeDueDateDetails?.dueDateTimeStamp\n        },\n        completed: 1\n      };\n      PAYLOAD.inherentDetails.forEach((inherent: any) => {\n        const INDEX = inherent.assessmentDetails.findIndex((res: any) => res.member_id === this.quickView.getMemberId());\n        inherent.assessmentDetails = inherent.assessmentDetails[INDEX];\n      });\n      this.quickView.assessmentDetailsPayload = PAYLOAD;\n    }\n\n    reassess(stage: any) {\n      this.dialog.open(EditResidualRiskRatingComponent, {\n        data: {\n          settings: this.settings,\n          stage: stage,\n          dueDateData : this.activeDueDateDetails,\n          riskDetails : this.riskDetails,\n          frequency_details: this.riskDetails?.riskDetails?.reassessment_frequency_details,\n          assessment_date: this.riskDetails?.riskDetails?.reassessment_date\n         },\n        position: 'RIGHT',\n        background: 'black',\n      })\n  \n      .afterClosed.subscribe((res: any) => {\n        if(res) {\n          \n        }\n      })\n    }\n\n    editInherentAssessment(event?: any, stage?: string) {\n      if(event && ![\"RC_HEAD\"]?.includes(this.riskDetails?.riskDetails?.LoginMemberType)) {\n        this.reassess(stage);\n      } else if(stage ||  [\"RC_HEAD\"]?.includes(this.riskDetails?.riskDetails?.LoginMemberType)) {\n        this.isEditModeOn = !(this.isEditModeOn);\n      } else {\n        this.openInherentForm(0);\n      }\n    }\n\n    ngOnDestroy(): void {\n      this.subscriptions.unsubscribe();\n    }\n  \n\n}\n","<div class=\"quick-inherent-risk-assessment\">\n\n    <div class=\"top-value-area vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\n        <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"vx-fs-11 vx-txt-white vx-tt-uppercase\">\n                INHERENT RISK ASSESSMENT:\n                <div *ngIf=\"activeDueDateDetails?.completionDetails?.assessmentCompletedDate\" class=\"vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase\">{{ activeDueDateDetails?.completionDetails?.assessmentCompletedDate }}</div>\n            </div>\n            <button *ngIf=\"activeDueDateDetails?.editButtonDetails?.assessment_edit_enable\" (click)=\"editInherentAssessment(activeDueDateDetails?.completionDetails?.ifAssessmentDoneByLoggedInMember, 'INHERENT')\" class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4\"><i class=\"icons vx-fs-9 vx-fw-400 vx-mr-1\">&#xe90c;</i> Edit</button>\n        </div>\n        <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"rating-area vx-d-flex vx-align-center\">\n                <div *ngIf=\"!activeDueDateDetails?.scores?.obtainedInherentScore && !activeDueDateDetails?.scores?.inherentRiskRatingType\" class=\"vx-fs-11 vx-txt-white\">--</div>\n                <ng-container *ngIf=\"activeDueDateDetails?.scores?.obtainedInherentScore && activeDueDateDetails?.scores?.inherentRiskRatingType\">\n                    <div class=\"rating-number vx-fs-11 vx-fw-500 vx-txt-white\">{{activeDueDateDetails?.scores?.obtainedInherentScore}}</div>\n                    <div class=\"separator vx-mr-1\"></div>\n                    <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"activeDueDateDetails?.scores?.inherentRiskRatingType\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [style.color]=\"activeDueDateDetails?.scores?.inherentRiskRatingColor\">{{activeDueDateDetails?.scores?.inherentRiskRatingType}}</div>\n                </ng-container>\n            </div>\n            <div *ngIf=\"activeDueDateDetails?.completionDetails?.isAssessmentCompleted\" class=\"ckeck-circle vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons vx-fs-12 vx-txt-white\">&#xe91a;</i></div>\n        </div>\n    </div>\n\n    <inherent-assessment-loader *ngIf=\"loader\"></inherent-assessment-loader>\n    <ng-container *ngIf=\"!loader\">\n        <div class=\"table_header\">\n            <div class=\"table_row\">\n                <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 responsibility-center\" [ngClass]=\"getClassName\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                        RESPONSIBILITY CENTER\n                        <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"'Responsibility Centers represent the corporate and operational infrastructure of an organization. One or more Responsibility Centers can be exposed to a risk and accordingly, the risk must be assessed against each Responsibility Center.'\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                    <div *ngIf=\"activeDueDateDetails?.saveforLaterDetails?.ifAssessmentSFLByLoggedInMember\" class=\"draft-label vx-fs-10 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\">DRAFT</div>\n                </div>\n                <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.likelihood?.enabled\" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 likelihood\" [ngClass]=\"getClassName\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                        <span class=\"heading-text\">LIKELIHOOD</span>\n                        <i *ngIf=\"riskDetails?.riskDetails?.weightage_details?.likelihood?.description\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"riskDetails?.riskDetails?.weightage_details?.likelihood?.description\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                    <div class=\"weightage-text vx-fs-9 vx-fw-500 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\"><span class=\"weightage-label\">WEIGHTAGE</span>: <span class=\"vx-fs-11 vx-fw-400 vx-ml-1\">{{riskDetails?.riskDetails?.weightage_details?.likelihood?.value}}%</span></div>\n                </div>\n                <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.impact?.enabled\" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 impact\" [ngClass]=\"getClassName\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                        <div class=\"calculate-divition vx-fs-9 vx-fw-600 vx-paragraph-txt\"><i class=\"icons\">&#xe9ae;</i></div>\n                        <span class=\"heading-text\">IMPACT</span>\n                        <i *ngIf=\"riskDetails?.riskDetails?.weightage_details?.impact?.description\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"riskDetails?.riskDetails?.weightage_details?.impact?.description\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                    <div class=\"weightage-text vx-fs-9 vx-fw-500 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\"><span class=\"weightage-label\">WEIGHTAGE</span>: <span class=\"vx-fs-11 vx-fw-400 vx-ml-1\">{{riskDetails?.riskDetails?.weightage_details?.impact?.value}}%</span></div>\n                </div>\n                <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.velocity?.enabled\" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 velocity\" [ngClass]=\"getClassName\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                        <div class=\"calculate-divition vx-fs-9 vx-fw-600 vx-paragraph-txt\"><i class=\"icons\">&#xe9ae;</i></div>\n                        <span class=\"heading-text\">VELOCITY</span>\n                        <i *ngIf=\"riskDetails?.riskDetails?.weightage_details?.velocity?.description\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"riskDetails?.riskDetails?.weightage_details?.velocity?.description\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                    <div class=\"weightage-text vx-fs-9 vx-fw-500 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\"><span class=\"weightage-label\">WEIGHTAGE</span>: <span class=\"vx-fs-11 vx-fw-400 vx-ml-1\">{{riskDetails?.riskDetails?.weightage_details?.velocity?.value}}%</span></div>\n                </div>\n                <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.vulnerability?.enabled\" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 vulnerability\" [ngClass]=\"getClassName\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                        <div class=\"calculate-divition vx-fs-9 vx-fw-600 vx-paragraph-txt\"><i class=\"icons\">&#xe9ae;</i></div>\n                        <span class=\"heading-text\">VULNERABILITY</span>\n                        <i *ngIf=\"riskDetails?.riskDetails?.weightage_details?.vulnerability?.description\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"riskDetails?.riskDetails?.weightage_details?.vulnerability?.description\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                    <div class=\"weightage-text vx-fs-9 vx-fw-500 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\"><span class=\"weightage-label\">WEIGHTAGE</span>: <span class=\"vx-fs-11 vx-fw-400 vx-ml-1\">{{riskDetails?.riskDetails?.weightage_details?.vulnerability?.value}}%</span></div>\n                </div>\n                <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 rating \" [ngClass]=\"getClassName\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                        <div class=\"calculate-divition vx-fs-14 vx-fw-600 vx-paragraph-txt\">=</div>\n                        INHERENT RISK RATING\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"table_body\">\n            <ng-container >\n                <ng-container *ngFor=\"let rcDetails of rcDetailsArray; let i = index;\">\n                    <ng-container *ngIf=\"dueDateDetails[rcDetails?.rc_id] as rc\">\n                        <div class=\"table_row\">\n                            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center responsibility-center\" [ngClass]=\"getClassName\">\n                                <div class=\"rc-icon vx-d-flex vx-align-center vx-justify-center vx-mr-2\"><i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe908;</i></div>\n                                <div class=\"rc-right\">\n                                    <div class=\"rc-name vx-fs-13 vx-label-txt\" [appTooltip]=\"rcDetails?.rc_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rcDetails?.rc_name}}</div>\n                                    <div *ngIf=\"rcDetails?.rc_name_arr?.length > 1\" class=\"within-part vx-d-flex vx-align-center\">\n                                        <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">Within</div>\n                                        <div class=\"within-value vx-fs-11 vx-paragraph-txt\" [appTooltip]=\"rcDetails?.rc_tree\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rcDetails?.rc_tree}}</div>\n                                    </div>\n                                </div>\n                            </div>\n                            <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.likelihood?.enabled\"  class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center likelihood\" [ngClass]=\"getClassName\">\n                                <div *ngIf=\"!quickView.isBeginAssessmentEnabled && !rc[finalScoreCreatorIndex]?.this_calculation_value?.likelihood\" (click)=\"openInherentForm(i)\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                                    <div class=\"vx-fs-12\">--</div>\n                                    <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                                </div>\n                                <div *ngIf=\"(quickView.isBeginAssessmentEnabled) && !rc[finalScoreCreatorIndex]?.this_calculation_value?.likelihood\" class=\"vx-fs-13 vx-paragraph-txt\">\n                                    --\n                                </div>\n                                <ng-container *ngIf=\"rc[finalScoreCreatorIndex]?.this_calculation_value?.likelihood\">\n                                    <div class=\"vx-fs-13 vx-paragraph-txt\">{{\n                                        rc[finalScoreCreatorIndex]?.this_calculation_value?.likelihood\n                                    }}</div>\n                                    <i *ngIf=\"rc[finalScoreCreatorIndex]?.this_calculation_rating?.likelihood\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"rc[finalScoreCreatorIndex]?.this_calculation_rating?.likelihood\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                                </ng-container>\n                            </div>\n                            <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.impact?.enabled\"  class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center impact\" [ngClass]=\"getClassName\">\n                                <div *ngIf=\"!quickView.isBeginAssessmentEnabled && !rc?.[finalScoreCreatorIndex]?.this_calculation_value?.impact\" (click)=\"openInherentForm(i)\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                                    <div class=\"vx-fs-12\">--</div>\n                                    <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                                </div>\n                                <div *ngIf=\"quickView.isBeginAssessmentEnabled && !rc?.[finalScoreCreatorIndex]?.this_calculation_value?.impact\"  class=\"vx-fs-13 vx-paragraph-txtvx-fs-13 vx-paragraph-txt\">\n                                    --\n                                </div>\n                                <ng-container *ngIf=\"rc?.[finalScoreCreatorIndex]?.this_calculation_value?.impact\">\n                                    <div class=\"vx-fs-13 vx-paragraph-txt\">{{rc?.[finalScoreCreatorIndex]?.this_calculation_value?.impact}}</div>\n                                    <i *ngIf=\"rc?.[finalScoreCreatorIndex]?.this_calculation_value?.impact > 0\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"rc?.[finalScoreCreatorIndex]?.this_calculation_rating?.impact\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                                </ng-container>\n                            </div>\n                            <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.velocity?.enabled && riskDetails?.riskDetails?.weightage_str[2] !== 0\"  class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center velocity\" [ngClass]=\"getClassName\">\n                                <div *ngIf=\"!quickView.isBeginAssessmentEnabled && !rc?.[finalScoreCreatorIndex]?.this_calculation_value?.velocity\" (click)=\"openInherentForm(i)\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                                    <div class=\"vx-fs-12\">--</div>\n                                    <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                                </div>\n                                <div *ngIf=\"quickView.isBeginAssessmentEnabled &&  !rc[finalScoreCreatorIndex]?.this_calculation_value?.velocity\" class=\"vx-fs-13 vx-paragraph-txt\">\n                                    --\n                                </div>\n                                <ng-container *ngIf=\"rc[finalScoreCreatorIndex]?.this_calculation_value?.velocity\">\n                                    <div class=\"vx-fs-13 vx-paragraph-txt\">{{rc[finalScoreCreatorIndex]?.this_calculation_value?.velocity}}</div>\n                                    <i *ngIf=\"rc[finalScoreCreatorIndex]?.this_calculation_value?.velocity\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"rc[finalScoreCreatorIndex]?.this_calculation_rating?.velocity\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                                </ng-container>\n                            </div>\n                            <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.vulnerability?.enabled && riskDetails?.riskDetails?.weightage_str[3] !== 0\"  class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vulnerability\" [ngClass]=\"getClassName\">\n                                <div *ngIf=\"!quickView.isBeginAssessmentEnabled && !rc?.[finalScoreCreatorIndex]?.this_calculation_value?.vulnerability\" (click)=\"openInherentForm(i)\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                                    <div class=\"vx-fs-12\">--</div>\n                                    <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                                </div>\n                                <div *ngIf=\"quickView.isBeginAssessmentEnabled && !rc?.[finalScoreCreatorIndex]?.this_calculation_value?.vulnerability\"class=\"vx-fs-13 vx-paragraph-txt\">\n                                    --\n                                </div>\n                                <ng-container *ngIf=\"rc?.[finalScoreCreatorIndex]?.this_calculation_value?.vulnerability\">\n                                    <div class=\"vx-fs-13 vx-paragraph-txt\">{{rc?.[finalScoreCreatorIndex]?.this_calculation_value?.vulnerability}}</div>\n                                    <i *ngIf=\"rc[finalScoreCreatorIndex]?.this_calculation_value?.vulnerability\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"rc[finalScoreCreatorIndex]?.this_calculation_rating?.vulnerability\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                                </ng-container>\n                            </div>\n                            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center rating\">\n                                <ng-container *ngIf=\"rc[finalScoreCreatorIndex]?.total_rating_name\">\n                                    <div class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt\">{{rc[finalScoreCreatorIndex]?.total_rating}}</div>\n                                    <div class=\"separator vx-mr-1\"></div>\n                                    <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"rc[finalScoreCreatorIndex]?.total_rating_name.toUpperCase()\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                    [ngStyle]=\"{\n                                        color: rc[finalScoreCreatorIndex]?.total_rating_color\n                                    }\">{{ rc[finalScoreCreatorIndex]?.total_rating_name }}</div>\n                                </ng-container>\n                                <div *ngIf=\"!rc[finalScoreCreatorIndex]?.total_rating_name\" class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt\">--</div>\n                            </div>\n                        </div>\n                        <div *ngFor=\"let details of rc; let j = index\" class=\"table_row sub_table_row\" [class.disabled]=\"quickView.getMemberId() !== details?.member_id\">\n                            <ng-container *ngIf=\"details?.assessed_by?.length > 0\">\n                                <div class=\"table_column vx-p-1 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center responsibility-center\" [ngClass]=\"getClassName\">\n                                    <div *ngIf=\"details?.assessed_by?.length > 0\" class=\"vx-avatar md vx-mr-2\">\n                                        <span *ngIf=\"!(details?.assessed_by_details?.profile_pic)\" class=\"blue\">{{details?.assessed_by_details?.short_name}}</span>\n                                        <img *ngIf=\"details?.assessed_by_details?.profile_pic\" [src]=\"details?.assessed_by_details?.profile_pic | profile\" />\n                                    </div>\n                                    <div *ngIf=\"details?.assessed_by?.length > 0\" class=\"rc-right\">\n                                        <div class=\"vx-d-flex vx-align-center\">\n                                            <div class=\"vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">ASSESSED BY:</div>\n                                        </div>\n                                        <div *ngIf=\"details?.assessed_by?.length > 0\" class=\"rc-name vx-fs-11 vx-label-txt\" [appTooltip]=\"details?.assessed_by\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{details?.assessed_by}}</div>\n                                    </div>\n                                </div>\n                                <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.likelihood?.enabled\"  class=\"table_column vx-p-1 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center likelihood\" [ngClass]=\"getClassName\">\n                                    <div *ngIf=\"!quickView.isBeginAssessmentEnabled && details?.rating?.likelihood === 0 || (isEditModeOn && (quickView.getMemberId() === details?.member_id))\" (click)=\"openInherentForm(i)\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                                        <div *ngIf=\"details?.rating?.likelihood > 0\" class=\"value vx-fs-12\" [ngStyle]=\"{\n                                            color: details?.rating_color?.likelihood,\n                                            backgroundColor: details?.rating_color?.likelihood + '1A'\n                                        }\">{{ details?.rating?.likelihood }} - {{ details?.rating_value?.likelihood }}</div>\n                                        <div  *ngIf=\"details?.rating?.likelihood === 0\" class=\"vx-fs-12\">--</div>\n                                        <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                                    </div>\n                                    <ng-container *ngIf=\"details?.rating?.likelihood > 0 && !(isEditModeOn && (quickView.getMemberId() === details?.member_id))\">\n                                        <div class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" appTooltip=\"{{ details?.rating?.likelihood }} - {{ details?.rating_value?.likelihood }}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                        [ngStyle]=\"{\n                                            color: details?.rating_color?.likelihood,\n                                            backgroundColor: details?.rating_color?.likelihood + '1A'\n                                        }\"\n                                        >{{ details?.rating?.likelihood }} - {{ details?.rating_value?.likelihood }}</div>\n                                        <i  *ngIf=\"details?.rating_reason?.likelihood?.length > 0\" appPopover (click)=\"likelihoodPopup.popover()\" placement=\"top-center\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\">&#xe933;</i>\n                                        <app-popover #likelihoodPopup>\n                                            <div class=\"action-list\" style=\"margin-bottom: 4px;\">\n                                                <ul class=\"action-item\">\n                                                    <div class=\"vx-fs-12 vx-label-txt vx-p-2\" [innerHTML]=\"details?.rating_reason?.likelihood\"></div>\n                                                </ul>\n                                            </div>\n                                        </app-popover>\n                                    </ng-container>\n                                    <div *ngIf=\"quickView.isBeginAssessmentEnabled && details?.rating?.likelihood === 0 && !(isEditModeOn && (quickView.getMemberId() === details?.member_id))\" class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt\">--</div>\n                                </div>\n                                <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.impact?.enabled\"  class=\"table_column vx-p-1 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center impact\" [ngClass]=\"getClassName\">\n                                    <div *ngIf=\"!quickView.isBeginAssessmentEnabled && details?.rating?.impact === 0 || (isEditModeOn && (quickView.getMemberId() === details?.member_id))\" (click)=\"openInherentForm(i)\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                                        <div *ngIf=\"details?.rating?.impact === 0\" class=\"vx-fs-12\">--</div>\n                                        <div\n                                            *ngIf=\"details?.rating?.impact > 0\"\n                                            class=\"vx-fs-12\"\n                                            [ngStyle]=\"{\n                                                color: details?.rating_color?.impact,\n                                                backgroundColor: details?.rating_color?.impact + '1A'\n                                            }\"\n                                            >\n                                                {{ details?.rating?.impact }} - {{ details?.rating_value?.impact }}\n                                        </div>\n                                        <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                                    </div>\n                                    <ng-container  *ngIf=\"details?.rating?.impact > 0 && !(isEditModeOn && (quickView.getMemberId() === details?.member_id))\">\n                                        <div class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" appTooltip=\"{{ details?.rating?.impact }} - {{ details?.rating_value?.impact }}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                        [ngStyle]=\"{\n                                            color: details?.rating_color?.impact,\n                                            backgroundColor: details?.rating_color?.impact + '1A'\n                                        }\">{{ details?.rating?.impact }} - {{ details?.rating_value?.impact }}</div>\n                                        <i *ngIf=\"details?.rating_reason?.impact.length > 0\" appPopover (click)=\"impactPopup.popover()\" placement=\"top-center\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\">&#xe933;</i>\n                                        <app-popover #impactPopup>\n                                            <div class=\"action-list\" style=\"margin-bottom: 4px;\">\n                                                <ul class=\"action-item\">\n                                                    <div class=\"vx-fs-12 vx-label-txt vx-p-2\" [innerHTML]=\"details?.rating_reason?.impact\"></div>\n                                                </ul>\n                                            </div>\n                                        </app-popover>\n                                    </ng-container>\n                                    <div *ngIf=\"quickView.isBeginAssessmentEnabled && details?.rating?.impact === 0 && !(isEditModeOn && (quickView.getMemberId() === details?.member_id))\" class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt\">--</div>\n                                </div>\n                                <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.velocity?.enabled && riskDetails?.riskDetails?.weightage_str[2] !== 0\"  class=\"table_column vx-p-1 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center velocity\" [ngClass]=\"getClassName\">\n                                    <div *ngIf=\"!quickView.isBeginAssessmentEnabled && details?.rating?.velocity === 0 || (isEditModeOn && (quickView.getMemberId() === details?.member_id))\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                                        <div *ngIf=\"details?.rating?.velocity === 0\" class=\"vx-fs-12\">--</div>\n                                        <div\n                                            *ngIf=\"details?.rating?.velocity > 0\"\n                                            class=\"vx-fs-12\">\n                                            {{ details?.rating?.velocity }} - {{ details?.rating_value?.velocity }}\n                                        </div>\n                                        <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                                    </div>\n                                    <ng-container *ngIf=\"details?.rating?.velocity > 0 && !(isEditModeOn && (quickView.getMemberId() === details?.member_id))\">\n                                        <div class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" appTooltip=\"{{ details?.rating?.velocity }} - {{ details?.rating_value?.velocity }}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                        [ngStyle]=\"{\n                                            color: details?.rating_color?.velocity,\n                                            backgroundColor: details?.rating_color?.velocity + '1A'\n                                        }\"\n                                        >{{ details?.rating?.velocity }} - {{ details?.rating_value?.velocity }}</div>\n                                        <i *ngIf=\"details?.rating_reason?.velocity.length > 0\"  appPopover (click)=\"velocityPopup.popover()\" placement=\"top-center\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\">&#xe933;</i>\n                                        <app-popover #velocityPopup>\n                                            <div class=\"action-list\" style=\"margin-bottom: 4px;\">\n                                                <ul class=\"action-item\">\n                                                    <div class=\"vx-fs-12 vx-label-txt vx-p-2\" [innerHTML]=\"details?.rating_reason?.velocity\"></div>\n                                                </ul>\n                                            </div>\n                                        </app-popover>\n                                    </ng-container>\n                                    <div *ngIf=\"quickView.isBeginAssessmentEnabled && details?.rating?.velocity === 0 && !(isEditModeOn && (quickView.getMemberId() === details?.member_id))\" class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt\">--</div>\n                                </div>\n                                <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.vulnerability?.enabled && riskDetails?.riskDetails?.weightage_str[3] !== 0\"  class=\"table_column vx-p-1 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vulnerability\" [ngClass]=\"getClassName\">\n                                    <div *ngIf=\"!quickView.isBeginAssessmentEnabled && details?.rating?.vulnerability === 0 || (isEditModeOn && (quickView.getMemberId() === details?.member_id))\" (click)=\"openInherentForm(i)\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                                        <div *ngIf=\"details?.rating?.vulnerability === 0\" class=\"vx-fs-12\">--</div>\n                                        <div\n                                            *ngIf=\"details?.rating?.vulnerability > 0\"\n                                            class=\"vx-fs-12\"\n                                            [ngStyle]=\"{\n                                                color: details?.rating_color?.vulnerability,\n                                                backgroundColor: details?.rating_color?.vulnerability + '1A'\n                                            }\"\n                                            >\n                                            {{ details?.rating?.vulnerability }} - {{ details?.rating_value?.vulnerability }}\n                                            </div>\n                                        <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                                    </div>\n                                    <ng-container *ngIf=\"details?.rating?.vulnerability > 0 && !(isEditModeOn && (quickView.getMemberId() === details?.member_id))\">\n                                        <div class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" appTooltip=\"{{ details?.rating?.vulnerability }} - {{ details?.rating_value?.vulnerability }}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                        [ngStyle]=\"{\n                                            color: details?.rating_color?.vulnerability,\n                                            backgroundColor: details?.rating_color?.vulnerability + '1A'\n                                        }\"\n                                        >{{ details?.rating?.vulnerability }} - {{ details?.rating_value?.vulnerability }}</div>\n                                        <i *ngIf=\"details?.rating_reason?.vulnerability.length > 0\" appPopover (click)=\"vulnerabilityPopup.popover()\" placement=\"top-center\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\">&#xe933;</i>\n                                        <app-popover #vulnerabilityPopup>\n                                            <div class=\"action-list\" style=\"margin-bottom: 4px;\">\n                                                <ul class=\"action-item\">\n                                                    <div class=\"vx-fs-12 vx-label-txt vx-p-2\" [innerHTML]=\"details?.rating_reason?.vulnerability\"></div>\n                                                </ul>\n                                            </div>\n                                        </app-popover>\n                                    </ng-container>\n                                    <div  *ngIf=\"quickView.isBeginAssessmentEnabled && details?.rating?.vulnerability === 0 && !(isEditModeOn && (quickView.getMemberId() === details?.member_id))\" class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt\">--</div>\n                                </div>\n                                <div class=\"table_column vx-p-1 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center rating\">\n                                    <ng-container *ngIf=\"details?.score\">\n                                        <div class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt\">{{details?.score}}</div>\n                                        <div class=\"separator vx-mr-1\"></div>\n                                        <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" appTooltip=\"{{ details?.scoreName }}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                        [ngStyle]=\"{\n                                            color: details?.scoreColor,\n                                            backgroundColor: details?.scoreColor + '1A'\n                                        }\"\n                                        >{{ details?.scoreName }}</div>\n                                    </ng-container>\n                                    <div *ngIf=\"!details?.score\" class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt\">--</div>\n                                </div>\n                            </ng-container>\n                        </div>\n                    </ng-container>\n                </ng-container>\n            </ng-container>\n        </div>\n    </ng-container>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { OutgoingMessage } from 'http';\n\n@Component({\n  selector: 'vc-no-control-bottom-confirmation-popup',\n  templateUrl: './no-control-bottom-popup.component.html',\n  styleUrls: ['./no-control-bottom-popup.component.less']\n})\nexport class NoControlBottomConfirmationPopupComponent implements OnInit {\n  @Input() rcWithoutControl: any[] = [];\n  @Output() action = new EventEmitter<'YES'|'NO'>();\n  constructor() {}\n\n  ngOnInit(): void {}\n\n}\n","<!-- {\n    \"rc_id\": 5133,\n    \"rc_name\": \"Trip to Anywhere\",\n    \"rc_tree\": \"Trip to Anywhere\",\n    \"parent_rc\": \"\",\n    \"rc_name_arr\": [\n        \"Trip to Anywhere\"\n    ]\n} -->\n\n<div class=\"overlay\"></div>\n<div class=\"no-control-form-dialog-confirmation\">\n    <div class=\"top vx-p-5\">\n        <div class=\"vx-d-flex vx-align-center vx-justify-start\">\n            <span class=\"icon-block vx-d-flex vx-align-center vx-justify-center vx-mr-4\">\n                <i class=\"icons vx-fs-12 vx-txt-blue\">&#xeb34;</i>\n            </span>\n            <span class=\"text vx-fs-14 vx-fw-300 vx-txt-white\">No responsibilities have been linked as controls to the following Responsibility Center(s):</span>\n        </div>\n        <div class=\"rc-name-area vx-p-1 vx-d-inline-flex vx-align-center\">\n            <div class=\"rc-name vx-fs-11 vx-txt-white\" [appTooltip]=\"rcWithoutControl[0]?.rcDetails?.rc_name\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                {{rcWithoutControl[0]?.rcDetails?.rc_name}}</div>\n            <button *ngIf=\"rcWithoutControl?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\" class=\"count vx-fs-11 vx-label-txt vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\">+{{ rcWithoutControl?.length - 1 }}</button>\n            <app-popover #rcPopup>\n                <div class=\"action-list\">\n                    <ul class=\"action-item\">\n                        <li *ngFor=\"let rc of rcWithoutControl | slice: 1\">\n                            <div class=\"avatar-card\">\n                                <div class=\"vx-d-block vx-w-100\">\n                                    <span class=\"value\" [appTooltip]=\"rc?.rc_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                                        {{rc?.rcDetails?.rc_name}}\n                                    </span>\n                                    <div class=\"within-part vx-d-flex vx-align-center\" *ngIf=\"rc?.rcDetails?.rc_tree?.length\">\n                                        <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-1 vx-lh-3\">Within</div>\n                                        <div class=\"value vx-fs-11 vx-paragraph-txt\" [appTooltip]=\"rc?.rcDetails?.rc_tree\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rc?.rcDetails?.rc_tree}}</div>\n                                    </div>\n                                </div>\n                            </div>\n                        </li>\n                    </ul>\n                </div>\n            </app-popover>\n        </div>\n    </div>\n    <div class=\"bottom vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-pr-5\">\n        <div class=\"message vx-fs-14 vx-fw-500 vx-lh-5 vx-txt-white\">Are you sure you would like to proceed?</div>\n        <div class=\"action vx-d-flex vx-align-center\">\n            <button type=\"button\" class=\"outline vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-m-0 vx-p-0 vx-txt-white\" (click)=\"action.emit('NO')\">NO</button>\n            <button type=\"button\" class=\"fill vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-m-0 vx-p-0 vx-txt-blue vx-ml-1\" (click)=\"action.emit('YES')\">Yes</button>\n        </div>\n    </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'segmentFinder',\n})\nexport class SegmentFinderPipe implements PipeTransform {\n  transform(value: any, ...args: any[]): any {\n    const segments = args[0];\n    for (let i = 0; i < segments?.length; i++) {\n      if (parseInt(value) === 0 && parseInt(value) >= segments[i].start && parseInt(value) <= segments[i].end) {\n        segments[i].value = i + 1;\n        return segments[i];\n      } else if (value > segments[i].start && value <= segments[i].end) {\n        segments[i].value = i + 1;\n        return segments[i];\n      }\n    }\n  }\n}\n","import { DialogService } from './../../ui-kit/dialog/dialog.service';\nimport { KeyValue } from '@angular/common';\nimport {\n  Component,\n  HostListener,\n  Input,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { EditorConfig } from '@vcomply/editor';\nimport { ResponseStrategyDialogComponent } from '../response-strategy-dialog/response-strategy-dialog.component';\nimport { CsSwitchComponent } from '../../ui-kit/formgroup/cs-switch/cs-switch.component';\nimport { RISK_QUICKVIEW_PROPERTIES } from '../../configurations';\nimport { DialogRef } from '../../ui-kit/dialog/dialog-ref';\nimport { DialogConfig } from '../../ui-kit/dialog/dialog-config';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { QuickViewService } from '../services/quick-view.service';\nimport { SubSink } from '../../subsink.class';\n\n@Component({\n  selector: 'app-residual-risk-assessment-dialog',\n  templateUrl: './residual-risk-assessment-dialog.component.html',\n  styleUrls: ['./residual-risk-assessment-dialog.component.less'],\n})\nexport class ResidualRiskAssessmentDialogComponent\n  implements OnInit, OnDestroy\n{\n  @ViewChild('sameResponsibility', { static: false })\n  sameRatingSwitchRef!: CsSwitchComponent;\n  RISK_QUICKVIEW_PROPERTIES = RISK_QUICKVIEW_PROPERTIES;\n  animation!: boolean;\n  hideControls = false;\n  hideGuide = false;\n  manageRiskDetails!: any;\n  residualAssessmentData!: any;\n  dueDateDetails!: any;\n  expandedRCindex: any = 0;\n  lastManipulatedRCIndex: any = 0;\n  isApplySame = false;\n  PREVIOUS_APPLY_SAME_VALUE = false; // This indicates the initial value of toggle which is only updated on ngOnInit. Value should not be changed later\n  public isError = false;\n  riskStages = [\n    '',\n    'Not specified',\n    'Accept',\n    'Transfer',\n    'Mitigate',\n    'Avoid',\n    'Reassess',\n  ];\n  isLoader = false;\n  subscriptions: SubSink = new SubSink();\n  appState: any = {\n    containsError: false,\n    isErrorPanel: false,\n    errorPanelMessage: '',\n    showLoader: false,\n    totalTreatmentScore: 0,\n    deletedIds: [],\n    completeDisabled: false,\n    completeError: false,\n    editModeDisabled: true,\n    isActionTaken: false,\n    activeState: 'NORMAL', //IRS_RRS //RC_ERROR // AUTOMATION\n    rcWithoutControl: [],\n    automationMessage: '',\n    automationType: 'move',\n  };\n  applySameForAllRCDialog =\n    'Once you enable this setting, the same residual risk ratings will be applied to all the Responsibility Centers associated with this risk.';\n  applySameRatingPopup = false;\n  constructor(\n    private dialog: DialogRef,\n    private dialogService: DialogService,\n    public dialogConfig: DialogConfig,\n    private quickviewService: QuickViewService,\n    private snackBarService: SnackBarService\n  ) {}\n  automationRadio = [\n    { id: 'move', name: 'Apply Predefined Rules & Move Risk' },\n    { id: 'complete', name: 'Do Not Move Risk & Complete Assessment' },\n  ];\n  ngOnInit(): void {\n    this.manageRiskDetails = cloneDeep(\n      this.dialogConfig?.data?.manageRiskDetails\n    );\n    this.residualAssessmentData = cloneDeep(\n      this.dialogConfig?.data?.residualDetails\n    );\n    this.dueDateDetails = cloneDeep(this.dialogConfig?.data?.dueDateDetails);\n    this.expandedRCindex = cloneDeep(this.dialogConfig?.data?.rcIndex);\n    this.isApplySame =\n      this.dialogConfig?.data?.dueDateDetails?.rcToggle?.rrRCToggleEnable === 1\n        ? true\n        : false;\n    this.PREVIOUS_APPLY_SAME_VALUE = this.isApplySame;\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 3000);\n    this.reCalculateRCRating();\n  }\n\n  /* This is a decorator that listens to the keydown event on the form to close form on escape key down. */\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\n    event: KeyboardEvent\n  ) {\n    this.closeForm();\n  }\n\n  closeForm() {\n    if (this.PREVIOUS_APPLY_SAME_VALUE != this.isApplySame) {\n      this.dialog.close({ refreshPage: true });\n    } else {\n      this.dialog.close(false);\n    }\n  }\n\n  description: EditorConfig = {\n    mode: 'prime',\n    placeholder: 'Add Comments',\n  };\n\n  changeExpandedIndex(index: number) {\n    if (index === this.expandedRCindex) {\n      this.expandedRCindex = null;\n    } else {\n      this.expandedRCindex = index;\n    }\n  }\n\n  showControls() {\n    this.hideControls = !this.hideControls;\n  }\n\n  showGuide() {\n    this.hideGuide = true;\n  }\n\n  closeGuide() {\n    this.hideGuide = false;\n  }\n  //Function to return the original order of the object\n  originalOrder = (\n    a: KeyValue<string, any>,\n    b: KeyValue<string, any>\n  ): number => {\n    return 0;\n  };\n  valueSelected(scoringCriteriaValue: number, scoringCriteriaKey: string) {\n    this.residualAssessmentData[this.expandedRCindex].rc_rating_reason[\n      scoringCriteriaKey\n    ].rating = scoringCriteriaValue;\n    let index = this.residualAssessmentData[this.expandedRCindex].errors\n      ? this.residualAssessmentData[this.expandedRCindex]?.errors.indexOf(\n          scoringCriteriaKey\n        )\n      : -1;\n    if (index !== -1) {\n      this.residualAssessmentData[this.expandedRCindex].errors.splice(index, 1);\n    }\n    console.log('residula risk assessment', this.residualAssessmentData);\n    this.reCalculateRCRating();\n    this.checkPartialFill();\n    if (this.isApplySame) {\n      this.executeSameRCScore();\n    }\n    this.handleValueChangeErrorIRSvsRRS();\n  }\n\n  handleValueChangeErrorIRSvsRRS() {\n    if (this.checkIRSvsRRS() === true) {\n      this.isError = true;\n      this.appState.activeState = 'IRS_RRS';\n    } else {\n      this.isError = false;\n      this.appState.activeState = 'NORMAL';\n    }\n  }\n\n  applySameRating(event: any) {\n    this.applySameRatingPopup = true;\n  }\n  applySameRatingHandler(evt: any) {\n    this.applySameRatingPopup = false;\n    if (evt === 'YES') {\n      if (!this.isApplySame) {\n        this.isApplySame = true;\n        this.executeSameRCScore();\n      } else {\n        this.isApplySame = false;\n      }\n      this.setAllRCSameValue();\n    }\n    this.sameRatingSwitchRef.ngValue = this.isApplySame;\n  }\n\n  executeSameRCScore() {\n    console.log('executeSameRCScore', this.lastManipulatedRCIndex);\n    const score = cloneDeep(\n      this.residualAssessmentData[this.lastManipulatedRCIndex]?.rc_rating_reason\n    );\n\n    console.log('selected score', score);\n    if (score && this.isApplySame) {\n      this.residualAssessmentData.forEach((rc: any) => {\n        rc.rc_rating_reason = cloneDeep(score);\n      });\n    }\n\n    if (this.lastManipulatedRCIndex > -1) {\n      this.reCalculateRCRating();\n      this.checkPartialFill();\n    }\n  }\n  save(isLater: any = 1, automationState: any = 0, logDisabled: any = false) {\n    this.isLoader = true;\n    const PAYLOAD = {\n      allRCHeadOwnerOverSigntArr:\n        this.dialogConfig.data.manageRiskDetails.riskDetails\n          .allRCHeadOwnerOverSigntArr ?? [],\n      treatment_details: this.residualAssessmentData, // action_type= ADD, UPDATE_OWN, UPDATE_OTHER\n      deleted_items: this.dialogConfig.data.deletedItems ?? [],\n      residual_score: this.appState.totalTreatmentScore ?? 0,\n      save_for_later: isLater ? 1 : 0,\n      risk_id: this.manageRiskDetails.riskId ?? 0,\n      automation_apply: automationState === 1 ? 1 : 0,\n      logDisabled: logDisabled === true ? true : false,\n      due_date: this.dueDateDetails?._id,\n    };\n\n    this.subscriptions.add(\n      this.quickviewService.saveTreatmentData(PAYLOAD).subscribe(\n        (res: any) => {\n          this.isLoader = true;\n          if (this.dueDateDetails.is_treatment_present === 0) {\n            this.snackBarService.show(\n              !isLater\n                ? RISK_QUICKVIEW_PROPERTIES.riskTreatment.treatmentCompleted\n                : RISK_QUICKVIEW_PROPERTIES.riskTreatment.saveForLater,\n              'success'\n            );\n          } else if (this.dueDateDetails.is_treatment_present > 0) {\n            this.snackBarService.show(\n              !isLater\n                ? RISK_QUICKVIEW_PROPERTIES.riskTreatment.treatmentMoreThanOnce\n                : RISK_QUICKVIEW_PROPERTIES.riskTreatment.saveForLater,\n              'success'\n            );\n          }\n          this.dialog.close({\n            treatmentDetails: this.residualAssessmentData,\n            refreshPage: true,\n          });\n          if (isLater == 0 && automationState == 0)\n            this.showStrategy(this.dueDateDetails);\n        },\n        (error) => {\n          console.error(error);\n          this.isLoader = true;\n          this.snackBarService.show(\n            RISK_QUICKVIEW_PROPERTIES.errorMessage,\n            'alert'\n          );\n        }\n      )\n    );\n  }\n  // This method recalculates the score for all RCS\n  reCalculateRCRating() {\n    const segmentDetail = this.manageRiskDetails.org_settings.segments;\n    const weightageStr = ['likelihood', 'impact', 'velocity', 'vulnerability'];\n    this.residualAssessmentData.forEach((rc: any, index: number) => {\n      const controlLog = [];\n      let isAllZero = true;\n      for (const [key, value] of Object.entries(rc.rc_rating_reason)) {\n        const weightage =\n          this.manageRiskDetails?.riskDetails?.weightage_str[\n            weightageStr.indexOf(key)\n          ];\n        if (weightage >= 10) {\n          if (rc.rc_rating_reason[key].rating > 0) {\n            isAllZero = false;\n          }\n          let x = 0;\n          if (this.manageRiskDetails.inherentRisk.IfAssessmentDone > 0) {\n            if (rc.rc_rating_reason[key].rating) {\n              x =\n                (parseInt(rc.rc_rating_reason[key].rating) === 0\n                  ? 1\n                  : parseInt(rc.rc_rating_reason[key].rating)) *\n                (weightage / 100);\n              controlLog.push(x);\n            } else {\n              controlLog.push(rc.rc_rating[key].score);\n            }\n          } else {\n            if (rc.rc_rating_reason[key].rating > 0) {\n              x =\n                (parseInt(rc.rc_rating_reason[key].rating) === 0\n                  ? 1\n                  : parseInt(rc.rc_rating_reason[key].rating)) *\n                (weightage / 100);\n              controlLog.push(x);\n            } else {\n              controlLog.push(1);\n            }\n          }\n        }\n      }\n      const sum = controlLog.reduce(function (a, b) {\n        return (a !== 0 ? a : 1) * (b !== 0 ? b : 1);\n      }, 0);\n      isAllZero === false\n        ? (rc.rc_score = sum.toFixed(2))\n        : (rc.rc_score = rc.rc_score);\n      for (let k = 0; k < segmentDetail.length; k++) {\n        if (\n          this.residualAssessmentData[index].rc_score >=\n            parseFloat(segmentDetail[k].start) &&\n          this.residualAssessmentData[index].rc_score <=\n            parseFloat(segmentDetail[k].end)\n        ) {\n          this.residualAssessmentData[this.expandedRCindex ?? 0].rc_segment =\n            segmentDetail[k];\n        }\n      }\n    });\n\n    this.segregateSegment();\n\n    if (this.isError) {\n      this.validate();\n    }\n  }\n\n  segregateSegment() {\n    this.residualAssessmentData.forEach((element: any) => {\n      const weightageStr = [\n        'likelihood',\n        'impact',\n        'velocity',\n        'vulnerability',\n      ];\n      let isAllZero = true;\n      const controlLog = [];\n      for (const [key, value] of Object.entries(element.rc_rating_reason)) {\n        const weightage =\n          this.manageRiskDetails?.riskDetails?.weightage_str[\n            weightageStr.indexOf(key)\n          ];\n        if (element.rc_rating_reason[key].rating > 0) {\n          isAllZero = false;\n        }\n        let x = 0;\n        if (this.manageRiskDetails.inherentRisk.IfAssessmentDone > 0) {\n          if (element.rc_rating_reason[key].rating) {\n            x =\n              (parseInt(element.rc_rating_reason[key].rating) === 0\n                ? 1\n                : parseInt(element.rc_rating_reason[key].rating)) *\n              (weightage / 100);\n            controlLog.push(x);\n          } else {\n            controlLog.push(element.rc_rating[key].score);\n          }\n        } else {\n          if (element.rc_rating_reason[key].rating > 0) {\n            x =\n              (parseInt(element.rc_rating_reason[key].rating) === 0\n                ? 1\n                : parseInt(element.rc_rating_reason[key].rating)) *\n              (weightage / 100);\n            controlLog.push(x);\n          } else {\n            controlLog.push(1);\n          }\n        }\n      }\n      console.log(controlLog);\n      const sum = controlLog.reduce(function (a, b) {\n        return (a !== 0 ? a : 1) * (b !== 0 ? b : 1);\n      }, 0);\n      isAllZero === false\n        ? (element.rc_score = sum.toFixed(2))\n        : (element.rc_score = element.rc_score);\n      const segmentDetails = this.manageRiskDetails.org_settings.segments;\n      for (let k = 0; k < segmentDetails.length; k++) {\n        if (\n          sum >= parseFloat(segmentDetails[k].start) &&\n          sum <= parseFloat(segmentDetails[k].end)\n        ) {\n          element.rc_segment = segmentDetails[k];\n        }\n      }\n    });\n    this.computeScore();\n  }\n  computeScore() {\n    let rcTotal = 0;\n    this.residualAssessmentData.forEach((element: any) => {\n      if (element.rc_score) {\n        rcTotal = rcTotal + parseFloat(element.rc_score);\n      }\n    });\n    this.appState.totalTreatmentScore =\n      rcTotal / this.residualAssessmentData.length;\n    //this.appState.totalTreatmentScore =  this.appState.totalTreatmentScore.toFixed(2);\n    this.checkPartialFill();\n  }\n  checkPartialFill() {\n    if (this.checkPartiallyFilled()) {\n      this.appState.completeDisabled = true;\n      this.appState.errorPanelMessage =\n        'To complete the residual risk assessment, please select the scores for each Responsibility Center that has a linked control.';\n    } else {\n      this.appState.completeDisabled = false;\n    }\n    console.log('ninja tunaaaaa', this.appState, this.residualAssessmentData);\n  }\n  checkPartiallyFilled() {\n    let enabledWeightage =\n      this.manageRiskDetails.riskDetails.weightage_str.filter(\n        (item: any) => item >= 10\n      );\n\n    for (let i = 0; i < this.residualAssessmentData.length; i++) {\n      let counter = 0;\n      for (const [key, valuex] of Object.entries(\n        this.residualAssessmentData[i].rc_rating\n      )) {\n        if (\n          this.manageRiskDetails.riskDetails.weightage_details[key].value >=\n            10 &&\n          this.residualAssessmentData[i].rc_rating_reason[key].rating > 0 &&\n          this.residualAssessmentData[i].treatment_score_log.length > 0\n        ) {\n          counter = counter + 1;\n        }\n      }\n      if (counter > 0 && counter !== enabledWeightage.length) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  async validate(mode: any = 'PARTIAL', action?: any) {\n    console.log('Partial', this.checkPartiallyFilled());\n    //  if(action === 'NEXT'){\n    //   if(this.checkIRSvsRRS() === true) {\n    //     this.isError = true;\n    //     this.appState.activeState = 'IRS_RRS';\n    //     return;\n    //   }\n    //  }\n    this.isError = false;\n    const weightageStr = ['likelihood', 'impact', 'velocity', 'vulnerability'];\n\n    await this.residualAssessmentData.forEach((element: any, index: number) => {\n      element.errors = [];\n      for (const [key, value] of Object.entries(element.rc_rating_reason)) {\n        // && element.treatment_score_log.length > 0\n\n        if (\n          !element.rc_rating_reason[key]?.rating &&\n          this.manageRiskDetails?.riskDetails?.weightage_str[\n            weightageStr.indexOf(key)\n          ] >= 10 &&\n          element.treatment_score_log.length > 0\n        ) {\n          element.errors.push(key);\n          this.isError = true;\n        }\n      }\n    });\n\n    if (mode == 'FULL') {\n      console.log('Fully Partial Events');\n      // && x.treatment_score_log.length > 0\n      if (this.isError) {\n        this.expandedRCindex = this.residualAssessmentData.findIndex(\n          (x: any) => x.errors.length > 0\n        );\n      }\n      if (!this.isError) {\n        if (action === 'NEXT') {\n          this.save(true, 0, true);\n        } else {\n          this.completeTreatment();\n        }\n      }\n    }\n  }\n\n  completeTreatment() {\n    console.log('comlete treatment ');\n    if (this.checkIRSvsRRS() === true) {\n      console.log('trrrrreeetttment irs vs', this.appState);\n      this.isError = true;\n      this.appState.activeState = 'IRS_RRS';\n      return;\n    } else {\n      const rcWithoutControl = this.residualAssessmentData.filter(\n        (rc: any) => rc.treatment_score_log.length === 0\n      );\n      this.appState.rcWithoutControl = rcWithoutControl;\n\n      if (rcWithoutControl.length) {\n        this.appState.activeState = 'RC_ERROR';\n        console.log('appstate', this.appState);\n      } else {\n        this.handleCompleteForAutomation();\n      }\n    }\n  }\n\n  rcAction(mode: any) {\n    if (mode === 'NO') {\n      this.appState.activeState = 'NORMAL';\n    } else if (mode === 'YES') {\n      this.appState.activeState = 'NORMAL';\n      this.handleCompleteForAutomation();\n    }\n  }\n\n  handleCompleteForAutomation() {\n    const automationStatus = this.checkForAutomation();\n\n    if (automationStatus.state === true) {\n      this.appState.activeState = 'AUTOMATION';\n      const stateIndex = automationStatus.data.response_strategy;\n\n      if (\n        (automationStatus.data.mitigation_priority > 0 ||\n          automationStatus.data.treatment_required > 0) &&\n        automationStatus.data.response_strategy === 0\n      ) {\n        this.appState.automationMessage =\n          'The risk mitigation priority will be updated in accordance with the predefined rules that have been set in the Risk Settings.';\n      } else {\n        this.appState.automationMessage = `This risk will now be moved to the <strong>'${this.riskStages[stateIndex]}'</strong>\n       state based on the automation criteria set by <strong>${this.manageRiskDetails.org_settings.automation_set_by_name}</strong>.`;\n      }\n    } else {\n      this.save(\n        this.dueDateDetails?.IfTreatmentDoneByLoggedInMember === 0\n          ? true\n          : false,\n        0\n      );\n    }\n  }\n\n  showStrategy(dueDate: any) {\n    if (dueDate.dueDateStatus.toUpperCase() === 'OPEN') {\n      if (\n        !['OVERSIGHT'].includes(\n          this.manageRiskDetails?.riskDetails?.LoginMemberType\n        )\n      ) {\n        const ref = this.dialogService\n          .open(ResponseStrategyDialogComponent, {\n            data: {\n              dueDateDetails: dueDate,\n              riskInfo: this.manageRiskDetails,\n              initialStage:\n                dueDate.responseStrategyDetails.responseStrategyState,\n            },\n            position: 'RIGHT',\n            background: 'black',\n          })\n          .afterClosed.subscribe((res: any) => {\n            this.quickviewService.actionEmitter$.next({\n              eventType: 'REFRESH_RISK_DETAILS',\n              payload: '',\n            });\n          });\n      } else {\n        this.quickviewService.actionEmitter$.next({\n          eventType: 'REFRESH_RISK_DETAILS',\n          payload: '',\n        });\n      }\n    }\n  }\n\n  changeAutomationType(event: any) {\n    console.log('eventt=>', event);\n    this.appState.automationType = event;\n  }\n\n  handleAutomation(evt: any) {\n    this.appState.activeState = 'NORMAL';\n    if (evt === 'YES') {\n      if (this.appState?.automationType === 'move') {\n        this.save(\n          this.dueDateDetails.is_treatment_present === 0 ? true : false,\n          1\n        );\n      } else if (this.appState?.automationType === 'complete') {\n        this.save(\n          this.dueDateDetails.is_treatment_present === 0 ? true : false,\n          0\n        );\n      }\n    }\n  }\n  checkForAutomation(): any {\n    if (\n      !this.manageRiskDetails.riskDetails.workshop_id &&\n      this.manageRiskDetails.org_settings.risk_automation_enable === 1 &&\n      this.manageRiskDetails.org_settings.risk_automation.length > 0\n    ) {\n      for (const AUTOMATION of this.manageRiskDetails.org_settings\n        .risk_automation) {\n        if (\n          AUTOMATION.appetite_id ===\n          this.manageRiskDetails.riskDetails.riskAppetite.appetite_id\n        ) {\n          console.log('Ninja Tuna');\n          if (AUTOMATION.residual_automation_enable === 1) {\n            for (const RESIDUAL of AUTOMATION.residual_automation) {\n              console.log(RESIDUAL);\n              if (\n                RESIDUAL.mitigation_priority > 0 ||\n                RESIDUAL.response_strategy > 0 ||\n                RESIDUAL.treatment_required > 0\n              ) {\n                if (RESIDUAL.start === 0) {\n                  if (\n                    this.appState.totalTreatmentScore >= RESIDUAL.start &&\n                    this.appState.totalTreatmentScore <= RESIDUAL.end\n                  ) {\n                    return { state: true, data: RESIDUAL };\n                  }\n                } else {\n                  if (\n                    this.appState.totalTreatmentScore > RESIDUAL.start &&\n                    this.appState.totalTreatmentScore <= RESIDUAL.end\n                  ) {\n                    return { state: true, data: RESIDUAL };\n                  }\n                }\n              }\n            }\n          } else {\n            return { state: false };\n          }\n        }\n      }\n    } else {\n      return { state: false };\n    }\n    return { state: false };\n  }\n  checkIRSvsRRS() {\n    this.appState.completeError = false;\n    if (\n      this.dueDateDetails?.completionDetails.ifAssessmentDoneByLoggedInMember ==\n      0\n    ) {\n      return false;\n    } else {\n      if (\n        parseFloat(this.dueDateDetails?.scores?.obtainedInherentScore) <\n        parseFloat(this.appState.totalTreatmentScore.toFixed(2))\n      ) {\n        this.appState.completeError = true;\n        return true;\n      } else {\n        return false; // false;\n      }\n    }\n  }\n\n  setAllRCSameValue() {\n    this.quickviewService\n      .RCApplyToggle({\n        dueDateId: this.dueDateDetails?._id,\n        rrRCToggleEnable: this.isApplySame,\n      })\n      .subscribe({\n        next: (res: any) => {\n          console.log('RCApplyToggle updated for residual risk assessment');\n          this.isApplySame = res?.rr_rc_toggle == 1 ? true : false;\n        },\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<div class=\"residual-form-dialog\">\n    <div (click)=\"showGuide()\" *ngIf=\"!hideGuide\" class=\"view-label-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pt-2 vx-pb-2 vx-m-0 vx-lh-6\">VIEW RISK FACTOR RATING GUIDE</div>\n    <div class=\"residual-form-dialog-heading vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-mb-5\">\n        <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">Residual Risk Assessment</div>\n        <button (click)=\"closeForm()\" class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'[Esc] to close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i></button>\n    </div>\n\n    <div class=\"residual-form-dialog-mid vx-pl-4 vx-pr-4\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2 vx-lh-4 vx-pl-4 vx-pr-4\">RESPONSIBILITY CENTER(S)<span class=\"vx-fs-16 vx-txt-red vx-ml-1\">*</span></div>\n        <div *ngIf=\"residualAssessmentData?.length > 1\" class=\"vx-d-flex vx-align-center vx-mb-2 vx-lh-4 vx-pl-4 vx-pr-4\">\n            <app-cs-switch #sameResponsibility (ngValueChange)=\"applySameRating($event)\" [ngValue]=\"isApplySame\"></app-cs-switch>\n            <div class=\"vx-fs-11 vx-label-txt vx-tt-uppercase vx-ml-3\">APPLY SAME RISK RATINGS TO ALL RESPONSIBILITY CENTRES BELOW</div>\n            <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"applySameForAllRCDialog\" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n        </div>\n        <div class=\"residual-form-dialog-mid-inner vx-pl-4 vx-pr-4\" [class.with-apply-rc]=\"residualAssessmentData?.length > 1\" [class.with-error]=\"isError\">\n            <div  *ngFor=\"let rcData of residualAssessmentData; let i = index\" class=\"control-item vx-mb-2\" [class.active]=\"expandedRCindex === i\" [class.with-value]=\"rcData?.rc_score\" [class.error]=\"rcData?.errors?.length > 0\">\n                <div (click)=\"changeExpandedIndex(i)\" class=\"control-item-top vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n                    <div class=\"control-item-top-left vx-d-flex vx-align-center\">\n                        <div class=\"icon-area vx-fs-12 vx-paragraph-txt vx-d-flex vx-align-center vx-justify-center vx-mr-3\">\n                            <i class=\"icons\">&#xe908;</i>\n                        </div>\n                        <div class=\"vx-d-block\">\n                            <div class=\"control-name vx-fs-13 vx-label-txt\" [appTooltip]=\"rcData?.rcDetails?.rc_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rcData?.rcDetails?.rc_name}}</div>\n                            <div class=\"within-part vx-d-flex vx-align-center\" *ngIf=\"rcData?.rcDetails?.parent_rc?.length > 0\">\n                                <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-1 vx-lh-3\">Within</div>\n                                <div class=\"value vx-fs-12 vx-paragraph-txt\" [appTooltip]=\"rcData?.rcDetails?.parent_rc\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rcData?.rcDetails?.parent_rc}}</div>\n                              </div>\n                        </div>\n                    </div>\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <div *ngIf=\"rcData?.rc_score\" class=\"control-value vx-d-flex vx-align-center vx-p-1 vx-mr-2\">\n                            <div *ngIf=\"false\" class=\"vx-fs-11 vx-fw-500 vx-label-txt\">--</div>\n                                <ng-container *ngIf=\"rcData?.rc_score | segmentFinder: manageRiskDetails?.org_settings?.segments as segment\">\n                                    <div class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt vx-text-center\">{{rcData?.rc_score}}</div>\n                                    <div class=\"separator vx-mr-1\"></div>\n                                    <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"\n                                    [appTooltip]=\"segment?.segment_name\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                    [ngStyle]=\"{\n                                        color: segment?.segment_color,\n                                        backgroundColor: segment?.segment_color + '1A'\n                                    }\">{{ segment?.segment_name }}</div>\n                                </ng-container>\n                        </div>\n                        <i *ngIf=\"rcData?.errors?.length > 0\" class=\"icons error-icon vx-fs-16 vx-mr-2\"\n                            appTooltip\n                            [appTooltip]=\"'Please select the scores for all the risk factors.'\"\n                            placement=\"bottom-right\"\n                            type=\"black\"\n                            delay=\"0\"\n                            [tooltipMandatory]=\"true\">&#xe930;</i>\n                        <i class=\"icons arrow vx-fs-14 vx-paragraph-txt\">\n                            <ng-container  *ngIf=\"expandedRCindex !== i\">&#xe970;</ng-container>\n                            <ng-container *ngIf=\"expandedRCindex === i\">&#xe9e8;</ng-container>\n                        </i>\n                    </div>\n                </div>\n\n                <ng-container *ngIf=\"expandedRCindex === i\">\n                    <ng-container *ngFor=\"let scoreCriteria of residualAssessmentData[expandedRCindex]?.rc_rating_reason | keyvalue: originalOrder; let k= index\">\n                        <div class=\"control-item-selection vx-pt-3 vx-pl-3\" *ngIf=\"manageRiskDetails?.riskDetails?.weightage_str[k] >= 10\">\n                                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-3\">{{scoreCriteria?.key}}<span class=\"vx-paragraph-txt vx-ml-1\">(WEIGHTAGE: <span class=\"vx-fw-600\">{{ manageRiskDetails?.riskDetails?.weightage_str[i] }}%</span>)</span></div>\n                                <div class=\"selection-item vx-mb-4\" *ngFor=\"let scores of manageRiskDetails?.org_settings?.scoring_criteria_keys[scoreCriteria?.key]; let j = index\">\n                                <app-cs-radio\n                                [name]=\"scoreCriteria?.key\"\n                                [checked]=\"residualAssessmentData[expandedRCindex]?.rc_rating_reason[scoreCriteria?.key]?.rating === j + 1\"\n                                (checkedEvent)=\"valueSelected(j + 1, scoreCriteria?.key);lastManipulatedRCIndex = i\">\n                                        <span class=\"vx-fs-11 vx-fw-500 vx-tt-uppercase\" [style.color]=\"scores?.color\">{{ j + 1 }} - {{ scores?.value }}</span>\n                                    </app-cs-radio>\n                                    <vcomply-editor *ngIf=\"residualAssessmentData[expandedRCindex]?.rc_rating_reason[scoreCriteria?.key]?.rating === j+1\"\n                                    [(ngModel)]=\"residualAssessmentData[expandedRCindex].rc_rating_reason[scoreCriteria.key].reason\"\n                                    [editorConfig]=\"{ maxHeight: '150px', placeholder: 'Add Comments' }\"\n                                    ></vcomply-editor>\n                                </div>\n                        </div>\n                    </ng-container>\n\n                </ng-container>\n            </div>\n        </div>\n    </div>\n\n<app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n    <div *ngIf=\"isError && appState?.activeState==='NORMAL'\" class=\"residual-form-dialog-error vx-fs-12 vx-txt-white vx-d-flex vx-align-center vx-mt-4\">\n        <i class=\"icons vx-fs-16 vx-mr-2\">&#xe930;</i>Please select the scores for all the risk factors.\n    </div>\n    <div *ngIf=\"appState?.activeState === 'IRS_RRS'\" class=\"residual-form-dialog-error vx-fs-12 vx-txt-white vx-d-flex vx-align-center vx-mt-4\">\n        <i class=\"icons vx-fs-16 vx-mr-2\">&#xe930;</i>The residual risk score cannot exceed the inherent risk score.\n\n    </div>\n    <!-- when error apper then with-error class was active -->\n    <div class=\"residual-form-dialog-calculate vx-d-flex vx-align-center vx-justify-between vx-mt-4\" [class.with-error]=\"isError\">\n        <div class=\"vx-fs-11 vx-paragraph-txt vx-tt-uppercase\">YOUR RESIDUAL RISK RATING:</div>\n        <div class=\"calculate-area vx-d-flex vx-align-center vx-justify-center\">\n            <div class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt\">{{ appState?.totalTreatmentScore > 0 ? (appState?.totalTreatmentScore | number: '1.0-2') : '--' }}</div>\n            <ng-container *ngIf=\"appState?.totalTreatmentScore > 0 && (appState?.totalTreatmentScore | segmentFinder: manageRiskDetails?.org_settings?.segments) as score\">\n                <div class=\"separator vx-mr-1\"></div>\n                <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"score?.segment_name\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"  [ngStyle]=\"{\n                    color: '#ffffff',\n                    backgroundColor: score?.segment_color\n                  }\">{{ score?.segment_name }}</div>\n            </ng-container>\n        </div>\n    </div>\n\n\n    <!-- footer button section -->\n    <div class=\"residual-form-dialog-btn vx-d-flex vx-align-center vx-justify-center\">\n        <ng-container *ngIf=\"!dueDateDetails?.completionDetails?.isTreatmentCompleted\">\n            <button class=\"white-btn vx-fs-14 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\" (click)=\"save(1, 0)\">SAVE FOR LATER</button>\n            <button class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\" (click)=\"validate('FULL', 'NEXT')\">NEXT <i class=\"icons arrow-icon vx-fs-20 vx-txt-white\">&#xe91e;</i></button>\n        </ng-container>\n        <button *ngIf=\"dueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\"  (click)=\"validate('FULL', null)\">Complete <i class=\"icons arrow-icon vx-fs-20 vx-txt-white\">&#xe91e;</i></button>\n    </div>\n\n\n    <vc-bottom-confirmation-popup *ngIf=\"applySameRatingPopup\" [message]=\"!isApplySame ? RISK_QUICKVIEW_PROPERTIES.riskTreatment.enableSameRating : RISK_QUICKVIEW_PROPERTIES.riskTreatment.disableSameRating\"\n    (action)=\"applySameRatingHandler($event)\"></vc-bottom-confirmation-popup>\n\n    <vc-no-control-bottom-confirmation-popup *ngIf=\"appState?.activeState === 'RC_ERROR'\" [rcWithoutControl]=\"appState?.rcWithoutControl\" (action)=\"rcAction($event)\"></vc-no-control-bottom-confirmation-popup>\n    <vc-bottom-confirmation-popup *ngIf=\"appState?.activeState === 'AUTOMATION'\" (actionType)=\"changeAutomationType($event)\" [radioButton]=\"automationRadio\" [iconDetails]=\"{code:'&#xea7c;', color:'blue'}\" [message]=\"appState?.automationMessage\" (action)=\"handleAutomation($event)\"></vc-bottom-confirmation-popup>\n\n</div>\n\n\n<!-- Risk rating guide -->\n<div class=\"hide-area\" *ngIf=\"hideGuide\" [class.animate]=\"animation\">\n    <div (click)=\"closeGuide()\" class=\"view-label-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pt-2 vx-pb-2 vx-m-0 vx-lh-6\">CLOSE RISK FACTOR RATING GUIDE</div>\n    <lib-rating-guide [manageRiskDetails]=\"manageRiskDetails\"></lib-rating-guide>\n</div>\n<!-- <vc-bottom-confirmation-popup *ngIf=\"automationEnabled\" [radioButton]=\"automationRadio\" [message]=\"automationMessage\"  (actionType)=\"onSelected($event)\" (action)=\"closeConfirmation($event)\"></vc-bottom-confirmation-popup> -->\n","import { emit } from 'process';\nimport { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-floating-bar',\n  templateUrl: './floating-bar.component.html',\n  styleUrls: ['./floating-bar.component.less']\n})\nexport class FloatingBarComponent implements OnInit {\n  @Input() selected: any = '';\n  @Output() closeEmitter = new EventEmitter<boolean>();\n  @Output() removeSelectedEmitter = new EventEmitter<void>();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  close(event: boolean) {\n    this.closeEmitter.emit(event);\n  }\n\n  removeSelected(){\n    this.selected = '';\n    this.removeSelectedEmitter.emit();\n  }\n}\n","<div class=\"floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n  <div class=\"floating-bar-left vx-d-flex vx-align-center\">\n    <div *ngIf=\"false\" class=\"value vx-fs-12 vx-paragraph-txt\"> name </div>\n    <div *ngIf=\"selected\" class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6 vx-mr-1\">\n      <i class=\"icons vx-mr-1\" (click)=\"removeSelected()\" >&#xe9ae;</i> {{selected}}\n    </div>\n  </div>\n    <div class=\"floating-bar-right vx-d-flex vx-align-center\">\n      <ng-container *ngIf=\"true\">\n        <button class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\" (click)=\"close(false)\">CANCEL</button>\n        <button class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white\" (click)=\"close(true)\" [class.disabled]=\"!this.selected?.length\" >NEXT <i class=\"icons vx-ml-2\">&#xe91e;</i></button>\n      </ng-container>\n    </div>\n  </div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'search'\n})\nexport class SearchPipe implements PipeTransform {\n\n  /**\n   * The function takes in two arguments, the first is the array of objects that you want to filter,\n   * the second is the search term. The function then loops through the array and returns a new array\n   * with only the objects that contain the search term in any of their properties\n   * @param {any} value - The array to be filtered.\n   * @param {any} [args] - The search text.\n   * @returns The filter method returns boolean value if the search term is present then true else false.\n   */\n  transform(value: any, args?: any): any {\n    if (!value) {\n      return null;\n    }\n    if (!args) {\n      return value;\n    }\n    args = args.toLowerCase();\n    return value.filter((item: any) => {\n      return JSON.stringify(item).toLowerCase().includes(args);\n    });\n  }\n\n}\n","import { filter } from 'rxjs/operators';\nimport { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\n// import { RiskWorkroomService } from '../services/risk-workroom.service';\nimport { QuickViewService } from '../services/quick-view.service';\n\n@Component({\n  selector: 'app-user-list',\n  templateUrl: './user-list.component.html',\n  styleUrls: ['./user-list.component.less']\n})\nexport class UserListComponent implements OnInit {\n  animation!: boolean;\n  usersList:any;\n  searchText: string = '';\n  loader: boolean = false;\n\n  @Input() selectedUser: any = {};\n  @Output() close_user_list = new EventEmitter<boolean>();\n  constructor(\n    // private riskService:RiskWorkroomService,\n    private quickViewService: QuickViewService\n    ) { }\n\n  ngOnInit(): void {\n    this.getUsers();\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  close(event: boolean) {\n    if(event){\n      this.close_user_list.emit(this.selectedUser);\n    }\n    else{\n      this.close_user_list.emit();\n    }\n  }\n\n  removeSelectedUser() {\n    this.selectedUser = {};\n  }\n\n  getUsers() {\n    this.loader = true;\n    this.quickViewService.getOrganisationUsers().subscribe((res)=>{\n    this.usersList = res;\n    this.loader = false;\n    })\n  }\n\n  select(data:any){\n    this.selectedUser = data;\n  }\n\n}\n","<div class=\"form-dialog-left\" [class.animate]=\"animation\">\n    <div class=\"form-dialog-left-heading vx-d-flex vx-align-center vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-fs-14 vx-fw-500 vx-lable-txt\">Select User(s)</div>\n\n    <div class=\"form-dialog-left-container vx-pl-4 vx-pr-4\">\n        <ng-container>\n            <div class=\"form-dialog-left-inner vx-pt-3 vx-pl-4 vx-pr-4\">\n                <div class=\"form-dialog-left-search vx-mb-1\">\n                    <i class=\"icons vx-fs-12\">&#xe90b;</i>\n                    <input type=\"text\" placeholder=\"Search user\" [(ngModel)]=\"searchText\" />\n                </div>\n                <!-- <app-pagination></app-pagination> -->\n                <div class=\"form-dialog-left-mid vx-mt-2\">\n                    <ng-container>\n                        <!-- <div class=\"user-list-select vx-mb-2\">\n                            <app-cs-radio (ngValueChange)=\"selectAll($event)\">\n                                <div class=\"user-name vx-label-txt\">Select All</div>\n                            </app-cs-radio>\n                            <app-cs-radio *ngIf=\"false\">\n                                <div class=\"user-name vx-label-txt\">Deselect All</div>\n                            </app-cs-radio>\n                        </div> -->\n                        <div class=\"user-list-item\">\n                            <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\n                                <li class=\"vx-mb-2\" *ngFor=\"let data of usersList | search : searchText\">\n                                    <app-cs-radio [value]=\"data?.member_name\" [checked]=\"data?.member_id == selectedUser?.member_id\" (checkedEvent)=\"select(data)\">\n                                        <div class=\"user-name\" [appTooltip]=\"data?.member_email\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{data?.member_name}}</div>\n                                    </app-cs-radio>\n                                </li>\n                            </ul>\n                        </div>\n                    </ng-container>\n    \n                    <ng-container *ngIf=\"(!usersList?.length || !(usersList | search : searchText).length) && !loader\">\n                        <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/quick-view/search-data.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\n                    </ng-container>\n                </div>\n            </div>\n            <app-floating-bar \n            (closeEmitter)=\"close($event)\"\n            (removeSelectedEmitter)=\"removeSelectedUser()\"\n            [selected]=\"selectedUser?.member_name\"\n            ></app-floating-bar>\n        </ng-container>\n        <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n    </div>\n</div>","// import { RiskWorkroomService } from './../services/risk-workroom.service';\nimport {\n  Component,\n  EventEmitter,\n  HostListener,\n  OnDestroy,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { EditorConfig } from '@vcomply/editor';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { DatePipe } from '@angular/common';\nimport moment from 'moment';\nimport { DialogRef } from '../../ui-kit/dialog/dialog-ref';\nimport { DialogConfig } from '../../ui-kit/dialog/dialog-config';\nimport { AuthService } from '../services/auth.service';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { QuickViewService } from '../services/quick-view.service';\nimport { SubSink } from '../../subsink.class';\n\n@Component({\n  selector: 'qv-create-control',\n  templateUrl: './create-control.component.html',\n  styleUrls: ['./create-control.component.less'],\n})\nexport class CreateControlNotOnVComplyComponent implements OnInit, OnDestroy {\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  datepickerOverlay = false;\n  userName: string = '';\n  hideUser = false;\n  dateConfig: any = {};\n  date = new Date();\n  userDetails: any = {};\n  isUserEdit = false;\n  selectedUser: any = {};\n  addControls: any = {\n    not_vcomply_user: '',\n    title: '',\n    description: '',\n    date: '',\n  };\n  isLoader = false;\n  pageName: any;\n  dateValue!: string;\n  subscriptions: SubSink = new SubSink();\n\n  constructor(\n    private dialog: DialogRef,\n    private dialogConfig: DialogConfig,\n    // private riskService:RiskWorkroomService,\n    private auth: AuthService,\n    private snackbar: SnackBarService,\n    private datePipe: DatePipe,\n    private quickViewService: QuickViewService\n  ) {\n    this.dateConfig = {\n      disableKeypress: true,\n      format: 'DD MMM YYYY',\n      min: moment(),\n    };\n    this.addControls.date =\n      this.datePipe?.transform(\n        this.date?.setDate(this.date?.getDate())?.toString(),\n        'dd MMM yyyy'\n      ) ?? '';\n    this.pageName = this.dialogConfig.data.pageName;\n  }\n\n  errorInfo = {\n    title: '',\n    userName: '',\n    due_date_timestamp: '',\n  };\n\n  ngOnInit(): void {\n    this.dateValue = moment().format('DD MMM YYYY');\n    this.subscriptions.add(\n      this.auth?.getUserInfo?.subscribe((res: any) => {\n        this.userDetails = res;\n        console.log('this.userDetails in create control', this.userDetails);\n      })\n    );\n  }\n\n  close() {\n    this.dialog.close(false);\n  }\n\n  /* This is a decorator that listens to the keydown event on the form to close form on escape key down. */\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\n    event: KeyboardEvent\n  ) {\n    this.close();\n  }\n\n  editorConfig: EditorConfig = {\n    placeholder: 'Add description',\n  };\n\n  /**\n   * If the event is truthy, then set the selectedUser to the event, set the userName to the event's\n   * member_name, set the errorInfo.userName to an empty string, and set the\n   * addControls.not_vcomply_user to an empty string.\n   *\n   * If the event is falsy, then do nothing.\n   * @param {any} event - any - the event that is triggered when a user is selected from the dropdown\n   */\n  getSelectedUser(event: any) {\n    if (event) {\n      this.selectedUser = event;\n      this.userName = event?.member_name;\n      this.errorInfo.userName = '';\n      this.addControls.not_vcomply_user = '';\n    }\n  }\n\n  removeUser() {\n    this.selectedUser = {};\n    this.userName = '';\n  }\n\n  openDatePicker() {\n    this.datePicker.api.open();\n    this.datepickerOverlay = true;\n  }\n\n  closeDatepicker() {\n    this.datePicker.api.close();\n    this.datepickerOverlay = false;\n  }\n\n  showUser() {\n    this.hideUser = true;\n  }\n\n  /**\n   * Validating the form input fields\n   * @param {string} event - string -&gt; the value of the input field\n   * @param {string} type - string -&gt; this is the type of the input field\n   */\n  validate(event: string, type: string) {\n    switch (type) {\n      case 'not_vcomply_user':\n        this.addControls.not_vcomply_user = event.trim();\n        if (this.addControls.not_vcomply_user) {\n          this.errorInfo.userName = '';\n        }\n        break;\n      case 'title':\n        this.addControls.title = event.trim();\n        if (this.addControls.title) {\n          this.errorInfo.title = '';\n        }\n        break;\n      case 'description':\n        this.addControls.description = event.trim();\n        break;\n      case 'date':\n        this.addControls.date = event;\n        if (this.addControls?.date) {\n          this.errorInfo.due_date_timestamp = '';\n        }\n        break;\n      default:\n    }\n  }\n\n  get isValid() {\n    return (\n      ((this.userName && Object.keys(this.selectedUser)?.length) ||\n        this.addControls?.not_vcomply_user) &&\n      this.addControls?.title &&\n      this.addControls?.date\n    );\n  }\n\n  focusOut(type: string) {\n    if (\n      type === 'USER' &&\n      !this.userName &&\n      !Object.keys(this.selectedUser)?.length &&\n      !this.addControls?.not_vcomply_user\n    ) {\n      this.errorInfo.userName =\n        'Select the person responsible for completing this control.';\n    }\n    if (type === 'TITLE' && !this.addControls?.title) {\n      this.errorInfo.title = 'Enter a value for this input box.';\n    }\n    if (type === 'DATE' && !this.addControls?.date) {\n      this.errorInfo.due_date_timestamp =\n        'Select the date on which this control was completed or will be completed.';\n    }\n  }\n\n  /**\n   * Set the payload to an object with the following properties:\n   *\n   * control_name: the addControls.title\n   * not_vcomply_user: the addControls.not_vcomply_user or an empty string when vcomply_user is selected\n   * description: description is added\n   * assignee_id: the object id of selected vcomply user or an empty string if no user selected\n   * due_date_timestamp: utc timestamp of the selected date (previous dates can be selected)\n   * created_by: the object id of the user creating the control\n   *\n   * createNotOnVcomplyControl: API call to controls create not on vcomply\n   */\n  saveNotOnVcomply() {\n    if (\n      !this.userName &&\n      !Object.keys(this.selectedUser)?.length &&\n      !this.addControls?.not_vcomply_user\n    ) {\n      this.errorInfo.userName =\n        'Select the person responsible for completing this control.';\n    }\n    if (!this.addControls?.title) {\n      this.errorInfo.title = 'Enter a value for this input box.';\n    }\n    if (!this.addControls?.date) {\n      this.errorInfo.due_date_timestamp =\n        'Select the date on which this control was completed or will be completed.';\n    }\n    if (this.isValid && !this.hideUser) {\n      if (Object.keys(this.selectedUser)?.length) {\n        this.addControls.not_vcomply_user = '';\n      }\n      this.isLoader = true;\n      let payload = {\n        control_name: this.addControls?.title,\n        not_vcomply_user: this.addControls?.not_vcomply_user ?? '',\n        description: this.addControls?.description ?? '',\n        assignee_id: this.selectedUser?._id ?? '',\n        due_date_timestamp: Date.parse(this.addControls?.date),\n        created_by: this.userDetails?._id,\n        risk_source:\n          this.pageName == 'Treatment Plan' ? 'TREATMENT_PLAN' : 'CONTROL',\n      };\n      this.quickViewService.createNotOnVcomplyControl(payload).subscribe(\n        (res: any) => {\n          this.isLoader = false;\n          if (this.pageName == 'Treatment Plan') {\n            this.snackbar.show(\n              'Treatment Plan not on V-Comply created successfully',\n              'success'\n            );\n          } else {\n            this.snackbar.show(\n              'Control not on V-Comply created successfully',\n              'success'\n            );\n          }\n          this.close();\n        },\n        (error) => {\n          this.isLoader = false;\n          this.snackbar.show(\n            'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n            'warning'\n          );\n          this.close();\n        }\n      );\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<div class=\"form-dialog\">\n    <div class=\"form-dialog-heading vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-mb-5\">\n        <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">Add {{pageName == \"Treatment Plan\" ? 'Treatment Plan' : 'Control'}} Not in VComply</div>\n        <button class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"close()\" [class.disabled]=\"false\" [appTooltip]=\"'[Esc] to close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i></button>\n    </div>\n    <div class=\"form-dialog-mid vx-pb-5\">\n        <ng-container>\n            <div class=\"from-group vx-mt-1 vx-mb-5\" [class.disable]=\"hideUser\" [class.active]=\"hideUser\">\n                <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">WHO? <span class=\"required vx-fs-16 vx-fw-400 vx-txt-red\">*</span></label>\n                <div (click)=\"showUser()\" class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-3\" *ngIf=\"!userName || userName == '' \" [class.error]=\"false\">\n                    <span class=\"vx-fs-13 vx-paragraph-txt\">Select a user</span>\n                    <i class=\"icons arrow vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n                </div>\n                <div class=\"after-select vx-d-flex vx-align-center vx-justify-between vx-p-2\" *ngIf = \"userName && !addControls?.not_vcomply_user\">\n                    <div class=\"chip-container vx-d-flex vx-align-center\">\n                        <span class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6\">\n                            <i class=\"icons vx-fs-10 vx-mr-1\" (click)=\"removeUser()\">&#xe9ae;</i> {{userName}}\n                        </span>\n                        <!-- <button class=\"count vx-fs-13 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-pl-2 vx-pr-2 vx-ml-1\" appPopover (click)=\"countUser.popover()\" placement=\"right\">+4</button>\n    \n                        <app-popover #countUser [dontCloseonClick]=\"true\">\n                            <div class=\"action-list\">\n                              <ul class=\"action-item\">\n                                <li *ngFor=\"let data of usersList\">\n                                  <div class=\"avatar-card\"><span class=\"value\"><i class=\"icons\">&#xe90d;</i></span></div>\n                                </li>\n                              </ul>\n                            </div>\n                        </app-popover> -->\n                    </div>\n                    <button class=\"edit-btn vx-fs-11 vx-fw-500 vx-lh-6 vx-txt-blue vx-tt-uppercase vx-d-flex vx-align-center vx-m-0 vx-p-1\" *ngIf=\"!hideUser\" (click)=\"showUser()\"><i class=\"icons vx-fs-8 vx-mr-1\">&#xe9ba;</i> EDIT</button>\n                </div>\n                <div *ngIf=\"!userName\" class=\"or-input vx-mt-2\">\n                    <div class=\"orDiv vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\">or</div>\n                    <input type=\"text\" placeholder=\"Tag a non-VComply user\" [ngModel] = \"addControls.not_vcomply_user\" (ngModelChange)=\"validate($event, 'not_vcomply_user') \" (focusout)=\"focusOut('USER')\" [class.error]=\"false\" />\n                </div>\n                <div *ngIf=\"true\" class=\"error-msg vx-fs-11 vx-txt-red\">{{errorInfo?.userName}}</div>\n            </div>\n            <div class=\"from-group vx-mt-1 vx-mb-5\" [class.disable]=\"hideUser\" [class.active]=\"false\">\n                <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">WHAT? <span class=\"required vx-fs-16 vx-fw-400 vx-txt-red\">*</span></label>\n                <input type=\"text\" placeholder=\"Add a {{pageName == 'Treatment Plan' ? 'Treatment' : 'control'}} name\" [ngModel]=\"addControls.title\" (ngModelChange)=\"validate($event, 'title')\" [class.error]=\"false\" (focusout)=\"focusOut('TITLE')\" />\n                <div *ngIf=\"!addControls?.title\" class=\"error-msg vx-fs-11 vx-txt-red\">{{errorInfo?.title}}</div>\n            </div>\n            <div class=\"from-group vx-mt-1 vx-mb-5\" [class.disable]=\"hideUser\" [class.active]=\"false\">\n                <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">DESCRIPTION</label>\n                <vcomply-editor [editorConfig]=\"editorConfig\" [ngModel]=\"addControls.description\" (focusout)=\"focusOut('DATE')\" (ngModelChange)=\"validate($event, 'description')\"></vcomply-editor>\n            </div>\n            <div class=\"from-group vx-mt-1 vx-mb-5\" [class.disable]=\"hideUser\" [class.active]=\"false\">\n                <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">WHEN? <span class=\"required vx-fs-16 vx-fw-400 vx-txt-red\">*</span></label>\n                <div class=\"deadline-area vx-d-flex vx-align-center vx-justify-between\">\n                    <div class=\"input-group datepicker vx-d-flex vx-align-center vx-p-3 vx-pl-4 vx-pr-3 vx-w-100\">\n                        <i class=\"icons\">&#xe92d;</i>\n                        <span class=\"datePicker vx-fs-13 vx-paragraph-txt vx-pl-2 vx-w-100\" (click)=\"openDatePicker()\" placeholder=\"Select Date\">{{ addControls?.date | date: 'dd MMM yyyy' }}</span>\n                        <dp-date-picker #datePicker placeholder=\"Select a date\" [config]=\"dateConfig\" [displayDate]=\"date?.getDate()?.toString()\" [ngModel]=\"addControls.date\" (ngModelChange)=\"validate($event, 'date')\"></dp-date-picker>\n                        <div class=\"overlay\" (click)=\"closeDatepicker()\" *ngIf=\"datepickerOverlay\"></div>\n                    </div>\n                </div>\n                <div *ngIf=\"!this.addControls?.date\" class=\"error-msg vx-fs-11 vx-txt-red\">{{errorInfo.due_date_timestamp}}</div>\n            </div>\n        </ng-container>\n        <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n    </div>\n    <div class=\"form-dialog-btn vx-d-flex vx-align-center vx-mt-4\">\n        <button class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"saveNotOnVcomply()\" [class.disabled]=\"!isValid || hideUser\">CREATE</button>\n    </div>\n</div>\n\n<app-user-list *ngIf=\"hideUser\" [selectedUser]=\"selectedUser\" (close_user_list)=\"hideUser = !hideUser; getSelectedUser($event)\"></app-user-list>","import { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n  standalone: true,\n  selector: 'app-table-card-loader',\n  templateUrl: './table-card-loader.component.html',\n  styleUrls: ['./table-card-loader.component.less'],\n  imports: [CommonModule, FormsModule ]\n})\nexport class TableCardLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"table-card-loader vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\">\n    <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\n\n@Component({\n  selector: 'app-pagination',\n  templateUrl: './pagination.component.html',\n  styleUrls: ['./pagination.component.less']\n})\nexport class PaginationComponent implements OnInit, OnChanges {\n  currPage = 1;\n  @Input() from: number = 1;\n  @Input() to: number = 30;\n  @Input() total: any = 100;\n  @Input() showPageDetail: boolean = true\n  totalPage: number = 1;\n  @Input('currentPage') set setPage(page: any) {\n    this.currPage = page;\n    this.displayArrayUpdate(page);\n  }\n\n  @Input('totalPage') set setTotalPage(page: any) {\n    this.totalPage = page;\n    this.startArray();\n  }\n\n  pageInSingleView: number = 5;\n  // @Input() pageInSingleView: number = 5;\n  @Input('pageInSingleView') set setPageArray(size: any) {\n    this.pageInSingleView = size;\n    this.startArray();\n  }\n  @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>()\n  public displayArray: Array<number> = []\n  enterPageNo!: number | any;\n  enterPressed = false;\n  isInvalidInput: boolean = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    \n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n\n    // this.displayArrayUpdate(this.currPage);\n    // this.startArray();\n  }\n\n  //Function responsible to generate the array to display the pagination at the beginning\n  startArray() {\n    this.displayArray = [];\n    if (this.totalPage <= this.pageInSingleView) {\n      for (let i = 1; i <= this.totalPage; ++i) {\n        this.displayArray.push(i);\n      }\n    } else if (this.pageInSingleView < this.totalPage) {\n      for (let i = 1; i <= this.pageInSingleView; ++i) {\n        this.displayArray.push(i);\n      }\n    }\n  }\n\n  //Function responsible for update the current page while clicking prev or next button\n  currentIndexUpdate(value: number) {\n    this.currPage += value\n    if (this.currPage <= this.totalPage && this.currPage > this.pageInSingleView - Math.floor(this.pageInSingleView / 2) && this.totalPage > this.pageInSingleView) {\n      this.displayArrayUpdate(this.currPage)\n    } else if (this.currPage <= this.pageInSingleView) {\n      this.displayArray = [];\n      this.startArray()\n    }\n    this.pageChanged.emit(this.currPage);\n    this.enterPageNo=null;\n    this.enterPressed = false;\n    \n  }\n\n  //Function responsible for updating the current page while clicking on any page number\n  currentIndexAssign(value: number) {\n    this.currPage = value;\n    if (this.currPage <= this.totalPage && this.currPage > this.pageInSingleView - Math.floor(this.pageInSingleView / 2) && this.totalPage > this.pageInSingleView) {\n      this.displayArrayUpdate(this.currPage)\n    } else if (this.currPage <= this.pageInSingleView) {\n      this.displayArray = [];\n      this.startArray()\n    }\n    this.pageChanged.emit(this.currPage);\n    this.enterPageNo=null;\n    this.enterPressed = false;\n  }\n\n\n  //Number validation check\n  validateNumber(e: any) {\n    const pattern = /^-?(0|[1-9]\\d*)?$/;\n    return pattern.test(e);\n  }\n\n  //Function responsible for updating the current page while entering the page number\n  onEnterPress(event: any) {\n    if (event.key.toLowerCase() === 'enter') {\n      this.enterPressed = true;\n      if (this.enterPageNo <= this.totalPage && this.enterPageNo > 0 && this.enterPageNo && this.validateNumber(this.enterPageNo)) {\n        this.currPage = this.enterPageNo;\n        if (this.currPage <= this.totalPage && this.currPage > this.pageInSingleView - Math.floor(this.pageInSingleView / 2) && this.totalPage > this.pageInSingleView) {\n          this.displayArrayUpdate(this.currPage);\n        } else if (this.currPage <= this.pageInSingleView) {\n          this.displayArray = [];\n          this.startArray();\n\n        }\n        this.pageChanged.emit(this.currPage);\n      }\n    }\n  }\n\n  //Function responsible for manipulating the displayArray\n  displayArrayUpdate(index: any) {\n    if (this.currPage > this.pageInSingleView - Math.floor(this.pageInSingleView / 2) && this.currPage <= this.totalPage - Math.floor(this.pageInSingleView / 2) && this.totalPage > this.pageInSingleView) {\n      if (this.pageInSingleView % 2 != 0) {\n        let appendElement = this.pageInSingleView / 2;\n        appendElement = Math.floor(appendElement);\n        let startIndex = this.currPage - appendElement;\n        let endIndex = this.currPage + appendElement;\n\n        this.displayArray = [];\n        for (let i = startIndex > 0 ? startIndex : 1 ; i <= endIndex; ++i) {\n          this.displayArray.push(i);\n        }\n      } else if (this.pageInSingleView % 2 === 0) {\n        let appendElement = this.pageInSingleView / 2;\n        let startIndex = this.currPage - appendElement;\n        let endIndex = this.currPage + appendElement - 1;\n        this.displayArray = [];\n        for (let i = startIndex > 0 ? startIndex : 1 ; i <= endIndex; ++i) {\n          this.displayArray.push(i);\n        }\n      }\n    } else if (this.currPage > this.totalPage - Math.floor(this.pageInSingleView / 2)) {\n      this.displayArray = [];\n      for (let i = (this.totalPage - this.pageInSingleView + 1) > 0 ? (this.totalPage - this.pageInSingleView + 1) : 1; i <= this.totalPage; ++i) {\n        this.displayArray.push(i);\n      }\n    }\n  }\n}\n","\n<div class=\"pagination-sec-ds vx-align-center vx-pb-2 vx-pl-1 vx-d-flex\" [class.right-align]=\"false\">\n    <div class=\"left vx-label-txt vx-fs-12 vx-fw-400 vx-tt-uppercase vx-lh-6\">\n        <ng-container *ngIf=\"showPageDetail\">SHOWING {{ from }} - {{to}} OF {{total}} RECORDS</ng-container>\n        <div class=\"pagination-box\" *ngIf=\"false\">\n            <ul class=\"vx-d-flex vx-align-center vx-m-0 vx-p-0\">\n                <li class=\"vx-d-flex\"><button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-2 vx-pr-2 vx-m-0\" [class.active]=\"true\">All</button></li>\n                <li class=\"vx-d-flex\">\n                    <button class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-2 vx-pr-2 vx-m-0\" [class.active]=\"false\">A</button>\n                </li>\n            </ul>\n        </div>\n    </div>\n\n    <div class=\"right vx-d-flex vx-align-center\">\n        <div class=\"pagination-box\">\n            <ul class=\"vx-d-flex vx-align-center vx-m-0 vx-p-0\">\n                <li class=\"vx-d-flex vx-mr-0\">\n                    <button class=\"vx-m-0\"  [class.disabled]=\"currPage === 1\" (click)=\"currentIndexUpdate(-1)\">\n                        <i class=\"icons vx-fs-10\">&#xe96b;</i>\n                    </button>\n                </li>\n\n                <li class=\"vx-d-flex\" *ngFor=\"let page of displayArray; let i = index \">\n                    <button (click)=\"currentIndexAssign(page)\"  class=\"vx-label-txt vx-fs-11 vx-fw-400 vx-pl-1 vx-pr-1 vx-d-inline-flex vx-align-center vx-justify-center vx-m-0 vx-ml-1\"\n                      [class.active]=\"currPage == page\">\n                      {{page}}\n                    </button>\n                </li>\n\n                <li class=\"vx-d-flex vx-ml-2\">\n                    <button  class=\"vx-m-0\"   [class.disabled]=\"currPage === totalPage\"  (click)=\"currentIndexUpdate(1)\">\n                        <i class=\"icons vx-fs-10\">&#xe970;</i>\n                    </button>\n                </li>\n            </ul>\n        </div>\n\n        <div class=\"goto-page vx-d-flex vx-align-center vx-ml-2\">\n            <div class=\"goto-page-text vx-label-txt vx-fs-11 vx-tt-uppercase vx-d-block vx-pl-2 vx-pr-2\">GO TO</div>\n            <div class=\"goto-page-input\">\n                <input (ngModelChange)=\"enterPressed = false\" [class.invalid]=\"enterPageNo > totalPage && enterPressed\"\n                type=\"number\"\n                [(ngModel)]=\"enterPageNo\"\n                (keyup)=\"onEnterPress($event)\"\n                placeholder=\"Page No.\" />\n                <button>\n                    <img src=\"./assets/images/enter-icon.svg\" alt=\"\" />\n                </button>\n            </div>\n            <div class=\"goto-page-text vx-label-txt vx-fs-11 vx-tt-uppercase vx-d-block vx-pl-2 vx-pr-2\">OF {{totalPage}}</div>\n        </div>\n    </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n  standalone: true,\n  imports: [CommonModule],\n  selector: 'app-table-loader',\n  templateUrl: './table-loader.component.html',\n  styleUrls: ['./table-loader.component.less']\n})\nexport class TableLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<table class=\"quick-table-loader\">\n    <tbody>\n        <tr *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n            <td class=\"serial\">\n                <span class=\"serial\"></span>\n            </td>\n            <td class=\"name\" width=\"50%\">\n                <span class=\"loader\"></span>\n            </td>\n            <td class=\"action\" width=\"50%\">\n                <span class=\"loader\"></span>\n            </td>\n        </tr>\n    </tbody>\n</table>","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { EditorConfig } from '@vcomply/editor';\n\n@Component({\n  // standalone: true,\n  selector: 'effectiveness-picker-dialog',\n  templateUrl: './effectiveness-picker-dialog.component.html',\n  styleUrls: ['./effectiveness-picker-dialog.component.less'],\n  // imports: [CommonModule, FormgroupModule, MarxEditorModule, FormsModule ],\n})\nexport class EffectivenessPickerDialogComponent implements OnInit {\n  @ViewChild('effect', { static: false }) scrollElement!: ElementRef;\n  controlSet = [\n    { value: 1, name: 'Not Effective', color: '#C7381B', description: '' },\n    { value: 2, name: 'Needs Improvement', color: '#E28F19', description: '' },\n    { value: 3, name: 'Adequate', color: '#F2BF19', description: '' },\n    { value: 4, name: 'Strong', color: '#9BB62D', description: '' },\n    { value: 5, name: 'Effective', color: '#34AA44', description: '' },\n  ];\n  comment: any = '';\n\n  @Input() selectedEffectiveness: any = {\n    value: 0,\n    name: '',\n    color: '',\n    description: '',\n  };\n  @Output() selectedEffectivenessChange = new EventEmitter();\n  @Output() effectiveness = new EventEmitter();\n\n  constructor() {}\n\n  ngOnInit(): void {\n    console.log(\n      'selectedEffectiveness EffectivenessPickerDialogComponent',\n      this.selectedEffectiveness\n    );\n    this.setScrollIntoView();\n    console.log(\n      'selectedEffectivenessselectedEffectiveness',\n      this.selectedEffectiveness\n    );\n  }\n\n  description: EditorConfig = {\n    mode: 'prime',\n    placeholder: 'Add Comments',\n  };\n\n  selectedControlType(event: any) {\n    console.log('event selectedControlType', event);\n    this.selectedEffectiveness = event;\n    this.selectedEffectiveness.description = this.comment;\n    this.selectedEffectivenessChange?.emit(this.selectedEffectiveness);\n    this.setScrollIntoView();\n  }\n\n  setScrollIntoView() {\n    console.log('this.scrollElement', this.scrollElement);\n    setTimeout(() => {\n      this.scrollElement.nativeElement.scrollIntoView({\n        behavior: 'smooth',\n        block: 'center',\n        inline: 'center',\n      });\n    }, 100);\n  }\n\n  getComment(event: any) {\n    this.selectedEffectiveness.description = event;\n    this.selectedEffectivenessChange?.emit(this.selectedEffectiveness);\n    console.log(\n      'selectedEffectivenessselectedEffectiveness 123',\n      this.selectedEffectiveness\n    );\n  }\n}\n","<!-- <div class=\"effectiveness-picker-dialog vx-p-3 vx-pt-4 vx-pb-2\">\n    <div class=\"picker-item vx-mb-2\">\n        <app-cs-radio><span class=\"vx-fs-12\" style=\"color: rgb(199, 56, 27);\">Not Effective</span></app-cs-radio>\n        <marx-editor [editorConfig]=\"description\"></marx-editor>\n    </div>\n    <div class=\"picker-item vx-mb-2\">\n        <app-cs-radio><span class=\"vx-fs-12\" style=\"color: rgb(226, 143, 25);\">Needs Improvement</span></app-cs-radio>\n        <marx-editor *ngIf=\"false\" [editorConfig]=\"description\"></marx-editor>\n    </div>\n    <div class=\"picker-item vx-mb-2\">\n        <app-cs-radio><span class=\"vx-fs-12\" style=\"color: rgb(242, 191, 25);\">Adequate</span></app-cs-radio>\n        <marx-editor *ngIf=\"false\" [editorConfig]=\"description\"></marx-editor>\n    </div>\n    <div class=\"picker-item vx-mb-2\">\n        <app-cs-radio><span class=\"vx-fs-12\" style=\"color: rgb(155, 182, 45);\">Strong</span></app-cs-radio>\n        <marx-editor *ngIf=\"false\" [editorConfig]=\"description\"></marx-editor>\n    </div>\n    <div class=\"picker-item vx-mb-2\">\n        <app-cs-radio><span class=\"vx-fs-12\" style=\"color: rgb(52, 170, 68);\">Effective</span></app-cs-radio>\n        <marx-editor *ngIf=\"false\" [editorConfig]=\"description\"></marx-editor>\n    </div>\n</div> -->\n\n<div class=\"effectiveness-picker-dialog vx-p-3 vx-pt-4 vx-pb-2\" #effect>\n  <div class=\"picker-item vx-mb-2\" *ngFor=\"let controlType of controlSet\">\n      <app-cs-radio [value]=\"selectedEffectiveness\" [checked]=\"selectedEffectiveness?.value === controlType?.value\" (checkedEvent)=\"selectedControlType(controlType)\"><span class=\"vx-fs-12\" [style.color]=\"controlType?.color\">{{controlType?.name}}</span></app-cs-radio>\n      <vcomply-editor *ngIf=\"selectedEffectiveness?.value === controlType?.value\" [ngModel]=\"selectedEffectiveness.description\" (ngModelChange)=\"getComment($event)\" [editorConfig]=\"description\"></vcomply-editor>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'isChecked',\n  pure: false,\n  standalone: true,\n})\nexport class IsCheckedPipe implements PipeTransform {\n  transform(value: any, ...args: any[]): boolean {\n    const list = args[0];\n    if(!args[1] || args[1] === undefined || args[1] === ''){\n      args[1] = 'item_id';\n    }\n    const objIndex = list?.findIndex((x: any) => x[args[1]] === value);\n    if (objIndex !== -1) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n}\n","import { Optional, Pipe, PipeTransform } from '@angular/core';\nimport { Configurations } from '../../configurations';\nimport { CONFIGS } from '../configurations/constants';\n@Pipe({\n  name: 'fileUrl',\n})\nexport class FileUrlPipe implements PipeTransform {\n  CONFIG = CONFIGS;\n  ENVIRONMENT!: any;\n  constructor(@Optional() config?: Configurations) {\n    if (config) {\n      this.ENVIRONMENT = config.env;\n    }\n  }\n  transform(value: string, ...args: unknown[]): unknown {\n    return `${this.ENVIRONMENT.environment.s3Url}${this.ENVIRONMENT.environment.s3Bucket}/${this.CONFIG.profilePicPath}/${value}`;\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { QuickViewService } from '../../services/quick-view.service';\n// import { RiskWorkroomService } from '../services/risk-workroom.service';\n\n@Component({\n  selector: 'app-controls-list',\n  templateUrl: './controls-list.component.html',\n  styleUrls: ['./controls-list.component.less']\n})\nexport class ControlsListComponent implements OnInit {\n  showEffectivenessPicker = false;\n\n  controlData: any = {\n    data: [],\n    from: 0,\n    to: 0,\n    totalPages: 0,\n    totalRecords: 0,\n  };\n  sortValue: number = -1;\n  @Input() previousSelectedControls: any = [];\n  @Input('controlData') set getControlData(control: any) {\n    this.controlData = control;\n    console.log(\"this.controlData ControlsListComponent\",this.controlData)\n  }\n  @Input() loader: boolean = false;\n  @Input() selectedControls: any [] = [];\n  @Output() selectedControlsChange = new EventEmitter();\n  @Output() pageChange = new EventEmitter();\n  @Output() listSorting = new EventEmitter();\n  @Input() pageName: any;\n  @Input() type: string = 'inVcomply';\n  @Input() deletedControls: any = [];\n  @Output() deletedControlsChange = new EventEmitter();\n  selectedEffectiveness: any;\n\n\n  constructor(\n      private quickViewService: QuickViewService\n    ) { }\n\n  ngOnInit(): void {}\n\n  changePage(pageNo: number) {\n    this.pageChange.emit(pageNo);\n  }\n\n  sort(value: any) {\n    this.sortValue = value;\n    this.listSorting?.emit(this.sortValue);\n  }\n\n  getEffectivenessValue(event: any) {\n    this.selectedEffectiveness = event;\n  }\n\n  controlChecked(item: any, event: any) {\n    if (event) {\n      const objectIndex = this.selectedControls?.findIndex((control: any) => control?.item_id === item?.item_id);\n      if (objectIndex === -1) {\n        console.log(objectIndex);\n        item.action_type = 'ADD';\n        item.effectiveness = { value: 0, name: '', color: '', description: '' };\n        // item.item_category_type = [this.selectedType]\n        this.selectedControls.push(item);\n      }\n      const deleteIndex = this.deletedControls?.findIndex((el: any) => el?.item_id === item?.item_id);\n      if (deleteIndex !== -1) {\n        this.deletedControls?.splice(deleteIndex, 1);\n      }\n    }\n    if (!event) {\n      const objIndex = this.selectedControls?.findIndex((control: any) => control?.item_id === item?.item_id);\n\n      if (objIndex !== -1) {\n        item.item_score_id = this.selectedControls[objIndex]?.item_score_id ?? 0;\n        // this.deletedControls.push(item);\n        this.selectedControls?.splice(objIndex, 1);\n      }\n      const deleteIndex = this.previousSelectedControls?.findIndex((el: any) => el?.item_id === item?.item_id);\n      if (deleteIndex !== -1  && !this.quickViewService?.isControlExist(this.deletedControls, item)) {\n        this.deletedControls?.push(item);\n      }\n    }\n\n    this.selectedControlsChange?.emit({selectedControls: this.selectedControls, control:item, action: event});\n    this.deletedControlsChange?.emit(this.deletedControls);\n  }\n\n\n  effectivenessPicker(control: any, controlIndex: number, action: boolean) {\n    this.controlData.data[controlIndex]['showEffectivenessPicker'] = action;\n    if(!action) {\n      this.controlData.data[controlIndex].effectiveness = this.selectedEffectiveness;\n      if(!this.isSelected(control, this.selectedEffectiveness) && this.selectedEffectiveness?.name) {\n        this.selectedControls.push(control);\n      }\n      this.selectedEffectiveness = { value: 0, name: '', color: '', description: '' };\n    }\n  }\n\n  /**\n   * If the control is selected, then set the effectiveness of the control to the selected\n   * effectiveness.\n   * @param {any} control - {item_id: 1, item_name: \"Control 1\"}\n   * @param {any} effectiveness - {\n   * @returns The return value is a boolean.\n   */\n  isSelected(control: any, effectiveness: any) {\n    const index = this.selectedControls?.findIndex((val: any) => val?.item_id === control?.item_id)\n    if(index !== -1) {\n      this.selectedControls[index].effectiveness = effectiveness;\n      return true;\n    }\n    return false;\n  }\n\n}\n","<div class=\"controls-list vx-pt-2\">\n    <ng-container *ngIf=\"controlData?.data?.length > 0 || loader\">\n        <div class=\"controls-list-heading vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mb-1 vx-d-flex vx-align-center\"><i class=\"icons sorting vx-fs-9 vx-mr-2\" (click)=\"sort(-(sortValue))\">&#xeaf0;</i>{{pageName == 'Treatment Plan' ? 'Treatment Plans' : 'Controls'}}</div>\n        <div class=\"controls-list-body\">\n            <div class=\"table-body\" [class.with-pagination]=\"controlData?.totalPages > 1\" >\n                <!-- after check in checkbox then active this class was true -->\n                <ng-container *ngIf=\"controlData?.data?.length > 0 && !loader\">\n                    <div class=\"table-row\" *ngFor=\"let control of controlData?.data; let i = index\" [class.active]=\"control.item_id | isChecked :selectedControls\">\n                        <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                            <div class=\"sr-no\" [appTooltip]=\"i + controlData?.from\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{i + controlData?.from}}</div>\n                            <app-cs-checkbox [ngValue]=\"control.item_id | isChecked :selectedControls\" (ngValueChange)=\"controlChecked(control, $event)\"></app-cs-checkbox>\n                            <div *ngIf=\"control?.isLinked\" class=\"linked-label vx-fs-8 vx-fw-500 vx-txt-white vx-tt-uppercase\">LINKED</div>\n                        </div>\n                        <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center name\" [class.without-effectiveness]=\"pageName == 'Treatment Plan'\">\n                            <div class=\"vx-avatar-group vx-mr-2\">\n                                <div class=\"vx-avatar md\" [appTooltip]=\"'Entrusted By:' + control?.AssignBy\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                                    <span *ngIf=\"control?.member_pic === ''\" class=\"blue\">{{control?.member_short_name}}</span>\n                                    <img *ngIf=\"control?.member_pic !== ''\" [src]=\"control?.member_pic | fileUrl\" alt=\"\">\n                                </div>\n                                <div class=\"vx-avatar md\" [appTooltip]=\"'Entrusted To:' + control?.AssignTo\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                                    <span *ngIf=\"control?.employee_pic === ''\" class=\"green\">{{control?.employee_short_name}}</span>\n                                    <img *ngIf=\"control?.employee_pic !== ''\" [src]=\"control?.employee_pic | fileUrl\" alt=\"\">\n                                </div>\n                            </div>\n                            <i class=\"icons star vx-fs-12 vx-mr-2\" *ngIf=\"type?.toLowerCase() !== 'notinvcomply'\" [class.active]=\"control?.is_key_compliance\">&#xea70;</i>\n                            <div class=\"name-inner\">\n                                <div class=\"vx-fs-10 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-lh-4\" *ngIf=\"type?.toLowerCase() !== 'notinvcomply'\">{{control?.control_id}}</div>\n                                <div class=\"value vx-fs-13 vx-txt-blue\" [appTooltip]=\"control?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{control?.item_name}}</div>\n                            </div>\n                        </div>\n                        <div *ngIf=\"pageName !== 'Treatment Plan'\"  class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-between effectiveness\">\n                            <div class=\"vx-d-flex vx-align-center vx-justify-between vx-w-100\" (click)=\"effectivenessPicker(control, i, true)\">\n                                <div class=\"left vx-d-block\">\n                                    <div class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3\">EFFECTIVENESS</div>\n                                    <div *ngIf=\"!(control?.item_id | isChecked :selectedControls)\" class=\"value vx-fs-12 vx-paragraph-txt vx-pr-1\" [appTooltip]=\"'Select'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Select</div>\n                                    <div *ngIf=\"control?.item_id | isChecked :selectedControls\" class=\"value vx-fs-12 vx-paragraph-txt vx-pr-1\" [style.color]=\"control?.effectiveness?.color\" [appTooltip]=\"control?.effectiveness?.name ? control?.effectiveness?.name : 'Select'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{control?.effectiveness?.name ? control?.effectiveness?.name : 'Select'}}</div>\n                                </div>\n                                <i *ngIf=\"control?.effectiveness?.description && control?.effectiveness?.description?.length\" class=\"icons vx-fs-12 vx-txt-blue vx-ml-2 vx-mr-2\">&#xe933;</i>\n                                <i class=\"icons vx-fs-9 vx-paragraph-txt\" >&#xe9e8;</i>\n                            </div>\n\n                            <ng-container *ngIf=\"control?.showEffectivenessPicker\">\n                                <div class=\"overlay\" (click)=\"effectivenessPicker(control, i, false)\"></div>\n                                <effectiveness-picker-dialog [selectedEffectiveness]=\"control?.effectiveness\" (selectedEffectivenessChange)=\"getEffectivenessValue($event)\"></effectiveness-picker-dialog>\n                            </ng-container>\n                        </div>\n                    </div>\n                </ng-container>\n                <app-table-loader *ngIf=\"loader\"></app-table-loader>\n            </div>\n            <app-pagination\n                *ngIf=\"controlData?.totalPages > 1\"\n                [from]=\"controlData?.from\"\n                [to]=\"controlData?.to\"\n                [total]=\"controlData?.totalRecords\"\n                [showPageDetail]=\"true\"\n                [totalPage]=\"controlData?.totalPages\"\n                [currentPage]=\"controlData?.currentPage\"\n                [pageInSingleView]=\"5\"\n                (pageChanged)=\"changePage($event)\">\n        </app-pagination>\n        </div>\n    </ng-container>\n    <app-no-data *ngIf=\"pageName == 'Controls' && controlData?.data?.length === 0 && !loader && type === 'inVcomply'\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/quick-view/controls-not-nodata.svg'\" noDataText=\"You have not created any controls. Click on the<br><strong class='vx-fw-500'>Create a Control</strong> button to begin.\"></app-no-data>\n    <app-no-data *ngIf=\"pageName == 'Controls' && controlData?.data?.length === 0 && !loader && type === 'notInVcomply'\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/quick-view/controls-not-nodata.svg'\" noDataText=\"You have not created any controls. Click on the<br><strong class='vx-fw-500'>Create a Control  not on VComply</strong> button to begin.\"></app-no-data>\n    <app-no-data *ngIf=\"pageName == 'Treatment Plan' && controlData?.data?.length === 0 && !loader && type === 'inVcomply'\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/quick-view/controls-not-nodata.svg'\" noDataText=\"You have not created any Treatment Plan. Click on the<br><strong class='vx-fw-500'>Create a Treatment Plan</strong> button to begin.\"></app-no-data>\n    <app-no-data *ngIf=\"pageName == 'Treatment Plan' && controlData?.data?.length === 0 && !loader && type === 'notInVcomply'\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/quick-view/controls-not-nodata.svg'\" noDataText=\"You have not created any Treatment Plan. Click on the<br><strong class='vx-fw-500'>Create a Treatment Plan not on VComply</strong> button to begin.\"></app-no-data>\n</div>\n\n<!-- <app-popover #effectivenessPicker [dontCloseonClick]=\"true\" (closedOnOverlay)=\"getEffectivenessValue($event)\">\n    <app-effectiveness-picker-dialog ></app-effectiveness-picker-dialog>\n</app-popover> -->\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-controls-program-list',\n  templateUrl: './controls-program-list.component.html',\n  styleUrls: ['./controls-program-list.component.less']\n})\nexport class ControlsProgramListComponent implements OnInit {\n\n  programData: any = {\n    data: [],\n    from: 0,\n    to: 0,\n    totalPages: 0,\n    totalRecords: 0,\n  };\n  sortValue: number = -1;\n\n  @Input('programData') set getProgramData(program: any) {\n    this.programData = program;\n    if(program?.data?.length){\n      this.selectedProgram = program?.data[0];\n      this.selectProgram(program?.data[0])\n    }\n  }\n  @Input() loader: boolean = false;\n\n  @Output() pageChange = new EventEmitter();\n  @Output() listSorting = new EventEmitter();\n  @Output() getCategoryByProgramId = new EventEmitter();\n  selectedProgram: any = {}\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n\n  selectProgram(program: any){\n    this.selectedProgram = program;\n    console.log(\"getCategoryByProgramId 12\", program)\n    this.getCategoryByProgramId.emit(this.selectedProgram)\n  }\n\n  changePage(pageNo: number) {\n    console.log(\"pageNopageNopageNo\",pageNo)\n    this.pageChange.emit(pageNo);\n  }\n\n  sort(value: any) {\n    this.sortValue = value;\n    this.listSorting?.emit(this.sortValue);\n  }\n}\n","<div class=\"controls-program-list vx-pt-2\">\n    <div class=\"controls-program-list-heading vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mb-1 vx-d-flex vx-align-center\"><i class=\"icons sorting vx-fs-9 vx-mr-2\" (click)=\"sort(-(sortValue))\" >&#xeaf0;</i> PROGRAM</div>\n    <div class=\"controls-program-list-body\">\n        <div class=\"table-body\" [class.with-pagination]=\"programData?.totalPages > 1\">\n            <ng-container *ngIf=\"programData?.data?.length > 0 && !loader\">\n                <div class=\"table-row clickable\" *ngFor=\"let program of programData?.data\" [class.active]=\"selectedProgram?.category_id === program?.category_id\" (click)=\"selectProgram(program)\">\n                    <div class=\"table-column vx-pl-3 vx-pr-3 vx-d-flex vx-align-center program-name\">\n                        <div class=\"value vx-fs-11 vx-label-txt\" [appTooltip]=\"program?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{program?.item_name}}</div>\n                    </div>\n                    <div class=\"table-column vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-end action\">\n                        <i class=\"icons arrow-right vx-fs-9 vx-paragraph-txt\">&#xe970;</i>\n                    </div>\n                </div>\n            </ng-container>\n            <app-table-loader *ngIf=\"loader\"></app-table-loader>\n        </div>\n        \n        <app-pagination \n            *ngIf=\"programData?.totalPages > 1\"\n            [from]=\"programData?.from\"\n            [to]=\"programData?.to\"\n            [total]=\"programData?.totalRecords\"\n            [showPageDetail]=\"true\"\n            [totalPage]=\"programData?.totalPages\"\n            [currentPage]=\"programData?.currentPage\"\n            [pageInSingleView]=\"3\"\n            (pageChanged)=\"changePage($event)\">\n        </app-pagination>\n        \n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-controls-sub-category-list',\n  templateUrl: './controls-sub-category-list.component.html',\n  styleUrls: ['./controls-sub-category-list.component.less']\n})\nexport class ControlsSubCategoryListComponent implements OnInit {\n\n  categoryData: any = {\n    data: [],\n    from: 0,\n    to: 0,\n    totalPages: 0,\n    totalRecords: 0,\n  };\n  selectedCategory: any = {};\n  sortValue: number = -1;\n\n  @Input('categoryData') set getCategoryData(category: any) {\n    this.categoryData = category;\n    if(category?.data?.length){\n      this.selectedCategory = category?.data[0];\n      this.selectCategory(category?.data[0])\n    }\n  }\n  @Input() loader: boolean = false;\n\n  @Output() pageChange = new EventEmitter();\n  @Output() listSorting = new EventEmitter();\n  @Output() getControlsByCategoryId = new EventEmitter();\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  selectCategory(category: any){\n    this.selectedCategory = category;\n    console.log(\"categorycategory 12\", category)\n    this.getControlsByCategoryId.emit(this.selectedCategory)\n  }\n\n  changePage(pageNo: number) {\n    console.log(\"pageNopageNopageNo\",pageNo)\n    this.pageChange.emit(pageNo);\n  }\n\n  sort(value: any) {\n    this.sortValue = value;\n    console.log(\"valuevaluevaluevaluevalue\",value)\n    this.listSorting?.emit(this.sortValue);\n  }\n}\n","<div class=\"controls-sub-category-list vx-pt-2\">\n    <div class=\"controls-sub-category-list-heading vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mb-1 vx-d-flex vx-align-center\"><i class=\"icons sorting vx-fs-9 vx-mr-2\" (click)=\"sort(-(sortValue))\">&#xeaf0;</i> PROGRAM CATEGORY</div>\n    <div class=\"controls-sub-category-list-body\" *ngIf=\"categoryData?.data?.length > 0 || loader\">\n        <div class=\"table-body\" [class.with-pagination]=\"categoryData?.totalPages > 1\">\n            <ng-container *ngIf=\"categoryData?.data?.length > 0 && !loader\">\n                <div class=\"table-row clickable\" *ngFor=\"let category of categoryData?.data\" [class.active]=\"category?.category_id === selectedCategory?.category_id\" [class.disabled]=\"category?.total_responsibility == 0\" (click)=\"selectCategory(category)\">\n                    <div class=\"table-column vx-pl-3 vx-pr-3 vx-d-flex vx-align-center category-name\">\n                        <div class=\"vx-d-block vx-w-100\">\n                            <div class=\"value vx-fs-11 vx-label-txt\" [appTooltip]=\"category?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{category?.item_name}}</div>\n                            <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\" *ngIf=\"category?.category_name?.length\">\n                                <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-1 vx-lh-3 vx-txt-blue\">Within</div>\n                                <div class=\"within-value vx-fs-11 vx-paragraph-txt\" [appTooltip]=\"category?.category_name?.slice()?.reverse()?.join(' < ')\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                                    <span *ngFor=\"let parent of category?.category_name?.slice()?.reverse(); let last = last\">{{parent}} \n                                        <span *ngIf=\"!last\"> <\n                                        </span>\n                                    </span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"table-column vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-end action\">\n                        <i class=\"icons arrow-right vx-fs-9 vx-paragraph-txt\">&#xe970;</i>\n                    </div>\n                </div>\n            </ng-container>\n            <app-table-loader *ngIf=\"loader\"></app-table-loader>\n        </div>\n        <app-pagination\n            *ngIf=\"categoryData?.totalPages > 1\"\n            [from]=\"categoryData?.from\"\n            [to]=\"categoryData?.to\"\n            [total]=\"categoryData?.totalRecords\"\n            [showPageDetail]=\"true\"\n            [totalPage]=\"categoryData?.totalPages\"\n            [currentPage]=\"categoryData?.currentPage\"\n            [pageInSingleView]=\"3\"\n            (pageChanged)=\"changePage($event)\"\n        ></app-pagination>\n    </div>\n    <app-no-data *ngIf=\"categoryData?.data?.length === 0 && !loader\" [noDataImage]=\"'./assets/images/controls-not-nodata.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\n</div>","import { HttpParams } from '@angular/common/http';\nimport { Component, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { SubSink } from '../../../subsink.class';\nimport { DialogConfig } from '../../../ui-kit/dialog/dialog-config';\nimport { DialogRef } from '../../../ui-kit/dialog/dialog-ref';\nimport { DialogService } from '../../../ui-kit/dialog/dialog.service';\nimport { CreateControlNotOnVComplyComponent } from '../../create-control/create-control.component';\nimport { AuthService } from '../../services/auth.service';\nimport { QuickViewService } from '../../services/quick-view.service';\nimport { WorkflowService } from '../../workflow/workflow.service';\n\n@Component({\n  selector: 'qv-link-control-dialog',\n  templateUrl: './link-control-dialog.component.html',\n  styleUrls: ['./link-control-dialog.component.less']\n})\nexport class LinkControlNotOnVComplyDialogComponent implements OnInit, OnDestroy {\n  controls = true;\n  noControls = false;\n  programCountLoader: boolean = false;\n  searchString: string = '';\n  programLoader: boolean = false;\n  selectedControls: any [] = [];\n  previousSelectedControls: any = [];\n  deletedControls: any = [];\n  programData: any = {\n    data: [],\n    from: 0,\n    to: 0,\n    totalPages: 0,\n    totalRecords: 0,\n    currentPage: 1,\n  }\n  categoryData: any = {\n    data: [],\n    from: 0,\n    to: 0,\n    totalPages: 0,\n    totalRecords: 0,\n    currentPage: 1,\n  }\n  controlData: any = {\n    data: [],\n    from: 0,\n    to: 0,\n    totalPages: 0,\n    totalRecords: 0,\n    currentPage: 1,\n  }\n  categoryLoader: boolean = false;\n  selectedProgram: any;\n  selectedCategory: any;\n  programCall!: Subscription;\n  categoryCall!: Subscription;\n  controlCall!: Subscription;\n  nonControlCall!: Subscription;\n  currentBusinessCycle!: any\n  programSortValue:number = 0;\n  categorySortValue:number = 0;\n  controlSortValue:number = 0;\n  selectedRC: any;\n  isWorkFlowOpen: boolean = false;\n  responsibilityPageNumber: number = 1;\n  controlList: any;\n  controlsLoader: boolean = false;\n  controlsCount: any;\n  showCreateControlButton = false;\n  selectedNoControls: any [] = [];\n  deletedNoControls: any [] = [];\n  previousSelectedNoControls: any [] = [];\n  isCreateClose = false;\n  selectedRCIds: any[] = [];\n  pageName: string = 'Controls';\n  isFormOpen = false;\n  subscriptions:SubSink = new SubSink()\n  title: string;\n  featureFlag: any;\n\n  constructor(\n    private dialog: DialogRef,\n    private dialogForm: DialogService,\n    private dialogConfig: DialogConfig,\n    private quickViewService: QuickViewService,\n    private authService: AuthService,\n    private workflowService: WorkflowService\n\n  ) {\n    this.selectedRC = this.dialogConfig?.data?.selectedRC;\n    this.selectedControls = this.dialogConfig?.data?.selectedControls ?? [];\n    this.selectedNoControls = this.dialogConfig?.data?.selectedNoControls ?? [];\n    this.previousSelectedControls = this.dialogConfig?.data?.selectedControls?.slice();\n    this.previousSelectedNoControls = this.dialogConfig?.data?.selectedNoControls?.slice();\n    this.featureFlag = this.dialogConfig?.data?.featureFlag;\n    this.getPageName(this.dialogConfig?.data?.pageName);\n    this.setRCIdWithChildIds();\n  }\n\n  programTypes: any = [\n    {name:'REGULATIONS', count: 0, selectedValue: 0, code:'REGULATIONS', type: 1},\n    {name:'STANDARDS', count: 0, selectedValue: 0, code:'STANDARDS', type: 2},\n    {name:'INTERNAL CONTROLS', count: 0, selectedValue: 0, code:'INTERNAL_CONTROLS', type: 3},\n    {name:'OTHERS', count: 0, selectedValue: 0, code:'OTHERS', type: 0},\n  ];\n  selectedTab: 'REGULATIONS' | 'STANDARDS' | 'INTERNAL_CONTROLS' | 'OTHERS' = 'REGULATIONS';\n\n  ngOnInit(): void {\n    this.currentBusinessCycle = this.quickViewService?.getBusinessCycle();\n\n    this.getCountOfDifferentControls();\n    this.getProgramsCount();\n    this.getProgramsList();\n    this.updateSelectedValueCount(this.dialogConfig?.data?.selectedControls, true);\n    this.setCreateControlButtonVisibilityStatus();\n  }\n\n  closeForm() {\n    this.dialog.close(false);\n  }\n\n  /* This is a decorator that listens to the keydown event on the form to close form on escape key down. */\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n    if(!this.isFormOpen) this.closeForm();\n  }\n\n\n  setCreateControlButtonVisibilityStatus(){\n    const rbacPermissions  = this.quickViewService?.userInfo$?.getValue();\n    if(rbacPermissions){\n      const responsibility = rbacPermissions?.roleActions.find((module:any) => module.moduleName === 'compliance')?.subModule?.find((subModule:any) => subModule?.subModuleName == 'Responsibilities')?.permissions?.find((permission:any) => permission?.code =='CRMR');\n      if(responsibility?.defaultPermission + responsibility?.enable > 0){\n        this.showCreateControlButton = true;\n      }else{\n        this.showCreateControlButton = false;\n      }\n    }\n\n  }\n\n  /**\n   * Opens the create a control not on vcomply form\n   */\n   createControl() {\n    this.isFormOpen = true;\n    const ref = this.dialogForm.open(CreateControlNotOnVComplyComponent, {\n      data: {\n        pageName: this.pageName,\n       },\n      position: 'RIGHT',\n      background: 'black',\n    });\n    ref?.afterClosed?.subscribe((res: any)=> {\n      this.isFormOpen = false;\n      if(this.noControls) {\n        this.getNotOnVComplyControls();\n      }\n    });\n   }\n\n  createVComplyControl() {\n    console.log(\"createVComplyControl\");\n    this.workflowService.workFlowConfig.riskRCId = this.selectedRC?.rc_id;\n    this.subscriptions.add(this.workflowService.openWorkflow('CREATE', 'CAR', 'RISK_TREATMENT', '', 'NonOther','RESPONSIBILITY', this.featureFlag).subscribe((data: any) => {\n      if(data){\n        //this.fetchRiskDetails();\n      }else{\n        return;\n      }\n    }))\n    // this.isFormOpen = true;\n    // this.isWorkFlowOpen =  true;\n  }\n\n  closeWorkflow(evt:any){\n    this.isFormOpen = false;\n    this.isWorkFlowOpen =  false;\n    this.ngOnInit();\n    console.log(\"Responsibility Creation\",evt)\n  }\n\n  clickControls() {\n    this.controls = true;\n    this.noControls = false;\n  }\n\n  /**\n   * This function is called when the user clicks on the \"+ CREATE A CONTROL NOT ON VCOMPLY\" button.\n   * It sets the controlData variable to an empty object, sets the controls and noControls variables\n   * to true and false respectively, resets the program, category, and control variables,\n   * sets the searchString variable to an empty string, and calls the getNotOnVComplyControls() function\n   * which makes API call to fetch controls not on vcomply.\n   */\n  clickNoControls() {\n    this.controlData = {};\n    this.controls = false;\n    this.noControls = true;\n    this.resetProgramVariable();\n    this.resetCategoryVariable();\n    this.resetControlVariable();\n    this.searchString = '';\n    this.getNotOnVComplyControls();\n  }\n\n  selectProgramType(tab: any) {\n    this.selectedTab = tab?.code;\n    this.programData.currentPage = 1;\n    this.getProgramsList();\n  }\n\n  stateObject = {\n    ACTIVE: 2,\n    DRAFT: 0,\n    COMPLETED: 3,\n    APPROVED:1,\n    INACTIVE:-2\n  }\n\n  getProgramsCount(paramsObject?: any) {\n    this.programCountLoader = true;\n    const request = {\n      headers: { \"type\": \"\", \"paginationType\": \"small\", \"a\": \"\", \"searchText\": this.searchString , \"filterData\": { \"appList\": [], \"riskIds\": [], \"reviewerId\": [], \"responsibilityCenter\": this.selectedRCIds, \"entrustedBy\": [], \"entrustedTo\": [], \"responsibilityCategory\": [] }, \"pageNo\": 1, \"sortObj\": { \"sortBy\": \"\", \"type\": \"\" }, \"pageName\": \"category\", \"typeArr\": [1,2,3,0], \"start_date\": this.currentBusinessCycle?.start_date, \"end_date\": this.currentBusinessCycle?.end_date, \"selected_cycle_arr\": this.currentBusinessCycle?.selected_cycle_arr, \"selected_cycle\": this.currentBusinessCycle?.selected_cycle, \"time_filter_type\": \"\", state:[2,3] }\n    }\n    this.subscriptions.add(this.quickViewService.getProgramsListCount(request).subscribe({\n      next: (res: any) => {\n        this.programCountLoader = false;\n        this.programTypes[0].count = res?.regulationCount?.active + res?.regulationCount?.completed;\n        this.programTypes[1].count = res?.standardCount?.active + res?.standardCount?.completed;\n        this.programTypes[2].count = res?.internalCount?.active + res?.internalCount?.completed;\n        this.programTypes[3].count = res?.otherCount?.active + res?.otherCount?.completed;\n      // }\n      }\n    }));\n  }\n\n  handleSearch(event: any) {\n    if (this.searchString != event) {\n      // this.programData.currentPage = 1;\n      this.searchString = event;\n      this.programData.currentPage = 1;\n      this.getProgramsList({ search: true });\n      this.getProgramsCount({ search: true });\n    }\n  }\n\n\n  /**\n   * If the search string is not equal to the event, then set the search string to the event, set the\n   * current page to 1, and get the not on vcomply controls by making API call inside getNotOnVComplyControls function.\n   * @param {any} event - any - the search string\n   */\n  handleSearchNotOnVcomply(event: any) {\n    if (this.searchString != event) {\n      this.searchString = event;\n      this.controlData.currentPage = 1;\n      this.getNotOnVComplyControls();\n    }\n  }\n\n\n\n  getProgramsList(event?:any) {\n    if(this.programCall){\n      this.programCall.unsubscribe();\n    }\n    this.resetCategoryVariable();\n    this.resetControlVariable();\n    this.programLoader = true;\n    const request = {\n      headers: {\n        \"type\": \"\",\n        \"paginationType\": \"small\",\n        \"a\": \"\",\n        \"searchText\": this.searchString,\n        \"filterData\": { \"appList\": [], \"riskIds\": [], \"reviewerId\": [], \"responsibilityCenter\": this.selectedRCIds, \"entrustedBy\": [], \"entrustedTo\": [], \"responsibilityCategory\": [] },\n        \"pageNo\": this.programData.currentPage,\n        \"sortObj\": (this.programSortValue) === 0 ? { \"sortBy\": \"\", \"type\": -1} : { sortBy: 'name', type: this.programSortValue},\n        \"pageName\": \"category\",\n        \"typeArr\": [this.getProgramType()],\n        \"start_date\": this.currentBusinessCycle?.start_date,\n        \"end_date\": this.currentBusinessCycle?.end_date,\n        \"selected_cycle_arr\": this.currentBusinessCycle?.selected_cycle_arr,\n        \"selected_cycle\": this.currentBusinessCycle?.selected_cycle,\n        \"time_filter_type\": \"\",\n        'state': [2,3]\n      }\n    }\n    this.programCall = this.quickViewService.getProgramsList(request).subscribe({\n      next: (res: any) => {\n        this.programLoader = false;\n        this.programData.from = res.items_from ?? 0;\n        this.programData.to = res.items_to ?? 0;\n        this.programData.totalPages = res.total_pages ?? 0;\n        this.programData.totalRecords = res.total_items ?? 0;\n        this.programData.data = res.data ?? [];\n        this.programData = {...this.programData}\n      },\n      error: (err: any) => {\n        this.programLoader = false;\n      },\n    });\n\n  }\n\n\n  getProgramType(): number {\n    let program = this.programTypes?.filter((tab: any) => tab?.code === this.selectedTab);\n    if(program && program?.length) {\n      return program[0]?.type;\n    }\n    return 1;\n  }\n\n  programPageChange(event: number) {\n    this.programData.currentPage = event;\n    this.getProgramsList();\n  }\n\n  getCategoryByProgramId(program: any) {\n    if(this.categoryCall){\n      this.categoryCall.unsubscribe();\n    }\n    this.selectedProgram = program;\n    this.categoryLoader = true;\n    this.resetControlVariable();\n    const headers = {\n      \"id\": program?._id,\n      \"scopeType\": 'risk',\n      \"paginationType\": \"small\",\n      \"searchText\": this.searchString,\n      \"filterData\": { \"appList\": [], \"riskIds\": [], \"reviewerId\": [], \"responsibilityCenter\": this.selectedRCIds, \"entrustedBy\": [], \"entrustedTo\": [], \"responsibilityCategory\": [] },\n      \"page\": this.categoryData.currentPage,\n      \"sortingCount\": this.categorySortValue,\n      \"name\": 'name',\n      businessCycle: {\n        \"start_date\": this.currentBusinessCycle?.start_date,\n        \"end_date\": this.currentBusinessCycle?.end_date,\n        \"selected_cycle_arr\": this.currentBusinessCycle?.selected_cycle_arr,\n        \"selected_cycle\": this.currentBusinessCycle?.selected_cycle,\n        \"time_filter_type\": \"\",\n        // \"scopeType\": 'risk',\n        \"type\": 'risk',\n        \"filterData\": { \"appList\": [], \"riskIds\": [], \"reviewerId\": [], \"responsibilityCenter\": this.selectedRCIds, \"entrustedBy\": [], \"entrustedTo\": [], \"responsibilityCategory\": [] },\n      }\n\n    }\n    this.categoryCall = this.quickViewService.getSubCategoryList(headers).subscribe({\n      next: (res: any) => {\n        this.categoryData.data = res?.data;\n        this.categoryData.from = res?.items_from;\n        this.categoryData.to = res?.items_to;\n        this.categoryData.totalPages = res?.total_pages;\n        this.categoryData.totalRecords = res?.total_items;\n        this.categoryLoader = false;\n        this.categoryData = {...this.categoryData}\n      },\n      error: err => {\n        console.error(err);\n        this.categoryLoader = false;\n      }\n    });\n\n  }\n\n  categoryPageChange(event: number) {\n    this.categoryData.currentPage = event;\n    this.getCategoryByProgramId(this.selectedProgram);\n  }\n\n  getControlsByCategoryId(category: any) {\n    this.selectedCategory = category;\n    this.getControls(category);\n  }\n\n  resetLists() {\n    this.programData = {\n      data: [],\n      from: 0,\n      to: 0,\n      totalPages: 0,\n      totalRecords: 0,\n      currentPage: 1,\n    }\n    this.categoryData = {\n      data: [],\n      from: 0,\n      to: 0,\n      totalPages: 0,\n      totalRecords: 0,\n      currentPage: 1,\n    }\n    this.selectedProgram = {};\n    this.selectedCategory = {};\n  }\n\n  getControls(event?: any) {\n    if(this.controlCall){\n      this.controlCall.unsubscribe();\n    }\n    // this.respCount = event.sortValue;\n    this.controlsLoader = true;\n    let params = new HttpParams();\n    params = params.append('isBusinessCycle', \"true\");\n    params = params.append('parentId', this.selectedProgram?.category_id);\n    params = params.append('catId', this.selectedCategory.category_id);\n    params = params.append('pageNo', this.controlData?.currentPage ?? 1,);\n    if([1,-1].includes(this.controlSortValue)){\n      params = params.append('sortValue', this.controlSortValue);\n      params = params.append('sortBy', \"Data.ReportName\");\n    }\n    params = params.append('paginationType', \"small\");\n    params = params.append('pageType', 'risk');\n    let businessCycle = {\n      \"start_date\": this.currentBusinessCycle?.start_date,\n      \"end_date\": this.currentBusinessCycle?.end_date,\n      \"selected_cycle_arr\": this.currentBusinessCycle?.selected_cycle_arr,\n      \"selected_cycle\": this.currentBusinessCycle?.selected_cycle,\n      \"time_filter_type\": \"\",\n      'pageType': 'risk',\n      \"filterData\": { \"appList\": [], \"riskIds\": [], \"reviewerId\": [], \"responsibilityCenter\": this.selectedRCIds, \"entrustedBy\": [], \"entrustedTo\": [], \"responsibilityCategory\": [] },\n    }\n\n    this.controlCall = this.quickViewService.getControlsByCategoryId(params, businessCycle).subscribe({\n      next: (res: any) => {\n        this.controlData.data = res?.data;\n        this.controlData.from = res?.items_from;\n        this.controlData.to = res?.items_to;\n        this.controlData.totalPages = res?.total_pages;\n        this.controlData.totalRecords = res?.total_items;\n        this.categoryLoader = false;\n        this.controlData = {...this.controlData}\n        this.controlsLoader = false;\n        if(this.dialogConfig?.data?.selectedControls?.length) {\n          this.updateEffectivenessOnLoad(this.dialogConfig?.data?.selectedControls);\n        }\n      },\n      error: (err: any) => {\n        this.controlsLoader = false;\n      },\n    });\n  }\n\n  /**\n   * It makes an API call to get data of controls not on vcomply and update the variable controlData.\n   * params : contains the queryparams required for the API like pageNo, sortvalue, sortby field and searchtext\n   */\n  getNotOnVComplyControls() {\n    console.log(\"this.searchString getNotOnVComplyControls\",this.searchString)\n    if(this.nonControlCall){\n      this.nonControlCall.unsubscribe();\n    }\n    let params = {};\n    params = {... {'pageNo' : this.controlData?.currentPage ?? 1}};\n    if(this.controlSortValue) {\n      params = {... params, ... {'sortValue' : this.controlSortValue, 'sortBy' : 'control_name'}};\n    }\n    if(this.searchString) {\n      params = {... params, ... {'searchText' : this.searchString}};\n    }\n    this.controlsLoader = true;\n    this.nonControlCall = this.quickViewService.getNotOnVComplyControls(params).subscribe({\n      next: (res: any) => {\n        this.controlData.data = res?.data;\n        this.controlData.from = res?.items_from ?? 1;\n        this.controlData.to = res?.items_to ?? 30;\n        this.controlData.totalPages = res?.total_pages;\n        this.controlData.totalRecords = res?.totalRecords;\n        this.controlsLoader = false;\n        if(this.dialogConfig?.data?.selectedNoControls?.length) {\n          this.updateEffectivenessOnLoad(this.dialogConfig?.data?.selectedNoControls);\n        }\n      },\n      error: (err: any) => {\n        this.controlsLoader = false;\n      }\n    })\n  }\n\n  programSort(sortValue: number) {\n    this.programSortValue = sortValue;\n    this.getProgramsList();\n  }\n  categorySort(sortValue: number) {\n    this.categorySortValue = sortValue;\n    this.getCategoryByProgramId(this.selectedProgram);\n  }\n  controlSort(sortValue: number) {\n    this.controlSortValue = sortValue;\n    if(this.controls) {\n      this.getControlsByCategoryId(this.selectedCategory);\n    }\n    if(this.noControls) {\n      this.getNotOnVComplyControls();\n    }\n  }\n\n  /**\n   * When the page changes, set the current page to the new page and get the controls.\n   * @param {number} event - number - the page number that was clicked\n   */\n  controlPageChange(event: number) {\n    this.controlData.currentPage = event;\n    if(this.controls) {\n      this.getControls();\n    }\n    if(this.noControls) {\n      this.getNotOnVComplyControls();\n    }\n  }\n\n  resetProgramVariable() {\n    this.programSortValue = 0;\n    this.programData.currentPage = 1;\n  }\n  resetCategoryVariable () {\n    this.categorySortValue = 0;\n    this.categoryData.currentPage = 1;\n  }\n  resetControlVariable () {\n    this.controlSortValue = 0;\n    this.controlData.currentPage = 1;\n  }\n\n  /**\n   * When the user selects a control, the selectedControls array is updated with the selected control.\n   * @param {any} event - any - this is the event that is triggered when the user selects a control.\n   */\n  updatedSelectedControls(event: any){\n    if(this.controls) {\n      this.selectedControls = event?.selectedControls;\n    }\n    else {\n      this.selectedNoControls = event?.selectedControls;\n    }\n    this.updateSelectedValueCount([event?.control], event?.action)\n  }\n\n  /**\n   * This function is called when the child component emits an event, and it updates the\n   * deletedControls variable in the parent component.\n   * @param {any} event - any - this is the event that is being passed from the child component.\n   */\n  updatedDeletedControls(event: any){\n    this.deletedControls = event;\n  }\n\n  removeLinkedResponsibility(control: any){\n    if(control?.item_type?.toUpperCase() === 'REPORT'){\n      this.removeResponsibility(control);\n    }else{\n      this.removeNotOnVcomply(control);\n    }\n  }\n\n  /**\n   * It removes a control from the selectedControls array and adds it to the deletedControls array.\n   * @param {any} control - any - the control that is being removed\n   */\n  removeResponsibility(control: any) {\n    const index = this.selectedControls?.findIndex((el: any) => el.item_id === control?.item_id);\n    if (index !== -1) {\n      this.selectedControls.splice(index, 1);\n    }\n    const deleteIndex = this.previousSelectedControls.findIndex((el: any) => el?.item_id === control?.item_id);\n    if (deleteIndex !== -1 && !this.quickViewService?.isControlExist(this.deletedControls, control)) {\n      this.deletedControls.push(control);\n    }\n  }\n\n  removeNotOnVcomply(control: any) {\n    const index = this.selectedNoControls?.findIndex((el: any) => el.item_id === control?.item_id);\n    if (index !== -1) {\n      this.selectedNoControls.splice(index, 1);\n    }\n    const deleteIndex = this.previousSelectedNoControls.findIndex((el: any) => el?.item_id === control?.item_id);\n    if (deleteIndex !== -1 && !this.quickViewService?.isControlExist(this.deletedNoControls, control)) {\n      this.deletedNoControls.push(control);\n    }\n  }\n\n  /**\n   * \"The function next() is called when the user clicks the next button in the dialog. The function\n   * closes the dialog and passes the selected controls and deleted controls to the parent component.\"\n   * </code>\n   */\n  next() {\n    let allSelectedControlsData = {'data': this.selectedControls, 'deletedReports': this.deletedControls};\n    let allSelectedNoControlData = {'data': this.selectedNoControls, 'deletedReports': this.deletedNoControls};\n      this.dialog.close({\n        action: 'NEXT',\n        inVcomply: allSelectedControlsData,\n        notInVcomply: allSelectedNoControlData,\n      });\n  }\n\n  cancel() {\n    console.log(\"cancel click\")\n    this.selectedControls = [... this.previousSelectedControls];\n    this.selectedNoControls = [... this.previousSelectedNoControls];\n    let allSelectedControlsData = {'data': this.selectedControls, 'deletedReports': []};\n    let allSelectedNoControlData = {'data': this.selectedNoControls, 'deletedReports': []};\n      this.dialog.close({\n        action: 'CLOSED',\n        inVcomply: allSelectedControlsData,\n        notInVcomply: allSelectedNoControlData,\n      });\n  }\n\n  /**\n   * It takes an array of objects, and for each object, it takes an array of strings, and for each\n   * string, it finds the object in another array that has a matching string, and then it increments or\n   * decrements a property of that object.\n   * @param {any[]} selectedControls - any[] - this is an array of objects that contain a property\n   * called programTypeArr which is an array of strings.\n   * @param {boolean} action - boolean - true if the checkbox is checked, false if it's unchecked\n   */\n  updateSelectedValueCount(selectedControls: any[], action: boolean) {\n    if(selectedControls?.length){\n      selectedControls?.forEach((control: any) => {\n        control?.programTypeArr?.forEach( (programType: any) => {\n          const index = this.programTypes?.findIndex((el: any) => el?.type === programType);\n          if(index !== -1) {\n            this.programTypes[index].selectedValue = action ? this.programTypes[index]?.selectedValue + 1 : this.programTypes[index]?.selectedValue - 1;\n          }\n        })\n      });\n    }\n  }\n\n  /**\n   * It takes an array of objects, and if the object has a property called item_id, it will find the\n   * object in the array of objects that has the same item_id and update the effectiveness property of\n   * that object.\n   *\n   * I'm trying to write a test for this function, but I'm having trouble figuring out how to mock the\n   * data.\n   *\n   * Here's what I have so far:\n   * @param {any[]} selectedControls - any[] = [{item_id: 1, effectiveness: 'High'}, {item_id: 2,\n   * effectiveness: 'Low'}]\n   */\n  updateEffectivenessOnLoad(selectedControls: any[]) {\n    if(selectedControls?.length) {\n      selectedControls.forEach( (responsibility: any) => {\n        const index = this.controlData?.data?.findIndex((control: any) => control?.item_id === responsibility?.item_id);\n        if(index !== -1){\n          this.controlData.data[index].effectiveness = responsibility?.effectiveness;\n        }\n      })\n    }\n  }\n\n  getCountOfDifferentControls() {\n    const payload= {\n      \"filterData\": { \"appList\": [], \"riskIds\": [], \"reviewerId\": [], \"responsibilityCenter\": this.selectedRCIds, \"entrustedBy\": [], \"entrustedTo\": [], \"responsibilityCategory\": [] }\n    }\n    this.subscriptions.add(this.quickViewService?.getCountOfDifferentControls(payload).subscribe( (ele: any) => {\n      this.controlsCount = ele;\n    }))\n  }\n\n  /**\n   * If the selectedRC object has a child_ids_arr property, then set the selectedRCIds array to the\n   * value of the child_ids_arr property. Otherwise, set the selectedRCIds array to an empty array.\n   * Then, push the rc_id property of the selectedRC object to the selectedRCIds array.\n   */\n  setRCIdWithChildIds() {\n    this.selectedRCIds = [];\n    if(this.selectedRC?.child_ids_arr?.length){\n      this.selectedRCIds = this.selectedRC?.child_ids_arr;\n    }\n    this.selectedRCIds?.push(this.selectedRC?.rc_id);\n  }\n\n  /**\n   * If the calledFrom parameter is null, undefined, or an empty string, then the pageName is set to\n   * 'Controls'.\n   * If the calledFrom parameter is 'RESIDUAL RISK ASSESSMENT', then the pageName is set to 'Controls'.\n   *\n   * If the calledFrom parameter is 'TREATMENT PLAN', then the pageName is set to 'Treatment Plan'.\n   * If the calledFrom parameter is anything else, then the pageName is set to 'Controls'.\n   * </code>\n   * @param {string} calledFrom - string = 'Residual Risk Assessment'\n   */\n  getPageName(calledFrom: string){\n    switch(calledFrom?.toUpperCase()){\n      case 'RESIDUAL RISK ASSESSMENT':\n        this.pageName = 'Controls';\n        this.title = 'Control';\n        break;\n      case 'TREATMENT PLAN':\n        this.pageName = 'Treatment Plan';\n        this.title = 'Treatment Plan';\n        break;\n      default :\n        this.pageName = 'Controls';\n        break;\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<div class=\"link-control-dialog\">\n    <div class=\"link-control-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-mb-1\">\n        <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt vx-d-flex vx-align-center\">\n            Link {{pageName}} for:\n            <em class=\"rc-name vx-fw-400 vx-paragraph-txt vx-ml-1\" [appTooltip]=\"'Banking'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedRC?.rc_name}}</em>\n        </div>\n        <button (click)=\"closeForm()\" class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'[Esc] to close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i></button>\n    </div>\n    <div class=\"link-control-dialog-body vx-p-4 vx-pt-0\">\n        <div class=\"link-control-dialog-tabs vx-d-flex vx-align-center vx-mb-2\">\n            <button (click)=\"clickControls()\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pt-2 vx-pb-2 vx-m-0 vx-d-flex vx-align-center\" [class.active]=\"controls\">\n                {{pageName}} IN VCOMPLY <span class=\"count vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{controlsCount?.controlsOnVcomplyCount}}</span>\n            </button>\n            <button (click)=\"clickNoControls()\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pt-2 vx-pb-2 vx-m-0 vx-d-flex vx-align-center\" [class.active]=\"noControls\">\n                {{pageName}} NOT IN VCOMPLY <span class=\"count vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{controlsCount?.controlsNotOnVcomplyCount}}</span>\n            </button>\n        </div>\n        <ng-container *ngIf=\"controls\">\n            <div class=\"vx-d-flex vx-mb-2\">\n                <div *ngIf=\"programCountLoader\" class=\"vx-d-flex vx-mb-2 vx-w-100\">\n                    <app-table-card-loader *ngFor=\"let data of [1, 1, 1, 1]\"></app-table-card-loader>\n                </div>\n                <ng-container *ngIf=\"!programCountLoader\">\n                    <div *ngFor=\"let tab of programTypes\" class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" (click)=\"selectProgramType(tab)\" [class.active]=\"selectedTab === tab?.code\">\n                        <div class=\"left vx-d-block vx-w-100\">\n                            <div class=\"label vx-d-flex vx-align-center\">\n                                <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">{{tab?.name}}</label>\n                            </div>\n                            <div *ngIf=\"tab?.selectedValue > 0\" class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mt-1\">{{tab?.selectedValue}} {{tab?.selectedValue === 1 ? 'RESPONSIBILITY' : 'RESPONSIBILITIES'}} SELECTED AS {{title}}</div>\n                        </div>\n                        <div class=\"right vx-d-flex vx-justify-end\">\n                            <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{tab?.count}}</span>\n                        </div>\n                    </div>\n                </ng-container>\n                <!-- <div class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"false\">\n                    <div class=\"left vx-d-block vx-w-100\">\n                        <div class=\"label vx-d-flex vx-align-center\">\n                            <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">STANDARDS</label>\n                        </div>\n                        <div *ngIf=\"false\" class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mt-1\">5 RESPONSIBILITIES SELECTED AS CONTROLS</div>\n                    </div>\n                    <div class=\"right vx-d-flex vx-justify-end\">\n                        <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">43</span>\n                    </div>\n                </div>\n                <div class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"false\">\n                    <div class=\"left vx-d-block vx-w-100\">\n                        <div class=\"label vx-d-flex vx-align-center\">\n                            <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">INTERNAL CONTROLS</label>\n                        </div>\n                        <div *ngIf=\"false\" class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mt-1\">5 RESPONSIBILITIES SELECTED AS CONTROLS</div>\n                    </div>\n                    <div class=\"right vx-d-flex vx-justify-end\">\n                        <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">85</span>\n                    </div>\n                </div>\n                <div class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"false\">\n                    <div class=\"left vx-d-block vx-w-100\">\n                        <div class=\"label vx-d-flex vx-align-center\">\n                            <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">OTHERS</label>\n                        </div>\n                        <div *ngIf=\"false\" class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mt-1\">5 RESPONSIBILITIES SELECTED AS CONTROLS</div>\n                    </div>\n                    <div class=\"right vx-d-flex vx-justify-end\">\n                        <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">27</span>\n                    </div>\n                </div> -->\n            </div>\n            <div class=\"link-control-dialog-search vx-mb-2\">\n                <i class=\"icons search-icon vx-fs-12\">&#xe90b;</i>\n                <input type=\"text\" (keyup.enter)=\"handleSearch($event)\" placeholder=\"Search Programs\">\n            </div>\n            <div class=\"create-btn-area\" *ngIf=\"showCreateControlButton\"><button (click)=\"createVComplyControl()\" class=\"create-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-6\">+ CREATE A {{title}}</button></div>\n            <div *ngIf=\"controls && (programData?.data?.length || programLoader)\" class=\"link-control-dialog-section vx-d-flex\">\n                <div class=\"link-control-dialog-column left vx-pr-1\">\n                    <app-controls-program-list\n                        [programData]=\"programData\"\n                        [loader]=\"programLoader\"\n                        (pageChange)=\"programPageChange($event)\"\n                        (getCategoryByProgramId)=\"getCategoryByProgramId($event)\"\n                        (listSorting)=\"programSort($event)\">\n                    </app-controls-program-list>\n                </div>\n                <div class=\"link-control-dialog-column mid vx-pr-1\">\n                    <app-controls-sub-category-list\n                        [categoryData]=\"categoryData\"\n                        [loader]=\"categoryLoader || programLoader\"\n                        (pageChange)=\"categoryPageChange($event)\"\n                        (getControlsByCategoryId)=\"getControlsByCategoryId($event)\"\n                        (listSorting)=\"categorySort($event)\">\n                    </app-controls-sub-category-list>\n                </div>\n                <div class=\"link-control-dialog-column right\">\n                    <app-controls-list\n                        [controlData]=\"controlData\"\n                        [pageName]=\"pageName\"\n                        [loader]=\"categoryLoader || programLoader || controlsLoader\"\n                        (pageChange)=\"controlPageChange($event)\"\n                        (listSorting)=\"controlSort($event)\"\n                        [type]=\"'inVcomply'\"\n                        [selectedControls]=\"selectedControls\"\n                        (selectedControlsChange)=\"updatedSelectedControls($event)\"\n                        [deletedControls]=\"deletedControls\"\n                        (deletedControlsChange)=\"updatedDeletedControls($event)\"\n                        [previousSelectedControls]=\"previousSelectedControls\">\n                    </app-controls-list>\n                </div>\n            </div>\n        </ng-container>\n        <ng-container *ngIf=\"noControls\">\n            <div class=\"link-control-dialog-search vx-mb-2\">\n                <i class=\"icons search-icon vx-fs-12\">&#xe90b;</i>\n                <input type=\"text\" (keyup.enter)=\"handleSearchNotOnVcomply($event)\" placeholder=\"Search {{title}} \">\n            </div>\n            <div class=\"create-btn-area\"><button (click)=\"createControl()\" class=\"create-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-6\"> + CREATE A {{title}} NOT IN VCOMPLY</button></div>\n            <app-controls-list\n                [controlData]=\"controlData\"\n                [loader]=\"controlsLoader\"\n                [pageName]=\"pageName\"\n                (pageChange)=\"controlPageChange($event)\"\n                (listSorting)=\"controlSort($event)\"\n                [type]=\"'notInVcomply'\"\n                [selectedControls]=\"selectedNoControls\"\n                (selectedControlsChange)=\"updatedSelectedControls($event)\"\n                [deletedControls]=\"deletedControls\"\n                (deletedControlsChange)=\"updatedDeletedControls($event)\"\n                [previousSelectedControls]=\"previousSelectedNoControls\">\n            </app-controls-list>\n        </ng-container>\n\n        <div *ngIf=\"(controls  && (programData?.data?.length || programLoader)) || (noControls && (controlData?.data?.length || controlsLoader))\" class=\"link-control-dialog-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-mt-2\">\n            <div class=\"vx-d-flex vx-align-center\">\n                <div class=\"chip vx-fs-12 vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-inline-flex vx-align-center vx-lh-6\" *ngIf=\"selectedControls?.length || selectedNoControls?.length\">\n                    <i *ngIf=\"selectedControls?.length >= 1\" class=\"icons cross vx-fs-9 vx-mr-1\" (click)=\"removeLinkedResponsibility(selectedControls[0])\">&#xe9ae;</i>\n                    <i *ngIf=\"selectedControls?.length < 1\" class=\"icons cross vx-fs-9 vx-mr-1\" (click)=\"removeLinkedResponsibility(selectedNoControls[0])\">&#xe9ae;</i>\n                    <div *ngIf=\"selectedControls?.length >= 1\" class=\"value\" [appTooltip]=\"selectedControls[0]?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedControls[0]?.item_name}}</div>\n                    <div *ngIf=\"selectedControls?.length < 1\" class=\"value\" [appTooltip]=\"selectedNoControls[0]?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedNoControls[0]?.item_name}}</div>\n                </div>\n                <button appPopover (click)=\"countPopup.popover()\" *ngIf=\"selectedControls?.concat(selectedNoControls)?.length > 1\" placement=\"left\" class=\"count vx-fs-12 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center vx-lh-6\">+{{selectedControls?.concat(selectedNoControls)?.length - 1}}</button>\n                <div *ngIf=\"selectedControls?.concat(selectedNoControls)?.length > 1\" class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2\">{{selectedControls?.concat(selectedNoControls)?.length == 2 ? 'Responsibility' : 'Responsibilities'}} selected as {{title.toLowerCase() == 'treatment plan' ? 'Treatment Plans' : 'Controls'}}</div>\n                <app-popover #countPopup [dontCloseonClick]=\"true\">\n                    <div class=\"action-list\">\n                        <ul class=\"action-item\">\n                          <li *ngFor=\"let responsibility of selectedControls?.concat(selectedNoControls) | slice: 1; let i = index\">\n                            <div class=\"avatar-card\">\n                                <i class=\"icons cross vx-fs-10 vx-txt-blue vx-mr-2\" (click)=\"removeLinkedResponsibility(responsibility)\">&#xe9ae;</i>\n                                <span class=\"value\" [appTooltip]=\"responsibility?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{responsibility?.item_name}}</span>\n                            </div>\n                          </li>\n                        </ul>\n                      </div>\n                </app-popover>\n                <!-- <div class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"selectedControls?.length && selectedNoControls?.length\">&</div>\n                <div class=\"chip vx-fs-12 vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-inline-flex vx-align-center vx-lh-6\" *ngIf=\"selectedNoControls?.length\">\n                    <i class=\"icons cross vx-fs-9 vx-mr-1\" (click)=\"removeNotOnVcomply(selectedNoControls[0])\">&#xe9ae;</i>\n                    <div class=\"value\" [appTooltip]=\"selectedNoControls[0]?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedNoControls[0]?.item_name}}</div>\n                </div>\n                <button appPopover (click)=\"countPopup1.popover()\" *ngIf=\"selectedNoControls?.length > 1\" placement=\"left\" class=\"count vx-fs-12 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center vx-lh-6\">+{{selectedNoControls?.length - 1}}</button>\n                <div *ngIf=\"selectedNoControls?.length > 1\" class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2\">{{selectedNoControls?.length == 2 ? 'Responsibility' : 'Responsibilities'}} selected as {{title == 'Control' ? 'Controls': 'Treatment Plans'}}</div>\n                <app-popover #countPopup1 [dontCloseonClick]=\"true\">\n                    <div class=\"action-list\">\n                        <ul class=\"action-item\">\n                          <li *ngFor=\"let notOnVcomply of selectedNoControls | slice: 1; let i = index\">\n                            <div class=\"avatar-card\">\n                                <i class=\"icons cross vx-fs-10 vx-txt-blue vx-mr-2\" (click)=\"removeNotOnVcomply(notOnVcomply)\">&#xe9ae;</i>\n                                <span class=\"value\" [appTooltip]=\"notOnVcomply?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{notOnVcomply?.item_name}}</span>\n                            </div>\n                          </li>\n                        </ul>\n                      </div>\n                </app-popover> -->\n            </div>\n            <div class=\"vx-d-flex vx-align-center\">\n                <button class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center vx-lh-6\" (click)=\"cancel()\">CANCEL</button>\n                <button  (click)=\"next()\" class=\"blue-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-lh-6\" [class.disabled]=\"selectedControls?.length === 0 && selectedNoControls?.length === 0\">NEXT <i class=\"icons vx-fs-16 vx-ml-2\">&#xe91e;</i></button>\n            </div>\n        </div>\n\n        <app-no-data *ngIf=\"controls && !programData?.data?.length && !programLoader\" [noDataImage]=\"'./assets/images/controls-not-nodata.svg'\" noDataText=\"You have not created any {{title}}. Click on the<br><strong class='vx-fw-500'>{{title}}</strong> button to begin.\"></app-no-data>\n    </div>\n</div>\n\n<!-- <app-vcomply-workflow-engine-container *ngIf=\"isWorkFlowOpen\" [selectedRC]=\"selectedRC?.rc_id\" [openedFrom]=\"'RISK_TREATMENT'\" (closeWorkflow)=\"closeWorkflow($event)\" [workflowType]=\"'CAR'\" [mode]=\"'CREATE'\" [id]=\"''\" [allowedWorkflows]=\"['RESPONSIBILITY']\" ></app-vcomply-workflow-engine-container> -->\n","import { Component, OnInit } from '@angular/core';\nimport { DialogConfig } from '../../dialog/dialog-config';\nimport { DialogRef } from '../../dialog/dialog-ref';\n\n@Component({\n  selector: 'app-link',\n  templateUrl: './link.component.html',\n  styleUrls: ['./link.component.less'],\n})\nexport class LinkComponent implements OnInit {\n  animation = false;\n  rcWithoutControl :any = [];\n  constructor(private dialog: DialogRef, public dialogConfig: DialogConfig) {\n    this.rcWithoutControl = this.dialogConfig?.data?.rcList\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  action(mode: string) {\n    this.dialog.close({ action: mode });\n  }\n}\n","<div class=\"alert-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n  <div class=\"alert-dialog-container\">\n    <div class=\"alert-dialog-body\">\n      <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\" >\n        <i class=\"icons link\">&#xeb35;</i>\n      </div>\n      <div class=\"vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center\">No responsibilities have been linked as controls to the<br>following Responsibility Center(s):</div>\n      <div class=\"vx-d-flex vx-justify-center\">\n        <span class=\"link-box vx-mt-5 vx-p-1 vx-d-flex vx-align-center vx-justify-center\">\n          <div class=\"vx-d-block\">\n            <div class=\"rc-name vx-fs-12 vx-paragraph-txt\" [appTooltip]=\"'dialogConfig?.data?.rcList[0]?.rcDetails?.rc_name'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ dialogConfig?.data?.rcList[0]?.rcDetails?.rc_name }}</div>\n            <div *ngIf=\"dialogConfig?.data?.rcList[0]?.rcDetails?.rc_name\" class=\"within-part vx-d-flex vx-align-center\">\n              <ng-container *ngIf=\"dialogConfig?.data?.rcList[0]?.rcDetails?.rc_tree?.length\" >\n                <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-1 vx-lh-3\">Within</div>\n                <div class=\"value vx-fs-11 vx-paragraph-txt\"><i class=\"icons vx-mr-1\">&#xe910;</i> {{ dialogConfig?.data?.rcList[0]?.rcDetails?.rc_tree }}</div>\n              </ng-container>\n            </div>\n          </div>\n          <button *ngIf=\"dialogConfig?.data?.rcList?.length > 1\" appPopover (click)=\"actionButton.popover()\" placement=\"right\" class=\"count vx-fs-9 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center vx-lh-4\">+{{ dialogConfig?.data?.rcList?.length - 1 }}</button>\n          <app-popover #actionButton>\n            <div class=\"action-list\">\n              <ul class=\"action-item\">\n                <li *ngFor=\"let rc of dialogConfig.data.rcList | slice: 1\">\n                  <div class=\"avatar-card\">\n                    <div class=\"vx-d-block vx-w-100\">\n                      <span class=\"value\">{{ rc?.rcDetails?.rc_tree }}</span>\n                      <div class=\"within\" *ngIf=\"rc?.rcDetails?.rc_tree\">\n                        <div class=\"block\">within</div>\n                        <div class=\"data\">{{ rc?.rcDetails?.rc_tree }}</div>\n                      </div>\n                    </div>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n        </span>\n      </div>\n      <div *ngIf=\"dialogConfig?.data?.isIRSvsRRS\" class=\"error-info vx-fs-12 vx-paragraph-txt vx-pt-2 vx-pb-2 vx-pr-3\">\n        <div class=\"icon-area vx-p-1 vx-d-flex vx-align-center vx-justify-center\"><img src=\"./assets/images/bulb.svg\"/></div>\n        Controls are used to mitigate risk. Where no controls have been linked to a risk, the inherent risk rating will be equal to the residual risk rating.\n      </div>\n    </div>\n    <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n      <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure that you don’t want to link any<br>responsibilities as controls?</p>\n      <div class=\"vx-d-flex vx-align-center\">\n        <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"action('NO')\">No</button>\n        <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"action('YES')\">Yes</button>\n      </div>\n    </div>\n  </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'residual-assessment-loader',\n  templateUrl: './residual-assessment-loader.component.html',\n  styleUrls: ['./residual-assessment-loader.component.less']\n})\nexport class ResidualAssessmentLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"residual-assessment-loader\">\n    <div class=\"table_header\">\n        <div class=\"table_row\">\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 responsibility-center\" [class.with-effectiveness]=\"true\">\n                <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 effectiveness\">\n                <div class=\"loader\"></div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 likelihood\">\n                <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 impact\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <div class=\"calculate-divition vx-fs-9 vx-fw-600 vx-paragraph-txt\"><i class=\"icons\">&#xe9ae;</i></div>\n                    <div class=\"vx-d-block\">\n                        <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 rating\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <div class=\"calculate-divition vx-fs-14 vx-fw-600 vx-paragraph-txt\">=</div>\n                    <div class=\"vx-d-block\">\n                        <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class=\"table_body\">\n        <div class=\"table_row\" *ngFor=\"let data of [1, 1, 1]\">\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center responsibility-center\" [class.with-effectiveness]=\"true\">\n                <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center effectiveness\">\n                <div class=\"loader list\"></div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center likelihood\">\n                <div class=\"vx-d-block\">\n                    <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n                </div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center impact\">\n                <div class=\"vx-d-block\">\n                    <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n                </div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center rating\">\n                <div class=\"loader list\"></div>\n            </div>\n        </div>\n    </div>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'controlCount',\n  pure: false,\n})\nexport class ControlCountPipe implements PipeTransform {\n  transform(value: any, ...args: any[]): any {\n    let count = 0;\n    if (value) {\n      value?.forEach((element: any) => {\n        count += element.treatment_score_log.length;\n      });\n      return count;\n    }\n  }\n}\n","import { DecimalPipe } from '@angular/common';\nimport { Component, EventEmitter, OnDestroy, OnInit, Pipe, PipeTransform } from '@angular/core';\nimport { RISK_QUICKVIEW_PROPERTIES } from '../../configurations';\nimport { DeleteComponent } from '../../ui-kit/action-dialog/delete/delete.component';\nimport { DialogService } from '../../ui-kit/dialog/dialog.service';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { ResidualRiskAssessmentDialogComponent } from '../residual-risk-assessment-dialog/residual-risk-assessment-dialog.component';\nimport { QuickViewService } from '../services/quick-view.service';\nimport { isEqual } from 'lodash-es';\nimport { LinkControlNotOnVComplyDialogComponent } from '../link-control/link-control-dialog/link-control-dialog.component';\nimport { LinkComponent } from '../../ui-kit/action-dialog/link/link.component';\nimport { MoveComponent } from '../../ui-kit/action-dialog/move/move.component';\nimport { EditResidualRiskRatingComponent } from '../edit-residual-risk-rating/edit-residual-risk-rating.component';\nimport { takeUntil } from 'rxjs';\nimport { ResponseStrategyDialogComponent } from '../response-strategy-dialog/response-strategy-dialog.component';\nimport { SubSink } from '../../subsink.class';\n\n@Pipe({ name: 'numberNAN' })\nexport class NumberPipe implements PipeTransform {\n  transform(value: any, args?: string) {\n    const pipe = new DecimalPipe('en-US');\n    value = isNaN(value) ? 0 : +value;\n    return pipe.transform(value, args);\n  }\n}\n@Component({\n  selector: 'app-quick-residual-risk-assessment',\n  templateUrl: './quick-residual-risk-assessment.component.html',\n  styleUrls: ['./quick-residual-risk-assessment.component.less'],\n  inputs: ['dueDateDetails', 'featureFlag'],\n  outputs:['openEditDialog']\n})\nexport class QuickResidualRiskAssessmentComponent implements OnInit, OnDestroy {\n  // dueDateDetails !: any;\n  residualDetails !:any;\n  riskDetails !: any;\n  settings !:any;\n  dueDateDetails !:any;\n  loader !:any;\n  riskType: Array<string> = ['likelihood', 'impact', 'velocity', 'vulnerability']\n  isEdit = false;\n  selectedEffectiveness !:any;\n  featureFlag!: any;\n  appState: any = {\n    containsError: false,\n    isErrorPanel: false,\n    errorPanelMessage: '',\n    showLoader: false,\n    totalTreatmentScore: 0,\n    deletedIds: [],\n    completeDisabled: false,\n    completeError: false,\n    editModeDisabled: true,\n    isActionTaken: false,\n    completeVisible: false,\n    isVersionEnabled: false,\n  };\n  deletedLinkedList:any = [];\n  riskStages = ['', 'Not specified', 'Accept', 'Transfer', 'Mitigate', 'Avoid' , 'Reassess'];\n  unsubscribe: any;\n  subscriptions:SubSink = new SubSink()\n  url = `https://${window.location.host}/compliance/#/compliance/responsibility-workroom/associated-risk?ReportId=`;\n  openEditDialog = new EventEmitter<any>();\n  constructor(public quickView:QuickViewService,private dialog:DialogService,private snackbar:SnackBarService) { }\n\n  ngOnInit(): void {\n    this.handleResidualRiskDataChange();\n  }\n\n  handleResidualRiskDataChange() {\n    this.setRiskDetails();\n  }\n\n  setRiskDetails() {\n    this.subscriptions.add(this.quickView.riskDetails$.subscribe({\n      next: (val:any) => { \n        this.riskDetails = val\n        if(val){\n          this.quickView.actionEmitter$.next('RESIDUAL');\n        }\n      }\n    }))\n\n    this.subscriptions.add(this.quickView.activeDueDateDetails$.subscribe({\n      next: (val:any) => { \n        this.dueDateDetails = val;\n      }\n    }))\n    \n    this.subscriptions.add(this.quickView.residualRiskDetails$.subscribe({\n      next: (val: any) => {\n        if(val){this.residualDetails = val;\n          this.initialDriver();}\n      }\n    }))\n    \n    this.subscriptions.add(this.quickView.riskOrgSettings$.subscribe({\n      next: (val:any) => { this.settings = val }\n    }))\n\n  }\n\n  async initialDriver() {\n    this.appState.totalTreatmentScore = this.calculateTotalRcScore(this.residualDetails);\n    if (this.dueDateDetails?.saveforLaterDetails?.ifTreatmentSFLByLoggedInMember > 0) {\n      const validatedData = await this.validateRCDataStatus(this.residualDetails, this.riskDetails.riskDetails.weightage_str, true);\n      this.residualDetails = await validatedData.residualDetails;\n      this.appState.totalTreatmentScore = this.calculateTotalRcScore(this.residualDetails);\n\n    }\n    if(this.dueDateDetails?.completionDetails?.isTreatmentCompleted == 0  && this.dueDateDetails?.saveforLaterDetails?.ifTreatmentSFLByLoggedInMember == 0){\n      this.isEdit = true;\n    }\n    this.checkCompleteButtonStatus();\n  }\n\n  edit(){\n    this.openEditDialog.emit({event:this.dueDateDetails?.completionDetails?.isTreatmentCompleted, stage:'RESIDUAL'});\n  }\n\n  parseWhole(int: any) {\n    return Math.round(int);\n  }\n  \n  get getClassName() {\n    const columnLength = this.riskDetails?.riskDetails?.weightage_str?.filter((ele: any) => ele > 0).length;\n    let className: string = ''\n\n    switch (columnLength) {\n      case 3: className = 'three-column'; break;\n      case 4: className = 'four-column'; break;\n      default: className = '';\n    }\n    return className;\n  }\n\n  openResidualAssessment(event?: any) {\n    if(this.dueDateDetails?.dueDateStatus.toUpperCase()  === 'CLOSE'){\n      return;\n    }\n    const ref = this.dialog.open(ResidualRiskAssessmentDialogComponent, {\n      data: {\n        manageRiskDetails: this.riskDetails,\n        residualDetails: this.residualDetails,\n        dueDateDetails: this.dueDateDetails,\n        rcIndex: event ?? 0,\n        applyAllRC:this.settings?.rr_rc_applicable ? true :false\n      },\n      position: 'RIGHT',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe({\n         next:(data:any)=>{\n          console.log(\"data ==>\", data, data?.refreshPage)\n          if(data?.refreshPage){\n            this.quickView.actionEmitter$.next({eventType:'RESIDUAL'})\n            this.isEdit = false;\n          }\n\n        }\n    })\n  }\n\n  linkControl(rcData: any, index: number) {\n    const selectedValue = this.divideControlsOnType(rcData?.treatment_score_log);\n    const ref = this.dialog.open(LinkControlNotOnVComplyDialogComponent, {\n      data: {\n        selectedRC: rcData?.rcDetails,\n        pageName: 'RESIDUAL RISK ASSESSMENT',\n        selectedControls: selectedValue?.onVComply,\n        selectedNoControls: selectedValue?.notOnVComply,\n        featureFlag: this.featureFlag,\n      },\n      position: 'RIGHT',\n      background: 'black',\n    });\n\n    ref.afterClosed.subscribe(async (data: any) => {\n\n      data?.inVcomply?.data?.forEach((ele: any) => {\n        ele.type = 'TREATMENT';\n      })\n      data?.notInVcomply?.data?.forEach((ele: any) => {\n        ele.type = 'TREATMENT';\n      })\n      if (data.action === 'CLOSED') {\n        this.residualDetails[index].treatment_score_log = [...data?.inVcomply?.data, ...data?.notInVcomply?.data];\n        if (data?.inVcomply?.deletedReports || data?.notInVcomply?.deletedReports) {\n          this.deletedLinkedList = [...data?.inVcomply?.deletedReports, ...data?.notInVcomply?.deletedReports]\n        }\n        return;\n      }\n      if (data.action === 'NEXT') {\n        this.residualDetails[index].treatment_score_log = [...data?.inVcomply?.data, ...data?.notInVcomply?.data];\n        if (data?.inVcomply?.deletedReports || data?.notInVcomply?.deletedReports) {\n          this.deletedLinkedList = [...data?.inVcomply?.deletedReports, ...data?.notInVcomply?.deletedReports]\n        }\n      }\n     // this.updateAfterRCPopupClosed(data.treatmentDetails);\n     this.initialDriver();\n    });\n  }\n\n  effectivenessPicker(planIndex: any, controlIndex: number, action: boolean) {\n    this.residualDetails[planIndex].treatment_score_log[controlIndex]['showEffectivenessPicker'] = action;\n    if(!action) {\n      this.residualDetails[planIndex].treatment_score_log[controlIndex].effectiveness = this.selectedEffectiveness;\n      this.selectedEffectiveness = { value: 0, name: '', color: '', description: '' };\n    }\n  }\n  getEffectivenessValue(event: any) {\n    this.selectedEffectiveness = event;\n  }\n\n  divideControlsOnType(treatment_score_log?: any) {\n    let onVComply: any = [];\n    let notOnVComply: any = [];\n    treatment_score_log?.forEach((ele: any) => {\n      if (ele?.item_type === 'REPORT') {\n        onVComply.push(ele);\n      } else {\n        notOnVComply.push(ele);\n      }\n    })\n    return {\n      onVComply: onVComply,\n      notOnVComply: notOnVComply\n    }\n  }\n\n  removeControl(rcIndex: number, controlIndex: number) {\n    const element: any = this.residualDetails[rcIndex].treatment_score_log[controlIndex];\n    const isLast = this.residualDetails[rcIndex].treatment_score_log.length > 1 ? false : true;\n    if (element) {\n      const deleteMsg =\n        this.residualDetails[rcIndex].treatment_score_log.length > 1\n          ? 'This action will remove the linked control.'\n          : 'This action will remove the linked control and update the residual risk score.';\n      const ref = this.dialog.open(DeleteComponent, {\n        data: { message: deleteMsg },\n        position: 'CENTER',\n        background: 'black',\n      });\n      ref.afterClosed.subscribe(async (data: any) => {\n        if (data) {      \n          const deletedElem = this.residualDetails[rcIndex].treatment_score_log[controlIndex];\n          this.appState.deletedIds.push(element);\n          this.residualDetails[rcIndex].treatment_score_log.splice(controlIndex, 1);\n          const temp = await this.validateRCDataStatus(this.residualDetails, this.riskDetails.riskDetails.weightage_str);\n          this.residualDetails = temp.residualDetails;\n          const PAYLOAD = {\n            treatment_details: this.residualDetails, // action_type= ADD, UPDATE_OWN, UPDATE_OTHER\n            deleted_items: [deletedElem],\n            residual_score: this.calculateTotalRcScore(this.residualDetails) ?? 0,\n            save_for_later: this.dueDateDetails.is_treatment_present === 0 ? 1 : 0, // this.riskDetails.residual_risk.is_save_for_later_on > 0 ? 0 : 1,\n            risk_id: this.riskDetails.riskId ?? 0,\n          };\n          this.subscriptions.add(this.quickView.saveTreatmentData(PAYLOAD).subscribe((res: any) => {\n            this.snackbar.show(RISK_QUICKVIEW_PROPERTIES.riskTreatment.controlRemoved, 'success');\n            this.checkCompleteButtonStatus();\n            if (isLast) {\n              this.refreshSingleAfterControlRemove(rcIndex);\n\n            }\n          }));\n        }\n      });\n    }\n  }\n  calculateTotalRcScore(residualDetails: any) {\n    console.log('Claculate Called', residualDetails);\n    let rcScore = 0;\n    residualDetails?.forEach((element: any) => {\n      rcScore = rcScore + parseFloat(element?.rc_score);\n    });\n    console.log(\"Claculate Called\",rcScore / residualDetails?.length)\n    return rcScore / residualDetails?.length;\n  }\n\n  async validateRCDataStatus(residualDetails: any, weightageStrArray: any = [], injectError?: boolean) {\n    const weightageStr = ['likelihood', 'impact', 'velocity', 'vulnerability'];\n    let containsError = false;\n    await residualDetails?.forEach((element: any, index: number) => {\n      element.errors = [];\n      for (const [key, value] of Object.entries(element.rc_rating_reason)) {\n        if (element.rc_rating_reason[key].rating < 1 && weightageStrArray[weightageStr.indexOf(key)] >= 10 && element.treatment_score_log.length > 0) {\n          if (injectError) {\n            element.errors.push(key);\n          }\n          containsError = true;\n        }\n      }\n    });\n    return { residualDetails, containsError };\n  }\n  async checkCompleteButtonStatus(type?: any) {\n    if (type === 'EFFECTIVENESS' && this.riskDetails.residual_risk.is_treatment_present !== 0) {\n      this.residualDetails?.forEach((element: any) => {\n        if (element.errors && element.errors.length === 0) {\n          delete element.errors;\n        }\n      });\n      if (isEqual(this.residualDetails, this.residualDetails)) {\n        this.appState.completeVisible = false;\n        return;\n      } else {\n        this.appState.completeVisible = true;\n        return;\n      }\n      this.appState.completeVisible = true;\n    }\n    if (this.riskDetails.riskDetails.assessment_marked_completed === false) {\n      (this.appState.completeDisabled = true),\n        (this.appState.errorPanelMessage = 'The Inherent Risk Assessment stage must be marked as complete before the residual risk assessment can be completed.');\n      return;\n    }\n    const validatedData = await this.validateRCDataStatus(this.residualDetails, this.riskDetails.riskDetails.weightage_str);\n    this.appState.completeDisabled = validatedData.containsError ?? false;\n    this.appState.containsError = validatedData.containsError ?? false;\n    this.appState.completeDisabled = this.checkPartiallyFilled();\n    // console.log('from complete',this.checkPartiallyFilled())\n    if (this.appState.completeDisabled || this.appState.containsError) {\n      this.appState.errorPanelMessage = 'To complete the residual risk assessment, please select the scores for each Responsibility Center that has a linked control.';\n    }\n    this.checkIRSvsRRS();\n  }\n\n  refreshSingleAfterControlRemove(rcIndex: number) {\n    this.subscriptions.add(this.quickView.fetchResidaulRiskDetails(this.riskDetails?.riskId, '', this.dueDateDetails?._id)\n      .subscribe((data: any) => {\n        console.log('DDDDAAAATTTTAAAA', data);\n        this.residualDetails[rcIndex].rc_rating = data[rcIndex].rc_rating;\n        this.residualDetails[rcIndex].rc_rating_reason = data[rcIndex].rc_rating_reason;\n        this.residualDetails[rcIndex].rc_score = data[rcIndex].rc_score;\n        this.residualDetails[rcIndex].treatment_score_log = data[rcIndex].treatment_score_log;\n        this.appState.totalTreatmentScore = this.calculateTotalRcScore(this.residualDetails);\n        this.initialDriver()\n      }));\n  }\n\n  checkPartiallyFilled() {\n    const enabledWeightage = this.riskDetails?.riskDetails?.weightage_str.filter((item: any) => item >= 10);\n    for (let i = 0; i < this.residualDetails?.length; i++) {\n      let counter = 0;\n      for (const [key, valuex] of Object.entries(this.residualDetails[i]?.rc_rating)) {\n        if (\n          this.riskDetails.riskDetails.weightage_details[key].value >= 10 &&\n          this.residualDetails[i].rc_rating_reason[key].rating > 0 &&\n          this.residualDetails[i].treatment_score_log.length > 0\n        ) {\n          counter = counter + 1;\n        }\n      }\n      if (counter > 0 && counter !== enabledWeightage.length) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  checkIRSvsRRS() {\n    this.appState.completeError = false;\n    if (parseFloat(this.dueDateDetails?.scores?.obtainedInherentScore) < parseFloat(this.appState.totalTreatmentScore.toFixed(2))) {\n      this.appState.completeError = true;\n      return true;\n    }\n    return false;\n  }\n\n  get FooterState(){\n    const state =  {\n      COMPLETE_STATE:'NORMAL', //DISABLED | ERROR | NORMAL| HIDDEN\n      COMPLETE_ERROR_MESSAGE:'',\n      SAVE_FOR_LATER:'NORMAL', // DISABLED | HIDDEN |NORMAL\n      TREATMENT_SCORE: this.appState.totalTreatmentScore\n    }\n    if(this.dueDateDetails.completionDetails?.isTreatmentCompleted){\n      state.SAVE_FOR_LATER = 'HIDDEN'\n    }\n    if(this.appState?.completeDisabled){\n      state.COMPLETE_STATE = 'DISABLED';\n      state.COMPLETE_ERROR_MESSAGE = this.appState?.errorPanelMessage\n    }else if(this.appState?.completeError){\n      if(this.dueDateDetails?.completionDetails?.ifAssessmentDoneByLoggedInMember > 0) {\n        state.COMPLETE_STATE = 'ERROR';\n        state.COMPLETE_ERROR_MESSAGE = 'The residual risk score cannot exceed the inherent risk score.';\n      } else {\n        state.COMPLETE_STATE = 'DISABLED';\n        state.COMPLETE_ERROR_MESSAGE =  'The Inherent Risk Assessment stage must be marked as complete before the residual risk assessment can be completed.';\n      }\n    }else if(!this.isEdit && this.dueDateDetails.completionDetails?.isTreatmentCompleted){\n      state.COMPLETE_STATE = 'HIDDEN';\n    }\n    return state\n  }\n\n  saveForLater(logDisabled = false, isComplete: any, redirectUrl: any, automation?: any, actionType?: any) {\n    this.appState.showLoader = true;\n    const PAYLOAD = {\n      due_date: this.dueDateDetails?._id,\n      treatment_details: this.residualDetails, // action_type= ADD, UPDATE_OWN, UPDATE_OTHER\n      deleted_items: this.appState.deletedIds,\n      residual_score: this.appState.totalTreatmentScore ?? 0,\n      save_for_later: isComplete ? 0 : 1,\n      risk_id: this.riskDetails.riskId ?? 0,\n      automation_apply: automation ?? 0,\n      logDisabled: logDisabled === true ? true : false,\n    };\n\n    this.subscriptions.add(this.quickView.saveTreatmentData(PAYLOAD).subscribe(\n      (res: any) => {\n       \n        this.appState.showLoader = false;\n        if (redirectUrl) {\n          window.location.href = redirectUrl;\n        }\n        //this.snackbar.show(isComplete ? RISK_QUICKVIEW_PROPERTIES.riskTreatment.treatmentCompleted : RISK_QUICKVIEW_PROPERTIES.riskTreatment.saveForLater, 'success');\n        if (!redirectUrl) {\n          if (this.dueDateDetails.is_treatment_present === 0) {\n           this.snackbar.show(isComplete ? RISK_QUICKVIEW_PROPERTIES.riskTreatment.treatmentCompleted : RISK_QUICKVIEW_PROPERTIES.riskTreatment.saveForLater, 'success');\n          } else if (this.riskDetails.residual_risk.is_treatment_present > 0) {\n           this.snackbar.show(isComplete ? RISK_QUICKVIEW_PROPERTIES.riskTreatment.treatmentMoreThanOnce : RISK_QUICKVIEW_PROPERTIES.riskTreatment.saveForLater, 'success');\n          }\n        }\n        if(isComplete) {\n          if(actionType !== 'move') {\n            this.showStrategy(this.dueDateDetails);\n          } else {\n            this.quickView.actionEmitter$.next({eventType:'RESIDUAL'})\n          }\n        }\n        if(isComplete && automation){\n          const automationStatus = this.checkForAutomation();\n          const stateIndex = automationStatus?.data?.response_strategy;\n          this.quickView.actionEmitter$({eventType:'REFRESH_RISK_DETAILS'})\n          //this.workroomService.refreshDueDateList$.next({type:'COMPLETE',payload:this.dueDateDetails, isResponseStrategy: this.riskStages[stateIndex]});\n\n        }else{\n          this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS'})\n          // this.refreshWorkroom.emit()\n          // this.fetchResidualData();\n        }\n        this.isEdit = false;\n        // this.dialogRef.close({treatmentDetails:this.treatmentDetails});\n      },\n      (error: any) => {\n        this.appState.showLoader = false;\n       this.snackbar.show(RISK_QUICKVIEW_PROPERTIES.errorMessage, 'alert');\n      }\n    ));\n  }\n  showStrategy(dueDate: any) {\n    console.log('this is the due date', dueDate);\n    if(dueDate?.dueDateStatus?.toUpperCase() === 'OPEN') {\n      if(!(['OVERSIGHT'].includes(this.riskDetails?.riskDetails?.LoginMemberType))) {\n        const ref = this.dialog.open(ResponseStrategyDialogComponent, {\n          data: {\n            dueDateDetails: dueDate,\n            riskInfo: this.riskDetails,\n            initialStage: dueDate.responseStrategyDetails.responseStrategyState,\n          },\n          position: 'RIGHT',\n          background: 'black',\n        })\n        .afterClosed.subscribe((res: any) => {\n          this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS', payload: ''});\n        })\n      } else {\n        this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS', payload: ''});\n      }\n    }\n  }\n  handleCompleteForAutomation() {\n    const automationStatus = this.checkForAutomation();\n    if (automationStatus.state === true) {\n      let message = '';\n      const stateIndex = automationStatus.data.response_strategy;\n      if ((automationStatus.data.mitigation_priority > 0 || automationStatus.data.treatment_required > 0) && automationStatus.data.response_strategy === 0) {\n        message = RISK_QUICKVIEW_PROPERTIES.riskTreatment.predefinedAutomationRules;\n      } else {\n        message = `This risk will now be moved to the <strong>'${this.riskStages[stateIndex]}'</strong>\n        state based on the automation criteria set by <strong>${this.riskDetails.org_settings.automation_set_by_name}</strong>.`;\n      }\n      const AUTO_REF = this.dialog.open(MoveComponent, {\n        data: { message },\n        position: 'CENTER',\n        background: 'black',\n      });\n      AUTO_REF.afterClosed.subscribe((res: any) => {\n        if (res === 'move') {\n          this.saveForLater(false, true, null, 1, 'move');\n        } else if (res === 'complete') {\n          this.saveForLater(false, true, null, 0);\n        }\n        this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS'})\n        this.quickView.actionEmitter$.next({eventType:'RESIDUAL'})\n       // this.workroomService.refreshDueDateList$.next({type:'COMPLETE',payload:this.dueDateDetails});\n\n      });\n    } else {\n      this.saveForLater(false, true, null, 0);\n      this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS'})\n      this.quickView.actionEmitter$.next({eventType:'RESIDUAL'})\n    }\n  }\n  checkForAutomation(): any {\n    if (\n      !this.riskDetails.riskDetails.workshop_id &&\n      this.riskDetails.org_settings.risk_automation_enable === 1 &&\n      this.riskDetails.org_settings.risk_automation.length > 0\n    ) {\n      for (const AUTOMATION of this.riskDetails.org_settings.risk_automation) {\n        if (AUTOMATION.appetite_id === this.riskDetails.riskDetails.riskAppetite.appetite_id) {\n          if (AUTOMATION.residual_automation_enable === 1) {\n            for (const RESIDUAL of AUTOMATION.residual_automation) {\n              if (RESIDUAL.mitigation_priority > 0 || RESIDUAL.response_strategy > 0 || RESIDUAL.treatment_required > 0) {\n                if (RESIDUAL.start === 0) {\n                  if (this.appState.totalTreatmentScore >= RESIDUAL.start && this.appState.totalTreatmentScore <= RESIDUAL.end) {\n                    return { state: true, data: RESIDUAL };\n                  }\n                } else {\n                  if (this.appState.totalTreatmentScore > RESIDUAL.start && this.appState.totalTreatmentScore <= RESIDUAL.end) {\n                    return { state: true, data: RESIDUAL };\n                  }\n                }\n              }\n            }\n          } else {\n            return { state: false };\n          }\n        }\n      }\n    } else {\n      return { state: false };\n    }\n    return { state: false };\n  }\n\n  completeTreatment() {\n    this.appState.isErrorPanel = false;\n    if (this.checkIRSvsRRS()) {\n      this.appState.isErrorPanel = true;\n      this.appState.errorPanelMessage = 'The residual risk score cannot exceed the inherent risk score.';\n    } else {\n      const rcWithoutControl = this.residualDetails.filter((rc: any) => rc.treatment_score_log.length === 0);\n      if (rcWithoutControl.length) {\n        const REF = this.dialog.open(LinkComponent, {\n          data: { rcList: rcWithoutControl, isIRSvsRRS: true },\n          position: 'CENTER',\n          background: 'black',\n        });\n        REF.afterClosed.subscribe((data: any) => {\n          if (data.action === 'YES') {\n            this.handleCompleteForAutomation();\n\n          }\n        });\n      } else {\n        this.handleCompleteForAutomation();\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n \n}\n","<div class=\"quick-residual-risk-assessment\">\n    <div class=\"top-value-area vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\n        <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"vx-fs-11 vx-txt-white vx-tt-uppercase\">\n                RESIDUAL RISK ASSESSMENT:\n                <div *ngIf=\"dueDateDetails?.completionDetails?.treatmentCompletedDate\" class=\"vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase\">{{dueDateDetails?.completionDetails?.treatmentCompletedDate}}</div>\n            </div>\n            <button *ngIf=\"dueDateDetails?.editButtonDetails?.treatment_edit_enable && !isEdit\" (click)=\"edit()\" class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4\"><i class=\"icons vx-fs-9 vx-fw-400 vx-mr-1\">&#xe90c;</i> Edit</button>\n        </div>\n        <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"rating-area vx-d-flex vx-align-center\">\n                <div *ngIf=\"!dueDateDetails?.scores?.obtainedResidualScore && !dueDateDetails?.scores?.residualRiskRatingType\" class=\"vx-fs-11 vx-txt-white\">--</div>\n                <ng-container *ngIf=\"dueDateDetails?.scores?.obtainedResidualScore && dueDateDetails?.scores?.residualRiskRatingType\">\n                    <div class=\"rating-number vx-fs-11 vx-fw-500 vx-txt-white\">{{dueDateDetails?.scores?.obtainedResidualScore}}</div>\n                    <div class=\"separator vx-mr-1\"></div>\n                    <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"dueDateDetails?.scores?.residualRiskRatingType?.toUpperCase()\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [style.color]=\"dueDateDetails?.scores?.residualRiskRatingColor\">{{dueDateDetails?.scores?.residualRiskRatingType}}</div>\n                </ng-container>\n            </div>\n            <div *ngIf=\"dueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"ckeck-circle vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons vx-fs-12 vx-txt-white\">&#xe91a;</i></div>\n        </div>\n    </div>\n\n    <!-- {{residualDetails|json}} -->\n    <residual-assessment-loader *ngIf=\"(quickView?.residualRiskDataLoadingState$|async) === 'LOADING' && !residualDetails\"></residual-assessment-loader>\n    <ng-container *ngIf=\"residualDetails\">\n        <div class=\"table_header\">\n            <div class=\"table_row\">\n                <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 responsibility-center\" [class.three-column]=\"false\" [class.four-column]=\"true\" [class.with-effectiveness]=\"true\">\n                    <div class=\"heading vx-d-flex vx-mb-1 vx-lh-4\">\n                        RESPONSIBILITY CENTER\n                        <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"'Responsibility Centers represent your organizational and operational infrastructure. You can specify which Responsibility Centers are impacted due to a risk. As a result, the risk will be assessed and mitigated in relation to the Responsibility Centers they affect.'\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                    <div class=\"draft-label vx-fs-10 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" *ngIf=\"dueDateDetails?.saveforLaterDetails?.ifTreatmentSFLByLoggedInMember\">DRAFT</div>\n                </div>\n                <div *ngIf=\"(residualDetails|controlCount) > 0 \" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 effectiveness\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                        EFFECTIVENESS\n                        <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"'Control effectiveness represents the effectiveness of the controls that act upon a particular risk. This includes those controls that affect the likelihood of the risk (sometimes called ‘preventive controls’ when the controls act to reduce the likelihood of negative consequences) and those that affect the consequences (sometimes called ‘mitigating controls’ when the controls act to reduce the negative consequences).'\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                </div>\n                <ng-container *ngFor=\"let factor of riskDetails?.riskDetails?.weightage_details | keyvalue; let i = index;\">\n                    <div *ngIf=\"factor?.value?.enabled\"  class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 {{riskType[i] | lowercase}}\" [ngClass]=\"getClassName\">\n                        <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                            <span class=\"heading-text\">{{riskType[i] | uppercase}}</span>\n                            <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"factor?.value?.description\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                        </div>\n                        <div class=\"weightage-text vx-fs-9 vx-fw-500 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\"><span class=\"weightage-label\">WEIGHTAGE</span>: <span class=\"vx-fs-11 vx-fw-400 vx-ml-1\">{{factor?.value?.value}}%</span></div>\n                    </div>\n                </ng-container>\n\n\n                <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 rating\" [ngClass]=\"getClassName\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                        <div class=\"calculate-divition vx-fs-14 vx-fw-600 vx-paragraph-txt\">=</div>\n                        RESIDUAL RISK RATING\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"table_body\">\n        <ng-container  *ngFor=\"let rcData of residualDetails; let i = index\">\n            <div class=\"table_row\">\n                <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center responsibility-center\" [ngClass]=\"getClassName\" [class.with-effectiveness]=\"true\">\n                    <div class=\"rc-icon vx-d-flex vx-align-center vx-justify-center vx-mr-2\"><i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe908;</i></div>\n                    <div class=\"rc-right\">\n                        <div class=\"rc-name vx-fs-13 vx-label-txt\" [appTooltip]=\"rcData?.rcDetails?.rc_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rcData?.rcDetails?.rc_name}}</div>\n                        <div class=\"within-part vx-d-flex vx-align-center\" *ngIf=\"rcData?.rcDetails?.parent_rc?.length > 0\">\n                            <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">Within</div>\n                            <div class=\"within-value vx-fs-11 vx-paragraph-txt\" [appTooltip]=\"rcData?.rcDetails?.parent_rc\"   placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rcData?.rcDetails?.parent_rc}}</div>\n                        </div>\n                    </div>\n                </div>\n                <div *ngIf=\"(residualDetails|controlCount) > 0\" class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center effectiveness\"></div>\n                <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center likelihood {{riskType[i] | lowercase}}\" [ngClass]=\"getClassName\">\n                    <div class=\"vx-d-block vx-w-100\">\n                        <div class=\"vx-d-flex vx-align-center vx-mb-3\">\n                            <div class=\"vx-fs-13 vx-paragraph-txt\">{{rcData?.rc_rating?.likelihood?.score | numberNAN :'1.0-2' }}</div>\n                            <i class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"rcData?.rc_rating?.likelihood?.calculation\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                        </div>\n                        <ng-container *ngIf=\"isEdit && (dueDateDetails?.dueDateStatus | uppercase)  === 'OPEN'\" >\n                        <div (click)=\"openResidualAssessment(i)\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                            <div *ngIf=\"rcData?.rc_rating_reason?.likelihood?.rating > 0\" class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"riskDetails?.org_settings.scoring_criteria?.likelihood.keys[parseWhole(rcData?.rc_rating_reason?.likelihood?.rating) - 1]?.value\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                [ngStyle]=\"{\n                                    color: riskDetails?.org_settings.scoring_criteria?.likelihood.keys[parseWhole(rcData?.rc_rating_reason?.likelihood?.rating) - 1]?.color,\n                                    backgroundColor: riskDetails?.org_settings.scoring_criteria?.likelihood.keys[parseWhole(rcData?.rc_rating_reason?.likelihood?.rating) - 1]?.color + '1A'\n                                }\">{{rcData?.rc_rating_reason?.likelihood?.rating + ' -'}}   {{riskDetails?.org_settings.scoring_criteria?.likelihood.keys[parseWhole(rcData?.rc_rating_reason?.likelihood?.rating) - 1]?.value}} </div>\n                            <div *ngIf=\"rcData?.rc_rating_reason?.likelihood?.rating == 0\" class=\"vx-fs-12\">{{'--'}}</div>\n                            <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                            <i *ngIf=\"rcData?.rc_rating_reason?.likelihood?.reason?.length\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-mr-2\" [appTooltip]=\"rcData?.rc_rating_reason?.likelihood?.reason\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe933;</i>\n                        </div>\n\n                        <!-- <div class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"rcData?.rc_rating?.likelihood?.score == 0\">--</div> -->\n                      </ng-container>\n                      <!-- <div class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"!isEdit && rcData?.rc_rating?.likelihood?.score == 0\">--</div> -->\n                      <div lass=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"!isEdit && rcData?.rc_rating_reason?.likelihood?.rating == 0\" class=\"vx-fs-12\">{{'--'}}</div>\n                      <div *ngIf=\"!isEdit && rcData?.rc_rating?.likelihood?.score > 0\" class=\"vx-d-flex vx-align-center\">\n                            <div class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"\n                            *ngIf=\"riskDetails?.org_settings.scoring_criteria?.likelihood?.keys[parseWhole(rcData?.rc_rating_reason?.likelihood?.rating) - 1]?.value\"\n                            [ngStyle]=\"{\n                                color: riskDetails?.org_settings.scoring_criteria?.likelihood.keys[parseWhole(rcData?.rc_rating_reason?.likelihood?.rating) - 1]?.color,\n                                backgroundColor: riskDetails?.org_settings.scoring_criteria?.likelihood.keys[parseWhole(rcData?.rc_rating_reason?.likelihood?.rating) - 1]?.color + '1A'\n                            }\"\n                            [appTooltip]=\"\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                                {{rcData?.rc_rating_reason?.likelihood?.rating + ' -'}} {{riskDetails?.org_settings.scoring_criteria?.likelihood?.keys[parseWhole(rcData?.rc_rating_reason?.likelihood?.rating) - 1]?.value}}\n                            </div>\n                            <i *ngIf=\"rcData?.rc_rating_reason?.likelihood?.reason?.length\" appPopover (click)=\"likelihoodPopup.popover()\" placement=\"top-center\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\">&#xe933;</i>\n                            <app-popover #likelihoodPopup>\n                                <div class=\"action-list\" style=\"margin-bottom: 4px;\">\n                                    <ul class=\"action-item\">\n                                        <div class=\"vx-fs-12 vx-label-txt vx-p-2\" [innerHTML]=\"rcData?.rc_rating_reason?.likelihood?.reason\"></div>\n                                    </ul>\n                                </div>\n                            </app-popover>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center impact {{riskType[i] | lowercase}}\" [ngClass]=\"getClassName\">\n                    <div class=\"vx-d-block vx-w-100\">\n                        <div class=\"vx-d-flex vx-align-center vx-mb-3\">\n                            <div class=\"vx-fs-13 vx-paragraph-txt\">{{rcData?.rc_rating?.impact?.score | numberNAN :'1.0-2' }}</div>\n                            <i class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"rcData?.rc_rating?.impact?.calculation\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                        </div>\n                        <ng-container *ngIf=\"isEdit && (dueDateDetails?.dueDateStatus | uppercase)  === 'OPEN'\">\n                        <div (click)=\"openResidualAssessment(i)\"  class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                            <div *ngIf=\"rcData?.rc_rating_reason?.impact?.rating > 0\" class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"riskDetails?.org_settings.scoring_criteria?.impact.keys[parseWhole(rcData?.rc_rating_reason?.impact?.rating) - 1]?.value\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                [ngStyle]=\"{\n                                    color: riskDetails?.org_settings.scoring_criteria?.impact.keys[parseWhole(rcData?.rc_rating_reason?.impact?.rating) - 1]?.color,\n                                    backgroundColor: riskDetails?.org_settings.scoring_criteria?.impact.keys[parseWhole(rcData?.rc_rating_reason?.impact?.rating) - 1]?.color + '1A'\n                                }\">{{rcData?.rc_rating_reason?.impact?.rating + ' -'}}   {{riskDetails?.org_settings.scoring_criteria?.impact.keys[parseWhole(rcData?.rc_rating_reason?.impact?.rating) - 1]?.value}} </div>\n                            <div *ngIf=\"rcData?.rc_rating_reason?.impact?.rating == 0\" class=\"vx-fs-12\">{{'--'}}</div>\n                            <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                            <i *ngIf=\"rcData?.rc_rating_reason?.impact?.reason?.length\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-mr-2\" [appTooltip]=\"rcData?.rc_rating_reason?.impact?.reason\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe933;</i>\n                        </div>\n                        <!-- <div class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"rcData?.rc_rating?.impact?.score == 0\">--</div> -->\n                      </ng-container>\n                      <!-- <div class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"!isEdit && rcData?.rc_rating?.impact?.score == 0\">--</div> -->\n                      <div lass=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"!isEdit && rcData?.rc_rating_reason?.impact?.rating == 0\" class=\"vx-fs-12\">{{'--'}}</div>\n                      <div *ngIf=\"!isEdit && rcData?.rc_rating?.impact?.score > 0\" class=\"vx-d-flex vx-align-center\">\n                            <div class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"\n                            *ngIf=\"riskDetails?.org_settings.scoring_criteria?.impact?.keys[parseWhole(rcData?.rc_rating_reason?.impact?.rating) - 1]?.value\"\n                            [ngStyle]=\"{\n                                color: riskDetails?.org_settings.scoring_criteria?.impact.keys[parseWhole(rcData?.rc_rating_reason?.impact?.rating) - 1]?.color,\n                                backgroundColor: riskDetails?.org_settings.scoring_criteria?.impact.keys[parseWhole(rcData?.rc_rating_reason?.impact?.rating) - 1]?.color + '1A'\n                            }\"\n                            [appTooltip]=\"\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                                {{rcData?.rc_rating_reason?.impact?.rating + ' -'}} {{riskDetails?.org_settings.scoring_criteria?.impact?.keys[parseWhole(rcData?.rc_rating_reason?.impact?.rating) - 1]?.value}}\n                            </div>\n                            <i *ngIf=\"rcData?.rc_rating_reason?.impact?.reason?.length\" appPopover (click)=\"impactPopup.popover()\" placement=\"top-center\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\">&#xe933;</i>\n                            <app-popover #impactPopup>\n                                <div class=\"action-list\" style=\"margin-bottom: 4px;\">\n                                    <ul class=\"action-item\">\n                                        <div class=\"vx-fs-12 vx-label-txt vx-p-2\" [innerHTML]=\"rcData?.rc_rating_reason?.impact?.reason\"></div>\n                                    </ul>\n                                </div>\n                            </app-popover>\n                        </div>\n                    </div>\n                </div>\n                <!-- velocity -->\n                <div *ngIf=\"riskDetails?.riskDetails?.weightage_str[2] !== 0\" class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center velocity{{riskType[i] | lowercase}}\" [ngClass]=\"getClassName\">\n                    <div class=\"vx-d-block vx-w-100\">\n                        <div class=\"vx-d-flex vx-align-center vx-mb-3\">\n                            <div class=\"vx-fs-13 vx-paragraph-txt\">{{rcData?.rc_rating?.velocity?.score | numberNAN :'1.0-2' }}</div>\n                            <i class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"rcData?.rc_rating?.velocity?.calculation\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                        </div>\n                        <ng-container *ngIf=\"isEdit && (dueDateDetails?.dueDateStatus | uppercase)  === 'OPEN'\">\n                        <div (click)=\"openResidualAssessment(i)\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                            <div *ngIf=\"rcData?.rc_rating_reason?.velocity?.rating > 0\" class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"riskDetails?.org_settings.scoring_criteria?.velocity.keys[parseWhole(rcData?.rc_rating_reason?.velocity?.rating) - 1]?.value\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                [ngStyle]=\"{\n                                    color: riskDetails?.org_settings.scoring_criteria?.velocity.keys[parseWhole(rcData?.rc_rating_reason?.velocity?.rating) - 1]?.color,\n                                    backgroundColor: riskDetails?.org_settings.scoring_criteria?.velocity.keys[parseWhole(rcData?.rc_rating_reason?.velocity?.rating) - 1]?.color + '1A'\n                                }\">{{rcData?.rc_rating_reason?.velocity?.rating + ' -'}}   {{riskDetails?.org_settings.scoring_criteria?.velocity.keys[parseWhole(rcData?.rc_rating_reason?.velocity?.rating) - 1]?.value}} </div>\n                            <div *ngIf=\"rcData?.rc_rating_reason?.velocity?.rating == 0\" class=\"vx-fs-12\">{{'--'}}</div>\n                            <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                            <i *ngIf=\"rcData?.rc_rating_reason?.velocity?.reason?.length\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-mr-2\" [appTooltip]=\"rcData?.rc_rating_reason?.velocity?.reason\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe933;</i>\n                        </div>\n\n                      </ng-container>\n                      <!-- <div class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"!isEdit && rcData?.rc_rating?.velocity?.score == 0\">--</div> -->\n                      <div lass=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"!isEdit && rcData?.rc_rating_reason?.velocity?.rating == 0\" class=\"vx-fs-12\">{{'--'}}</div>\n                        <div *ngIf=\"!isEdit && rcData?.rc_rating?.velocity?.score > 0\" class=\"vx-d-flex vx-align-center\">\n                            <div class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"\n                            *ngIf=\"riskDetails?.org_settings.scoring_criteria?.velocity?.keys[parseWhole(rcData?.rc_rating_reason?.velocity?.rating) - 1]?.value\"\n                            [ngStyle]=\"{\n                                color: riskDetails?.org_settings.scoring_criteria?.velocity.keys[parseWhole(rcData?.rc_rating_reason?.velocity?.rating) - 1]?.color,\n                                backgroundColor: riskDetails?.org_settings.scoring_criteria?.velocity.keys[parseWhole(rcData?.rc_rating_reason?.velocity?.rating) - 1]?.color + '1A'\n                            }\"\n                            [appTooltip]=\"\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                                {{rcData?.rc_rating_reason?.velocity?.rating + ' -'}} {{riskDetails?.org_settings.scoring_criteria?.velocity?.keys[parseWhole(rcData?.rc_rating_reason?.velocity?.rating) - 1]?.value}}\n                            </div>\n                            <i *ngIf=\"rcData?.rc_rating_reason?.velocity?.reason?.length\" appPopover (click)=\"velocityPopup.popover()\" placement=\"top-center\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\">&#xe933;</i>\n                            <app-popover #velocityPopup>\n                                <div class=\"action-list\" style=\"margin-bottom: 4px;\">\n                                    <ul class=\"action-item\">\n                                        <div class=\"vx-fs-12 vx-label-txt vx-p-2\" [innerHTML]=\"rcData?.rc_rating_reason?.velocity?.reason\"></div>\n                                    </ul>\n                                </div>\n                            </app-popover>\n                        </div>\n                    </div>\n                </div>\n                <!-- vurnebality -->\n                <div *ngIf=\"riskDetails?.riskDetails?.weightage_str[3] !== 0\" class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vulnerability {{riskType[i] | lowercase}}\" [ngClass]=\"getClassName\">\n                    <div class=\"vx-d-block vx-w-100\">\n                        <div class=\"vx-d-flex vx-align-center vx-mb-3\">\n                            <div class=\"vx-fs-13 vx-paragraph-txt\">{{rcData?.rc_rating?.vulnerability?.score | numberNAN :'1.0-2' }}</div>\n                            <i class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"rcData?.rc_rating?.vulnerability?.calculation\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                        </div>\n                        <ng-container *ngIf=\"isEdit && (dueDateDetails?.dueDateStatus | uppercase)  === 'OPEN'\">\n                        <div (click)=\"openResidualAssessment(i)\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                            <div *ngIf=\"rcData?.rc_rating_reason?.vulnerability?.rating > 0\" class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"riskDetails?.org_settings.scoring_criteria?.vulnerability.keys[parseWhole(rcData?.rc_rating_reason?.vulnerability?.rating) - 1]?.value\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                                [ngStyle]=\"{\n                                    color: riskDetails?.org_settings.scoring_criteria?.vulnerability.keys[parseWhole(rcData?.rc_rating_reason?.vulnerability?.rating) - 1]?.color,\n                                    backgroundColor: riskDetails?.org_settings.scoring_criteria?.vulnerability.keys[parseWhole(rcData?.rc_rating_reason?.vulnerability?.rating) - 1]?.color + '1A'\n                                }\">{{rcData?.rc_rating_reason?.vulnerability?.rating + ' -'}}   {{riskDetails?.org_settings.scoring_criteria?.vulnerability.keys[parseWhole(rcData?.rc_rating_reason?.vulnerability?.rating) - 1]?.value}} </div>\n                            <div *ngIf=\"rcData?.rc_rating_reason?.vulnerability?.rating == 0\" class=\"vx-fs-12\">{{'--'}}</div>\n                            <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                            <i *ngIf=\"rcData?.rc_rating_reason?.vulnerability?.reason?.length\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-mr-2\" [appTooltip]=\"rcData?.rc_rating_reason?.vulnerability?.reason\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe933;</i>\n                        </div>\n                        <!-- <div class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"rcData?.rc_rating?.vulnerability?.score == 0\">--</div> -->\n                      </ng-container>\n                      <!-- <div class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"!isEdit && rcData?.rc_rating?.vulnerability?.score == 0\">--</div> -->\n                      <div lass=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"!isEdit && rcData?.rc_rating_reason?.vulnerability?.rating == 0\" class=\"vx-fs-12\">{{'--'}}</div>\n                      <div *ngIf=\"!isEdit && rcData?.rc_rating?.vulnerability?.score > 0\" class=\"vx-d-flex vx-align-center\">\n                        <div  class=\"value vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"\n                        *ngIf=\"riskDetails?.org_settings.scoring_criteria?.vulnerability?.keys[parseWhole(rcData?.rc_rating_reason?.vulnerability?.rating) - 1]?.value\"\n                            [ngStyle]=\"{\n                                color: riskDetails?.org_settings.scoring_criteria?.vulnerability.keys[parseWhole(rcData?.rc_rating_reason?.vulnerability?.rating) - 1]?.color,\n                                backgroundColor: riskDetails?.org_settings.scoring_criteria?.vulnerability.keys[parseWhole(rcData?.rc_rating_reason?.vulnerability?.rating) - 1]?.color + '1A'\n                            }\"\n                            [appTooltip]=\"\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                                {{rcData?.rc_rating_reason?.vulnerability?.rating + ' -'}} {{riskDetails?.org_settings.scoring_criteria?.vulnerability?.keys[parseWhole(rcData?.rc_rating_reason?.vulnerability?.rating) - 1]?.value}}\n                            </div>\n                            <i *ngIf=\"rcData?.rc_rating_reason?.vulnerability?.reason?.length\" appPopover (click)=\"vulnerabilityPopup.popover()\" placement=\"top-center\" class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\">&#xe933;</i>\n                            <app-popover #vulnerabilityPopup>\n                                <div class=\"action-list\" style=\"margin-bottom: 4px;\">\n                                    <ul class=\"action-item\">\n                                        <div class=\"vx-fs-12 vx-label-txt vx-p-2\" [innerHTML]=\"rcData?.rc_rating_reason?.vulnerability?.reason\"></div>\n                                    </ul>\n                                </div>\n                            </app-popover>\n                        </div>\n                    </div>\n                </div>\n\n                <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center rating\">\n                    <ng-container  *ngIf=\"rcData?.rc_score\">\n                     <ng-container *ngIf=\"rcData?.rc_score | segmentFinder: riskDetails?.org_settings?.segments as segment\">\n                        <div class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt\">{{rcData?.rc_score}}</div>\n                        <div class=\"separator vx-mr-1\"></div>\n                        <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"segment?.segment_name\"\n                         placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n                         [ngStyle]=\"{\n                            color: segment?.segment_color,\n                            backgroundColor: segment?.segment_color + '1A'\n                          }\"\n                         >{{segment?.segment_name}}</div>\n                     </ng-container>\n                    </ng-container>\n                    <div *ngIf=\"!rcData?.rc_score\" class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt\">--</div>\n                </div>\n            </div>\n\n            <div class=\"table_row sub_table_row\" [class.disabled]=\"false\" *ngFor=\"let control of rcData?.treatment_score_log; let cIndex = index\">\n                <div class=\"table_column vx-p-1 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center responsibility-center\" [ngClass]=\"getClassName\" [class.with-effectiveness]=\"true\">\n                    <div class=\"vx-avatar md vx-mr-2\">\n\n                        <span *ngIf=\"!control?.user_details?.profile_pic\" class=\"blue\">{{ control?.user_details?.short_name }}</span>\n                        <img *ngIf=\"control?.user_details?.profile_pic\"  [src]=\" control?.user_details?.profile_pic | profile\" />\n\n                    </div>\n                    <div class=\"rc-right\">\n                        <div *ngIf=\"control?.item_type.toUpperCase() !== 'CONTROLS_NOT_ON_VCOMPLY'\" class=\"vx-fs-9 vx-fw-600 vx-txt-blue vx-tt-uppercase\">{{control?.control_id}}</div>\n                        <div class=\"vx-d-flex vx-align-center\">\n                            <a class=\"rc-name vx-fs-12 vx-txt-blue\" [href]=\"(dueDateDetails?.dueDateStatus | uppercase)  === 'CLOSE' ? 'javascript:void(0)' : url + control?.item_obj_id\"\n                            [class.no-click]=\"control?.item_type.toUpperCase() == 'CONTROLS_NOT_ON_VCOMPLY'\" [appTooltip]=\"control?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                                {{ control?.item_name }}\n                            </a>\n                            <!-- <i class=\"icons pending-icon vx-fs-16 vx-ml-2\" [appTooltip]=\"'Pending'\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe930;</i> -->\n                        </div>\n                    </div>\n                </div>\n                <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center effectiveness \">\n                    <ng-container *ngIf=\"(residualDetails|controlCount) > 0\">\n                    <div  *ngIf=\"isEdit\" (click)=\"effectivenessPicker(i, cIndex, true)\" placement=\"left\" class=\"select-box vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-between\">\n                        <div class=\"value vx-fs-12\" [style.color]=\"control?.effectiveness?.color\">{{control?.effectiveness?.name ? control?.effectiveness?.name : 'Select'}}</div>\n                        <div class=\"vx-d-flex vx-align-center\">\n                            <i class=\"icons vx-fs-12 vx-txt-blue vx-ml-2 vx-mr-2\" *ngIf=\"control?.effectiveness?.description && control?.effectiveness?.description?.length\">&#xe933;</i>\n                            <i class=\"icons vx-fs-8\">&#xe9e8;</i>\n                        </div>\n                    </div>\n                    <ng-container *ngIf=\"control?.showEffectivenessPicker\">\n                        <div class=\"overlay\" (click)=\"effectivenessPicker(i, cIndex, false)\"></div>\n                        <effectiveness-picker-dialog [selectedEffectiveness]=\"control?.effectiveness\" (selectedEffectivenessChange)=\"getEffectivenessValue($event)\"></effectiveness-picker-dialog>\n                    </ng-container>\n                    <div *ngIf=\"!isEdit\" class=\"value-area vx-d-flex vx-align-center vx-w-100\">\n                        <div class=\"value vx-fs-12\" [appTooltip]=\"control?.effectiveness?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [style.color]=\"control?.effectiveness?.color\" [tooltipMandatory]=\"false\" >\n                            {{control?.effectiveness?.name ? control?.effectiveness?.name : '--'}}\n                        </div>\n                        <i appPopover *ngIf=\"control?.effectiveness?.description && control?.effectiveness?.description?.length\" (click)=\"effectivenessPopup.popover()\" placement=\"top-center\" class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\">&#xe933;</i>\n                        <app-popover #effectivenessPopup>\n                            <div class=\"action-list\" style=\"margin-bottom: 4px;\">\n                                <ul class=\"action-item\">\n                                    <div class=\"vx-fs-12 vx-label-txt vx-p-2\">{{control?.effectiveness?.description}}</div>\n                                </ul>\n                            </div>\n                        </app-popover>\n                    </div>\n                  </ng-container>\n                </div>\n                <div class=\"table_column vx-p-3 vx-pl-4 vx-pr-4 vx-d-flex vx-align-center likelihood\" [ngClass]=\"getClassName\"></div>\n                <div class=\"table_column vx-p-3 vx-pl-4 vx-pr-4 vx-d-flex vx-align-center impact\" [ngClass]=\"getClassName\"></div>\n                <div *ngIf=\"riskDetails?.riskDetails?.weightage_str[2] !== 0\" class=\"table_column vx-p-3 vx-pl-4 vx-pr-4 vx-d-flex vx-align-center velocity\" [ngClass]=\"getClassName\"></div>\n                <div *ngIf=\"riskDetails?.riskDetails?.weightage_str[3] !== 0\" class=\"table_column vx-p-3 vx-pl-4 vx-pr-4 vx-d-flex vx-align-center vulnerability\" [ngClass]=\"getClassName\"></div>\n                <div class=\"table_column vx-p-3 vx-pl-4 vx-pr-4 vx-d-flex vx-align-center rating\" [ngClass]=\"getClassName\">\n                    <button [appTooltip]=\"'Remove'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" (click)=\"removeControl(i, cIndex)\" *ngIf=\"isEdit &&  (dueDateDetails?.dueDateStatus | uppercase)  === 'OPEN'\" class=\"remove-btn vx-fs-16 vx-txt-blue vx-p-0 vx-m-0\"><i class=\"icons\">&#xe923;</i></button>\n                </div>\n            </div>\n\n            <div class=\"table_row sub_table_row\">\n                <button *ngIf=\"isEdit && (dueDateDetails?.dueDateStatus | uppercase)  === 'OPEN'\" (click)=\"linkControl(rcData,i)\" class=\"link-control-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-lh-6\"><i class=\"icons vx-fs-12 vx-mr-2\">&#xe92f;</i> LINK CONTROLS</button>\n            </div>\n        </ng-container>\n        </div>\n    </ng-container>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'treatment-loader',\n  templateUrl: './treatment-loader.component.html',\n  styleUrls: ['./treatment-loader.component.less']\n})\nexport class TreatmentLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"treatment-loader\">\n    <div class=\"table_header\">\n        <div class=\"table_row\">\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 responsibility-center\" [class.with-effectiveness]=\"true\">\n                <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 effectiveness\">\n                <div class=\"loader\"></div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 likelihood\">\n                <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 impact\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <div class=\"calculate-divition vx-fs-9 vx-fw-600 vx-paragraph-txt\"><i class=\"icons\">&#xe9ae;</i></div>\n                    <div class=\"vx-d-block\">\n                        <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 rating\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <div class=\"calculate-divition vx-fs-14 vx-fw-600 vx-paragraph-txt\">=</div>\n                    <div class=\"vx-d-block\">\n                        <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class=\"table_body\">\n        <div class=\"table_row\" *ngFor=\"let data of [1, 1, 1]\">\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center responsibility-center\" [class.with-effectiveness]=\"true\">\n                <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center effectiveness\">\n                <div class=\"loader list\"></div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center likelihood\">\n                <div class=\"vx-d-block\">\n                    <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n                </div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center impact\">\n                <div class=\"vx-d-block\">\n                    <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n                </div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center rating\">\n                <div class=\"loader list\"></div>\n            </div>\n        </div>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { RISK_QUICKVIEW_PROPERTIES } from '../../configurations';\nimport { DeleteComponent } from '../../ui-kit/action-dialog/delete/delete.component';\nimport { DialogService } from '../../ui-kit/dialog/dialog.service';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { LinkControlNotOnVComplyDialogComponent } from '../link-control/link-control-dialog/link-control-dialog.component';\nimport { QuickViewService } from '../services/quick-view.service';\nimport { isEqual } from 'lodash';\nimport { SubSink } from '../../subsink.class';\n\n\n@Component({\n  selector: 'app-quick-treatment-plan',\n  templateUrl: './quick-treatment-plan.component.html',\n  styleUrls: ['./quick-treatment-plan.component.less'],\n  inputs: ['featureFlag'],\n})\nexport class QuickTreatmentPlanComponent implements OnInit, OnDestroy {\n\n  constructor( private dialog: DialogService,\n              public quickView: QuickViewService,\n              private snackBarService: SnackBarService,) { }\n\n  treatmentPlanData$:any = this.quickView.treatmentPlanData$;\n  riskType: Array<string> = ['likelihood', 'impact', 'velocity', 'vulnerability'];\n  riskDetails$:any = this.quickView.riskDetails$;\n  riskDetails: any;\n  treatmentData: any;\n  getClassName:string = '';\n  withEffectiveness: boolean = false;\n  selectedEffectiveness!: any;\n  editTreatment: boolean = false;\n  loader: boolean = true;\n  featureFlag!: any;\n  deletedLinkedItems: Array<any> = [];\n  activeDueDateDetails!: any;\n  deletedLinkedList: Array<any> = [];\n  refreshTreatmentData!: boolean;\n  subscriptions:SubSink = new SubSink()\n  url = `https://${window.location.host}/compliance/#/compliance/responsibility-workroom/associated-risk?ReportId=`\n  @Output() treatmentPayload = new EventEmitter<any>();\n  @Output() enableSaveText = new EventEmitter<any>();\n  @Output() editTreatmentEnable = new EventEmitter<any>();\n  @Output() disableActionButton = new EventEmitter<boolean>();\n  @Input('refreshTreatmentData') set setRefreshCondition(refresh: boolean) {\n    this.refreshTreatmentData = refresh;\n    if(this.refreshTreatmentData){\n      this.handleTreatmentPlanDataChange();\n      this.editTreatment = false;\n    }\n  }\n\n  ngOnInit(): void {\n    this.handleTreatmentPlanDataChange();\n    this.setRiskDetails();\n\n    this.subscriptions.add(this.quickView.isEditTreatmentButton$.subscribe({\n      next: (value: any) => {\n        if(value){\n          this.editTreatment = false;\n          this.handleTreatmentPlanDataChange();\n        }\n      }\n    }))\n\n    this.subscriptions.add(this.quickView.activeDueDateDetails$.subscribe({\n      next: (val:any) => {\n        this.activeDueDateDetails = val;\n        console.log(\" this.activeDueDateDetails\", this.activeDueDateDetails)\n        if(this.activeDueDateDetails?.completionDetails?.ifTreatmentPlanDoneByLoggedInMember < 1){\n          this.editTreatment = true;\n          this.editTreatmentEnable.emit(this.editTreatment);\n        }\n      }\n    }))\n  }\n\n  ngOnChanges() {\n    if(Object.keys(this.riskDetails)) {\n      console.log(\"hii\")\n      this.getClassName = this.className();\n      console.log(\"this.getClassName\",this.getClassName)\n    }\n  }\n\n\n\n  handleTreatmentPlanDataChange() {\n    this.loader = true;\n    if(this.loader) this.disableActionButton.emit(true)\n    this.subscriptions.add(this.quickView.treatmentPlanData$.subscribe({\n      next: (val: Array<any>) => {\n        if (val?.length) {\n          this.loader = false;\n          this.treatmentData = val;\n          this.disableActionButton?.emit(this.checkTreatmentScoreLength(this.treatmentData));\n          this.enableEffectiveness();\n          this.generateCreateTreatmentPayload();\n        }\n      },\n      error: (err: any) => {\n        this.loader = false;\n      }\n    }))\n  }\n\n  setRiskDetails() {\n    this.subscriptions.add(this.quickView.riskDetails$.subscribe({\n      next: (val:any) => {\n        this.riskDetails = val;\n        this.getClassName = this.className();\n      console.log(\"this.riskDetails in treatment plan\",this.riskDetails) }\n    }))\n  }\n\n   /**\n * It returns a string based on the length of the array.\n * @returns A string.\n */\n  className() {\n  console.log(\"this.riskDetails className\",this.riskDetails)\n  const columnLength = this.riskDetails?.riskDetails?.weightage_str?.filter((ele: any) => ele > 0).length;\n  let className: string = '';\n  switch(columnLength) {\n    case 3: className = 'three-column'; break;\n    case 4: className = 'four-column'; break;\n    default: className = '';\n  }\n  console.log(\"class nameee\",className)\n  return className;\n  }\n\n  /**\n * It opens a dialog box and when the dialog box is closed, it updates the data in the parent\n * component.\n * @param {any} [plan] - {\n * @param {any} [i] - index of the current row\n */\n  linkTreatmentPlan(plan?: any, i?:any) {\n    const selectedValue = this.divideControlsOnType(plan?.treatment_score_log);\n    console.log(\"linkTreatmentPlan -> plan\",plan)\n    console.log(\"this.treatmentData 11 in linking\",this.treatmentData)\n    const ref = this.dialog.open(LinkControlNotOnVComplyDialogComponent, {\n      data: {\n        selectedRC: plan?.rcDetails,\n        pageName: 'TREATMENT PLAN',\n        selectedControls: selectedValue?.onVComply,\n        selectedNoControls: selectedValue?.notOnVComply,\n        featureFlag: this.featureFlag,\n      },\n      position: 'RIGHT',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe(async (data: any) => {\n    console.log(\"data after closed\",data)\n      let index = this.treatmentData.findIndex((ele: any) =>ele.rc_id === plan?.rc_id);\n      console.log(\"linkTreatmentPlan index\",index)\n      //We are manipulating type key to link control.\n      data?.inVcomply?.data?.forEach((ele: any) => {\n        ele.type = 'TREATMENT_PLAN';\n      })\n      data?.notInVcomply?.data?.forEach((ele: any) => {\n        ele.type = 'TREATMENT_PLAN';\n      })\n      //end of manipulation of the key\n      if (data.action === 'CLOSED') {\n        this.treatmentData[index].treatment_score_log = [ ...data?.inVcomply?.data, ...data?.notInVcomply?.data];\n        if(data?.inVcomply?.deletedReports || data?.notInVcomply?.deletedReports)\n        {\n         this.deletedLinkedList = [...data?.inVcomply?.deletedReports, ...data?.notInVcomply?.deletedReports]\n        }\n        return;\n      }\n      if (data.action === 'NEXT') {\n        if (!isEqual(this.treatmentData[index].treatment_score_log, [ ...data?.inVcomply?.data, ...data?.notInVcomply?.data]))\n        {\n          this.enableSaveText.emit(true);\n        }else{\n          this.enableSaveText.emit(false);\n        }\n        this.treatmentData[index].treatment_score_log = [ ...data?.inVcomply?.data, ...data?.notInVcomply?.data];\n        console.log(\"this.treatmentData in linking\",this.treatmentData)\n        if(data?.inVcomply?.deletedReports || data?.notInVcomply?.deletedReports){\n          this.deletedLinkedList = [...data?.inVcomply?.deletedReports, ...data?.notInVcomply?.deletedReports]\n        }\n        this.enableEffectiveness();\n      }\n      this.disableActionButton?.emit(this.checkTreatmentScoreLength(this.treatmentData));\n      if (data.action === 'NAVIGATE_TO_CONTROL') {\n      }\n      this.generateCreateTreatmentPayload();\n      });\n  }\n\n    /**\n   * It takes the data from the form and creates a payload to be sent to the parent component.\n   */\n  generateCreateTreatmentPayload(){\n    const PAYLOAD = {\n      treatment_plan_details: this.treatmentData,\n      deleted_items: this.deletedLinkedList,\n      residual_score:  0,\n      save_for_later: 0,\n      risk_id: this.riskDetails?.riskId,\n      automation_apply: 0,\n      logDisabled: false,\n      due_date: this.activeDueDateDetails?._id,\n    }\n     this.treatmentPayload.emit(PAYLOAD)\n  }\n\n    /**\n   * \"If the item_type is REPORT, push it to onVComply, otherwise push it to notOnVComply.\"\n   * @param {any} [treatment_score_log] - [{\n   * @returns {\n    *   onVComply: [],\n    *   notOnVComply: []\n    * }\n    */\n   divideControlsOnType(treatment_score_log?: any){\n     let onVComply: any= [];\n     let notOnVComply: any= [];\n     treatment_score_log?.forEach((ele: any) => {\n       if(ele?.item_type === 'REPORT'){\n         onVComply.push(ele);\n       }else{\n         notOnVComply.push(ele);\n       }\n     })\n     return {\n       onVComply: onVComply,\n       notOnVComply: notOnVComply\n     }\n   }\n\n  checkTreatmentScoreLength(treatmentPlan: any){\n    let isNoTreatmentLogPresent: boolean = true;\n    treatmentPlan?.forEach((ele: any) => {\n      if(ele?.treatment_score_log. length > 0){\n        isNoTreatmentLogPresent = false;\n      }\n    })\n    return isNoTreatmentLogPresent;\n  }\n\n    /**\n * If the treatment_score_log array has a length greater than 0, then set the withEffectiveness\n * variable to true.\n */\n  enableEffectiveness(){\n    let checkEffectiveness: boolean = false;\n    console.log(\"this.treatmentData in effectiveness\",this.treatmentData)\n    this.treatmentData?.forEach((ele: any) => {\n      if(ele?.treatment_score_log?.length > 0){\n        checkEffectiveness = true;\n      }\n    })\n    this.withEffectiveness = checkEffectiveness;\n  }\n\n    /**\n   * It sets the value of a property (effectiveness) on an object in an array of objects (treatmentPlanData) when we close the picker.\n   * @param {any} planIndex - number\n   * @param {number} controlIndex - number, action: boolean\n   * @param {boolean} action - boolean - this is a boolean value that is passed in to determine whether\n   * to show or hide the picker.\n   */\n    effectivenessPicker(planIndex: any, controlIndex: number, action: boolean) {\n      this.treatmentData[planIndex].treatment_score_log[controlIndex]['showEffectivenessPicker'] = action;\n      if(!action) {\n        this.treatmentData[planIndex].treatment_score_log[controlIndex].effectiveness = this.selectedEffectiveness;\n        this.selectedEffectiveness = { value: 0, name: '', color: '', description: '' };\n        this.generateCreateTreatmentPayload();\n        this.enableEffectiveness();\n      }\n    }\n\n      /**\n   * The function is called when the user selects an option from the dropdown. The function then sets\n   * the selectedEffectiveness variable to the value of the option selected.\n   * @param {any} event - any - the event that is triggered when the user selects a value from the\n   * dropdown\n   */\n    getEffectivenessValue(event: any) {\n      this.enableSaveText.emit(true);\n      this.selectedEffectiveness = event;\n    }\n\n    editTreatmentPlan(event: any){\n      this.editTreatment = event;\n      this.editTreatmentEnable.emit(event);\n    }\n\n      /**\n   * It removes a linked control from the treatment plan.\n   * @param {any} [treatmentScore] - This is the object that I want to delete.\n   * @param {any} [rcIndex] - index of the responsibility centre.\n   */\n  removeLinkControl(treatmentScore?: any, rcIndex?: any){\n    const deleteMsg = this.treatmentData[rcIndex].treatment_score_log.length > 1 ? 'This action will remove the treatment plan.' : 'This action will remove the treatment plan and update the residual risk score.';\n    const ref = this.dialog.open(DeleteComponent, {\n      data: { message: deleteMsg },\n      position: 'CENTER',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe(async (data: any) => {\n      if (data) {\n        this.loader = true;\n        const index = this.treatmentData[rcIndex]?.treatment_score_log?.findIndex((el: any) => el.item_id === treatmentScore?.item_id);\n        if (index !== -1) {\n          this.treatmentData[rcIndex]?.treatment_score_log.splice(index, 1);\n        }\n        if (!this.quickView?.isControlExist(this.deletedLinkedItems, treatmentScore)) {\n          this.deletedLinkedItems.push(treatmentScore);\n        }\n      this.disableActionButton?.emit(this.checkTreatmentScoreLength(this.treatmentData));\n      const PAYLOAD = {\n        treatment_plan_details: this.treatmentData,\n        deleted_items: this.deletedLinkedItems,\n        residual_score:  0,\n        save_for_later: 0,\n        risk_id: this.riskDetails?.riskId,\n        automation_apply: 0,\n        logDisabled: false,\n        due_date: this.activeDueDateDetails?._id,\n      }\n      this.subscriptions.add(this.quickView?.createControlTreatmentPlan(PAYLOAD).subscribe({\n        next: (res: any) => {\n          this.loader = false;\n          this.snackBarService.show(RISK_QUICKVIEW_PROPERTIES.riskTreatment.treatmentPlanRemoved, 'success');\n          this.handleTreatmentPlanDataChange();\n          this.enableEffectiveness();\n        },\n        error: (err: any) =>{\n          this.snackBarService.show(RISK_QUICKVIEW_PROPERTIES.errorMessage, 'alert');\n        }}))\n       }\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n\n\n}\n","<div class=\"quick-treatment-plan\">\n    <div class=\"top-value-area vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\n        <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"vx-fs-11 vx-txt-white vx-tt-uppercase\">\n                TREATMENT PLANS:\n                <div *ngIf=\"true\" class=\"vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase\">{{activeDueDateDetails?.completionDetails?.treatmentPlanCompletedDate}}</div>\n            </div>\n            <button *ngIf=\"!editTreatment && activeDueDateDetails?.completionDetails?.ifTreatmentPlanDoneByLoggedInMember > 0\" (click)=\"editTreatmentPlan(true)\" class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4\"><i class=\"icons vx-fs-9 vx-fw-400 vx-mr-1\">&#xe90c;</i> Edit</button>\n        </div>\n        <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"rating-area vx-d-flex vx-align-center\">\n                <div *ngIf=\"!activeDueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"vx-fs-11 vx-txt-white\">--</div>\n                <ng-container *ngIf=\"activeDueDateDetails?.scores?.obtainedResidualScore && activeDueDateDetails?.scores?.residualRiskRatingType && activeDueDateDetails?.completionDetails?.isTreatmentCompleted\">\n                  <div class=\"rating-number vx-fs-11 vx-fw-500 vx-txt-white\">{{activeDueDateDetails?.scores?.obtainedResidualScore}}</div>\n                  <div class=\"separator vx-mr-1\"></div>\n                  <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"activeDueDateDetails?.scores?.residualRiskRatingType | uppercase\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [style.color]=\"activeDueDateDetails?.scores?.residualRiskRatingColor\">{{activeDueDateDetails?.scores?.residualRiskRatingType}}</div>\n              </ng-container>\n            </div>\n            <div *ngIf=\"activeDueDateDetails?.completionDetails?.isTreatmentPlanCompleted\" class=\"ckeck-circle vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons vx-fs-12 vx-txt-white\">&#xe91a;</i></div>\n        </div>\n    </div>\n\n    <treatment-loader *ngIf=\"loader\"></treatment-loader>\n    <ng-container *ngIf=\"!loader\">\n    <div class=\"table_header\">\n        <div class=\"table_row\">\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 responsibility-center\" [ngClass]=\"getClassName\">\n                <div class=\"heading vx-d-flex vx-mb-1 vx-lh-4\">\n                    RESPONSIBILITY CENTER\n                    <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"'Responsibility Centers represent your organizational and operational infrastructure. You can specify which Responsibility Centers are impacted due to a risk. As a result, the risk will be assessed and mitigated in relation to the Responsibility Centers they affect.'\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                </div>\n            </div>\n            <!-- <div *ngIf=\"withEffectiveness\" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 effectiveness\">\n                  <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\" >\n                    <span [appTooltip]=\"'Effectiveness'\" placement=\"bottom\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\">EFFECTIVEN...</span>\n                    <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"'Control effectiveness represents the effectiveness of the controls that act upon a particular risk. This includes those controls that affect the likelihood of the risk (sometimes called ‘preventive controls’ when the controls act to reduce the likelihood of negative consequences) and those that affect the consequences (sometimes called ‘mitigating controls’ when the controls act to reduce the negative consequences).'\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                </div>\n            </div> -->\n            <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.likelihood?.enabled\" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 likelihood\" [ngClass]=\"getClassName\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <span class=\"heading-text\">LIKELIHOOD</span>\n                    <i *ngIf=\"riskDetails?.riskDetails?.weightage_details?.likelihood?.description\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"riskDetails?.riskDetails?.weightage_details?.likelihood?.description\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                </div>\n                <div class=\"weightage-text vx-fs-9 vx-fw-500 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\"><span class=\"weightage-label\">WEIGHTAGE</span>: <span class=\"vx-fs-11 vx-fw-400 vx-ml-1\">{{riskDetails?.riskDetails?.weightage_details?.likelihood?.value}}%</span></div>\n            </div>\n            <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.impact?.enabled\" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 impact\" [ngClass]=\"getClassName\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <div class=\"calculate-divition vx-fs-9 vx-fw-600 vx-paragraph-txt\"><i class=\"icons\">&#xe9ae;</i></div>\n                    <span class=\"heading-text\">IMPACT</span>\n                    <i *ngIf=\"riskDetails?.riskDetails?.weightage_details?.impact?.description\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"riskDetails?.riskDetails?.weightage_details?.impact?.description\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                </div>\n                <div class=\"weightage-text vx-fs-9 vx-fw-500 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\"><span class=\"weightage-label\">WEIGHTAGE</span>: <span class=\"vx-fs-11 vx-fw-400 vx-ml-1\">{{riskDetails?.riskDetails?.weightage_details?.impact?.value}}%</span></div>\n            </div>\n            <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.velocity?.enabled\" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 velocity\" [ngClass]=\"getClassName\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <div class=\"calculate-divition vx-fs-9 vx-fw-600 vx-paragraph-txt\"><i class=\"icons\">&#xe9ae;</i></div>\n                    <span class=\"heading-text\">VELOCITY</span>\n                    <i *ngIf=\"riskDetails?.riskDetails?.weightage_details?.velocity?.description\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"riskDetails?.riskDetails?.weightage_details?.velocity?.description\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                </div>\n                <div class=\"weightage-text vx-fs-9 vx-fw-500 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\"><span class=\"weightage-label\">WEIGHTAGE</span>: <span class=\"vx-fs-11 vx-fw-400 vx-ml-1\">{{riskDetails?.riskDetails?.weightage_details?.velocity?.value}}%</span></div>\n            </div>\n            <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.vulnerability?.enabled\" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 vulnerability\" [ngClass]=\"getClassName\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <div class=\"calculate-divition vx-fs-9 vx-fw-600 vx-paragraph-txt\"><i class=\"icons\">&#xe9ae;</i></div>\n                    <span class=\"heading-text\">VULNERABILITY</span>\n                    <i *ngIf=\"riskDetails?.riskDetails?.weightage_details?.vulnerability?.description\" class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"riskDetails?.riskDetails?.weightage_details?.vulnerability?.description\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                </div>\n                <div class=\"weightage-text vx-fs-9 vx-fw-500 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\"><span class=\"weightage-label\">WEIGHTAGE</span>: <span class=\"vx-fs-11 vx-fw-400 vx-ml-1\">{{riskDetails?.riskDetails?.weightage_details?.vulnerability?.value}}%</span></div>\n            </div>\n            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 rating\">\n                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                    <div class=\"calculate-divition vx-fs-14 vx-fw-600 vx-paragraph-txt\">=</div>\n                    RESIDUAL RISK RATING\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class=\"table_body\">\n      <ng-container *ngFor=\"let plan of treatmentData; let i = index\">\n        <div class=\"table_row\">\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center responsibility-center\" [ngClass]=\"getClassName\">\n                <div class=\"rc-icon vx-d-flex vx-align-center vx-justify-center vx-mr-2\"><i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe908;</i></div>\n                <div class=\"rc-right\">\n                    <div class=\"rc-name vx-fs-13 vx-label-txt\" [appTooltip]=\"plan?.rcDetails?.rc_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{plan?.rcDetails?.rc_name}}</div>\n                    <div class=\"within-part vx-d-flex vx-align-center\">\n                        <div *ngIf=\"plan?.rcDetails?.parent_rc\" class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">Within</div>\n                        <div class=\"within-value vx-fs-11 vx-paragraph-txt\" [appTooltip]=\"plan?.rcDetails?.parent_rc\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ plan?.rcDetails?.parent_rc }}</div>\n                      </div>\n                </div>\n            </div>\n            <!-- <div *ngIf=\"withEffectiveness\" class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center effectiveness\"></div> -->\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center likelihood\" [ngClass]=\"getClassName\">\n                <div class=\"vx-d-block vx-w-100\">\n                    <div *ngIf=\"plan?.rc_rating?.likelihood?.score\" class=\"vx-d-flex vx-align-center\">\n                        <div class=\"vx-fs-13 vx-paragraph-txt\">{{ plan?.rc_rating?.likelihood?.score }}</div>\n                        <i class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"plan?.rc_rating?.likelihood?.calculation\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                    </div>\n                    <div *ngIf=\"!plan?.rc_rating?.likelihood?.score\" class=\"vx-fs-12 vx-paragraph-txt\">--</div>\n                </div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center impact\" [ngClass]=\"getClassName\">\n                <div class=\"vx-d-block vx-w-100\">\n                    <div *ngIf=\"plan?.rc_rating?.impact?.score\" class=\"vx-d-flex vx-align-center\">\n                        <div class=\"vx-fs-13 vx-paragraph-txt\">{{ plan?.rc_rating?.impact?.score }}</div>\n                        <i class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"plan?.rc_rating?.impact?.calculation\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                    </div>\n                    <div *ngIf=\"!plan?.rc_rating?.impact?.score\" class=\"vx-fs-12 vx-paragraph-txt\">--</div>\n                </div>\n            </div>\n            <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.velocity?.enabled\" class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center velocity\" [ngClass]=\"getClassName\">\n                <div class=\"vx-d-block vx-w-100\">\n                    <div *ngIf=\"plan?.rc_rating?.velocity?.score\" class=\"vx-d-flex vx-align-center\">\n                        <div class=\"vx-fs-13 vx-paragraph-txt\">{{ plan?.rc_rating?.velocity?.score }}</div>\n                        <i class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"plan?.rc_rating?.velocity?.calculation\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                    </div>\n                    <div *ngIf=\"!plan?.rc_rating?.velocity?.score\" class=\"vx-fs-12 vx-paragraph-txt\">--</div>\n                </div>\n            </div>\n            <div *ngIf=\"riskDetails?.riskDetails?.weightage_details?.vulnerability?.enabled\" class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vulnerability\" [ngClass]=\"getClassName\">\n                <div class=\"vx-d-block vx-w-100\">\n                    <div *ngIf=\"plan?.rc_rating?.vulnerability?.score\" class=\"vx-d-flex vx-align-center\">\n                        <div class=\"vx-fs-13 vx-paragraph-txt\">{{plan?.rc_rating?.vulnerability?.score}}</div>\n                        <i class=\"icons info-icon vx-fs-13 vx-txt-blue vx-ml-2\" [appTooltip]=\"plan?.rc_rating?.vulnerability?.calculation\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n                    </div>\n                    <div *ngIf=\"!plan?.rc_rating?.vulnerability?.score\" class=\"vx-fs-12 vx-paragraph-txt\">--</div>\n                </div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center rating\" [ngClass]=\"getClassName\">\n                <ng-container *ngIf=\"plan?.rc_score| segmentFinder: riskDetails?.org_settings?.segments as segment\">\n                    <div *ngIf=\"plan?.rc_score\" class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt\">{{ plan?.rc_score }}</div>\n                    <div *ngIf=\"!plan?.rc_score\" class=\"vx-fs-12 vx-paragraph-txt\">--</div>\n                    <div *ngIf=\"plan?.rc_score\" class=\"separator vx-mr-1\"></div>\n                    <div *ngIf=\"plan?.rc_score\" class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"segment?.segment_name\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [ngStyle]=\"{ color: segment?.segment_color, backgroundColor: segment?.segment_color + '1A' }\">{{ segment?.segment_name }}</div>\n                </ng-container>\n                <div *ngIf=\"false\" class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt\">--</div>\n            </div>\n        </div>\n        <div *ngIf=\"plan?.treatment_score_log?.length > 0\" class=\"table_header\">\n            <div class=\"table_row\">\n                <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 responsibility-center\" [ngClass]=\"getClassName\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-lh-4\">TREATMENT PLANS</div>\n                </div>\n                <!-- <div *ngIf=\"withEffectiveness\" class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 effectiveness\">\n                    <div  class=\"heading vx-d-flex vx-align-center vx-lh-4\">\n                       <span [appTooltip]=\"'Effectiveness'\" placement=\"bottom\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\"> EFFECTIVEN... </span>\n                        <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"'Control effectiveness represents the effectiveness of the controls that act upon a particular risk. This includes those controls that affect the likelihood of the risk (sometimes called ‘preventive controls’ when the controls act to reduce the likelihood of negative consequences) and those that affect the consequences (sometimes called ‘mitigating controls’ when the controls act to reduce the negative consequences).'\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                </div> -->\n                <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 likelihood\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-lh-4\">\n                        FREQUENCY\n                        <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"'This shows the frequency of the responsibility.'\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                </div>\n                <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 impact\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-lh-4\">\n                        PERFORMANCE\n                        <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"'This shows the performance of the responsibility.'\" placement=\"bottom\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                </div>\n                <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 rating\">\n                    <div class=\"heading vx-d-flex vx-align-center vx-lh-4\">STATUS</div>\n                </div>\n            </div>\n        </div>\n        <div class=\"table_row sub_table_row\" [class.disabled]=\"false\" *ngFor=\"let treatmentScore of plan?.treatment_score_log; let j = index\">\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center responsibility-center\" [ngClass]=\"getClassName\">\n                <div class=\"vx-avatar md vx-mr-2\">\n                    <span *ngIf=\"!treatmentScore?.user_details?.profile_pic\" class=\"blue\">{{treatmentScore?.user_details?.short_name}}</span>\n                    <img *ngIf=\"treatmentScore?.user_details?.profile_pic\"  [src]=\"treatmentScore?.user_details?.profile_pic | profile\" />\n                </div>\n                <div class=\"rc-right\">\n                    <div *ngIf=\"treatmentScore?.item_type.toUpperCase() != 'CONTROLS_NOT_ON_VCOMPLY'\" class=\"vx-fs-9 vx-fw-600 vx-txt-blue vx-tt-uppercase\">{{treatmentScore?.control_id}}</div>\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <a class=\"rc-name vx-fs-12 vx-txt-blue\" [class.no-click]=\"treatmentScore?.item_type.toUpperCase() == 'CONTROLS_NOT_ON_VCOMPLY'\" [href]=\"(activeDueDateDetails?.dueDateStatus | uppercase)  === 'CLOSE'? 'javascript:void(0)': url + treatmentScore?.item_obj_id\" [appTooltip]=\"treatmentScore?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ treatmentScore?.item_name }}</a>\n                        <i *ngIf=\"['Not Accepted','Pending'].includes(treatmentScore?.reportStatus)\" class=\"icons pending-icon vx-fs-16 vx-ml-2\" [appTooltip]=\"treatmentScore?.reportStatus\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe930;</i>\n                    </div>\n                </div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center likelihood\">\n                <div class=\"frequency-value vx-fs-11 vx-label-txt\" [appTooltip]=\"treatmentScore?.frequency\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{(treatmentScore?.frequency ? treatmentScore?.frequency : \"--\")}}</div>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center impact\">\n                <div *ngIf=\"treatmentScore?.item_performance\" class=\"performance-value vx-d-flex vx-align-center\">\n                    <span class=\"vx-fs-10 vx-fw-500\">{{treatmentScore?.item_performance?.split(\",\")[0]}}%</span>\n                    <span class=\"vx-fs-10 vx-fw-500\">{{treatmentScore?.item_performance?.split(\",\")[1]}}%</span>\n                    <span class=\"vx-fs-10 vx-fw-500\">{{treatmentScore?.item_performance?.split(\",\")[2]}}%</span>\n                </div>\n\n                <span *ngIf=\"!treatmentScore?.item_performance\" class=\"vx-fs-10 vx-fw-500 vx-label-txt\">--</span>\n            </div>\n            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between rating\">\n                <div class=\"status-value vx-fs-11 vx-label-txt\" [appTooltip]=\"treatmentScore?.reportStatus | titlecase\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ (treatmentScore?.reportStatus) ?  (treatmentScore?.reportStatus | titlecase) : \"--\"}}</div>\n                <button [appTooltip]=\"'Remove'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" (click)=\"removeLinkControl(treatmentScore, i)\" class=\"remove-btn vx-fs-16 vx-txt-blue vx-p-0 vx-m-0 vx-ml-2\"><i class=\"icons\">&#xe923;</i></button>\n            </div>\n        </div>\n        <div class=\"table_row sub_table_row\">\n            <button *ngIf=\"editTreatment\" (click)=\"linkTreatmentPlan(plan, i)\" class=\"link-control-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-lh-6\"><i class=\"icons vx-fs-12 vx-mr-2\">&#xe92f;</i> LINK TREATMENT PLAN</button>\n        </div>\n      </ng-container>\n    </div>\n  </ng-container>\n</div>\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { RISK_QUICKVIEW_PROPERTIES } from '../../configurations';\nimport { DialogService } from '../../ui-kit/dialog/dialog.service';\nimport { InherentRiskAssessmentDialogComponent } from '../inherent-risk-assessment-dialog/inherent-risk-assessment-dialog.component';\nimport { QuickInherentRiskAssessmentComponent } from '../quick-inherent-risk-assessment/quick-inherent-risk-assessment.component';\nimport { QuickViewService } from '../services/quick-view.service';\nimport { MoveComponent } from '../../ui-kit/action-dialog/move/move.component';\nimport { AccessCapabilityComponent } from '../../ui-kit/action-dialog/access-capability/access-capability.component';\nimport { CreateWorkshopComponent } from '../risk-workshop/create-workshop/create-workshop.component';\nimport { Router } from '@angular/router';\nimport { ResponseStrategyDialogComponent } from '../response-strategy-dialog/response-strategy-dialog.component';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { QuickResidualRiskAssessmentComponent } from '../quick-residual-risk-assessment/quick-residual-risk-assessment.component';\nimport { EditResidualRiskRatingComponent } from '../edit-residual-risk-rating/edit-residual-risk-rating.component';\nimport { SubSink } from '../../subsink.class';\n// import { ResponseStrategyDialogComponent } from '../response-strategy-dialog/response-strategy-dialog.component';\n\n\n@Component({\n  selector: 'app-details-metrics',\n  templateUrl: './details-metrics.component.html',\n  styleUrls: ['./details-metrics.component.less'],\n  inputs:['featureFlag']\n  })\nexport class DetailsMetricsComponent implements OnInit, OnDestroy {\n  constructor(public quickView:QuickViewService,\n    private dialog: DialogService,\n    private router: Router,\n    private snackBarService: SnackBarService,) { }\n  dueDateDetails !:any;\n  featureFlag !:any;\n  riskDetails$:any = this.quickView.riskDetails$;\n  activeDueDateDetails !: any;\n  riskDetails !: any;\n  riskTypes = ['OTHERS','STRATEGIC','OPERATIONAL','COMPLIANCE']\n  viewMore = false;\n  currentTab = 'ASSESSMENT'\n  inherentComponentRef !: QuickInherentRiskAssessmentComponent;\n  residualComponentRef !: QuickResidualRiskAssessmentComponent;\n  viewOnlyMode: boolean = false;\n  shouldButtonDisable: boolean = false;\n  hasInherentAssessmentStarted: boolean = false;\n  actionButtonLoader: boolean = true;\n  private responseStrategyActive = false;\n  private automationMessage = '';\n  refreshTreatmentData: boolean = false;\n  vLoader: boolean = false;\n  dueDateLoader: any;\n  private respStartegyMessage: any = {\n    2: RISK_QUICKVIEW_PROPERTIES.riskAssessment.acceptedWithAutomation,\n    3: RISK_QUICKVIEW_PROPERTIES.riskAssessment.transferredWithAutomation,\n    4: RISK_QUICKVIEW_PROPERTIES.riskAssessment.mitigatedWithAutomation,\n    5: RISK_QUICKVIEW_PROPERTIES.riskAssessment.avoidedWithAutomation,\n  };\n  linkPayload!: any;\n  editTreatment: boolean = false;\n  enableTreatmentText: boolean = false;\n  disableTreatmentAction: boolean = false\n  settings !:any;\n  subscriptions:SubSink = new SubSink()\n  @ViewChild('inherentList',{static:false}) set setInherent(content: QuickInherentRiskAssessmentComponent) {\n    if(content) { // initially setter gets called with undefined\n        this.inherentComponentRef = content;\n    }\n  }\n\n  @ViewChild('residualList',{static:false}) set setResidual(content: QuickResidualRiskAssessmentComponent) {\n    if(content) { // initially setter gets called with undefined\n        this.residualComponentRef = content;\n    }\n }\n\n  ngOnInit() {\n    console.log('this is the dueDateDetails',this.dueDateDetails);\n    this.subscriptions.add(this.quickView.activeDueDateDetails$.subscribe({\n      next: (val:any) => {\n        this.activeDueDateDetails = val;\n      }\n    }))\n\n    this.subscriptions.add(this.quickView.riskDetails$.subscribe({\n      next: (val:any) => {\n        this.riskDetails = val;\n      }\n    }))\n\n    this.subscriptions.add(this.quickView.dueDateList$.subscribe({\n      next: (val: any) => {\n        this.dueDateDetails = val;\n      }\n    }))\n\n    this.subscriptions.add(this.quickView.dueDateLoader$.subscribe({\n      next: (val: any) => {\n        this.dueDateLoader = val;\n      }\n    }))\n\n    this.viewOnlyMode = this.riskDetails?.riskDetails?.LoginMemberType ==='GLOBAL_DASHBOARD'\n    \n    this.subscriptions.add(this.quickView.riskOrgSettings$.subscribe({\n      next: (val:any) => { this.settings = val }\n    }))\n\n    this.subscriptions.add(this.quickView.actionButtonLoader.subscribe({\n      next: (val:any) => {\n        this.actionButtonLoader = val;\n      }\n    }))\n  }\n\n\n\n  switchTab(tab: string) {\n    this.currentTab = tab;\n    this.quickView.actionEmitter$.next({eventType:tab})\n  }\n\n  get FooterButtons(){\n   return null\n\n  }\n\n\n  openInherentForm() {\n    this.inherentComponentRef.openInherentForm(0);\n  }\n\n  checkForAutomation() {\n    this.responseStrategyActive = false;\n    if (this.riskDetails.org_settings.risk_automation_enable === 1 && this.riskDetails.riskDetails.workshop_id === '') {\n      for (const AUTOMATION of this.riskDetails.org_settings.risk_automation) {\n        if (AUTOMATION.appetite_id === this.riskDetails.riskDetails.riskAppetite.appetite_id) {\n          if (AUTOMATION.inherent_automation_enable === 1) {\n            for (const INHERENT of AUTOMATION.inherent_automation) {\n              if (\n                this.quickView.assessmentDetailsPayload.total_score > INHERENT.start &&\n                this.quickView.assessmentDetailsPayload.total_score <= INHERENT.end &&\n                (INHERENT.mitigation_priority > 0 || INHERENT.response_strategy > 0 || INHERENT.treatment_required > 0) &&\n                ((INHERENT.response_strategy > 0 && INHERENT.response_strategy !== this.riskDetails.riskDetails.status) || INHERENT.response_strategy === 0)\n              ) {\n                this.responseStrategyActive = INHERENT.response_strategy === 0 ? false : true;\n                if (this.responseStrategyActive) {\n                  this.automationMessage = this.respStartegyMessage[INHERENT.response_strategy] + ' ' +this.riskDetails?.org_settings?.automation_set_by_name+'.' ;\n                }\n                return true;\n              }\n            }\n          } else {\n            return false;\n          }\n        }\n      }\n    } else {\n      return false;\n    }\n    return false;\n  }\n\n  openConfiramtionDialog(stepType: number) {\n    const HEADING = this.riskDetails.riskControlId + ' ' + this.riskDetails.riskName;\n    let info = '';\n    switch (stepType) {\n      case 2:\n        info =\n          this.riskDetails.org_settings.control_assessment_flag === 0\n            ? RISK_QUICKVIEW_PROPERTIES.riskAssessment.completeIfControlDisabled\n            : RISK_QUICKVIEW_PROPERTIES.riskAssessment.completeIfControlEnabled;\n        break;\n      // case 3:\n      //   info = RISK_QUICKVIEW_PROPERTIES.riskTreatment.completeStepConfirmation;\n      //   break;\n    }\n    if (this.riskDetails.riskDetails.LoginMemberType !== 'PARTICIPANT') {\n      if (this.checkForAutomation()) {\n        const ref = this.dialog.open(MoveComponent, {\n          data: {\n            message: this.responseStrategyActive ? this.automationMessage : RISK_QUICKVIEW_PROPERTIES.riskAssessment.automationWithoutStrategy + ' by '+ this.riskDetails?.org_settings?.automation_set_by_name + '.',\n            responseStrategyActive: this.responseStrategyActive,\n            mode: 'ASSESSMENT_AUTOMATION',\n          },\n          position: 'CENTER',\n          background: 'black',\n        });\n        ref.afterClosed.subscribe((data) => {\n          if (data === 'move') {\n            this.quickView.assessmentDetailsPayload.automation_apply = 1;\n            this.inherentComponentRef.onComplete('', stepType, 'move');\n          } else if (data === 'complete') {\n            this.inherentComponentRef.onComplete('', stepType);\n          }\n        });\n      } else {\n        this.inherentComponentRef.onComplete('', stepType);\n      }\n    }  else {\n\n    const REF = this.dialog.open(AccessCapabilityComponent, {\n      data: { heading: HEADING, info },\n      position: 'CENTER',\n      background: 'black',\n    });\n    REF.afterClosed.subscribe((data) => {\n      if (data && data.flag) {\n        this.inherentComponentRef.onComplete(data.comment, stepType);\n        // return;\n      }\n    });\n    }\n  }\n\n  changeResponseStrategy() {\n      if(this.activeDueDateDetails.dueDateStatus.toUpperCase() === 'OPEN') {\n      const ref = this.dialog.open(ResponseStrategyDialogComponent, {\n        data: {\n          dueDateDetails: this.activeDueDateDetails,\n          riskInfo: this.riskDetails,\n          initialStage: this.activeDueDateDetails?.responseStrategyDetails?.responseStrategyState,\n        },\n        position: 'RIGHT',\n        background: 'black',\n      })\n      .afterClosed.subscribe((res: any) => {\n         this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS', payload: ''});\n      })\n    }\n  }\n\n      /**\n   * Opens the create workshop popup\n   * Updates the state of step on server side if show workshop button is clicked\n   * @param buttonType Checks whether show workshop button is clicked or not\n   */\n    createWorkshop() {\n      const ref = this.dialog.open(CreateWorkshopComponent, {\n        data: { riskDetails: this.riskDetails ,\n          dueDateDetails: this.activeDueDateDetails,\n          featureFlag:this.featureFlag\n        },\n        position: 'RIGHT',\n        background: 'black',\n      });\n      ref.afterClosed.subscribe((data) => {\n        if (data) {\n          this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS'});\n        }\n        return;\n      });\n    }\n\n  editAssessment(event?: any, stage?: string) {\n    console.log('this is clicked', stage);\n    if(stage == 'INHERENT') {\n      if(event && ![\"OVERSIGHT\", \"RC_HEAD\"]?.includes(this.riskDetails?.riskDetails?.LoginMemberType)) {\n        this.inherentComponentRef.reassess(stage);\n      } else if(stage ||  [\"OVERSIGHT\", \"RC_HEAD\"]?.includes(this.riskDetails?.riskDetails?.LoginMemberType)) {\n        this.inherentComponentRef.isEditModeOn = !(this.inherentComponentRef.isEditModeOn);\n      } else {\n        this.inherentComponentRef.openInherentForm(0);\n      }\n    }\n  }\n\n  openResidualForm(event: any, stage: string) {\n    if(event) {\n      this.editResidualRating(stage);\n    } else {\n      this.residualComponentRef.isEdit = true\n    }\n\n    \n  }\n\n\n\n  editResidualRating(stage?: string) {\n    this.dialog.open(EditResidualRiskRatingComponent, {\n      data: {\n        settings: this?.settings,\n        stage: stage,\n        dueDateData : this.dueDateDetails,\n        riskDetails : this.riskDetails,\n        frequency_details: this.riskDetails?.riskDetails?.reassessment_frequency_details,\n        assessment_date: this.riskDetails?.riskDetails?.reassessment_date\n       },\n      position: 'RIGHT',\n      background: 'black',\n    })\n\n    .afterClosed.subscribe((res: any) => {\n      if(res) {\n        console.log(\"closed\",res)\n        if(res==='EDIT_RESIDUAL'){\n            this.residualComponentRef.isEdit = true;\n        }else{\n          this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS'})\n        }\n        \n      }\n    })\n  }\n    /**\n   * If the treatment_score_log array is empty, then return false. Otherwise, return true\n   * If it returns false don't call the API on clicking on COMPLETE and SAVE FOR LATER.\n   * @param {any} [linkPayload] -\n   */\n    isCallAPI(linkPayload?: any){\n      let callAPI: boolean = false;\n      linkPayload?.treatment_plan_details?.forEach((ele: any) => {\n        if(ele?.treatment_score_log?.length > 0){\n          callAPI = true;;\n        }\n      })\n      return callAPI;\n    }\n\n    getLinkControlPayload(event: any){\n      this.linkPayload = event\n    }\n\n\n  enableSaveText(event: any){\n    this.enableTreatmentText = event;\n  }\n\n  linkControlInTreatment(type: any, index?: any){\n    let payloadNotEmpty = true;\n    if(type === 'COMPLETE' || type === 'LATER'){\n      payloadNotEmpty = this.isCallAPI(this.linkPayload);\n    }\n    if(payloadNotEmpty){\n      if(type === 'LATER'){\n        this.linkPayload.save_for_later = 1;\n        this.editTreatment = true;\n      }\n      this.vLoader = true;\n      this.subscriptions.add(this.quickView?.createControlTreatmentPlan(this.linkPayload ).subscribe({\n        next: (res: any) => {\n          //this.expandedIndex = -1;\n          //this.getDueDateList();\n          this.vLoader = false;\n          this.refreshTreatmentData = true;\n          this.quickView.isEditTreatmentButton$.next(true);\n          this.enableTreatmentText = false;\n          this.quickView.actionEmitter$.next({eventType:'TREATMENT'})\n          this.quickView.actionEmitter$.next({eventType:'REFRESH_RISK_DETAILS'});\n          this.snackBarService.show((type === 'COMPLETE') ? RISK_QUICKVIEW_PROPERTIES.riskTreatment.treatmentPlanMoreThanOnce : RISK_QUICKVIEW_PROPERTIES.riskTreatment.treatmentPlanSaveForLater, 'success');\n          if(type !== 'LATER'){\n            this.editTreatment = false;\n            //this.refreshTreatmentData = true;\n          }\n        },\n        error: (err: any) =>{\n          this.vLoader = false;\n          this.snackBarService.show(RISK_QUICKVIEW_PROPERTIES.errorMessage, 'alert');\n        }\n      }))\n    }\n  }\n\n  editTreatmentEnable(event: any){\n    this.editTreatment = event;\n  }\n\n  disableActionButton(event: boolean){\n    this.disableTreatmentAction = event;\n  }\n  actionForResidual(type:string,payload?:any){\n    //this.residualActionTaken = type;\n      switch(type){\n        case 'COMPLETE' :{\n          this.residualComponentRef?.completeTreatment()\n          break;\n        }\n        case 'SAVE_FOR_LATER' :{\n          this.residualComponentRef?.saveForLater(false, 0, '', 0)\n          break;\n        }\n      }\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<!-- (currentTab == 'RESIDUAL' && activeDueDateDetails?.completionDetails?.ifTreatmentDoneByLoggedInMember) || -->\n<div *ngIf=\"!dueDateLoader\" class=\"details-metrics\" [class.with-info]=\"bottomInfo?.children?.length > 0\" [class.without-btn]=\"!bottomActionButton?.children.length\">              <!-- {{(currentTab == 'RESIDUAL' && !residualComponentRef?.isEdit)}}{{currentTab == 'RESIDUAL' && !activeDueDateDetails?.completionDetails?.isTreatmentCompleted }} -->\n        <ng-container *ngIf=\"dueDateDetails?.length\">\n            <div *ngIf=\"!actionButtonLoader\" class=\"details-metrics-top vx-d-flex vx-align-center vx-justify-end vx-pb-2 vx-pl-4 vx-pr-4\">\n                <button *ngIf=\"!activeDueDateDetails?.responseStrategyDetails?.responseStrategyState && (activeDueDateDetails?.dueDateStatus | uppercase) !== 'CLOSE'\" (click)=\"changeResponseStrategy()\" class=\"response-strategy-btn vx-fs-11 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.disabled]=\"!activeDueDateDetails?.responseStrategyDetails?.responseStrategyFlag\">Select Response Strategy <i class=\"icons vx-fs-10 vx-ml-2\">&#xe9e8;</i></button>\n                <!-- accept/mitigate/transfer/avoid -->\n                <div  *ngIf=\"activeDueDateDetails?.responseStrategyDetails?.responseStrategyState && activeDueDateDetails?.responseStrategyDetails?.responseStrategyFlag\" (click)=\"changeResponseStrategy()\" [appTooltip]=\"'Click here to change the Response Strategy for this risk'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" class=\"strategy-label vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4 vx-d-flex vx-align-center\" [ngClass]=\"activeDueDateDetails?.responseStrategyDetails?.responseStrategyState | lowercase\">{{activeDueDateDetails?.responseStrategyDetails?.responseStrategyState  | titlecase}}\n                <i *ngIf=\"activeDueDateDetails?.responseStrategyDetails?.responseStrategyFlag\"   class=\"icons vx-fs-10 vx-txt-white vx-ml-1\">&#xe90c;</i>\n                </div>\n\n                <div *ngIf=\"activeDueDateDetails?.responseStrategyDetails?.responseStrategyState && !activeDueDateDetails?.responseStrategyDetails?.responseStrategyFlag\" class=\"strategy-label vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4 vx-d-flex vx-align-center\" [ngClass]=\"activeDueDateDetails?.responseStrategyDetails?.responseStrategyState | lowercase\">{{activeDueDateDetails?.responseStrategyDetails?.responseStrategyState  | titlecase}}\n                  <i *ngIf=\"activeDueDateDetails?.responseStrategyDetails?.responseStrategyFlag\"   class=\"icons vx-fs-10 vx-txt-white vx-ml-1\">&#xe90c;</i>\n               </div>\n\n                <!-- Not specified -->\n                <div *ngIf=\"(activeDueDateDetails?.dueDateStatus | uppercase) =='CLOSE' && !(activeDueDateDetails?.responseStrategyDetails?.responseStrategyState)\" class=\"status-label vx-fs-10 vx-fw-500 vx-label-txt vx-tt-uppercase\">Not specified</div>\n            </div>\n            <div class=\"metrics-list vx-mb-5 vx-ml-4 vx-mr-4\">\n                <button class=\"list-tab non-clickable vx-p-0 vx-pl-3 vx-pr-3 vx-m-0 vx-d-flex vx-align-center vx-justify-between vx-w-100 vx-lh-8\">\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">ASSESSMENT DUE DATE:</span>\n                        <div *ngIf=\"activeDueDateDetails?.dueDate && activeDueDateDetails?.dueTime\" id=\"assessment-due-date\" class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-ml-1\">{{ activeDueDateDetails?.dueDate}}<em class=\"vx-fs-10 vx-paragraph-txt vx-ml-1\">at {{activeDueDateDetails?.dueTime}}</em></div>\n                        <span *ngIf=\"!activeDueDateDetails?.dueDate && !activeDueDateDetails?.dueTime\" class=\"no-date vx-fs-11 vx-fw-500 vx-paragraph-txt vx-text-left\">--</span>\n                    </div>\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-1\">ASSESSMENT STATUS:</div>\n                        <ng-container *ngIf=\"activeDueDateDetails?.status\">\n                            <div class=\"status-label\"\n                                [class.success]=\"activeDueDateDetails?.status && activeDueDateDetails?.status == 'COMPLETED'\"\n                                [class.in-progress]=\"activeDueDateDetails?.status && activeDueDateDetails?.status == 'IN PROGRESS'\"\n                                [class.failed]=\"activeDueDateDetails?.status && activeDueDateDetails?.status == 'NOT COMPLETED'\"\n                                [class.closed]=\"activeDueDateDetails?.status && activeDueDateDetails?.status == 'CLOSED'\">\n                            </div>\n                            <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\" id=\"assessment-status\">{{ activeDueDateDetails?.status}}</div>\n                        </ng-container>\n                            <span *ngIf=\"!activeDueDateDetails?.status\" class=\"no-date vx-fs-11 vx-fw-500 vx-paragraph-txt vx-text-left\">--</span>\n                    </div>\n                </button>\n                <button *ngIf=\"currentTab !== 'ASSESSMENT'\" (click)=\"switchTab('ASSESSMENT')\" class=\"list-tab vx-p-0 vx-pl-3 vx-pr-3 vx-m-0 vx-d-flex vx-align-center vx-justify-between vx-w-100 vx-lh-8\">\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-text-left vx-lh-3\">\n                            INHERENT RISK ASSESSMENT:\n                            <div *ngIf=\"activeDueDateDetails?.completionDetails?.assessmentCompletedDate\" class=\"vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">{{ activeDueDateDetails?.completionDetails?.assessmentCompletedDate }}</div>\n                        </span>\n                        <button *ngIf=\"activeDueDateDetails?.editButtonDetails?.assessment_edit_enable\" (click)=\"editAssessment(activeDueDateDetails?.completionDetails?.ifAssessmentDoneByLoggedInMember, 'INHERENT')\" class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4\"><i class=\"icons vx-fs-9 vx-fw-400 vx-mr-1\">&#xe90c;</i> EDIT</button>\n                    </div>\n                    <!-- <span *ngIf=\"false\" class=\"no-date vx-fs-11 vx-fw-500 vx-paragraph-txt vx-text-left\">--</span> -->\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <div class=\"rating-area vx-d-flex vx-align-center\">\n                            <div *ngIf=\"!activeDueDateDetails?.scores?.obtainedInherentScore && !activeDueDateDetails?.scores?.inherentRiskRatingType\"  class=\"vx-fs-11 vx-paragraph-txt\">--</div>\n                            <ng-container *ngIf=\"activeDueDateDetails?.scores?.obtainedInherentScore && activeDueDateDetails?.scores?.inherentRiskRatingType\">\n                                <div class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt vx-text-left\">{{activeDueDateDetails?.scores?.obtainedInherentScore}}</div>\n                                <div class=\"separator vx-mr-1\"></div>\n                                <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"activeDueDateDetails?.scores?.inherentRiskRatingType?.toUpperCase()\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [style.color]=\"activeDueDateDetails?.scores?.inherentRiskRatingColor\">{{activeDueDateDetails?.scores?.inherentRiskRatingType}}</div>\n                            </ng-container>\n                        </div>\n                        <div *ngIf=\"activeDueDateDetails?.completionDetails?.isAssessmentCompleted\" class=\"check-circle vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons vx-fs-12 vx-txt-white\">&#xe91a;</i></div>\n                    </div>\n                </button>\n                <ng-container *ngIf=\"currentTab === 'ASSESSMENT'\">\n                    <app-quick-inherent-risk-assessment #inherentList (updateDisableButton)=\"shouldButtonDisable = $event\"></app-quick-inherent-risk-assessment>\n                </ng-container>\n                <button *ngIf=\"currentTab !== 'RESIDUAL'\" (click)=\"switchTab('RESIDUAL')\" class=\"list-tab vx-p-0 vx-pl-3 vx-pr-3 vx-m-0 vx-d-flex vx-align-center vx-justify-between vx-w-100 vx-lh-8\">\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-text-left vx-lh-3\">\n                            RESIDUAL RISK ASSESSMENT:\n                            <div *ngIf=\"activeDueDateDetails?.completionDetails?.treatmentCompletedDate\" id=\"assessment-completion-date\" class=\"vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">{{ activeDueDateDetails?.completionDetails?.treatmentCompletedDate }}</div>\n                        </span>\n                        <button *ngIf=\"activeDueDateDetails?.editButtonDetails?.treatment_edit_enable\" (click)=\"openResidualForm(activeDueDateDetails?.completionDetails?.isTreatmentCompleted, 'RESIDUAL')\"class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4\"><i class=\"icons vx-fs-9 vx-fw-400 vx-mr-1\">&#xe90c;</i> EDIT</button>\n                    </div>\n                    <!-- <span class=\"no-date vx-fs-11 vx-fw-500 vx-paragraph-txt vx-text-left\">--</span> -->\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <div class=\"rating-area vx-d-flex vx-align-center\">\n                            <div *ngIf=\"!activeDueDateDetails?.scores?.obtainedResidualScore && !activeDueDateDetails?.scores?.residualRiskRatingType\" class=\"vx-fs-11 vx-paragraph-txt\">--</div>\n                            <ng-container *ngIf=\"activeDueDateDetails?.scores?.obtainedResidualScore && activeDueDateDetails?.scores?.residualRiskRatingType\">\n                                <div class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt vx-text-left\" id=\"residual-rating\">{{activeDueDateDetails?.scores?.obtainedResidualScore}}</div>\n                                <div class=\"separator vx-mr-1\"></div>\n                                <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"activeDueDateDetails?.scores?.residualRiskRatingType?.toUpperCase()\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [style.color]=\"activeDueDateDetails?.scores?.residualRiskRatingColor\">{{activeDueDateDetails?.scores?.residualRiskRatingType}}</div>\n                            </ng-container>\n                        </div>\n                        <div *ngIf=\"activeDueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"check-circle vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons vx-fs-12 vx-txt-white\">&#xe91a;</i></div>\n                    </div>\n                </button>\n                <ng-container *ngIf=\"currentTab === 'RESIDUAL'\">\n                    <app-quick-residual-risk-assessment #residualList (openEditDialog)=\"openResidualForm($event.event,$event.stage)\" [featureFlag]=\"featureFlag\"></app-quick-residual-risk-assessment>\n                </ng-container>\n                <button *ngIf=\"currentTab !== 'TREATMENT'\" (click)=\"switchTab('TREATMENT')\" class=\"list-tab vx-p-0 vx-pl-3 vx-pr-3 vx-m-0 vx-d-flex vx-align-center vx-justify-between vx-w-100 vx-lh-8\" [class.active]=\"currentTab === 'TREATMENT'\">\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-text-left vx-lh-3\">\n                            TREATMENT PLANS:\n                            <div *ngIf=\"activeDueDateDetails?.completionDetails?.treatmentPlanCompletedDate\" class=\"vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">{{activeDueDateDetails?.completionDetails?.treatmentPlanCompletedDate}}</div>\n                        </span>\n                        <button *ngIf=\"activeDueDateDetails?.editButtonDetails?.treatment_plan_edit_enable && activeDueDateDetails?.completionDetails?.ifTreatmentPlanDoneByLoggedInMember > 0\" class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4\"><i class=\"icons vx-fs-9 vx-fw-400 vx-mr-1\">&#xe90c;</i> EDIT</button>\n                    </div>\n                    <!-- <span class=\"no-date vx-fs-11 vx-fw-500 vx-paragraph-txt vx-text-left\">--</span> -->\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <div class=\"rating-area vx-d-flex vx-align-center\">\n                            <div *ngIf=\"!activeDueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"vx-fs-11 vx-paragraph-txt\">--</div>\n                            <ng-container *ngIf=\"activeDueDateDetails?.scores?.obtainedResidualScore && activeDueDateDetails?.scores?.residualRiskRatingType && activeDueDateDetails?.completionDetails?.isTreatmentCompleted\">\n                                <div class=\"rating-number vx-fs-11 vx-fw-500 vx-label-txt vx-text-left\">{{activeDueDateDetails?.scores?.obtainedResidualScore}}</div>\n                                <div class=\"separator vx-mr-1\"></div>\n                                <div class=\"rating-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [appTooltip]=\"activeDueDateDetails?.scores?.residualRiskRatingType | uppercase\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [style.color]=\"activeDueDateDetails?.scores?.residualRiskRatingColor\">{{activeDueDateDetails?.scores?.residualRiskRatingType}}</div>\n                            </ng-container>\n                        </div>\n                        <div *ngIf=\"activeDueDateDetails?.completionDetails?.isTreatmentPlanCompleted\" class=\"check-circle vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons vx-fs-12 vx-txt-white\">&#xe91a;</i></div>\n                    </div>\n                </button>\n                <ng-container *ngIf=\"currentTab === 'TREATMENT'\">\n                    <app-quick-treatment-plan (treatmentPayload)=\"getLinkControlPayload($event)\" (enableSaveText)=\"enableSaveText($event)\" (editTreatmentEnable)=\"editTreatmentEnable($event)\" (disableActionButton)=\"disableActionButton($event)\" [refreshTreatmentData]=\"refreshTreatmentData\" [featureFlag]=\"featureFlag\"></app-quick-treatment-plan>\n                </ng-container>\n            </div>\n\n\n            <div class=\"details-loader\" *ngIf=\"(quickView.riskDetailsLoadingState$|async) === 'LOADING' && !riskDetails\">\n                <div class=\"description-area vx-pt-5 vx-mb-2\">\n                    <div class=\"loader vx-mb-2\" *ngFor=\"let data of [1, 1, 1, 1, 1]\"></div>\n                </div>\n                <div class=\"details-list\">\n                    <ul class=\"vx-p-0 vx-m-0\">\n                        <li class=\"vx-d-flex vx-align-center\" *ngFor=\"let data of [1, 1, 1, 1, 1]\">\n                            <div class=\"loader\"></div>\n                        </li>\n                    </ul>\n                </div>\n            </div>\n        </ng-container>\n<!-- Bottom Zone of risk details and metrices -->\n<ng-container *ngIf=\"riskDetails\">\n    <ng-container *ngIf=\"$any(riskDetails$ | async)?.riskDetails as riskData\">\n        <div class=\"description-area vx-pt-5 vx-mb-2\" *ngIf=\"riskData?.riskDescription?.trim()?.length\">\n            <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">DESCRIPTION:</div>\n            <text-display [text]=\"riskData?.riskDescription\"></text-display>\n            <!-- <div class=\"details vx-fs-12 vx-paragraph-txt\" [class.expand]=\"hideDetails\" [innerHTML]=\"riskDetails?.riskDescription\"></div>\n            <div class=\"vx-d-flex vx-align-center vx-justify-end vx-mt-1\">\n                <button (click)=\"showDetails()\" class=\"more-btn vx-fs-12 vx-fw-500 vx-txt-blue vx-p-0 vx-m-0 vx-lh-3\">\n                    <ng-container *ngIf=\"!hideDetails\">Read More</ng-container>\n                    <ng-container *ngIf=\"hideDetails\">Show Less</ng-container>\n                </button>\n            </div> -->\n        </div>\n        <div class=\"details-list\">\n            <ul class=\"vx-p-0 vx-m-0\">\n                <li class=\"vx-d-flex vx-align-center\">\n                    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">REASSESSMENT FREQUENCY:</div>\n                    <div *ngIf=\"riskDetails?.reassessmentFrequency\" class=\"vx-fs-11 vx-paragraph-txt\">{{ riskDetails?.reassessmentFrequency }}</div>\n                    <div *ngIf=\"!riskDetails?.reassessmentFrequency\" class=\"vx-fs-11 vx-paragraph-txt\">--</div>\n                </li>\n                <li class=\"vx-d-flex vx-align-center\">\n                    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">RISK ASSESSMENT DUE BY:</div>\n                    <div *ngIf=\"riskData?.assessmentDeadlineDate\" class=\"vx-fs-11 vx-paragraph-txt\">{{ riskData?.assessmentDeadlineDate }} by {{ riskData?.assessmentDeadlineTime }}</div>\n                    <div *ngIf=\"!riskData?.assessmentDeadlineDate\" class=\"vx-fs-11 vx-paragraph-txt\">--</div>\n                </li>\n                <li class=\"vx-d-flex vx-align-center\" *ngIf=\"riskData?.riskCategories?.length  > 0\">\n                    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">RISK CATEGORY:</div>\n                    <div class=\"vx-d-block\">\n                        <div *ngIf=\"riskData?.riskCategories?.length > 0\" class=\"vx-fs-11 vx-paragraph-txt\">{{ riskData?.riskCategories[0] }}</div>\n                        <div *ngIf=\"riskData?.riskCategories?.length === 0\" class=\"vx-fs-11 vx-paragraph-txt\">--</div>\n                        <div *ngIf=\"riskTypes[riskData?.riskCategoriesType[0]]\"\n                        class=\"category-label vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-3\"\n                        [ngClass]=\"{'strategic':riskData?.riskCategoriesType[0] === 1,\n                        'operational':riskData?.riskCategoriesType[0] === 2,\n                        'compliance':riskData?.riskCategoriesType[0] === 3,\n                        'others':riskData?.riskCategoriesType[0] === 0}\">{{riskTypes[riskData?.riskCategoriesType[0]]}}</div>\n                    </div>\n                </li>\n                <li class=\"vx-d-flex vx-align-center\" *ngIf=\"riskData?.entity_arr?.length > 0\">\n                    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">RESPONSIBILITY CENTER:</div>\n                    <div class=\"rc-area vx-d-block\">\n                        <div class=\"rc-name vx-fs-12 vx-label-txt\" [appTooltip]=\"riskData?.entity_arr[0]?.rc_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{riskData?.entity_arr[0]?.rc_name}}</div>\n                        <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\" *ngIf=\"riskData?.entity_arr[0]?.parent_rc?.length > 0\">\n                            <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3 vx-txt-blue\">Within</div>\n                            <div class=\"within-value vx-fs-11 vx-paragraph-txt\" [appTooltip]=\"riskData?.entity_arr[0]?.parent_rc\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{riskData?.entity_arr[0]?.parent_rc}}</div>\n                        </div>\n                    </div>\n                    <button *ngIf=\"riskData?.entity_arr?.length > 1\" class=\"rc-count vx-fs-11 vx-fw-500 vx-ml-2 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-lh-5\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\">+{{riskData?.entity_arr?.length - 1}}</button>\n                    <app-popover #rcPopup>\n                    <div class=\"action-list\">\n                        <ul class=\"action-item\">\n                        <li class=\"vx-p-0\" *ngFor=\"let rc of $any(riskData?.entity_arr | slice:1)\">\n                            <div class=\"avatar-card\">\n                                <div class=\"vx-d-block vx-w-100\">\n                                    <span class=\"value\" [appTooltip]=\"rc?.rc_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rc?.rc_name}}</span>\n                                    <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\" *ngIf=\"rc?.parent_rc?.length > 0\">\n                                        <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3 vx-txt-blue\">Within</div>\n                                        <div class=\"within-value vx-fs-11 vx-paragraph-txt\" [appTooltip]=\"rc?.parent_rc\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rc?.parent_rc}}</div>\n                                    </div>\n                                </div>\n                            </div>\n                        </li>\n                        </ul>\n                    </div>\n                    </app-popover>\n                </li>\n                <li class=\"vx-d-flex vx-align-center\">\n                    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">RISK MANAGER(S):</div>\n                    <div class=\"vx-avatar-group\">\n                        <div class=\"vx-avatar md\" [appTooltip]=\"owner?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" *ngFor=\"let owner of $any(riskData?.riskOwners | slice: 0:5)\">\n                            <span *ngIf=\"owner?.profile_pic?.length === 0\" class=\"blue\">{{ owner?.short_name }}</span>\n                            <img *ngIf=\"owner?.profile_pic?.length > 0\" src=\"{{owner?.profile_pic  | profile}}\" alt=\"\">\n                        </div>\n                        <div *ngIf=\"riskData?.riskOwners?.length > 5\" class=\"vx-avatar md counter\" appPopover (click)=\"ownerCount.popover()\" placement=\"left\">\n                            <span class=\"green\">+{{riskData?.riskOwners?.length - 5}}</span>\n                        </div>\n                        <app-popover #ownerCount [dontCloseonClick]=\"true\">\n                            <div class=\"action-list\">\n                            <ul class=\"action-item\">\n                                <li class=\"vx-p-0\" *ngFor=\"let owner of $any(riskData?.riskOwners | slice: 5)\">\n                                <div class=\"avatar-card\">\n                                    <div class=\"avatar\">\n                                        <span *ngIf=\"owner?.profile_pic?.length === 0\" class=\"blue\">{{ owner?.short_name }}</span>\n                                        <img  *ngIf=\"owner?.profile_pic?.length > 0\"  src=\"{{owner?.profile_pic  | profile}}\" alt=\"\">\n                                    </div>\n                                    <span class=\"value\"[appTooltip]=\"owner?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{owner?.member_name}}</span>\n                                </div>\n                                </li>\n                            </ul>\n                            </div>\n                        </app-popover>\n                    </div>\n                </li>\n                <li class=\"vx-d-flex vx-align-center\" *ngIf=\"riskData?.riskCollaborators?.length > 0\">\n                    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">COLLABORATORS:</div>\n                    <div class=\"vx-avatar-group\">\n                        <div class=\"vx-avatar md\" [appTooltip]=\"collaborator?.member_name\"  placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" *ngFor=\"let collaborator of $any(riskData?.riskCollaborators | slice: 0:5)\">\n                            <span  *ngIf=\"collaborator?.profile_pic?.length === 0\" class=\"blue\">{{ collaborator?.short_name }}</span>\n                            <img  *ngIf=\"collaborator?.profile_pic?.length > 0\" src=\"{{collaborator?.profile_pic|profile}}\" alt=\"\">\n                        </div>\n                        <div *ngIf=\"riskData?.riskCollaborators?.length > 5\" class=\"vx-avatar md counter\" appPopover (click)=\"collaboratorCount.popover()\" placement=\"left\">\n                            <span class=\"green\">+{{ riskData?.riskCollaborators?.length - 5 }}</span>\n                        </div>\n                        <app-popover #collaboratorCount [dontCloseonClick]=\"true\">\n                            <div class=\"action-list\">\n                            <ul class=\"action-item\">\n                                <li class=\"vx-p-0\" *ngFor=\"let collaborator of $any(riskData?.riskCollaborators | slice: 5)\">\n                                <div class=\"avatar-card\">\n                                    <div class=\"avatar\">\n                                        <span *ngIf=\"collaborator?.profile_pic?.length === 0\" class=\"blue\">{{ collaborator?.short_name }}</span>\n                                        <img *ngIf=\"collaborator?.profile_pic?.length > 0\" src=\"{{collaborator?.profile_pic | profile}}\" alt=\"\">\n                                    </div>\n                                    <span class=\"value\" [appTooltip]=\"collaborator?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{collaborator?.member_name}}</span>\n                                </div>\n                                </li>\n                            </ul>\n                            </div>\n                        </app-popover>\n                    </div>\n                </li>\n                <ng-container *ngIf=\"viewMore\">\n                    <li class=\"vx-d-flex vx-align-center\" *ngIf=\"riskData?.oversights?.length > 0\" >\n                        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">OVERSEERS:</div>\n                        <div class=\"vx-avatar-group\">\n                            <div class=\"vx-avatar md\" [appTooltip]=\"oversight?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" *ngFor=\"let oversight of $any(riskData?.oversights | slice: 0:5)\">\n                                <span *ngIf=\"oversight?.profile_pic?.length === 0\" class=\"blue\">{{ oversight?.short_name }}</span>\n                                <img *ngIf=\"oversight?.profile_pic?.length > 0\" src=\"{{oversight?.profile_pic | profile}}\" alt=\"\">\n                            </div>\n                            <div *ngIf=\"riskData?.oversights?.length > 5\" class=\"vx-avatar md counter\" appPopover (click)=\"overseerCount.popover()\" placement=\"left\">\n                                <span class=\"green\">+{{ riskData?.oversights?.length -5 }}</span>\n                            </div>\n                            <app-popover #overseerCount [dontCloseonClick]=\"true\">\n                                <div class=\"action-list\">\n                                <ul class=\"action-item\">\n                                    <li class=\"vx-p-0\" *ngFor=\"let oversight of $any(riskData?.oversights | slice: 5)\">\n                                    <div class=\"avatar-card\">\n                                        <div class=\"avatar\">\n                                            <span *ngIf=\"oversight?.profile_pic?.length === 0\" class=\"blue\">{{ oversight?.short_name }}</span>\n                                            <img *ngIf=\"oversight?.profile_pic?.length > 0\" src=\"{{oversight?.profile_pic|profile}}\" alt=\"\">\n                                        </div>\n                                        <span class=\"value\" [appTooltip]=\"oversight?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ oversight?.member_name }}</span>\n                                    </div>\n                                    </li>\n                                </ul>\n                                </div>\n                            </app-popover>\n                        </div>\n                    </li>\n\n                    <li class=\"vx-d-flex vx-align-center\">\n                        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">RISK APPETITE:</div>\n                        <div *ngIf=\"riskData?.riskAppetite?.appetite_name?.length > 0\"\n                            class=\"risk-label vx-fs-10 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"\n                            [ngStyle]=\"{ color: riskData?.riskAppetite?.appetite_color, backgroundColor: riskData?.riskAppetite?.appetite_color + '1A' }\">{{riskData?.riskAppetite?.appetite_name }}</div>\n                        <div  *ngIf=\"riskData?.riskAppetite?.appetite_name?.length === 0\" class=\"vx-fs-11 vx-paragraph-txt\">--</div>\n                    </li>\n                    <li class=\"vx-d-flex vx-align-center\">\n                        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">RISK TOLERANCE:</div>\n                        <div *ngIf=\"riskData?.residualRiskTolerance?.toleranceName?.length > 0\" class=\"risk-label vx-fs-10 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\">{{ riskData?.residualRiskTolerance?.toleranceName }}</div>\n                        <div *ngIf=\"riskData?.residualRiskTolerance?.toleranceName?.length === 0\" class=\"vx-fs-11 vx-paragraph-txt\">--</div>\n                    </li>\n                    <li class=\"vx-d-flex vx-align-center\">\n                        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">RISK MITIGATION PRIORITY:</div>\n                        <div *ngIf=\"riskData?.riskMitigationPriority?.mitigation_name?.length > 0\" class=\"risk-label vx-fs-10 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"  [ngStyle]=\"{ color: riskData?.riskMitigationPriority?.mitigation_color, backgroundColor: riskData?.riskMitigationPriority?.mitigation_color + '1A' }\">{{riskData?.riskMitigationPriority?.mitigation_name}}</div>\n                        <div *ngIf=\"riskData?.riskMitigationPriority?.mitigation_name?.length === 0\" class=\"vx-fs-11 vx-paragraph-txt\">--</div>\n                    </li>\n                </ng-container>\n            </ul>\n        </div>\n        <div class=\"details-more\">\n            <button (click)=\"viewMore = !viewMore\" class=\"more-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\">\n                <ng-container *ngIf=\"!viewMore\">VIEW MORE...</ng-container>\n                <ng-container *ngIf=\"viewMore\">SHOW LESS</ng-container>\n            </button>\n        </div>\n    </ng-container>\n</ng-container>\n\n</div>\n\n\n<div class=\"details-metrics-bottom\">\n    <div class=\"details-metrics-footer-info vx-pt-2 vx-pb-2 vx-d-flex vx-align-center vx-justify-center\" #bottomInfo >\n        <ng-container *ngIf=\"dueDateDetails?.length\">\n            <div *ngIf=\"currentTab == 'ASSESSMENT' && activeDueDateDetails?.beginButtonDetails?.assessment_popup_flag === 1 && !hasInherentAssessmentStarted && !activeDueDateDetails?.completionDetails?.ifAssessmentDoneByLoggedInMember\" class=\"vx-fs-14 vx-paragraph-txt vx-text-center \">\n                Click on the\n                <span class=\"vx-fw-500\">Begin Risk Assessment</span>\n                <ng-container *ngIf=\"activeDueDateDetails?.beginButtonDetails?.add_workshop_enable === 1\">\n                    or <span class=\"vx-fw-500\">Create a Risk Workshop</span>\n                </ng-container> button to begin.\n            </div>\n\n            <div *ngIf=\"currentTab == 'ASSESSMENT' && !actionButtonLoader &&\n            activeDueDateDetails?.beginButtonDetails?.assessment_popup_flag !== 1 &&\n            activeDueDateDetails?.completionDetails?.ifAssessmentDoneByLoggedInMember <= 0\n             && !activeDueDateDetails?.completionDetails?.ifAssessmentDoneByLoggedInMember\" class=\"vx-fs-14 vx-paragraph-txt vx-text-center\">You have not completed the Inherent Risk Assessment for this Risk.</div>\n\n\n\n            <div *ngIf=\"currentTab == 'ASSESSMENT' && activeDueDateDetails?.completionDetails?.ifAssessmentDoneByLoggedInMember\" class=\"vx-d-flex vx-align-center vx-justify-between vx-w-100 vx-pl-4 vx-pr-4\">\n                    <div class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt\">Your Inherent Risk Assessment Rating:</div>\n                    <div *ngIf=\"activeDueDateDetails?.scores?.obtainedInherentScore && activeDueDateDetails?.scores?.inherentRiskRatingType\" class=\"rating-value vx-d-flex vx-align-center vx-mr-3\">\n                        <div class=\"munber vx-fs-11 vx-fw-500 vx-label-txt\">{{activeDueDateDetails?.scores?.obtainedInherentScore}}</div>\n                        <div class=\"separator vx-mr-1\"></div>\n                        <div *ngIf=\"activeDueDateDetails?.scores?.obtainedInherentScore | segmentFinder: riskDetails?.org_settings?.segments as segment\" class=\"value vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [ngStyle]=\"{ color: segment?.segment_color, backgroundColor: segment?.segment_color + '1A' }\" [appTooltip]=\"segment?.segment_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{segment?.segment_name}}</div>\n                    </div>\n                <ng-container *ngIf=\"!activeDueDateDetails?.scores?.obtainedInherentScore && !activeDueDateDetails?.scores?.inherentRiskRatingType\">\n                    <span class=\"no-date vx-fs-11 vx-fw-500 vx-paragraph-txt vx-text-left\">--</span>\n                </ng-container>\n            </div>\n\n            <div *ngIf=\"currentTab == 'RESIDUAL' &&  !activeDueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"vx-fs-14 vx-paragraph-txt vx-text-center\">You have not completed the Residual Risk Assessment for this Risk.</div>\n\n            <div *ngIf=\"currentTab == 'RESIDUAL' && activeDueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"vx-d-flex vx-align-center vx-justify-between vx-w-100 vx-pl-4 vx-pr-4\">\n                <div class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt\">Your Residual Risk Assessment Rating:</div>\n                <ng-container *ngIf=\"residualComponentRef?.FooterState as score\">\n                <div  class=\"rating-value vx-d-flex vx-align-center vx-mr-3\">\n                    <div class=\"munber vx-fs-11 vx-fw-500 vx-label-txt\"  *ngIf=\"score?.TREATMENT_SCORE\">{{score?.TREATMENT_SCORE | number :'1.0-2'}}</div>\n                    <div class=\"munber vx-fs-11 vx-fw-500 vx-label-txt\" *ngIf=\"!score?.TREATMENT_SCORE\"></div>\n                    <ng-container *ngIf=\"score?.TREATMENT_SCORE\">\n                        <div class=\"separator vx-mr-1\"></div>\n                        <div *ngIf=\"score?.TREATMENT_SCORE | segmentFinder: riskDetails?.org_settings?.segments as segment\" class=\"value vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [style.color]=\"activeDueDateDetails?.scores?.inherentRiskRatingColor\" [appTooltip]=\"'LOW'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{activeDueDateDetails?.scores?.inherentRiskRatingType}}</div>\n                    </ng-container>\n\n                </div>\n            </ng-container>\n\n            </div>\n\n\n            <div *ngIf=\"currentTab == 'TREATMENT' &&  !activeDueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"vx-fs-14 vx-paragraph-txt vx-text-center\">You have not completed the Residual Risk Assessment for this Risk.</div>\n\n            <div *ngIf=\"currentTab == 'TREATMENT' && activeDueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"vx-d-flex vx-align-center vx-justify-between vx-w-100 vx-pl-4 vx-pr-4\">\n                <ng-container>\n                    <div *ngIf=\"activeDueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt\">Your Residual Risk Assessment Rating:</div>\n                    <ng-container>\n                        <div  class=\"rating-value vx-d-flex vx-align-center vx-mr-3\" *ngIf=\"activeDueDateDetails?.completionDetails?.isTreatmentCompleted\">\n                            <div class=\"munber vx-fs-11 vx-fw-500 vx-label-txt\"  *ngIf=\"activeDueDateDetails?.scores?.obtainedResidualScore\">{{activeDueDateDetails?.scores?.obtainedResidualScore | number :'1.0-2'}}</div>\n                            <div class=\"munber vx-fs-11 vx-fw-500 vx-label-txt\" *ngIf=\"!activeDueDateDetails?.scores?.obtainedResidualScore\"></div>\n                            <ng-container *ngIf=\"activeDueDateDetails?.scores?.obtainedResidualScore\">\n                                <div class=\"separator vx-mr-1\"></div>\n                                <div *ngIf=\"activeDueDateDetails?.scores?.obtainedResidualScore | segmentFinder: riskDetails?.org_settings?.segments as segment\" class=\"value vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [style.color]=\"activeDueDateDetails?.scores?.residualRiskRatingColor\" [appTooltip]=\"'LOW'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{activeDueDateDetails?.scores?.residualRiskRatingType}}</div>\n                            </ng-container>\n                        </div>\n                        <!-- <span *ngIf=\"!activeDueDateDetails?.completionDetails?.ifTreatmentPlanDoneByLoggedInMember || !activeDueDateDetails?.completionDetails?.isTreatmentCompleted\" class=\"no-date vx-fs-11 vx-fw-500 vx-paragraph-txt vx-text-left\">--</span> -->\n                    </ng-container>\n                </ng-container>\n            </div>\n\n        </ng-container>\n    </div>\n\n\n\n\n\n        <div #bottomActionButton class=\"details-metrics-btn vx-d-flex vx-align-center\">\n            <ng-container *ngIf=\"dueDateDetails?.length\">\n                <!-- Buttons for inherent risk assessment starts here -->\n            <ng-container *ngIf=\"activeDueDateDetails && currentTab == 'ASSESSMENT' && (activeDueDateDetails?.dueDateStatus | uppercase) === 'OPEN' && !actionButtonLoader\">\n                <button (click)=\"createWorkshop()\" *ngIf=\"activeDueDateDetails?.beginButtonDetails?.assessment_popup_flag === 1 && activeDueDateDetails?.beginButtonDetails?.add_workshop_enable === 1\"  class=\"white-btn vx-fs-14 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">CREATE A RISK WORKSHOP</button>\n                <button *ngIf=\"(activeDueDateDetails?.beginButtonDetails?.assessment_popup_flag === 1 && activeDueDateDetails?.beginButtonDetails?.begin_assessment_enable === 1) ; else inherentCompleteState\" (click)=\"openInherentForm()\" class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">BEGIN RISK ASSESSMENT</button>\n                <ng-template #inherentCompleteState>\n                    <button  *ngIf=\" (activeDueDateDetails?.completionDetails?.ifAssessmentDoneByLoggedInMember <= 0\n                    && !viewOnlyMode || hasInherentAssessmentStarted) && !shouldButtonDisable ||activeDueDateDetails?.completionDetails?.saveforLaterDetails?.ifAssessmentSFLByLoggedInMember && (activeDueDateDetails?.dueDateStatus | uppercase) === 'OPEN'\" (click)=\"openConfiramtionDialog(2)\" class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">COMPLETE INHERENT RISK ASSESSMENT</button>\n                    <div *ngIf=\"activeDueDateDetails?.beginButtonDetails?.assessment_popup_flag !== 1 && (activeDueDateDetails?.completionDetails?.ifAssessmentDoneByLoggedInMember <= 0\n                    && !viewOnlyMode || hasInherentAssessmentStarted) && shouldButtonDisable ||activeDueDateDetails?.completionDetails?.saveforLaterDetails?.ifAssessmentSFLByLoggedInMember && (activeDueDateDetails?.dueDateStatus | uppercase) === 'OPEN'\" class=\"disabled-btn vx-fs-14 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [appTooltip]=\"'To complete the inherent risk assessment, please select the ratings for all risk factors.'\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">COMPLETE INHERENT RISK ASSESSMENT</div>\n                </ng-template>\n\n            </ng-container>\n              <!-- Buttons for inherent risk assessment ends here -->\n\n                <!-- Buttons for residual risk assessment starts here -->\n                <ng-container *ngIf=\"currentTab == 'RESIDUAL'\">\n                    <ng-container  *ngIf=\"residualComponentRef?.FooterState as state\">\n                        <ng-container *ngIf=\"(activeDueDateDetails.dueDateStatus | uppercase) !== 'CLOSE'\">\n                        <button *ngIf=\"state?.SAVE_FOR_LATER === 'NORMAL'\" (click)=\"actionForResidual('SAVE_FOR_LATER')\" class=\"white-btn vx-fs-14 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">SAVE FOR LATER</button>\n                        <div [appTooltip]=\"state.COMPLETE_ERROR_MESSAGE\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" *ngIf=\"(state?.COMPLETE_STATE !== 'HIDDEN' && (activeDueDateDetails?.dueDateStatus | uppercase)  === 'OPEN' &&  state?.COMPLETE_STATE === 'DISABLED'); else completeBtn\" class=\"disabled-btn vx-fs-14 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">COMPLETE RESIDUAL RISK ASSESSMENT</div>\n                        <ng-template #completeBtn>\n                            <button *ngIf=\"(!activeDueDateDetails?.is_treatment_present ||\n                            residualComponentRef?.isEdit || state?.COMPLETE_STATE !== 'HIDDEN' && (activeDueDateDetails?.dueDateStatus | uppercase)  === 'OPEN' && state?.COMPLETE_STATE !== 'DISABLED') && state?.COMPLETE_STATE !== 'ERROR'\" class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"actionForResidual('COMPLETE')\">COMPLETE RESIDUAL RISK ASSESSMENT</button>\n                            <div *ngIf=\"(!activeDueDateDetails?.is_treatment_present ||\n                            residualComponentRef?.isEdit || state?.COMPLETE_STATE !== 'HIDDEN' && (activeDueDateDetails?.dueDateStatus | uppercase)  === 'OPEN' && state?.COMPLETE_STATE !== 'DISABLED') && state?.COMPLETE_STATE === 'ERROR'\" class=\"disabled-btn error-disabled vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [appTooltip]=\"'The residual risk score cannot exceed the inherent risk score.'\" placement=\"top\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">COMPLETE RESIDUAL RISK ASSESSMENT</div>\n                        </ng-template>\n                    </ng-container>\n                  </ng-container>\n                </ng-container>\n\n                <!-- Buttons for residual risk assessment ends here -->\n\n                  <!-- Buttons for traetment  plan starts here -->\n                     <ng-container *ngIf=\"currentTab == 'TREATMENT' && editTreatment\">\n                        <button *ngIf=\"activeDueDateDetails?.completionDetails?.ifTreatmentPlanDoneByLoggedInMember < 1\" (click)=\"linkControlInTreatment('LATER',i)\" class=\"white-btn vx-fs-14 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"disableTreatmentAction\">SAVE FOR LATER</button>\n                        <button (click)=\"linkControlInTreatment('COMPLETE',i)\" class=\"blue-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"disableTreatmentAction\">COMPLETE</button>\n                     </ng-container>\n                   <!-- Buttons for traetment  plan ends here -->\n            </ng-container>\n\n        </div>\n</div>\n<app-loader-inline *ngIf=\"vLoader\"></app-loader-inline>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { SubSink } from '../../subsink.class';\nimport { QuickViewService } from '../services/quick-view.service';\n\n@Component({\n  selector: 'app-version-history',\n  templateUrl: './version-history.component.html',\n  styleUrls: ['./version-history.component.less']\n})\nexport class VersionHistoryComponent implements OnInit, OnDestroy {\n\n  dueDateList: any;\n  riskDetails: any;\n  loader: boolean = true;\n  subscriptions:SubSink = new SubSink();\n  infoText1 = 'Only the Inherent risk assessment was completed for this risk. Hence, the due date was closed.';\n  infoText2 = 'The Inherent risk assessment rating was saved in draft mode and not completed. Hence, the due date was closed.';\n  constructor(public quickView: QuickViewService) { }\n\n  ngOnInit(): void {\n    this.getDueDateList();\n  }\n\n  getDueDateList() {\n    this.subscriptions.add(this.quickView.dueDateList$.subscribe({\n      next: (val: any) => {\n        this.loader = false;\n        this.dueDateList = val;\n        this.getRiskDetails();\n      }\n    }))\n  }\n\n  getRiskDetails() {\n    this.subscriptions.add(this.quickView.riskDetails$.subscribe({\n      next: (val: any) => {\n        this.riskDetails = val;\n      }\n    }))\n  }\n\n  redirectToWorkroom(dueDateId: any) {\n    window.location.href = 'https://' + window.location.host +'/risk/risk-workroom/'+ this.riskDetails.riskObjId +'/?dueDateId='+ dueDateId;\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n\n}\n","<div class=\"version-history vx-m-4 vx-mt-0\">\n    <ng-container *ngIf=\"!dueDateList?.length\">\n        <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/quick-view/assessement-history-nodata.svg'\" noDataText=\"There are no risk assessment due dates for this risk within the selected Business Cycle.\"></app-no-data>\n    </ng-container>\n    <div class=\"tableHeader\" *ngIf=\"dueDateList?.length\">\n        <div class=\"tableRow\">\n            <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"></div>\n            <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assessment\"><span class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"><i class=\"icons\">&#xeaf0;</i></span> ASSESSMENT<br>DUE DATE</div>\n            <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center inherent\">INHERENT<br>RISK RATING</div>\n            <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center residual\">RESIDUAL<br>RISK RATING</div>\n            <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center treatment\">TREATMENT<br>PLANS</div>\n            <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center strategy\">RESPONSE<br>STRATEGY</div>\n            <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\">ASSESSMENT<br>STATUS</div>\n            <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"></div>\n        </div>\n    </div>\n    <div class=\"tableBody\">\n        <app-table-loader *ngIf=\"loader\"></app-table-loader>\n        <ng-container *ngIf=\"!loader\">\n            <div class=\"tableRow clickable\" *ngFor=\"let eachDueDate of dueDateList; let i = index;\">\n                <div class=\"tableColumn vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                    <div class=\"sr-no\" [appTooltip]=\"i + 1\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{i+1}}</div>\n                </div>\n                <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assessment\">\n                    <div class=\"vx-d-block vx-lh-3\">\n                        <div class=\"vx-fs-11 vx-fw-500 vx-align-center\">{{ eachDueDate?.dueDate}}</div>\n                        <em class=\"vx-fs-10 vx-fw-500 vx-paragraph\">by {{ eachDueDate?.dueTime}}</em>\n                    </div>\n                </div>\n                <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center inherent\">\n                    <div class=\"score vx-d-flex vx-lh-6\">\n                        <ng-container *ngIf=\"eachDueDate?.scores?.obtainedInherentScore && eachDueDate?.scores?.obtainedInherentScore !== '0.00'\">\n                            <div class=\"number vx-fs-11 vx-fw-500 vx-label-txt vx-pl-2 vx-pr-2\">{{(eachDueDate?.scores?.obtainedInherentScore + '/' + eachDueDate?.scores?.totalInherentScore)}}</div>\n                            <div class=\"score-value vx-fs-11 vx-fw-500 vx-pl-2 vx-pr-2 vx-tt-uppercase\" appTooltip=\"{{eachDueDate?.scores?.inherentRiskRatingType}}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [style.color]=\"eachDueDate?.scores?.inherentRiskRatingColor\">{{eachDueDate?.scores?.inherentRiskRatingType}}</div>\n                        </ng-container>\n                    </div>\n                    <div *ngIf=\"!eachDueDate?.scores?.obtainedInherentScore ||  eachDueDate?.scores?.obtainedInherentScore === '0.00'\" class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-pl-2 vx-pr-2\">--</div>\n                </div>\n                <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center residual\">\n                    <div class=\"score vx-d-flex vx-lh-6\">\n                        <ng-container *ngIf=\"eachDueDate?.scores?.obtainedResidualScore\">\n                            <div class=\"number vx-fs-11 vx-fw-500 vx-label-txt vx-pl-2 vx-pr-2\">{{(eachDueDate?.scores?.obtainedResidualScore + '/' + eachDueDate?.scores?.totalResidualScore)}}</div>\n                            <div class=\"score-value vx-fs-11 vx-fw-500 vx-pl-2 vx-pr-2 vx-tt-uppercase\" appTooltip=\"{{eachDueDate?.scores?.residualRiskRatingType}}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [style.color]=\"eachDueDate?.scores?.residualRiskRatingColor\">{{eachDueDate?.scores?.residualRiskRatingType }}</div>\n                        </ng-container>\n                    </div>\n                    <div *ngIf=\"!eachDueDate?.scores?.obtainedResidualScore\" class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-pl-2 vx-pr-2\">--</div>\n                </div>\n                <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center treatment\" appStopPropagation>\n                    <button  *ngIf=\"eachDueDate.treatmentPlans\" class=\"plan-count vx-fs-11 vx-fw-500 vx-txt-blue vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">{{eachDueDate.treatmentPlans}}</button>\n                    <div *ngIf=\"!eachDueDate.treatmentPlans\" class=\"vx-d-flex vx-lh-6\">\n                        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-pl-2 vx-pr-2\">--</div>\n                    </div>\n                </div>\n                <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center strategy\">\n                    <!-- accept/mitigate/transfer/avoid -->\n                    <ngcontainer *ngIf=\"(eachDueDate.dueDateStatus | uppercase) !== 'CLOSE'\">\n                        <div *ngIf=\"eachDueDate?.responseStrategyDetails?.responseStrategyState\" class=\"strategy-label vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [ngClass]=\"eachDueDate?.responseStrategyDetails?.responseStrategyState | lowercase\">{{eachDueDate?.responseStrategyDetails?.responseStrategyState  | titlecase}}</div>\n                        <div *ngIf=\"!eachDueDate?.responseStrategyDetails?.responseStrategyState\" class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-pl-2 vx-pr-2\">--</div>\n                    </ngcontainer>\n                    <ngcontainer *ngIf=\"(eachDueDate.dueDateStatus | uppercase) =='CLOSE' \">\n                        <div *ngIf=\"!(eachDueDate?.responseStrategyDetails?.responseStrategyState)\" class=\"status-label vx-fs-10 vx-fw-500 vx-label-txt vx-tt-uppercase\">Not specified</div>\n                        <div *ngIf=\"eachDueDate?.responseStrategyDetails?.responseStrategyState && (eachDueDate?.status | uppercase) == 'COMPLETED'\" class=\"strategy-label vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [ngClass]=\"eachDueDate?.responseStrategyDetails?.responseStrategyState | lowercase\">{{eachDueDate?.responseStrategyDetails?.responseStrategyState  | titlecase}}</div>\n                    </ngcontainer>\n                </div>\n                <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\">\n                    <div class=\"status-label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-pl-2\"\n                    [class.success]=\"eachDueDate?.status && eachDueDate?.status == 'COMPLETED'\"\n                    [class.in-progress]=\"eachDueDate?.status && eachDueDate?.status == 'IN PROGRESS'\"\n                    [class.failed]=\"eachDueDate?.status && eachDueDate?.status == 'NOT COMPLETED'\"\n                    [class.closed]=\"eachDueDate?.status && eachDueDate?.status == 'CLOSED'\"\n                    appTooltip=\"{{eachDueDate?.status}}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{eachDueDate?.status ? eachDueDate?.status : '--'}}</div>\n                    <i *ngIf=\"eachDueDate?.completionDetails?.isAssessmentCompleted && !eachDueDate?.completionDetails?.isTreatmentCompleted && (eachDueDate?.status | uppercase) ==='CLOSED'\" class=\"icons vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"infoText1\" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe932;</i>\n                    <i *ngIf=\"(eachDueDate.status | uppercase) =='CLOSED' && eachDueDate?.saveforLaterDetails?.ifAssessmentSaveForlater && !eachDueDate?.completionDetails?.isAssessmentCompleted\" class=\"icons vx-fs-12 vx-txt-blue vx-ml-2\" [appTooltip]=\"infoText2\" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe932;</i>\n                </div>\n                <div class=\"tableColumn vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n                    <button (click)=\"redirectToWorkroom(eachDueDate?._id)\" class=\"arrow vx-fs-12 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n                        <i class=\"icons\">&#xe970;</i>\n                    </button>\n                </div>\n            </div>\n        </ng-container>\n    </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-quick-discussion-loader',\n  templateUrl: './quick-discussion-loader.component.html',\n  styleUrls: ['./quick-discussion-loader.component.less']\n})\nexport class QuickDiscussionLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"quick-discussion-board-loader vx-mt-2 vx-pr-2\">\n    <div class=\"quick-discussion-board-loader-inner vx-pl-4 vx-pr-2\">\n        <ng-container *ngFor=\"let data of [1, 1]\">\n            <div class=\"date-area vx-mb-2 vx-d-inline-flex vx-align-center\">\n                <span class=\"vx-pl-2 vx-pr-2 vx-d-inline-flex vx-align-center\"><div class=\"loader\"></div></span>\n            </div>\n            <div class=\"quick-discussion-board-loader-item vx-mb-5\">\n                <div class=\"vx-avatar-group loader\"></div>\n                <div class=\"discuss-area vx-fs-12 vx-paragraph-txt vx-p-2 vx-pt-1 vx-pb-1 vx-mb-1\">\n                    <div class=\"loader vx-mt-1 vx-mb-2\" *ngFor=\"let data of [1, 1]\"></div>\n                    <div class=\"file-item vx-mt-2 vx-mb-1 vx-pl-2 vx-pr-2 vx-d-inline-flex vx-align-center\"><div class=\"loader\"></div></div>\n                </div>\n                <div class=\"action-btn loader vx-mt-2\"></div>\n            </div>\n        </ng-container>\n    </div>\n    <div class=\"quick-discussion-board-loader-editor vx-p-4 vx-pr-2 vx-d-flex\">\n        <div class=\"vx-avatar-group loader vx-mr-2\"></div>\n        <div class=\"editor-loader loader\"></div>\n    </div>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n  name: 'domsanitizer'\n})\nexport class DomsanitizerPipe implements PipeTransform {\n\n  constructor(private sanitizer: DomSanitizer) {}\n  transform(value: string): SafeHtml {\n    return this.sanitizer.bypassSecurityTrustHtml(value);\n  }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n  Component,\n  ElementRef,\n  OnInit,\n  Optional,\n  ViewChild,\n} from '@angular/core';\nimport { EditorConfig } from '@vcomply/editor';\nimport {\n  Configurations,\n  RISK_QUICKVIEW_PROPERTIES,\n} from '../../configurations';\nimport { DeleteComponent } from '../../ui-kit/action-dialog/delete/delete.component';\nimport { DialogService } from '../../ui-kit/dialog/dialog.service';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { AuthService } from '../services/auth.service';\nimport { QuickViewService } from '../services/quick-view.service';\n\n@Component({\n  selector: 'app-quick-discussion',\n  templateUrl: './quick-discussion.component.html',\n  styleUrls: ['./quick-discussion.component.less'],\n  inputs: ['riskId', 'riskDetails', 'dueDateDetails'],\n})\nexport class QuickDiscussionComponent implements OnInit {\n  /* @Input for risk ID */\n  riskId!: string | any;\n  /* @Input for risk details */\n  riskDetails!: object | any;\n  riskDiscussions!: any;\n  discussionLoader: boolean = true;\n  enableComment!: any;\n  temporaryComment = '';\n  replyEditor = false;\n  loggedInUser!: any;\n  shortName!: any;\n  env!: any;\n\n  constructor(\n    public quickViewService: QuickViewService,\n    private snackbar: SnackBarService,\n    private authService: AuthService,\n    private dialog: DialogService,\n    private http: HttpClient,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.env;\n    }\n  }\n\n  ngOnInit(): void {\n    console.log('riskIdriskId', this.riskId);\n    console.log('riskDetails', this.riskDetails);\n    this.getDiscussionComments();\n    this.getLoggedInUserInfo();\n    this.getLoggedInShortName();\n  }\n\n  editorConfig: EditorConfig = {\n    file: true,\n    link: true,\n    placeholder: 'Add a comment.',\n    //disabledButton: true,\n    id: 'Comment-editor',\n    mentionedNames: [],\n    maxHeight: '100px',\n    buttonName: 'Comment',\n  };\n\n  commentConfig: any = {\n    comment: '',\n    files: [],\n    mentionedIds: [],\n    uploadedFilesBreadcrum: [],\n    parentId: 0,\n    replyTo: '',\n    actionDate: '',\n    editorButtonName: 'COMMENT',\n    disabledButton: true,\n  };\n\n  //The function is responsible to fetch the comments of discussion board.\n  getDiscussionComments(pid?: any, dateKey?: any) {\n    this.quickViewService.getDiscussionComments(this.riskId).subscribe({\n      next: (res: any) => {\n        this.riskDiscussions = res;\n        this.discussionLoader = false;\n        console.log('comment listing', res);\n        if (pid && pid > 0) {\n          this.fetchSubComment(pid, dateKey);\n        }\n      },\n      error: (err: any) => {\n        console.log('error discussion', err);\n        this.snackbar.show(RISK_QUICKVIEW_PROPERTIES.errorMessage, 'alert');\n      },\n    });\n  }\n\n  //The function is responsible to fetch the sub comments when we click on the comment number.\n  fetchSubComment(pid: any, dateKey: string) {\n    this.enableComment = this.enableComment === pid ? -1 : pid;\n    this.quickViewService.getDiscussionComments(this.riskId, pid).subscribe({\n      next: (res: any) => {\n        for (const [key, value] of Object.entries(res)) {\n          const parentIndex = this.riskDiscussions[dateKey]?.findIndex(\n            (subCommentId: any) => subCommentId?.discussion_id === pid\n          );\n          if (parentIndex !== -1) {\n            if (!this.riskDiscussions[dateKey][parentIndex].subComment) {\n              this.riskDiscussions[dateKey][parentIndex].subComment = [];\n              this.riskDiscussions[dateKey][parentIndex].subComment = value;\n              this.riskDiscussions[dateKey][parentIndex].subComment =\n                this.riskDiscussions[dateKey][parentIndex].subComment.reverse();\n            } else {\n              this.riskDiscussions[dateKey][parentIndex].subComment.concat(\n                value\n              );\n            }\n          }\n        }\n      },\n      error: (err: any) => {\n        console.log('sub comment error', err);\n        this.snackbar.show(RISK_QUICKVIEW_PROPERTIES.errorMessage, 'alert');\n      },\n    });\n  }\n\n  handleValueChange(evt: any) {\n    this.temporaryComment = evt;\n    this.decideButtonText();\n  }\n\n  decideButtonText() {\n    if (\n      this.commentConfig.files.length > 0 &&\n      this.temporaryComment.trim().length === 0\n    ) {\n      this.commentConfig.editorButtonName = 'UPLOAD';\n    } else {\n      this.commentConfig.editorButtonName = 'COMMENT';\n    }\n    this.initializeEditorConfig();\n  }\n\n  initializeEditorConfig() {\n    this.editorConfig.disabledButton =\n      this.commentConfig.uploadedFilesBreadcrum.length > 0;\n    this.editorConfig.buttonName = this.commentConfig.editorButtonName;\n  }\n\n  extractContent(s: string) {\n    const span = document.createElement('span');\n    span.innerHTML = s.replace(/(\\r\\n|\\n|\\r)/gm, '').replace('&nbsp;', '');\n    return (span.textContent ?? '').trim() || (span.innerText ?? '').trim();\n  }\n\n  commentSubmitted(evt: any) {\n    if (evt.length == 0) {\n      return;\n    } else {\n      this.commentConfig.comment = evt;\n      this.discussionLoader = true;\n      if (\n        this.commentConfig.files.length === 0 &&\n        this.extractContent(this.commentConfig.comment).length === 0\n      ) {\n        return;\n      }\n      const PAYLOAD = {\n        comment: this.commentConfig.comment,\n        parent_id: this.commentConfig.parentId,\n        attachments: this.commentConfig.files ?? [],\n        risk_id: this.riskDetails?.riskId,\n        member_id: 0,\n        mentioned_member_id: this.commentConfig.mentionedIds ?? [],\n        action_type: '',\n      };\n      this.quickViewService.submitComment(PAYLOAD, this.riskId).subscribe({\n        next: (res: any) => {\n          this.discussionLoader = false;\n          if (\n            PAYLOAD.comment.trim().length === 0 &&\n            PAYLOAD.attachments.length === 1\n          ) {\n            this.snackbar.show(\n              RISK_QUICKVIEW_PROPERTIES.discussionBoard.singleFileUpload,\n              'success'\n            );\n          } else if (\n            PAYLOAD.comment.trim().length === 0 &&\n            PAYLOAD.attachments.length > 1\n          ) {\n            this.snackbar.show(\n              RISK_QUICKVIEW_PROPERTIES.discussionBoard.multipleFilesUpload,\n              'success'\n            );\n          } else if (\n            PAYLOAD.comment.trim().length > 0 &&\n            PAYLOAD.attachments.length > 0\n          ) {\n            this.snackbar.show(\n              RISK_QUICKVIEW_PROPERTIES.discussionBoard.fileAndComment,\n              'success'\n            );\n          } else if (\n            PAYLOAD.comment.trim().length > 0 &&\n            PAYLOAD.attachments.length === 0\n          ) {\n            this.snackbar.show(\n              RISK_QUICKVIEW_PROPERTIES.discussionBoard.commentAdded,\n              'success'\n            );\n          }\n          this.getDiscussionComments(\n            PAYLOAD.parent_id,\n            this.commentConfig.actionKey ?? null\n          );\n          this.resetCommentConfig();\n        },\n        error: (err: any) => {\n          this.snackbar.show(RISK_QUICKVIEW_PROPERTIES.errorMessage, 'alert');\n          console.log('error', err);\n        },\n      });\n    }\n  }\n\n  resetCommentConfig() {\n    this.commentConfig = {\n      comment: '',\n      files: [],\n      mentionedIds: [],\n      editorButtonName: 'COMMENT',\n      uploadedFilesBreadcrum: [],\n      parentId: 0,\n      replyTo: '',\n      actionKey: '',\n    };\n  }\n\n  showEditor() {\n    this.replyEditor = true;\n  }\n\n  closeEditor() {\n    this.replyEditor = false;\n  }\n\n  replyComment(comment: any, dateKey: any) {\n    console.log('replyComment', comment, dateKey);\n    this.commentConfig.parentId = comment.discussion_id;\n    this.commentConfig.replyTo = comment;\n    this.commentConfig.actionKey = dateKey;\n    //this.scrollEditor();\n  }\n\n  resetReply() {\n    this.closeEditor();\n    this.commentConfig.parentId = 0;\n    this.commentConfig.replyTo = '';\n    this.commentConfig.actionKey = '';\n  }\n\n  /**\n   * \"If the authService is not null, subscribe to the getUserInfo observable and set the loggedInUser\n   * variable to the response to get the information about logged in user.\n   */\n  getLoggedInUserInfo() {\n    this.authService?.getUserInfo.subscribe((res: any) => {\n      this.loggedInUser = res;\n      console.log('this.loggedInUser', this.loggedInUser);\n    });\n  }\n\n  getLoggedInShortName() {\n    this.shortName = this.authService?.getShortName();\n    console.log('this.shortName getLoggedInShortName', this.shortName);\n  }\n\n  deleteCommment(comment: any, dateKey: any) {\n    this.discussionLoader = true;\n    const ref = this.dialog.open(DeleteComponent, {\n      data: {\n        message:\n          comment?.comment_text?.trim().length === 0 &&\n          comment?.file_details_arr?.length > 0\n            ? `This action will delete ${\n                comment.file_details_arr?.length === 1\n                  ? 'this file.'\n                  : 'these files.'\n              }`\n            : `This action will delete this comment.`,\n      },\n      position: 'CENTER',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe(async (data: any) => {\n      this.discussionLoader = false;\n      if (data === true) {\n        this.quickViewService.deleteComment(comment.discussion_id).subscribe({\n          next: (data: any) => {\n            if (\n              comment?.comment_text.trim()?.length === 0 &&\n              comment.file_details_arr?.length > 0\n            ) {\n              this.snackbar.show(\n                RISK_QUICKVIEW_PROPERTIES?.discussionBoard?.deleteFile,\n                'success'\n              );\n            } else if (\n              comment.comment_text?.trim().length > 0 &&\n              comment.file_details_arr?.length > 0\n            ) {\n              this.snackbar.show(\n                RISK_QUICKVIEW_PROPERTIES?.discussionBoard.deleteComment,\n                'success'\n              );\n            } else if (\n              comment.comment_text?.trim()?.length > 0 &&\n              comment?.file_details_arr?.length === 0\n            ) {\n              this.snackbar.show(\n                RISK_QUICKVIEW_PROPERTIES?.discussionBoard?.deleteComment,\n                'success'\n              );\n            }\n            if (comment?.parent_id === 0) {\n              this.getDiscussionComments();\n            } else if (comment?.parent_id > 0) {\n              this.getDiscussionComments(comment?.parent_id, dateKey);\n            }\n          },\n          error: (error: any) => {\n            this.snackbar.show(\n              RISK_QUICKVIEW_PROPERTIES?.errorMessage,\n              'alert'\n            );\n          },\n        });\n      }\n    });\n  }\n\n  selectFile(files: any) {\n    for (let i = 0; i <= files.length - 1; i++) {\n      const name = files[i].file.name ?? '';\n      this.commentConfig.uploadedFilesBreadcrum.push(name);\n      this.uploadFile(files[i].file);\n    }\n  }\n\n  uploadFile(file: any) {\n    const formData = new FormData();\n    formData.append('RiskDiscusssionFile', file);\n    const destinationString = this.riskId;\n    this.quickViewService.uploadFiles(formData, destinationString).subscribe(\n      (res: any) => {\n        const index = this.commentConfig.uploadedFilesBreadcrum.indexOf(\n          file.name\n        );\n        if (index !== -1) {\n          this.commentConfig.uploadedFilesBreadcrum.splice(index, 1);\n        }\n        this.commentConfig?.files?.push(res);\n        this.decideButtonText();\n      },\n      (error) => {\n        const index = this.commentConfig.uploadedFilesBreadcrum.indexOf(\n          file.name\n        );\n        if (index !== -1) {\n          this.commentConfig.uploadedFilesBreadcrum.splice(index, 1);\n        }\n        this.decideButtonText();\n      }\n    );\n  }\n\n  //The function is responsible to deselect uploaded files.\n  deleteFile(file: any) {\n    const fileIndex =\n      this.commentConfig.files?.findIndex(\n        (currentFiles: any) => currentFiles.org_file === file.org_file\n      ) ?? -1;\n    this.commentConfig.files?.splice(fileIndex, 1);\n    this.decideButtonText();\n  }\n\n  showSnackBar(type: any, name?: any) {\n    switch (type) {\n      case 'FILE_DOWNLOAD':\n        this.snackbar.show(`File download in progress. \"${name}\"`, 'info');\n        break;\n    }\n  }\n\n  download(file: any) {\n    const url =\n      this.env?.environment?.s3Url +\n      this.env?.environment?.s3Bucket +\n      '/' +\n      file?.file_url_path;\n    try {\n      file['downloading'] = true;\n      const a = document.createElement('a');\n      const id = Math.random().toString(36).substring(2, 7);\n      a.setAttribute('href', url);\n      a.setAttribute('download', file?.filename);\n      a.setAttribute('id', id);\n      a.style.visibility = 'hidden';\n      a.setAttribute('target', '_self');\n      document.body.appendChild(a);\n      a.click();\n      document.body.removeChild(a);\n      setTimeout(() => {\n        file['downloading'] = false;\n      }, 2000);\n      this.showSnackBar('FILE_DOWNLOAD', file.org_file);\n    } catch {\n      file['downloading'] = false;\n    }\n  }\n}\n","<app-quick-discussion-loader *ngIf=\"discussionLoader\"></app-quick-discussion-loader>\n<div *ngIf=\"!discussionLoader\" class=\"quick-discussion-board vx-pr-2\">\n    <div class=\"quick-discussion-board-inner vx-pl-4 vx-pr-2\">\n        <ng-container>\n            <ng-container *ngFor=\"let discussionDate of riskDiscussions | keyvalue\">\n                <div class=\"date-area vx-mb-2 vx-d-inline-flex vx-align-center\">\n                    <span class=\"vx-fs-11 vx-paragraph-txt vx-pl-2 vx-pr-2 vx-d-inline-flex vx-align-center\">{{discussionDate?.key}}</span>\n                </div>\n                <ng-container *ngFor=\"let rootDiscussion of discussionDate?.value\">\n                    <div class=\"quick-discussion-board-item vx-mb-5\">\n                        <div class=\"vx-avatar-group\">\n                            <div class=\"vx-avatar md\">\n                                <span *ngIf=\"!rootDiscussion?.profile_pic\" class=\"blue\" [appTooltip]=\"rootDiscussion?.action_taken_by_name\" placement=\"bottom-left\" delay=\"0\"type=\"black\" [tooltipMandatory]=\"true\">{{rootDiscussion?.sort_name}}</span>\n                                <img *ngIf=\"rootDiscussion?.profile_pic \" [appTooltip]=\"rootDiscussion?.action_taken_by_name\" placement=\"bottom-left\" delay=\"0\"type=\"black\" [tooltipMandatory]=\"true\" [src]=\"rootDiscussion?.profile_pic | profile\" alt=\"\">\n                            </div>\n                        </div>\n                        <div class=\"discuss-area vx-fs-12 vx-paragraph-txt vx-p-2 vx-pt-1 vx-pb-1 vx-mb-1\">\n                          <span [innerHTML]=\"rootDiscussion?.msg | domsanitizer\"></span>\n                          <p *ngIf=\"rootDiscussion?.comment_text?.length > 0\">\n                            <span [innerHTML]=\"rootDiscussion?.comment_text | domsanitizer\"></span>\n                          </p>\n                            <ng-container *ngIf=\"rootDiscussion?.file_details_arr?.length > 0\">\n                                <div *ngFor=\"let file of rootDiscussion?.file_details_arr\" class=\"file-item vx-mt-3 vx-d-inline-flex vx-align-center vx-mb-1\">\n                                    <span class=\"file table {{ file?.org_file?.split('.')?.pop() }}\">\n                                        <i class=\"icons\">&#xe92e;</i>\n                                        <div class=\"format\">\n                                          <ng-container *ngIf=\"file?.org_file?.split('.')?.pop() == 'docx' || file?.org_file?.split('.')?.pop() == 'DOCX'\">doc</ng-container>\n                                          <ng-container *ngIf=\"file?.org_file?.split('.')?.pop() == 'jpeg' || file?.org_file?.split('.')?.pop() == 'JPEG'\">jpg</ng-container>\n                                          <ng-container *ngIf=\"file?.org_file?.split('.')?.pop() == 'xlsx' || file?.org_file?.split('.')?.pop() == 'XLSX'\">xls</ng-container>\n                                          <ng-container *ngIf=\"file?.org_file?.split('.')?.pop() == 'pptx' || file?.org_file?.split('.')?.pop() == 'PPTX'\">ppt</ng-container>\n                                          <ng-container\n                                            *ngIf=\"file?.org_file?.split('.')?.pop() != 'docx' && file?.org_file?.split('.')?.pop() != 'DOCX' &&\n                                            file?.org_file?.split('.')?.pop() != 'jpeg' && file?.org_file?.split('.')?.pop() != 'JPEG' &&\n                                            file?.org_file?.split('.')?.pop() != 'xlsx' && file?.org_file?.split('.')?.pop() != 'XLSX' &&\n                                            file?.org_file?.split('.')?.pop() != 'pptx' && file?.org_file?.split('.')?.pop() != 'PPTX'\">{{file?.org_file?.split('.')?.pop()}}\n                                          </ng-container>\n                                        </div>\n                                    </span>\n                                    <div class=\"file-name vx-fs-11 vx-label-txt\" [appTooltip]=\"file?.org_file\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                                        <a (click)=\"showSnackBar('FILE_DOWNLOAD', file.org_file)\" [attr.href]=\"env?.environment?.s3Url + env?.environment?.s3Bucket + '/' + file?.file_url_path\" download>\n                                          {{ file?.org_file }}\n                                        </a>\n                                    </div>\n                                    <button (click)=\"download(file)\" class=\"download-btn vx-fs-10 vx-txt-blue vx-p-0 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe91b;</i></button>\n                                </div>\n                            </ng-container>\n                        </div>\n                        <div class=\"vx-d-flex vx-align-center vx-mt-1\">\n                            <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt\">{{ rootDiscussion?.action_time }}</div>\n                            <button *ngIf=\"rootDiscussion?.sub_comment > 0\" (click)=\"fetchSubComment(rootDiscussion?.discussion_id, discussionDate?.key)\" class=\"comment-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pl-2 vx-m-0 vx-ml-2\">\n                              {{ rootDiscussion?.sub_comment }}\n                              {{ rootDiscussion?.sub_comment > 1 ? 'Comments' : 'Comment' }}\n                            </button>\n                            <button *ngIf=\"rootDiscussion?.delete_enable\" class=\"delete-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-pl-2 vx-m-0 vx-ml-2\" (click)=\"deleteCommment(rootDiscussion, discussionDate?.key)\">DELETE</button>\n                            <button (click)=\"showEditor()\" *ngIf=\"rootDiscussion?.reply_enable\" class=\"reply-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-m-0 vx-ml-2 vx-d-flex vx-align-center\" (click)=\"replyComment(rootDiscussion, rootDiscussion?.key)\">REPLY</button>\n                        </div>\n\n                        <!-- Reply comment -->\n                        <ng-container *ngIf=\"rootDiscussion?.subComment?.length > 0\">\n                          <ng-container *ngIf=\"enableComment === rootDiscussion?.discussion_id\">\n                            <div *ngFor=\"let childComment of rootDiscussion?.subComment\" class=\"quick-discussion-board-item vx-mt-3 vx-mb-5\">\n                                <div class=\"vx-avatar-group\">\n                                    <div class=\"vx-avatar md\">\n                                        <span *ngIf=\"!childComment?.profile_pic\" class=\"blue\" [appTooltip]=\"childComment?.action_taken_by_name\" placement=\"bottom-left\" delay=\"0\"type=\"black\" [tooltipMandatory]=\"true\">{{ childComment?.sort_name }}</span>\n                                        <img *ngIf=\"childComment?.profile_pic\" [appTooltip]=\"childComment?.action_taken_by_name\" placement=\"bottom-left\" delay=\"0\"type=\"black\" [tooltipMandatory]=\"true\" [src]=\"childComment?.profile_pic | profile\" alt=\"\">\n                                    </div>\n                                </div>\n                                <div class=\"discuss-area vx-fs-12 vx-paragraph-txt vx-p-2 vx-pt-1 vx-pb-1 vx-mb-1\">\n                                  <span  [innerHTML]=\"childComment?.msg | domsanitizer\"></span>\n                                  <p *ngIf=\"childComment?.comment_text?.length > 0\">\n                                    <span [innerHTML]=\"childComment?.comment_text | domsanitizer\"></span>\n                                  </p>\n                                  <ng-container *ngIf=\"childComment?.file_details_arr?.length > 0\">\n                                    <div class=\"file-item vx-mt-3 vx-d-inline-flex vx-align-center vx-mb-1\" *ngFor=\"let file of childComment?.file_details_arr\">\n                                      <span class=\"file table {{ file?.org_file?.split('.')?.pop() }}\">\n                                          <i class=\"icons\">&#xe92e;</i>\n                                          <div class=\"format\">\n                                            <ng-container *ngIf=\"file?.org_file?.split('.')?.pop() == 'docx' || file?.org_file?.split('.')?.pop() == 'DOCX'\">doc</ng-container>\n                                            <ng-container *ngIf=\"file?.org_file?.split('.')?.pop() == 'jpeg' || file?.org_file?.split('.')?.pop() == 'JPEG'\">jpg</ng-container>\n                                            <ng-container *ngIf=\"file?.org_file?.split('.')?.pop() == 'xlsx' || file?.org_file?.split('.')?.pop() == 'XLSX'\">xls</ng-container>\n                                            <ng-container *ngIf=\"file?.org_file?.split('.')?.pop() == 'pptx' || file?.org_file?.split('.')?.pop() == 'PPTX'\">ppt</ng-container>\n                                            <ng-container\n                                              *ngIf=\"file?.org_file?.split('.')?.pop() != 'docx' && file?.org_file?.split('.')?.pop() != 'DOCX' &&\n                                              file?.org_file?.split('.')?.pop() != 'jpeg' && file?.org_file?.split('.')?.pop() != 'JPEG' &&\n                                              file?.org_file?.split('.')?.pop() != 'xlsx' && file?.org_file?.split('.')?.pop() != 'XLSX' &&\n                                              file?.org_file?.split('.')?.pop() != 'pptx' && file?.org_file?.split('.')?.pop() != 'PPTX'\">{{file?.org_file?.split('.').pop()}}\n                                            </ng-container>\n                                          </div>\n                                      </span>\n                                      <div class=\"file-name vx-fs-11 vx-label-txt\" [appTooltip]=\"file?.org_file\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                                        <a (click)=\"showSnackBar('FILE_DOWNLOAD', file.org_file)\" [attr.href]=\"env?.environment?.s3Url + env?.environment?.s3Bucket + '/' + file?.file_url_path\" download>{{file?.org_file }}\n                                        </a>\n                                      </div>\n                                      <button (click)=\"download(file)\" class=\"download-btn vx-fs-10 vx-txt-blue vx-p-0 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe91b;</i></button>\n                                  </div>\n                                  </ng-container>\n                                </div>\n                                <div class=\"vx-d-flex vx-align-center vx-mt-1\">\n                                    <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt\">{{ childComment?.action_time }}</div>\n                                    <button *ngIf=\"childComment?.delete_enable  && riskDetails?.riskDetails?.LoginMemberType !=='GLOBAL_DASHBOARD'\" (click)=\"deleteCommment(childComment, discussionDate?.key)\" class=\"delete-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-pl-2 vx-m-0 vx-ml-2\">DELETE</button>\n                                </div>\n                            </div>\n                          </ng-container>\n                        </ng-container>\n                    </div>\n                </ng-container>\n            </ng-container>\n        </ng-container>\n        <app-no-data *ngIf=\"!riskDiscussions || (riskDiscussions | keyvalue)?.length == 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/quick-view/discussion-nodata.svg'\" [noDataText]=\"'No discussion has begun.'\"></app-no-data>\n    </div>\n    <div class=\"quick-discussion-board-editor vx-p-4 vx-pr-2 vx-d-flex\">\n        <ng-container>\n            <div *ngIf=\"commentConfig?.files?.length > 0 || commentConfig?.uploadedFilesBreadcrum?.length > 0 || commentConfig?.replyTo\" class=\"reply-area vx-w-100\">\n                <div class=\"vx-avatar-group\">\n                    <div *ngIf=\"commentConfig?.replyTo && replyEditor\" class=\"vx-avatar md\">\n                        <span *ngIf=\"commentConfig?.replyTo?.profile_pic?.length === 0\" class=\"blue\" [appTooltip]=\"commentConfig?.replyTo?.action_taken_by_name\" placement=\"bottom-left\" delay=\"0\"type=\"black\" [tooltipMandatory]=\"true\">{{ commentConfig?.replyTo?.sort_name }}</span>\n                        <img *ngIf=\"commentConfig?.replyTo?.profile_pic?.length > 0\" [appTooltip]=\"commentConfig?.replyTo?.action_taken_by_name\" placement=\"bottom-left\" delay=\"0\"type=\"black\" [tooltipMandatory]=\"true\" [src]=\"commentConfig?.replyTo?.profile_pic | profile\" alt=\"\">\n                    </div>\n                </div>\n                <div class=\"reply-area-inner vx-p-2 vx-pl-4\">\n                    <div *ngIf=\"commentConfig?.replyTo && replyEditor\" class=\"vx-d-flex vx-justify-between\">\n                        <div class=\"vx-fs-11 vx-paragraph-txt vx-d-flex vx-align-center\">Replying to: <span class=\"user-name vx-label-txt vx-d-block vx-ml-1\" [appTooltip]=\"commentConfig?.replyTo?.action_taken_by_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ commentConfig?.replyTo?.action_taken_by_name }}</span></div>\n                        <button (click)=\"resetReply()\" class=\"cross-btn vx-fs-12 vx-label-txt vx-p-0 vx-m-0\"><i class=\"icons\">&#xe9ae;</i></button>\n                    </div>\n                    <ng-container *ngIf=\"commentConfig?.files?.length > 0 || commentConfig?.uploadedFilesBreadcrum?.length > 0\">\n                        <div *ngIf=\"commentConfig?.uploadedFilesBreadcrum?.length === 0\" class=\"vx-d-flex vx-align-center\">\n                            <div *ngIf=\"commentConfig?.files?.length > 0\" class=\"file-item vx-mt-2 vx-mb-2 vx-mr-3 vx-pr-2 vx-d-inline-flex vx-align-center\">\n                                <button  (click)=\"deleteFile(commentConfig?.files[0])\" class=\"remove-btn vx-fs-14 vx-label-txt vx-p-0 vx-m-0\"><i class=\"icons\">&#xe94e;</i></button>\n                                <span class=\"file table {{ commentConfig?.files[0]?.org_file?.split('.')?.pop() }}\">\n                                    <i class=\"icons\">&#xe92e;</i>\n                                    <div class=\"format\">\n                                      <ng-container *ngIf=\"commentConfig?.files[0]?.org_file?.split('.')?.pop() == 'docx' || commentConfig?.files[0]?.org_file?.split('.')?.pop() == 'DOCX'\">doc</ng-container>\n                                      <ng-container *ngIf=\"commentConfig?.files[0]?.org_file?.split('.')?.pop() == 'jpeg' || commentConfig?.files[0]?.org_file?.split('.')?.pop() == 'JPEG'\">jpg</ng-container>\n                                      <ng-container *ngIf=\"commentConfig?.files[0]?.org_file?.split('.')?.pop() == 'xlsx' || commentConfig?.files[0]?.org_file?.split('.')?.pop() == 'XLSX'\">xls</ng-container>\n                                      <ng-container *ngIf=\"commentConfig?.files[0]?.org_file?.split('.')?.pop() == 'pptx' || commentConfig?.files[0]?.org_file?.split('.')?.pop() == 'PPTX'\">ppt</ng-container>\n                                      <ng-container\n                                        *ngIf=\"commentConfig?.files[0]?.org_file?.split('.')?.pop() != 'docx' && commentConfig?.files[0]?.org_file?.split('.')?.pop() != 'DOCX' &&\n                                        commentConfig?.files[0]?.org_file?.split('.')?.pop() != 'jpeg' && commentConfig?.files[0]?.org_file?.split('.')?.pop() != 'JPEG' &&\n                                        commentConfig?.files[0]?.org_file?.split('.')?.pop() != 'xlsx' && commentConfig?.files[0]?.org_file?.split('.')?.pop() != 'XLSX' &&\n                                        commentConfig?.files[0]?.org_file?.split('.')?.pop() != 'pptx' && commentConfig?.files[0]?.org_file?.split('.')?.pop() != 'PPTX'\">{{commentConfig?.files[0]?.org_file?.split('.')?.pop()}}\n                                      </ng-container>\n                                    </div>\n                                </span>\n                                <div class=\"file-name vx-fs-11 vx-label-txt\" [appTooltip]=\"commentConfig?.files[0]?.org_file\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{commentConfig?.files[0]?.org_file}}</div>\n                            </div>\n                            <button *ngIf=\"commentConfig?.files?.length > 1 && commentConfig?.uploadedFilesBreadcrum?.length === 0\" appPopover (click)=\"fileCount.popover()\" placement=\"right\" class=\"count-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center vx-lh-7\">+{{commentConfig?.files?.slice(1).length}}</button>\n                            <app-popover #fileCount [dontCloseonClick]=\"true\">\n                                <div class=\"action-list\">\n                                  <ul class=\"action-item\">\n                                    <li *ngFor=\"let filex of commentConfig?.files?.slice(1)\">\n                                      <div class=\"avatar-card\">\n                                        <span class=\"file table {{ filex?.org_file?.split('.')?.pop() }}\">\n                                            <i class=\"icons\">&#xe92e;</i>\n                                            <div class=\"format\">\n                                              <ng-container *ngIf=\"filex?.org_file?.split('.')?.pop() == 'docx' || filex?.org_file?.split('.')?.pop() == 'DOCX'\">doc</ng-container>\n                                              <ng-container *ngIf=\"filex?.org_file?.split('.')?.pop() == 'jpeg' || filex?.org_file?.split('.')?.pop() == 'JPEG'\">jpg</ng-container>\n                                              <ng-container *ngIf=\"filex?.org_file?.split('.')?.pop() == 'xlsx' || filex?.org_file?.split('.')?.pop() == 'XLSX'\">xls</ng-container>\n                                              <ng-container *ngIf=\"filex?.org_file?.split('.')?.pop() == 'pptx' || filex?.org_file?.split('.')?.pop() == 'PPTX'\">ppt</ng-container>\n                                              <ng-container\n                                                *ngIf=\"filex?.org_file?.split('.')?.pop() != 'docx' && filex?.org_file?.split('.')?.pop() != 'DOCX' &&\n                                                filex?.org_file?.split('.')?.pop() != 'jpeg' && filex?.org_file?.split('.')?.pop() != 'JPEG' &&\n                                                filex?.org_file?.split('.')?.pop() != 'xlsx' && filex?.org_file?.split('.')?.pop() != 'XLSX' &&\n                                                filex?.org_file?.split('.')?.pop() != 'pptx' && filex?.org_file?.split('.')?.pop() != 'PPTX'\">{{filex?.org_file?.split('.')?.pop()}}\n                                              </ng-container>\n                                            </div>\n                                        </span>\n                                        <span class=\"value\" [appTooltip]=\"filex?.org_file\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{filex?.org_file}}</span>\n                                        <i (click)=\"deleteFile(filex)\" class=\"icons cross vx-fs-14 vx-txt-blue vx-ml-2\">&#xe9ae;</i>\n                                      </div>\n                                    </li>\n                                  </ul>\n                                </div>\n                            </app-popover>\n                        </div>\n\n                        <!-- for loading of file -->\n                        <div class=\"vx-d-flex vx-align-center\" *ngIf=\"commentConfig?.uploadedFilesBreadcrum?.length > 0\" >\n                          <div class=\"file-item vx-mt-2 vx-mb-2 vx-pr-2 vx-d-inline-flex vx-align-center\">\n                              <span class=\"file table {{ commentConfig.uploadedFilesBreadcrum[0]?.org_file?.split('.')?.pop() }}\">\n                                  <i class=\"icons\">&#xe92e;</i>\n                                  <div class=\"format\">\n                                    <ng-container *ngIf=\"commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() == 'docx' || commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() == 'DOCX'\">doc</ng-container>\n                                    <ng-container *ngIf=\"commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() == 'jpeg' || commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() == 'JPEG'\">jpg</ng-container>\n                                    <ng-container *ngIf=\"commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() == 'xlsx' || commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() == 'XLSX'\">xls</ng-container>\n                                    <ng-container *ngIf=\"commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() == 'pptx' || commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() == 'PPTX'\">ppt</ng-container>\n                                    <ng-container\n                                      *ngIf=\"commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() != 'docx' && commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() != 'DOCX' &&\n                                      commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() != 'jpeg' && commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() != 'JPEG' &&\n                                      commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() != 'xlsx' && commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() != 'XLSX' &&\n                                      commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() != 'pptx' && commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop() != 'PPTX'\">{{commentConfig.uploadedFilesBreadcrum[0]?.split('.')?.pop()}}\n                                    </ng-container>\n                                  </div>\n                              </span>\n                              <div class=\"file-name vx-fs-11 vx-label-txt\" [appTooltip]=\"commentConfig.uploadedFilesBreadcrum[0]?.org_file\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ commentConfig.uploadedFilesBreadcrum[0] }}</div>\n                              <div class=\"progress-bar\">\n                                <div class=\"progress-bar-move\"></div>\n                              </div>\n                          </div>\n                        </div>\n                        <!-- end -->\n\n                    </ng-container>\n                </div>\n            </div>\n        </ng-container>\n        <div class=\"vx-avatar-group vx-mr-2\">\n            <div class=\"vx-avatar md\" [class.blank]=\"replyEditor\">\n              <ng-container *ngIf=\"!replyEditor\">\n                <span *ngIf=\"!loggedInUser?.profile_pic\" class=\"blue\" [appTooltip]=\"loggedInUser?.member_name\" placement=\"bottom-left\" delay=\"0\"type=\"black\" [tooltipMandatory]=\"true\">{{shortName}}</span>\n                <img *ngIf=\"loggedInUser?.profile_pic\" [appTooltip]=\"loggedInUser?.member_name\" placement=\"bottom-left\" delay=\"0\"type=\"black\" [tooltipMandatory]=\"true\" [src]=\"loggedInUser?.profile_pic | profile\" alt=\"\">\n              </ng-container>\n\n            </div>\n        </div>\n        <vcomply-editor\n        [editorConfig]=\"editorConfig\"\n        [(ngModel)]=\"commentConfig.comment\"\n        (ngModelChange)=\"handleValueChange($event)\"\n        (comment)=\"commentSubmitted($event)\"\n        (sendSavedFiles)=\"selectFile($event)\"\n        >\n        </vcomply-editor>\n    </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'quick-view-loader',\n  templateUrl: './quick-view-loader.component.html',\n  styleUrls: ['./quick-view-loader.component.less']\n})\nexport class QuickViewLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"quick-view-loader\">\n    <div class=\"loader button\"></div>\n    <div class=\"quick-view-loader-heading vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-mb-3\">\n        <div class=\"vx-d-flex vx-align-center vx-w-100\">\n            <div class=\"vx-avatar-group vx-mr-2 loader\"></div>\n            <div class=\"risk-name loader\"></div>\n        </div>\n    </div>\n    <div class=\"quick-view-loader-tab vx-pl-4 vx-pr-4 vx-mb-3 vx-d-flex vx-align-center\">\n        <div class=\"loader\" *ngFor=\"let data of [1, 1, 1]\"></div>\n    </div>\n\n    <div class=\"quick-view-loader-inner\">\n        <div class=\"loader-metrics\">\n            <div class=\"metrics-list vx-mb-5 vx-ml-4 vx-mr-4\">\n                <div class=\"metrics-list-item vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\">\n                    <div class=\"loader\"></div>\n                </div>\n                <div class=\"metrics-list-inner vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\">\n                    <div class=\"loader\"></div>\n                </div>\n                <div class=\"inherent-assessment-loader\">\n                    <div class=\"table_header\">\n                        <div class=\"table_row\">\n                            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 responsibility-center\">\n                                <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n                            </div>\n                            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 likelihood\">\n                                <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n                            </div>\n                            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 impact\">\n                                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                                    <div class=\"calculate-divition vx-fs-9 vx-fw-600 vx-paragraph-txt\"><i class=\"icons\">&#xe9ae;</i></div>\n                                    <div class=\"vx-d-block\">\n                                        <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n                                    </div>\n                                </div>\n                            </div>\n                            <div class=\"table_column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-p-2 vx-pl-3 vx-pr-3 rating\">\n                                <div class=\"heading vx-d-flex vx-align-center vx-mb-1 vx-lh-4\">\n                                    <div class=\"calculate-divition vx-fs-14 vx-fw-600 vx-paragraph-txt\">=</div>\n                                    <div class=\"vx-d-block\">\n                                        <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"table_body\">\n                        <div class=\"table_row\" *ngFor=\"let data of [1, 1, 1]\">\n                            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center responsibility-center\">\n                                <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n                            </div>\n                            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center likelihood\">\n                                <div class=\"vx-d-block\">\n                                    <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n                                </div>\n                            </div>\n                            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center impact\">\n                                <div class=\"vx-d-block\">\n                                    <div class=\"loader list\" *ngFor=\"let data of [1, 1]\"></div>\n                                </div>\n                            </div>\n                            <div class=\"table_column vx-p-2 vx-pl-3 vx-pr-3 vx-d-flex vx-align-center rating\">\n                                <div class=\"loader list\"></div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"metrics-list-item vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" *ngFor=\"let data of [1, 1]\">\n                    <div class=\"loader\"></div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"details-loader\">\n            <div class=\"description-area vx-pt-5 vx-mb-2\">\n                <div class=\"loader vx-mb-2\" *ngFor=\"let data of [1, 1, 1, 1, 1]\"></div>\n            </div>\n            <div class=\"details-list\">\n                <ul class=\"vx-p-0 vx-m-0\">\n                    <li class=\"vx-d-flex vx-align-center\" *ngFor=\"let data of [1, 1, 1, 1, 1]\">\n                        <div class=\"loader\"></div>\n                    </li>\n                </ul>\n            </div>\n        </div>\n    </div>\n\n    <div class=\"quick-view-loader-bottom vx-mt-3\"></div>\n</div>","import { ChangeDetectorRef, Component, EventEmitter, OnDestroy, OnInit } from '@angular/core';\nimport { CONFIGS } from '../configurations/constants';\nimport { QuickViewService } from '../services/quick-view.service';\nimport { SubSink } from '../../subsink.class';\n\n\n@Component({\n  selector: 'app-quick-view',\n  templateUrl: './quick-view.component.html',\n  styleUrls: ['./quick-view.component.less'],\n  inputs: ['riskId', 'riskDetails', 'featureFlag', 'ENVIRONMENT','activeDueDateDetails'],\n})\nexport class QuickViewComponent implements OnInit, OnDestroy {\n\n  /* @Input for risk ID */\n  riskId !: string | any;\n  /* @Input for risk details */\n  riskDetails !: object | any;\n\n  activeDueDateDetails !: object | any;\n  /* @Input for feature flag service */\n  featureFlag !: any\n  /* Application wide configuration */\n  CONFIG = CONFIGS;\n  /* Environment Configuration*/\n  ENVIRONMENT !: any;\n  /* Currently Active Tab in the view */\n  currentTab = 'DETAILS'\n  riskDetails$:any = this.quickView.riskDetails$;\n  activeDueDateDetails$:any = this.quickView.activeDueDateDetails$;\n  subscriptions:SubSink = new SubSink()\n  loader: any;\n\n  constructor(\n    public quickView:QuickViewService,\n    private cdr:ChangeDetectorRef\n  ) { }\n\n  ngOnInit(): void {\n    console.log(\"riskDetails==>\",this.riskDetails)\n    console.log('this is the feature flag 333 -->> ', this.activeDueDateDetails)\n\n    this.subscriptions.add(this.quickView.dueDateLoader$.subscribe({\n      next: (val: any) => {\n        this.loader = val;\n        console.log('this is the value of loader', this.loader)\n      }\n    }))\n  }\n\n  switchTab(tab: string) {\n    this.currentTab = tab;\n    this.cdr.detectChanges();\n  }\n\n  dispatchAction(type:'CLOSE' | 'DELETE' | 'EDIT' | 'RECOMMENDATION' | 'REASSESS', payload?:any){\n    this.quickView.actionEmitter$.next({eventType:type, payload})\n  }\n\n  redirectToWorkroom() {\n    window.location.href = 'https://' + window.location.host +'/risk/risk-workroom/'+ this.riskId ;\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<quick-view-loader *ngIf=\"false\"></quick-view-loader>\n<div class=\"quick-view-dialog\">\n    <button (click)=\"redirectToWorkroom()\" class=\"workroom-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pt-3 vx-pb-3 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n        <div class=\"workroom-btn-inner vx-d-flex vx-align-center\"><i class=\"icons vx-fs-12 vx-mb-2\">&#xeb32;</i>GO TO THE RISK WORKROOM</div>\n    </button>\n    <div class=\"quick-view-dialog-heading vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-mb-3\">\n      <!-- loader -->\n      <div *ngIf=\"(quickView.riskDetailsLoadingState$|async) === 'LOADING' && !riskDetails\" class=\"vx-d-flex vx-align-center vx-w-100\">\n        <div class=\"vx-avatar-group vx-mr-2 loader\"></div>\n        <div class=\"risk-name loader\"></div>\n      </div>\n        <div class=\"vx-d-flex vx-align-center\" *ngIf=\"riskDetails\">\n            <div class=\"vx-avatar-group vx-mr-2\">\n                <div *ngIf=\"riskDetails?.riskDetails?.riskOwners?.length === 1\" class=\"vx-avatar md\" [appTooltip]=\"riskDetails?.riskDetails?.riskOwners[0]?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                    <span *ngIf=\"!riskDetails?.riskDetails?.riskOwners[0]?.profile_pic\"  class=\"blue\">{{riskDetails?.riskDetails?.riskOwners[0]?.short_name}}</span>\n                    <img *ngIf=\"riskDetails?.riskDetails?.riskOwners[0]?.profile_pic\" src=\"{{riskDetails?.riskDetails?.riskOwners[0]?.profile_pic | profile}}\" />\n                </div>\n                <div *ngIf=\"riskDetails?.riskDetails?.riskOwners?.length > 1\" class=\"vx-avatar md multi-user vx-d-flex vx-align-center vx-justify-center\" appPopover (click)=\"users.popover()\" placement=\"left\">\n                    <div class=\"count vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\">{{riskDetails?.riskDetails?.riskOwners?.length}}</div>\n                    <i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xea35;</i>\n                </div>\n                <app-popover #users>\n                  <div class=\"action-list\">\n                    <ul class=\"action-item\">\n                      <li *ngFor=\"let owner of riskDetails?.riskDetails?.riskOwners\">\n                        <div class=\"avatar-card\">\n                          <span class=\"avatar\"  *ngIf=\"owner?.profile_pic\">\n                            <img src=\"{{ owner?.profile_pic | profile }}\" />\n                          </span>\n                          <span  *ngIf=\"!owner?.profile_pic\" class=\"avatar\">{{ owner?.short_name }}</span>\n                          <span class=\"value\" [appTooltip]=\"owner?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{owner?.member_name}}</span>\n                        </div>\n                      </li>\n                    </ul>\n                  </div>\n                </app-popover>\n            </div>\n            <div class=\"id vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">{{riskDetails?.riskControlId}}</div>\n            <div class=\"risk-name vx-fs-14 vx-label-txt\" [appTooltip]=\"riskDetails?.riskName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{riskDetails?.riskName}}</div>\n            <i *ngIf=\"(riskDetails?.riskControlId || riskDetails?.riskName) && (riskDetails?.residual_risk.riskScore > riskDetails.inherentRisk?.riskScore) \" class=\"icons alert-icon vx-fs-16 vx-ml-2\" [appTooltip]=\"'The Inherent Risk Rating is currently lower than the Residual Risk Rating.'\" placement=\"bottom\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe914;</i>\n        </div>\n        <div class=\"vx-d-flex vx-align-center\">\n            <button appPopover (click)=\"moreAction.popover()\" placement=\"right\" class=\"more-action vx-fs-16 vx-txt-blue vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe920;</i></button>\n            <button class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"dispatchAction('CLOSE')\" [class.disabled]=\"false\" [appTooltip]=\"'[Esc] to close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i></button>\n            <app-popover #moreAction>\n                <div class=\"action-list\">\n                  <ul class=\"action-item\">\n                    <li><button (click)=\"redirectToWorkroom()\" ><i class=\"icons\">&#xe93e;</i> Risk Workroom</button></li>\n                    <li *ngIf=\"riskDetails?.action_flags?.includes('edit_enable')\"><button (click)=\"dispatchAction('EDIT')\"><i class=\"icons\">&#xe90c;</i> Edit</button></li>\n                     <li *ngIf=\"riskDetails?.action_flags?.includes('recommendation_enable')\"><button (click)=\"dispatchAction('RECOMMENDATION', riskDetails)\"><i class=\"icons\">&#xe954;</i> Accept Recommendation</button></li>\n                    <li *ngIf=\"riskDetails?.riskDetails?.enable_reassess_flag && riskDetails?.riskDetails?.LoginMemberType !=='OVERSIGHT'\"><button (click)=\"dispatchAction('REASSESS', riskDetails)\"><i class=\"icons\">&#xea16;</i> Reassess</button></li>\n                    <li *ngIf=\"riskDetails?.action_flags?.includes('delete_enable')\"><button (click)=\"dispatchAction('DELETE', riskDetails?.riskId )\"><i class=\"icons\">&#xe923;</i> Delete</button></li>\n                  </ul>\n                </div>\n            </app-popover>\n        </div>\n    </div>\n    <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n    <ng-container *ngIf=\"!loader\">\n      <div class=\"quick-view-dialog-tab vx-pl-4 vx-pr-4 vx-mb-3\">\n          <button (click)=\"switchTab('DETAILS')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-lh-5\" [class.active]=\"currentTab === 'DETAILS'\">RISK DETAILS & METRICS</button>\n          <button (click)=\"switchTab('VERSION')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-lh-5\" [class.active]=\"currentTab === 'VERSION'\">ASSESSMENT HISTORY</button>\n          <!-- <button (click)=\"switchTab('SCORE')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-lh-5\" [class.active]=\"currentTab === 'SCORE'\">RISK ASSESSMENT SCORE SETTINGS</button> -->\n          <!-- <button (click)=\"switchTab('DISCUSSION')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-lh-5\" [class.active]=\"currentTab === 'DISCUSSION'\">DISCUSSION BOARD</button> -->\n          <!-- <button (click)=\"switchTab('ACTIVITY')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-lh-5\" [class.active]=\"currentTab === 'ACTIVITY'\">ACTIVITY LOG</button> -->\n          <!-- <button (click)=\"switchTab('DOCUMENT')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-lh-5\" [class.active]=\"currentTab === 'DOCUMENT'\">DOCUMENT</button> -->\n      </div>\n\n      <ng-container *ngIf=\"currentTab === 'DETAILS'\">\n          <app-details-metrics [dueDateDetails]=\"activeDueDateDetails\" [featureFlag]=\"featureFlag\"></app-details-metrics>\n      </ng-container>\n      <ng-container *ngIf=\"currentTab === 'VERSION'\">\n          <app-version-history></app-version-history>\n      </ng-container>\n      <!-- <ng-container *ngIf=\"currentTab === 'SCORE'\">\n          <app-score-settings></app-score-settings>\n      </ng-container> -->\n      <ng-container *ngIf=\"currentTab === 'DISCUSSION'\">\n          <app-quick-discussion [riskId]=\"riskId\" [riskDetails]=\"riskDetails\" [dueDateDetails]=\"activeDueDateDetails\"></app-quick-discussion>\n      </ng-container>\n      <!-- <ng-container *ngIf=\"currentTab === 'ACTIVITY'\">\n          <app-quick-activity></app-quick-activity>\n      </ng-container>\n      <ng-container *ngIf=\"currentTab === 'DOCUMENT'\">\n          <app-quick-document></app-quick-document>\n      </ng-container> -->\n    </ng-container>\n</div>\n","export const IFRAME_TYPE = {\n    WFE: 'wfe',\n}\n\nexport const WFE_IFRAME_URL = `/web-view/?c=wfe`","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n@Pipe({\n  name: 'safeURL',\n})\n\nexport class safeURLPipe implements PipeTransform {\n  constructor(private domSanitizer: DomSanitizer) {}\n  transform(url: any) {\n    return this.domSanitizer.bypassSecurityTrustResourceUrl(url);\n  }\n}","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\n\n@Component({\n  selector: 'app-iframe',\n  template: `\n    <iframe\n      #iframeElement\n      [className]=\"type\"\n      [name]=\"type\"\n      [src]=\"src | safeURL\"\n    ></iframe>\n  `,\n  styleUrls: ['./vc-iframe.component.less'],\n})\nexport class VcIframeComponent implements OnInit, AfterViewInit {\n  @Input() src: string = '';\n  @Input() type: string = '';\n\n  @Output() closeIframe = new EventEmitter<any>();\n  @Output() onIframeLoaded = new EventEmitter<void>();\n\n  @ViewChild('iframeElement', { static: false }) iframe!: ElementRef;\n\n  ngOnInit() {\n    window.addEventListener('message', this.handleMessage, false);\n  }\n\n  ngAfterViewInit() {\n    if (this.iframe?.nativeElement) {\n      this.iframe.nativeElement?.addEventListener('load', () => {\n        this.onIframeLoaded.emit();\n      });\n    }\n  }\n\n  private handleMessage = (event: MessageEvent) => {\n    const targetOrigin = window.location.origin;\n    if (event?.origin !== targetOrigin) {\n      return;\n    }\n\n    this.closeIframe.emit(event?.data?.event);\n  };\n}","import { Component, HostListener, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { SessionStorageService } from '../../services/session-storage.service';\nimport { WorkflowService } from '../workflow.service';\n\nimport { IFRAME_TYPE, WFE_IFRAME_URL } from '../../constants/iframe.constants';\nimport { WFE_IFRAME } from '../../constants/session-storage.constants';\n\n@Component({\n  selector: 'app-workflow',\n  templateUrl: './workflow.component.html',\n  styleUrls: ['./workflow.component.less'],\n})\nexport class WorkflowComponent implements OnInit {\n  iframeSource: string = '';\n  wfeIframe: string = IFRAME_TYPE.WFE;\n\n  workflowSubscription!: Subscription;\n\n  iframeLoading: boolean = true;\n  isWorkflowOpened: boolean = false;\n  onSubmit: boolean = false;\n\n  constructor(\n    private sessionStorage: SessionStorageService,\n    private workflowService: WorkflowService\n  ) {\n    this.handleWorkflowSubscription();\n  }\n\n  ngOnInit() {\n    this.setIframeSource();\n    this.handleBeforeUnload();\n  }\n\n  ngOnDestroy() {\n    this.workflowSubscription.unsubscribe();\n    window.removeEventListener('message', this.handleIframeMessage);\n  }\n\n  handleBeforeUnload() {\n    window.addEventListener('message', this.handleIframeMessage.bind(this));\n  }\n\n  handleIframeMessage = (event: MessageEvent) => {\n    if (event.origin === window.location.origin) {\n      if (event.data?.type === 'submit') {\n        this.onSubmit = true;\n      }\n    }\n  };\n\n  handleWorkflowSubscription() {\n    this.workflowSubscription =\n      this.workflowService.isWorkflowOpenedSubject.subscribe(\n        (isWorkflowOpened: boolean) => {\n          this.isWorkflowOpened = isWorkflowOpened;\n        }\n      );\n  }\n\n  setIframeSource() {\n    this.iframeSource = window.location.origin + WFE_IFRAME_URL;\n  }\n\n  closeWorkflow(_: boolean) {\n    this.workflowService.isWorkflowOpenedSubject.next(false);\n    this.sessionStorage.clearMetadata(WFE_IFRAME);\n    this.isWorkflowOpened = false;\n  }\n\n  handleCloseIframe(event: any) {\n    if (event === 'closeWebview') {\n      this.closeWorkflow(true);\n    }\n  }\n\n  handleIframeLoaded() {\n    this.iframeLoading = false;\n  }\n\n  // handle the confirmation alert from Parent component\n  @HostListener('window:beforeunload', ['$event'])\n  unloadNotification($event: any) {\n    const token = localStorage.getItem('currentUser');\n    if (this.isWorkflowOpened && token && !this.onSubmit) {\n      $event.returnValue = true;\n    }\n  }\n}\n","<app-iframe\n  *ngIf=\"iframeLoading || isWorkflowOpened\"\n  [hidden]=\"iframeLoading || !isWorkflowOpened\"\n  id=\"wfeIframe\"\n  [src]=\"iframeSource\"\n  [type]=\"wfeIframe\"\n  (closeIframe)=\"handleCloseIframe($event)\"\n  (onIframeLoaded)=\"handleIframeLoaded()\"\n>\n</app-iframe>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { SnackBarService } from '../snack-bar.service';\n\n@Component({\n  selector: 'app-snack-bar',\n  templateUrl: './snack-bar.component.html',\n  styleUrls: ['./snack-bar.component.less'],\n})\nexport class SnackBarComponent implements OnInit, OnDestroy {\n  show = false;\n  message: string = '--';\n  icon: string = '&#xe914;';\n  type='alert'\n  icons:any = {\n    success:'&#xe93d;',\n    warning:'&#xe914;',\n    info:'&#xe932;',\n    alert:'&#xe914;',\n    error:'&#xeaae;'\n  }\n  snackbarSubscription!: Subscription;\n  constructor(private snackbarService: SnackBarService) {}\n\n  ngOnInit(): void {\n    this.snackbarSubscription = this.snackbarService.snackbarState.subscribe((state) => {\n      if(state.icon && Object.keys(this.icons).includes(state?.icon)){\n        this.icon = this.icons[state.icon];\n        this.type = state?.icon;\n      }\n      this.message = state.message;\n      this.show = state.show;\n      setTimeout(() => {\n        this.show = false;\n      }, 3000);\n    });\n  }\n  close() {\n    this.show = false;\n  }\n  ngOnDestroy() {\n    this.snackbarSubscription.unsubscribe();\n  }\n}\n","<div class=\"snackbar\" *ngIf=\"show\">\n  <div class=\"snackbar-inner\">\n    <div class=\"snackbarText\">\n      <!-- &#xe914; -->\n      <i class=\"icons\" [class]=\"type\" [innerHTML]=\"icon\"></i> {{ message }}\n    </div>\n    <button (click)=\"close()\">[ <span>Close</span> ]</button>\n  </div>\n</div>\n","\nimport { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, OnChanges, OnDestroy, OnInit, Optional, SimpleChanges, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { first, from, map, of, take, tap } from 'rxjs';\nimport { Configurations } from '../configurations';\nimport { CONFIGS } from '../quick-view/configurations/constants';\nimport { EditResidualRiskRatingComponent } from '../quick-view/edit-residual-risk-rating/edit-residual-risk-rating.component';\nimport { QuickViewComponent } from '../quick-view/quick-view/quick-view.component';\nimport { QuickViewService } from '../quick-view/services/quick-view.service';\nimport { WorkflowService } from '../quick-view/workflow/workflow.service';\nimport { SubSink } from '../subsink.class';\nimport { AccessCapabilityComponent } from '../ui-kit/action-dialog/access-capability/access-capability.component';\nimport { DeleteComponent } from '../ui-kit/action-dialog/delete/delete.component';\nimport { DialogRef } from '../ui-kit/dialog/dialog-ref';\nimport { DialogService } from '../ui-kit/dialog/dialog.service';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\n\n@Component({\n  selector: 'risk-quickview-container',\n  templateUrl: './risk-quickview-container.component.html',\n  styleUrls: ['./risk-quickview-container.component.less'],\n  inputs: ['riskId', 'featureFlag','userInfo'],\n  outputs: ['closeQuickView'],\n  //providers:[QuickViewService]\n})\nexport class RiskQuickviewContainerComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n  //@Output Emits when quickview is closed\n  closeQuickView: EventEmitter<any> = new EventEmitter();\n\n  quickViewComponentRef !: QuickViewComponent;\n  @ViewChild('quickView', { static: false }) set setInherent(content: QuickViewComponent) {\n    if (content) { // initially setter gets called with undefined\n      this.quickViewComponentRef = content;\n    }\n  }\n\n  constructor(\n    private workflow:WorkflowService,\n    private dialog: DialogRef,\n    private quickService: QuickViewService,\n    private cdr: ChangeDetectorRef,\n    private dialogService: DialogService,\n    private snackBarService: SnackBarService,\n    private router: Router,\n    @Optional() config?: Configurations,\n    ) {\n    /* Setting up the environment configuration*/\n    if (config) {\n      this.ENVIRONMENT = config.env;\n      console.log(\"environemnt\",config.env)\n      localStorage.setItem('risk-quickview-config', JSON.stringify(config.env));\n      localStorage.setItem('workflowConfig', JSON.stringify(this.ENVIRONMENT?.environment));\n    }\n  }\n  /* @Input for risk ID */\n  riskId !: string | any;\n  userInfo !:any\n  /* @Input for feature flag service */\n  featureFlag !: any\n  /* Application wide configuration */\n  CONFIG = CONFIGS;\n  /* Environment Configuration*/\n  ENVIRONMENT !: any;\n  // /* Stream for storing risk details they are optional*/\n   riskDetails$ =  this.quickService.riskDetails$;\n   activeDueDateDetails$ = this.quickService.activeDueDateDetails$\n\n  riskDetails: any = {};\n  activeDueDateDetails: any = {};\n  subscriptions:SubSink = new SubSink()\n  ngOnInit(): void {\n    this.fetchRiskSettings();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    const changedKeys = Object.keys(changes)\n    if (changedKeys.includes('riskId')) {\n      this.fetchRiskDetails();\n    }\n    if (changedKeys.includes('userInfo')) {\n      if(Object.keys(this.userInfo)?.length > 0 ){\n        this.quickService.userInfo$.next(this.userInfo)\n        this.workflow.setAuthorization(this.userInfo)\n      }\n\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.handleQuickViewEvents()\n  }\n\n  /* Fetches the risk details from server*/\n  fetchRiskDetails() {\n    this.quickService.riskDetailsLoadingState$.next('LOADING');\n    this.subscriptions.add(this.quickService.getDetails(this.riskId).subscribe({\n      next:(value:any)=>{\n        this.quickService.riskDetails$.next(value);\n        this.quickService.riskDetailsLoadingState$.next('LOADED');\n        this.riskDetails = value;\n        this.fetchDueDates();\n        this.cdr.detectChanges();\n      },\n      error:(err)=>{\n        this.quickService.riskDetailsLoadingState$.next('ERROR');\n      }\n    }))\n  }\n\n  /**\n   * It fetches the due date list from the server and stores it in the store\n   */\n  fetchDueDates() {\n    this.quickService.dueDateLoader$.next(true);\n    this.subscriptions.add(this.quickService.getDueDateList(this.riskDetails?.riskId).subscribe({\n      next:(value:any)=>{\n        if (value?.data?.length > 0) {\n          this.quickService.dueDateLoader$.next(false);\n          this.quickService.dueDateList$.next(value?.data);\n          const MATCHING_ARRAY = value?.data.filter(((ele: any) => ele?._id === this.riskDetails?.riskDetails?.dueDateObjId));\n          if (MATCHING_ARRAY?.length) {\n            this.quickService.activeDueDateDetails$.next(MATCHING_ARRAY[0])\n            this.activeDueDateDetails = MATCHING_ARRAY[0]\n            // this.fetchTreatmentPlanDetails();\n            this.quickService.fetchInherentRiskDetails({dueDateId:this.activeDueDateDetails._id,risk_id:this.riskDetails?.riskId})\n          }\n        } else {\n          this.quickService.dueDateLoader$.next(false);\n        }\n      },\n      error:()=>{}\n    }))\n  }\n\n/**\n * It fetches the risk settings from the server and stores it in the local storage\n */\n  fetchRiskSettings(){\n     this.subscriptions.add(this.quickService.getOrgRiskSettings().pipe(take(1),tap((value:any)=>{\n      this.quickService.riskOrgSettings$.next(value)\n     })).subscribe())\n  }\n\n/**\n * It subscribes to the actionEmitter of the quick view component and listens for events\n */\n  handleQuickViewEvents() {\n    this.subscriptions.add(this.quickService.actionEmitter$.subscribe({\n      next:(event:any)=>{\n         switch(event?.eventType){\n          case 'CLOSE': {this.closeQuickView.emit(); break }\n          case 'TREATMENT':{this.fetchTreatmentPlanDetails(); break}\n          case 'DELETE': { this.deleteRiskDialog(event?.payload); break }\n          case 'EDIT': { this.editRisk(); break }\n          case 'RECOMMENDATION': { this.recommendation(event?.payload); break }\n          case 'REFRESH_RISK_DETAILS': {this.fetchRiskDetails(); break}\n          case 'REASSESS': { this.reassess(event?.payload); break }\n          case 'REFRESH_ORG_SETTINGS': { this.fetchRiskSettings(); break }\n          case 'RESIDUAL' : {this.fetchResidualRiskDetails(); break}\n         }\n      }\n    }))\n  }\n\n  /* Fetches the treatment plan details from server*/\n  fetchTreatmentPlanDetails() {\n    this.subscriptions.add(this.quickService.getTreatmentPlanData({\"risk_id\":this.riskDetails?.riskId , \"dueDateId\": this.activeDueDateDetails._id}).subscribe({\n      next:(value:any)=>{\n        this.quickService.treatmentPlanData$.next(value);\n      },\n      error:(err)=>{}\n    }))\n  }\n\n  fetchResidualRiskDetails(){\n    this.quickService.residualRiskDataLoadingState$.next('LOADING');\n    this.subscriptions.add(this.quickService.fetchResidaulRiskDetails(this.riskDetails.riskId,'',this.activeDueDateDetails._id).subscribe({\n      next:(value:any)=>{\n        this.quickService.residualRiskDataLoadingState$.next('LOADED');\n         this.quickService.residualRiskDetails$.next(value);\n      },\n      error:(err:any)=>{\n        this.quickService.residualRiskDataLoadingState$.next('ERROR');\n      }\n    }))\n  }\n\n  // The function is responsible for editing the risk.\n  editRisk(){\n    this.workflow.featureFlaService = this.featureFlag;\n    this.subscriptions.add(this.workflow.openWorkflow('EDIT', 'AAR', 'GLOBAL', this.riskId).subscribe((data: any) => {\n      if(data){\n        this.fetchRiskDetails();\n      }else{\n        return;\n      }\n    }))\n  }\n\n  //Opens the delete dialog box.\n  deleteRiskDialog(payload: any){\n    const ref = this.dialogService.open(DeleteComponent, {\n      data: { message: 'Deleting this risk will also delete data associated with this risk.' },\n      position: 'CENTER',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe((data) => {\n      if (data) {\n        this.deleteRisk(payload);\n      }\n    });\n  }\n\n  //API Call for the delete the risk.\n  deleteRisk(payload?: any) {\n    const RISK_IDS = [payload];\n    this.subscriptions.add(this.quickService.deleteRisk(RISK_IDS).subscribe({\n      next: (res: any) => {\n        this.snackBarService.show('The risk has been deleted.', 'success');\n        this.quickService.actionEmitter$.next({eventType:'CLOSE'})\n        // this.routeToRiskRegister(); //TODO\n      },\n      error: (error: any) => {\n        console.error(error);\n        this.snackBarService.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?', 'alert');\n      }\n    }));\n  }\n\n  //API call for the accept recommendation.\n  recommendation(payload?: any) {\n    const HEADING = payload.riskControlId + ' ' + payload.riskName;\n    const REF = this.dialogService.open(AccessCapabilityComponent, {\n      data: {\n        heading: HEADING,\n        info: 'Recommended Action - Link controls to mitigate this risk.',\n      },\n      position: 'CENTER',\n      background: 'black',\n    });\n    REF.afterClosed.subscribe((data) => {\n         if (data.flag) {\n          this.subscriptions.add(this.quickService.acceptRecommendation({ comment: data.comment }, payload.riskObjId).subscribe({\n            next: (value: any) =>{\n              this.riskDetails.residual_risk.is_treatment_required = 0; //verify for button condition\n              this.snackBarService.show('The action has been completed.', 'success');\n              this.fetchRiskDetails();\n              // this.router.routeReuseStrategy.shouldReuseRoute = () => false; //TODO\n              // this.router.onSameUrlNavigation = 'reload';\n              // this.router.navigate([this.commonService.headerKey, this.manageRiskDetails.riskObjId]);\n            },\n            error: (error: any) => {\n              console.error(error);\n              this.snackBarService.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?', 'alert');\n            }\n         }));\n        }\n    });\n  }\n\n  //API call for the reassess the risk.\n  reassess(riskDetails?: any) {\n    const ref = this.dialogService.open(EditResidualRiskRatingComponent, {\n      data: {\n        preSelected : true,\n        dueDateData : [],\n        riskDetails : riskDetails,\n        frequency_details: riskDetails?.riskDetails?.reassessment_frequency_details,\n        assessment_date: riskDetails?.riskDetails?.reassessment_date\n       },\n      position: 'RIGHT',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe((data) => {\n      if(data) {\n        this.fetchRiskDetails();\n      }\n    })\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe()\n    this.quickService.resetState();\n  }\n\n}\n","<app-quick-view #quickView [riskDetails]=\"riskDetails$ |async\" [activeDueDateDetails]=\"activeDueDateDetails$ | async\" [riskId]=\"riskId\" [ENVIRONMENT]=\"ENVIRONMENT\" [featureFlag]=\"featureFlag\" ></app-quick-view>\n<app-snack-bar></app-snack-bar>\n<app-workflow></app-workflow>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-score-settings-loader',\n  templateUrl: './score-settings-loader.component.html',\n  styleUrls: ['./score-settings-loader.component.less']\n})\nexport class ScoreSettingsLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"score-settings-loader vx-mt-1 vx-pl-3 vx-pr-3\">\n    <ng-container *ngFor=\"let data of [1, 1, 1, 1]\">\n        <div class=\"heading vx-mb-1 vx-pt-1 vx-pb-1\"><div class=\"loader\"></div></div>\n        <div class=\"score-item vx-mb-5\">\n            <div class=\"score-item-top vx-p-2 vx-pr-0 vx-d-flex vx-align-center vx-justify-between\">\n                <div class=\"vx-d-block\">\n                    <div class=\"score-name vx-pt-1 vx-pb-1 vx-mb-1\"><div class=\"loader\"></div></div>\n                    <div class=\"range-area vx-mt-2 vx-pt-2 vx-pb-2\"><div class=\"loader\"></div></div>\n                </div>\n                <div class=\"score-value vx-d-block\">\n                    <div class=\"value-top vx-pt-2 vx-d-flex vx-justify-end\"><div class=\"loader\"></div></div>\n                    <div class=\"value-bottom vx-pb-2\"><div class=\"loader\"></div></div>\n                </div>\n            </div>\n            <div class=\"score-item-bottom vx-p-2 vx-pr-5\"><div class=\"loader vx-mt-1 vx-mb-1\"></div></div>\n        </div>\n    </ng-container>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-score-settings',\n  templateUrl: './score-settings.component.html',\n  styleUrls: ['./score-settings.component.less']\n})\nexport class ScoreSettingsComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<app-score-settings-loader *ngIf=\"false\"></app-score-settings-loader>\n<div class=\"score-settings vx-pl-4 vx-pr-4\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">RISK APPETITE</div>\n    <div class=\"score-item vx-mb-5\">\n        <div class=\"score-item-top vx-p-2 vx-pr-0 vx-d-flex vx-align-center vx-justify-between\">\n            <div class=\"vx-d-block\">\n                <div class=\"score-name vx-fs-14 vx-fw-600 vx-tt-uppercase\" style=\"color: #C7381B;\">CONSERVATIVE</div>\n                <div class=\"range-area vx-mt-2 vx-d-flex vx-align-center\">\n                    <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-1\">RANGE:</div>\n                    <div class=\"range-input vx-d-flex vx-align-center\">\n                        <input type=\"number\" value=\"0\" readonly>\n                        <span class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center\">TO</span>\n                        <input type=\"number\" value=\"10\" readonly>\n                    </div>\n                </div>\n            </div>\n            <div *ngIf=\"true\" class=\"score-value no-value vx-d-block vx-text-center\">\n              <i *ngIf=\"true\" class=\"icons arrow-up vx-fs-24\">&#xea90;</i>\n              <i *ngIf=\"false\" class=\"icons arrow-down vx-fs-24\">&#xea8e;</i>\n              <div *ngIf=\"true\" class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">WITHIN</div>\n              <div *ngIf=\"false\" class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">EXCEEDS</div>\n            </div>\n            <div *ngIf=\"false\" class=\"score-value no-value vx-d-flex vx-align-center vx-justify-center\">\n                <div class=\"vx-fs-14 vx-paragraph-txt\">--</div>\n            </div>\n        </div>\n        <div class=\"score-item-bottom vx-p-2 vx-pr-5\">\n          <div class=\"vx-fs-11 vx-paragraph-txt\">\n            The residual risk rating exceeds the risk appetite by <span class=\"vx-fw-500 vx-label-txt\">2</span>.\n          </div>\n        </div>\n    </div>\n\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">RISK TOLERANCE</div>\n    <div class=\"score-item vx-mb-5\">\n        <div class=\"score-item-top vx-p-2 vx-pr-0 vx-d-flex vx-align-center vx-justify-between\">\n            <div class=\"vx-d-block\">\n                <div class=\"score-name vx-fs-14 vx-fw-600 vx-tt-uppercase\" style=\"color: #747576;\">LIMITED TOLERANCE</div>\n                <div class=\"score-details vx-fs-10 vx-paragraph-txt vx-mt-2\">The residual risk rating can exceed the risk appetite by up to: <span class=\"vx-fw-600\">4</span></div>\n                <div *ngIf=\"false\" class=\"score-details vx-fs-10 vx-paragraph-txt vx-mt-2\">The residual risk rating cannot exceed the risk appetite.</div>\n            </div>\n            <div *ngIf=\"true\" class=\"score-value no-value vx-d-block vx-text-center\">\n              <i *ngIf=\"false\" class=\"icons arrow-up vx-fs-24\">&#xea90;</i>\n              <i *ngIf=\"true\" class=\"icons arrow-down vx-fs-24\">&#xea8e;</i>\n              <div *ngIf=\"false\" class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">WITHIN</div>\n              <div *ngIf=\"true\" class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">EXCEEDS</div>\n            </div>\n            <div *ngIf=\"false\" class=\"score-value no-value vx-d-flex vx-align-center vx-justify-center\">\n                <div class=\"vx-fs-14 vx-paragraph-txt\">--</div>\n            </div>\n        </div>\n        <div class=\"score-item-bottom vx-p-2 vx-pr-5\">\n            <div class=\"vx-fs-11 vx-paragraph-txt\">\n                The residual risk rating exceeds the risk tolerance by <span class=\"vx-fw-500 vx-label-txt\">5</span>.\n            </div>\n        </div>\n    </div>\n\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">INHERENT RISK RATING</div>\n    <div class=\"score-item vx-mb-5\">\n        <ng-container *ngIf=\"true\">\n            <div class=\"score-item-top vx-p-2 vx-pr-0 vx-d-flex vx-align-center vx-justify-between\">\n                <div class=\"score-name vx-fs-14 vx-fw-600 vx-tt-uppercase\" style=\"color: #EB2424;\">HIGH</div>\n                <div class=\"score-value vx-d-block\">\n                    <div class=\"value-top vx-fs-18 vx-fw-600 vx-label-txt vx-text-right\">6</div>\n                    <div class=\"value-bottom vx-fs-18 vx-fw-600 vx-paragraph-txt vx-text-left\">24</div>\n                </div>\n                <div *ngIf=\"false\" class=\"score-value no-value vx-d-flex vx-align-center vx-justify-center\">\n                    <div class=\"vx-fs-14 vx-paragraph-txt\">--</div>\n                </div>\n            </div>\n            <div class=\"score-item-bottom vx-p-2 vx-pr-5\">\n                <div class=\"vx-fs-11 vx-paragraph-txt vx-mb-3\">Displaying the <span class=\"vx-fw-600\">AVERAGE RISK RATING</span> of all persons who completed an inherent risk assessment of this risk.</div>\n                <div class=\"score-rating\">\n                    <app-cs-radio><span class=\"rating-name vx-fs-10 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-4\">DISPLAY AVERAGE INHERENT RISK RATING</span></app-cs-radio>\n                    <app-cs-radio><span class=\"rating-name vx-fs-10 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-4\">DISPLAY MY INHERENT RISK RATING</span></app-cs-radio>\n                </div>\n            </div>\n        </ng-container>\n        <app-no-data *ngIf=\"false\" [noDataImage]=\"'./assets/images/risk-assement-no-data.svg'\" [noDataText]=\"'Inherent risk assessment not yet completed.'\"></app-no-data>\n    </div>\n\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">RESIDUAL RISK RATING</div>\n    <div class=\"score-item vx-mb-5\">\n        <ng-container *ngIf=\"true\">\n            <div class=\"score-item-top vx-p-2 vx-pr-0 vx-d-flex vx-align-center vx-justify-between\">\n                <div class=\"score-name vx-fs-14 vx-fw-600 vx-tt-uppercase\" style=\"color: #34AA44;\">MEDIUM</div>\n                <div *ngIf=\"true\" class=\"score-value vx-d-block\">\n                    <div class=\"value-top vx-fs-18 vx-fw-600 vx-label-txt vx-text-right\">86</div>\n                    <div class=\"value-bottom vx-fs-18 vx-fw-600 vx-paragraph-txt vx-text-left\">100</div>\n                </div>\n                <div *ngIf=\"false\" class=\"score-value no-value vx-d-flex vx-align-center vx-justify-center\">\n                    <div class=\"vx-fs-14 vx-paragraph-txt\">--</div>\n                </div>\n            </div>\n        </ng-container>\n        <app-no-data *ngIf=\"false\" [noDataImage]=\"'./assets/images/risk-assement-no-data.svg'\" [noDataText]=\"'Residual risk assessment not yet completed.'\"></app-no-data>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-quick-activity-loader',\n  templateUrl: './quick-activity-loader.component.html',\n  styleUrls: ['./quick-activity-loader.component.less']\n})\nexport class QuickActivityLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"quick-activity-log-loader\">\n    <div class=\"quick-activity-log-loader-search vx-d-flex vx-align-center vx-pl-4 vx-pr-4 vx-mb-2\">\n        <div class=\"input loader\"></div>\n    </div>\n    <div class=\"quick-activity-log-loader-area\">\n        <div class=\"quick-activity-log-loader-item vx-pt-5 vx-pl-4 vx-pr-4 vx-mt-3 vx-mb-4\">\n            <div class=\"quick-activity-log-loader-item-date vx-fs-11 vx-paragraph-txt vx-pl-1 vx-pr-1 vx-d-flex vx-align-center\"><div class=\"loader\"></div></div>\n            <div class=\"quick-activity-log-loader-list vx-d-flex vx-pb-2 vx-mb-2\" *ngFor=\"let data of [1, 1, 1, 1]\">\n                <div class=\"vx-avatar md vx-mr-4\">\n                    <div class=\"loader\"></div>\n                </div>\n                <div class=\"quick-activity-log-loader-list-right\">\n                    <div class=\"quick-activity-log-loader-time vx-mb-1 vx-d-flex vx-align-center\"><div class=\"loader\"></div></div>\n                    <div class=\"details vx-fs-12 vx-paragraph-txt vx-lh-5\">\n                        <div class=\"loader vx-mt-2\" *ngFor=\"let data of [1, 1]\"></div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-quick-activity',\n  templateUrl: './quick-activity.component.html',\n  styleUrls: ['./quick-activity.component.less']\n})\nexport class QuickActivityComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<app-quick-activity-loader *ngIf=\"false\"></app-quick-activity-loader>\n<div class=\"quick-activity-log vx-pl-1 vx-pr-1\">\n    <div class=\"quick-activity-log-search vx-d-flex vx-align-center vx-pl-4 vx-pr-4 vx-mb-2\">\n        <input type=\"search\" placeholder=\"Search\" />\n        <button class=\"refresh-btn vx-fs-14 vx-p-0 vx-m-0 vx-ml-3 vx-d-flex vx-align-center\">\n            <i class=\"icons\">&#xe92b;</i>\n        </button>\n    </div>\n    <div class=\"quick-activity-log-area\">\n        <app-no-data *ngIf=\"false\" [noDataImage]=\"'./assets/images/activitylog-nodata.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\n        <div class=\"quick-activity-log-item vx-pt-5 vx-pl-4 vx-pr-4 vx-mt-3 vx-mb-4\" *ngFor=\"let data of [1, 1, 1, 1]\">\n            <div class=\"quick-activity-log-item-date vx-fs-11 vx-paragraph-txt vx-pl-1 vx-pr-1 vx-d-flex vx-align-center\">7 Apr 2021</div>\n            <div class=\"quick-activity-log-list vx-d-flex vx-pb-2 vx-mb-2\" *ngFor=\"let data of [1, 1]\">\n                <ng-container>\n                    <div class=\"vx-avatar md vx-mr-4\">\n                        <span *ngIf=\"true\" class=\"blue\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">hk</span>\n                        <img *ngIf=\"false\" src=\"https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/profile_pic/thumb/1671511917829_ProfilePicture.png\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" alt=\"\">\n                    </div>\n                    <div class=\"quick-activity-log-list-right\">\n                        <div class=\"quick-activity-log-time vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1 vx-d-flex vx-align-center\"><i class=\"icons vx-mr-1\">&#xe955;</i>11:15 AM</div>\n                        <span class=\"details vx-fs-12 vx-paragraph-txt vx-lh-5\">\n                            <span class=\"vx-fw-500 vx-txt-blue\">Nick Holden</span> updated the frequency details for this responsibility\n                        </span>\n                        <p class=\"vx-fs-12 vx-paragraph-txt vx-m-0 vx-mt-2\">In publishing and graphic design, Lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content. Lorem ipsum may be used as a placeholder before final copy is available.</p>\n                    </div>\n                </ng-container>\n\n                <ng-container *ngIf=\"false\">\n                    <div class=\"vx-avatar md vx-mr-4\">\n                        <span *ngIf=\"true\" class=\"blue\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">hk</span>\n                        <img *ngIf=\"false\" src=\"https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/profile_pic/thumb/1671511917829_ProfilePicture.png\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" alt=\"\">\n                    </div>\n                    <div class=\"quick-activity-log-list-right\">\n                        <div class=\"quick-activity-log-time vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1 vx-d-flex vx-align-center\"><i class=\"icons vx-mr-1\">&#xe955;</i>11:15 AM</div>\n                        <span class=\"details vx-fs-12 vx-paragraph-txt vx-lh-5\">\n                            <span class=\"vx-fw-500 vx-txt-blue\">Nick Holden</span> updated the frequency details for this responsibility\n                        </span>\n                        <button appPopover (click)=\"popoverRC.popover()\" placement=\"right\" *ngIf=\"true\" class=\"count vx-fs-10 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-mr-1 vx-d-inline-flex vx-align-center vx-justify-center vx-lh-5\">+7</button>\n                        <span class=\"details vx-fs-12 vx-paragraph-txt vx-lh-5\">\n                            <span class=\"vx-fw-500 vx-txt-blue\">Nick Holden</span> updated the frequency details for this responsibility\n                        </span>\n                    </div>\n\n                    <app-popover #popoverRC [dontCloseonClick]=\"true\">\n                      <div class=\"action-list\">\n                        <ul class=\"action-item\">\n                          <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n                            <div class=\"avatar-card\">\n                              <span class=\"value\">Responsibility center</span>\n                            </div>\n                          </li>\n                        </ul>\n                      </div>\n                    </app-popover>\n                </ng-container>\n\n                <ng-container *ngIf=\"false\">\n                    <div class=\"vx-avatar md vx-mr-4\">\n                        <span *ngIf=\"true\" class=\"blue\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">hk</span>\n                        <img *ngIf=\"false\" src=\"https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/profile_pic/thumb/1671511917829_ProfilePicture.png\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" alt=\"\">\n                    </div>\n                    <div class=\"quick-activity-log-list-right\">\n                        <div class=\"quick-activity-log-time vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1 vx-d-flex vx-align-center\"><i class=\"icons vx-mr-1\">&#xe955;</i>11:15 AM</div>\n                        <span class=\"details vx-fs-12 vx-paragraph-txt vx-lh-5\">\n                            <span class=\"vx-fw-500 vx-txt-blue\">Nick Holden</span> updated the frequency details for this responsibility\n                        </span>\n                        <div class=\"vx-d-flex vx-align-center vx-justify-end vx-mt-2\">\n                            <button *ngIf=\"true\" class=\"more-btn vx-fs-10 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\">VIEW MORE</button>\n                        </div>\n                        <ng-container *ngIf=\"true\">\n                            <span class=\"details vx-fs-12 vx-paragraph-txt vx-lh-3\">In publishing and graphic design, Lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content. Lorem ipsum may be used as a placeholder before final copy is available.</span>\n                          <div class=\"vx-d-flex vx-align-center vx-justify-end vx-mt-2\">\n                            <button class=\"more-btn vx-fs-10 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\">SHOW LESS</button>\n                          </div>\n                        </ng-container>\n                    </div>\n                </ng-container>\n            </div>\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-quick-document-loader',\n  templateUrl: './quick-document-loader.component.html',\n  styleUrls: ['./quick-document-loader.component.less']\n})\nexport class QuickDocumentLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"quick-document-loader vx-p-4 vx-pt-0 vx-pb-1\">\n    <div class=\"quick-document-loader-list vx-pr-4\">\n        <div class=\"quick-document-loader-list-item vx-pt-2 vx-pb-2 vx-d-flex vx-align-center vx-justify-between\" *ngFor=\"let data of [1, 1, 1, 1]\">\n            <div class=\"vx-d-flex vx-align-center\">\n                <div class=\"file-icon loader vx-mt-1 vx-mb-1 vx-mr-3\"></div>\n                <div class=\"folder-name\"><div class=\"loader\"></div></div>\n            </div>\n            <div class=\"vx-d-flex vx-align-center\"><div class=\"button-loader loader vx-ml-2\" *ngFor=\"let data of [1, 1]\"></div></div>\n        </div>\n    </div>\n    <div class=\"quick-document-loader-bottom\">\n        <div class=\"file-upload vx-p-4 vx-pl-3 vx-pr-5 vx-d-flex vx-align-center vx-justify-center\">\n            <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n        </div>\n        <div class=\"create-folder-btn loader vx-mt-1\"></div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-quick-document',\n  templateUrl: './quick-document.component.html',\n  styleUrls: ['./quick-document.component.less']\n})\nexport class QuickDocumentComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<app-quick-document-loader *ngIf=\"false\"></app-quick-document-loader>\n<div class=\"quick-document vx-p-4 vx-pt-0 vx-pb-1\">\n    <!-- Dot loader -->\n    <div class=\"dotLoader\" *ngIf=\"false\">\n        <div class=\"browser-screen-loading-content\" id=\"dotLoader\">\n          <div class=\"loading-dots dark-gray\"><i></i><i></i><i></i><i></i></div>\n        </div>\n    </div>\n\n    <!-- Breadcrumb -->\n    <div *ngIf=\"false\" class=\"quick-document-breadcrumb vx-mb-1 vx-lh-4\">\n        <ul class=\"vx-p-0 vx-m-0 vx-d-flex vx-align-center\">\n            <li class=\"vx-fs-11 vx-fw-500 vx-txt-blue vx-pr-4\" [appTooltip]=\"'Home'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Home</li>\n            <li class=\"vx-fs-11 vx-fw-500 vx-txt-blue vx-pr-4\" [appTooltip]=\"'Folder name'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Folder name</li>\n            <li class=\"vx-fs-11 vx-fw-500 vx-txt-blue vx-pr-4\" [appTooltip]=\"'Folder name'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Folder name</li>\n        </ul>\n    </div>\n\n    <div class=\"quick-document-list vx-pr-4\" [class.with-upload-file]=\"false\" [class.with-breadcrumb]=\"false\">\n        <!-- No Data -->\n        <app-no-data *ngIf=\"false\" [noDataImage]=\"'./assets/images/files&folders-nodata.svg'\" [noDataText]=\"'No files & folder.'\"></app-no-data>\n        <ng-container>\n            <div class=\"quick-document-list-item vx-pt-2 vx-pb-2 vx-d-flex vx-align-center vx-justify-between\">\n                <div class=\"vx-d-flex vx-align-center\">\n                    <i class=\"icons folder-icon vx-fs-20 vx-mr-3\">&#xeade;</i>\n                    <div class=\"folder-name vx-fs-13 vx-paragraph-txt\" [appTooltip]=\"'Folder name'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Folder name</div>\n                    <input *ngIf=\"false\" placeholder=\"Folder Name\" type=\"text\"/>\n                </div>\n                <div class=\"vx-d-flex vx-align-center\">\n                    <!-- Edit and Delete button -->\n                    <ng-container *ngIf=\"true\">\n                        <button class=\"edit-btn vx-fs-12 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'Edit'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" [class.disabled]=\"false\"><i class=\"icons\">&#xe90c;</i></button>\n                        <button class=\"delete-btn vx-fs-12 vx-txt-red vx-p-0 vx-m-0 vx-ml-3 vx-d-flex vx-align-center\" [appTooltip]=\"'Delete'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" [class.disabled]=\"false\"><i class=\"icons\">&#xe923;</i></button>\n                    </ng-container>\n                    <!-- Save and Close button -->\n                    <ng-container *ngIf=\"false\">\n                        <button class=\"save-btn vx-fs-12 vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'Save'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" [class.disabled]=\"false\"><i class=\"icons\">&#xe9d3;</i></button>\n                        <button class=\"delete-btn vx-fs-12 vx-txt-red vx-p-0 vx-m-0 vx-ml-3 vx-d-flex vx-align-center\" [appTooltip]=\"'Close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons\">&#xe9ae;</i></button>\n                    </ng-container>\n                </div>\n            </div>\n            <div class=\"quick-document-list-item vx-pt-2 vx-pb-2 vx-d-flex vx-align-center vx-justify-between\">\n                <div class=\"vx-d-flex vx-align-center\">\n                    <div class=\"vx-avatar sm vx-mr-2\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                        <span *ngIf=\"true\" class=\"blue\">hk</span>\n                        <img *ngIf=\"false\" src=\"https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/profile_pic/thumb/1671511917829_ProfilePicture.png\" alt=\"\">\n                    </div>\n                    <div class=\"file-area vx-paragraph-txt vx-lh-3\" appTooltip=\"file-name.pdf<span class='small'><em>12 Jan 2023 by 02:44 PM</em></span>\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                        <div class=\"file-name vx-fs-12 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\">\n                            <span>file-name.pdf</span>\n                        </div>\n                        <em class=\"vx-fs-10 vx-paragraph-txt vx-lh-4\">12 Jan 2023 by 02:44 PM</em>\n                    </div>\n                </div>\n                <!-- Download Delete Button -->\n                <div class=\"vx-d-flex vx-align-center\">\n                    <button class=\"edit-btn vx-fs-12 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'Download'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons\">&#xe91b;</i></button>\n                    <button class=\"delete-btn vx-fs-12 vx-txt-red vx-p-0 vx-m-0 vx-ml-3 vx-d-flex vx-align-center\" [appTooltip]=\"'Delete'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons\">&#xe923;</i></button>\n                </div>\n            </div>\n        </ng-container>\n    </div>\n    <!-- Dropdown Uploader and Browse Button -->\n    <div class=\"quick-document-bottom vx-mt-2\">\n        <ng-container *ngIf=\"true\">\n            <div class=\"file-upload vx-p-4 vx-pl-3 vx-pr-5 vx-d-flex vx-align-center vx-justify-center\">\n                <img src=\"./assets/images/upload.svg\" />\n                <div class=\"vx-fs-12 vx-paragraph-txt vx-ml-3 vx-d-flex vx-align-center\">\n                    Drop your files here /\n                    <div class=\"browse vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-ml-1\">\n                        <input type=\"file\">\n                        BROWSE\n                    </div>\n                </div>\n                <div *ngIf=\"false\" class=\"drag-hover\" [class.active]=\"false\">\n                    <input type=\"file\" />\n                </div>\n            </div>\n            <!-- Create Folder Button -->\n            <button class=\"create-folder-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-1 vx-d-flex vx-align-center vx-justify-center vx-lh-6 vx-w-100\" [class.disabled]=\"false\">CREATE A FOLDER</button>\n        </ng-container>\n        <!-- File Preview Container -->\n        <ng-container *ngIf=\"false\">\n            <div class=\"upload-area vx-p-4 vx-pt-2\">\n                <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-2\">\n                    <div class=\"heading vx-fs-12 vx-fw-500 vx-label-txt\">Upload Files</div>\n                </div>\n                <div class=\"upload-item-area\">\n                    <div class=\"upload-item vx-d-flex vx-align-center vx-justify-between vx-mb-1\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n                        <div class=\"vx-d-flex vx-align-center\">\n                            <span class=\"file table pdf\">\n                                <i class=\"icons\">&#xe92e;</i>\n                                <div class=\"format\">pdf</div>\n                            </span>\n                            <div class=\"file-name vx-fs-12 vx-label-txt vx-d-flex vx-align-center\">\n                                <span [appTooltip]=\"'file-name.pdf'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">file-name.pdf</span>\n                            </div>\n                        </div>\n                        <!-- Unselect button in preview (x) -->\n                        <button class=\"delete-btn vx-fs-12 vx-txt-red vx-p-0 vx-m-0 vx-mr-1 vx-d-flex vx-align-center\"><i class=\"icons\">&#xe9ae;</i></button>\n                        <!-- Uploading Bar in preview -->\n                        <ng-container *ngIf=\"true\">\n                            <div class=\"uploading vx-fs-9 vx-paragraph-txt\">Uploading...</div>\n                            <div class=\"progress-bar\">\n                                <div class=\"progress-bar-move\"></div>\n                            </div>\n                        </ng-container>\n                    </div>\n                </div>\n                <!-- Upload Container when File Preview is Open-->\n                <div class=\"after-upload vx-fs-11 vx-paragraph-txt vx-d-flex vx-align-center vx-justify-center vx-pt-3 vx-pb-2 vx-mt-1\">\n                    <input type=\"file\" />\n                    Do you want insert more files? \n                    <span class=\"vx-tt-uppercase vx-pl-1 vx-pr-1\">Drop Files Here</span> / \n                    <span class=\"vx-fw-500 vx-txt-blue vx-tt-uppercase vx-pl-1\">Browse</span>\n                </div>\n                <div class=\"vx-d-flex vx-align-center\">\n                    <button class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-2 vx-d-flex vx-align-center vx-justify-center vx-w-100 vx-lh-6\" [class.disabled]=\"false\">CANCEL</button>\n                    <button class=\"upload-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-2 vx-ml-1 vx-d-flex vx-align-center vx-justify-center vx-w-100 vx-lh-6\" [class.disabled]=\"false\">UPLOAD</button>\n                </div>\n            </div>\n        </ng-container>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-radio-group',\n  templateUrl: './cs-radio-group.component.html',\n  styleUrls: ['./cs-radio-group.component.less'],\n})\nexport class CsRadioGroupComponent implements OnInit {\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<app-cs-radio>fefre</app-cs-radio>\n<app-cs-radio>fefre</app-cs-radio>\n<app-cs-radio>fefre</app-cs-radio>\n<app-cs-radio>fefre</app-cs-radio>\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n  selector: '[clickOutside]',\n})\nexport class ClickOutsideDirective {\n  constructor(private elementRef: ElementRef) {}\n  @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\n\n  @HostListener('document:click', ['$event.target']) onMouseEnter(targetElement: any) {\n    const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n    if (!clickedInside) {\n      this.clickOutside.emit(null);\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'pascal',\n})\nexport class PascalPipe implements PipeTransform {\n  transform(value: string, ...args: unknown[]): unknown {\n    if (typeof value !== 'string') {\n      return value;\n    }\n    return value.charAt(0).toUpperCase() + value.slice(1);\n  }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-select',\n  templateUrl: './cs-select.component.html',\n  styleUrls: ['./cs-select.component.less'],\n})\nexport class CsSelectComponent implements OnChanges {\n  @Input() dataList!: any[];\n  @Input() dropdownLabel!: string;\n  @Input() displayProperty!: string;\n  @Input() selectedValue!: string;\n  @Input() isRequired!: boolean;\n  @Input() dropdownSubLabel!: string;\n  @Input() disabled!: boolean;\n  @ViewChild('option') option!: ElementRef;\n\n  @Output() selectedData = new EventEmitter();\n  @Output() selectedValueChange = new EventEmitter();\n  @Input() placeholder: any;\n  @Input() stylex: any;\n  @Input() valueKey: any;\n  @Input() multipleSelect: any;\n  @Input() colorProperty!: string;\n\n  @Input() colorSelected!: string;\n  colorCode!: string;\n\n  dropdownOption = false;\n  positionReset!: boolean;\n  getLeft!: number;\n  getTop!: number;\n  getWidth!: number;\n  maxWidth!: number;\n  activeDoropdown = false;\n\n  private optionList!: ElementRef;\n\n  @ViewChild('optionList') set content(content: ElementRef) {\n    if (content) {\n      // initially setter gets called with undefined\n      this.optionList = content;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['selectedValue']) {\n      this.selectedValue = this.selectedValue || '--';\n    }\n  }\n\n  openDropdown(event: any): void {\n    this.dropdownOption = true;\n    setTimeout(() => {\n      const dropdown = event.target.getBoundingClientRect();\n      const selectOption = this.optionList.nativeElement.offsetHeight;\n      if (dropdown.top + selectOption * 2 > window.innerHeight) {\n        this.getTop = dropdown.top - selectOption;\n      } else {\n        this.getTop = dropdown.top + dropdown.height;\n      }\n      this.getLeft = dropdown.left;\n      this.getWidth = dropdown.width;\n      this.maxWidth = dropdown.width * 1.25;\n    }, 10);\n    setTimeout(() => {\n      this.activeDoropdown = true;\n    }, 100);\n  }\n  selectOption(selectedData: any) {\n    if (typeof selectedData === 'object') {\n      this.selectedValue = selectedData[this.displayProperty];\n      this.colorSelected = selectedData[this.colorProperty];\n    } else {\n      this.selectedValue = selectedData;\n    }\n    this.selectedData.emit(selectedData);\n    this.dropdownOption = false;\n  }\n  closeDropdown() {\n    this.dropdownOption = false;\n  }\n}\n","<div class=\"input-group\" (clickOutside)=\"dropdownOption = false\">\n  <label *ngIf=\"dropdownLabel != undefined\">\n    {{ dropdownLabel }} <span class=\"sub-label\">{{ dropdownSubLabel }}</span> <span class=\"required\" *ngIf=\"isRequired\">*</span></label\n  >\n  <div class=\"custom-select-box\" [class.disabled]=\"disabled\">\n    <input\n      type=\"text\"\n      [class.line]=\"stylex\"\n      [placeholder]=\"placeholder\"\n      [value]=\"selectedValue | pascal\"\n      readonly\n      (click)=\"openDropdown($event)\"\n      (keyup.enter)=\"openDropdown($event)\"\n      (keyup.arrowup)=\"openDropdown($event)\"\n      (keyup.arrowdown)=\"openDropdown($event)\"\n      *ngIf=\"!colorProperty\"\n    />\n    <span class=\"show-label\" *ngIf=\"colorProperty\" (click)=\"openDropdown($event)\">\n      <span class=\"label\" [innerHTML]=\"selectedValue\" [style.backgroundColor]=\"colorSelected + '1A'\" [style.color]=\"colorSelected\"></span>\n    </span>\n    <span class=\"arrow\" [class.line]=\"stylex\">\n      <i class=\"icons\">&#xe919;</i>\n    </span>\n    <div class=\"overlay active\" *ngIf=\"dropdownOption === true\" (click)=\"closeDropdown()\"></div>\n    <ul\n      class=\"list-of-option\"\n      *ngIf=\"dropdownOption === true && !colorProperty\"\n      #optionList\n      (keyup.Escape)=\"closeDropdown()\"\n      [style.top.px]=\"getTop\"\n      [style.left.px]=\"getLeft\"\n      [style.min-width.px]=\"getWidth\"\n      [style.max-width.px]=\"maxWidth\"\n      [class.active]=\"activeDoropdown\"\n    >\n      <li *ngFor=\"let data of dataList\">\n        <label>\n          <input type=\"radio\" [value]=\"data[valueKey]\" name=\"sliceLabel\" (change)=\"selectOption(data)\" #option (keyup.enter)=\"closeDropdown()\" class=\"pointer-none\" />\n          <span (click)=\"closeDropdown(); selectOption(data)\" *ngIf=\"displayProperty && displayProperty !== ''\" class=\"value\">{{ data[displayProperty] }}</span>\n          <span (click)=\"closeDropdown(); selectOption(data)\" *ngIf=\"!displayProperty || displayProperty === ''\" class=\"value\">{{ data }}</span>\n        </label>\n      </li>\n    </ul>\n    <ul\n      class=\"list-of-option\"\n      *ngIf=\"dropdownOption === true && colorProperty\"\n      #optionList\n      (keyup.Escape)=\"closeDropdown()\"\n      [style.top.px]=\"getTop\"\n      [style.left.px]=\"getLeft\"\n      [style.min-width.px]=\"getWidth\"\n      [style.max-width.px]=\"maxWidth\"\n      [class.active]=\"activeDoropdown\"\n    >\n      <li *ngFor=\"let data of dataList\">\n        <label class=\"colors\">\n          <input type=\"radio\" [value]=\"data[valueKey]\" name=\"sliceLabel\" (click)=\"selectOption(data)\" #option (keyup.enter)=\"closeDropdown()\" class=\"pointer-none\" />\n          <span\n            (click)=\"selectOption(data)\"\n            *ngIf=\"displayProperty && displayProperty !== ''\"\n            class=\"value\"\n            [ngStyle]=\"{ color: data?.segment_color }\"\n            [style.backgroundColor]=\"data?.segment_color + '1A'\"\n            >{{ data[displayProperty] }}</span\n          >\n          <span\n            (click)=\"selectOption(data)\"\n            *ngIf=\"!displayProperty || displayProperty === ''\"\n            class=\"value\"\n            [ngStyle]=\"{ color: data?.segment_color }\"\n            [style.backgroundColor]=\"data?.segment_color + '1A'\"\n            >{{ data }}</span\n          >\n        </label>\n      </li>\n    </ul>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToolTipDirective } from './tooltip.directive';\n\n@NgModule({\n  declarations: [ToolTipDirective],\n  imports: [CommonModule],\n  exports: [ToolTipDirective],\n})\nexport class TooltipModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'searchMultiSelect',\n})\nexport class SearchMultiSelectPipe implements PipeTransform {\n  transform(value: any[], key: string, searchKey: string): any[] {\n    if (searchKey && searchKey.length > 0) {\n      searchKey = searchKey.toLowerCase();\n      return value.filter((item) => {\n        if (item[key].toLowerCase().includes(searchKey)) {\n          return item;\n        }\n      });\n    }\n    return value;\n  }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n@Directive({\n  selector: '[appPopoverEvent]',\n})\nexport class PopoverEventDirective {\n  constructor(private popoverService: PopoverService) {}\n  @HostListener('contextmenu', ['$event']) contextmenu(event: any) {\n    this.getEventPosition(event);\n  }\n  getEventPosition(event: any) {\n    // const container = event.currentTarget;\n    this.popoverService.positionX = event.clientX;\n    this.popoverService.positionY = event.clientY;\n  }\n}\n\n// appPopoverEvent\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n@Directive({\n  selector: '[appPopoverLongpress]',\n})\nexport class PopoverLongpressDirective {\n  getTime: any;\n  currentTime: any;\n\n  timer: any;\n  @Output() longPressPopover = new EventEmitter<any>();\n  constructor(private popoverService: PopoverService) {}\n  @HostListener('mousedown', ['$event']) mousedown(event: any) {\n    alert('Tong');\n    this.currentTime = Date.now();\n    // console.log('Current Time', this.currentTime);\n    this.timer = setInterval(() => {\n      if (Date.now() - this.currentTime > 1000) {\n        this.longPressPopover.emit();\n        clearInterval(this.timer);\n        this.getEventPosition(event);\n        alert('Ting tong');\n      }\n    }, 10);\n  }\n  @HostListener('mouseup') mouseup() {\n    clearInterval(this.timer);\n    this.currentTime = undefined;\n    // console.log('Hold Time', Date.now() - this.currentTime);\n  }\n  getEventPosition(event: any) {\n    this.popoverService.positionX = event.clientX;\n    this.popoverService.positionY = event.clientY;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PopoverComponent } from './popover.component';\nimport { PopoverDirective } from './popover.directive';\nimport { PopoverEventDirective } from './popover-event.directive';\nimport { PopoverLongpressDirective } from './popover-longpress.directive';\nimport { PopoverService } from './popover.service';\n\n@NgModule({\n  declarations: [PopoverComponent, PopoverDirective, PopoverEventDirective, PopoverLongpressDirective],\n  imports: [CommonModule],\n  exports: [PopoverComponent, PopoverDirective, PopoverEventDirective, PopoverLongpressDirective],\n  providers: [PopoverService],\n})\nexport class PopoverModule {}\n","import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-checkbox-indeterminate',\n  templateUrl: './cs-checkbox-indeterminate.component.html',\n  styleUrls: ['./cs-checkbox-indeterminate.component.less']\n})\nexport class CsCheckboxIndeterminateComponent implements OnInit {\n  @Input() disabled!: boolean;\n  @Input() ngValue: any;\n  @Input() value: any;\n  @Output() ngValueChange = new EventEmitter<any>();\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n  valueChanged() {\n    const emitValue = {\n      value: this.value,\n      checked: this.ngValue\n    }\n    this.ngValueChange.emit(emitValue);\n  }\n\n}\n","<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\n    <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\n    <span class=\"checkbox\">\n      <span class=\"inner\"></span>\n    </span>\n    <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n      <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n      <path fill=\"none\" d=\"M37.9,27H14v-2h23.9V27z\"/>\n    </svg>\n    <span class=\"value\"><ng-content></ng-content></span>\n  </label>\n  ","import { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CsCheckboxComponent } from './cs-checkbox/cs-checkbox.component';\nimport { CsRadioComponent } from './cs-radio/cs-radio.component';\nimport { CsSwitchComponent } from './cs-switch/cs-switch.component';\nimport { CsRadioGroupComponent } from './cs-radio-group/cs-radio-group.component';\nimport { CsSelectComponent } from './cs-select/cs-select.component';\nimport { TooltipModule } from '../tooltip/tooltip.module';\nimport { PascalPipe } from './pipes/pascal.pipe';\nimport { SearchMultiSelectPipe } from './pipes/searchMultiSelect.pipe';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { PopoverModule } from '../popover/popover.module';\nimport { CsCheckboxIndeterminateComponent } from './cs-checkbox-indeterminate/cs-checkbox-indeterminate.component';\n\n\n@NgModule({\n  declarations: [\n    CsCheckboxComponent,\n    CsRadioComponent,\n    CsSwitchComponent,\n    CsRadioGroupComponent,\n    CsSelectComponent,\n    PascalPipe,\n    SearchMultiSelectPipe,\n    ClickOutsideDirective,\n    CsCheckboxIndeterminateComponent\n  ],\n  imports: [CommonModule, FormsModule, TooltipModule, PopoverModule],\n  exports: [\n    CsCheckboxComponent,\n    CsRadioComponent,\n    CsSwitchComponent,\n    CsRadioGroupComponent,\n    CsSelectComponent,\n    SearchMultiSelectPipe,\n    CsCheckboxIndeterminateComponent\n  ],\n})\nexport class FormgroupModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NoDataComponent } from './no-data.component';\n\n@NgModule({\n  declarations: [NoDataComponent],\n  imports: [CommonModule],\n  exports: [NoDataComponent],\n})\nexport class NoDataModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TextDisplayComponent } from './text-display.component';\nimport { OverflowDirective } from './overflow.directive';\n\n\n\n@NgModule({\n  declarations: [\n    TextDisplayComponent,\n    OverflowDirective\n  ],\n  imports: [\n    CommonModule,\n  ],\n  exports: [\n    TextDisplayComponent,\n    // OverflowDirective\n  ]\n})\nexport class TextDisplayModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n  name: 'safeHTML',\n})\nexport class safeHTMLPipe implements PipeTransform {\n  constructor(private sanitized: DomSanitizer) {}\n  transform(value: string): any {\n    return this.sanitized.bypassSecurityTrustHtml(value);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EffectivenessPickerDialogComponent } from './effectiveness-picker-dialog.component';\nimport { FormgroupModule } from '../../ui-kit/formgroup/formgroup.module';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n  declarations: [EffectivenessPickerDialogComponent],\n  imports: [CommonModule, FormgroupModule, VcomplyEditorModule, FormsModule],\n  exports: [EffectivenessPickerDialogComponent],\n})\nexport class EffectivnessPickerDialogModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RatingGuideComponent } from './rating-guide/rating-guide.component';\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\n\n\n\n\n@NgModule({\n    declarations: [\n        RatingGuideComponent\n    ],\n    imports: [\n        CommonModule,\n        PopoverModule,\n        TooltipModule\n    ],\n    exports: [\n      RatingGuideComponent\n    ]\n})\nexport class RiskFactorRatingGuideModule { }\n","// import { AuthService } from './../../../services/auth.service';\nimport { Component, OnInit } from '@angular/core';\nimport { AuthService } from '../../../quick-view/services/auth.service';\n@Component({\n  selector: 'app-business-cycle-loader',\n  templateUrl: './business-cycle-loader.component.html',\n  styleUrls: ['./business-cycle-loader.component.less'],\n})\nexport class BusinessCycleLoaderComponent implements OnInit {\n  businessCycle!: any;\n  message = '';\n  constructor(private authService: AuthService) {}\n\n  ngOnInit(): void {\n    this.businessCycle = JSON.parse(localStorage.getItem('businessCycle') ?? '\"{}\"')?.selectedCycle;\n    this.setMessage();\n  }\n\n\n\n  setMessage(){\n    console.log('Biz Cycle', this.businessCycle);\n    let start = '';\n    let end = '';\n\n    if (typeof(this.businessCycle?.business_cycle) === 'string' &&  this.businessCycle?.business_cycle.length > 0){\n      if(this.businessCycle?.business_cycle === 'Show Future Due Dates'){\n        this.message = 'We are loading the data for the Future Business Cycle.'\n      }\n      else{\n       const date = this.businessCycle?.business_cycle.split('-');\n       this.message =  `We are loading the data for the selected <strong> Business Cycle: ${date[0]} - ${date[1]}</strong>` ;\n      }\n\n    }\n    else if ( typeof(this.businessCycle?.business_cycle) === 'object'  && this.businessCycle?.business_cycle?.length){\n      if(this.businessCycle?.business_cycle.includes('Show Future Due Dates')){\n        this.message =  `We are loading the data for the selected Business Cycles.` ;\n      }else{\n        start =  this.businessCycle?.business_cycle[0].split('-')[0];\n        end = this.businessCycle?.business_cycle.pop().split('-').pop();\n        this.message =  `We are loading the data for the selected <strong> Business Cycle: ${start} - ${end}</strong>` ;\n      }\n\n    }\n  }\n}\n","<div class=\"business-cycle-loader\">\n  <div class=\"business-cycle-loader-inner\">\n    <div class=\"business-cycle-loader-image\">\n      <img src=\"./assets/images/business-cycle-loading.svg\" />\n      <div class=\"animation-box\">\n        <div class=\"box1\"></div>\n        <div class=\"box2\"></div>\n        <div class=\"box3\"></div>\n      </div>\n    </div>\n    <!-- <div class=\"business-cycle-loader-text\">We are loading the data for the selected <strong>Business Cycle: {{message}}</strong></div> -->\n    <div class=\"business-cycle-loader-text\" [innerHTML]=\"message\"></div>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BusinessCycleLoaderComponent } from './business-cycle-loader/business-cycle-loader.component';\n\n@NgModule({\n  declarations: [BusinessCycleLoaderComponent],\n  imports: [CommonModule],\n  exports: [BusinessCycleLoaderComponent],\n})\nexport class BusinessCycleLoaderModule {}\n","import { Optional, Pipe, PipeTransform } from '@angular/core';\n// import { environment } from 'src/environments/environment';\nimport { Configurations } from '../../../configurations';\nimport { CONFIGS } from '../../configurations/constants';\n@Pipe({\n  name: 'profile',\n})\nexport class ProfilePipe implements PipeTransform {\n  CONFIG = CONFIGS;\n  ENVIRONMENT!: any;\n  constructor(@Optional() config?: Configurations) {\n    if (config) {\n      this.ENVIRONMENT = config.env;\n    }\n  }\n  transform(value: any, ...args: any[]): string {\n    console.log(\"valueee\",value)\n    console.log(\"this.CONFIG\",this.CONFIG)\n    return `${this.ENVIRONMENT.environment.s3Url}${this.ENVIRONMENT.environment.s3Bucket}/${this.CONFIG.profilePicPath}/${value}`;\n  }\n}\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { cloneDeep } from 'lodash';\nimport { RISK_QUICKVIEW_PROPERTIES } from '../../../configurations';\nimport { SubSink } from '../../../subsink.class';\nimport { DeleteComponent } from '../../../ui-kit/action-dialog/delete/delete.component';\nimport { DialogService } from '../../../ui-kit/dialog/dialog.service';\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\nimport { QuickViewService } from '../../services/quick-view.service';\n// import { DeleteComponent } from 'src/app/ui-kit/action-dialog/delete/delete.component';\n// import { DialogService } from 'src/app/ui-kit/dialog/dialog.service';\nimport { CreateWorkshopComponent } from '../create-workshop/create-workshop.component';\nimport { WorkshopService } from '../services/workshop.service';\n@Component({\n  selector: 'app-workshop-table',\n  templateUrl: './workshop-table.component.html',\n  styleUrls: ['./workshop-table.component.less'],\n})\nexport class WorkshopTableComponent implements OnInit, OnChanges, OnDestroy {\n  @Input() tableData: any;\n  @Output() refreshTable = new EventEmitter();\n  subscriptions:SubSink = new SubSink()\n  public expandIndex = 0;\n  expanded: any[] = [];\n  activeClass = false;\n  highLightedId = '';\n  searchQuery = '';\n  previousData: any;\n\n  constructor(\n    private router: Router,\n    private route: ActivatedRoute,\n    private dialogService: DialogService,\n    private workshopService: WorkshopService,\n    private dialog: DialogService,\n    private snackBarService: SnackBarService,\n    private quickViewService: QuickViewService\n  ) {}\n\n  ngOnChanges() {\n    //  this.previousData = cloneDeep( this.tableData);\n  }\n\n  ngOnInit(): void {\n    // this.getWorkshopData();\n    this.subscriptions.add(this.route.queryParams.subscribe((params: any) => {\n      if (params.rid) {\n        this.expanded.push(params.rid);\n        this.highLightedId = params.rid;\n        this.activeClass = true;\n        const index = this.tableData.findIndex((ele: any) => ele.workshop_obj_id == params.rid);\n        if (index) {\n          setTimeout(() => {\n            const reference = document.querySelector('#target' + index);\n            if (reference) {\n              reference.scrollIntoView({ behavior: 'smooth' });\n            }\n          }, 800);\n        }\n      }\n    }));\n    \n    this.subscriptions.add(this.quickViewService.searchQuery.subscribe((res: any) => {\n      this.searchQuery = res;\n    }));\n    // rid: riskObjId\n  }\n\n  clickChild(workshopId: any) {\n    const indexElem = this.expanded.findIndex((x) => x === workshopId);\n    // console.log(indexElem);\n    if (indexElem === -1) {\n      this.expanded.push(workshopId);\n    } else {\n      this.expanded.splice(indexElem, 1);\n    }\n  }\n  goToAssessment(id: any) {\n    this.router.navigate(['risk-workroom/' + id]);\n    // console.log(id);\n  }\n  deleteWorkshop(details: any) {\n    const MESSAGE = RISK_QUICKVIEW_PROPERTIES.riskWorkshop.deleteWorkshopDialog;\n    const ref = this.dialogService.open(DeleteComponent, {\n      data: { message: MESSAGE },\n      position: 'CENTER',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe((data) => {\n      if (data) {\n        this.subscriptions.add(this.workshopService.deleteWorkshop(details.workshop_obj_id).subscribe(\n          (res) => {\n            this.snackBarService.show(RISK_QUICKVIEW_PROPERTIES.riskWorkshop.deleteWorkshop, 'success');\n            this.refreshTable.emit();\n          },\n          (err) => {\n            console.error(err);\n            this.refreshTable.emit();\n            this.snackBarService.show(RISK_QUICKVIEW_PROPERTIES.errorMessage, 'alert');\n          }\n        ));\n      }\n    });\n  }\n  deleteParticipant(workshopId: any, riskId: any, participantId: any) {\n    const MESSAGE = RISK_QUICKVIEW_PROPERTIES.riskWorkshop.deleteParticipantDialog;\n    const payload = {\n      workshop_id: workshopId,\n      risk_id: riskId,\n      participant_id: participantId,\n    };\n    const ref = this.dialogService.open(DeleteComponent, {\n      data: { message: MESSAGE },\n      position: 'CENTER',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe((data) => {\n      if (data) {\n        this.subscriptions.add(this.workshopService.deleteParticipant(payload).subscribe(\n          (res) => {\n            this.snackBarService.show(RISK_QUICKVIEW_PROPERTIES.riskWorkshop.deleteParticipant, 'success');\n            this.refreshTable.emit();\n          },\n          (err) => {\n            console.error(err);\n            this.snackBarService.show(RISK_QUICKVIEW_PROPERTIES.errorMessage, 'alert');\n          }\n        ));\n      }\n    });\n  }\n\n  sendInvite(workshopId: any, riskId: any, participantId: any) {\n    const payload = {\n      workshop_id: workshopId,\n      risk_id: riskId,\n      participants: [participantId],\n    };\n    this.subscriptions.add(this.workshopService.sendOrResendInvite(payload).subscribe(\n      (res) => {\n        this.snackBarService.show(RISK_QUICKVIEW_PROPERTIES.riskWorkshop.sendInvite, 'success');\n        this.refreshTable.emit();\n      },\n      (err) => {\n        console.error(err);\n        this.snackBarService.show(RISK_QUICKVIEW_PROPERTIES.errorMessage, 'alert');\n      }\n    ));\n  }\n  addParticipant(workShopData: any) {\n    const ref = this.dialog.open(CreateWorkshopComponent, {\n      data: { riskDetails: workShopData, addMore: true },\n      position: 'RIGHT',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe((data) => {\n      if (data) {\n        this.refreshTable.emit();\n      }\n      return;\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<div class=\"risk-workshop-table\">\n  <ng-container *ngIf=\"(tableData | filter: searchQuery)?.length > 0\">\n    <div class=\"table-header\">\n      <div class=\"table-row\">\n          <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">#</div>\n          <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center workshopName\">\n            <!-- <span class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"><i class=\"icons\">&#xeaf0;</i></span>  -->\n            WORKSHOP NAME</div>\n          <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center facilitator\">\n            <!-- <span class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"><i class=\"icons\">&#xeaf0;</i></span> -->\n             FACILITATOR\n             <!-- <i class=\"icons info vx-fs-12 vx-fw-500 vx-ml-1\" [appTooltip]=\"'Facilitator info text here...'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i> -->\n            </div>\n          <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center date-created\">\n            <!-- <span class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"><i class=\"icons\">&#xeaf0;</i></span>  -->\n            DATE CREATED</div>\n          <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center response\">\n            <!-- <span class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"><i class=\"icons\">&#xeaf0;</i></span>  -->\n            RESPONSES</div>\n          <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"></div>\n          <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"></div>\n      </div>\n    </div>\n    <div class=\"table-body\">\n      <ng-container *ngFor=\"let data of tableData | filter: searchQuery; let i = index\">\n        <!-- when come on workshop page through manage risk page then add class \"manage-active\" for first table-row -->\n        <div class=\"table-row\" [attr.id]=\"'target' + i\" [class.manage-active]=\"activeClass && highLightedId == data?.workshop_obj_id\">\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n            <div class=\"sr-no\" appTooltip=\"{{ i + 1 }}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{ i + 1 }}</div>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center workshopName\">\n            <div class=\"value vx-d-flex vx-align-center vx-w-100\" appTooltip=\"{{ data?.workshop_control_id }} {{ data?.workshopID }}\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" (click)=\"clickChild(data?.workshop_id)\" [attr.id]=\"data?.workshopID?.toLowerCase()\">\n              <div class=\"id vx-fs-10 vx-fw-500 vx-txt-blue vx-mr-1\" *ngIf=\"data?.workshop_control_id\">{{ data?.workshop_control_id }}</div>\n              <div class=\"name vx-fs-13 vx-txt-blue vx-pr-2\">{{ data?.workshopID }}</div>\n              <div class=\"label vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-pl-1 vx-pr-1\">{{ data?.workshop_name }}</div>\n            </div>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center facilitator\">\n            <div class=\"vx-avatar md vx-mr-2\" [attr.id]=\"data?.workshopID?.toLowerCase() + ' facilitator user'\">\n              <span class=\"blue\" *ngIf=\"data?.facilator_image === ''\">{{ data?.facilator_short_name }}</span>\n              <img *ngIf=\"data?.facilator_image !== ''\" [src]=\"data?.facilator_image | profile\" alt=\"\" />\n            </div>\n            <div class=\"name vx-fs-13 vx-paragraph-txt\" appTooltip=\"{{ data?.facilator_name }}\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [attr.id]=\"data?.workshopID?.toLowerCase() + ' facilitator'\">{{ data?.facilator_name }}</div>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center date-created\">\n            <div *ngIf=\"data?.date_created\" class=\"value vx-fs-13 vx-paragraph-txt\" [attr.id]=\"data?.workshopID?.toLowerCase() + ' date created'\">{{ data?.date_created }}</div>\n            <div *ngIf=\"!data?.date_created\" class=\"value vx-fs-13 vx-paragraph-txt\" [attr.id]=\"data?.workshopID?.toLowerCase() + ' date created blank'\">--</div>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center response\">\n            <div class=\"value vx-fs-13 vx-fw-500\" [attr.id]=\"data?.workshopID?.toLowerCase() + ' response'\"><span class=\"vx-fs-15 vx-label-txt\">{{ data?.total_workshop_complete }}</span>/{{ data?.participants?.length }}</div>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center action\">\n            <button [class.disabled]=\"!(data?.goto_risk_assessment_enable || data?.add_participants_enable || data?.delete_enable)\" class=\"more vx-fs-14 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" appPopover (click)=\"moreAction.popover()\" placement=\"right\" [attr.id]=\"data?.workshopID?.toLowerCase() + ' more action'\"><i class=\"icons\">&#xe911;</i></button>\n            <app-popover #moreAction>\n                <div class=\"action-list\">\n                    <ul class=\"action-item\">\n                      <li *ngIf=\"data?.goto_risk_assessment_enable\">\n                        <button (click)=\"goToAssessment(data?.risk_obj_id)\"><i class=\"icons\">&#xe936;</i> Go to Risk Assessment</button>\n                      </li>\n                      <li *ngIf=\"data?.add_participants_enable\">\n                        <button (click)=\"addParticipant(data)\"><i class=\"icons\">&#xea98;</i> Add Participants</button>\n                      </li>\n                      <li *ngIf=\"data?.delete_enable\">\n                        <button (click)=\"deleteWorkshop(data)\"><i class=\"icons\">&#xe923;</i> Delete</button>\n                      </li>\n                    </ul>\n                </div>\n            </app-popover>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center action\">\n            <button (click)=\"clickChild(data?.workshop_obj_id)\" *ngIf=\"data?.participants?.length > 0\" class=\"arrow vx-fs-12 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [attr.id]=\"data?.workshopID?.toLowerCase() + ' arrow'\">\n              <i class=\"icons\">\n                <ng-container *ngIf=\"!expanded?.includes(data?.workshop_obj_id)\">&#xe970;</ng-container>\n                <ng-container *ngIf=\"expanded?.includes(data?.workshop_obj_id)\">&#xe9e8;</ng-container>\n              </i>\n            </button>\n          </div>\n        </div>\n        <ng-container *ngIf=\"expanded?.includes(data?.workshop_obj_id)\">\n          <div class=\"table-row child-head\" *ngIf=\"data?.participants?.length > 0\">\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"></div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center workshopName\">PARTICIPANT NAME\n              <!-- <i class=\"icons info vx-fs-12 vx-fw-500 vx-ml-1\" [appTooltip]=\"'Participant name info text here...'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i> -->\n            </div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center facilitator\"></div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center date-created\">DUE DATE</div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center response\">STATUS</div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"></div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"></div>\n          </div>\n          <!-- when come on workshop page through manage risk page then add class \"manage-active-child\" for table-row -->\n          <ng-container *ngFor=\"let childData of data?.participants; let j = index\">\n            <div class=\"table-row\" [class.manage-active-child]=\"activeClass && highLightedId == data?.workshop_obj_id\">\n              <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                <div class=\"sr-no\" appTooltip=\"{{ i + 1 }}.{{ j + 1 }}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{ i + 1 }}.{{ j + 1 }}</div>\n              </div>\n              <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center workshopName\">\n                <div class=\"vx-avatar md vx-mr-2\" [attr.id]=\"childData?.participant_name?.toLowerCase() + ' user'\">\n                  <span *ngIf=\"childData?.participant_image === ''\" class=\"blue\">{{ childData?.participant_short_name }}</span>\n                  <img *ngIf=\"childData?.participant_image !== ''\" [src]=\"childData?.participant_image | profile\" alt=\"\" />\n                </div>\n                <div class=\"participant-name vx-fs-13 vx-paragraph-txt\" appTooltip=\"{{ childData?.participant_name }}\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [attr.id]=\"childData?.participant_name?.toLowerCase()\">{{ childData?.participant_name }}</div>\n              </div>\n              <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center facilitator\"></div>\n              <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center date-created\">\n                <div class=\"value vx-fs-12 vx-paragraph-txt\" [innerHTML]=\"childData?.due_date\" [attr.id]=\"childData?.participant_name?.toLowerCase() + ' date created'\"></div>\n              </div>\n              <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center response\">\n                <div class=\"status-value vx-fs-12\" [style.color]=\"childData?.statusclass\" [attr.id]=\"childData?.participant_name?.toLowerCase() + ' status'\">{{ childData?.status }}</div>\n              </div>\n              <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center action\">\n                <button *ngIf=\"childData?.status != 'Completed'\" [class.disabled]=\"!(childData?.invite_send_enable || childData?.invite_resend_enable || childData?.delete_enable)\" class=\"more vx-fs-14 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" appPopover (click)=\"moreActionChild.popover()\" placement=\"right\" [attr.id]=\"childData?.participant_name?.toLowerCase() + ' more action'\"><i class=\"icons\">&#xe911;</i></button>\n                <app-popover #moreActionChild>\n                    <div class=\"action-list\">\n                        <ul class=\"action-item\">\n                          <li *ngIf=\"childData?.invite_send_enable\">\n                            <button (click)=\"sendInvite(data?.workshop_id, data?.risk_id, childData?.participant_member_id)\"><i class=\"icons\">&#xe938;</i> Send Invite</button>\n                          </li>\n                          <li *ngIf=\"childData?.invite_resend_enable\">\n                            <button (click)=\"sendInvite(data?.workshop_id, data?.risk_id, childData?.participant_member_id)\"><i class=\"icons\">&#xe938;</i> Resend Invite</button>\n                          </li>\n                          <li *ngIf=\"childData?.delete_enable\">\n                            <button (click)=\"deleteParticipant(data?.workshop_id, data?.risk_id, childData?.participant_member_id)\"><i class=\"icons\">&#xe923;</i> Delete</button>\n                          </li>\n                        </ul>\n                    </div>\n                </app-popover>\n              </div>\n              <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center action\"></div>\n            </div>\n          </ng-container>\n        </ng-container>\n      </ng-container>\n    </div>\n  </ng-container>\n  <app-no-data *ngIf=\"(tableData | filter: searchQuery)?.length == 0 || tableData?.length == 0\" [noDataImage]=\"'./assets/images/risk-workshop.svg'\" [noDataText]=\"'No data to display.'\"></app-no-data>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-table-loader',\n  templateUrl: './table-loader.component.html',\n  styleUrls: ['./table-loader.component.less'],\n})\nexport class TableLoaderComponent implements OnInit {\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"manage-risk\">\n  <table class=\"category-table\">\n    <tbody>\n      <tr *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n        <td class=\"serial\">\n          <span class=\"serial\"></span>\n        </td>\n        <td class=\"name\" width=\"50%\">\n          <span class=\"loader\"></span>\n        </td>\n        <td class=\"action\" width=\"50%\">\n          <span class=\"loader\"></span>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RippleDirective } from './ripple.directive';\n\n@NgModule({\n  declarations: [RippleDirective],\n  imports: [CommonModule],\n  exports: [RippleDirective],\n})\nexport class RippleModule {}\n","import { Component, ElementRef, forwardRef, Input, OnInit, ViewChild, QueryList, ContentChildren } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { nanoid } from 'nanoid';\n// import { CsOptionComponent } from '../cs-option/cs-option.component';\n\n@Component({\n  // tslint:disable-next-line:component-selector\n  selector: 'cs-select',\n  templateUrl: './cs-select.component.html',\n  styleUrls: ['./cs-select.component.less'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => CsSelectComponent),\n      multi: true,\n    },\n  ],\n})\nexport class CsSelectComponent implements OnInit {\n  @Input() dropdownLabel!: string;\n  @Input() dropdownSubLabel!: string;\n  @Input() isRequired!: string;\n  @Input() placeholder!: string;\n\n  // @ContentChildren(CsOptionComponent) op !: QueryList<CsOptionComponent>;\n\n  dropdownToggle!: boolean;\n  positionReset!: boolean;\n  getLeft!: number;\n  getTop!: number;\n  getWidth!: number;\n  maxWidth!: number;\n\n  valuePlaceholder!: string;\n  private optionList!: ElementRef;\n\n  @ViewChild('optionList') set content(content: ElementRef) {\n    if (content) {\n      // initially setter gets called with undefined\n      this.optionList = content;\n    }\n  }\n  name!: string;\n  val!: string;\n  showOptions!: boolean;\n  constructor() {\n    this.name = nanoid();\n    this.valuePlaceholder = '';\n  }\n\n  ngOnInit(): void {}\n\n  onChange: any = () => {};\n  onTouch: any = () => {};\n\n  set RadioVal(val: any) {\n    if (val !== undefined && val !== null && this.val !== val) {\n      this.val = val;\n      console.log('VALUE', this.val);\n      this.onChange(val);\n      this.onTouch(val);\n    }\n  }\n\n  writeValue(value: any): void {\n    this.RadioVal = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouch = fn;\n  }\n\n  openDropdown(event: any): void {\n    this.dropdownToggle = true;\n    setTimeout(() => {\n      const dropdown = event.target.getBoundingClientRect();\n      const selectOption = this.optionList.nativeElement.offsetHeight;\n      if (dropdown.top + selectOption * 2 > window.innerHeight) {\n        this.getTop = dropdown.top - selectOption;\n      } else {\n        this.getTop = dropdown.top + dropdown.height;\n      }\n      this.getLeft = dropdown.left;\n      this.getWidth = dropdown.width;\n      this.maxWidth = dropdown.width * 1.25;\n      this.showOptions = true;\n    }, 10);\n  }\n  closeDropdown(): void {\n    this.dropdownToggle = false;\n  }\n}\n","<div class=\"selection-wrap\">\n  <label class=\"label\" *ngIf=\"dropdownLabel != undefined\">\n    {{ dropdownLabel }}\n    <span class=\"sub-label\">{{ dropdownSubLabel }}</span>\n    <span class=\"required\" *ngIf=\"isRequired\">*</span>\n  </label>\n  <div class=\"input-group\">\n    <input\n      type=\"text\"\n      readonly\n      class=\"value\"\n      (click)=\"openDropdown($event)\"\n      (keyup.enter)=\"openDropdown($event)\"\n      tabindex=\"0\"\n      [placeholder]=\"placeholder\"\n      [value]=\"valuePlaceholder\"\n    />\n  \n    <i class=\"icons\">&#xe919;</i>\n  </div>\n  <div class=\"risk-overlay\" *ngIf=\"dropdownToggle === true\" (click)=\"closeDropdown()\"></div>\n  <div\n    class=\"select-options\"\n    *ngIf=\"dropdownToggle === true\"\n    #optionList\n    (keyup.Escape)=\"closeDropdown()\"\n    (keyup.enter)=\"closeDropdown()\"\n    (click)=\"closeDropdown()\"\n    [style.top.px]=\"getTop\"\n    [style.left.px]=\"getLeft\"\n    [style.width.px]=\"getWidth\"\n    [class.active]=\"showOptions\"\n  >\n    <ng-content select=\"cs-option\"></ng-content>\n  </div>\n</div>\n","import { Component, ElementRef, Input, OnInit, ViewChild, ChangeDetectionStrategy } from '@angular/core';\nimport { CsSelectComponent } from '../cs-select/cs-select.component';\n\n@Component({\n  // tslint:disable-next-line:component-selector\n  selector: 'cs-option',\n  templateUrl: './cs-option.component.html',\n  styleUrls: ['./cs-option.component.less'],\n})\nexport class CsOptionComponent implements OnInit {\n  @Input() value!: string;\n  @ViewChild('options') option!: ElementRef;\n\n  constructor(public csSelect: CsSelectComponent) {\n    this.value = '';\n  }\n\n  ngOnInit(): void {}\n\n  change(event: any): void {\n    if (this.option) {\n      setTimeout(() => {\n        this.csSelect.valuePlaceholder = this.option.nativeElement.innerText;\n      }, 1);\n    }\n    this.csSelect.writeValue(this.value);\n  }\n}\n","<div class=\"list\">\n  <label>\n    <input type=\"radio\" tabindex=\"0\" [value]=\"value\" [name]=\"csSelect?.name\" (click)=\"change($event)\" [checked]=\"csSelect?.val === this?.value\" />\n    <span class=\"value\" #options>\n      <ng-content></ng-content>\n    </span>\n  </label>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CsSelectComponent } from './cs-select/cs-select.component';\nimport { CsOptionComponent } from './cs-option/cs-option.component';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n  declarations: [CsSelectComponent, CsOptionComponent],\n  imports: [FormsModule, CommonModule],\n  exports: [CsSelectComponent, CsOptionComponent],\n})\nexport class SelectModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SmileyDialogComponent } from './smiley-dialog.component';\n\n@NgModule({\n  declarations: [SmileyDialogComponent],\n  imports: [CommonModule],\n\n  exports: [SmileyDialogComponent],\n})\nexport class SmileyDialogModule {}\n","import { Component, OnInit, Optional } from '@angular/core';\nimport { Configurations } from '../../../configurations';\n\n@Component({\n  selector: 'app-loader',\n  templateUrl: './loader.component.html',\n  styleUrls: ['./loader.component.less'],\n})\nexport class LoaderComponent implements OnInit {\n  vLoader: any;\n  \n  public env!: any;\n\n  constructor(@Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.env.environment;\n    }\n    this.vLoader = this.env.vLoader;\n  }\n\n  ngOnInit(): void {}\n}\n","<div class=\"main-loader\">\n  <img src=\"{{vLoader}}\" alt=\"\" />\n  <div class=\"loader-index\">\n    <div class=\"loader-index-circle\"></div>\n  </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LoaderComponent } from './loader/loader.component';\nimport { LoaderInlineComponent } from './loader-inline/loader-inline.component';\n\n@NgModule({\n  declarations: [LoaderComponent, LoaderInlineComponent],\n  imports: [CommonModule],\n  exports: [LoaderComponent, LoaderInlineComponent],\n})\nexport class VLoaderModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'quarter',\n  pure: true\n})\nexport class QuarterPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n   if (value && value?.length){\n  value = [...value.split(',')];\n  for (let i = 0; i < value.length; i++) {\n   value[i] = value[i].trim();\n   value[i] =  value[i][0].toUpperCase() + value[i].slice(1).toLowerCase();\n\n   if (i === value.length - 1){return value.join(', ')}\n    }\n   }\n   else{\n     return value;\n   }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'futureCycle'\n})\nexport class FutureCyclePipe implements PipeTransform {\n\n  transform(businessCycleLIst: Array<string>): Array<any> {\n    return businessCycleLIst.filter((list: string) => list !== 'Show Future Due Dates');\n  }\n\n}\n","// import { CommonService } from 'src/app/services/common.service';\nimport { Component, OnInit, Input, Output, OnChanges, EventEmitter, SimpleChanges } from '@angular/core';\nimport { QuickViewService } from '../../quick-view/services/quick-view.service';\n\n@Component({\n  selector: 'app-time-filter',\n  templateUrl: './time-filter.component.html',\n  styleUrls: ['./time-filter.component.less']\n})\nexport class TimeFilterComponent implements OnInit, OnChanges {\n// Refactoring\n@Input() businessCycleRange !: any;\n@Output() timeFilterApply = new EventEmitter(); // sample {type: \"monthly\", startDate: \"01-1-2021\", endDate: \"31-1-2021\"}\nconstructor(\n  // private commonService: CommonService,\n   private quickViewService: QuickViewService) {\n  this.dataForDisplay.yearList = JSON.parse(localStorage.getItem('businessCycle') ?? '{}');\n}\n/**\n * Data Structure for storing the lists for the display fields\n */\n dataForDisplay: any = {\n  filterList : ['Monthly', 'Quarterly'],\n  quarterList : [],\n  monthList : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n  yearList : ''\n };\n/**\n * Data Stucture to save the visibility of different fields\n */\n fieldVisibilityList: any = {\n  yearList : false,\n  monthList: false,\n  quarterList: false,\n  button: false,\n  buttonDisabled : false,\n  buttonName : 'APPLY'\n};\n\ndropDownListVisibility = {\n  yearSelector: false,\n  filterType: false,\n  monthSelector: false,\n  quarterSelector : false\n};\n/**\n * Selected value of time period filter\n*/\nselectedValue = {\n  filterType: '',\n  selectedQuarterText : '',\n  selectedYearText : '',\n  selectedMonthText : '',\n  startDate : '',\n  endDate : '',\n  selectedBusinessCycle: ''\n};\n\nngOnInit(){\nif (localStorage.getItem('timefilter')){\n const filter: any = JSON.parse(localStorage.getItem('timefilter') ?? '');\n if (filter.riskFilter){\n  this.selectedValue = filter.riskFilter;\n }\n}\n\n}\n\nngOnChanges(changes: SimpleChanges){\n   if (changes?.['businessCycleRange'] && !changes?.['businessCycleRange']?.firstChange){\n     this.resetFilter();\n   }\n}\nremoveSelectedData(evt: any){\nif (evt === 'MONTH'){\n   this.selectedValue.selectedMonthText = '';\n}else if (evt === 'QUARTER'){\n  this.selectedValue.selectedQuarterText = '';\n}\nthis.checkButtonVisibility();\n}\n/**\n * This function is responsible for taking action when fields values are changed\n * @param type Field Type\n * @param value Field Selected value\n */\n fieldValueChange(type: any, value: any){\n\nconsole.log('type', 'value', type, value);\nswitch (type) {\n    case 'TYPE':\n\n      this.selectedValue.selectedBusinessCycle = '';\n      this.dropDownListVisibility.filterType = false;\n      if (this.selectedValue.filterType !== value){\n        this.selectedValue.selectedYearText = '';\n      }\n      this.selectedValue.filterType = value;\n      this.fieldVisibilityList.monthList =  false;\n      this.fieldVisibilityList.quarterList = false;\n      this.fieldVisibilityList.yearList = this.visibiltyOfYearSelector();\n      if (this.selectedValue.selectedYearText &&   this.fieldVisibilityList.yearList){\n          this.timFilterTypeToggle();\n      }\n      if (!this.fieldVisibilityList.yearList){\n      this.selectedValue.selectedBusinessCycle = this.dataForDisplay?.yearList?.selectedCycle?.selected_cycle_arr[0];\n      this.timFilterTypeToggle();\n      }\n      break;\n    case 'YEAR':\n      this.dropDownListVisibility.yearSelector = false;\n      this.selectedValue.selectedYearText = this.dataForDisplay?.yearList?.selectedCycle?.business_cycle[value];\n      this.selectedValue.selectedBusinessCycle = this.dataForDisplay?.yearList?.selectedCycle?.selected_cycle_arr[value];\n      this.timFilterTypeToggle();\n      this.setDateRangeForMonth();\n      break;\n    case 'QUARTER':\n      this.dropDownListVisibility.quarterSelector = false;\n      this.selectedValue.selectedQuarterText = this.dataForDisplay?.quarterList[value].months;\n      this.selectedValue.startDate =  this.dataForDisplay?.quarterList[value].start_date;\n      this.selectedValue.endDate =  this.dataForDisplay?.quarterList[value].end_date;\n      break;\n    case 'MONTH':\n       this.dropDownListVisibility.monthSelector = false;\n       this.selectedValue.selectedMonthText = this.dataForDisplay.monthList[value];\n       this.setDateRangeForMonth();\n       break;\n\n  }\nthis.checkButtonVisibility();\nif (this.dataForDisplay?.yearList?.selectedCycle && this.dataForDisplay?.yearList?.selectedCycle?.business_cycle?.length > 1 && type === 'TYPE') {\n\n    if (this.dataForDisplay?.yearList?.selectedCycle?.business_cycle.includes('Show Future Due Dates')) {\n\n      const yearData = 0 ;\n      if(typeof(this.dataForDisplay?.yearList?.selectedCycle?.business_cycle) === 'object' && this.dataForDisplay?.yearList?.selectedCycle?.business_cycle?.length > 0){\n        this.dataForDisplay?.yearList?.selectedCycle?.business_cycle?.findIndex((ele: string) => ele !== 'Show Future Due Dates');\n      }\n\n      this.fieldValueChange('YEAR', yearData);\n    }\n  }\n}\n\ncheckButtonVisibility(){\n  if (localStorage.getItem('timefilter')){\n    const localState = JSON.parse(localStorage.getItem('timefilter') ?? '').riskFilter;\n    if (JSON.stringify(this.selectedValue) === JSON.stringify(localState)){\n      this.fieldVisibilityList.buttonName = 'RESET';\n    }else{\n      this.fieldVisibilityList.buttonName = 'APPLY';\n    }\n\n  }else{\n    this.fieldVisibilityList.buttonName = 'APPLY';\n  }\n  if (this.selectedValue.filterType){\n    this.fieldVisibilityList.button =  true;\n  }else{\n    this.fieldVisibilityList.button = false;\n  }\n  if (this.selectedValue.selectedBusinessCycle && (this.selectedValue.selectedMonthText || this.selectedValue.selectedQuarterText)){\n    this.fieldVisibilityList.buttonDisabled = false;\n  }else{\n    this.fieldVisibilityList.buttonDisabled = true;\n  }\n}\n/**\n   * Toggles the Monthly and quaterly fields\n   */\n timFilterTypeToggle(){\n  if ( this.selectedValue.filterType === 'Monthly'){\n    this.fieldVisibilityList.monthList =  true;\n    this.fieldVisibilityList.quarterList = false;\n    this.selectedValue.selectedQuarterText = '';\n    this.selectedValue.selectedMonthText = '';\n    this.selectedValue.startDate = '';\n    this.selectedValue.endDate = '';\n\n}\n  if ( this.selectedValue.filterType === 'Quarterly'){\n    this.selectedValue.selectedQuarterText = '';\n    this.fieldVisibilityList.monthList =  false;\n    this.fieldVisibilityList.quarterList = true;\n    this.selectedValue.selectedMonthText = '';\n\n    this.getQuarterList();\n}\n}\n\n/**\n * Decides the visibility of business cycle picker field\n * @returns boolean\n */\nvisibiltyOfYearSelector(){\n  if (typeof(this.dataForDisplay?.yearList?.selectedCycle?.business_cycle) === 'object' &&  this.dataForDisplay?.yearList?.selectedCycle?.business_cycle?.length > 1){\n   return true;\n  }\n  return false;\n}\n/**\n * Fetches the list of Quarters for the selected year of business cycle\n */\ngetQuarterList(){\n  this.dataForDisplay.quarterList = [];\n  const cycle = this.selectedValue.selectedBusinessCycle.split('-');\n  const startDate = cycle.slice(0, 3).join('-');\n  const endDate =  cycle.slice(3, 6).join('-');\n  const yearRange = [startDate, endDate];\n  this.quickViewService.fetchDynamicQuarter(yearRange).subscribe((data: any) => {\n  this.dataForDisplay.quarterList = [];\n  this.dataForDisplay.quarterList = data;\n});\n}\n\n/**\n* Sets the start and end date for the monthly selected time period.\n*/\nsetDateRangeForMonth(){\n  const cycle: any = this.selectedValue.selectedBusinessCycle.split('-');\n  const startMonthIndex = Math.abs(Number(cycle[1]));\n  const endMonthIndex = Math.abs(Number(cycle[4]));\n  let selectedMonthIndex = -1;\n  const monthIndex = this.dataForDisplay.monthList.indexOf(this.selectedValue.selectedMonthText);\n  if (monthIndex > -1) {selectedMonthIndex = monthIndex  + 1; } else{return; }\n  if (selectedMonthIndex < startMonthIndex){\n     this.selectedValue.startDate = `01-${selectedMonthIndex < 10 ? '0' + selectedMonthIndex : selectedMonthIndex}-${cycle[5]}`;\n     this.selectedValue.endDate  =  `${new Date(cycle[5], selectedMonthIndex, 0).getDate()}-${selectedMonthIndex < 10 ? '0' + selectedMonthIndex : selectedMonthIndex  }-${cycle[5]}`;\n  }\n  else if (selectedMonthIndex >= startMonthIndex){\n    this.selectedValue.startDate = `01-${selectedMonthIndex < 10 ? '0' + selectedMonthIndex : selectedMonthIndex}-${cycle[2]}`;\n    this.selectedValue.endDate  =  `${new Date(cycle[5], selectedMonthIndex, 0).getDate()}-${selectedMonthIndex < 10 ? '0' + selectedMonthIndex : selectedMonthIndex}-${cycle[2]}`;\n  }\n}\n\n  /**\n   * Executes on click of next button in floating bar\n   */\n  next(evt: any) {\n    this.buildPayload();\n  }\n\n  /**\n   * Builds the final payload and emitts the payload to parent component\n   */\n  buildPayload(){\n    const data: any = {};\n    if (this.selectedValue.filterType === 'Monthly'){\n      this.setDateRangeForMonth();\n      data.type = 1;\n      data.time_filter_type = 'monthly';\n      const monthIndex = this.dataForDisplay?.monthList.indexOf(this.selectedValue?.selectedMonthText) + 1 ;\n      data.selectedId = [monthIndex];\n      data.startDate = this.selectedValue.startDate;\n      data.endDate =  this.selectedValue.endDate;\n    }\n    else if (this.selectedValue.filterType === 'Quarterly'){\n      data.type = 2;\n      data.time_filter_type = 'quarterly';\n      const quarterIndex = this.dataForDisplay?.quarterList.findIndex((quarter: any) => quarter?.months === this.selectedValue?.selectedQuarterText);\n      data.selectedId = [quarterIndex];\n      data.startDate = this.selectedValue?.startDate;\n      data.endDate =  this.selectedValue?.endDate;\n    }\n    if (Object.keys(data).length) {\n    data.riskFilter = this.selectedValue;\n    this.timeFilterApply.emit(data);\n    setTimeout(() => {\n      this.checkButtonVisibility();\n    }, 100);\n\n    }\n  }\n\n  resetFilter(){\n    /**\n * Data Structure for storing the lists for the display fields\n */\n this.dataForDisplay = {\n  filterList : ['Monthly', 'Quarterly'],\n  quarterList : [],\n  monthList : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n  yearList : JSON.parse(localStorage.getItem('businessCycle') ?? '')\n};\n/**\n * Data Stucture to save the visibility of different fields\n */\n this.fieldVisibilityList = {\n  yearList : false,\n  monthList: false,\n  quarterList: false,\n  button: false,\n  buttonDisabled : false\n};\n\n this.dropDownListVisibility = {\n  yearSelector: false,\n  filterType: false,\n  monthSelector: false,\n  quarterSelector : false\n};\n/**\n * Selected value of time period filter\n*/\n this.selectedValue = {\n  filterType: '',\n  selectedQuarterText : '',\n  selectedYearText : '',\n  selectedMonthText : '',\n  startDate : '',\n  endDate : '',\n  selectedBusinessCycle: ''\n};\n this.quickViewService.resetTimeFilter();\n this.quickViewService.businessLoader.next(true);\n  }\n\n// will open year list dropdown\nopenYearDropDown() {\n  const yearData = this.dataForDisplay?.yearList?.selectedCycle?.business_cycle.filter((ele: string) => ele !== 'Show Future Due Dates');\n  this.dropDownListVisibility.yearSelector = yearData.length > 1;\n}\n}\n","<div class=\"time-period\">\n  <div class=\"select-part\">\n    <div class=\"select-box\" id=\"time-period\" (click)=\"dropDownListVisibility.filterType = true\">\n      {{ selectedValue?.filterType? selectedValue?.filterType : 'Select a time period' }}\n      <i class=\"icons\">&#xe919;</i>\n    </div>\n    <div class=\"risk-overlay\" *ngIf=\"dropDownListVisibility?.filterType\" (click)=\"dropDownListVisibility.filterType = false\"></div>\n    <div class=\"select-box-dropdown\" *ngIf=\"dropDownListVisibility?.filterType\">\n      <ul>\n        <li *ngFor=\"let timeFilter of dataForDisplay?.filterList; let i = index\" (change)=\"fieldValueChange('TYPE',timeFilter)\">\n          <input type=\"radio\" id=\"timeFilter?.toLowerCase()\" [value]=\"i + 1\" name=\"period\" />\n          <label>{{ timeFilter }}</label>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n\n  <div class=\"select-part\" *ngIf=\"fieldVisibilityList?.yearList\">\n    <div class=\"select-box\" (click)=\" openYearDropDown() \">\n      {{ (dataForDisplay?.yearList?.selectedCycle?.business_cycle | futureCycle)?.length === 1 ? (dataForDisplay?.yearList?.selectedCycle?.business_cycle | futureCycle)[0]: (selectedValue?.selectedYearText ? selectedValue?.selectedYearText :'Select a Year')}}\n      <i *ngIf=\"(dataForDisplay?.yearList?.selectedCycle?.business_cycle | futureCycle)?.length > 1\" class=\"icons\">&#xe919;</i>\n    </div>\n    <div class=\"risk-overlay\" *ngIf=\"dropDownListVisibility?.yearSelector\" (click)=\"dropDownListVisibility.yearSelector = false\"></div>\n    <div class=\"select-box-dropdown\" *ngIf=\"dropDownListVisibility?.yearSelector\">\n      <ul>\n        <li *ngFor=\"let cycle of dataForDisplay?.yearList?.selectedCycle?.business_cycle | futureCycle;let yearIndex = index\" (click)=\"fieldValueChange('YEAR',yearIndex)\">\n          <input type=\"radio\" name=\"period\" />\n          <label>{{cycle}}</label>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n\n  <div class=\"select-month\" *ngIf=\"fieldVisibilityList?.monthList ||selectedValue?.filterType === 'Monthly'\">\n    <div class=\"select-month-box\" (click)=\"dropDownListVisibility.monthSelector = true\" *ngIf=\"!selectedValue?.selectedMonthText\" [class.disabled]=\"!selectedValue?.selectedBusinessCycle\">\n      {{ selectedValue?.selectedMonthText ? selectedValue?.selectedMonthText : 'Select Month'}}\n      <i class=\"icons\">&#xe919;</i>\n    </div>\n\n    <div *ngIf=\"selectedValue?.selectedMonthText\"  class=\"select-month-box after-select-month\" (click)=\"dropDownListVisibility.monthSelector = true\">\n      <span class=\"month-chip\">\n        <i class=\"icons\" (click)=\"removeSelectedData('MONTH')\">&#xe90d;</i>\n        {{ selectedValue?.selectedMonthText}}\n      </span>\n      <i class=\"icons\">&#xe919;</i>\n\n    </div>\n    <div class=\"risk-overlay\" *ngIf=\"dropDownListVisibility?.monthSelector\" (click)=\"dropDownListVisibility.monthSelector = false\"></div>\n    <div class=\"select-month-box-dropdown\" *ngIf=\"dropDownListVisibility?.monthSelector\">\n      <ul>\n        <li *ngFor=\"let month of dataForDisplay?.monthList; let monthIndex = index\" (click)=\"fieldValueChange('MONTH',monthIndex)\">\n          <input type=\"radio\"type=\"radio\" name=\"month\" [checked]=\"selectedValue?.selectedMonthText === month\"  />\n          <span>{{ month }}</span>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"select-quater\" *ngIf=\"fieldVisibilityList?.quarterList || selectedValue?.filterType === 'Quarterly'\" >\n    <div class=\"select-quater-box\" (click)=\"dropDownListVisibility.quarterSelector = true\" [class.disabled]=\"!selectedValue?.selectedBusinessCycle || this?.dataForDisplay?.quarterList?.length === 0\">\n      Select a Quarter\n      <i class=\"icons\">&#xe919;</i>\n    </div>\n    <div class=\"after-select-quater\" *ngIf=\"selectedValue?.selectedQuarterText\">\n      <span class=\"quater-chip\">\n        <i class=\"icons\" (click)=\"removeSelectedData('QUARTER')\">&#xe90d;</i>\n        {{selectedValue?.selectedQuarterText|quarter }}\n      </span>\n    </div>\n    <div class=\"risk-overlay\" *ngIf=\"dropDownListVisibility?.quarterSelector\" (click)=\"dropDownListVisibility.quarterSelector = false\"></div>\n    <div class=\"select-quater-box-dropdown\" *ngIf=\"dropDownListVisibility?.quarterSelector\">\n      <ul>\n        <form>\n          <li *ngFor=\"let quarter of dataForDisplay?.quarterList; let quarterIndex = index\" (change)=\"fieldValueChange('QUARTER',quarterIndex)\">\n            <input type=\"radio\"  id=\"{{ quarter?.months }}\" [checked]=\"selectedValue?.selectedQuarterText === quarter?.months\" />\n            <label class=\"radio-label\" [for]=\"quarter?.months\">\n              <div class=\"radio-div\">\n                <div class=\"radio-outer-circle\"></div>\n                <div class=\"radio-inner-circle\"></div>\n              </div>\n              {{ quarter?.months }}\n            </label>\n          </li>\n        </form>\n      </ul>\n    </div>\n  </div>\n  <!-- -->\n\n  <button *ngIf=\"fieldVisibilityList?.button\"  [class.disabled]=\"fieldVisibilityList?.buttonDisabled\" (click)=\"fieldVisibilityList?.buttonName === 'APPLY' ?buildPayload():resetFilter()\" class=\"apply-btn\" >\n    {{ fieldVisibilityList?.buttonName  }}\n  </button>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'trim',\n})\nexport class TrimPipe implements PipeTransform {\n  transform(value: string): string {\n    return value.trim();\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n  name: 'safeHTML',\n})\nexport class safeHTMLPipe implements PipeTransform {\n  constructor(private sanitized: DomSanitizer) {}\n  transform(value: string): any {\n    return this.sanitized.bypassSecurityTrustHtml(value);\n  }\n}\n","import { Optional, Pipe, PipeTransform } from '@angular/core';\nimport { Configurations } from '../../configurations';\nimport { CONFIGS } from '../../quick-view/configurations/constants';\n// import { environment } from 'src/environments/environment';\n@Pipe({\n  name: 'getProfileUrl',\n})\nexport class GetProfileUrl implements PipeTransform {\n  CONFIG = CONFIGS;\n  ENVIRONMENT!: any;\n  constructor(@Optional() config?: Configurations) {\n    if (config) {\n      this.ENVIRONMENT = config.env;\n    }\n  }\n\n  transform(value: string, ...args: unknown[]): unknown {\n    return`${this.ENVIRONMENT.environment.s3Url}${this.ENVIRONMENT.environment.s3Bucket}/${this.CONFIG.profilePicPath}/${value}`;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TrimPipe } from './trim.pipe';\nimport { safeHTMLPipe } from './safeHTML.pipe';\nimport { QuarterPipe } from './quarter.pipe';\nimport { GetProfileUrl } from './profile.pipe';\n@NgModule({\n  declarations: [TrimPipe, safeHTMLPipe, QuarterPipe, GetProfileUrl],\n  imports: [CommonModule],\n  exports: [TrimPipe, safeHTMLPipe, QuarterPipe, GetProfileUrl ],\n})\nexport class PipesModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FutureCyclePipe } from './future-cycle.pipe';\n\n\n\n@NgModule({\n  declarations: [\n    FutureCyclePipe\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports:[\n    FutureCyclePipe\n  ]\n})\nexport class FutureCyclePipeModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TimeFilterComponent } from './time-filter.component';\nimport { PipesModule } from '../pipes/pipes.module';\nimport { FutureCyclePipeModule } from '../future-cycle-pipe/future-cycle-pipe.module';\n\n@NgModule({\n  declarations: [TimeFilterComponent],\n  imports: [CommonModule,PipesModule,FutureCyclePipeModule],\n  exports: [TimeFilterComponent],\n})\nexport class TimeFilterModule {}\n","import { BusinessCycleLoaderModule } from '../../ui-kit/business-cycle-loader/business-cycle-loader.module';\nimport { NgModule } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { WorkshopTableComponent } from './workshop-table/workshop-table.component';\nimport { TableLoaderComponent } from './workshop-table/table-loader/table-loader.component';\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\nimport { NoDataModule } from '../../ui-kit/no-data/no-data.module';\nimport { CreateWorkshopComponent } from './create-workshop/create-workshop.component';\nimport { DpDatePickerModule } from 'ng2-date-picker';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\nimport { RippleModule } from '../../ui-kit/ripple/ripple.module';\nimport { FormgroupModule } from '../../ui-kit/formgroup/formgroup.module';\nimport { ResponsibilityListComponent } from './rc-list/rc-list.component';\nimport { FloatingBarComponent } from './floating-bar/floating-bar.component';\nimport { CategorylengthPipe } from './pipes/categorylength.pipe';\nimport { OwnersListComponent } from './owner-list/owner-list.component';\nimport { FormsModule } from '@angular/forms';\nimport { SelectModule } from '../../ui-kit/select/select.module';\nimport { ProfilePipe } from './pipes/profile.pipe';\nimport { RiskWorkshopPaginationComponent } from './risk-workshop-pagination/risk-workshop-pagination.component';\nimport { SmileyDialogModule } from '../../ui-kit/smiley-dialog/smiley-dialog.module';\nimport { VLoaderModule } from '../../ui-kit/v-loader/v-loader.module';\nimport { Forage } from './pipes/forage.pipe';\nimport { FilterPipe } from './pipes/filter.pipe';\nimport { TimeFilterModule } from '../../ui-kit/time-filter/time-filter.module';\n// export const MY_FORMATS = {\n//   parse: {\n//     dateInput: 'LL',\n//   },\n//   display: {\n//     dateInput: 'DD MMM YYYY',\n//     monthYearLabel: 'MMM YYYY',\n//     dateA11yLabel: 'LL',\n//     monthYearA11yLabel: 'MMMM YYYY',\n//   },\n// };\n\n@NgModule({\n  declarations: [\n    WorkshopTableComponent,\n    ResponsibilityListComponent,\n    TableLoaderComponent,\n    CreateWorkshopComponent,\n    FloatingBarComponent,\n    OwnersListComponent,\n    ProfilePipe,\n    CategorylengthPipe,\n    RiskWorkshopPaginationComponent,\n    Forage,\n    FilterPipe,\n  ],\n  imports: [\n    CommonModule,\n    TooltipModule,\n    PopoverModule,\n    NoDataModule,\n    DpDatePickerModule,\n    NgxMaterialTimepickerModule,\n    FormgroupModule,\n    RippleModule,\n    FormsModule,\n    SelectModule,\n    SmileyDialogModule,\n    VLoaderModule,\n    TimeFilterModule,\n    BusinessCycleLoaderModule,\n  ],\n  exports: [\n    CreateWorkshopComponent,\n    TooltipModule,\n    PopoverModule,\n    NoDataModule,\n    DpDatePickerModule,\n    NgxMaterialTimepickerModule,\n    FormgroupModule,\n    RippleModule,\n    FormsModule,\n    SelectModule,\n    SmileyDialogModule,\n    VLoaderModule,\n    TimeFilterModule,\n  ],\n  providers: [DatePipe],\n})\nexport class RiskWorkshopModule {}\n","import { NgModule } from '@angular/core';\nimport { VcIframeComponent } from './vc-iframe.component';\nimport { safeURLPipe } from '../../pipes/safe-url.pipe';\n\n@NgModule({\n  declarations: [VcIframeComponent, safeURLPipe],\n  exports: [VcIframeComponent, safeURLPipe],\n})\nexport class VcIframeModule { }","import { NgModule, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WorkflowComponent } from './workflow/workflow.component';\nimport { Configurations } from '../../configurations';\n\nimport { WorkflowService } from './workflow.service';\nimport { QuickViewService } from '../services/quick-view.service';\n\nimport { VcIframeModule } from '../components/vc-iframe/vc-iframe.module';\n\nconst configuration = () => {\n  const config = localStorage.getItem('workflowConfig');\n  if (config) {\n    return JSON.parse(config);\n  } else {\n    return {};\n  }\n};\n\n@NgModule({\n  declarations: [WorkflowComponent],\n  imports: [CommonModule, VcIframeModule],\n  providers: [WorkflowService],\n  exports: [WorkflowComponent],\n})\nexport class WorkflowModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QuickViewComponent } from './quick-view/quick-view.component';\nimport { DetailsMetricsComponent } from './details-metrics/details-metrics.component';\nimport { VersionHistoryComponent } from './version-history/version-history.component';\nimport { ScoreSettingsComponent } from './score-settings/score-settings.component';\nimport { QuickDiscussionComponent } from './quick-discussion/quick-discussion.component';\nimport { QuickActivityComponent } from './quick-activity/quick-activity.component';\nimport { QuickDocumentComponent } from './quick-document/quick-document.component';\nimport { TableLoaderComponent } from './table-loader/table-loader.component';\nimport { FormgroupModule } from '../ui-kit/formgroup/formgroup.module';\nimport { ScoreSettingsLoaderComponent } from './score-settings/score-settings-loader/score-settings-loader.component';\nimport { QuickActivityLoaderComponent } from './quick-activity/quick-activity-loader/quick-activity-loader.component';\nimport { QuickDiscussionLoaderComponent } from './quick-discussion/quick-discussion-loader/quick-discussion-loader.component';\nimport { QuickDocumentLoaderComponent } from './quick-document/quick-document-loader/quick-document-loader.component';\nimport { QuickInherentRiskAssessmentComponent } from './quick-inherent-risk-assessment/quick-inherent-risk-assessment.component';\nimport {\n  NumberPipe,\n  QuickResidualRiskAssessmentComponent,\n} from './quick-residual-risk-assessment/quick-residual-risk-assessment.component';\nimport { QuickTreatmentPlanComponent } from './quick-treatment-plan/quick-treatment-plan.component';\nimport { NoDataModule } from '../ui-kit/no-data/no-data.module';\nimport { PopoverModule } from '../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../ui-kit/tooltip/tooltip.module';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { DialogModule } from '../ui-kit/dialog/dialog.module';\nimport { ProfilePipe } from './pipes/profile.pipe';\nimport { TextDisplayComponent } from './text-display/text-display.component';\nimport { TextDisplayModule } from './text-display/text-display.module';\nimport { safeHTMLPipe } from './pipes/safeHTML.pipe';\nimport { LinkControlModule } from './link-control/link-control.module';\nimport { IsCheckedPipe } from './pipes/is-checked.pipe';\nimport { FileUrlPipe } from './pipes/file-url.pipe';\nimport { SegmentFinderPipe } from './pipes/segmenter.pipe';\nimport { EffectivnessPickerDialogModule } from './effectiveness-picker-dialog/effectivness-picker-dialog.module';\nimport { InherentRiskAssessmentDialogComponent } from './inherent-risk-assessment-dialog/inherent-risk-assessment-dialog.component';\nimport { FormsModule } from '@angular/forms';\nimport { BottomConfirmationPopupComponent } from './bottom-confirmation-popup/bottom-confirmation-popup.component';\nimport { RiskFactorRatingGuideModule } from './risk-factor-rating-guide/risk-factor-rating-guide.module';\nimport { InherentAssessmentLoaderComponent } from './quick-inherent-risk-assessment/inherent-assessment-loader/inherent-assessment-loader.component';\nimport { ResidualAssessmentLoaderComponent } from './quick-residual-risk-assessment/residual-assessment-loader/residual-assessment-loader.component';\nimport { TreatmentLoaderComponent } from './quick-treatment-plan/treatment-loader/treatment-loader.component';\nimport { EditResidualRiskRatingComponent } from './edit-residual-risk-rating/edit-residual-risk-rating.component';\nimport { FrequencyDialogContainerComponent } from './frequency-dialog/frequency-dialog-container/frequency-dialog-container.component';\nimport { FrequencyDialogWeeklyComponent } from './frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component';\nimport { FrequencyDialogMonthlyComponent } from './frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component';\nimport { FrequencyDialogQuarterlyComponent } from './frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component';\nimport { FrequencyDialogBiannualComponent } from './frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component';\nimport { FrequencyDialogAnnualComponent } from './frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component';\nimport { FrequencyDialogOneTimeComponent } from './frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component';\nimport { FrequencyDialogTopComponent } from './frequency-dialog/frequency-dialog-top/frequency-dialog-top.component';\nimport { FrequencyDialogCheckboxListComponent } from './frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component';\nimport { FrequencyDialogDueDateComponent } from './frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component';\nimport { FrequencyDialogRadioListComponent } from './frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\nimport { DpDatePickerModule } from 'ng2-date-picker';\nimport { QuickViewLoaderComponent } from './quick-view/quick-view-loader/quick-view-loader.component';\nimport { ControlCountPipe } from './pipes/controlCount.pipe';\nimport { RiskWorkshopModule } from './risk-workshop/risk-workshop.module';\nimport { ResponseStrategyDialogComponent } from './response-strategy-dialog/response-strategy-dialog.component';\nimport { ResidualRiskAssessmentDialogComponent } from './residual-risk-assessment-dialog/residual-risk-assessment-dialog.component';\nimport { NoControlBottomConfirmationPopupComponent } from './no-control-bottom-popup/no-control-bottom-popup.component';\nimport { CreateControlNotOnVComplyComponent } from './create-control/create-control.component';\nimport { UserListComponent } from './user-list/user-list.component';\nimport { FloatingBarComponent } from './floating-bar/floating-bar.component';\nimport { SearchPipe } from './pipes/search.pipe';\nimport { DomsanitizerPipe } from './pipes/domsanitizer.pipe';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { WorkflowModule } from './workflow/workflow.module';\n\n@NgModule({\n  declarations: [\n    QuickViewComponent,\n    DetailsMetricsComponent,\n    VersionHistoryComponent,\n    ScoreSettingsComponent,\n    QuickDiscussionComponent,\n    QuickActivityComponent,\n    QuickDocumentComponent,\n    ScoreSettingsLoaderComponent,\n    QuickActivityLoaderComponent,\n    QuickDiscussionLoaderComponent,\n    QuickDocumentLoaderComponent,\n    QuickInherentRiskAssessmentComponent,\n    QuickResidualRiskAssessmentComponent,\n    QuickTreatmentPlanComponent,\n    InherentRiskAssessmentDialogComponent,\n    ProfilePipe,\n    safeHTMLPipe,\n    BottomConfirmationPopupComponent,\n    SegmentFinderPipe,\n    InherentAssessmentLoaderComponent,\n    ResidualAssessmentLoaderComponent,\n    TreatmentLoaderComponent,\n    EditResidualRiskRatingComponent,\n    FrequencyDialogContainerComponent,\n    FrequencyDialogWeeklyComponent,\n    FrequencyDialogMonthlyComponent,\n    FrequencyDialogQuarterlyComponent,\n    FrequencyDialogBiannualComponent,\n    FrequencyDialogAnnualComponent,\n    FrequencyDialogOneTimeComponent,\n    FrequencyDialogTopComponent,\n    FrequencyDialogCheckboxListComponent,\n    FrequencyDialogDueDateComponent,\n    FrequencyDialogRadioListComponent,\n    QuickViewLoaderComponent,\n    ControlCountPipe,\n    NumberPipe,\n    ResidualRiskAssessmentDialogComponent,\n    ResponseStrategyDialogComponent,\n    NoControlBottomConfirmationPopupComponent,\n    CreateControlNotOnVComplyComponent,\n    UserListComponent,\n    FloatingBarComponent,\n    SearchPipe,\n    DomsanitizerPipe,\n  ],\n  imports: [\n    CommonModule,\n    TooltipModule,\n    PopoverModule,\n    FormgroupModule,\n    NoDataModule,\n    VcomplyEditorModule,\n    DialogModule,\n    FormsModule,\n    TextDisplayModule,\n    TableLoaderComponent,\n    RiskFactorRatingGuideModule,\n    EffectivnessPickerDialogModule,\n    NgxMaterialTimepickerModule,\n    DpDatePickerModule,\n    RiskWorkshopModule,\n    OverlayModule,\n    WorkflowModule,\n  ],\n  exports: [QuickViewComponent],\n})\nexport class QuickViewModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SnackBarComponent } from './snack-bar/snack-bar.component';\n\n@NgModule({\n  declarations: [SnackBarComponent],\n  imports: [CommonModule],\n  exports: [SnackBarComponent],\n})\nexport class SnackBarModule {}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { Configurations } from './configurations';\nimport { QuickViewModule } from './quick-view/quick-view.module';\nimport { AuthService } from './quick-view/services/auth.service';\nimport { QuickViewService } from './quick-view/services/quick-view.service';\nimport { WorkflowModule } from './quick-view/workflow/workflow.module';\nimport { RiskQuickviewContainerComponent } from './risk-quickview-container/risk-quickview-container.component';\nimport { ActionDialogModule } from './ui-kit/action-dialog/action-dialog.module';\nimport { SnackBarModule } from \"./ui-kit/snack-bar/snack-bar.module\";\n\n@NgModule({\n    declarations: [\n        RiskQuickviewContainerComponent\n    ],\n    exports: [\n        RiskQuickviewContainerComponent\n    ],\n    imports: [\n        QuickViewModule,\n        CommonModule,\n        WorkflowModule,\n        HttpClientModule,\n        SnackBarModule,\n        //ActionDialogModule\n    ],providers:[AuthService,QuickViewService]\n})\nexport class RiskQuickviewModule {\n  public static forRoot(environmentConfig: Configurations): ModuleWithProviders<RiskQuickviewModule> {\n\n    return {\n      ngModule: RiskQuickviewModule,\n      providers: [\n        { provide: Configurations, useValue: environmentConfig }\n      ]\n    };\n  }\n}\n","/*\n * Public API Surface of risk-quickview\n */\n\nexport * from './lib/risk-quickview-container/risk-quickview-container.component';\nexport * from './lib/risk-quickview.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.TokenDecoderService","i4.Configurations","i2.TokenDecoderService","i3","i5.AuthService","i1","i2","i3.ToolTipDirective","i1.PopoverService","i1.DialogRef","i2.DialogConfig","i3.QuickViewService","i4","i5.PopoverComponent","i6.PopoverDirective","i7.ToolTipDirective","i2.CsRadioComponent","i3.SnackBarService","i4.QuickViewService","i5","i6.ToolTipDirective","i7.CsRadioComponent","i8.CsSwitchComponent","i9","i10","i11.RatingGuideComponent","i12.BottomConfirmationPopupComponent","i2.AuthService","i3.Configurations","i5.InsertionDirective","i1.Configurations","moment","i2.CsCheckboxComponent","i1.FrequencyService","i2.FrequencyDialogTopComponent","i3.FrequencyDialogCheckboxListComponent","i4.FrequencyDialogDueDateComponent","i3.FrequencyDialogDueDateComponent","i4.FrequencyDialogRadioListComponent","i2.DatePickerService","i7.FrequencyDialogDueDateComponent","i2.SnackBarService","i4.FrequencyDialogWeeklyComponent","i5.FrequencyDialogMonthlyComponent","i6.FrequencyDialogQuarterlyComponent","i7.FrequencyDialogBiannualComponent","i8.FrequencyDialogAnnualComponent","i9.FrequencyDialogOneTimeComponent","i3.FrequencyService","i4.DialogService","i5.QuickViewService","i6.AuthService","i7.DatePickerService","i8","i9.ToolTipDirective","i10.CsRadioComponent","i11","i12","i13.LoaderInlineComponent","i14.FrequencyDialogContainerComponent","i1.DialogConfig","i2.DialogRef","i1.SessionStorageService","i4.CsRadioComponent","retry","FloatingBarComponent","i2.PopoverComponent","i3.PopoverDirective","i4.CategorylengthPipe","i2.ToolTipDirective","i3.NoDataComponent","i4.CsCheckboxComponent","i5.RippleDirective","i6","i7.FloatingBarComponent","i8.Forage","i1.PaginationService","i1.WorkshopService","i2.PaginationService","i4.ToolTipDirective","i5.NoDataComponent","i6.CsCheckboxComponent","i7.RippleDirective","i9.LoaderInlineComponent","i10.FloatingBarComponent","i11.RiskWorkshopPaginationComponent","i12.FilterPipe","i3.WorkshopService","i5.SnackBarService","i7.QuickViewService","i8.DatePickerService","i9.FrequencyService","i10.ToolTipDirective","i11.PopoverComponent","i12.PopoverDirective","i13","i14","i15.CsRadioComponent","i16","i17.SmileyDialogComponent","i18.LoaderInlineComponent","i19.ResponsibilityListComponent","i20.OwnersListComponent","i4.SnackBarService","i10.LoaderInlineComponent","i2.OverflowDirective","ProfilePipe","i1.QuickViewService","i3.DialogService","i5.ToolTipDirective","i6.PopoverComponent","i7.PopoverDirective","i8.InherentAssessmentLoaderComponent","i9.ProfilePipe","i3.PopoverComponent","i4.PopoverDirective","i2.DialogService","i3.DialogConfig","i8.CsRadioComponent","i9.CsSwitchComponent","i12.RatingGuideComponent","i14.BottomConfirmationPopupComponent","i15.NoControlBottomConfirmationPopupComponent","i16.SegmentFinderPipe","i7.LoaderInlineComponent","i8.FloatingBarComponent","i9.SearchPipe","i3.AuthService","i6.QuickViewService","i11.LoaderInlineComponent","i12.UserListComponent","TableLoaderComponent","i3.CsCheckboxComponent","i6.PaginationComponent","i7.TableLoaderComponent","i8.EffectivenessPickerDialogComponent","i9.IsCheckedPipe","i10.FileUrlPipe","i3.PaginationComponent","i4.TableLoaderComponent","i4.PaginationComponent","i5.TableLoaderComponent","i6.WorkflowService","i7","i8.ToolTipDirective","i9.PopoverComponent","i10.PopoverDirective","i11.NoDataComponent","i12.TableCardLoaderComponent","i13.ControlsListComponent","i14.ControlsProgramListComponent","i15.ControlsSubCategoryListComponent","i4.PopoverComponent","i5.PopoverDirective","i9.ResidualAssessmentLoaderComponent","i10.ProfilePipe","i11.SegmentFinderPipe","i12.ControlCountPipe","isEqual","i1.DialogService","i2.QuickViewService","i6.TreatmentLoaderComponent","i7.ProfilePipe","i8.SegmentFinderPipe","i7.PopoverComponent","i8.PopoverDirective","i9.TextDisplayComponent","i11.QuickInherentRiskAssessmentComponent","i12.QuickResidualRiskAssessmentComponent","i13.QuickTreatmentPlanComponent","i14.ProfilePipe","i15.SegmentFinderPipe","i4.NoDataComponent","i6.Configurations","i14.QuickDiscussionLoaderComponent","i15.ProfilePipe","i16.DomsanitizerPipe","i6.LoaderInlineComponent","i7.DetailsMetricsComponent","i8.VersionHistoryComponent","i9.QuickDiscussionComponent","i10.QuickViewLoaderComponent","i11.ProfilePipe","i1.safeURLPipe","i2.WorkflowService","i4.VcIframeComponent","i1.SnackBarService","i1.WorkflowService","i7.Configurations","i8.QuickViewComponent","i9.WorkflowComponent","i10.SnackBarComponent","i4.ScoreSettingsLoaderComponent","i6.QuickActivityLoaderComponent","i4.QuickDocumentLoaderComponent","i1.CsRadioComponent","CsSelectComponent","i2.ClickOutsideDirective","i3.PascalPipe","safeHTMLPipe","i1.AuthService","i8.PopoverComponent","i9.PopoverDirective","i10.NoDataComponent","i1.CsSelectComponent","i3.QuarterPipe","i4.FutureCyclePipe"],"mappings":"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"}