vc-create-dashboard 2.8.27 → 2.8.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/create-dashboard-container/create-dashboard.component.mjs +244 -123
- package/esm2020/lib/create-dashboard-container/form-group/form-group.component.mjs +14 -10
- package/fesm2015/create-dashboard.mjs +244 -125
- package/fesm2015/create-dashboard.mjs.map +1 -1
- package/fesm2020/create-dashboard.mjs +254 -129
- package/fesm2020/create-dashboard.mjs.map +1 -1
- package/lib/create-dashboard-container/create-dashboard.component.d.ts +25 -25
- package/lib/create-dashboard-container/form-group/form-group.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-dashboard.mjs","sources":["../../../projects/create-dashboard/src/lib/create-dashboard.service.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/pipes/text-count.pipe.ts","../../../projects/create-dashboard/src/lib/configurations.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/services/auth.service.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/services/create-dashboard.service.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/services/pagination.service.ts","../../../projects/create-dashboard/src/lib/ui-kit/snack-bar/snack-bar.service.ts","../../../projects/create-dashboard/src/lib/ui-kit/popover/popover.service.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/services/configure-widgets.service.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.html","../../../projects/create-dashboard/src/lib/ui-kit/tooltip/tooltip.directive.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog-ref.ts","../../../projects/create-dashboard/src/lib/ui-kit/popover/popover.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/popover/popover.component.html","../../../projects/create-dashboard/src/lib/ui-kit/popover/popover.directive.ts","../../../projects/create-dashboard/src/lib/ui-kit/floating-bar/floating-bar.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/floating-bar/floating-bar.component.html","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.html","../../../projects/create-dashboard/src/lib/ui-kit/no-data/no-data.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/no-data/no-data.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/pipes/search.pipe.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.html","../../../projects/create-dashboard/src/lib/ui-kit/v-loader/loader-inline/loader-inline.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/v-loader/loader-inline/loader-inline.component.html","../../../projects/create-dashboard/src/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/directives/scroll-in-view.directive.ts","../../../projects/create-dashboard/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.html","../../../projects/create-dashboard/src/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.html","../../../projects/create-dashboard/src/lib/ui-kit/pagination/pagination.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/pagination/pagination.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/user-list/user-list.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/user-list/user-list.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/pipes/filter.pipe.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/responsibility-center/responsibility-center.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/responsibility-center/responsibility-center.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/categories/categories.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/categories/categories.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/risk-categories/risk-categories.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/risk-categories/risk-categories.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/frequency/frequency.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/frequency/frequency.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/create-dashboard.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/create-dashboard.component.html","../../../projects/create-dashboard/src/lib/ui-kit/select/safe-html.pipe.ts","../../../projects/create-dashboard/src/lib/ui-kit/select/cs-select/cs-select.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/select/cs-select/cs-select.component.html","../../../projects/create-dashboard/src/lib/ui-kit/services/cs-select.service.ts","../../../projects/create-dashboard/src/lib/ui-kit/select/cs-option/cs-option.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/select/cs-option/cs-option.component.html","../../../projects/create-dashboard/src/lib/ui-kit/select/select.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/pagination/pagination.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.html","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.html","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/click-outside.directive.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/pipes/pascal.pipe.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-select/cs-select.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-select/cs-select.component.html","../../../projects/create-dashboard/src/lib/ui-kit/tooltip/tooltip.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/formgroup.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/popover/popover.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/dashboard-footer/dashboard-footer.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/insertion.directive.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog-config.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog.component.html","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog-injector.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog.service.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/form-group/form-group.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/form-group/form-group.component.html","../../../projects/create-dashboard/src/lib/ui-kit/floating-bar/floating-bar.module.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/directives/directives.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/no-data/no-data.module.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/configure-widgets/configure-widgets.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/v-loader/loader/loader.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/v-loader/loader/loader.component.html","../../../projects/create-dashboard/src/lib/ui-kit/v-loader/v-loader.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/snack-bar/snack-bar.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/smiley-dialog/smiley-dialog.module.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/create-dashboard.module.ts","../../../projects/create-dashboard/src/public-api.ts","../../../projects/create-dashboard/src/create-dashboard.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CreateDashboardService {\r\n constructor() {}\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'textCount'\r\n})\r\nexport class TextCountPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n const span = document.createElement('span');\r\n span.innerHTML = value;\r\n console.log('span.innerHTML ==>',span.innerHTML,span.innerText.length)\r\n return span.textContent?.length || span.innerText.length;\r\n }\r\n\r\n}\r\n","export class Configurations {\r\n public envConfig: any;\r\n\r\n constructor() {\r\n this.envConfig = {};\r\n }\r\n\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { of, BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { map, shareReplay, catchError, delay} from 'rxjs/operators';\r\nimport { Configurations } from '../../configurations';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n public env !: any;\r\n\r\n constructor(private http: HttpClient, @Optional() config?: Configurations) { \r\n if (config) {\r\n this.env = config.envConfig;\r\n }\r\n }\r\n getAuthorizationToken() {\r\n if (localStorage.getItem('currentUser')) {\r\n const currentUser = JSON.parse(localStorage.getItem('currentUser') || '{}');\r\n return currentUser.token;\r\n }\r\n }\r\n\r\n \r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { of } from 'rxjs';\r\nimport { catchError, map, retry } from 'rxjs/operators';\r\nimport { Configurations } from '../../configurations';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CreateDashboardService {\r\n public env !: any;\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', token: this.authService.getAuthorizationToken() })\r\n };\r\n constructor(private http: HttpClient,\r\n private authService: AuthService, @Optional() config?: Configurations) {\r\n if (config) {\r\n this.env = config.envConfig;\r\n }\r\n }\r\n\r\n /*\r\n * Fetches the Organization Users List by making an API call\r\n */\r\n getOrganizationUsers(url?: any) {\r\n return this.http.get(this.env?.organizationGet + 'organisationUsersList&paginationType=small' +\r\n (url.p ? '&p=' + url.p : '') + (url.type ? '&type=' + url.type : '') +\r\n (url.q ? '&q=' + url.q : ''), this.httpOptions).pipe(map((res: any) => {\r\n return res;\r\n }), retry(2), catchError(err => of(err)));\r\n }\r\n\r\n /**\r\n * Fetches the OrganizationUsers details of users List to set pagination details including number of\r\n * pages and records limit per page,\r\n * @param url contains info about type & search query\r\n */\r\n getOrganizationUsersCount(url?: any) {\r\n return this.http.get(this.env?.organizationGet + 'organisationUsersCount&paginationType=small' +\r\n (url.type ? '&type=' + url.type : '') + (url.q ? '&q=' + url.q : ''), this.httpOptions).pipe(map(res => {\r\n return res;\r\n }), catchError(err => of(err)));\r\n }\r\n\r\n getCategoryList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env?.riskGet + 'category/list', { headers })\r\n .pipe(retry(2));\r\n }\r\n\r\n /**\r\n * Fetches all users by making an API call\r\n */\r\n getAllUsers() {\r\n return this.http.get(this.env?.organizationGet + 'selectAllUsers&type=all', this.httpOptions).pipe(retry(2));\r\n }\r\n\r\n /**\r\n * Fetches all groups by making an API call\r\n * */\r\n getAllGroups(params?: HttpParams){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get(this.env?.organizationGet + 'groupsList&permType=dashboard&memberExists=1', {params, headers}).pipe(retry(2));\r\n }\r\n \r\n /**\r\n * Fetches responsibilityCentersList by making an API call\r\n */\r\n getResponsibilityCenterList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env?.complianceGet + 'responsibilityCenterTree', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getComplianceCategoriesList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.complianceGet + 'complianceCategory/CategoryListTree', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getComplianceCategoriesListFromGlobal() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env?.complianceGet + 'complianceCategory/CategoryListTree&program=1&isDashboard=true', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n submitDashboard(payload: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.dashboard+'CreateDashboard', payload, { headers }).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n /**\r\n * Fetches the Dashboard details for data population to Edit the dashboard\r\n * @param id\r\n */\r\n fetchDashboard(id: any) {\r\n return this.http.get(this.env.dashboard + id + '?mode=edit', this.httpOptions).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n updateDashboard(id: any, payload: any) {\r\n return this.http.put(this.env.dashboard + 'UpdateDashboard/' + id, payload, this.httpOptions).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n getUserInformation() {\r\n return this.http.get(this.env?.organizationGet + 'users&id=' + this?._ID(), this.httpOptions).pipe(\r\n retry(2)\r\n );\r\n }\r\n _ID() {\r\n const helper = new JwtHelperService();\r\n const myRawToken = localStorage.getItem('currentUser') || '{}';\r\n const isExpired = helper?.isTokenExpired(myRawToken);\r\n if (isExpired === false) {\r\n const tokenInfo = helper?.decodeToken(myRawToken);\r\n return tokenInfo._id;\r\n }\r\n return '';\r\n }\r\n\r\n checkDuplicateDashboardName(payload: any) {\r\n return this.http.post(this.env.dashboard + 'DuplicateDashboard', payload, this.httpOptions).pipe(\r\n retry(2)\r\n );\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n/**\r\n * Service to implement pagination for users while creating an app\r\n */\r\nexport class PaginationService {\r\n currentPage = 1;\r\n searchValue = '';\r\n currentValues = new BehaviorSubject({});\r\n\r\n constructor() { }\r\n\r\n setCurrentState() {\r\n this.currentValues.next(true);\r\n }\r\n reset(){\r\n this.currentPage = 1;\r\n this.searchValue = '';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SnackBarService {\r\n snackbarSubject = new Subject<any>();\r\n constructor() {}\r\n\r\n show(message: string, icon?: string) {\r\n this.snackbarSubject.next({\r\n show: true,\r\n message,\r\n icon,\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PopoverService {\r\n stopScroll = false;\r\n positionX!: number;\r\n positionY!: number;\r\n popoverHeight: any;\r\n popoverWidth: any;\r\n elementPosition: any;\r\n elementDirection: any;\r\n constructor() {\r\n console.log(this.popoverHeight);\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { widgetDataModel} from '../interfaces/widget-data-model'\r\nimport { HttpClient, HttpHeaders, JsonpClientBackend } from '@angular/common/http';\r\nimport { catchError, map, retry } from 'rxjs/operators';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { of } from 'rxjs';\r\nimport { AuthService } from './auth.service';\r\nimport { Configurations } from '../../configurations';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigureWidgetsService {\r\n public env !: any;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n @Optional() config?: Configurations) { \r\n if (config) {\r\n this.env = config.envConfig;\r\n }}\r\n\r\n complianceWidgetsData = [\r\n {\r\n title: 'Overview',\r\n id: 'overview_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/overview.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Responsibility Calendar',\r\n id: 'compliance_calendar_flag',\r\n description: 'Displays all responsibilities that are due on a particular day.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/responsibility-calender.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Responsibility Center Overview',\r\n id: 'responsibility_center_overview_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/overview.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'My Responsibilities',\r\n id: 'my_responsibilities',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/my-responsibilities.png',\r\n tabOption: true,\r\n value: 0,\r\n },\r\n {\r\n title: 'Key Responsibilities',\r\n id: 'key_responsibilities',\r\n description: 'Displays all responsibilities that are due on a particular day.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/key-responsibilities.png',\r\n tabOption: true,\r\n value: 0,\r\n },\r\n {\r\n title: 'Trend Analysis',\r\n id: 'trend_analysis_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/trend-analysis.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Workroom Updates',\r\n id: 'workroom_alert_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/workroom-updates.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Recent Activities',\r\n id: 'recent_activity_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/recent-activities.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Exception Summary',\r\n id: 'exception_summary_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/exception-summary.png',\r\n value: 0,\r\n }\r\n ];\r\n\r\n\r\n\r\n riskWidgetsData = [\r\n {\r\n title: 'Risk Overview',\r\n id: 'risk_overview',\r\n description: 'description',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-overview.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/risk-overview.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Risk Appetite & Tolerance',\r\n id: 'risk_appetite_tolerance',\r\n description: 'description',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/appetite-tolerance.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Risk Ratings',\r\n id: 'risk_ratings',\r\n description: 'Description.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Risks Without Controls',\r\n id: 'risks_without_controls',\r\n description: 'Description',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',\r\n value: 0,\r\n }, \r\n {\r\n title: 'Risks Exceeding Risk Tolerance',\r\n id: 'exceeds_risk_tolerance',\r\n description: 'description',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Inherent Risk Rating by Responsibility Centers ',\r\n id: 'inherent_risk_rating_by_responsibility_centers',\r\n description: 'Description.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-RC.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/inherent-RC.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Residual Risk Rating by Responsibility Centers ',\r\n id: 'residual_risk_rating_by_responsibility_centers',\r\n description: 'Description.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-RC.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/residual-RC.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Risk Category Overview',\r\n id: 'risk_category_overview',\r\n description: 'description',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-category-overview.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/risk-category-overview.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Risk Heatmap',\r\n id: 'risk_heatmap',\r\n description: 'Description.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-heatmap.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Inherent Risk Rating by Categories',\r\n id: 'inherent_risk_rating_by_categories',\r\n description: 'Description.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-categories.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/inherent-categories.png',\r\n value: 0,\r\n },\r\n \r\n {\r\n title: 'Residual Risk Rating by Categories',\r\n id: 'residual_risk_rating_by_categories',\r\n description: 'description',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-categories.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/residual-categories.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Inherent Risk Rating Trend by Responsibility Centers',\r\n id: 'inherent_risk_rating_trend_by_responsibility_centers',\r\n description: 'Description.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-trend.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Residual Risk Rating Trend by Responsibility Centers',\r\n id: 'residual_risk_rating_trend_by_responsibility_centers',\r\n description: 'Description.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-trend.png',\r\n value: 0,\r\n }, \r\n {\r\n title: 'Risk Rating Trend by Categories',\r\n id: 'risk_rating_trend_by_categories',\r\n description: 'Description.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-trend.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Top 5 Risk Ratings',\r\n id: 'top_5_residual_risk_ratings',\r\n description: 'Description.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/5-risk-ratings.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/10-risk-ratings.png',\r\n value: 0,\r\n },\r\n ];\r\n auditWidgetsData = [];\r\n policyWidgetsData = [];\r\n\r\n\r\n // For dashboard view\r\n dashBoardWidgetUpdate(widGetJson: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.put(this.env.OrganizationPut + 'dashboardWidgets', widGetJson).pipe(retry(2));\r\n }\r\n\r\n moduleType(identifier:string){\r\n if(JSON.stringify(this.complianceWidgetsData).includes(identifier)){\r\n return 'COMPLIANCE'\r\n }else if(JSON.stringify(this.riskWidgetsData).includes(identifier)){\r\n return 'RISK'\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-radio',\r\n templateUrl: './cs-radio.component.html',\r\n styleUrls: ['./cs-radio.component.less'],\r\n})\r\nexport class CsRadioComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() readonly!: boolean;\r\n @Input() name!: string;\r\n @Input() checked!: boolean;\r\n @Input() value: any;\r\n @Output() checkedEvent = new EventEmitter();\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n changeState(evt: any) {\r\n this.checkedEvent.emit(evt);\r\n }\r\n}\r\n","<label class=\"radio-item\" [class.readonly]=\"readonly\">\r\n <input type=\"radio\" [disabled]=\"disabled\" [name]=\"name\" [value]=\"value\" [checked]=\"checked\" (change)=\"changeState($event)\" />\r\n <span class=\"radio\">\r\n <span class=\"inner\"></span>\r\n </span>\r\n <svg class=\"radiomark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"radiomark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <circle class=\"radiomark__check\" cx=\"26\" cy=\"26\" r=\"5\" fill=\"none\" />\r\n </svg>\r\n <span class=\"value\"><ng-content></ng-content></span>\r\n</label>\r\n","import { Directive, Input, ElementRef, HostListener, Renderer2, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[arTooltip]',\r\n})\r\nexport class ToolTipDirective implements OnInit {\r\n @Input('arTooltip') tooltipTitle!: string;\r\n @Input() placement!: string;\r\n @Input() type: any;\r\n @Input() tooltipMandatory!: boolean;\r\n @Input() showTooltip = true;\r\n @Input() animate!: boolean;\r\n tooltip!: HTMLElement;\r\n offset = 8;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n ngOnInit() {}\r\n @HostListener('mouseenter') onMouseEnter() {\r\n this.hide();\r\n this.show();\r\n }\r\n @HostListener('mouseover') onMouseOver() {\r\n this.hide();\r\n this.show();\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n this.hide();\r\n }\r\n @HostListener('mouseout') onMouseOut() {\r\n this.hide();\r\n }\r\n @HostListener('click') onClick() {\r\n this.hide();\r\n }\r\n show() {\r\n if (!this.showTooltip) {\r\n return;\r\n }\r\n this.create();\r\n const element = this.el.nativeElement;\r\n if (this.tooltipMandatory === true) {\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip-show');\r\n } else {\r\n if (element.scrollWidth * element.scrollHeight > element.offsetWidth * element.offsetHeight) {\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip-show');\r\n }\r\n }\r\n }\r\n\r\n hide() {\r\n if (document.body.contains(this.tooltip)) {\r\n if (this.renderer) {\r\n this.renderer.removeChild(document.body, document.getElementById('tooltip'));\r\n }\r\n }\r\n }\r\n\r\n create() {\r\n this.tooltip = this.renderer.createElement('span');\r\n this.tooltip.setAttribute('id', 'tooltip');\r\n this.tooltip.innerHTML = this.tooltipTitle;\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip');\r\n this.renderer.addClass(this.tooltip, `ng-tooltip-${this.placement}`);\r\n this.renderer.addClass(this.tooltip, `${this.type}`);\r\n if (this.animate) {\r\n this.renderer.addClass(this.tooltip, `animate-${this.placement}`);\r\n }\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltip.getBoundingClientRect();\r\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n const w = window.innerWidth;\r\n const h = window.innerHeight;\r\n let top;\r\n let left;\r\n if (this.placement === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.placement === 'bottom') {\r\n if (hostPos.top + tooltipPos.height > h) {\r\n top = hostPos.top - tooltipPos.height;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n this.renderer.removeClass(this.tooltip, `ng-tooltip-bottom`);\r\n this.renderer.addClass(this.tooltip, `ng-tooltip-top`);\r\n } else {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n }\r\n\r\n if (this.placement === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.placement === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n if (this.placement === 'bottom-right') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left - (tooltipPos.width - 28);\r\n }\r\n if (this.placement === 'bottom-left') {\r\n if (hostPos.top + tooltipPos.height > h - 30) {\r\n top = hostPos.top - tooltipPos.height;\r\n console.log('bottom left', hostPos.top - tooltipPos.height);\r\n left = hostPos.left;\r\n this.renderer.removeClass(this.tooltip, `ng-tooltip-bottom-left`);\r\n this.renderer.addClass(this.tooltip, `ng-tooltip-top-left`);\r\n } else {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left;\r\n }\r\n }\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { Observable, Subject } from 'rxjs';\r\n\r\nexport class DialogRef {\r\n private readonly afterDialogClosed = new Subject<any>();\r\n afterClosed: Observable<any> = this.afterDialogClosed.asObservable();\r\n constructor() {}\r\n\r\n close(result?: any) {\r\n this.afterDialogClosed.next(result);\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@Component({\r\n selector: 'app-popover',\r\n templateUrl: './popover.component.html',\r\n styleUrls: ['./popover.component.less'],\r\n})\r\nexport class PopoverComponent implements OnInit {\r\n @Input() dontCloseonClick = false;\r\n popoverContainer = false;\r\n @ViewChild('popoverRatio') popoverRatio!: ElementRef;\r\n @ViewChild('popoverContent') popoverContent!: ElementRef;\r\n @Output() closedOnOverlay = new EventEmitter();\r\n constructor(public popoverService: PopoverService) {}\r\n showPopover = false;\r\n leftValue: any;\r\n topValue: any;\r\n popoverHeight: any;\r\n popoverWidth: any;\r\n positionX!: number;\r\n positionY!: number;\r\n ngOnInit(): void {}\r\n popover() {\r\n this.popoverContainer = false;\r\n this.popoverContainer = true;\r\n setTimeout(() => {\r\n this.getPosition();\r\n this.showPopover = true;\r\n this.popoverService.stopScroll = true;\r\n // document.body.style.overflow = 'hidden';\r\n }, 10);\r\n return false;\r\n }\r\n popoverEvent() {\r\n this.popoverContainer = false;\r\n this.popoverContainer = true;\r\n setTimeout(() => {\r\n // this.getPosition();\r\n this.positionX = this.popoverService.positionX;\r\n this.positionY = this.popoverService.positionY;\r\n this.showPopover = true;\r\n this.popoverService.stopScroll = true;\r\n\r\n }, 10);\r\n return false;\r\n }\r\n closePopover(top?: string) {\r\n if (!this.dontCloseonClick || top === 'top') {\r\n this.popoverContainer = false;\r\n this.showPopover = false;\r\n this.popoverService.stopScroll = false;\r\n // document.body.style.overflow = 'auto';\r\n }\r\n }\r\n\r\n close(){\r\n this.popoverContainer = false;\r\n this.showPopover = false;\r\n this.popoverService.stopScroll = false;\r\n }\r\n\r\n clickedPopover() {\r\n this.getPosition();\r\n }\r\n getPosition() {\r\n // setTimeout(() => {\r\n const elementPositionn = this.popoverService.elementPosition;\r\n this.popoverHeight = this.popoverRatio.nativeElement.offsetHeight;\r\n this.popoverWidth = this.popoverRatio.nativeElement.offsetWidth;\r\n if (this.popoverService.elementDirection === 'left') {\r\n this.leftValue = elementPositionn.left;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'right') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverWidth;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'top') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'bottom') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'self-position') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\r\n this.topValue = elementPositionn.top - 15;\r\n }\r\n if (this.popoverService.elementDirection === 'top-center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\r\n // this.topValue = elementPositionn.top - this.popoverHeight;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight) {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n } else {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n this.positionX = this.leftValue;\r\n this.positionY = this.topValue;\r\n // }, 10);\r\n }\r\n}\r\n","<div class=\"popover-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\r\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\r\n <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@Directive({\r\n selector: '[appPopover]',\r\n})\r\nexport class PopoverDirective {\r\n dynamicComponent: any;\r\n @Input() refrence: any;\r\n @Input() placement!: string;\r\n leftValue: any;\r\n topValue: any;\r\n constructor(private elRef: ElementRef, private popoverService: PopoverService) {}\r\n @HostListener('click') click() {\r\n this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\r\n this.popoverService.elementDirection = this.placement;\r\n // this.getPosition();\r\n }\r\n\r\n getPosition() {\r\n setTimeout(() => {\r\n // this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\r\n const elementPositionn = this.elRef.nativeElement.getBoundingClientRect();\r\n if (this.placement === 'left') {\r\n this.leftValue = elementPositionn.left;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.placement === 'right') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverService.popoverWidth;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.placement === 'top') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n }\r\n }\r\n if (this.placement === 'bottom') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.placement === 'self-position') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\r\n this.topValue = elementPositionn.top - 15;\r\n }\r\n if (this.placement === 'top-center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n }\r\n if (this.placement === 'bottom-center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\r\n this.topValue = elementPositionn.top + this.popoverService.popoverHeight;\r\n }\r\n this.popoverService.positionX = this.leftValue;\r\n this.popoverService.positionY = this.topValue;\r\n }, 10);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SnackBarService } from '../snack-bar/snack-bar.service';\r\n\r\n@Component({\r\n selector: 'floating-bar',\r\n templateUrl: './floating-bar.component.html',\r\n styleUrls: ['./floating-bar.component.less']\r\n})\r\nexport class FloatingBarComponent implements OnInit {\r\n @Output() cancelEvent = new EventEmitter<string>();\r\n @Output() submitEvent = new EventEmitter<string>();\r\n @Output() deleteEvent: EventEmitter<number> = new EventEmitter();\r\n @Input() text!: boolean;\r\n @Input() frequencyMessage: any;\r\n @Input() singleCategory: any;\r\n @Input() selectedData: any;\r\n\r\n constructor(private snackBar: SnackBarService\r\n ) {\r\n this.selectedData = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n cancelFloatingBar() {\r\n this.cancelEvent.emit();\r\n }\r\n submitFloatingBar() {\r\n if (this.selectedData.length < 1) {\r\n this.snackBar.show('Select a widget.','alert');\r\n return\r\n }\r\n this.submitEvent.emit(this.selectedData);\r\n }\r\n\r\n deleteSelected(index: number) {\r\n this.deleteEvent.emit(index);\r\n }\r\n\r\n}\r\n","<div class=\"lib-floating-bar-container\">\r\n <div class=\"lib-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3\">\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"text && !frequencyMessage && !singleCategory\">\r\n <span class=\"value\">This audit plan needs to be <strong>reviewed</strong> within 2 days after it has been completed.</span>\r\n </div>\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"frequencyMessage && !text\">\r\n <span class=\"value\" [innerHTML]=\"frequencyMessage\"></span>\r\n </div>\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"singleCategory && !frequencyMessage && !text\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"singleCategory\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{singleCategory}}</span>\r\n </div>\r\n </div>\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"!singleCategory && !text && !frequencyMessage\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\" *ngIf=\"selectedData.length\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteSelected(selectedData[0])\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"selectedData[0]?.title\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedData[0]?.title}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"countPopup.popover()\" placement=\"left\" *ngIf=\"selectedData?.length > 1\">+{{selectedData?.length - 1}}</button>\r\n </div>\r\n \r\n <span class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"(selectedData?.length - 1) === 1\">Widget Selected</span>\r\n <span class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"(selectedData?.length - 1) > 1\">Widgets Selected</span>\r\n\r\n <app-popover #countPopup [dontCloseonClick]=\"true\">\r\n <div class=\"lib-floating-bar-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let data of selectedData | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"data?.title\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"><i class=\"icons cross-icon vx-mr-2\" (click)=\"deleteSelected(data)\"></i>{{data?.title}}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n <div class=\"right vx-d-flex vx-align-center\">\r\n <button class=\"cancel-btn\" (click)=\"cancelFloatingBar()\">Cancel</button>\r\n <!-- <button class=\"vx-bg-blue vx-txt-white vx-fw-500 vx-tt-uppercase\" (click)=\"submitFloatingBar()\">Update</button> -->\r\n <button class=\"save-btn\" (click)=\"submitFloatingBar()\">Save</button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-checkbox',\r\n templateUrl: './cs-checkbox.component.html',\r\n styleUrls: ['./cs-checkbox.component.less'],\r\n})\r\nexport class CsCheckboxComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() ngValue: any;\r\n @Input() value: any;\r\n @Output() ngValueChange = new EventEmitter<any>();\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n valueChanged() {\r\n this.ngValueChange.emit(this.ngValue);\r\n }\r\n}\r\n","<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\r\n <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\r\n <span class=\"checkbox\">\r\n <span class=\"inner\"></span>\r\n </span>\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n <span class=\"value\"><ng-content></ng-content></span>\r\n</label>\r\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-no-data',\r\n templateUrl: './no-data.component.html',\r\n styleUrls: ['./no-data.component.less'],\r\n})\r\nexport class NoDataComponent implements OnInit {\r\n @Input() action!: any;\r\n @Input() noDataImage!: string;\r\n @Input() noDataText = '';\r\n @Input() noDataButton!: string | boolean;\r\n @Input() noDataSecButton!: string | boolean;\r\n @Input() altText!: string;\r\n @Output() buttonAction = new EventEmitter<object>();\r\n @Input() smallButton!: boolean;\r\n @Input() buttonIcon!: any;\r\n @Input() iconClass!: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n actionEmitter(button: object) {\r\n this.buttonAction.emit(button);\r\n }\r\n}\r\n","<div class=\"no-data-wrapper\">\r\n <div class=\"no-data-container\">\r\n <img [src]=\"noDataImage\" [alt]=\"altText\" class=\"image\" />\r\n <p class=\"text\" [innerHTML]=\"noDataText\" *ngIf=\"noDataText\"></p>\r\n <div class=\"button-row\" *ngFor=\"let button of action\">\r\n <button *ngIf=\"!button?.buttonIcon\" (click)=\"actionEmitter(button)\" [innerHTML]=\"button?.buttonText\"\r\n [class.small]=\"smallButton\"></button>\r\n <button *ngIf=\"button?.buttonIcon\" (click)=\"actionEmitter(button)\" [class.small]=\"smallButton\">\r\n <i class=\"icons\" [innerHTML]=\"button?.buttonIcon\"></i> <span\r\n [innerHTML]=\"button?.buttonText\"></span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'search'\r\n})\r\nexport class SearchPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n if (!value) {\r\n return null;\r\n }\r\n if (!args) {\r\n return value;\r\n }\r\n\r\n args = args.toLowerCase();\r\n\r\n return value.filter((item: any) => {\r\n return JSON.stringify(item).toLowerCase().includes(args);\r\n });\r\n }\r\n\r\n}\r\n","import { ConfigureWidgetsService } from '../../services/configure-widgets.service';\r\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { retry } from 'rxjs/operators';\r\nimport { widgetDataModel } from '../../interfaces/widget-data-model';\r\nimport { DialogRef } from '../../../ui-kit/dialog/dialog-ref';\r\nimport { widgetConfig } from './widget.interface';\r\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\r\n\r\n@Component({\r\n selector: 'app-configure-widgets',\r\n templateUrl: './configure-widgets.component.html',\r\n styleUrls: ['./configure-widgets.component.less']\r\n})\r\nexport class ConfigureWidgetsComponent implements OnInit, OnChanges {\r\n\r\n @Output() widgetsDataModified: EventEmitter<any> = new EventEmitter();\r\n @Output() closeConfigureWidgets: EventEmitter<any> = new EventEmitter();\r\n checkboxStatus!: any;\r\n search: string = '';\r\n checkedArray: Array<{ index: number, status: number }> = [];\r\n selectedWidgets: Array<widgetDataModel> = [];\r\n\r\n module: \"COMPLIANCE\" | \"RISK\" = 'COMPLIANCE';\r\n @Input() selectedWidgetsData: any = [];\r\n @Input() displayedWidgets: any = [];\r\n @Input() showRisk = false;\r\n @Input() showCompliance = false;\r\n @Input() mode = 'CREATE'\r\n noDataText = 'You have not configured any widgets. Click on the <strong>Configure Widgets</strong> button to begin.';\r\n\r\n selectedWidgetIds: any = [];\r\n subResponsibilitiesSelected: boolean = false\r\n subKeyResponsibilitiesSelected: boolean = false\r\n showWidgets = true;\r\n complianceWidgetsDisplayCount = 9;\r\n riskWidgetsDisplayCount = 9;\r\n\r\n\r\n constructor(\r\n private dialog: DialogRef,\r\n public configureWidgetsService: ConfigureWidgetsService,\r\n private snackBar: SnackBarService) {\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.mode == 'EDIT') {\r\n this.setWidgetsVisibilityToFalse()\r\n this.riskWidgetsDisplayCount = 0;\r\n this.complianceWidgetsDisplayCount = 0;\r\n const finalData = [...new Set(this.displayedWidgets)];\r\n finalData.forEach((element: any, index: any) => {\r\n this.widgetsList.COMPLIANCE.forEach((ele: any) => {\r\n if (ele.id == element.widget_code) {\r\n ele.visibility = true;\r\n if (ele.subWidgets.length > 0) {\r\n const filterData: any = []\r\n element.sub_widgets.filter((subwidget: any) => {\r\n filterData.push(subwidget.widget_code);\r\n });\r\n ele.subWidgets.forEach((subElement: any, subIndex: number) => {\r\n if (filterData.includes(subElement.id)) {\r\n ele.subWidgets[subIndex].visibility = true;\r\n } else {\r\n ele.subWidgets[subIndex].visibility = false;\r\n }\r\n });\r\n }\r\n this.complianceWidgetsDisplayCount++\r\n }\r\n })\r\n this.widgetsList.RISK.forEach((ele: any) => {\r\n if (ele.id == element.widget_code) {\r\n ele.visibility = true;\r\n if (ele.subWidgets.length > 0) {\r\n const filterData: any = []\r\n element.sub_widgets.filter((subwidget: any) => {\r\n filterData.push(subwidget.widget_code);\r\n });\r\n ele.subWidgets.forEach((subElement: any, subIndex: number) => {\r\n if (filterData.includes(subElement.id)) {\r\n ele.subWidgets[subIndex].visibility = true;\r\n } else {\r\n ele.subWidgets[subIndex].visibility = false;\r\n }\r\n });\r\n\r\n }\r\n this.riskWidgetsDisplayCount++\r\n }\r\n })\r\n });\r\n }\r\n const data = [...new Set(this.selectedWidgetsData)];\r\n data.forEach((element: any, index: any) => {\r\n this.widgetsList.COMPLIANCE.forEach((ele: any) => {\r\n if (ele.id == element.widget_code && element.state == 'ACTIVE') {\r\n ele.value = true;\r\n if (ele.subWidgets.length > 0) {\r\n const filterData: any = []\r\n element.sub_widgets.filter((subwidget: any) => {\r\n if (subwidget.state == 'ACTIVE') {\r\n filterData.push(subwidget.widget_code);\r\n }\r\n });\r\n ele.subWidgets.forEach((subElement: any, subIndex: number) => {\r\n if (filterData.includes(subElement.id)) {\r\n ele.subWidgets[subIndex].value = true;\r\n } else {\r\n ele.subWidgets[subIndex].value = false;\r\n }\r\n });\r\n\r\n }\r\n this.selectedWidgets.push(ele);\r\n\r\n }\r\n })\r\n this.widgetsList.RISK.forEach((ele: any) => {\r\n if (ele.id == element.widget_code && element.state == 'ACTIVE') {\r\n ele.value = true;\r\n if (ele.subWidgets.length > 0) {\r\n const filterData: any = []\r\n element.sub_widgets.filter((subwidget: any) => {\r\n if (subwidget.state == 'ACTIVE') {\r\n filterData.push(subwidget.widget_code);\r\n }\r\n });\r\n ele.subWidgets.forEach((subElement: any, subIndex: number) => {\r\n if (filterData.includes(subElement.id)) {\r\n ele.subWidgets[subIndex].value = true;\r\n } else {\r\n ele.subWidgets[subIndex].value = false;\r\n }\r\n });\r\n\r\n }\r\n this.selectedWidgets.push(ele);\r\n\r\n }\r\n })\r\n\r\n });\r\n this.module = (this.showCompliance) ? 'COMPLIANCE' : 'RISK';\r\n this.setSelectedWidgets();\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n\r\n widgetsList = {\r\n COMPLIANCE: [\r\n {\r\n title: 'Overview',\r\n id: 'overview',\r\n description: 'Overview shows the performance of responsibilities and Programs.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/overview.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Responsibility Calendar',\r\n id: 'compliance_calendar_flag',\r\n description: 'The Responsibility Calendar shows the due dates of responsibilities in a calendar format. The responsibilities are color coded to reflect the status of the responsibilities.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/responsibility-calender.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Responsibility Center Overview',\r\n id: 'responsibility_center_overview_flag',\r\n description: 'The Responsibility Center Overview shows the performance of responsibilities and Responsibility Centers.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/responsibility-center-overview.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Responsibilities',\r\n id: 'my_responsibilities',\r\n description: 'This widget shows the performance of the responsibilities that you are required to complete, the responsibilities that you are reviewing and the responsibilities that you are overseeing.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/my-responsibilities.png',\r\n tabOption: true,\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: [\r\n {\r\n title: 'My Responsibilities',\r\n id: 'my_responsibility_flag',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'I’m Reviewing',\r\n id: 'reviewer_responsibility_flag',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'I’m Overseeing',\r\n id: 'cc_responsibility_flag',\r\n value: false,\r\n visibility:true,\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Key Responsibilities',\r\n id: 'key_responsibilities',\r\n description: 'This widget shows the performance of key responsibilities that you are required to complete, that you are reviewing, that you are overseeing and that you have assigned to another person.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/key-responsibilities.png',\r\n tabOption: true,\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: [\r\n {\r\n title: 'Overview',\r\n id: 'key_responsibilities_overview_flag',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'My Responsibilities',\r\n id: 'key_my_responsibilities_flag',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'I’m Reviewing',\r\n id: 'key_i_am_reviewing_flag',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'I’m Overseeing',\r\n id: 'key_i_am_overseeing_flag',\r\n value: false,\r\n visibility:true,\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Trend Analysis',\r\n id: 'trend_analysis_flag',\r\n description: 'The Trend Analysis is a graphical representation of the performance of responsibilities over a period.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/trend-analysis.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Workroom Updates',\r\n id: 'workroom_alert_flag',\r\n description: 'The Responsibility Workroom shows updates from the Responsibility Workrooms. A Responsibility Workroom exists for all responsibilities.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/workroom-updates.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Recent Activities',\r\n id: 'recent_activity_flag',\r\n description: 'This is a chronological view of the recent updates of responsibilities.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/recent-activities.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Exception Summary',\r\n id: 'exception_summary_flag',\r\n description: 'Exceptions Summary show the number of responsibilities that are either not accepted, not completed or deleted.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/exception-summary.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n }\r\n ],\r\n RISK: [\r\n {\r\n title: 'Risk Overview',\r\n id: 'risk_overview',\r\n description: 'This widget shows the number and percentage of risks within each risk response strategy.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-overview.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/risk-overview.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Risk Metrics',\r\n id: 'risk_metrics',\r\n description: 'This widget shows the number of risks within each risk appetite, the number of risks that exceed the risk appetite, the number of risks that exceed the risk tolerance, the number of risks within each risk rating, and the number of risks that do not have any linked controls.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/appetite-tolerance.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: [\r\n {\r\n title: 'Risk Appetite & Tolerance',\r\n id: 'risk_appetite_tolerance',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'Risk Ratings',\r\n id: 'risk_ratings',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'Risks Without Controls',\r\n id: 'risks_without_controls',\r\n value: false,\r\n visibility:true,\r\n },\r\n // {\r\n // title: 'Exceeds Risk Tolerance',\r\n // id: 'exceeds_risk_tolerance',\r\n // value: false,\r\n // visibility:true,\r\n // },\r\n ]\r\n },\r\n\r\n {\r\n title: 'Inherent Risk Rating by Responsibility Centers ',\r\n id: 'inherent_risk_rating_by_responsibility_centers',\r\n description: 'This widget shows the number of risks within each inherent risk rating, grouped according to the Responsibility Center exposed to the risk.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-RC.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/inherent-RC.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Residual Risk Rating by Responsibility Centers ',\r\n id: 'residual_risk_rating_by_responsibility_centers',\r\n description: 'This widget shows the number of risks within each residual risk rating, grouped according to the Responsibility Center exposed to the risk.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-RC.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/residual-RC.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Risk Category Overview',\r\n id: 'risk_category_overview',\r\n description: 'This widgets shows the number of risks within each status, grouped according to the Risk Category the risk is assigned to.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-category-overview.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/risk-category-overview.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Risk Heatmap',\r\n id: 'risk_heatmap',\r\n description: 'The Risk Heatmap displays the risk matrix for any two risk factors.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-heatmap.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Inherent Risk Rating by Categories',\r\n id: 'inherent_risk_rating_by_categories',\r\n description: 'This widget shows the number of risks within each inherent risk rating, grouped according to the Risk Category that the risk is assigned to.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-categories.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/inherent-categories.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n\r\n {\r\n title: 'Residual Risk Rating by Categories',\r\n id: 'residual_risk_rating_by_categories',\r\n description: 'This widget shows the number of risks within each residual risk rating, grouped according to the Risk Category that the risk is assigned to.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-categories.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/residual-categories.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n // {\r\n // title: 'Inherent Risk Rating Trend by Responsibility Centers',\r\n // id: 'inherent_risk_rating_trend_by_responsibility_centers',\r\n // description: 'This widget is a graphical representation of the number of risks within each inherent risk rating, grouped according to the Responsibility Center exposed to the risk.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-trend.png',\r\n // value: false,\r\n // visibility:true,\r\n // module: 'RISK',\r\n // subWidgets: []\r\n // },\r\n // {\r\n // title: 'Residual Risk Rating Trend by Responsibility Centers',\r\n // id: 'residual_risk_rating_trend_by_responsibility_centers',\r\n // description: 'This widget is a graphical representation of the number of risks within each residual risk rating, grouped according to the Responsibility Center exposed to the risk.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-trend.png',\r\n // value: false,\r\n // visibility:true,\r\n // module: 'RISK',\r\n // subWidgets: []\r\n // },\r\n // {\r\n // title: 'Risk Rating Trend by Categories',\r\n // id: 'risk_rating_trend_by_categories',\r\n // description: 'This widgets is a trend chart that shows the inherent and residual risk rating trend across the different Risk Categories.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-trend.png',\r\n // value: false,\r\n // visibility:true,\r\n // module: 'RISK',\r\n // subWidgets: []\r\n // },\r\n {\r\n title: 'Top 10 Risk Ratings',\r\n id: 'top_10_residual_risk_ratings',\r\n description: 'This widgets shows ths top five risks with the highest risk rating.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/5-risk-ratings.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/10-risk-ratings.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n }\r\n ]\r\n }\r\n\r\n selectWidget(event: any, module: 'COMPLIANCE' | 'RISK', widgetId: string, subWidgetId?: string) {\r\n const widgetIndex = this.widgetsList[module].findIndex((ele: any) => ele.id == widgetId);\r\n const isSubWidgetAddable = this.selectedWidgets.findIndex(( widget: any) => widget.id === widgetId )\r\n if (event) {\r\n if (this.selectedWidgets.length >= 10 && !(subWidgetId && isSubWidgetAddable >= 0)) {\r\n this.snackBar.show('You cannot add more than 10 widgets.','alert');\r\n this.showWidgets = false;\r\n setTimeout(() => {\r\n this.widgetsList[module][widgetIndex].value = false;\r\n this.showWidgets = true;\r\n }, 10);\r\n return\r\n }\r\n this.widgetsList[module][widgetIndex].value = true;\r\n if (this.widgetsList[module][widgetIndex].subWidgets.length > 0) {\r\n if (!subWidgetId) {\r\n this.widgetsList[module][widgetIndex].subWidgets.forEach(ele => ele.value = true);\r\n } else {\r\n const subWidgetIndex = this.widgetsList[module][widgetIndex].subWidgets.findIndex((ele: any) => ele.id == subWidgetId);\r\n this.widgetsList[module][widgetIndex].subWidgets[subWidgetIndex].value = true;\r\n }\r\n }\r\n } else {\r\n if (this.widgetsList[module][widgetIndex].subWidgets.length > 0) {\r\n if (!subWidgetId) {\r\n this.widgetsList[module][widgetIndex].value = false;\r\n this.widgetsList[module][widgetIndex].subWidgets.forEach((ele: any) => ele.value = false);\r\n } else {\r\n const subWidgetIndex = this.widgetsList[module][widgetIndex].subWidgets.findIndex((ele: any) => ele.id == subWidgetId);\r\n this.widgetsList[module][widgetIndex].subWidgets[subWidgetIndex].value = false;\r\n\r\n const isAllWidgetsRemoved = this.widgetsList[module][widgetIndex].subWidgets.every((ele: any) => ele.value == false);\r\n if (isAllWidgetsRemoved) {\r\n this.widgetsList[module][widgetIndex].value = false;\r\n }\r\n }\r\n } else {\r\n this.widgetsList[module][widgetIndex].value = false;\r\n }\r\n }\r\n this.setSelectedWidgets();\r\n\r\n }\r\n setSelectedWidgets() {\r\n this.selectedWidgets = []\r\n this.widgetsList.COMPLIANCE.forEach((ele: any) => {\r\n if (ele.value) {\r\n this.selectedWidgets.push(ele)\r\n }\r\n })\r\n this.widgetsList.RISK.forEach((ele: any) => {\r\n if (ele.value) {\r\n this.selectedWidgets.push(ele)\r\n }\r\n })\r\n }\r\n\r\n removeWidget(widget: widgetConfig) {\r\n const widgetIndex = this.widgetsList[widget.module].findIndex((ele: any) => ele.id == widget.id);\r\n this.widgetsList[widget.module][widgetIndex].value = false;\r\n if (this.widgetsList[widget.module][widgetIndex].subWidgets.length > 0) {\r\n this.widgetsList[widget.module][widgetIndex].subWidgets.forEach((ele: any) => ele.value = false);\r\n }\r\n this.setSelectedWidgets()\r\n }\r\n\r\n onNextClick() {\r\n this.widgetsDataModified.emit(this.selectedWidgets);\r\n }\r\n\r\n closeConfigureDashboard() {\r\n this.selectedWidgets = [];\r\n this.dialog.close();\r\n this.closeConfigureWidgets.emit(false);\r\n }\r\n\r\n setWidgetsVisibilityToFalse(){\r\n this.widgetsList.COMPLIANCE.forEach((ele: any) => {\r\n ele.visibility = false;\r\n if (ele.subWidgets.length > 0) { \r\n ele.subWidgets.forEach((subElement: any) => { \r\n subElement.visibility = false;\r\n });\r\n }\r\n })\r\n this.widgetsList.RISK.forEach((ele: any) => {\r\n ele.visibility = false;\r\n if (ele.subWidgets.length > 0) {\r\n ele.subWidgets.forEach((subElement: any) => {\r\n subElement.visibility = false;\r\n });\r\n }\r\n })\r\n }\r\n}\r\n","<div class=\"configure-widgets vx-d-block\" *ngIf=\"showWidgets\">\r\n <div class=\"configure-widgets-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"configure-widgets-title vx-fs-14 vx-fw-500 vx-label-txt\">Configure Widgets</div>\r\n <button class=\"configure-widgets-back vx-fs-14 vx-fw-500 vx-label-txt vx-m-0 vx-p-0 vx-d-inline-flex vx-align-center\" (click)=\"closeConfigureDashboard()\">\r\n <i class=\"icons vx-fs-16\"></i> Back\r\n </button>\r\n </div>\r\n <div class=\"configure-widgets-body\">\r\n <div class=\"configure-widgets-tab\">\r\n <ul>\r\n <li [class.active]=\"module === 'COMPLIANCE'\" *ngIf=\"showCompliance\" (click)=\"module='COMPLIANCE'\">\r\n <button>Compliance<span>{{complianceWidgetsDisplayCount}}</span></button></li>\r\n <li [class.active]=\"module === 'RISK'\" *ngIf=\"showRisk\"><button\r\n (click)=\"module='RISK'\">Risks<span>{{riskWidgetsDisplayCount}}</span></button></li>\r\n </ul>\r\n </div>\r\n <div class=\"configure-widgets-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" placeholder=\"Search widgets\" [(ngModel)]=\"search\">\r\n </div>\r\n <div class=\"configure-widgets-list vx-d-flex vx-flex-wrap\" *ngIf=\"(widgetsList[module] | search:search).length !== 0\">\r\n <ng-container *ngFor=\"let widget of widgetsList[module] | search:search\">\r\n <div class=\"configure-widgets-item\" *ngIf=\"widget?.visibility\">\r\n <label class=\"block\">\r\n <input type=\"checkbox\" [checked]=\"widget.value\"\r\n (change)=\"selectWidget($event.target.checked,module,widget.id)\">\r\n <div class=\"check-icon\">\r\n <svg class=\"check\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"check-circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"check-circle\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"configure-widgets-item-head\">\r\n <h4 class=\"configure-widgets-item-title\" [innerHTML]=\"widget?.title\"></h4>\r\n <p class=\"configure-widgets-item-description\" [innerHTML]=\"widget?.description\"></p>\r\n <button *ngIf=\"!widget.value\" class=\"configure-widgets-item-button add\"\r\n (click)=\"selectWidget(true,module,widget.id) \">+ ADD</button>\r\n <button *ngIf=\"widget.value\" class=\"configure-widgets-item-button remove\"\r\n (click)=\"selectWidget(false,module,widget.id) \">- Remove</button>\r\n </div>\r\n <div class=\"configure-widgets-item-body\">\r\n <div class=\"image-wrapper\">\r\n <img [src]=\"widget?.widgetImage\" alt=\"\">\r\n </div>\r\n <div class=\"floating-option vx-d-flex\" *ngIf=\"widget?.subWidgets?.length>0\">\r\n <ng-container *ngFor=\"let subWidget of widget.subWidgets\">\r\n <app-cs-checkbox *ngIf=\"subWidget.visibility\"\r\n (ngValueChange)=\"selectWidget($event, module,widget.id,subWidget.id)\"\r\n [ngValue]=\"subWidget.value\">{{subWidget.title}}\r\n </app-cs-checkbox>\r\n </ng-container>\r\n \r\n </div>\r\n\r\n </div>\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- No Data Image -->\r\n\r\n </div>\r\n <app-no-data *ngIf=\"(widgetsList[module] | search:search).length === 0 \"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/configure-widget/assets/images/configure-widget.svg'\"\r\n [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n\r\n <floating-bar (submitEvent)=\"onNextClick()\" (cancelEvent)=\"closeConfigureDashboard()\" [selectedData]=\"selectedWidgets\" (deleteEvent)=\"removeWidget($event)\"></floating-bar>\r\n </div>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader-inline',\r\n templateUrl: './loader-inline.component.html',\r\n styleUrls: ['./loader-inline.component.less'],\r\n})\r\nexport class LoaderInlineComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<!-- <p>loader-inline works!</p> -->\r\n<div class=\"inline-loader\">\r\n <div class=\"demo-loader\">\r\n <div class=\"demo-loader-colored-blocks\">\r\n <div class=\"demo-loader-colored-blocks-rotater\">\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n </div>\r\n <div class=\"demo-loader-colored-blocks-inner\"></div>\r\n </div>\r\n <div class=\"demo-loader-inner\">\r\n <svg\r\n width=\"30px\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n id=\"Layer_1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 16 16\"\r\n style=\"enable-background: new 0 0 16 16\"\r\n xml:space=\"preserve\"\r\n >\r\n <style type=\"text/css\">\r\n .st0 {\r\n fill: #9d1f24;\r\n }\r\n\r\n .st1 {\r\n fill: #d83b3f;\r\n }\r\n </style>\r\n <g>\r\n <path class=\"st0\" d=\"M2,12.3c0.5,0.3,1.1,0.4,1.8,0.2c0.9-0.3,1.4-1.1,1.5-1.1c-0.3-0.2-0.5-0.6-0.5-1.1V7.2 C4.5,4.6,1.1,3.8,1.1,3.8v7.3C1.1,11.2,1.3,11.9,2,12.3z\" />\r\n <path\r\n class=\"st1\"\r\n d=\"M9.9,3.5c-1.8,2.8-4.6,7.8-4.6,7.8s0,0,0,0c0,0.1-0.5,0.8-1.5,1.1c-0.7,0.2-1.3,0.1-1.8-0.2 c-0.6-0.4-0.9-1.1-0.9-1.1s-0.1,1.2,0.6,2.2C2,13.9,4,15.9,6.6,14.5c0.6-0.3,1.1-0.8,1.6-1.5c0.4-0.5,6.9-11.6,6.9-11.6 S11.7,0.5,9.9,3.5z\"\r\n />\r\n </g>\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { SnackBarService } from '../snack-bar.service';\r\n\r\n@Component({\r\n selector: 'app-snack-bar',\r\n templateUrl: './snack-bar.component.html',\r\n styleUrls: ['./snack-bar.component.less'],\r\n})\r\nexport class SnackBarComponent implements OnInit {\r\n show = false;\r\n message: string = '--';\r\n icon: string = '';\r\n type='alert'\r\n icons:any = {\r\n success:'',\r\n warning:'',\r\n info:'',\r\n alert:'',\r\n error:''\r\n }\r\n constructor(private snackbarService: SnackBarService) {}\r\n\r\n ngOnInit(): void {\r\n this.snackbarService.snackbarSubject.subscribe((state) => {\r\n if(state.icon && Object.keys(this.icons).includes(state?.icon)){\r\n this.icon = this.icons[state.icon];\r\n this.type = state?.icon;\r\n }\r\n this.message = state.message;\r\n this.show = state.show;\r\n setTimeout(() => {\r\n this.show = false;\r\n }, 3000);\r\n });\r\n }\r\n close() {\r\n this.show = false;\r\n }\r\n ngOnDestroy() {\r\n }\r\n}\r\n","<div class=\"snackbar\" *ngIf=\"show\">\r\n <div class=\"snackbar-inner\">\r\n <div class=\"snackbarText\">\r\n <!--  -->\r\n <i class=\"icons\" [class]=\"type\" [innerHTML]=\"icon\"></i> \r\n <span [innerHTML]=\"message\">{{ message }}</span>\r\n </div>\r\n <button (click)=\"close()\">[ <span>Close</span> ]</button>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Directive, ElementRef, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appScrollInView]'\r\n})\r\nexport class ScrollInViewDirective implements OnChanges {\r\n@Input() appScrollInView = false;\r\n constructor(private el: ElementRef) {\r\n }\r\nngOnChanges(change:SimpleChanges){\r\n if(change?.appScrollInView && change?.appScrollInView?.currentValue === true){\r\n this.scroll();\r\n }\r\n}\r\n ngAfterViewInit() {\r\n // Otherwise Angular throws error: Expression has changed after it was checked.\r\n this.scroll();\r\n }\r\n\r\n scroll(){\r\n if(this.appScrollInView){\r\n window.setTimeout(() => {\r\n this.el.nativeElement.scrollIntoView({behavior: 'smooth', block: 'center'});\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, EventEmitter, Output, HostListener } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-smiley-dialog',\r\n templateUrl: './smiley-dialog.component.html',\r\n styleUrls: ['./smiley-dialog.component.less'],\r\n})\r\nexport class SmileyDialogComponent implements OnInit {\r\n @Input() message!: string;\r\n @Input() autoClose!: boolean;\r\n @Input() actionButtons!: any[];\r\n @Output() action: EventEmitter<string> = new EventEmitter();\r\n @Output() closeSmiley: EventEmitter<any> = new EventEmitter();\r\n\r\n @HostListener('window:keyup', ['$event']) handleKeyboardEvent(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n this.smileyCloseEmitter({});\r\n }\r\n }\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n if (this.autoClose) {\r\n setTimeout(() => {\r\n this.close();\r\n }, 8000);\r\n }\r\n }\r\n close() {\r\n this.closeSmiley.emit();\r\n }\r\n\r\n actionEmitter(event: any) {\r\n this.action.emit(event?.id);\r\n }\r\n\r\n smileyCloseEmitter(event: any) {\r\n this.closeSmiley.emit();\r\n }\r\n}\r\n","<!-- active -->\r\n<div class=\"smiley-popup active\">\r\n <button class=\"close\" (click)=\"smileyCloseEmitter($event)\">\r\n <i class=\"icons\"></i>\r\n </button>\r\n <div class=\"smiley-container\">\r\n <div class=\"smiley\">\r\n <!-- active deactive -->\r\n <div class=\"smiley-circle active\">\r\n <div class=\"smiley-circle-inner\">\r\n <div class=\"eyes\">\r\n <div class=\"eye\"></div>\r\n <div class=\"eye\"></div>\r\n </div>\r\n <div class=\"mouth\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <h3>{{ message }}</h3>\r\n <div class=\"successSmilyButton\">\r\n <button *ngFor=\"let button of actionButtons\" (click)=\"actionEmitter(button)\" [class]=\"button?.class\">\r\n {{ button?.buttonText }}\r\n </button>\r\n </div>\r\n <!-- <div class=\"successSmilyButton\"> -->\r\n <!-- <button>White Button</button>\r\n <button class=\"blue-btn\">Blue Button</button> -->\r\n <!-- </div> -->\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../dashboard-footer-config';\r\n\r\n@Component({\r\n selector: 'app-dashboard-footer',\r\n templateUrl: './dashboard-footer.component.html',\r\n styleUrls: ['./dashboard-footer.component.less']\r\n})\r\nexport class DashboardFooterComponent implements OnInit {\r\n @Output() cancelEvent = new EventEmitter();\r\n @Output() submitEvent = new EventEmitter();\r\n @Output() deleteEvent = new EventEmitter();\r\n @Input() footerDetails:DashboardFooterConfig={\r\n selectedData : [],\r\n nonRemovableList:[],\r\n displayElementKey: '',\r\n elementId: '',\r\n singularText: '',\r\n pluralText:'',\r\n showFrequency:false,\r\n frequencyText:'',\r\n isDisabled :false\r\n\r\n };\r\n\r\n @Input() userButtonColor = '';\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n cancelFloatingBar() {\r\n this.cancelEvent.emit();\r\n }\r\n submitFloatingBar() {\r\n this.submitEvent.emit(this.footerDetails.selectedData);\r\n }\r\n\r\n deleteSelected(element: any) {\r\n this.deleteEvent.emit(element);\r\n }\r\n\r\n\r\n}\r\n","<div class=\"dashboard-floating-bar-container\">\r\n <div class=\"dashboard-floating-bar vx-d-flex vx-align-center\" [class.vx-justify-end]=\"!(footerDetails.showFrequency || footerDetails.selectedData.length>0)\" [class.vx-justify-between]=\"footerDetails.showFrequency || footerDetails.selectedData.length>0\">\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"footerDetails.showFrequency\">\r\n <span class=\"value\" [innerHTML]=\"footerDetails.frequencyText\"></span>\r\n </div>\r\n\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"footerDetails.selectedData.length>0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\" *ngIf=\"!footerDetails.nonRemovableList.includes(footerDetails.selectedData[0][footerDetails.elementId])\" (click)=\"deleteSelected(footerDetails.selectedData[0])\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"footerDetails.selectedData[0][footerDetails.displayElementKey]\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{footerDetails.selectedData[0][footerDetails.displayElementKey]}}</span>\r\n <button *ngIf=\"footerDetails.selectedData.length > 1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" [ngClass]=\"userButtonColor\" appPopover (click)=\"countPopup.popover()\" placement=\"left\">+{{footerDetails.selectedData.length - 1}}</button>\r\n </div>\r\n <ng-container *ngIf=\"footerDetails?.selectedData?.length>1\">\r\n <span class=\"value vx-ml-2\" *ngIf=\"footerDetails?.selectedData?.slice(1).length === 1\">{{footerDetails.singularText}}</span>\r\n <span class=\"value vx-ml-2\" *ngIf=\"footerDetails?.selectedData?.slice(1).length > 1\">{{footerDetails.pluralText}}</span>\r\n </ng-container>\r\n <app-popover #countPopup [dontCloseonClick]=\"true\">\r\n <div class=\"dashboard-floating-bar-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of footerDetails.selectedData.slice(1); let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"element[footerDetails.displayElementKey]\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" *ngIf=\"!footerDetails.nonRemovableList.includes(element[footerDetails.elementId])\" (click)=\"deleteSelected(element)\"></i> {{element[footerDetails.displayElementKey]}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n <div class=\"right vx-d-flex vx-align-center\">\r\n <button class=\"cancel vx-bg-white vx-txt-red vx-fw-500 vx-tt-uppercase\" (click)=\"cancelFloatingBar()\">Cancel</button>\r\n <!-- <button class=\"vx-bg-blue vx-txt-white vx-fw-500 vx-tt-uppercase\" (click)=\"submitFloatingBar()\">Update</button> -->\r\n <button [class.disabled]=\"footerDetails.isDisabled\" class=\"vx-bg-blue vx-txt-white vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-center\" (click)=\"submitFloatingBar()\">Next <i class=\"icons vx-ml-1\"></i></button>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit, OnChanges, Input, Output, EventEmitter } from '@angular/core';\r\nimport { PaginationService } from '../../create-dashboard-container/services/pagination.service';\r\n\r\n@Component({\r\n selector: 'app-pagination',\r\n templateUrl: './pagination.component.html',\r\n styleUrls: ['./pagination.component.less']\r\n})\r\n/**\r\n * Adds place holder for Pagination on the lists\r\n */\r\nexport class PaginationComponent implements OnInit, OnChanges {\r\n start = 1;\r\n totalCount!: number;\r\n paginationArray: any[] = [];\r\n currentPage!: number;\r\n @Input() totalPages = 1;\r\n @Input() limit = 1;\r\n @Input() totalList = 1;\r\n @Output() paginationFilter = new EventEmitter();\r\n\r\n constructor(private paginationService: PaginationService) {\r\n }\r\n ngOnChanges() {\r\n this.currentPage = Number(this.paginationService.currentPage);\r\n this.start = Number(this.paginationService.currentPage);\r\n this.rebuildPagination(this.currentPage, this.totalPages);\r\n }\r\n\r\n ngOnInit() {\r\n this.currentPage = Number(this.paginationService.currentPage);\r\n this.start = Number(this.paginationService.currentPage);\r\n this.rebuildPagination(this.currentPage, this.totalPages);\r\n this.paginationService.currentValues.subscribe(event => {\r\n if (event && (this.paginationService.currentPage !== this.currentPage)) {\r\n this.currentPage = this.paginationService.currentPage;\r\n }\r\n });\r\n }\r\n\r\n /* In this function we will recreate the pagination structure as per current page and\r\n total number of pages */\r\n\r\n rebuildPagination(currentPage: number, totalCount: number) {\r\n this.paginationArray = [];\r\n this.totalCount = totalCount;\r\n this.currentPage = currentPage;\r\n if (this.paginationService.currentPage !== this.currentPage) {\r\n this.paginationService.currentPage = this.currentPage;\r\n this.paginationFilter.emit(true);\r\n }\r\n\r\n // If there are only 6 pages or less in total, just display all pages without \"...\"\r\n if (totalCount <= 6) {\r\n for (let i = 1; i <= totalCount; i++) {\r\n this.paginationArray.push(i);\r\n }\r\n }\r\n // ELSE display with ...\r\n else {\r\n\r\n // Always print first page button\r\n this.paginationArray.push(1);\r\n\r\n // Print \"...\" if currentPage is > 3\r\n if (currentPage > 3) {\r\n // this.paginationArray.push(2);\r\n this.paginationArray.push('...');\r\n\r\n }\r\n // special case where last page is selected...\r\n // Without this special case, only 2 buttons would be shown after ... if you were on last page\r\n if (currentPage === totalCount) {\r\n this.paginationArray.push(currentPage - 2);\r\n }\r\n\r\n // Print previous number button if currentPage > 2\r\n if (currentPage > 2) {\r\n this.paginationArray.push(currentPage - 1);\r\n }\r\n\r\n // Print current page number button as long as it not the first or last page\r\n if (currentPage !== 1 && currentPage !== totalCount) {\r\n this.paginationArray.push(currentPage);\r\n\r\n }\r\n\r\n // print next page number button if currentPage < lastPage - 1\r\n if (currentPage < totalCount - 1) {\r\n this.paginationArray.push(currentPage + 1);\r\n\r\n }\r\n\r\n // special case where first page is selected...\r\n // Without this special case, only 2 buttons would be shown before ... if you were on first page\r\n if (currentPage === 1) {\r\n this.paginationArray.push(currentPage + 2);\r\n\r\n }\r\n\r\n // print \"...\" if currentPage is < lastPage -2\r\n if (currentPage < totalCount - 2) {\r\n this.paginationArray.push('...');\r\n\r\n // HTML += \"...\";\r\n }\r\n\r\n // Always print last page button if there is more than 1 page\r\n if (totalCount > 1) {\r\n this.paginationArray.push(totalCount);\r\n\r\n }\r\n }\r\n\r\n }\r\n/* In this function we will set current page according to the action performed on browser\r\n ex: prev next buttons clicks or selecting a particular page */\r\n\r\n changePage(prev: string, page: number, next: string) {\r\n if (prev) {\r\n if (this.start > 1) {\r\n this.start--;\r\n // We have changed the start page, total rebuild the pagination\r\n this.rebuildPagination(this.start, this.totalCount);\r\n }\r\n }\r\n if (next) {\r\n if (this.start < this.totalCount) {\r\n this.start++;\r\n this.rebuildPagination(this.start, this.totalCount);\r\n }\r\n }\r\n if (page) {\r\n this.start = page;\r\n this.rebuildPagination(this.start, this.totalCount);\r\n }\r\n }\r\n}\r\n","<div class=\"pagination-box\">\r\n <ul>\r\n <li><button [class.disabled]=\"currentPage==1\" (click)=\"changePage('prev',0,'')\"><i class=\"icons vx-fs-10\"></i></button></li>\r\n <li *ngFor=\"let page of paginationArray\">\r\n <button [disabled]=\"page=='...'\" [class.disable]=\"page=='...'\" [class.active]=\"currentPage==page\" (click)=\"changePage('',page,'')\">\r\n <i *ngIf=\"page=='...'\" class=\"icons\"></i>{{page!='...'?page : ''}}\r\n </button>\r\n </li>\r\n <li><button [class.disabled]=\"currentPage==totalCount\" (click)=\"changePage('',0,'next')\"><i class=\"icons vx-fs-10\"></i></button></li>\r\n </ul>\r\n</div>","import { HttpParams } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../../ui-kit/dashboard-footer/dashboard-footer-config';\r\nimport { CreateDashboardService } from '../services/create-dashboard.service';\r\nimport { PaginationService } from '../services/pagination.service';\r\nimport { UserListConfiguration } from './user-list.config';\r\n\r\n@Component({\r\n selector: 'app-user-list',\r\n templateUrl: './user-list.component.html',\r\n styleUrls: ['./user-list.component.less']\r\n})\r\nexport class UserListComponent implements OnInit {\r\n @Output() closeUserList = new EventEmitter();\r\n @Output() saveSelectedUsers = new EventEmitter();\r\n @Input() selectionType = '';\r\n @Input() listDetails: UserListConfiguration = {\r\n displayElementKey: '',\r\n displayGroupKey:'',\r\n groupIdkey:'',\r\n elementIdKey: '',\r\n tooltipKey: '',\r\n selectedUsersList: [],\r\n selectedGroupList:[],\r\n nonRemovableUsersList: []\r\n };\r\n\r\n footerDetails: DashboardFooterConfig = {\r\n selectedData: [],\r\n nonRemovableList: [],\r\n displayElementKey: '',\r\n elementId: '',\r\n singularText: 'User selected',\r\n pluralText: 'Users selected',\r\n showFrequency: false,\r\n frequencyText: '',\r\n isDisabled: false\r\n\r\n };\r\n vLoader = false;\r\n vLoaderGroups = false\r\n\r\n @Input() totalPages = 1;\r\n @Input() limit = 1;\r\n @Input() totalList = 1;\r\n @Input() feature:any;\r\n @Input() totalgroupscount : any;\r\n searchList = [];\r\n searchValue = '';\r\n searchFilter = '';\r\n selectedIds: any[] = [];\r\n selectedList: any[] = [];\r\n groupdata: any[] = [];\r\n\r\n\r\n animation = true;\r\n totalgroups: any;\r\n total_group_pages: any;\r\n selectedGroupIds: any[]= [];\r\n groupsEnabled:any;\r\n selectedgroupList: any[] =[];\r\n currentPage=1;\r\n constructor(\r\n public paginationService: PaginationService,\r\n private dashboardService: CreateDashboardService,\r\n ) { \r\n this.paginationService.reset();\r\n this.getOrganizationUsersCount('');\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.groupsEnabled=this.feature?.isFeatureEnabled(\"ff_groups_improvements\");\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n if (this.listDetails.selectedUsersList.length > 0) {\r\n this.selectedList = [...new Set(this.listDetails.selectedUsersList)];\r\n const selectedData = [...new Set(this.listDetails.selectedUsersList)];\r\n this.footerDetails.selectedData = selectedData;\r\n this.footerDetails.nonRemovableList = this.listDetails.nonRemovableUsersList;\r\n this.selectedIds = selectedData.map((ele: any) => {\r\n if (ele[this.listDetails.elementIdKey]) { return ele[this.listDetails.elementIdKey]; }\r\n });\r\n\r\n }\r\n this.getUsersList({\r\n // p: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\r\n p: this.paginationService.currentPage ?? 1,\r\n type: '',\r\n });\r\n this.footerDetails.displayElementKey = this.listDetails.displayElementKey;\r\n this.footerDetails.elementId = this.listDetails.elementIdKey;\r\n if (this.groupsEnabled) {\r\n this.getGroupsList({})\r\n } \r\n if (this.listDetails.selectedGroupList.length > 0) {\r\n this.selectedgroupList = [...new Set(this.listDetails.selectedGroupList)];\r\n const selectedData = [...new Set(this.listDetails.selectedGroupList)];\r\n this.footerDetails.selectedData = selectedData;\r\n this.footerDetails.nonRemovableList = this.listDetails.nonRemovableUsersList;\r\n this.selectedGroupIds = selectedData.map((ele: any) => {\r\n if (ele[this.listDetails.groupIdkey]) { return ele[this.listDetails.groupIdkey]; }\r\n \r\n });\r\n\r\n }\r\n }\r\n\r\n cancelChanges() {\r\n\r\n }\r\n removeElement(event: any) {\r\n\r\n }\r\n submitChanges() {\r\n\r\n }\r\n selectAll(event: any) {\r\n if (event) {\r\n this.searchList.forEach(searchElement => {\r\n\r\n if (!this.selectedIds.includes(searchElement[this.listDetails.elementIdKey])) {\r\n this.selectedList.push(searchElement);\r\n this.selectedIds.push(searchElement[this.listDetails.elementIdKey]);\r\n this.footerDetails.selectedData = this.selectedList;\r\n }\r\n });\r\n\r\n } else {\r\n this.searchList.forEach(searchElement => {\r\n if (!this.listDetails.nonRemovableUsersList.includes(searchElement[this.listDetails.elementIdKey])) {\r\n const index = this.selectedList.findIndex(ele => ele[this.listDetails.elementIdKey] ===\r\n searchElement[this.listDetails.elementIdKey]);\r\n this.selectedList.splice(index, 1);\r\n const filteredList = [...this.selectedList];\r\n this.footerDetails.selectedData = this.selectedList;\r\n\r\n const idIndex = this.selectedIds.findIndex(ele => ele === searchElement[this.listDetails.elementIdKey]);\r\n this.selectedIds.splice(idIndex, 1);\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * Selects all admins and managers at once by making api call.\r\n * @param event consists boolean value to select of unselect.\r\n */\r\n selectAllUsers(event: any) {\r\n if (event) {\r\n this.vLoader = true;\r\n this.dashboardService.getAllUsers().subscribe((res: any) => {\r\n\r\n if(res.length>1){\r\n res.forEach((searchElement:any) => {\r\n \r\n if (!this.selectedIds.includes(searchElement[this.listDetails.elementIdKey])) {\r\n this.selectedList.push(searchElement);\r\n this.selectedIds.push(searchElement[this.listDetails.elementIdKey]);\r\n this.footerDetails.selectedData = this.selectedList;\r\n }\r\n });\r\n }\r\n this.vLoader = false;\r\n });\r\n\r\n } else {\r\n\r\n\r\n\r\n const selectedData = [...new Set(this.selectedList)];\r\n const index = selectedData.findIndex(ele => ele[this.listDetails.elementIdKey] === this.listDetails.nonRemovableUsersList[0]);\r\n if (index != -1) {\r\n const owner = Object.assign(selectedData[index]);\r\n\r\n this.selectedList = [];\r\n this.selectedIds = [];\r\n this.footerDetails.selectedData = [];\r\n\r\n this.selectedList.push(owner);\r\n this.selectedIds.push(owner.member_id);\r\n this.footerDetails.selectedData = this.selectedList;\r\n\r\n } else {\r\n this.selectedList = [];\r\n this.selectedIds = [];\r\n this.footerDetails.selectedData = [];\r\n }\r\n }\r\n }\r\n\r\n selectAllGroups(event: any) {\r\n let params =new HttpParams();\r\n params = params.append('fetch_all', 1);\r\n if (event) {\r\n this.vLoaderGroups = true;\r\n this.dashboardService.getAllGroups(params).subscribe((res: any) => {\r\n if (res.data.length > 1) {\r\n \r\n res.data.forEach((searchElement: any) => {\r\n\r\n if (!this.selectedGroupIds.includes(searchElement[this.listDetails.groupIdkey])) {\r\n this.selectedgroupList.push(searchElement);\r\n this.selectedGroupIds.push(searchElement[this.listDetails.groupIdkey]);\r\n this.footerDetails.selectedData = this.selectedgroupList;\r\n }\r\n }); \r\n }\r\n this.vLoaderGroups = false;\r\n }); \r\n } else {\r\n this.selectedgroupList = [];\r\n this.selectedGroupIds = [];\r\n this.footerDetails.selectedData = []; \r\n }\r\n }\r\n\r\n selectAllsearchgroups(event: any) {\r\n if (event) {\r\n this.groupdata.forEach(searchElement => {\r\n \r\n if (!this.selectedGroupIds.includes(searchElement[this.listDetails.groupIdkey])) {\r\n this.selectedgroupList.push(searchElement);\r\n this.selectedGroupIds.push(searchElement[this.listDetails.groupIdkey]);\r\n this.footerDetails.selectedData = this.selectedgroupList;\r\n }\r\n });\r\n \r\n } else {\r\n this.selectedgroupList = [];\r\n this.selectedGroupIds = [];\r\n this.footerDetails.selectedData = []; \r\n \r\n }\r\n } \r\n\r\n/**\r\n * Selects checked item from the list.\r\n * In case of user's list calculates number of admins/manages to set visibility(either to all admins/ admins and managers)\r\n * @param data is the selected element\r\n */\r\nselectElement(data: any) {\r\n if (this.selectedIds.includes(data[this.listDetails.elementIdKey])) {\r\n if (!this.listDetails.nonRemovableUsersList.includes(data[this.listDetails.elementIdKey])) {\r\n const index = this.selectedList.findIndex(ele => ele[this.listDetails.elementIdKey] === data[this.listDetails.elementIdKey]);\r\n this.selectedList.splice(index, 1);\r\n this.footerDetails.selectedData = this.selectedList;\r\n\r\n const idIndex = this.selectedIds.findIndex(ele => ele === data[this.listDetails.elementIdKey]);\r\n\r\n this.selectedIds.splice(idIndex, 1);\r\n }\r\n\r\n } else {\r\n this.selectedList.push(data);\r\n this.selectedIds.push(data[this.listDetails.elementIdKey]);\r\n this.footerDetails.selectedData = this.selectedList;\r\n\r\n }\r\n}\r\n\r\n selectGroupElement(data: any) { \r\n if (this.selectedGroupIds.includes(data[this.listDetails.groupIdkey])) {\r\n const index = this.selectedgroupList.findIndex((ele: { [x: string]: any; }) => ele[this.listDetails.groupIdkey] === data[this.listDetails.groupIdkey]);\r\n this.selectedgroupList.splice(index, 1);\r\n this.footerDetails.selectedData = this.selectedgroupList;\r\n const idIndex = this.selectedGroupIds.findIndex(ele => ele === data[this.listDetails.groupIdkey]);\r\n this.selectedGroupIds.splice(idIndex, 1);\r\n } else {\r\n this.selectedgroupList.push(data);\r\n this.selectedGroupIds.push(data[this.listDetails.groupIdkey]);\r\n this.footerDetails.selectedData = this.selectedgroupList; \r\n }\r\n }\r\n/**\r\n * It is used to set and search value incase of backend driven list to differentiate search list and original list\r\n */\r\nsetSearchValue() {\r\n if(this.paginationService.searchValue !== this.searchValue) {\r\n this.paginationService.currentPage = 1;\r\n this.paginationService.searchValue = this.searchValue;\r\n this.paginationFilter(true);\r\n }\r\n\r\n}\r\n\r\n/**\r\n* it is used check select all condition incase of backend driven search\r\n*/\r\ncheckSelectAll() {\r\n if (this.searchList.length > 0) {\r\n const data: boolean = this.searchList.every(ele => this.selectedIds.includes(ele[this.listDetails.elementIdKey]));\r\n return data;\r\n } else {\r\n return false;\r\n\r\n }\r\n\r\n}\r\n\r\n/**\r\n* it is used check select all groups condition incase of backend driven search\r\n*/\r\ncheckSelectAllGroups() {\r\n if (this.groupdata.length > 0) {\r\n const data: boolean = this.groupdata.every(ele => this.selectedGroupIds.includes(ele[this.listDetails.groupIdkey]));\r\n return data;\r\n } else {\r\n return false;\r\n\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Filter list user's list based on pagination by making api call\r\n * @param event specifies a boolean value to call api\r\n */\r\npaginationFilter(event: any) {\r\n if(!event) return\r\n if(this.groupsEnabled){\r\n this.vLoader = true;\r\n if(this.currentTab == 'USER'){\r\n this.getUsersList({\r\n // p: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\r\n p: this.paginationService.currentPage ?? 1,\r\n type: '',\r\n q: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n }); \r\n this.getOrganizationUsersCount({\r\n p: this.paginationService.currentPage ?? 1,\r\n type: '',\r\n q: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n }) \r\n }\r\n else{\r\n this.getGroupsList({\r\n page: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\r\n groupName: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n });\r\n }\r\n }else{\r\n this.vLoader = true;\r\n this.getUsersList({\r\n // p: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\r\n p: this.paginationService.currentPage ?? 1,\r\n type: '',\r\n q: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n });\r\n this.getOrganizationUsersCount({\r\n p: this.paginationService.currentPage ?? 1,\r\n type: '',\r\n q: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n })\r\n }\r\n}\r\n/**\r\n * Gets user's list by making api call\r\n * @param url contains userlist filter details\r\n */\r\ngetUsersList(url: any) {\r\n this.vLoader = true;\r\n\r\n this.dashboardService.getOrganizationUsers(url ? url : '').subscribe(res => {\r\n\r\n this.searchList = res;\r\n this.vLoader = false;\r\n\r\n\r\n });\r\n\r\n }\r\ngetGroupsList(event:any){\r\n this.vLoaderGroups = true\r\n let params =new HttpParams()\r\n if (event.hasOwnProperty(\"groupName\")) {\r\n params = params.append('groupName', event[\"groupName\"]);\r\n }\r\n if(event.hasOwnProperty(\"page\") && !this.searchValue) {\r\n params = params.append('page', event[\"page\"]);\r\n }\r\n if(this.totalgroupscount > 30 && !this.searchValue){\r\n params = params.append('limit', 30);\r\n }\r\n this.dashboardService.getAllGroups(params).subscribe((res:any)=>{\r\n this.groupdata = res?.data;\r\n this.vLoaderGroups = false;\r\n this.totalgroups = res.total_items;\r\n this.total_group_pages = res.total_pages;\r\n \r\n})\r\n}\r\n\r\n /**\r\n * on click on next button from the list, it emits the selected list of elements to parent component.\r\n */\r\n onSubmit() {\r\n // const data = [...new Set(this.selectedList)];\r\n // data.push(this.selectedgroupList)\r\n this.saveSelectedUsers.emit({ users: this.selectedList, groups: this.selectedgroupList });\r\n this.paginationService.reset();\r\n }\r\n currentTab = 'USER'\r\n switchTab(tab: string) {\r\n this.paginationService.reset();\r\n this.getOrganizationUsersCount('');\r\n this.currentTab = tab;\r\n if(this.currentTab==\"USER\"){\r\n this.searchValue=''\r\n this.getUsersList({p: this.paginationService.currentPage});\r\n }else{\r\n this.searchValue=''\r\n this.getGroupsList({})\r\n }\r\n }\r\n\r\n getOrganizationUsersCount(Url: any) {\r\n this.dashboardService.getOrganizationUsersCount(Url).subscribe(res => {\r\n this.totalList = res.total_members;\r\n if (res.total_members && res.limit_per_page > 1) {\r\n this.totalPages = res.create_page;\r\n } else {\r\n this.totalPages = 1;\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"user-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"user-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Who can view this dashboard?</div>\r\n </div>\r\n <div class=\"user-list-body\">\r\n <div class=\"user-list-tab vx-d-flex vx-align-center vx-mb-2\" *ngIf=\"groupsEnabled\">\r\n <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 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\">{{totalList}}</span></button>\r\n <button id=\"switchtab\" (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\" >USER GROUPS <span id=\"groupscount\" class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{totalgroups}}</span></button>\r\n </div>\r\n\r\n <div class=\"user-list-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"searchValue\" placeholder=\"{{currentTab === 'USER' ? 'Search User(s)' :'Search User Group(s)'}} who can view this dashboard\" (keyup.enter)=\"setSearchValue()\" (focusout)=\"setSearchValue()\">\r\n </div>\r\n\r\n <ng-container *ngIf=\"currentTab === 'USER'\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-end\" *ngIf=\"totalPages>1\">\r\n <div class=\"pagination-box\" *ngIf=\"totalPages>1 && searchList.length>1\"> \r\n <app-pagination (paginationFilter)=\"paginationFilter($event)\" [limit]=\"limit\" [totalPages]=\"totalPages\" [totalList]=\"totalList\"></app-pagination>\r\n </div>\r\n </div>\r\n <div class=\"user-list-body-top\" *ngIf=\"searchList.length !== 0\">\r\n <app-cs-checkbox *ngIf=\"!searchValue && searchList.length>1\" [ngValue]=\"selectedList.length == totalList\" (ngValueChange)=\"selectAllUsers($event)\">\r\n <strong>{{((selectedList.length == totalList) ? 'Deselect All':'Select All')}}</strong>\r\n </app-cs-checkbox>\r\n <app-cs-checkbox *ngIf=\"searchValue && searchList.length>1\" [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\r\n <strong>{{((selectedList.length == totalList) ? 'Deselect All':'Select All')}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"list-of-user\">\r\n <div class=\"selection-list vx-mb-4\" [class.with-group]=\"groupsEnabled\" [class.with-noData]=\"searchList.length == 0\" [class.with-pagination]=\"totalPages>1 && searchList.length>1\">\r\n <ul *ngIf=\"searchList.length !== 0\">\r\n <li *ngFor=\"let data of searchList; let i = index\">\r\n <app-cs-checkbox [disabled]=\"listDetails.nonRemovableUsersList.includes(data[listDetails.elementIdKey])\" [ngValue]=\"selectedList.length>0 && selectedIds.includes(data[listDetails.elementIdKey])\" (ngValueChange)=\"selectElement(data)\" [arTooltip]=\"data[listDetails.tooltipKey]\" placement=\"bottom-left\" delay=\"0\" [tooltipMandatory]=\"true\">{{data[listDetails.displayElementKey]}}</app-cs-checkbox>\r\n </li>\r\n </ul>\r\n\r\n <app-no-data *ngIf=\"!vLoader && searchList.length == 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\r\n </div>\r\n\r\n <app-loader-inline *ngIf=\"vLoader\"></app-loader-inline>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentTab === 'GROUP' && groupsEnabled\">\r\n <ng-container *ngIf=\"(groupdata) as groups \">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-end\" *ngIf=\"true\">\r\n <div class=\"pagination-box\" *ngIf=\"total_group_pages>1\"> \r\n <app-pagination (paginationFilter)=\"paginationFilter($event)\" [limit]=\"limit\" [totalPages]=\"total_group_pages\" [totalList]=\"totalgroups\"></app-pagination>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"true\">\r\n <div class=\"user-list-mid vx-mb-4\" [class.with-pagination]=\"total_group_pages>1\">\r\n <ng-container *ngIf=\"groups?.length > 0\">\r\n <div class=\"user-list-select vx-mb-4\">\r\n <app-cs-checkbox [disabled]=\"false\" *ngIf=\"!searchValue && groups.length>1\" [ngValue]=\"selectedgroupList.length == totalgroups\" (ngValueChange)=\"selectAllGroups($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{((selectedgroupList.length == totalgroups) ? 'Deselect All':'Select All')}}</div>\r\n </app-cs-checkbox>\r\n <app-cs-checkbox [disabled]=\"false\" *ngIf=\"searchValue && groups.length>1\" [ngValue]=\"checkSelectAllGroups()\" (ngValueChange)=\"selectAllsearchgroups($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{((selectedgroupList.length == totalgroups) ? 'Deselect All':'Select All')}}</div>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let data of groups; let i = index\">\r\n <app-cs-checkbox (ngValueChange)=\"selectGroupElement(data)\" [disabled]=\"false\" [ngValue]=\"selectedgroupList.length>0 && selectedGroupIds.includes(data[listDetails.groupIdkey])\">\r\n <div class=\"user-name vx-d-flex vx-align-center\"> \r\n <div class=\"group-name\" [arTooltip]=\"data[listDetails.displayGroupKey]\" placement=\"bottom-left\"\r\n delay=\"0\" [tooltipMandatory]=\"true\">{{data[listDetails.displayGroupKey]}}</div>\r\n <span id=\"usersofgroup\" 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}} {{data[\"associatedUsers\"].length > 1 ? 'USERS' :'USER'}}</span>\r\n </div>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"groups?.length == 0 && !vLoaderGroups\">\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No data to display.')\"></app-no-data>\r\n </ng-container>\r\n <app-loader-inline *ngIf=\"vLoaderGroups\"></app-loader-inline>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n \r\n <div class=\"user-floating-bar\" *ngIf=\"groupsEnabled\">\r\n <div class=\"user-floating-bar-container vx-d-flex vx-align-center vx-justify-between\">\r\n <div class=\"left vx-d-flex vx-align-center\">\r\n <button class=\"counter vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 vx-m-0 vx-pl-1 vx-pr-1\" *ngIf=\"selectedList?.length\" appPopover (click)=\"userCount.popover()\" placement=\"left\">{{selectedList?.length}}</button>\r\n <div class=\"name vx-fs-12 vx-paragraph-txt vx-ml-2\"> \r\n <span *ngIf=\"selectedList?.length === 1\">User {{selectedgroupList?.length > 0 ?' & ':'selected'}}</span>\r\n <span *ngIf=\"selectedList?.length > 1\">Users {{selectedgroupList?.length > 0 ?' & ':'are selected'}}</span>\r\n </div>\r\n <button class=\"counter group vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 vx-ml-2 vx-pl-1 vx-pr-1\" *ngIf=\"selectedgroupList?.length\" appPopover (click)=\"groupCount.popover()\" placement=\"left\">{{selectedgroupList?.length}}</button>\r\n <div class=\"name vx-fs-12 vx-paragraph-txt vx-ml-2\">\r\n <span *ngIf=\"selectedgroupList?.length === 1\">User Group selected</span>\r\n <span *ngIf=\"selectedgroupList?.length > 1\">User Groups selected</span>\r\n </div>\r\n\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedList\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"element.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"selectElement(element)\" *ngIf=\"!listDetails.nonRemovableUsersList.includes(element?.member_id)\"></i> {{element.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n \r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedgroupList\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"element?.group_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"selectGroupElement(element)\"></i> {{element?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n \r\n <div class=\"right vx-d-flex vx-align-center\">\r\n <button class=\"cancel\" (click)=\"closeUserList.emit()\">Cancel</button>\r\n <button [disabled]=\"false\" (click)=\"onSubmit()\">Next <i class=\"icons\"></i></button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"user-list-footer\" *ngIf=\"!groupsEnabled\">\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"closeUserList.emit(); paginationService.reset();\"\r\n (deleteEvent) =\"selectElement($event)\"\r\n (submitEvent)=\"onSubmit()\"\r\n [userButtonColor]=\"'greenBg'\"\r\n ></app-dashboard-footer>\r\n </div>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filter'\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n\r\n transform(items: any[], searchText: string): any[] {\r\n if (!items) {\r\n return [];\r\n }\r\n if (!searchText) {\r\n return items;\r\n }\r\n searchText = searchText.toLowerCase();\r\n if(items?.length){\r\n return items.filter((it: any) => {\r\n return JSON.stringify(it).toLowerCase().includes(searchText);\r\n });\r\n }else{\r\n return [];\r\n }\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../../ui-kit/dashboard-footer/dashboard-footer-config';\r\n\r\n@Component({\r\n selector: 'app-responsibility-center',\r\n templateUrl: './responsibility-center.component.html',\r\n styleUrls: ['./responsibility-center.component.less']\r\n})\r\nexport class ResponsibilityCenterComponent implements OnInit, OnChanges {\r\n @Output() saveSelectedList = new EventEmitter();\r\n @Output() closeRcList = new EventEmitter();\r\n @Input() responsibilityCentersList = [];\r\n @Input() selectedResponsibilityCenters = [];\r\n @Input() rcIdKey = '';\r\n @Input() radioSelection = false;\r\n\r\n\r\n selectedIds: any[] = [];\r\n animation = false;\r\n search = '';\r\n footerDetails: DashboardFooterConfig = {\r\n selectedData: [],\r\n nonRemovableList:[],\r\n displayElementKey: 'item_name',\r\n elementId: 'item_id',\r\n singularText: 'Responsibility Center selected',\r\n pluralText: 'Responsibility Centers selected',\r\n showFrequency: false,\r\n frequencyText: '',\r\n isDisabled: false\r\n\r\n };\r\n constructor() { }\r\n\r\n ngOnChanges(): void {\r\n this.footerDetails.selectedData = this.selectedResponsibilityCenters;\r\n this.selectedIds = this.selectedResponsibilityCenters.map((ele: any) => { if (ele[this.rcIdKey]) { return ele[this.rcIdKey]; } });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n }\r\n\r\n selectRc(rc: any, mode: any) {\r\n if (this.radioSelection) {\r\n if (mode) {\r\n this.selectedIds = [];\r\n this.selectedIds.push(rc);\r\n }\r\n this.setList();\r\n } else {\r\n if (mode) {\r\n this.selectedIds.push(rc);\r\n const rcElement = this.responsibilityCentersList.findIndex((ele: any) => ele.item_id == rc);\r\n if (rcElement !== -1) {\r\n const parentRc: any = this.responsibilityCentersList[rcElement];\r\n if (parentRc?.item_child_ids?.length > 0) {\r\n parentRc.item_child_ids.forEach((childElement: any) => {\r\n if(!this.selectedIds.includes(childElement)){\r\n this.selectedIds.push(childElement);\r\n }\r\n });\r\n }\r\n }\r\n\r\n } else {\r\n const index = this.selectedIds.findIndex((element: any) => element == rc);\r\n this.selectedIds.splice(index, 1);\r\n const rcElement = this.responsibilityCentersList.findIndex((ele: any) => ele.item_id == rc);\r\n if (rcElement !== -1) {\r\n const parentRc: any = this.responsibilityCentersList[rcElement];\r\n if (parentRc?.item_child_ids?.length > 0) {\r\n parentRc.item_child_ids.forEach((childElement: any) => {\r\n const removeIndex = this.selectedIds.findIndex((removeElement: any) => removeElement == childElement);\r\n this.selectedIds.splice(removeIndex, 1);\r\n });\r\n }\r\n }\r\n\r\n }\r\n this.setList();\r\n }\r\n\r\n\r\n }\r\n deleteEvent(event: any) {\r\n const index = this.selectedIds.findIndex((element: any) => element == event[this.rcIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n this.setList();\r\n }\r\n\r\n selectAll(mode: any) {\r\n if (mode) {\r\n const list = [...this.responsibilityCentersList];\r\n this.selectedIds = [];\r\n list.forEach(element => {\r\n this.selectedIds.push(element[this.rcIdKey]);\r\n });\r\n } else {\r\n this.selectedIds = [];\r\n }\r\n this.setList();\r\n }\r\n\r\n\r\n setList() {\r\n const data: any = [];\r\n const rcList = [...new Set(this.responsibilityCentersList)]\r\n // cloneDeep(this.responsibilityCentersList);\r\n const selectedIds = [...new Set(this.selectedIds)]\r\n // cloneDeep(this.selectedIds);\r\n rcList.forEach((element: any) => {\r\n if (selectedIds.includes(element[this.rcIdKey])) {\r\n data.push(element);\r\n }\r\n });\r\n this.selectedResponsibilityCenters = data;\r\n this.footerDetails.selectedData = this.selectedResponsibilityCenters;\r\n }\r\n\r\n checkSelectAll() {\r\n const data = this.responsibilityCentersList.every((rc: any) => this.selectedIds.includes(rc[this.rcIdKey]));\r\n return data;\r\n }\r\n\r\n save() {\r\n this.saveSelectedList.emit(this.selectedIds);\r\n }\r\n\r\n closeResponsibilityCenterList() {\r\n this.closeRcList.emit();\r\n }\r\n}\r\n","<div class=\"responsibility-center\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"responsibility-center-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Responsibility Center(s)</div>\r\n </div>\r\n <div class=\"responsibility-center-body\">\r\n <div class=\"responsibility-center-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Responsibility Center\">\r\n </div>\r\n\r\n <ng-container *ngIf=\"(responsibilityCentersList | filter:search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length>1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\r\n <strong>{{checkSelectAll() ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <ul class=\"responsibility-center-list\" *ngIf=\"searchList.length > 0\">\r\n <li *ngFor=\"let rc of searchList; let i = index\">\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(rc.item_id)\" (ngValueChange)=\"selectRc(rc.item_id,$event)\">\r\n <ul class=\"responsibility-center-list-name\">\r\n <li *ngFor=\"let entity of rc.rc_name; let j = index\" [arTooltip]=\"entity\" placement=\"bottom-left\" delay=\"0\">\r\n <i class=\"icons\" *ngIf=\"j !== 0\"></i>\r\n {{entity}}\r\n <!-- <span class=\"name\">{{entity}}</span> -->\r\n </li> \r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <div class=\"responsibility-center-footer\">\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"closeRcList.emit()\"\r\n (deleteEvent) =\"selectRc($event.item_id,false)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../../ui-kit/dashboard-footer/dashboard-footer-config';\r\nimport { CategoriesConfig } from './categories-config';\r\n\r\n@Component({\r\n selector: 'app-categories',\r\n templateUrl: './categories.component.html',\r\n styleUrls: ['./categories.component.less']\r\n})\r\nexport class CategoriesComponent implements OnInit {\r\n\r\n\r\n @Input() categoryList: CategoriesConfig = {\r\n regulations: {\r\n list: [],\r\n selectedList: []\r\n },\r\n standards: {\r\n list: [],\r\n selectedList: []\r\n },\r\n internalControls: {\r\n list: [],\r\n selectedList: []\r\n },\r\n others: {\r\n list: [],\r\n selectedList: []\r\n }\r\n };\r\n @Input() allCategories: any[] = [];\r\n\r\n @Input() categoryIdKey: any;\r\n @Input() selectedCategories: any[] = [];\r\n\r\n search = '';\r\n activeTab: \"standards\" | \"regulations\" | \"internalControls\" | \"others\"=\"regulations\";\r\n selectedIds: any[] = [];\r\n animation = false;\r\n blockWidth: any;\r\n footerDetails: DashboardFooterConfig = {\r\n selectedData: [],\r\n nonRemovableList:[],\r\n displayElementKey: 'item_name',\r\n elementId: 'item_id',\r\n singularText: 'Program selected',\r\n pluralText: 'Programs selected',\r\n showFrequency: false,\r\n frequencyText: '',\r\n isDisabled: false\r\n\r\n };\r\n\r\n @Output() saveSelectedCategory = new EventEmitter();\r\n @Output() closeList = new EventEmitter();\r\n @Output() closeCategoriesList = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n this.selectedIds = [];\r\n if (this.selectedCategories) {\r\n this.selectedCategories.forEach(element => {\r\n this.selectedIds.push(element[this.categoryIdKey]);\r\n });\r\n }\r\n this.setList()\r\n\r\n\r\n }\r\n\r\n selectCategory(mode: any, activeTab: any, category: any) {\r\n if (mode) {\r\n this.selectedIds.push(category[this.categoryIdKey]);\r\n const rcElement = this.allCategories.findIndex((ele: any) => ele.category_id == category[this.categoryIdKey]);\r\n if (rcElement !== -1) {\r\n const parentRc: any = this.allCategories[rcElement];\r\n if (parentRc?.child_cat_ids?.length > 0) {\r\n parentRc.child_cat_ids.forEach((childElement: any) => {\r\n if(!this.selectedIds.includes(childElement)){\r\n this.selectedIds.push(childElement);\r\n }\r\n });\r\n }\r\n }\r\n } else {\r\n const index = this.selectedIds.findIndex((element: any) => element == category[this.categoryIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n const rcElement = this.allCategories.findIndex((ele: any) => ele.category_id == category[this.categoryIdKey]);\r\n if (rcElement !== -1) {\r\n const parentRc: any = this.allCategories[rcElement];\r\n if (parentRc?.child_cat_ids?.length > 0) {\r\n parentRc.child_cat_ids.forEach((childElement: any) => {\r\n const removeIndex = this.selectedIds.findIndex((removeElement: any) => removeElement == childElement);\r\n this.selectedIds.splice(removeIndex, 1);\r\n });\r\n }\r\n }\r\n }\r\n this.setList();\r\n\r\n }\r\n\r\n deleteEvent(event: any) {\r\n const index = this.selectedIds.findIndex((element: any) => element == event[this.categoryIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n this.setList();\r\n }\r\n\r\n selectAll(mode: any, activeTab: \"standards\" | \"regulations\" | \"internalControls\" | \"others\") {\r\n\r\n if (mode) {\r\n const list = [...this.categoryList[activeTab].list];\r\n list.forEach(element => {\r\n if (!this.selectedIds.includes(element[this.categoryIdKey])) {\r\n this.selectedIds.push(element[this.categoryIdKey]);\r\n }\r\n }); \r\n } else {\r\n const list = [...this.categoryList[activeTab].list];\r\n list.forEach(element => {\r\n if (this.selectedIds.includes(element[this.categoryIdKey])) {\r\n let idIndex = this.selectedIds.findIndex((id: any) => id == element[this.categoryIdKey]);\r\n this.selectedIds.splice(idIndex, 1);\r\n }\r\n });\r\n }\r\n this.setList();\r\n }\r\n\r\n setList() {\r\n const data: any = [];\r\n const categoryList = [...new Set(this.allCategories)] \r\n // cloneDeep(this.allCategories)\r\n const selectedIds =[...new Set(this.selectedIds)] \r\n // cloneDeep(this.selectedIds);\r\n this.categoryList.regulations.selectedList = [];\r\n this.categoryList.standards.selectedList = [];\r\n this.categoryList.internalControls.selectedList = [];\r\n this.categoryList.others.selectedList = [];\r\n\r\n categoryList.forEach((element: any) => {\r\n if (selectedIds.includes(element[this.categoryIdKey])) {\r\n data.push(element);\r\n }\r\n });\r\n this.selectedCategories = data;\r\n this.footerDetails.selectedData = data;\r\n\r\n this.categoryList.regulations.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.regulations.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.standards.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.standards.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.internalControls.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.internalControls.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.others.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.others.selectedList.push(category)\r\n }\r\n });\r\n if (!this.activeTab) {\r\n this.setActiveTab();\r\n }\r\n }\r\n setActiveTab() {\r\n if (this.categoryList.regulations.selectedList.length > 0) {\r\n this.activeTab = 'regulations'\r\n } else if (this.categoryList.standards.selectedList.length > 0) {\r\n this.activeTab = 'standards'\r\n } else if (this.categoryList.internalControls.selectedList.length > 0) {\r\n this.activeTab = 'internalControls'\r\n } else if (this.categoryList.others.selectedList.length > 0) {\r\n this.activeTab = 'others'\r\n } else {\r\n this.activeTab = 'regulations'\r\n }\r\n }\r\n\r\n\r\n checkSelectAll(activeTab: \"standards\" | \"regulations\" | \"internalControls\" | \"others\") {\r\n const data = this.categoryList[activeTab].list.every((user: any) => this.selectedIds.includes(user[this.categoryIdKey]));\r\n return data;\r\n }\r\n\r\n save() {\r\n this.saveSelectedCategory.emit(this.selectedCategories);\r\n }\r\n\r\n close() {\r\n this.closeCategoriesList.emit();\r\n }\r\n}\r\n","<div class=\"category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <span class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Program(s)</span>\r\n </div>\r\n <div class=\"category-list-mid\">\r\n <div class=\"vx-d-flex vx-mb-2\">\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'regulations'\" (click)=\"activeTab = 'regulations'\">\r\n <div class=\"left\">\r\n <label>REGULATIONS</label>\r\n <p *ngIf=\"categoryList?.regulations?.selectedList?.length != 0\">\r\n {{categoryList?.regulations?.selectedList?.length}}\r\n {{(categoryList?.regulations?.selectedList?.length==1)?'Program':'Programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.regulations?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'standards'\" (click)=\"activeTab = 'standards'\">\r\n <div class=\"left\">\r\n <label>STANDARDS</label>\r\n <p *ngIf=\"categoryList?.standards?.selectedList?.length != 0\">\r\n {{categoryList?.standards?.selectedList?.length}}\r\n {{(categoryList?.standards?.selectedList?.length==1)?'Program':'Programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.standards?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'internalControls'\" (click)=\"activeTab = 'internalControls'\">\r\n <div class=\"left\">\r\n <label>INTERNAL CONTROLS</label>\r\n <p *ngIf=\"categoryList?.internalControls?.selectedList?.length != 0\">\r\n {{categoryList?.internalControls?.selectedList?.length}}\r\n {{(categoryList?.internalControls?.selectedList?.length==1)?'Program':'programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.internalControls?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'others'\" (click)=\"activeTab = 'others'\">\r\n <div class=\"left\">\r\n <label>OTHERS</label>\r\n <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\r\n {{categoryList?.others?.selectedList?.length}}\r\n {{(categoryList?.others?.selectedList?.length==1)?'Program':'Programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.others?.list?.length}}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"category-list-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Program\" />\r\n </div>\r\n\r\n <ng-container *ngIf=\"(categoryList[activeTab].list | filter: search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll(activeTab)\" (ngValueChange)=\"selectAll($event,activeTab)\">\r\n <strong>{{checkSelectAll(activeTab) ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"category-list-item vx-mb-4\" [class.with-selectAll]=\"searchList.length > 1\" *ngIf=\"searchList.length > 0\">\r\n <ul class=\"category-list-item-ul vx-m-0 vx-p-0\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let category of searchList\" >\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\r\n (ngValueChange)=\"selectCategory($event,activeTab,category)\">\r\n <ul class=\"categories\">\r\n <li *ngFor=\"let entity of category.category_name; let j = index\" [arTooltip]=\"entity\" placement=\"bottom-left\" delay=\"0\">{{entity}}</li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <app-no-data *ngIf=\"searchList.length == 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"close()\"\r\n (deleteEvent) =\"deleteEvent($event)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../../ui-kit/dashboard-footer/dashboard-footer-config';\r\nimport { RiskCategoriesConfig } from './risk-categories-config';\r\n\r\n@Component({\r\n selector: 'app-risk-categories',\r\n templateUrl: './risk-categories.component.html',\r\n styleUrls: ['./risk-categories.component.less']\r\n})\r\nexport class RiskCategoriesComponent implements OnInit {\r\n\r\n\r\n @Input() categoryList: RiskCategoriesConfig = {\r\n strategic: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n operational: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n compliance: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n others: {\r\n list: [],\r\n selectedList: [],\r\n }\r\n }\r\n @Input() allCategories: any[] = [];\r\n\r\n @Input() categoryIdKey: any;\r\n @Input() selectedCategories: any[] = [];\r\n\r\n search = '';\r\n activeTab: \"strategic\" | \"operational\" | \"compliance\" | \"others\"=\"strategic\";\r\n selectedIds: any[] = [];\r\n animation = false;\r\n blockWidth: any;\r\n footerDetails: DashboardFooterConfig = {\r\n selectedData: [],\r\n nonRemovableList:[],\r\n displayElementKey: 'category_name',\r\n elementId: 'category_id',\r\n singularText: 'Risk Category selected',\r\n pluralText: 'Risk Categories selected',\r\n showFrequency: false,\r\n frequencyText: '',\r\n isDisabled: false\r\n\r\n };\r\n\r\n @Output() saveSelectedCategory = new EventEmitter();\r\n @Output() closeList = new EventEmitter();\r\n @Output() closeCategoriesList = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n this.selectedIds = [];\r\n if (this.selectedCategories) {\r\n this.selectedCategories.forEach(element => {\r\n this.selectedIds.push(element[this.categoryIdKey]);\r\n });\r\n }\r\n this.setList()\r\n \r\n }\r\n\r\n selectCategory(mode: any, activeTab: any, category: any) {\r\n if (mode) {\r\n this.selectedIds.push(category[this.categoryIdKey]);\r\n } else {\r\n const index = this.selectedIds.findIndex((element: any) => element == category[this.categoryIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n }\r\n this.setList();\r\n\r\n }\r\n\r\n deleteEvent(event: any) {\r\n const index = this.selectedIds.findIndex((element: any) => element == event[this.categoryIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n this.setList();\r\n }\r\n\r\n selectAll(mode: any, activeTab: string) {\r\n\r\n if (mode) {\r\n if (activeTab === \"strategic\" || activeTab === \"operational\" || activeTab === \"compliance\" || activeTab === \"others\") {\r\n const list = this.categoryList[activeTab].list;\r\n list.forEach(element => {\r\n if (!this.selectedIds.includes(element[this.categoryIdKey])) {\r\n this.selectedIds.push(element[this.categoryIdKey]);\r\n }\r\n });\r\n }\r\n\r\n } else {\r\n if (activeTab === \"strategic\" || activeTab === \"operational\" || activeTab === \"compliance\" || activeTab === \"others\") {\r\n const list = [...this.categoryList[activeTab].list];\r\n list.forEach(element => {\r\n if (this.selectedIds.includes(element[this.categoryIdKey])) {\r\n let idIndex = this.selectedIds.findIndex((id: any) => id == element[this.categoryIdKey]);\r\n this.selectedIds.splice(idIndex, 1);\r\n }\r\n });\r\n }\r\n\r\n }\r\n this.setList();\r\n }\r\n\r\n setList() {\r\n const data: any = [];\r\n const categoryList = [...new Set(this.allCategories)] \r\n // cloneDeep(this.allCategories)\r\n const selectedIds =[...new Set(this.selectedIds)] \r\n // cloneDeep(this.selectedIds);\r\n this.categoryList.strategic.selectedList = [];\r\n this.categoryList.operational.selectedList = [];\r\n this.categoryList.compliance.selectedList = [];\r\n this.categoryList.others.selectedList = [];\r\n\r\n categoryList.forEach((element: any) => {\r\n if (selectedIds.includes(element[this.categoryIdKey])) {\r\n data.push(element);\r\n }\r\n });\r\n this.selectedCategories = data;\r\n this.footerDetails.selectedData = data;\r\n\r\n this.categoryList.strategic.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.strategic.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.operational.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.operational.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.compliance.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.compliance.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.others.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.others.selectedList.push(category)\r\n }\r\n });\r\n if (!this.activeTab) {\r\n this.setActiveTab();\r\n }\r\n }\r\n setActiveTab() {\r\n if (this.categoryList.strategic.selectedList.length > 0) {\r\n this.activeTab = 'strategic'\r\n } else if (this.categoryList.operational.selectedList.length > 0) {\r\n this.activeTab = 'operational'\r\n } else if (this.categoryList.compliance.selectedList.length > 0) {\r\n this.activeTab = 'compliance'\r\n } else if (this.categoryList.others.selectedList.length > 0) {\r\n this.activeTab = 'others'\r\n } else {\r\n this.activeTab = 'strategic'\r\n }\r\n }\r\n\r\n\r\n checkSelectAll(activeTab: string) {\r\n if (activeTab === \"strategic\" || activeTab === \"operational\" || activeTab === \"compliance\" || activeTab === \"others\") {\r\n const data = this.categoryList[activeTab].list.every((user: any) => this.selectedIds.includes(user[this.categoryIdKey]));\r\n return data;\r\n }\r\n }\r\n\r\n save() {\r\n this.saveSelectedCategory.emit(this.selectedCategories);\r\n }\r\n\r\n close() {\r\n this.closeCategoriesList.emit();\r\n }\r\n}\r\n","<div class=\"risk-category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"risk-category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <span class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risk Category(s)</span>\r\n </div>\r\n <div class=\"risk-category-list-mid\">\r\n <div class=\"vx-d-flex vx-mb-2\">\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'strategic'\" (click)=\"activeTab = 'strategic'\">\r\n <div class=\"left\">\r\n <label>strategic</label>\r\n <p *ngIf=\"categoryList?.strategic?.selectedList?.length != 0\">\r\n {{categoryList?.strategic?.selectedList?.length}}\r\n {{(categoryList?.strategic?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.strategic?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'operational'\" (click)=\"activeTab = 'operational'\">\r\n <div class=\"left\">\r\n <label>operational</label>\r\n <p *ngIf=\"categoryList?.operational?.selectedList?.length != 0\">\r\n {{categoryList?.operational?.selectedList?.length}}\r\n {{(categoryList?.operational?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.operational?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'compliance'\" (click)=\"activeTab = 'compliance'\">\r\n <div class=\"left\">\r\n <label>compliance</label>\r\n <p *ngIf=\"categoryList?.compliance?.selectedList?.length != 0\">\r\n {{categoryList?.compliance?.selectedList?.length}}\r\n {{(categoryList?.compliance?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.compliance?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'others'\" (click)=\"activeTab = 'others'\">\r\n <div class=\"left\">\r\n <label>OTHERS</label>\r\n <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\r\n {{categoryList?.others?.selectedList?.length}}\r\n {{(categoryList?.others?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.others?.list?.length}}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"risk-category-list-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Risk Category\" />\r\n </div>\r\n\r\n <ng-container *ngIf=\"(categoryList[activeTab]?.list | filter: search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll(activeTab)\" (ngValueChange)=\"selectAll($event,activeTab)\">\r\n <strong>{{checkSelectAll(activeTab) ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"risk-category-list-item vx-mb-4\" [class.with-selectAll]=\"searchList.length > 1\" *ngIf=\"searchList.length > 0\">\r\n <ul class=\"risk-category-list-item-ul vx-m-0 vx-p-0\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let category of searchList\" >\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\r\n (ngValueChange)=\"selectCategory($event,activeTab,category)\">\r\n <ul class=\"categories\">\r\n <li [arTooltip]=\"category.category_name\" placement=\"bottom-left\" delay=\"0\">{{category.category_name}}</li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n <app-no-data *ngIf=\"searchList.length == 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"close()\"\r\n (deleteEvent) =\"deleteEvent($event)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../../ui-kit/dashboard-footer/dashboard-footer-config';\r\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-frequency',\r\n templateUrl: './frequency.component.html',\r\n styleUrls: ['./frequency.component.less']\r\n})\r\nexport class FrequencyComponent implements OnInit,OnChanges {\r\n animation = true;\r\n @Input() savedFrequencyTab: string | undefined;\r\n monthlyDate = 1;\r\n quarterlyDate = 1;\r\n @Input() savedFrequencies: any;\r\n @Input() selectedDate: any;\r\n frequencyTab = 'weekly';\r\n showFrequency = true;\r\n dayNames = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\r\n monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n quarters = ['January, April, July, October', 'February, May, August, November', 'March, June, September, December'];\r\n selectedDays: any[] = [0];\r\n selectedMonths: any[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\r\n selectedQuarter = 0;\r\n @Output() closeFrequencyPopup = new EventEmitter<string>();\r\n @Output() saveFrequency = new EventEmitter<any>();\r\n footerDetails: DashboardFooterConfig = {\r\n selectedData: [],\r\n nonRemovableList:[],\r\n displayElementKey: '',\r\n elementId: '',\r\n singularText: '',\r\n pluralText: '',\r\n showFrequency: true,\r\n frequencyText: 'You have selected a <strong>' + this.frequencyTab + '</strong> frequency.',\r\n isDisabled: false\r\n\r\n };\r\n showRadio = true;\r\n constructor(private snackBar:SnackBarService) { }\r\n ngOnChanges(){\r\n this.savedFrequencies = [...new Set(this.savedFrequencies)]\r\n }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n if (this.savedFrequencyTab) {\r\n this.changeTab(this.savedFrequencyTab);\r\n }\r\n if (this.selectedDate) {\r\n switch (this.savedFrequencyTab) {\r\n case 'weekly':\r\n this.selectedDays = [...new Set(this.savedFrequencies)]\r\n break;\r\n case 'monthly':\r\n this.monthlyDate = this.selectedDate;\r\n this.selectedMonths = [...new Set(this.savedFrequencies)]\r\n\r\n break;\r\n case 'quarterly':\r\n this.showRadio = false;\r\n setTimeout(() => {\r\n this.showRadio = true\r\n }, 100);\r\n this.quarterlyDate = this.selectedDate\r\n this.selectedQuarter = this.savedFrequencies;\r\n\r\n break;\r\n\r\n }\r\n }\r\n\r\n }\r\n closeFrequency() {\r\n this.closeFrequencyPopup.emit();\r\n }\r\n daySelectionChange(event: any, index: any) {\r\n if (event) { //checkbox was selected\r\n this.selectedDays.push(index);\r\n } else {\r\n let unselectedElementIndex = this.selectedDays.indexOf(index);\r\n this.selectedDays.splice(unselectedElementIndex, 1);\r\n }\r\n this.checkFrequencyValidity();\r\n }\r\n monthSelectionChange(event: any, index: any) {\r\n if (event) {\r\n this.selectedMonths.push(index);\r\n } else {\r\n let unselectedElementIndex = this.selectedMonths.indexOf(index);\r\n this.selectedMonths.splice(unselectedElementIndex, 1);\r\n }\r\n this.checkDateValidity(this.monthlyDate,'monthly')\r\n this.checkFrequencyValidity();\r\n }\r\n\r\n quarterSelectionChange(event: any, index: any) {\r\n this.selectedQuarter = index;\r\n this.checkDateValidity(this.quarterlyDate,'quarterly');\r\n this.checkFrequencyValidity();\r\n }\r\n\r\n changeTab(tabValue: string) {\r\n this.frequencyTab = tabValue;\r\n this.footerDetails.frequencyText = 'You have selected a <strong>' + this.frequencyTab + '</strong> frequency.';\r\n this.footerDetails.isDisabled = false;\r\n this.setToDefaultValues()\r\n if (this.frequencyTab === this.savedFrequencyTab) {\r\n switch (this.frequencyTab) {\r\n case 'weekly': {\r\n this.selectedDays = [...this.savedFrequencies];\r\n this.monthlyDate = 1;\r\n this.quarterlyDate = 1;\r\n break;\r\n }\r\n case 'monthly': {\r\n this.selectedMonths = [...this.savedFrequencies];\r\n this.monthlyDate = this.selectedDate;\r\n this.quarterlyDate = 1;\r\n this.checkDateValidity(this.monthlyDate,'monthly')\r\n break;\r\n }\r\n case 'quarterly': {\r\n this.selectedQuarter = this.savedFrequencies;\r\n this.quarterlyDate = this.selectedDate;\r\n this.monthlyDate = 1;\r\n this.checkDateValidity(this.quarterlyDate,'quarterly')\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n setToDefaultValues() {\r\n this.selectedDays = [0];\r\n this.selectedMonths = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\r\n this.selectedQuarter = 0;\r\n }\r\n\r\n submitFrequency() {\r\n let stringVal = \"Every \";\r\n let frequencies;\r\n let selectedDate = 1;\r\n switch (this.frequencyTab) {\r\n case 'weekly': {\r\n if (this.selectedDays.length > 0) {\r\n this.selectedDays.sort();\r\n frequencies = this.selectedDays;\r\n this.selectedDays.forEach((dayIndex, index) => {\r\n stringVal += index === 0 ? this.dayNames[dayIndex] : ', ' + this.dayNames[dayIndex];\r\n })\r\n } else {\r\n // nothing was selected\r\n this.closeFrequency();\r\n }\r\n break;\r\n }\r\n case 'monthly': {\r\n stringVal = \" of every \";\r\n if (this.selectedMonths.length > 0) {\r\n frequencies = this.selectedMonths;\r\n this.monthNames.forEach((monthNames: string, monthIndex: number) => {\r\n if (this.selectedMonths.includes(monthIndex)) {\r\n stringVal += monthIndex === 0 ? monthNames : ', ' + monthNames;\r\n\r\n }\r\n })\r\n let monthDateName;\r\n if (this.monthlyDate == 1) {\r\n monthDateName = '1st'\r\n }\r\n else if (this.monthlyDate == 2) {\r\n monthDateName = '2nd'\r\n }\r\n else if (this.monthlyDate == 3) {\r\n monthDateName = '3rd'\r\n }\r\n else {\r\n monthDateName = this.monthlyDate + 'th'\r\n }\r\n stringVal = monthDateName + stringVal;\r\n selectedDate = this.monthlyDate;\r\n } else {\r\n // nothing was selected\r\n this.closeFrequency();\r\n }\r\n break;\r\n }\r\n case 'quarterly': {\r\n stringVal = \" of every \";\r\n\r\n if (this.selectedQuarter >= 0) {\r\n frequencies = this.selectedQuarter;\r\n stringVal += this.quarters[this.selectedQuarter];\r\n selectedDate = this.quarterlyDate;\r\n let monthDateName;\r\n if (this.quarterlyDate == 1) {\r\n monthDateName = '1st'\r\n }\r\n else if (this.quarterlyDate == 2) {\r\n monthDateName = '2nd'\r\n }\r\n else if (this.quarterlyDate == 3) {\r\n monthDateName = '3rd'\r\n }\r\n else {\r\n monthDateName = this.quarterlyDate + 'th'\r\n }\r\n stringVal = monthDateName + stringVal;\r\n selectedDate = this.quarterlyDate;\r\n } else {\r\n // nothing was selected\r\n this.closeFrequency();\r\n }\r\n break;\r\n }\r\n }\r\n this.saveFrequency.emit({\r\n frequencyString: stringVal,\r\n frequencyType: this.frequencyTab,\r\n frequencies: frequencies,\r\n selectedDate\r\n })\r\n }\r\n \r\n checkDateValidity(date:number, type:string){\r\n if(date>31 || date<1){\r\n this.snackBar.show('Select valid date.','alert');\r\n this.footerDetails.isDisabled = true;\r\n return\r\n }else{\r\n this.footerDetails.isDisabled = false;\r\n }\r\n const monthList=[{name:'January',maxDays:31,value:0},{name:'February',maxDays:28,value:1},{name:'March',maxDays:31,value:2},\r\n {name:'April',maxDays:30,value:3},{name:'May',maxDays:31,value:4},{name:'June',maxDays:30,value:5},\r\n {name:'July',maxDays:31,value:6},{name:'August',maxDays:31,value:7},{name:'September',maxDays:30,value:8},\r\n {name:'October',maxDays:31,value:9},{name:'November',maxDays:30,value:10},{name:'December',maxDays:31,value:11}]\r\n switch (type) {\r\n case 'monthly':\r\n if(this.selectedMonths.length==1){\r\n const index = monthList.findIndex((ele:any)=>ele.value==this.selectedMonths[0]);\r\n if(date<=monthList[index].maxDays){\r\n this.footerDetails.isDisabled = false;\r\n \r\n }else{\r\n this.snackBar.show('Select valid date.','alert');\r\n this.footerDetails.isDisabled = true; \r\n }\r\n }else if(this.selectedMonths.length==0){\r\n this.footerDetails.isDisabled = true; \r\n }else{\r\n this.footerDetails.isDisabled = false;\r\n }\r\n\r\n break;\r\n default:\r\n this.footerDetails.isDisabled = false;\r\n return true;\r\n break;\r\n\r\n }\r\n\r\n}\r\n\r\ncheckFrequencyValidity(){\r\n switch (this.frequencyTab) {\r\n case 'weekly': {\r\n if (this.selectedDays.length > 0) {\r\n this.footerDetails.isDisabled = false;\r\n\r\n } else {\r\n this.footerDetails.isDisabled = true;\r\n }\r\n break;\r\n }\r\n case 'monthly': {\r\n \r\n if (this.selectedMonths.length > 0) {\r\n this.footerDetails.isDisabled = false;\r\n \r\n } else {\r\n this.footerDetails.isDisabled = true;\r\n }\r\n break;\r\n }\r\n case 'quarterly': {\r\n\r\n if (this.selectedQuarter >= 0){\r\n this.footerDetails.isDisabled = false;\r\n \r\n } else {\r\n this.footerDetails.isDisabled = true;\r\n }\r\n break;\r\n }\r\n } \r\n}\r\n\r\n}\r\n","<div class=\"create-frequency\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"create-frequency-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4 vx-mb-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Frequency</div>\r\n </div>\r\n <div class=\"create-frequency-body vx-pl-4 vx-pr-4\">\r\n <div class=\"create-frequency-body-inner\">\r\n <div class=\"create-frequency-tab\" [ngSwitch]=\"frequencyTab\">\r\n <div class=\"create-frequency-tab-head\">\r\n <ul class=\"navigation\">\r\n <li><button [class.active]=\"frequencyTab == 'weekly'\" (click)=\"changeTab('weekly')\">Weekly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'monthly'\" (click)=\"changeTab('monthly')\">Monthly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'quarterly'\" (click)=\"changeTab('quarterly')\">Quarterly</button></li>\r\n </ul>\r\n </div>\r\n <div class=\"create-frequency-tab-body vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Email Reminder Frequency:</div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'weekly'\">\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let day of dayNames; let dayIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"daySelectionChange($event, dayIndex)\" [ngValue]=\"selectedDays.includes(dayIndex)\">{{day}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list month\" *ngSwitchCase=\"'monthly'\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(monthlyDate,'monthly')\" [(ngModel)]=\"monthlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center vx-flex-wrap\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let month of monthNames; let monthIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"monthSelectionChange($event, monthIndex)\" [ngValue]=\"selectedMonths.includes(monthIndex)\">{{month}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'quarterly'\">\r\n <ng-container *ngIf=\"showRadio\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(quarterlyDate,'quarterly')\" [(ngModel)]=\"quarterlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center vx-w-100\" *ngFor=\"let quarter of quarters, let quarterIndex = index\">\r\n <app-cs-radio (checkedEvent)=\"quarterSelectionChange($event, quarterIndex)\" [checked]=\"selectedQuarter === quarterIndex\">{{quarter}}</app-cs-radio>\r\n </div>\r\n </div>\r\n </ng-container> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"create-frequency-footer\">\r\n <app-dashboard-footer \r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeFrequencyPopup.emit()\"\r\n (submitEvent)=\"submitFrequency()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { EditorConfig } from 'vcomply-editor';\r\nimport { DatePickerComponent, IDatePickerConfig } from 'ng2-date-picker';\r\nimport { CreateDashboardService } from './services/create-dashboard.service';\r\nimport { PaginationService } from './services/pagination.service';\r\nimport { UserListConfiguration } from './user-list/user-list.config';\r\nimport { CreateDashboardForm } from './create-dashboard-config';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\nimport { ConfigureWidgetsService } from './services/configure-widgets.service';\r\nimport { findIndex } from 'rxjs/operators';\r\n\r\n\r\nimport * as dayjs from 'dayjs';\r\n// import * as customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport { PopoverService } from '../ui-kit/popover/popover.service';\r\nimport { TextCountPipe } from './pipes/text-count.pipe';\r\n// dayjs.extend(customParseFormat);\r\n\r\n@Component({\r\n selector: 'app-create-dashboard',\r\n templateUrl: './create-dashboard.component.html',\r\n styleUrls: ['./create-dashboard.component.less'],\r\n providers: [TextCountPipe]\r\n})\r\nexport class CreateDashboardComponent implements OnInit, OnChanges {\r\n @Input() feature: any;\r\n\r\n activeSelector = '';\r\n disabled = false;\r\n @Input() mode = 'CREATE';\r\n @Input() dashboardId = '';\r\n @Output() close = new EventEmitter();\r\n @Input() createdBy = 0;\r\n\r\n @ViewChild('fromDatePicker') fromDatePicker!: DatePickerComponent;\r\n @ViewChild('toDatePicker') toDatePicker!: DatePickerComponent;\r\n animation = true;\r\n @Input() configureWidget = false\r\n\r\n totalPages = 1;\r\n totalList = 1;\r\n usersList: any[] = [];\r\n vLoader = true;\r\n userListLoaded = false;\r\n rcListLoaded = false;\r\n complianceCategoriesListLoaded = false;\r\n riskCategoryListLoaded = false;\r\n hideToDate = false;\r\n listDetails: UserListConfiguration = {\r\n selectedUsersList: [],\r\n selectedGroupList:[],\r\n nonRemovableUsersList: [],\r\n displayElementKey: 'member_name',\r\n displayGroupKey:'group_name',\r\n groupIdkey:'group_id',\r\n elementIdKey: 'member_id',\r\n tooltipKey: 'member_email',\r\n };\r\n dashboardDescription: EditorConfig = {\r\n placeholder: 'Description (Max limit: 250 characters)',\r\n mode: 'prime',\r\n id: 'description'\r\n }\r\n responsibilityCategoriesTree: any = {\r\n regulations: {\r\n list: [],\r\n selectedList: []\r\n },\r\n standards: {\r\n list: [],\r\n selectedList: []\r\n },\r\n internalControls: {\r\n list: [],\r\n selectedList: []\r\n },\r\n others: {\r\n list: [],\r\n selectedList: []\r\n }\r\n };\r\n allComplianceCategories: any[] = [];\r\n allRiskCategories: any[] = [];\r\n showRiskCategory = false;\r\n showCriteria = true;\r\n\r\n dashboardForm: CreateDashboardForm = {\r\n dashboardName: '',\r\n dashboardDescriptionText: '',\r\n selectedViewers: [],\r\n selectedGroup:[],\r\n selectedFromDate: undefined,\r\n selectedToDate: undefined,\r\n selectedResponsibilityCenters: [],\r\n selectedResponsibilityCategories: [],\r\n selectedRiskCategories: [],\r\n displayCriteria: 'or',\r\n configureWidget: [],\r\n frequencyDetails: '',\r\n selectedFrequencyType: '',\r\n selectedFrequencies: [0],\r\n frequencyMessage: '',\r\n frequencyDate: 1\r\n }\r\n\r\n\r\n openConfigureWidgets = false;\r\n selectedWidgets: any = [];\r\n displayedWidgets: any = []\r\n\r\n\r\n responsibilityCentersList = [];\r\n datePickerOverlay = false;\r\n dayNames = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\r\n monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n quarters = ['January, April, July, October', 'February, May, August, November', 'March, June, September, December'];\r\n\r\n categoryListLoaded = false;\r\n showRiskWidgets = false;\r\n showComplianceWidgets = false;\r\n isManageRisk: boolean = false;\r\n\r\n riskCategoryList = {\r\n strategic: {\r\n list: [],\r\n selectedList: []\r\n },\r\n operational: {\r\n list: [],\r\n selectedList: []\r\n },\r\n compliance: {\r\n list: [],\r\n selectedList: []\r\n },\r\n others: {\r\n list: [],\r\n selectedList: []\r\n },\r\n };\r\n\r\n fromDatePickerConfig: IDatePickerConfig = {\r\n min: this.getCurrentDate()\r\n }\r\n\r\n toDatePickerConfig: IDatePickerConfig = {\r\n }\r\n\r\n isSmiley!: boolean;\r\n smileyMessage: string = '';\r\n groupList: any;\r\n groupsEnabled: boolean=false;\r\n totalgroups: any;\r\n\r\n constructor(\r\n private createDashboardService: CreateDashboardService,\r\n private paginationService: PaginationService,\r\n private cdr: ChangeDetectorRef,\r\n private snackBar: SnackBarService,\r\n public popoverService: PopoverService,\r\n private configureWidgetsService: ConfigureWidgetsService,\r\n private textCount: TextCountPipe\r\n ) { }\r\n\r\n ngOnChanges() {\r\n if (this.createdBy) {\r\n this.listDetails.nonRemovableUsersList.push(this.createdBy);\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.close.emit({ mode: 'discard' });\r\n this.isSmiley = false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.groupsEnabled=this.feature?.isFeatureEnabled(\"ff_groups_improvements\");\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n // this.getOrganizationUsersCount('');\r\n this.getCategoryList();\r\n this.getRCList();\r\n this.getComplianceCategoryList();\r\n this.setFrequency(\"2~1~0~0\", 'import');\r\n this.checkWhetherAllListsLoaded();\r\n this.getUsersList('');\r\n this.getGroupList();\r\n this.createDashboardService.getUserInformation().subscribe((res: any) => {\r\n this.setPermission(res?.roleActions);\r\n const quickLink = res.quick_link;\r\n if (quickLink.risk) {\r\n this.showRiskCategory = true;\r\n } else {\r\n this.showRiskCategory = false;\r\n }\r\n }, error => { console.log(error) });\r\n\r\n }\r\n\r\n /**\r\n * Displays the listing pages the left side of policy form to set and edit the dropdown fields values\r\n * @param type holds name of particular list is to be displayed\r\n * @param event contains boolean value to display the list or not\r\n */\r\n activateSelector(type: any, event: boolean) {\r\n if (type == 'frequency' || this.activeSelector == 'frequency') {\r\n this.showCriteria = false;\r\n setTimeout(() => {\r\n this.showCriteria = true;\r\n }, 1);\r\n }\r\n this.activeSelector = event ? type : '';\r\n }\r\n\r\n openFromDatePicker() {\r\n this.fromDatePicker?.api?.open();\r\n this.datePickerOverlay = true;\r\n }\r\n\r\n openToDatePicker() {\r\n this.toDatePicker?.api?.open();\r\n this.datePickerOverlay = true;\r\n }\r\n closeFromDatePicker() {\r\n if (!this.dashboardForm.selectedFromDate) {\r\n this.dashboardForm.selectedToDate = undefined;\r\n this.hideToDate = true;\r\n setTimeout(() => {\r\n this.hideToDate = false;\r\n }, 20);\r\n this.fromDatePicker.api.close();\r\n this.datePickerOverlay = false;\r\n return\r\n }\r\n let minToDate = this.setToDate(this.dashboardForm.selectedFromDate)\r\n this.toDatePickerConfig = { min: minToDate };\r\n\r\n const fromDate = new Date(minToDate.split('-').reverse().join('-'));\r\n const toDate = new Date(this.dashboardForm.selectedToDate)\r\n const inValidDate = (fromDate >= toDate) ? true : false;\r\n if (inValidDate) {\r\n this.dashboardForm.selectedToDate = undefined;\r\n this.hideToDate = true;\r\n setTimeout(() => {\r\n this.hideToDate = false;\r\n }, 20);\r\n }\r\n this.fromDatePicker?.api?.close();\r\n this.datePickerOverlay = false;\r\n }\r\n\r\n closeToDatePicker() {\r\n this.toDatePicker?.api?.close();\r\n this.datePickerOverlay = false;\r\n }\r\n\r\n animateImage() {\r\n const circleImage = document.getElementsByClassName('image')\r\n }\r\n\r\n saveFrequency(eventValues: any) {\r\n this.dashboardForm.selectedFrequencyType = eventValues.frequencyType;\r\n this.dashboardForm.selectedFrequencies = eventValues.frequencies;\r\n this.dashboardForm.frequencyMessage = eventValues.frequencyString;\r\n this.dashboardForm.frequencyDate = eventValues.selectedDate;\r\n this.activateSelector('', false)\r\n }\r\n\r\n getCurrentDate() {\r\n let today = new Date();\r\n return today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear();\r\n }\r\n setToDate(data: string) {\r\n let today = new Date(data);\r\n return today.getDate() + 1 + '-' + (today.getMonth() + 1) + '-' + today.getFullYear();\r\n }\r\n getFromDate(data: string) {\r\n let today = new Date(data);\r\n return today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear();\r\n }\r\n\r\n /**\r\n * It takes a string, converts it to a date, then returns a string in the format of YYYY-MM-DD.\r\n * @param {string} data - the date you want to format\r\n * @returns A string in the format of YYYY-MM-DD\r\n */\r\n getDateFormate(data: string) {\r\n let today = new Date(data);\r\n return today.getFullYear() + '-' + String((today.getMonth() + 1)).padStart(2, '0')+ '-' + String(today.getDate()).padStart(2, '0');\r\n }\r\n\r\n configureDashboard() {\r\n let fieldsStatus = this.validateDashboard();\r\n if (fieldsStatus) {\r\n if (this.mode == 'CREATE') {\r\n this.vLoader = true;\r\n const payload = {\r\n dashboard_name: this.dashboardForm.dashboardName,\r\n dashboard_id: ''\r\n }\r\n this.createDashboardService.checkDuplicateDashboardName(payload).subscribe(res => {\r\n if (!res) {\r\n this.vLoader = false;\r\n this.showRiskWidgets = (this.isManageRisk && this.showRiskCategory && (this.dashboardForm.selectedRiskCategories.length > 0 || this.dashboardForm.selectedResponsibilityCenters.length > 0)) ? true : false;\r\n this.showComplianceWidgets = (this.dashboardForm.selectedResponsibilityCategories.length > 0 || this.dashboardForm.selectedResponsibilityCenters.length > 0) ? true : false;\r\n this.openConfigureWidgets = true;\r\n } else {\r\n this.vLoader = false;\r\n this.snackBar.show('A dashboard with this name already exists. Specify a different name for the dashboard.','alert');\r\n return;\r\n }\r\n }, error => {\r\n console.error(error)\r\n this.vLoader = false;\r\n });\r\n } else if (this.mode == 'EDIT') {\r\n this.vLoader = true;\r\n const payload = {\r\n dashboard_name: this.dashboardForm.dashboardName,\r\n dashboard_id: this.dashboardId\r\n }\r\n this.createDashboardService.checkDuplicateDashboardName(payload).subscribe(res => {\r\n if (!res) {\r\n this.vLoader = false;\r\n this.showRiskWidgets = (this.isManageRisk && this.showRiskCategory && (this.dashboardForm.selectedRiskCategories.length > 0 || this.dashboardForm.selectedResponsibilityCenters.length > 0)) ? true : false;\r\n this.showComplianceWidgets = (this.dashboardForm.selectedResponsibilityCategories.length > 0 || this.dashboardForm.selectedResponsibilityCenters.length > 0) ? true : false;\r\n this.openConfigureWidgets = true;\r\n } else {\r\n this.vLoader = false;\r\n this.snackBar.show('A dashboard with this name already exists. Specify a different name for the dashboard.','alert');\r\n return;\r\n }\r\n }, error => {\r\n this.vLoader = false;\r\n console.error(error)\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Fetches organization users count api to get total number of pages\r\n * @param Url contains prams\r\n */\r\n getOrganizationUsersCount(Url: any) {\r\n this.createDashboardService.getOrganizationUsersCount(Url).subscribe(res => {\r\n this.totalList = res.total_members;\r\n if (res.total_members && res.limit_per_page > 1) {\r\n this.totalPages = res.create_page;\r\n } else {\r\n this.totalPages = 1;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Get users list by making api call and pre selects all admins by adding to viewers\r\n * @param url contains query params for organization users api\r\n */\r\n getUsersList(url: any) {\r\n this.createDashboardService.getAllUsers().subscribe((res: any) => {\r\n\r\n this.usersList = res;\r\n this.userListLoaded = true;\r\n\r\n if (this.mode === 'EDIT') {\r\n this.vLoader = true;\r\n } else {\r\n this.dashboardForm.selectedViewers = this.setList(this.usersList, [this.createdBy], 'member_id');\r\n this.listDetails.selectedUsersList = this.dashboardForm.selectedViewers;\r\n this.vLoader = false;\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n getGroupList(){\r\n this.createDashboardService.getAllGroups().subscribe((res:any)=>{\r\n this.totalgroups = res.total_items;\r\n this.groupList=res.data;\r\n this.userListLoaded = true;\r\n if (this.mode === 'EDIT') {\r\n this.vLoader = true;\r\n } else {\r\n this.dashboardForm.selectedGroup = this.setList(this.groupList, [this.createdBy], 'group_id');\r\n this.listDetails.selectedGroupList = this.dashboardForm.selectedGroup;\r\n this.vLoader = false;\r\n }\r\n })\r\n }\r\n\r\n getComplianceCategoryList() {\r\n this.createDashboardService.getComplianceCategoriesListFromGlobal().subscribe((res: any) => {\r\n const data = res;\r\n this.allComplianceCategories = Object.assign(res)\r\n // cloneDeep(res);\r\n data.forEach((element: any) => {\r\n if (element && element.compliance_type == 0) {\r\n this.responsibilityCategoriesTree.others.list.push(element);\r\n }\r\n if (element && element.compliance_type == 1) {\r\n this.responsibilityCategoriesTree.regulations.list.push(element);\r\n }\r\n if (element && element.compliance_type == 2) {\r\n this.responsibilityCategoriesTree.standards.list.push(element);\r\n }\r\n if (element && element.compliance_type == 3) {\r\n this.responsibilityCategoriesTree.internalControls.list.push(element);\r\n }\r\n });\r\n this.complianceCategoriesListLoaded = true;\r\n }, (err: any) => {\r\n console.error(err);\r\n this.complianceCategoriesListLoaded = true;\r\n });\r\n }\r\n\r\n\r\n saveSelectedCategory(event: any) {\r\n console.log(\"event==>>>\", event);\r\n }\r\n\r\n getCategoryList() {\r\n this.createDashboardService.getCategoryList().subscribe((res: any) => {\r\n this.riskCategoryList.strategic.list = res.strategic_arr;\r\n this.riskCategoryList.operational.list = res.operational_arr;\r\n this.riskCategoryList.compliance.list = res.compliance_arr;\r\n this.riskCategoryList.others.list = res.others_arr;\r\n this.riskCategoryListLoaded = true;\r\n this.allRiskCategories = [...new Set(this.allRiskCategories.concat(res.strategic_arr, res.operational_arr, res.compliance_arr, res.others_arr))]\r\n\r\n }, err => {\r\n console.error(err);\r\n this.riskCategoryListLoaded = true;\r\n\r\n });\r\n }\r\n\r\n /**\r\n * It is to ensure whether all required lists on Policy from is loaded from the api call or not\r\n */\r\n checkWhetherAllListsLoaded() {\r\n if (this.rcListLoaded && this.complianceCategoriesListLoaded && this.riskCategoryListLoaded && this.userListLoaded) {\r\n if (this.mode === 'EDIT') {\r\n this.editDashboard();\r\n } else {\r\n this.vLoader = false;\r\n }\r\n } else {\r\n setTimeout(() => {\r\n this.checkWhetherAllListsLoaded();\r\n }, 300);\r\n }\r\n }\r\n\r\n setSelectedWidgets(data: any) {\r\n if (this.mode === 'CREATE') {\r\n const widgetsArray: any = []\r\n data.forEach((element: any) => {\r\n let obj: any = {}\r\n obj.module_name = element.module;\r\n obj._id = '';\r\n obj.widget_name = element.title\r\n obj.widget_code = element.id;\r\n obj.sub_widgets = [];\r\n obj.state = 'ACTIVE'\r\n if (element.subWidgets.length > 0) {\r\n element.subWidgets.forEach((subWidget: any) => {\r\n let subWidgetObject: any = {}\r\n subWidgetObject._id = '';\r\n subWidgetObject.widget_name = subWidget.title\r\n subWidgetObject.widget_code = subWidget.id;\r\n subWidgetObject.state = (subWidget.value) ? 'ACTIVE' : 'INACTIVE'\r\n obj.sub_widgets.push(Object.assign(subWidgetObject))\r\n });\r\n }\r\n widgetsArray.push(obj)\r\n });\r\n\r\n this.dashboardForm.configureWidget = widgetsArray;\r\n } else if (this.mode === 'EDIT') {\r\n const widgetsArray: any = []\r\n\r\n data.forEach((element: any) => {\r\n if (!JSON.stringify(this.dashboardForm.configureWidget).includes(element.id)) {\r\n let obj: any = {}\r\n obj.module_name = element.module;\r\n obj._id = '';\r\n obj.widget_name = element.title\r\n obj.widget_code = element.id;\r\n obj.sub_widgets = [];\r\n obj.state = 'ACTIVE'\r\n if (element.subWidgets.length > 0) {\r\n element.subWidgets.forEach((subWidget: any) => {\r\n let subWidgetObject: any = {}\r\n subWidgetObject._id = '';\r\n subWidgetObject.widget_name = subWidget.title\r\n subWidgetObject.widget_code = subWidget.id;\r\n subWidgetObject.state = (subWidget.value) ? 'ACTIVE' : 'INACTIVE'\r\n obj.sub_widgets.push(subWidgetObject)\r\n });\r\n }\r\n this.dashboardForm.configureWidget.push(obj)\r\n } else {\r\n const index = this.selectedWidgets.findIndex((ele: any) => ele.widget_code == element.id)\r\n if (index != -1) {\r\n this.selectedWidgets[index].state = 'ACTIVE'\r\n if (this.selectedWidgets[index].sub_widgets.length > 0) {\r\n this.selectedWidgets[index].sub_widgets.forEach((subWidgetData: any) => {\r\n const elementIndex = element.subWidgets.findIndex((ele: any) => ele.id == subWidgetData.widget_code)\r\n if (elementIndex != -1) {\r\n subWidgetData.state = (element.subWidgets[elementIndex].value) ? 'ACTIVE' : 'INACTIVE'\r\n }\r\n });\r\n }\r\n }\r\n\r\n }\r\n });\r\n this.dashboardForm.configureWidget.forEach((savedWidget: any) => {\r\n const index = data.findIndex((dataElement: any) => dataElement.id == savedWidget.widget_code)\r\n if (index == -1) {\r\n savedWidget.state = 'INACTIVE';\r\n if (savedWidget.sub_widgets.length > 0) {\r\n savedWidget.sub_widgets.forEach((saveSubWidget: any) => {\r\n saveSubWidget.state = 'INACTIVE'\r\n });\r\n }\r\n }\r\n });\r\n\r\n }\r\n this.selectedWidgets = data\r\n this.openConfigureWidgets = false;\r\n this.submitDashboard();\r\n\r\n }\r\n\r\n closeConfigureWidgets(event: boolean) {\r\n this.openConfigureWidgets = event;\r\n }\r\n\r\n /**\r\n * Filter list user's list based on pagination by making api call\r\n * @param event specifies a boolean value to call api\r\n */\r\n paginationFilter(event: any) {\r\n if (event) {\r\n this.getUsersList({\r\n p: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\r\n type: 'all_except_executive',\r\n q: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n getRCList() {\r\n this.createDashboardService.getResponsibilityCenterList().subscribe((res: any) => {\r\n this.responsibilityCentersList = res;\r\n this.rcListLoaded = true;\r\n\r\n }, (err: any) => {\r\n console.error(err);\r\n this.rcListLoaded = true;\r\n });\r\n }\r\n /**\r\n * #### Description\r\n *\r\n * Returns the unique array of object based on unique key\r\n * @param array\r\n * @param key\r\n * @returns\r\n */\r\n uniqueByProp(array: any, key: string) {\r\n return Array.from(\r\n array\r\n .reduce(\r\n (acc: any, item: any) => (\r\n item && item[key] && acc.set(item[key], item),\r\n acc\r\n ),\r\n new Map()\r\n )\r\n .values()\r\n );\r\n }\r\n\r\n saveSelectedList(type: string, selectedItems: any) {\r\n switch (type) {\r\n case 'rc':\r\n this.dashboardForm.selectedResponsibilityCenters = this.setList(this.responsibilityCentersList, selectedItems, 'item_id');\r\n if(this.dashboardForm.selectedResponsibilityCenters.length==0){\r\n if (this.dashboardForm.selectedResponsibilityCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='COMPLIANCE')\r\n } else if (this.dashboardForm.selectedRiskCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='RISK')\r\n }\r\n }\r\n break;\r\n case 'whoCanView':\r\n this.dashboardForm.selectedViewers = this.uniqueByProp(selectedItems?.users, 'member_id')\r\n this.listDetails.selectedUsersList = this.dashboardForm.selectedViewers;\r\n this.dashboardForm.selectedGroup = this.uniqueByProp(selectedItems?.groups, 'group_id')\r\n this.listDetails.selectedGroupList=this.dashboardForm.selectedGroup;\r\n break;\r\n case 'responsibilityCategories':\r\n this.dashboardForm.selectedResponsibilityCategories = selectedItems;\r\n if(this.dashboardForm.selectedResponsibilityCenters.length==0){\r\n if (this.dashboardForm.selectedResponsibilityCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='COMPLIANCE')\r\n } else if (this.dashboardForm.selectedRiskCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='RISK')\r\n }\r\n }\r\n break;\r\n case 'riskCategory':\r\n this.dashboardForm.selectedRiskCategories = selectedItems;\r\n if(this.dashboardForm.selectedResponsibilityCenters.length==0){\r\n if (this.dashboardForm.selectedResponsibilityCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='COMPLIANCE')\r\n } else if (this.dashboardForm.selectedRiskCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='RISK')\r\n }\r\n }\r\n break;\r\n }\r\n this.activateSelector('', false);\r\n }\r\n\r\n remove(type: any, event: any, removeIndex?: any) {\r\n switch (type) {\r\n case 'rc':\r\n const rcIndex = this.dashboardForm.selectedResponsibilityCenters.findIndex((rc: any) => rc.rc_id == event.rc_id);\r\n if (rcIndex !== -1) {\r\n const parentRc: any = this.dashboardForm.selectedResponsibilityCenters[rcIndex];\r\n this.dashboardForm.selectedResponsibilityCenters.splice(rcIndex, 1);\r\n\r\n if (parentRc?.item_child_ids?.length > 0) {\r\n parentRc.item_child_ids.forEach((childElement: any) => {\r\n const removeIndex = this.dashboardForm.selectedResponsibilityCenters.findIndex((removeElement: any) => removeElement.rc_id == childElement);\r\n this.dashboardForm.selectedResponsibilityCenters.splice(removeIndex, 1);\r\n });\r\n }\r\n }\r\n if(this.dashboardForm.selectedResponsibilityCenters.length==0){\r\n if (this.dashboardForm.selectedResponsibilityCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='COMPLIANCE')\r\n } else if (this.dashboardForm.selectedRiskCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='RISK')\r\n }\r\n }\r\n break;\r\n\r\n case 'whoCanView':\r\n const reviewerIndex = this.dashboardForm.selectedViewers.findIndex((viewer: any) => viewer.member_id == event.member_id);\r\n this.dashboardForm.selectedViewers.splice(reviewerIndex, 1);\r\n break;\r\n case 'whoCanViewGroup':\r\n const groups = this.dashboardForm.selectedGroup.findIndex((ele: any) => ele?.group_id == event?.group_id);\r\n this.dashboardForm.selectedGroup.splice(groups, 1);\r\n break;\r\n case 'responsibilityCategories':\r\n const CCcategoryIndex = this.dashboardForm.selectedResponsibilityCategories.findIndex((CCcategory: any) => CCcategory.category_id == event.category_id);\r\n this.dashboardForm.selectedResponsibilityCategories.splice(CCcategoryIndex, 1);\r\n if(this.dashboardForm.selectedResponsibilityCenters.length==0){\r\n if (this.dashboardForm.selectedResponsibilityCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='COMPLIANCE')\r\n } else if (this.dashboardForm.selectedRiskCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='RISK')\r\n }\r\n }\r\n break;\r\n\r\n case 'riskCategory':\r\n const riskCategoryIndex = this.dashboardForm.selectedRiskCategories.findIndex((riskCategory: any) => riskCategory.category_id == event.category_id);\r\n if (riskCategoryIndex !== -1) {\r\n const parent: any = this.dashboardForm.selectedRiskCategories[riskCategoryIndex];\r\n this.dashboardForm.selectedRiskCategories.splice(riskCategoryIndex, 1);\r\n if (parent?.child_cat_ids?.length > 0) {\r\n parent.child_cat_ids.forEach((childElement: any) => {\r\n const removeIndex = this.dashboardForm.selectedRiskCategories.findIndex((removeElement: any) => removeElement.category_id == childElement);\r\n this.dashboardForm.selectedRiskCategories.splice(removeIndex, 1);\r\n });\r\n }\r\n }\r\n this.dashboardForm.selectedRiskCategories.splice(riskCategoryIndex, 1);\r\n if(this.dashboardForm.selectedResponsibilityCenters.length==0){\r\n if (this.dashboardForm.selectedResponsibilityCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='COMPLIANCE')\r\n } else if (this.dashboardForm.selectedRiskCategories.length==0){\r\n this.selectedWidgets = this.selectedWidgets.filter((element:any)=>element.module_name!='RISK')\r\n }\r\n }\r\n break;\r\n\r\n }\r\n }\r\n\r\n setList(list: any[], ids: any[], key: string) {\r\n const data: any = [];\r\n\r\n ids.forEach((element: any) => {\r\n const index = list.findIndex((listElement: any) => listElement[key] == element);\r\n if (index !== -1) {\r\n data.push(list[index]);\r\n }\r\n });\r\n return data;\r\n }\r\n submitted = false\r\n\r\n /**\r\n * Returns id's from a particular list elements\r\n * @param list actual selected list\r\n * @param key contains key to extract id from the list\r\n */\r\n returnIds(list: any[], key: string) {\r\n return list?.map(ele => { if (ele[key]) { return ele[key]; } });\r\n }\r\n\r\n /**\r\n * Validates the data submitted on create dashboard form\r\n */\r\n validateDashboard() {\r\n setTimeout(() => {\r\n this.submitted = true;\r\n\r\n }, 100);\r\n const event = this.dashboardForm.dashboardName;\r\n const re = / |<br>/g;\r\n this.dashboardForm.dashboardName = event.replace(re, '').trim();\r\n const description = this.dashboardForm.dashboardDescriptionText;\r\n this.dashboardForm.dashboardDescriptionText = description.replace(re, '').trim();\r\n if (!this.dashboardForm.dashboardName || this.dashboardForm.dashboardName.trim() == ''\r\n || (this.dashboardForm.dashboardName.length > 30)\r\n || (this.textCount.transform(this.dashboardForm?.dashboardDescriptionText) > 250)\r\n || (this.dashboardForm?.selectedFromDate && (!this.dashboardForm?.selectedToDate))\r\n || (this.dashboardForm.selectedResponsibilityCenters.length == 0 &&\r\n this.dashboardForm.selectedResponsibilityCategories.length == 0 &&\r\n this.dashboardForm.selectedRiskCategories.length == 0)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * Makes an api call to create a policy\r\n * @param dashboard contains dashboardForm data\r\n */\r\n submitDashboard() {\r\n\r\n this.submitted = false;\r\n const valid = this.validateDashboard();\r\n if (!valid) {\r\n return false;\r\n }\r\n this.vLoader = true;\r\n const dashboard = this.dashboardForm;\r\n const payload: any = {\r\n dashboard_name: dashboard.dashboardName,\r\n description: [\r\n {\r\n content: dashboard.dashboardDescriptionText,\r\n attachments: []\r\n }\r\n ],\r\n visible_to_users: this.returnIds(dashboard.selectedViewers, 'member_id'),\r\n visible_to_groups:this.returnIds(dashboard.selectedGroup,'group_id'),\r\n responsibility_center: this.returnIds(dashboard.selectedResponsibilityCenters, 'item_id'),\r\n responsibility_category: this.returnIds(dashboard.selectedResponsibilityCategories, 'category_id'),\r\n risk_category: this.returnIds(dashboard.selectedRiskCategories, 'category_id'),\r\n display_criteria: (dashboard.displayCriteria === 'and') ? 'BOTH_RC_AND_CATEGORY' : 'RC_OR_CATEGORY',\r\n timeframe: {\r\n start_date: (dashboard.selectedFromDate) ? this.getDateFormate(dashboard?.selectedFromDate) : '',\r\n end_date: (dashboard.selectedToDate) ? this.getDateFormate(dashboard?.selectedToDate) : '',\r\n\r\n },\r\n email_summary: this.setFrequency('', 'export'), //setFormat\r\n widget_details: dashboard.configureWidget\r\n\r\n }\r\n if (this.mode == 'CREATE') {\r\n this.createDashboardService.submitDashboard(payload).subscribe((res: any) => {\r\n this.vLoader = false;\r\n // this.snackBar.show('The dashboard has been created.','info');\r\n this.isSmiley = true;\r\n this.smileyMessage = 'The dashboard has been created.'\r\n setTimeout(() => {\r\n this.isSmiley = false;\r\n this.close.emit({ mode: 'created', id: res._id });\r\n }, 3000);\r\n\r\n },\r\n err => {\r\n if (err.status === 409) {\r\n this.snackBar.show('A dashboard with this name already exists. Specify a different name for the dashboard.','alert');\r\n this.vLoader = false;\r\n } else {\r\n console.error(err);\r\n this.vLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?','alert');\r\n }\r\n\r\n\r\n }\r\n );\r\n }\r\n if (this.mode === 'EDIT') {\r\n payload.widget_update_flag = true\r\n this.createDashboardService.updateDashboard(this.dashboardId, payload).subscribe({\r\n next: (res: any) => {\r\n this.vLoader = false;\r\n // this.snackBar.show('The dashboard has been updated','info');\r\n this.isSmiley = true;\r\n this.smileyMessage = 'The dashboard has been updated';\r\n setTimeout(() => {\r\n this.isSmiley = false;\r\n this.close.emit({ mode: 'updated' });\r\n }, 3000);\r\n\r\n },\r\n error: (error: any) => {\r\n console.error(error);\r\n this.vLoader = false;\r\n this.snackBar.show('OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?','alert');\r\n }\r\n });\r\n\r\n\r\n }\r\n }\r\n\r\n editDashboard() {\r\n if (this.dashboardId) {\r\n this.createDashboardService.fetchDashboard(this.dashboardId).subscribe((res: any) => {\r\n const data = res;\r\n this.listDetails.nonRemovableUsersList = [res.created_by]\r\n data.visible_to_groups = (data?.visible_to_groups && data.visible_to_groups.length) ? data.visible_to_groups : [];\r\n this.populateDashboardForm(data);\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n }\r\n\r\n populateDashboardForm(data: any) {\r\n try{\r\n console.log(\" datattttta ===> \",data,this.groupList);\r\n this.dashboardForm.dashboardName = data?.dashboard_name,\r\n this.dashboardForm.dashboardDescriptionText = data?.description[0]?.content ?? \"\" ,\r\n this.dashboardForm.selectedViewers = this.setList(this.usersList, data?.visible_to_users, 'member_id');\r\n this.listDetails.selectedUsersList = this.dashboardForm.selectedViewers;\r\n data.visible_to_groups = (data?.visible_to_groups && data?.visible_to_groups.length) ? data?.visible_to_groups : [];\r\n this.dashboardForm.selectedGroup = this.setList(this.groupList, data?.visible_to_groups ?? [] ,'group_id');\r\n this.listDetails.selectedGroupList = this.dashboardForm.selectedGroup;\r\n this.dashboardForm.selectedResponsibilityCenters = this.setList(this.responsibilityCentersList, data?.responsibility_center, 'item_id');\r\n this.dashboardForm.selectedResponsibilityCategories = this.setList(this.allComplianceCategories, data?.responsibility_category, 'category_id');\r\n this.dashboardForm.selectedRiskCategories = this.setList(this.allRiskCategories, data?.risk_category, 'category_id');\r\n this.dashboardForm.displayCriteria = (data?.display_criteria === \"BOTH_RC_AND_CATEGORY\") ? 'and' : 'or';\r\n this.dashboardForm.selectedFromDate = (data?.timeframe?.start_date) ? new Date(data?.timeframe?.start_date) : undefined;\r\n this.dashboardForm.selectedToDate = (data?.timeframe?.end_date) ? new Date(data?.timeframe?.end_date) : undefined;\r\n this.vLoader = false;\r\n this.dashboardForm.configureWidget = data.widget_details\r\n this.selectedWidgets = data.widget_details.length > 0 ? [...new Set(data.widget_details)] : [];\r\n this.displayedWidgets = data.all_widgets.length > 0 ? [...new Set(data.all_widgets)] : [];\r\n this.setFrequency(data?.email_summary, 'import');\r\n let minToDate = this.setToDate(data?.timeframe?.start_date);\r\n this.toDatePickerConfig = { min: minToDate };\r\n this.hideToDate = true;\r\n setTimeout(() => {\r\n this.hideToDate = false;\r\n }, 20);\r\n }\r\n catch(error){\r\n console.log(\"populate dashboard error =>\", error)\r\n }\r\n }\r\n\r\n setFrequency(event: any, mode: any) {\r\n if (mode === 'export') {\r\n switch (this.dashboardForm.selectedFrequencyType) {\r\n case 'weekly':\r\n const weeklyValueData = this.dashboardForm?.selectedFrequencies?.map((ele: any) => Number(ele) + 1);\r\n const weeklyValue = weeklyValueData?.join();\r\n return '2~' + weeklyValue + '~0~0'\r\n case 'monthly':\r\n const monthlyValueData = this.dashboardForm?.selectedFrequencies?.map((ele: any) => Number(ele) + 1);\r\n const monthlyValue = monthlyValueData?.join();\r\n return '3~' + this.dashboardForm?.frequencyDate + '~' + monthlyValue + '~0'\r\n case 'quarterly':\r\n const quarterlyValueData = Number(this.dashboardForm.selectedFrequencies) + 1;\r\n return '7~' + this.dashboardForm.frequencyDate + '~' + quarterlyValueData + '~0'\r\n\r\n }\r\n }\r\n if (mode === 'import') {\r\n const val = event.split('~')\r\n switch (val[0]) {\r\n case '2': {\r\n let stringVal = \"Every \";\r\n this.dashboardForm.selectedFrequencyType = 'weekly'\r\n this.dashboardForm.selectedFrequencies = val[1]?.split(',')?.map((element: any) => Number(element) - 1);\r\n this.dashboardForm.selectedFrequencies?.forEach((dayIndex: any, index: any) => {\r\n stringVal += index === 0 ? this.dayNames[dayIndex] : ', ' + this.dayNames[dayIndex];\r\n })\r\n this.dashboardForm.frequencyMessage = stringVal;\r\n }\r\n\r\n break\r\n case '3': {\r\n let stringVal = \"every \";\r\n this.dashboardForm.selectedFrequencyType = 'monthly'\r\n this.dashboardForm.frequencyDate = val[1]\r\n this.dashboardForm.selectedFrequencies = val[2]?.split(',')?.map((element: any) => Number(element) - 1);\r\n this.dashboardForm.selectedFrequencies.forEach((monthIndex: any, index: any) => {\r\n stringVal += index === 0 ? this.monthNames[monthIndex] : ', ' + this.monthNames[monthIndex];\r\n })\r\n let monthDateName;\r\n if (this.dashboardForm.frequencyDate == \"1\") {\r\n monthDateName = '1st'\r\n }\r\n else if (this.dashboardForm.frequencyDate == \"2\") {\r\n monthDateName = '2nd'\r\n }\r\n else if (this.dashboardForm.frequencyDate == \"3\") {\r\n monthDateName = '3rd'\r\n }\r\n else {\r\n monthDateName = this.dashboardForm.frequencyDate + 'th'\r\n }\r\n this.dashboardForm.frequencyMessage = monthDateName + ' of ' + stringVal;\r\n }\r\n break\r\n case '7': {\r\n let stringVal = \"every \";\r\n this.dashboardForm.selectedFrequencyType = 'quarterly'\r\n this.dashboardForm.frequencyDate = val[1];\r\n this.dashboardForm.selectedFrequencies = Number(val[2].split(',')[0]) - 1;\r\n stringVal += this.quarters[this.dashboardForm.selectedFrequencies];\r\n let monthDateName;\r\n if (this.dashboardForm.frequencyDate == \"1\") {\r\n monthDateName = '1st'\r\n }\r\n else if (this.dashboardForm.frequencyDate == \"2\") {\r\n monthDateName = '2nd'\r\n }\r\n else if (this.dashboardForm.frequencyDate == \"3\") {\r\n monthDateName = '3rd'\r\n }\r\n else {\r\n monthDateName = this.dashboardForm.frequencyDate + 'th'\r\n }\r\n this.dashboardForm.frequencyMessage = monthDateName + ' of ' + stringVal;\r\n }\r\n break\r\n\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n //your code to update the model\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setPermission(roleActions: any){\r\n let ifExistRisk = roleActions?.find((el:any)=> el.moduleName == \"risk\");\r\n ifExistRisk?.subModule?.forEach( (module: any) => {\r\n module?.permissions?.forEach( (permission: any) => {\r\n switch(permission?.code) {\r\n case 'RRMR': {\r\n if(permission?.defaultPermission==1 || permission?.enable==1) {\r\n this.isManageRisk = true;\r\n };\r\n break;\r\n }\r\n }\r\n })\r\n })\r\n }\r\n}\r\n","<app-snack-bar></app-snack-bar>\r\n<div class=\"create-dashboard\" *ngIf=\"!openConfigureWidgets\">\r\n <div class=\"create-dashboard-container vx-d-flex vx-justify-end\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"more-option\" *ngIf=\"activeSelector && activeSelector!=='name'\">\r\n <app-user-list *ngIf=\"activeSelector==='whoCanView'\"\r\n (saveSelectedUsers)=\"saveSelectedList('whoCanView',$event)\"\r\n (closeUserList)=\"activateSelector('', false)\" [totalPages]=\"totalPages\" [totalList]=\"totalList\"\r\n [listDetails]=\"listDetails\" [totalgroupscount]=\"totalgroups\" [feature]=\"feature\" ></app-user-list>\r\n <app-responsibility-center *ngIf=\"activeSelector==='rcList'\"\r\n [responsibilityCentersList]=\"responsibilityCentersList\" [radioSelection]=\"false\"\r\n [selectedResponsibilityCenters]=\"dashboardForm.selectedResponsibilityCenters\" [rcIdKey]=\"'item_id'\"\r\n (saveSelectedList)=\"saveSelectedList('rc',$event)\" (closeRcList)=\"activateSelector('', false)\">\r\n </app-responsibility-center>\r\n <app-categories *ngIf=\"activeSelector==='responsibilityCategories'\"\r\n [categoryList]=\"responsibilityCategoriesTree\" [allCategories]=\"allComplianceCategories\"\r\n [categoryIdKey]=\"'category_id'\" [selectedCategories]=\"dashboardForm.selectedResponsibilityCategories\"\r\n (saveSelectedCategory)=\"saveSelectedList('responsibilityCategories',$event)\"\r\n (closeCategoriesList)=\"activateSelector('', false)\"></app-categories>\r\n <app-risk-categories *ngIf=\"activeSelector==='riskCategories'\" [categoryList]=\"riskCategoryList\"\r\n [allCategories]=\"allRiskCategories\" [categoryIdKey]=\"'category_id'\"\r\n [selectedCategories]=\"dashboardForm.selectedRiskCategories\"\r\n (saveSelectedCategory)=\"saveSelectedList('riskCategory',$event)\"\r\n (closeCategoriesList)=\"activateSelector('', false)\"></app-risk-categories>\r\n\r\n <app-frequency *ngIf=\"activeSelector==='frequency'\" (closeFrequencyPopup)=\"activateSelector('', false)\"\r\n (saveFrequency)=\"saveFrequency($event)\" [savedFrequencyTab]=\"dashboardForm.selectedFrequencyType\"\r\n [selectedDate]=\"dashboardForm.frequencyDate\" [savedFrequencies]=\"dashboardForm.selectedFrequencies\">\r\n </app-frequency>\r\n </div>\r\n <div class=\"vx-dialog-container side-dialog\">\r\n <app-loader-inline *ngIf=\"vLoader\"></app-loader-inline>\r\n\r\n <div class=\"form-group\" [class.disabled]=\"disabled\">\r\n <div class=\"vx-dialog-body-container\" (scroll)=\"animateImage()\" [class.hidden-scroll]=\"popoverService.stopScroll\">\r\n <!-- Dashboard Name -->\r\n <div class=\"form-group-row\" [class.disabled]=\"activeSelector && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/what.svg\" *ngIf=\"!dashboardForm.dashboardName || activeSelector === 'name'\" alt=\"\">\r\n <svg class=\"checkIcon\" *ngIf=\"dashboardForm.dashboardName && activeSelector !== 'name'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">Dashboard Name <span class=\"require vx-txt-red vx-fs-16 vx-fw-400\">*</span></label>\r\n <div class=\"vx-input-group\">\r\n <input class=\"textField\" placeholder=\"Add dashboard name (Max limit: 30 characters).\" [(ngModel)]=\"dashboardForm.dashboardName\" (keydown)=\"activeSelector = 'name'\" (focusin)=\"activateSelector('name',true)\" (focusout)=\"activateSelector('name',false)\" />\r\n \r\n <span class=\"counter\" *ngIf=\"dashboardForm?.dashboardName?.length > 0\">{{30 - dashboardForm.dashboardName.length}}</span>\r\n </div>\r\n\r\n <p class=\"vx-txt-error\" [appScrollInView]=\"true\" *ngIf=\"submitted && ( dashboardForm?.dashboardName?.length>30 || !dashboardForm?.dashboardName)\">{{(dashboardForm.dashboardName.length>30)?'You have exceeded the maximum character limit of 30 characters.':'Please enter a name for this Dashboard.'}}</p>\r\n\r\n <div class=\"vx-input-group vx-mt-2\">\r\n <vcomply-editor [editorConfig]=\"dashboardDescription\" [(ngModel)]=\"dashboardForm.dashboardDescriptionText\"></vcomply-editor>\r\n <span class=\"counter\" *ngIf=\"dashboardForm?.dashboardDescriptionText?.length > 0\">{{250 - (dashboardForm?.dashboardDescriptionText | textCount)}}</span>\r\n </div>\r\n\r\n <p class=\"vx-txt-error\" [appScrollInView]=\"true\" *ngIf=\"submitted && (dashboardForm?.dashboardDescriptionText | textCount) > 250\">You have exceeded the maximum character limit of 250 characters.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Who -->\r\n <div class=\"form-group-row\" [class.active]=\"activeSelector === 'whoCanView'\" [class.disabled]=\" activeSelector && activeSelector !== 'whoCanView' && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/who.svg\" *ngIf=\"dashboardForm?.selectedViewers?.length==0 || activeSelector === 'whoCanView'\" alt=\"\">\r\n <svg class=\"checkIcon\" *ngIf=\"dashboardForm?.selectedViewers?.length>0 && activeSelector !== 'whoCanView'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">Who can view this dashboard?<span class=\"require vx-txt-red vx-fs-16 vx-fw-400\">*</span></label>\r\n <div *ngIf=\"dashboardForm?.selectedViewers?.length==0\" class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" (click)=\"activateSelector('whoCanView', true)\">\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">Who can view this dashboard?</div>\r\n </div>\r\n\r\n <div *ngIf=\"dashboardForm?.selectedViewers?.length>0\" class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\r\n <ng-container *ngIf=\"!groupsEnabled\" id=\"onlyuserslist\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngFor=\"let user of dashboardForm?.selectedViewers?.slice(0,1)\">\r\n <i class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\" *ngIf=\"!listDetails.nonRemovableUsersList.includes(user.member_id)\" (click)=\"remove('whoCanView',user)\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"user.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{user.member_name}}</span>\r\n <button *ngIf=\"dashboardForm?.selectedViewers?.length > 1 && !groupsEnabled\" class=\"countBtn greenBg vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"userList.popover()\" placement=\"left\">+{{dashboardForm?.selectedViewers?.slice(1).length}}</button>\r\n </div>\r\n <app-popover #userList [dontCloseonClick]=\"true\" >\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let user of dashboardForm?.selectedViewers | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"user?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" *ngIf=\"!listDetails.nonRemovableUsersList.includes(user.member_id) && !groupsEnabled\" (click)=\"remove('whoCanView',user)\"></i> {{ user?.member_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </ng-container>\r\n\r\n <div *ngIf=\"groupsEnabled\" class=\"vx-d-flex vx-align-center\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt\">USER(S)</span>\r\n <button class=\"countBtn greenBg vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"userCount.popover()\" placement=\"left\">{{dashboardForm?.selectedViewers?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"dashboardForm?.selectedGroup?.length && dashboardForm?.selectedViewers?.length\">&</span>\r\n <div *ngIf=\"dashboardForm?.selectedGroup?.length\" id=\"usersandgroups\" class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt\">USER GROUP(S)</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"groupCount.popover()\" placement=\"right\">{{dashboardForm?.selectedGroup?.length}}</button>\r\n </div>\r\n\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let data of dashboardForm?.selectedViewers\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"data.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" *ngIf=\"!listDetails.nonRemovableUsersList.includes(data.member_id)\" (click)=\"remove('whoCanView',data)\"></i> {{data.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n \r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let data of dashboardForm?.selectedGroup\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"data.group_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"remove('whoCanViewGroup',data)\" ></i> {{data.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <button *ngIf=\"activeSelector !== 'whoCanView'\" class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"activateSelector('whoCanView',true)\">\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div class=\"form-group-row\" [class.active]=\"activeSelector === 'rcList'\" [class.disabled]=\" activeSelector && activeSelector !== 'rcList' && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"dashboardForm?.selectedResponsibilityCenters?.length==0 || activeSelector === 'rcList'\" src=\"./assets/images/responsibility-center.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm?.selectedResponsibilityCenters?.length>0 && activeSelector !== 'rcList'\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">RESPONSIBILITY CENTER(S)</label>\r\n <div *ngIf=\"dashboardForm?.selectedResponsibilityCenters?.length==0\" class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" (click)=\"activateSelector('rcList', true)\" [class.error]=\"submitted && dashboardForm?.selectedResponsibilityCenters?.length==0 && dashboardForm?.selectedResponsibilityCategories?.length==0 && dashboardForm?.selectedRiskCategories?.length==0\">\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">Select the Responsibility Center(s) that you would like<br>displayed in the Dashboard, if any.</div>\r\n </div>\r\n\r\n <div *ngIf=\"dashboardForm?.selectedResponsibilityCenters?.length>0\" class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngFor=\"let rc of dashboardForm?.selectedResponsibilityCenters?.slice(0,1)\">\r\n <i class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\" (click)=\"remove('rc',rc)\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"rc.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rc.item_name}}</span>\r\n <button *ngIf=\"dashboardForm?.selectedResponsibilityCenters?.length > 1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"rcList.popover()\" placement=\"left\">+{{dashboardForm?.selectedResponsibilityCenters?.slice(1).length}}</button>\r\n\r\n <app-popover #rcList [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let rc of dashboardForm?.selectedResponsibilityCenters | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"rc?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"remove('rc',rc)\"></i> {{ rc?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <button *ngIf=\"activeSelector !== 'rcList'\" class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"activateSelector('rcList',true)\">\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Program -->\r\n <div class=\"form-group-row\" [class.active]=\"activeSelector === 'responsibilityCategories'\" [class.disabled]=\" activeSelector && activeSelector !== 'responsibilityCategories' && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"dashboardForm?.selectedResponsibilityCategories?.length==0 || activeSelector === 'responsibilityCategories'\" src=\"./assets/images/category.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm?.selectedResponsibilityCategories?.length>0 && activeSelector !== 'responsibilityCategories'\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">PROGRAM</label>\r\n <div *ngIf=\"dashboardForm?.selectedResponsibilityCategories?.length==0\" class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" (click)=\"activateSelector('responsibilityCategories', true)\" [class.error]=\"submitted && dashboardForm?.selectedResponsibilityCenters?.length==0 && dashboardForm?.selectedResponsibilityCategories?.length==0 && dashboardForm?.selectedRiskCategories?.length==0\">\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">Select the Program(s) that you would like displayed in the<br>Dashboard, if any.</div>\r\n </div>\r\n\r\n <div *ngIf=\"dashboardForm?.selectedResponsibilityCategories?.length>0\" class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngFor=\"let rCategory of dashboardForm?.selectedResponsibilityCategories?.slice(0,1)\">\r\n <i class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\" (click)=\"remove('responsibilityCategories',rCategory)\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"rCategory.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rCategory.item_name}}</span>\r\n <button *ngIf=\"dashboardForm?.selectedResponsibilityCategories?.length > 1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"rCategoryList.popover()\" placement=\"left\">+{{dashboardForm?.selectedResponsibilityCategories?.slice(1).length}}</button>\r\n\r\n <app-popover #rCategoryList [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let rCategory of dashboardForm?.selectedResponsibilityCategories | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"rCategory?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"remove('responsibilityCategories',rCategory)\"></i> {{ rCategory?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <button *ngIf=\"activeSelector !== 'responsibilityCategories'\" class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"activateSelector('responsibilityCategories',true)\">\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Risk Category -->\r\n <div class=\"form-group-row\" [class.active]=\"activeSelector === 'riskCategories'\" *ngIf=\"showRiskCategory && isManageRisk\" [class.disabled]=\" activeSelector && activeSelector !== 'riskCategories' && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"dashboardForm?.selectedRiskCategories?.length==0 || activeSelector === 'riskCategories'\" src=\"./assets/images/category.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm?.selectedRiskCategories?.length>0 && activeSelector !== 'riskCategories'\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\" *ngIf=\"isManageRisk\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">RISK CATEGORIES</label>\r\n <div *ngIf=\"dashboardForm?.selectedRiskCategories?.length==0\" class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" (click)=\"activateSelector('riskCategories', true)\" [class.error]=\"submitted && dashboardForm?.selectedResponsibilityCenters?.length==0 && dashboardForm?.selectedResponsibilityCategories?.length==0 && dashboardForm?.selectedRiskCategories?.length==0\">\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">Select the Risk Categories that you would like displayed<br>in the Dashboard, if any.</div>\r\n </div>\r\n\r\n <div *ngIf=\"dashboardForm?.selectedRiskCategories?.length>0\" class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngFor=\"let riskCategory of dashboardForm?.selectedRiskCategories?.slice(0,1)\">\r\n <i class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\" (click)=\"remove('riskCategory',riskCategory)\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"riskCategory.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{riskCategory.category_name}}</span>\r\n <button *ngIf=\"dashboardForm?.selectedRiskCategories?.length > 1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"riskList.popover()\" placement=\"left\">+{{dashboardForm?.selectedRiskCategories?.slice(1).length}}</button>\r\n\r\n <app-popover #riskList [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let riskCategory of dashboardForm?.selectedRiskCategories | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"riskCategory?.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"remove('riskCategory',riskCategory)\"></i> {{ riskCategory?.category_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <button *ngIf=\"activeSelector !== 'riskCategories'\" class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"(click)=\"activateSelector('riskCategories',true)\">\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Display Criteria -->\r\n <div class=\"form-group-row\" [class.disabled]=\" activeSelector && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"dashboardForm?.displayCriteria?.length==0\" src=\"./assets/images/who.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm?.displayCriteria?.length>0 \" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">DISPLAY CRITERIA</label>\r\n <div class=\"radio-group\" *ngIf=\"showCriteria\" >\r\n <app-cs-radio [checked]=\"dashboardForm.displayCriteria=='or'\"\r\n (checkedEvent)=\"dashboardForm.displayCriteria='or'\">\r\n Those Items that have been assigned to either the selected Responsibility Center(s) or the selected Categories.</app-cs-radio>\r\n\r\n <app-cs-radio [checked]=\"dashboardForm.displayCriteria=='and'\"\r\n (checkedEvent)=\"dashboardForm.displayCriteria='and'\">\r\n Those Items that have been assigned to both the selected Responsibility Center(s) and the selected Categories.</app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Timeframe -->\r\n <div class=\"form-group-row\" \r\n [class.disabled]=\" activeSelector && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"!dashboardForm?.selectedFromDate || !dashboardForm?.selectedToDate\" src=\"./assets/images/when.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm?.selectedFromDate && dashboardForm?.selectedToDate\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">TIMEFRAME</label>\r\n <label class=\"vx-control-panel-sub-label\">Select how long you would like the information selected to be displayed for. If no timeframe is selected, the information will be displayed permanently.</label>\r\n <div class=\"input-group vx-d-flex vx-justify-between\">\r\n <div class=\"date-select\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [value]=\"dashboardForm?.selectedFromDate | date: 'dd MMM yyyy'\" [placeholder]=\"'From'\" (click)=\"openFromDatePicker()\" readonly>\r\n <dp-date-picker #fromDatePicker [(ngModel)]=\"dashboardForm.selectedFromDate\" placeholder=\"Select Date\" (onSelect)=\"closeFromDatePicker(); datePickerOverlay = false\" [config]=\"fromDatePickerConfig\"></dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeFromDatePicker()\" *ngIf=\"datePickerOverlay\">\r\n </div>\r\n </div>\r\n <div class=\"date-select\" *ngIf=\"!hideToDate\" [class.disabled]=\"!dashboardForm?.selectedFromDate \">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [value]=\"dashboardForm?.selectedToDate | date: 'dd MMM yyyy'\" [placeholder]=\"'To'\" (click)=\"openToDatePicker()\" readonly>\r\n <dp-date-picker #toDatePicker [(ngModel)]=\"dashboardForm.selectedToDate\" placeholder=\"Select Date\" (onSelect)=\"closeToDatePicker(); datePickerOverlay = false\" [config]=\"toDatePickerConfig\"></dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeToDatePicker()\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n </div>\r\n <p class=\"vx-txt-error\" [appScrollInView]=\"true\" *ngIf=\"submitted && (dashboardForm.selectedFromDate && (!dashboardForm.selectedToDate))\">Select a time-frame.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Email Summary -->\r\n <div class=\"form-group-row\" [class.active]=\"activeSelector === 'frequency'\" [class.disabled]=\" activeSelector && activeSelector !== 'frequency' && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"!dashboardForm.frequencyMessage\" src=\"./assets/images/send-resolution.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm.frequencyMessage\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">Email Summaries</label>\r\n <label class=\"vx-control-panel-sub-label\">If you would like to send a summary of this Dashboard, please select a frequency(By default VComply sends a weekly Summary).</label>\r\n <div *ngIf=\"!dashboardForm.frequencyMessage\" class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" (click)=\"activateSelector('frequency', true)\">\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">Email Summaries</div>\r\n </div>\r\n\r\n <div *ngIf=\"dashboardForm.frequencyMessage\" class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\r\n <div class=\"selectBoxText vx-fs-13 vx-paragraph-txt\" [arTooltip]=\"dashboardForm.frequencyMessage\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory] =\"false\" [innerHTML]=\"dashboardForm.frequencyMessage\"></div>\r\n\r\n <button *ngIf=\"dashboardForm.frequencyMessage && activeSelector !== 'frequency'\" class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"activateSelector('frequency',true)\">\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"button-block\">\r\n <button class=\"vx-btn block primary\" [disabled]=\"activeSelector && activeSelector !== 'name'\" (click)=\"configureDashboard()\">Next: Configure Widgets</button>\r\n </div>\r\n </div>\r\n\r\n\r\n <button class=\"close-dialog\" type=\"button\" [disabled]=\"activeSelector && activeSelector !== 'name'\" (click)=\"close.emit({mode:'discard'})\" [arTooltip]=\"'[Esc] to close'\" placement=\"left\" type=\"black\" delay=\"0\" [tooltipMandatory] =\"true\">\r\n <i class=\"icons\"></i>\r\n </button>\r\n <div class=\"global-confirmation-alert\" *ngIf=\"submitted && dashboardForm?.selectedResponsibilityCenters?.length==0 && \r\n dashboardForm?.selectedResponsibilityCategories?.length==0 &&\r\n dashboardForm?.selectedRiskCategories?.length==0\">\r\n <div class=\"global-confirmation-alert-top\">\r\n <span class=\"icon-block\">\r\n <i class=\"icons\"></i>\r\n </span>\r\n <p class=\"text\" *ngIf=\"showRiskCategory\">Select a Responsibility Center, Program or Risk Category.</p>\r\n <p class=\"text\" *ngIf=\"!showRiskCategory\">Select a Responsibility Center or Program.</p>\r\n\r\n </div>\r\n <div class=\"global-confirmation-alert-bottom\">\r\n <p class=\"message\"></p>\r\n <div class=\"button-group\">\r\n <button class=\"fill\" type=\"button\" (click)=\"submitted=false\">OKAY</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<app-smiley-dialog *ngIf=\"isSmiley\" [message]=\"smileyMessage\"></app-smiley-dialog>\r\n\r\n<app-configure-widgets *ngIf=\"openConfigureWidgets\" [mode]=\"mode\" [displayedWidgets]=\"displayedWidgets\" showRisk]=\"showRiskWidgets\" [showCompliance]=\"showComplianceWidgets\" [selectedWidgetsData]=\"selectedWidgets\" (widgetsDataModified)=\"setSelectedWidgets($event)\" (closeConfigureWidgets)=\"closeConfigureWidgets($event)\"></app-configure-widgets>","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml'\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitizer:DomSanitizer){}\r\n transform(html: any) {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, forwardRef, Input, OnInit, ViewChild, QueryList, ContentChildren } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { nanoid } from 'nanoid';\r\n// import { CsOptionComponent } from '../cs-option/cs-option.component';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'cs-select',\r\n templateUrl: './cs-select.component.html',\r\n styleUrls: ['./cs-select.component.less'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CsSelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class CsSelectComponent implements OnInit {\r\n @Input() dropdownLabel!: string;\r\n @Input() dropdownSubLabel!: string;\r\n @Input() isRequired!: string;\r\n @Input() placeholder!: string;\r\n\r\n // @ContentChildren(CsOptionComponent) op !: QueryList<CsOptionComponent>;\r\n\r\n dropdownToggle!: boolean;\r\n positionReset!: boolean;\r\n getLeft!: number;\r\n getTop!: number;\r\n getWidth!: number;\r\n maxWidth!: number;\r\n\r\n valuePlaceholder!: string;\r\n private optionList!: ElementRef;\r\n\r\n @ViewChild('optionList') set content(content: ElementRef) {\r\n if (content) {\r\n // initially setter gets called with undefined\r\n this.optionList = content;\r\n }\r\n }\r\n name!: string;\r\n val!: string;\r\n showOptions!: boolean;\r\n constructor() {\r\n this.name = nanoid();\r\n this.valuePlaceholder = '';\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n set RadioVal(val: any) {\r\n if (val !== undefined && val !== null && this.val !== val) {\r\n this.val = val;\r\n console.log('VALUE', this.val);\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.RadioVal = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n openDropdown(event: any): void {\r\n this.dropdownToggle = true;\r\n setTimeout(() => {\r\n const dropdown = event.target.getBoundingClientRect();\r\n const selectOption = this.optionList.nativeElement.offsetHeight;\r\n if (dropdown.top + selectOption * 2 > window.innerHeight) {\r\n this.getTop = dropdown.top - selectOption;\r\n } else {\r\n this.getTop = dropdown.top + dropdown.height;\r\n }\r\n this.getLeft = dropdown.left;\r\n this.getWidth = dropdown.width;\r\n this.maxWidth = dropdown.width * 1.25;\r\n this.showOptions = true;\r\n }, 10);\r\n }\r\n closeDropdown(): void {\r\n this.dropdownToggle = false;\r\n }\r\n}\r\n","<div class=\"selection-wrap\">\r\n <label class=\"label\" *ngIf=\"dropdownLabel != undefined\">\r\n {{ dropdownLabel }}\r\n <span class=\"sub-label\">{{ dropdownSubLabel }}</span>\r\n <span class=\"required\" *ngIf=\"isRequired\">*</span>\r\n </label>\r\n <div class=\"input-group\">\r\n <span class=\"value\" (click)=\"openDropdown($event)\" (keyup.enter)=\"openDropdown($event)\" tabindex=\"0\" [attr.aria-placeholder]=\"placeholder\" [innerHTML]=\"valuePlaceholder | safeHtml\"></span>\r\n </div>\r\n <div class=\"overlay\" *ngIf=\"dropdownToggle === true\" (click)=\"closeDropdown()\"></div>\r\n <div class=\"select-options\" *ngIf=\"dropdownToggle === true\" #optionList (keyup.Escape)=\"closeDropdown()\"\r\n (keyup.enter)=\"closeDropdown()\" (click)=\"closeDropdown()\" [style.top.px]=\"getTop\" [style.left.px]=\"getLeft\"\r\n [style.width.px]=\"getWidth\" [class.active]=\"showOptions\">\r\n <ng-content select=\"cs-option\"></ng-content>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CsSelectService {\r\n color: any;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CsSelectService } from '../../services/cs-select.service';\r\nimport { CsSelectComponent } from '../cs-select/cs-select.component';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'cs-option',\r\n templateUrl: './cs-option.component.html',\r\n styleUrls: ['./cs-option.component.less'],\r\n})\r\nexport class CsOptionComponent implements OnInit {\r\n @Input() value!: string;\r\n @ViewChild('options') option!: ElementRef;\r\n @Input() color!: any;\r\n constructor(public csSelect: CsSelectComponent, public colorSelector: CsSelectService) {\r\n this.value = '';\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n change(event: any): void {\r\n if (this.option) {\r\n setTimeout(() => {\r\n this.csSelect.valuePlaceholder = this.option.nativeElement.innerHTML;\r\n this.colorSelector.color = this.color;\r\n console.log(this.color);\r\n }, 1);\r\n }\r\n this.csSelect.writeValue(this.value);\r\n }\r\n}\r\n","<div class=\"list\">\r\n <label>\r\n <input type=\"radio\" tabindex=\"0\" [value]=\"value\" [name]=\"csSelect.name\" (click)=\"change($event)\" [checked]=\"csSelect.val === this.value\" />\r\n <span class=\"value\" #options>\r\n <ng-content></ng-content>\r\n </span>\r\n </label>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CsSelectComponent } from './cs-select/cs-select.component';\r\nimport { CsOptionComponent } from './cs-option/cs-option.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SafeHtmlPipe } from './safe-html.pipe';\r\n\r\n@NgModule({\r\n declarations: [CsSelectComponent, CsOptionComponent, SafeHtmlPipe],\r\n imports: [FormsModule, CommonModule],\r\n exports: [CsSelectComponent, CsOptionComponent],\r\n})\r\nexport class SelectModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PaginationComponent } from './pagination.component';\r\n\r\n@NgModule({\r\n declarations: [PaginationComponent],\r\n imports: [CommonModule],\r\n exports: [PaginationComponent],\r\n})\r\nexport class PaginationModule {}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-switch',\r\n templateUrl: './cs-switch.component.html',\r\n styleUrls: ['./cs-switch.component.less'],\r\n})\r\nexport class CsSwitchComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() ngValue: any;\r\n @Input() value: any;\r\n @Output() ngValueChange = new EventEmitter<any>();\r\n @Input() tooltipMessage: any;\r\n @Input() position: any;\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n // console.log(this.value);\r\n }\r\n valueChanged() {\r\n this.ngValueChange.emit(this.ngValue);\r\n }\r\n}\r\n","<label class=\"cs-switch\" [class.top]=\"position == 'top'\">\r\n <!-- [class.large]=\"large\" -->\r\n <span class=\"value\">\r\n <span [innerHTML]=\"value\" *ngIf=\"value != undefined\"></span>\r\n <!-- <span class=\"notification\" *ngIf=\"!tooltipMessage\" [arTooltip]=\"tooltipMessage\" placement=\"bottom-right\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\r\n <i class=\"vc-icons\"></i>\r\n </span> -->\r\n </span>\r\n <!-- [class.last]=\"last\" -->\r\n <span class=\"switch\" *ngIf=\"tooltipMessage === '' || tooltipMessage === undefined\">\r\n <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\r\n <span class=\"switch-box\">\r\n <span class=\"switch-ball\"></span>\r\n </span>\r\n </span>\r\n <span\r\n class=\"switch\"\r\n *ngIf=\"tooltipMessage !== '' && tooltipMessage !== undefined\"\r\n [arTooltip]=\"tooltipMessage\"\r\n placement=\"bottom-right\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >\r\n <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\r\n <span class=\"switch-box\">\r\n <span class=\"switch-ball\"></span>\r\n </span>\r\n </span>\r\n</label>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-radio-group',\r\n templateUrl: './cs-radio-group.component.html',\r\n styleUrls: ['./cs-radio-group.component.less'],\r\n})\r\nexport class CsRadioGroupComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<app-cs-radio>fefre</app-cs-radio>\r\n<app-cs-radio>fefre</app-cs-radio>\r\n<app-cs-radio>fefre</app-cs-radio>\r\n<app-cs-radio>fefre</app-cs-radio>\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n constructor(private elementRef: ElementRef) {}\r\n @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\r\n\r\n @HostListener('document:click', ['$event.target']) onMouseEnter(targetElement: any) {\r\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.clickOutside.emit(null);\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'pascal',\r\n})\r\nexport class PascalPipe implements PipeTransform {\r\n transform(value: string, ...args: unknown[]): unknown {\r\n if (typeof value !== 'string') {\r\n return value;\r\n }\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-select',\r\n templateUrl: './cs-select.component.html',\r\n styleUrls: ['./cs-select.component.less'],\r\n})\r\nexport class CsSelectComponent implements OnChanges {\r\n @Input() dataList!: any[];\r\n @Input() dropdownLabel!: string;\r\n @Input() displayProperty!: string;\r\n @Input() selectedValue!: string;\r\n @Input() isRequired!: boolean;\r\n @Input() dropdownSubLabel!: string;\r\n @Input() disabled!: boolean;\r\n @ViewChild('option') option!: ElementRef;\r\n\r\n @Output() selectedData = new EventEmitter();\r\n @Output() selectedValueChange = new EventEmitter();\r\n @Input() placeholder: any;\r\n @Input() stylex: any;\r\n @Input() valueKey: any;\r\n @Input() multipleSelect: any;\r\n @Input() colorProperty!: string;\r\n\r\n @Input() colorSelected!: string;\r\n colorCode!: string;\r\n\r\n dropdownOption = false;\r\n positionReset!: boolean;\r\n getLeft!: number;\r\n getTop!: number;\r\n getWidth!: number;\r\n maxWidth!: number;\r\n activeDoropdown = false;\r\n\r\n private optionList!: ElementRef;\r\n\r\n @ViewChild('optionList') set content(content: ElementRef) {\r\n if (content) {\r\n // initially setter gets called with undefined\r\n this.optionList = content;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.selectedValue) {\r\n this.selectedValue = this.selectedValue || '--';\r\n }\r\n }\r\n\r\n openDropdown(event: any): void {\r\n this.dropdownOption = true;\r\n setTimeout(() => {\r\n const dropdown = event.target.getBoundingClientRect();\r\n const selectOption = this.optionList.nativeElement.offsetHeight;\r\n if (dropdown.top + selectOption * 2 > window.innerHeight) {\r\n this.getTop = dropdown.top - selectOption;\r\n } else {\r\n this.getTop = dropdown.top + dropdown.height;\r\n }\r\n this.getLeft = dropdown.left;\r\n this.getWidth = dropdown.width;\r\n this.maxWidth = dropdown.width * 1.25;\r\n }, 10);\r\n setTimeout(() => {\r\n this.activeDoropdown = true;\r\n }, 100);\r\n }\r\n selectOption(selectedData: any) {\r\n if (typeof selectedData === 'object') {\r\n this.selectedValue = selectedData[this.displayProperty];\r\n this.colorSelected = selectedData[this.colorProperty];\r\n } else {\r\n this.selectedValue = selectedData;\r\n }\r\n this.selectedData.emit(selectedData);\r\n this.dropdownOption = false;\r\n }\r\n closeDropdown() {\r\n this.dropdownOption = false;\r\n }\r\n}\r\n","<div class=\"input-group\" (clickOutside)=\"dropdownOption = false\">\r\n <label *ngIf=\"dropdownLabel != undefined\">\r\n {{ dropdownLabel }} <span class=\"sub-label\">{{ dropdownSubLabel }}</span> <span class=\"required\" *ngIf=\"isRequired\">*</span></label\r\n >\r\n <div class=\"custom-select-box\" [class.disabled]=\"disabled\">\r\n <input\r\n type=\"text\"\r\n [class.line]=\"stylex\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"selectedValue | pascal\"\r\n readonly\r\n (click)=\"openDropdown($event)\"\r\n (keyup.enter)=\"openDropdown($event)\"\r\n (keyup.arrowup)=\"openDropdown($event)\"\r\n (keyup.arrowdown)=\"openDropdown($event)\"\r\n *ngIf=\"!colorProperty\"\r\n />\r\n <span class=\"show-label\" *ngIf=\"colorProperty\" (click)=\"openDropdown($event)\">\r\n <span class=\"label\" [innerHTML]=\"selectedValue\" [style.backgroundColor]=\"colorSelected + '1A'\" [style.color]=\"colorSelected\"></span>\r\n </span>\r\n <span class=\"arrow\" [class.line]=\"stylex\">\r\n <i class=\"risk-icons\"></i>\r\n </span>\r\n <div class=\"overlay active\" *ngIf=\"dropdownOption === true\" (click)=\"closeDropdown()\"></div>\r\n <ul\r\n class=\"list-of-option\"\r\n *ngIf=\"dropdownOption === true && !colorProperty\"\r\n #optionList\r\n (keyup.Escape)=\"closeDropdown()\"\r\n [style.top.px]=\"getTop\"\r\n [style.left.px]=\"getLeft\"\r\n [style.min-width.px]=\"getWidth\"\r\n [style.max-width.px]=\"maxWidth\"\r\n [class.active]=\"activeDoropdown\"\r\n >\r\n <li *ngFor=\"let data of dataList\">\r\n <label>\r\n <input type=\"radio\" [value]=\"data[valueKey]\" name=\"sliceLabel\" (change)=\"selectOption(data)\" #option (keyup.enter)=\"closeDropdown()\" class=\"pointer-none\" />\r\n <span (click)=\"closeDropdown(); selectOption(data)\" *ngIf=\"displayProperty && displayProperty !== ''\" class=\"value\">{{ data[displayProperty] }}</span>\r\n <span (click)=\"closeDropdown(); selectOption(data)\" *ngIf=\"!displayProperty || displayProperty === ''\" class=\"value\">{{ data }}</span>\r\n </label>\r\n </li>\r\n </ul>\r\n <ul\r\n class=\"list-of-option\"\r\n *ngIf=\"dropdownOption === true && colorProperty\"\r\n #optionList\r\n (keyup.Escape)=\"closeDropdown()\"\r\n [style.top.px]=\"getTop\"\r\n [style.left.px]=\"getLeft\"\r\n [style.min-width.px]=\"getWidth\"\r\n [style.max-width.px]=\"maxWidth\"\r\n [class.active]=\"activeDoropdown\"\r\n >\r\n <li *ngFor=\"let data of dataList\">\r\n <label class=\"colors\">\r\n <input type=\"radio\" [value]=\"data[valueKey]\" name=\"sliceLabel\" (click)=\"selectOption(data)\" #option (keyup.enter)=\"closeDropdown()\" class=\"pointer-none\" />\r\n <span\r\n (click)=\"selectOption(data)\"\r\n *ngIf=\"displayProperty && displayProperty !== ''\"\r\n class=\"value\"\r\n [ngStyle]=\"{ color: data.segment_color }\"\r\n [style.backgroundColor]=\"data.segment_color + '1A'\"\r\n >{{ data[displayProperty] }}</span\r\n >\r\n <span\r\n (click)=\"selectOption(data)\"\r\n *ngIf=\"!displayProperty || displayProperty === ''\"\r\n class=\"value\"\r\n [ngStyle]=\"{ color: data.segment_color }\"\r\n [style.backgroundColor]=\"data.segment_color + '1A'\"\r\n >{{ data }}</span\r\n >\r\n </label>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToolTipDirective } from './tooltip.directive';\r\n\r\n@NgModule({\r\n declarations: [ToolTipDirective],\r\n imports: [CommonModule],\r\n exports: [ToolTipDirective],\r\n})\r\nexport class TooltipModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'searchMultiSelect',\r\n})\r\nexport class SearchMultiSelectPipe implements PipeTransform {\r\n transform(value: any[], key: string, searchKey: string): any[] {\r\n if (searchKey && searchKey.length > 0) {\r\n searchKey = searchKey.toLowerCase();\r\n return value.filter((item) => {\r\n if (item[key].toLowerCase().includes(searchKey)) {\r\n return item;\r\n }\r\n });\r\n }\r\n return value;\r\n }\r\n}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CsCheckboxComponent } from './cs-checkbox/cs-checkbox.component';\r\nimport { CsRadioComponent } from './cs-radio/cs-radio.component';\r\nimport { CsSwitchComponent } from './cs-switch/cs-switch.component';\r\nimport { CsRadioGroupComponent } from './cs-radio-group/cs-radio-group.component';\r\nimport { CsSelectComponent } from './cs-select/cs-select.component';\r\nimport { TooltipModule } from '../tooltip/tooltip.module';\r\nimport { PascalPipe } from './pipes/pascal.pipe';\r\nimport { SearchMultiSelectPipe } from './pipes/searchMultiSelect.pipe';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n CsCheckboxComponent,\r\n CsRadioComponent,\r\n CsSwitchComponent,\r\n CsRadioGroupComponent,\r\n CsSelectComponent,\r\n PascalPipe,\r\n SearchMultiSelectPipe,\r\n ClickOutsideDirective,\r\n ],\r\n imports: [CommonModule, FormsModule, TooltipModule],\r\n exports: [\r\n CsCheckboxComponent,\r\n CsRadioComponent,\r\n CsSwitchComponent,\r\n CsRadioGroupComponent,\r\n CsSelectComponent,\r\n SearchMultiSelectPipe,\r\n ],\r\n})\r\nexport class FormgroupModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PopoverComponent } from './popover.component';\r\nimport { PopoverDirective } from './popover.directive';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@NgModule({\r\n declarations: [PopoverComponent, PopoverDirective],\r\n imports: [CommonModule],\r\n exports: [PopoverComponent, PopoverDirective],\r\n providers: [PopoverService],\r\n})\r\nexport class PopoverModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DashboardFooterComponent } from './dashboard-footer/dashboard-footer.component';\r\nimport { PopoverModule } from '../popover/popover.module';\r\nimport { TooltipModule } from '../tooltip/tooltip.module'\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DashboardFooterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n PopoverModule,\r\n TooltipModule\r\n ],\r\n exports:[\r\n DashboardFooterComponent\r\n ]\r\n})\r\nexport class DashboardFooterModule { }\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appInsertion]',\r\n})\r\nexport class InsertionDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}\r\n","export class DialogConfig<D = any> {\r\n data?: D;\r\n position?: any;\r\n background?: any;\r\n pointer?: any;\r\n}\r\n","import { Component, Type, ComponentFactoryResolver, ViewChild, OnDestroy, ComponentRef, AfterViewInit, ChangeDetectorRef, OnInit } from '@angular/core';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { Subject } from 'rxjs';\r\nimport { DialogRef } from './dialog-ref';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { NavigationEnd, NavigationError, NavigationStart, Router, ROUTER_CONFIGURATION } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.css'],\r\n})\r\nexport class DialogComponent implements AfterViewInit, OnDestroy, OnInit {\r\n componentRef!: ComponentRef<any>;\r\n position: any;\r\n background: any;\r\n pointer: any;\r\n @ViewChild(InsertionDirective, { static: true })\r\n insertionPoint!: InsertionDirective;\r\n animation = true;\r\n\r\n private readonly onDialogClose = new Subject<any>();\r\n public onClose = this.onDialogClose.asObservable();\r\n\r\n childComponentType!: Type<any>;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private cd: ChangeDetectorRef,\r\n private dialogRef: DialogRef,\r\n public config: DialogConfig,\r\n private router: Router\r\n ) {\r\n // this.componentRef = this.componentRef;\r\n // this.animate = this.animate;\r\n // this.insertionPoint = this.insertionPoint;\r\n // this.childComponentType = this.childComponentType;\r\n }\r\n ngOnInit() {\r\n this.position = this.config.position;\r\n this.background = this.config.background;\r\n document.body.style.overflow = 'hidden';\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 200);\r\n this.routeAction();\r\n }\r\n\r\n routeAction() {\r\n this.router.events.subscribe((event: any) => {\r\n if (event instanceof NavigationStart) {\r\n // Show loading indicator\r\n }\r\n if (event instanceof NavigationEnd) {\r\n // Hide loading indicator\r\n this.dialogRef.close();\r\n }\r\n if (event instanceof NavigationError) {\r\n // Hide loading indicator\r\n // Present error to user\r\n }\r\n });\r\n }\r\n ngAfterViewInit() {\r\n this.loadChildComponent(this.childComponentType);\r\n this.cd.detectChanges();\r\n }\r\n\r\n onOverlayClicked(evt: MouseEvent) {\r\n // this.dialogRef.close();\r\n }\r\n\r\n onDialogClicked(evt: MouseEvent) {\r\n evt.stopPropagation();\r\n }\r\n\r\n loadChildComponent(componentType: Type<any>) {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\r\n\r\n const viewContainerRef = this.insertionPoint.viewContainerRef;\r\n viewContainerRef.clear();\r\n\r\n this.componentRef = viewContainerRef.createComponent(componentFactory);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n }\r\n\r\n close(data?: any) {\r\n this.onDialogClose.next(data);\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","<div\r\n class=\"overlay\"\r\n (click)=\"onOverlayClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER',\r\n black: background === 'black'\r\n }\" [class.pointer-none]=\"pointer === 'none'\"\r\n>\r\n <div\r\n class=\"dialog\"\r\n [class.animate]=\"animation\"\r\n (click)=\"onDialogClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER'\r\n }\"\r\n >\r\n <ng-template appInsertion></ng-template>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { DialogRef } from './dialog-ref';\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DialogComponent, InsertionDirective],\r\n providers: [DialogRef]\r\n})\r\nexport class DialogModule {}\r\n","import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\r\n\r\nexport class DialogInjector implements Injector {\r\n constructor(private parentDialogInjector: Injector, private dialogAdditionalTokens: WeakMap<any, any>) {}\r\n\r\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n // get(token: any, notFoundValue?: any){return; }\r\n get(token: any, notFoundValue?: any, flags?: any) {\r\n const value = this.dialogAdditionalTokens.get(token);\r\n if (value) {\r\n return value;\r\n }\r\n return this.parentDialogInjector.get<any>(token, notFoundValue);\r\n }\r\n}\r\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, Type, EmbeddedViewRef, ComponentRef } from '@angular/core';\r\nimport { DialogModule } from './dialog.module';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { DialogInjector } from './dialog-injector';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { DialogRef } from './dialog-ref';\r\n\r\n@Injectable({\r\n providedIn: DialogModule,\r\n})\r\nexport class DialogService {\r\n dialogComponentRef!: ComponentRef<DialogComponent>;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) {}\r\n\r\n public open(componentType: Type<any>, config: DialogConfig) {\r\n const dialogRef = this.appendDialogComponentToBody(config);\r\n\r\n this.dialogComponentRef.instance.childComponentType = componentType;\r\n\r\n return dialogRef;\r\n }\r\n\r\n private appendDialogComponentToBody(config: DialogConfig) {\r\n const map = new WeakMap();\r\n map.set(DialogConfig, config);\r\n\r\n const dialogRef = new DialogRef();\r\n map.set(DialogRef, dialogRef);\r\n\r\n const sub = dialogRef.afterClosed.subscribe(() => {\r\n this.removeDialogComponentFromBody();\r\n sub.unsubscribe();\r\n });\r\n\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DialogComponent);\r\n const componentRef = componentFactory.create(new DialogInjector(this.injector, map));\r\n\r\n this.appRef.attachView(componentRef.hostView);\r\n\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n\r\n this.dialogComponentRef = componentRef;\r\n\r\n this.dialogComponentRef.instance.onClose.subscribe(() => {\r\n this.removeDialogComponentFromBody();\r\n });\r\n\r\n return dialogRef;\r\n }\r\n\r\n private removeDialogComponentFromBody() {\r\n this.appRef.detachView(this.dialogComponentRef.hostView);\r\n this.dialogComponentRef.destroy();\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { DatePickerComponent, IDatePickerConfig } from 'ng2-date-picker';\r\nimport { DialogService } from '../../ui-kit/dialog/dialog.service';\r\nimport { EditorConfig } from 'vcomply-editor';\r\n// import { ConfigureWidgetsComponent } from '../../configure-widgets/configure-widgets/configure-widgets.component';\r\n\r\n@Component({\r\n selector: 'app-form-group',\r\n templateUrl: './form-group.component.html',\r\n styleUrls: ['./form-group.component.less']\r\n})\r\nexport class FormGroupComponent implements OnInit {\r\n @Output() openCategoryList = new EventEmitter<string>();\r\n @Output() openResponsibilityCenterList = new EventEmitter<string>();\r\n @Output() openWhoCanViewThis = new EventEmitter<string>();\r\n @Output() closeCreateDashboard = new EventEmitter<string>();\r\n @Output() openFrequency = new EventEmitter<string>();\r\n @Input() disabled!: boolean;\r\n\r\n @ViewChild('fromDatePicker') fromDatePicker!: DatePickerComponent;\r\n @ViewChild('toDatePicker') toDatePicker!: DatePickerComponent;\r\n datePickerOverlay = false;\r\n selectedFromDate!: any;\r\n selectedToDate!: any;\r\n dashboardName!: any;\r\n dashboardDescriptionText!: any;\r\n fieldEmptyErrorMessage: string = 'Enter a value for this input box.';\r\n fieldLimitExceededErrorMessage: string = 'You have exceeded the maximum character limit of XYZ characters.';\r\n dashboardNameNotUniqueErrorMessage: string = 'A dashboard with this name already exists. Specify a different name for the dashboard.';\r\n dashboardNameError! : string;\r\n dashboardDescriptionError! : string;\r\n displayCriteria! : string;\r\n\r\n constructor(private dialog: DialogService) { }\r\n \r\n dashboardDescription: EditorConfig = {\r\n placeholder: 'Description (Max limit: 250 characters)',\r\n mode: 'prime',\r\n id: 'description'\r\n }\r\n\r\n fromDatePickerConfig : IDatePickerConfig = {\r\n min: this.getCurrentDate()\r\n }\r\n\r\n toDatePickerConfig : IDatePickerConfig = {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n openFromDatePicker() {\r\n this.fromDatePicker.api.open();\r\n this.datePickerOverlay = true;\r\n }\r\n\r\n openToDatePicker() {\r\n this.toDatePicker.api.open();\r\n this.datePickerOverlay = true;\r\n }\r\n\r\n closeFromDatePicker() {\r\n let minToDate = this.selectedFromDate.clone().add(1, 'days');\r\n this.toDatePickerConfig = {min : minToDate, minTime : minToDate};\r\n\r\n if(this.selectedToDate && minToDate.diff(this.selectedToDate) > 0) {\r\n this.selectedToDate = undefined;\r\n }\r\n\r\n this.fromDatePicker.api.close();\r\n this.datePickerOverlay = false;\r\n }\r\n\r\n closeToDatePicker() {\r\n this.toDatePicker.api.close();\r\n this.datePickerOverlay = false;\r\n }\r\n\r\n animateImage() {\r\n const circleImage = document.getElementsByClassName('image')\r\n console.log(circleImage);\r\n }\r\n\r\n selectWhoCanViewThis() {\r\n this.openWhoCanViewThis.emit();\r\n }\r\n\r\n selectResponsibilityCenter() {\r\n this.openResponsibilityCenterList.emit();\r\n }\r\n\r\n selectCategories() {\r\n this.openCategoryList.emit();\r\n }\r\n\r\n selectFrequency() {\r\n this.openFrequency.emit();\r\n }\r\n\r\n configureDashboard() {\r\n let fieldsStatus = this.verifyFields();\r\n // if(fieldsStatus) {\r\n // this.closeCreateDashboard.emit();\r\n // const ref = this.dialog.open(ConfigureWidgetsComponent, {\r\n // data: {},\r\n // position: 'CENTER',\r\n // pointer: 'none'\r\n // });\r\n // }\r\n }\r\n\r\n verifyFields() {\r\n let allFieldsValid = true;\r\n this.dashboardNameError = '';\r\n this.dashboardDescriptionError = '';\r\n \r\n if(this.dashboardName === null || this.dashboardName === undefined || this.dashboardName === '') {\r\n this.dashboardNameError = this.fieldEmptyErrorMessage;\r\n allFieldsValid = false;\r\n } else if(this.dashboardName.length > 30) {\r\n this.dashboardNameError = this.fieldLimitExceededErrorMessage.replace('XYZ', '30');\r\n allFieldsValid = false;\r\n } else if(this.dashboardDescriptionText === null || this.dashboardDescriptionText === undefined || this.dashboardDescriptionText === '') {\r\n this.dashboardDescriptionError = this.fieldEmptyErrorMessage;\r\n allFieldsValid = false;\r\n } else if(this.dashboardDescriptionText.length > 250) {\r\n this.dashboardDescriptionError = this.fieldLimitExceededErrorMessage.replace('XYZ', '250');\r\n allFieldsValid = false;\r\n }\r\n return allFieldsValid;\r\n }\r\n\r\n getCurrentDate(){\r\n let today = new Date();\r\n return today.getDate() + '-' + (today.getMonth()+1) + '-' + today.getFullYear();\r\n }\r\n\r\n displayCriteriaSelected(event: boolean, selection: string) {\r\n this.displayCriteria = selection;\r\n }\r\n}\r\n","<!-- <p>form-group works!</p> -->\r\n<div class=\"form-group\" [class.disabled]=\"disabled\">\r\n <div class=\"vx-dialog-body-container\" (scroll)=\"animateImage()\">\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/what.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Dashboard Name<span class=\"required\">*</span></label>\r\n <div class=\"vx-input-group\">\r\n <input type=\"text\" placeholder=\"Add dashboard name (Max limit: 30 characters).\" [(ngModel)]=\"dashboardName\">\r\n <span class=\"counter\" *ngIf=\"dashboardName?.length > 0\">{{30 - dashboardName?.length}}</span>\r\n </div>\r\n <p class=\"vx-txt-error\">{{dashboardNameError}}</p>\r\n <div class=\"vx-input-group\">\r\n <vcomply-editor [editorConfig]=\"dashboardDescription\" [(ngModel)]=\"dashboardDescriptionText\"></vcomply-editor>\r\n <span class=\"counter\" *ngIf=\"dashboardDescriptionText?.length > 0\">{{250 - dashboardDescriptionText?.length}}</span>\r\n </div>\r\n <p class=\"vx-txt-error\">{{dashboardDescriptionError}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/who.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Who can view this dashboard?<span class=\"required\">*</span></label>\r\n <div class=\"selectbox\">\r\n <input type=\"text\" placeholder=\"Who can view this dashboard?\" readonly\r\n (click)=\"selectWhoCanViewThis()\">\r\n </div>\r\n <div class=\"selected\">\r\n <div class=\"left\">\r\n <div class=\"chip-container\">\r\n <span class=\"chip\">\r\n <span class=\"value\">Samantha Jones</span>\r\n </span>\r\n <span class=\"chip\">\r\n <i class=\"icons\"></i>\r\n <span class=\"value\">Angel Kleven</span>\r\n </span>\r\n </div>\r\n <button class=\"count\">+10</button>\r\n </div>\r\n <button class=\"edit\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/responsibility-center.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">RESPONSIBILITY CENTER(S)</label>\r\n <div class=\"selectbox\">\r\n <div class=\"custom-input\"\r\n aria-placeholder=\"Select the Responsibility Center(s) that you would like displayed in the Dashboard, if any.\"\r\n (click)=\"selectResponsibilityCenter()\">\r\n </div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/category.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">PROGRAM</label>\r\n <div class=\"selectbox\">\r\n <div class=\"custom-input\"\r\n aria-placeholder=\"Select the Program that this responsibility relates to.\"\r\n (click)=\"selectCategories()\"></div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/category.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">RISK CATEGORIES</label>\r\n <div class=\"selectbox\">\r\n <div class=\"custom-input\"\r\n aria-placeholder=\"Select the Risk Categories that you would like displayed in the Dashboard, if any.\"\r\n (click)=\"selectCategories()\"></div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/who.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">DISPLAY CRITERIA</label>\r\n <div class=\"radio-group\">\r\n <app-cs-radio (checkedEvent)=\"displayCriteriaSelected($event, 'BOTH_RC_AND_CATEGORY')\">Those responsibilities that have been assigned to both the selected\r\n Responsibility Center(s) and the selected Categories.</app-cs-radio>\r\n <app-cs-radio (checkedEvent)=\"displayCriteriaSelected($event, 'RC_OR_CATEGORY')\">Those responsibilities that have been assigned to either the selected\r\n Responsibility Center(s) or the selected Categories.</app-cs-radio>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/when.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">TIMEFRAME</label>\r\n <label class=\"vx-control-panel-sub-label\">Select how long you would like the information\r\n selected to be displayed for. If no timeframe is selected, the information will be\r\n displayed permanently.</label>\r\n <div class=\"input-group vx-d-flex vx-justify-between\">\r\n <div class=\"date-select\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [value]=\"selectedFromDate | date: 'dd MMM yyyy'\" [placeholder]=\"'From'\"\r\n (click)=\"openFromDatePicker()\" readonly>\r\n <dp-date-picker #fromDatePicker [(ngModel)]=\"selectedFromDate\" placeholder=\"Select Date\"\r\n (onSelect)=\"closeFromDatePicker(); datePickerOverlay = false\" [config]=\"fromDatePickerConfig\"></dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeFromDatePicker()\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n <div class=\"date-select\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [value]=\"selectedToDate | date: 'dd MMM yyyy'\" [placeholder]=\"'To'\"\r\n (click)=\"openToDatePicker()\" readonly>\r\n <dp-date-picker #toDatePicker [(ngModel)]=\"selectedToDate\" placeholder=\"Select Date\"\r\n (onSelect)=\"closeToDatePicker(); datePickerOverlay = false\" [config]=\"toDatePickerConfig\"></dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeToDatePicker()\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <!--active class will appear on open list-->\r\n <div class=\"image\">\r\n <img src=\"./assets/images/send-resolution.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Email Summaries <i class=\"icons\" [arTooltip]=\"'This is a test tooltip'\" placement=\"bottom-left\"\r\n type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\"></i></label>\r\n <label class=\"vx-control-panel-sub-label\">\r\n If you would like to send a summary of this Dashboard,\r\n please select a frequency(By default VComply sends a weekly Summary).\r\n </label>\r\n <div class=\"selectbox\">\r\n <input type=\"text\" placeholder=\"Email Summaries\" readonly (click)=\"selectFrequency()\">\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"button-block\">\r\n <button class=\"vx-btn block primary\" [disabled]=\"disabled\" (click)=\"configureDashboard()\">Next: Configure\r\n Widgets</button>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FloatingBarComponent } from './floating-bar.component';\r\nimport { PopoverModule } from '../popover/popover.module';\r\nimport { TooltipModule } from '../tooltip/tooltip.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n FloatingBarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n PopoverModule,\r\n TooltipModule\r\n ],\r\n exports: [\r\n FloatingBarComponent\r\n ]\r\n})\r\nexport class FloatingBarModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ScrollInViewDirective } from './scroll-in-view.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ScrollInViewDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports:[\r\n ScrollInViewDirective\r\n ]\r\n})\r\nexport class DirectivesModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NoDataComponent } from './no-data.component';\r\n\r\n@NgModule({\r\n declarations: [NoDataComponent],\r\n imports: [CommonModule],\r\n exports: [NoDataComponent],\r\n})\r\nexport class NoDataModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FloatingBarModule } from '../../ui-kit//floating-bar/floating-bar.module';\r\nimport { FormgroupModule } from '../../ui-kit/formgroup/formgroup.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SearchPipe } from '../pipes/search.pipe';\r\nimport { ConfigureWidgetsComponent } from './configure-widgets/configure-widgets.component';\r\nimport { DirectivesModule } from '../directives/directives.module';\r\nimport { NoDataModule } from '../../ui-kit/no-data/no-data.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ConfigureWidgetsComponent, SearchPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n FloatingBarModule,\r\n FormgroupModule,\r\n FormsModule,\r\n DirectivesModule,\r\n NoDataModule\r\n ],\r\n exports: [\r\n ConfigureWidgetsComponent\r\n ]\r\n})\r\nexport class ConfigureWidgetsModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.less'],\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<!-- <p>loader works!</p> -->\r\n<div class=\"main-loader\">\r\n <div class=\"demo-loader\">\r\n <div class=\"demo-loader-colored-blocks\">\r\n <div class=\"demo-loader-colored-blocks-rotater\">\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n </div>\r\n <div class=\"demo-loader-colored-blocks-inner\"></div>\r\n </div>\r\n <div class=\"demo-loader-inner\">\r\n <svg\r\n width=\"30px\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n id=\"Layer_1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 16 16\"\r\n style=\"enable-background: new 0 0 16 16\"\r\n xml:space=\"preserve\"\r\n >\r\n <style type=\"text/css\">\r\n .st0 {\r\n fill: #9d1f24;\r\n }\r\n\r\n .st1 {\r\n fill: #d83b3f;\r\n }\r\n </style>\r\n <g>\r\n <path class=\"st0\" d=\"M2,12.3c0.5,0.3,1.1,0.4,1.8,0.2c0.9-0.3,1.4-1.1,1.5-1.1c-0.3-0.2-0.5-0.6-0.5-1.1V7.2 C4.5,4.6,1.1,3.8,1.1,3.8v7.3C1.1,11.2,1.3,11.9,2,12.3z\" />\r\n <path\r\n class=\"st1\"\r\n d=\"M9.9,3.5c-1.8,2.8-4.6,7.8-4.6,7.8s0,0,0,0c0,0.1-0.5,0.8-1.5,1.1c-0.7,0.2-1.3,0.1-1.8-0.2 c-0.6-0.4-0.9-1.1-0.9-1.1s-0.1,1.2,0.6,2.2C2,13.9,4,15.9,6.6,14.5c0.6-0.3,1.1-0.8,1.6-1.5c0.4-0.5,6.9-11.6,6.9-11.6 S11.7,0.5,9.9,3.5z\"\r\n />\r\n </g>\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoaderComponent } from './loader/loader.component';\r\nimport { LoaderInlineComponent } from './loader-inline/loader-inline.component';\r\n\r\n@NgModule({\r\n declarations: [LoaderComponent, LoaderInlineComponent],\r\n imports: [CommonModule],\r\n exports: [LoaderComponent, LoaderInlineComponent],\r\n})\r\nexport class VLoaderModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SnackBarComponent } from './snack-bar/snack-bar.component';\r\n\r\n@NgModule({\r\n declarations: [SnackBarComponent],\r\n imports: [CommonModule],\r\n exports: [SnackBarComponent],\r\n})\r\nexport class SnackBarModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SmileyDialogComponent } from './smiley-dialog.component';\r\n\r\n@NgModule({\r\n declarations: [SmileyDialogComponent],\r\n imports: [CommonModule],\r\n\r\n exports: [SmileyDialogComponent],\r\n})\r\nexport class SmileyDialogModule {}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n// import { MarxEditorModule } from 'vcomply-editor';\r\nimport { VcomplyEditorModule } from '@vcomply/editor';\r\nimport { DpDatePickerModule } from 'ng2-date-picker';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CreateDashboardComponent } from './create-dashboard.component';\r\nimport { SelectModule } from '../ui-kit/select/select.module';\r\nimport { UserListComponent } from './user-list/user-list.component';\r\nimport { ResponsibilityCenterComponent } from './responsibility-center/responsibility-center.component';\r\nimport { CategoriesComponent } from './categories/categories.component';\r\nimport { FrequencyComponent } from './frequency/frequency.component';\r\nimport { PaginationModule } from '../ui-kit/pagination/pagination.module';\r\nimport { FormgroupModule } from '../ui-kit/formgroup/formgroup.module';\r\nimport { DashboardFooterModule } from '../ui-kit/dashboard-footer/dashboard-footer.module';\r\nimport { FormGroupComponent } from './form-group/form-group.component';\r\nimport { TooltipModule } from '../ui-kit/tooltip/tooltip.module';\r\nimport { FloatingBarModule } from '../ui-kit/floating-bar/floating-bar.module';\r\nimport { DialogModule } from '../ui-kit/dialog/dialog.module';\r\nimport { Configurations } from '../configurations';\r\nimport { FilterPipe } from './pipes/filter.pipe';\r\nimport { RiskCategoriesComponent } from './risk-categories/risk-categories.component';\r\nimport { ConfigureWidgetsModule } from './configure-widgets/configure-widgets.module';\r\nimport { PopoverModule } from '../ui-kit/popover/popover.module';\r\nimport { VLoaderModule } from '../ui-kit/v-loader/v-loader.module';\r\nimport { SnackBarModule } from '../ui-kit/snack-bar/snack-bar.module';\r\nimport { NoDataModule } from '../ui-kit/no-data/no-data.module';\r\nimport { DirectivesModule } from './directives/directives.module';\r\nimport { SmileyDialogModule } from '../ui-kit/smiley-dialog/smiley-dialog.module';\r\nimport { TextCountPipe } from './pipes/text-count.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n CreateDashboardComponent,\r\n UserListComponent,\r\n FormGroupComponent,\r\n ResponsibilityCenterComponent,\r\n CategoriesComponent,\r\n RiskCategoriesComponent,\r\n FrequencyComponent,\r\n FilterPipe,\r\n TextCountPipe,\r\n ],\r\n imports: [\r\n CommonModule,\r\n // MarxEditorModule,\r\n VcomplyEditorModule,\r\n FormgroupModule,\r\n DpDatePickerModule,\r\n FormsModule,\r\n TooltipModule,\r\n SelectModule,\r\n DashboardFooterModule,\r\n PaginationModule,\r\n FloatingBarModule,\r\n DialogModule,\r\n ConfigureWidgetsModule,\r\n PopoverModule,\r\n VLoaderModule,\r\n SnackBarModule,\r\n NoDataModule,\r\n DirectivesModule,\r\n SmileyDialogModule,\r\n ],\r\n exports: [CreateDashboardComponent],\r\n})\r\nexport class CreateDashboardModule {\r\n public static forRoot(\r\n environmentConfig: Configurations\r\n ): ModuleWithProviders<CreateDashboardModule> {\r\n return {\r\n ngModule: CreateDashboardModule,\r\n providers: [{ provide: Configurations, useValue: environmentConfig }],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of create-dashboard\r\n */\r\n\r\n// export * from './lib/create-dashboard.service';\r\n// export * from './lib/create-dashboard.component';\r\n// export * from './lib/create-dashboard.module';\r\n\r\nexport * from './lib/create-dashboard.service';\r\nexport * from './lib/create-dashboard-container/create-dashboard.component';\r\nexport * from './lib/create-dashboard-container/create-dashboard.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CreateDashboardService","i2.Configurations","i2.AuthService","i3.Configurations","i1.PopoverService","i2","i1.SnackBarService","i3.PopoverComponent","i4.PopoverDirective","i5.ToolTipDirective","i1","i1.DialogRef","i2.ConfigureWidgetsService","i3.SnackBarService","i4","i5.FloatingBarComponent","i6.CsCheckboxComponent","i7","i8.NoDataComponent","i9.SearchPipe","i2.PopoverComponent","i3.PopoverDirective","i4.ToolTipDirective","i1.PaginationService","i2.CreateDashboardService","i3","i4.CsCheckboxComponent","i5","i6.ToolTipDirective","i7.DashboardFooterComponent","i8.PaginationComponent","i9.PopoverComponent","i10.PopoverDirective","i11.LoaderInlineComponent","i12.NoDataComponent","i2.CsCheckboxComponent","i5.DashboardFooterComponent","i6.NoDataComponent","i7.FilterPipe","i3.CsCheckboxComponent","i4.CsRadioComponent","i6.DashboardFooterComponent","i1.CreateDashboardService","i2.PaginationService","i4.PopoverService","i5.ConfigureWidgetsService","i6.TextCountPipe","i9.CsRadioComponent","i11","i12.ToolTipDirective","i13.ConfigureWidgetsComponent","i14.PopoverComponent","i15.PopoverDirective","i16.LoaderInlineComponent","i17.SnackBarComponent","i18.ScrollInViewDirective","i19.SmileyDialogComponent","i20.UserListComponent","i21.ResponsibilityCenterComponent","i22.CategoriesComponent","i23.RiskCategoriesComponent","i24.FrequencyComponent","CsSelectComponent","i2.SafeHtmlPipe","i1.CsSelectComponent","i2.CsSelectService","i3.ToolTipDirective","i1.CsRadioComponent","i2.ClickOutsideDirective","i3.PascalPipe","i2.DialogConfig","i5.InsertionDirective","i1.DialogService","i6","i7.ToolTipDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-dashboard.mjs","sources":["../../../projects/create-dashboard/src/lib/create-dashboard.service.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/pipes/text-count.pipe.ts","../../../projects/create-dashboard/src/lib/configurations.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/services/auth.service.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/services/create-dashboard.service.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/services/pagination.service.ts","../../../projects/create-dashboard/src/lib/ui-kit/snack-bar/snack-bar.service.ts","../../../projects/create-dashboard/src/lib/ui-kit/popover/popover.service.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/services/configure-widgets.service.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.html","../../../projects/create-dashboard/src/lib/ui-kit/tooltip/tooltip.directive.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog-ref.ts","../../../projects/create-dashboard/src/lib/ui-kit/popover/popover.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/popover/popover.component.html","../../../projects/create-dashboard/src/lib/ui-kit/popover/popover.directive.ts","../../../projects/create-dashboard/src/lib/ui-kit/floating-bar/floating-bar.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/floating-bar/floating-bar.component.html","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.html","../../../projects/create-dashboard/src/lib/ui-kit/no-data/no-data.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/no-data/no-data.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/pipes/search.pipe.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.html","../../../projects/create-dashboard/src/lib/ui-kit/v-loader/loader-inline/loader-inline.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/v-loader/loader-inline/loader-inline.component.html","../../../projects/create-dashboard/src/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/directives/scroll-in-view.directive.ts","../../../projects/create-dashboard/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.html","../../../projects/create-dashboard/src/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.html","../../../projects/create-dashboard/src/lib/ui-kit/pagination/pagination.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/pagination/pagination.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/user-list/user-list.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/user-list/user-list.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/pipes/filter.pipe.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/responsibility-center/responsibility-center.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/responsibility-center/responsibility-center.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/categories/categories.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/categories/categories.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/risk-categories/risk-categories.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/risk-categories/risk-categories.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/frequency/frequency.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/frequency/frequency.component.html","../../../projects/create-dashboard/src/lib/create-dashboard-container/create-dashboard.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/create-dashboard.component.html","../../../projects/create-dashboard/src/lib/ui-kit/select/safe-html.pipe.ts","../../../projects/create-dashboard/src/lib/ui-kit/select/cs-select/cs-select.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/select/cs-select/cs-select.component.html","../../../projects/create-dashboard/src/lib/ui-kit/services/cs-select.service.ts","../../../projects/create-dashboard/src/lib/ui-kit/select/cs-option/cs-option.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/select/cs-option/cs-option.component.html","../../../projects/create-dashboard/src/lib/ui-kit/select/select.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/pagination/pagination.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.html","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.html","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/click-outside.directive.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/pipes/pascal.pipe.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-select/cs-select.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/cs-select/cs-select.component.html","../../../projects/create-dashboard/src/lib/ui-kit/tooltip/tooltip.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.ts","../../../projects/create-dashboard/src/lib/ui-kit/formgroup/formgroup.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/popover/popover.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/dashboard-footer/dashboard-footer.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/insertion.directive.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog-config.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog.component.html","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog-injector.ts","../../../projects/create-dashboard/src/lib/ui-kit/dialog/dialog.service.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/form-group/form-group.component.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/form-group/form-group.component.html","../../../projects/create-dashboard/src/lib/ui-kit/floating-bar/floating-bar.module.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/directives/directives.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/no-data/no-data.module.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/configure-widgets/configure-widgets.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/v-loader/loader/loader.component.ts","../../../projects/create-dashboard/src/lib/ui-kit/v-loader/loader/loader.component.html","../../../projects/create-dashboard/src/lib/ui-kit/v-loader/v-loader.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/snack-bar/snack-bar.module.ts","../../../projects/create-dashboard/src/lib/ui-kit/smiley-dialog/smiley-dialog.module.ts","../../../projects/create-dashboard/src/lib/create-dashboard-container/create-dashboard.module.ts","../../../projects/create-dashboard/src/public-api.ts","../../../projects/create-dashboard/src/create-dashboard.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CreateDashboardService {\r\n constructor() {}\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'textCount'\r\n})\r\nexport class TextCountPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n const span = document.createElement('span');\r\n span.innerHTML = value;\r\n console.log('span.innerHTML ==>',span.innerHTML,span.innerText.length)\r\n return span.textContent?.length || span.innerText.length;\r\n }\r\n\r\n}\r\n","export class Configurations {\r\n public envConfig: any;\r\n\r\n constructor() {\r\n this.envConfig = {};\r\n }\r\n\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { of, BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { map, shareReplay, catchError, delay} from 'rxjs/operators';\r\nimport { Configurations } from '../../configurations';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n public env !: any;\r\n\r\n constructor(private http: HttpClient, @Optional() config?: Configurations) { \r\n if (config) {\r\n this.env = config.envConfig;\r\n }\r\n }\r\n getAuthorizationToken() {\r\n if (localStorage.getItem('currentUser')) {\r\n const currentUser = JSON.parse(localStorage.getItem('currentUser') || '{}');\r\n return currentUser.token;\r\n }\r\n }\r\n\r\n \r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { of } from 'rxjs';\r\nimport { catchError, map, retry } from 'rxjs/operators';\r\nimport { Configurations } from '../../configurations';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CreateDashboardService {\r\n public env !: any;\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', token: this.authService.getAuthorizationToken() })\r\n };\r\n constructor(private http: HttpClient,\r\n private authService: AuthService, @Optional() config?: Configurations) {\r\n if (config) {\r\n this.env = config.envConfig;\r\n }\r\n }\r\n\r\n /*\r\n * Fetches the Organization Users List by making an API call\r\n */\r\n getOrganizationUsers(url?: any) {\r\n return this.http.get(this.env?.organizationGet + 'organisationUsersList&paginationType=small' +\r\n (url.p ? '&p=' + url.p : '') + (url.type ? '&type=' + url.type : '') +\r\n (url.q ? '&q=' + url.q : ''), this.httpOptions).pipe(map((res: any) => {\r\n return res;\r\n }), retry(2), catchError(err => of(err)));\r\n }\r\n\r\n /**\r\n * Fetches the OrganizationUsers details of users List to set pagination details including number of\r\n * pages and records limit per page,\r\n * @param url contains info about type & search query\r\n */\r\n getOrganizationUsersCount(url?: any) {\r\n return this.http.get(this.env?.organizationGet + 'organisationUsersCount&paginationType=small' +\r\n (url.type ? '&type=' + url.type : '') + (url.q ? '&q=' + url.q : ''), this.httpOptions).pipe(map(res => {\r\n return res;\r\n }), catchError(err => of(err)));\r\n }\r\n\r\n getCategoryList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http\r\n .get<any[]>(this.env?.riskGet + 'category/list', { headers })\r\n .pipe(retry(2));\r\n }\r\n\r\n /**\r\n * Fetches all users by making an API call\r\n */\r\n getAllUsers() {\r\n return this.http.get(this.env?.organizationGet + 'selectAllUsers&type=all', this.httpOptions).pipe(retry(2));\r\n }\r\n\r\n /**\r\n * Fetches all groups by making an API call\r\n * */\r\n getAllGroups(params?: HttpParams){\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get(this.env?.organizationGet + 'groupsList&permType=dashboard&memberExists=1', {params, headers}).pipe(retry(2));\r\n }\r\n \r\n /**\r\n * Fetches responsibilityCentersList by making an API call\r\n */\r\n getResponsibilityCenterList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env?.complianceGet + 'responsibilityCenterTree', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getComplianceCategoriesList() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env.complianceGet + 'complianceCategory/CategoryListTree', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n getComplianceCategoriesListFromGlobal() {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.get<any[]>(this.env?.complianceGet + 'complianceCategory/CategoryListTree&program=1&isDashboard=true', {\r\n headers,\r\n }).pipe(retry(2));\r\n }\r\n\r\n submitDashboard(payload: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.post(this.env.dashboard+'CreateDashboard', payload, { headers }).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n /**\r\n * Fetches the Dashboard details for data population to Edit the dashboard\r\n * @param id\r\n */\r\n fetchDashboard(id: any) {\r\n return this.http.get(this.env.dashboard + id + '?mode=edit', this.httpOptions).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n updateDashboard(id: any, payload: any) {\r\n return this.http.put(this.env.dashboard + 'UpdateDashboard/' + id, payload, this.httpOptions).pipe(\r\n retry(2)\r\n );\r\n }\r\n\r\n getUserInformation() {\r\n return this.http.get(this.env?.organizationGet + 'users&id=' + this?._ID(), this.httpOptions).pipe(\r\n retry(2)\r\n );\r\n }\r\n _ID() {\r\n const helper = new JwtHelperService();\r\n const myRawToken = localStorage.getItem('currentUser') || '{}';\r\n const isExpired = helper?.isTokenExpired(myRawToken);\r\n if (isExpired === false) {\r\n const tokenInfo = helper?.decodeToken(myRawToken);\r\n return tokenInfo._id;\r\n }\r\n return '';\r\n }\r\n\r\n checkDuplicateDashboardName(payload: any) {\r\n return this.http.post(this.env.dashboard + 'DuplicateDashboard', payload, this.httpOptions).pipe(\r\n retry(2)\r\n );\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n/**\r\n * Service to implement pagination for users while creating an app\r\n */\r\nexport class PaginationService {\r\n currentPage = 1;\r\n searchValue = '';\r\n currentValues = new BehaviorSubject({});\r\n\r\n constructor() { }\r\n\r\n setCurrentState() {\r\n this.currentValues.next(true);\r\n }\r\n reset(){\r\n this.currentPage = 1;\r\n this.searchValue = '';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SnackBarService {\r\n snackbarSubject = new Subject<any>();\r\n constructor() {}\r\n\r\n show(message: string, icon?: string) {\r\n this.snackbarSubject.next({\r\n show: true,\r\n message,\r\n icon,\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PopoverService {\r\n stopScroll = false;\r\n positionX!: number;\r\n positionY!: number;\r\n popoverHeight: any;\r\n popoverWidth: any;\r\n elementPosition: any;\r\n elementDirection: any;\r\n constructor() {\r\n console.log(this.popoverHeight);\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { widgetDataModel} from '../interfaces/widget-data-model'\r\nimport { HttpClient, HttpHeaders, JsonpClientBackend } from '@angular/common/http';\r\nimport { catchError, map, retry } from 'rxjs/operators';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { of } from 'rxjs';\r\nimport { AuthService } from './auth.service';\r\nimport { Configurations } from '../../configurations';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigureWidgetsService {\r\n public env !: any;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n @Optional() config?: Configurations) { \r\n if (config) {\r\n this.env = config.envConfig;\r\n }}\r\n\r\n complianceWidgetsData = [\r\n {\r\n title: 'Overview',\r\n id: 'overview_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/overview.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Responsibility Calendar',\r\n id: 'compliance_calendar_flag',\r\n description: 'Displays all responsibilities that are due on a particular day.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/responsibility-calender.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Responsibility Center Overview',\r\n id: 'responsibility_center_overview_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/overview.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'My Responsibilities',\r\n id: 'my_responsibilities',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/my-responsibilities.png',\r\n tabOption: true,\r\n value: 0,\r\n },\r\n {\r\n title: 'Key Responsibilities',\r\n id: 'key_responsibilities',\r\n description: 'Displays all responsibilities that are due on a particular day.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/key-responsibilities.png',\r\n tabOption: true,\r\n value: 0,\r\n },\r\n {\r\n title: 'Trend Analysis',\r\n id: 'trend_analysis_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/trend-analysis.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Workroom Updates',\r\n id: 'workroom_alert_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/workroom-updates.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Recent Activities',\r\n id: 'recent_activity_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/recent-activities.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Exception Summary',\r\n id: 'exception_summary_flag',\r\n description: 'Displays all responsibilities that have been assigned to you.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/exception-summary.png',\r\n value: 0,\r\n }\r\n ];\r\n\r\n\r\n\r\n riskWidgetsData = [\r\n {\r\n title: 'Risk Overview',\r\n id: 'risk_overview',\r\n description: 'description',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-overview.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/risk-overview.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Risk Appetite & Tolerance',\r\n id: 'risk_appetite_tolerance',\r\n description: 'description',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/appetite-tolerance.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Risk Ratings',\r\n id: 'risk_ratings',\r\n description: 'Description.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Risks Without Controls',\r\n id: 'risks_without_controls',\r\n description: 'Description',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',\r\n value: 0,\r\n }, \r\n {\r\n title: 'Risks Exceeding Risk Tolerance',\r\n id: 'exceeds_risk_tolerance',\r\n description: 'description',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Inherent Risk Rating by Responsibility Centers ',\r\n id: 'inherent_risk_rating_by_responsibility_centers',\r\n description: 'Description.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-RC.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/inherent-RC.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Residual Risk Rating by Responsibility Centers ',\r\n id: 'residual_risk_rating_by_responsibility_centers',\r\n description: 'Description.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-RC.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/residual-RC.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Risk Category Overview',\r\n id: 'risk_category_overview',\r\n description: 'description',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-category-overview.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/risk-category-overview.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Risk Heatmap',\r\n id: 'risk_heatmap',\r\n description: 'Description.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-heatmap.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Inherent Risk Rating by Categories',\r\n id: 'inherent_risk_rating_by_categories',\r\n description: 'Description.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-categories.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/inherent-categories.png',\r\n value: 0,\r\n },\r\n \r\n {\r\n title: 'Residual Risk Rating by Categories',\r\n id: 'residual_risk_rating_by_categories',\r\n description: 'description',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-categories.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/residual-categories.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Inherent Risk Rating Trend by Responsibility Centers',\r\n id: 'inherent_risk_rating_trend_by_responsibility_centers',\r\n description: 'Description.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-trend.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Residual Risk Rating Trend by Responsibility Centers',\r\n id: 'residual_risk_rating_trend_by_responsibility_centers',\r\n description: 'Description.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-trend.png',\r\n value: 0,\r\n }, \r\n {\r\n title: 'Risk Rating Trend by Categories',\r\n id: 'risk_rating_trend_by_categories',\r\n description: 'Description.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-trend.png',\r\n value: 0,\r\n },\r\n {\r\n title: 'Top 5 Risk Ratings',\r\n id: 'top_5_residual_risk_ratings',\r\n description: 'Description.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/5-risk-ratings.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/10-risk-ratings.png',\r\n value: 0,\r\n },\r\n ];\r\n auditWidgetsData = [];\r\n policyWidgetsData = [];\r\n\r\n\r\n // For dashboard view\r\n dashBoardWidgetUpdate(widGetJson: any) {\r\n const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\r\n return this.http.put(this.env.OrganizationPut + 'dashboardWidgets', widGetJson).pipe(retry(2));\r\n }\r\n\r\n moduleType(identifier:string){\r\n if(JSON.stringify(this.complianceWidgetsData).includes(identifier)){\r\n return 'COMPLIANCE'\r\n }else if(JSON.stringify(this.riskWidgetsData).includes(identifier)){\r\n return 'RISK'\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-radio',\r\n templateUrl: './cs-radio.component.html',\r\n styleUrls: ['./cs-radio.component.less'],\r\n})\r\nexport class CsRadioComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() readonly!: boolean;\r\n @Input() name!: string;\r\n @Input() checked!: boolean;\r\n @Input() value: any;\r\n @Output() checkedEvent = new EventEmitter();\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n changeState(evt: any) {\r\n this.checkedEvent.emit(evt);\r\n }\r\n}\r\n","<label class=\"radio-item\" [class.readonly]=\"readonly\">\r\n <input type=\"radio\" [disabled]=\"disabled\" [name]=\"name\" [value]=\"value\" [checked]=\"checked\" (change)=\"changeState($event)\" />\r\n <span class=\"radio\">\r\n <span class=\"inner\"></span>\r\n </span>\r\n <svg class=\"radiomark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"radiomark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <circle class=\"radiomark__check\" cx=\"26\" cy=\"26\" r=\"5\" fill=\"none\" />\r\n </svg>\r\n <span class=\"value\"><ng-content></ng-content></span>\r\n</label>\r\n","import { Directive, Input, ElementRef, HostListener, Renderer2, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[arTooltip]',\r\n})\r\nexport class ToolTipDirective implements OnInit {\r\n @Input('arTooltip') tooltipTitle!: string;\r\n @Input() placement!: string;\r\n @Input() type: any;\r\n @Input() tooltipMandatory!: boolean;\r\n @Input() showTooltip = true;\r\n @Input() animate!: boolean;\r\n tooltip!: HTMLElement;\r\n offset = 8;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n ngOnInit() {}\r\n @HostListener('mouseenter') onMouseEnter() {\r\n this.hide();\r\n this.show();\r\n }\r\n @HostListener('mouseover') onMouseOver() {\r\n this.hide();\r\n this.show();\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n this.hide();\r\n }\r\n @HostListener('mouseout') onMouseOut() {\r\n this.hide();\r\n }\r\n @HostListener('click') onClick() {\r\n this.hide();\r\n }\r\n show() {\r\n if (!this.showTooltip) {\r\n return;\r\n }\r\n this.create();\r\n const element = this.el.nativeElement;\r\n if (this.tooltipMandatory === true) {\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip-show');\r\n } else {\r\n if (element.scrollWidth * element.scrollHeight > element.offsetWidth * element.offsetHeight) {\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip-show');\r\n }\r\n }\r\n }\r\n\r\n hide() {\r\n if (document.body.contains(this.tooltip)) {\r\n if (this.renderer) {\r\n this.renderer.removeChild(document.body, document.getElementById('tooltip'));\r\n }\r\n }\r\n }\r\n\r\n create() {\r\n this.tooltip = this.renderer.createElement('span');\r\n this.tooltip.setAttribute('id', 'tooltip');\r\n this.tooltip.innerHTML = this.tooltipTitle;\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip');\r\n this.renderer.addClass(this.tooltip, `ng-tooltip-${this.placement}`);\r\n this.renderer.addClass(this.tooltip, `${this.type}`);\r\n if (this.animate) {\r\n this.renderer.addClass(this.tooltip, `animate-${this.placement}`);\r\n }\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltip.getBoundingClientRect();\r\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n const w = window.innerWidth;\r\n const h = window.innerHeight;\r\n let top;\r\n let left;\r\n if (this.placement === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.placement === 'bottom') {\r\n if (hostPos.top + tooltipPos.height > h) {\r\n top = hostPos.top - tooltipPos.height;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n this.renderer.removeClass(this.tooltip, `ng-tooltip-bottom`);\r\n this.renderer.addClass(this.tooltip, `ng-tooltip-top`);\r\n } else {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n }\r\n\r\n if (this.placement === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.placement === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n if (this.placement === 'bottom-right') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left - (tooltipPos.width - 28);\r\n }\r\n if (this.placement === 'bottom-left') {\r\n if (hostPos.top + tooltipPos.height > h - 30) {\r\n top = hostPos.top - tooltipPos.height;\r\n console.log('bottom left', hostPos.top - tooltipPos.height);\r\n left = hostPos.left;\r\n this.renderer.removeClass(this.tooltip, `ng-tooltip-bottom-left`);\r\n this.renderer.addClass(this.tooltip, `ng-tooltip-top-left`);\r\n } else {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left;\r\n }\r\n }\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { Observable, Subject } from 'rxjs';\r\n\r\nexport class DialogRef {\r\n private readonly afterDialogClosed = new Subject<any>();\r\n afterClosed: Observable<any> = this.afterDialogClosed.asObservable();\r\n constructor() {}\r\n\r\n close(result?: any) {\r\n this.afterDialogClosed.next(result);\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@Component({\r\n selector: 'app-popover',\r\n templateUrl: './popover.component.html',\r\n styleUrls: ['./popover.component.less'],\r\n})\r\nexport class PopoverComponent implements OnInit {\r\n @Input() dontCloseonClick = false;\r\n popoverContainer = false;\r\n @ViewChild('popoverRatio') popoverRatio!: ElementRef;\r\n @ViewChild('popoverContent') popoverContent!: ElementRef;\r\n @Output() closedOnOverlay = new EventEmitter();\r\n constructor(public popoverService: PopoverService) {}\r\n showPopover = false;\r\n leftValue: any;\r\n topValue: any;\r\n popoverHeight: any;\r\n popoverWidth: any;\r\n positionX!: number;\r\n positionY!: number;\r\n ngOnInit(): void {}\r\n popover() {\r\n this.popoverContainer = false;\r\n this.popoverContainer = true;\r\n setTimeout(() => {\r\n this.getPosition();\r\n this.showPopover = true;\r\n this.popoverService.stopScroll = true;\r\n // document.body.style.overflow = 'hidden';\r\n }, 10);\r\n return false;\r\n }\r\n popoverEvent() {\r\n this.popoverContainer = false;\r\n this.popoverContainer = true;\r\n setTimeout(() => {\r\n // this.getPosition();\r\n this.positionX = this.popoverService.positionX;\r\n this.positionY = this.popoverService.positionY;\r\n this.showPopover = true;\r\n this.popoverService.stopScroll = true;\r\n\r\n }, 10);\r\n return false;\r\n }\r\n closePopover(top?: string) {\r\n if (!this.dontCloseonClick || top === 'top') {\r\n this.popoverContainer = false;\r\n this.showPopover = false;\r\n this.popoverService.stopScroll = false;\r\n // document.body.style.overflow = 'auto';\r\n }\r\n }\r\n\r\n close(){\r\n this.popoverContainer = false;\r\n this.showPopover = false;\r\n this.popoverService.stopScroll = false;\r\n }\r\n\r\n clickedPopover() {\r\n this.getPosition();\r\n }\r\n getPosition() {\r\n // setTimeout(() => {\r\n const elementPositionn = this.popoverService.elementPosition;\r\n this.popoverHeight = this.popoverRatio.nativeElement.offsetHeight;\r\n this.popoverWidth = this.popoverRatio.nativeElement.offsetWidth;\r\n if (this.popoverService.elementDirection === 'left') {\r\n this.leftValue = elementPositionn.left;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'right') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverWidth;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'top') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'bottom') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'self-position') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\r\n this.topValue = elementPositionn.top - 15;\r\n }\r\n if (this.popoverService.elementDirection === 'top-center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\r\n // this.topValue = elementPositionn.top - this.popoverHeight;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight) {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n } else {\r\n this.topValue = elementPositionn.top - this.popoverHeight;\r\n }\r\n }\r\n if (this.popoverService.elementDirection === 'center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n this.positionX = this.leftValue;\r\n this.positionY = this.topValue;\r\n // }, 10);\r\n }\r\n}\r\n","<div class=\"popover-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\r\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\r\n <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@Directive({\r\n selector: '[appPopover]',\r\n})\r\nexport class PopoverDirective {\r\n dynamicComponent: any;\r\n @Input() refrence: any;\r\n @Input() placement!: string;\r\n leftValue: any;\r\n topValue: any;\r\n constructor(private elRef: ElementRef, private popoverService: PopoverService) {}\r\n @HostListener('click') click() {\r\n this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\r\n this.popoverService.elementDirection = this.placement;\r\n // this.getPosition();\r\n }\r\n\r\n getPosition() {\r\n setTimeout(() => {\r\n // this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\r\n const elementPositionn = this.elRef.nativeElement.getBoundingClientRect();\r\n if (this.placement === 'left') {\r\n this.leftValue = elementPositionn.left;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.placement === 'right') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverService.popoverWidth;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.placement === 'top') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n }\r\n }\r\n if (this.placement === 'bottom') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width;\r\n if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n } else {\r\n this.topValue = elementPositionn.top + elementPositionn.height;\r\n }\r\n }\r\n if (this.placement === 'self-position') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\r\n this.topValue = elementPositionn.top - 15;\r\n }\r\n if (this.placement === 'top-center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\r\n this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\r\n }\r\n if (this.placement === 'bottom-center') {\r\n this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\r\n this.topValue = elementPositionn.top + this.popoverService.popoverHeight;\r\n }\r\n this.popoverService.positionX = this.leftValue;\r\n this.popoverService.positionY = this.topValue;\r\n }, 10);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SnackBarService } from '../snack-bar/snack-bar.service';\r\n\r\n@Component({\r\n selector: 'floating-bar',\r\n templateUrl: './floating-bar.component.html',\r\n styleUrls: ['./floating-bar.component.less']\r\n})\r\nexport class FloatingBarComponent implements OnInit {\r\n @Output() cancelEvent = new EventEmitter<string>();\r\n @Output() submitEvent = new EventEmitter<string>();\r\n @Output() deleteEvent: EventEmitter<number> = new EventEmitter();\r\n @Input() text!: boolean;\r\n @Input() frequencyMessage: any;\r\n @Input() singleCategory: any;\r\n @Input() selectedData: any;\r\n\r\n constructor(private snackBar: SnackBarService\r\n ) {\r\n this.selectedData = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n cancelFloatingBar() {\r\n this.cancelEvent.emit();\r\n }\r\n submitFloatingBar() {\r\n if (this.selectedData.length < 1) {\r\n this.snackBar.show('Select a widget.','alert');\r\n return\r\n }\r\n this.submitEvent.emit(this.selectedData);\r\n }\r\n\r\n deleteSelected(index: number) {\r\n this.deleteEvent.emit(index);\r\n }\r\n\r\n}\r\n","<div class=\"lib-floating-bar-container\">\r\n <div class=\"lib-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3\">\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"text && !frequencyMessage && !singleCategory\">\r\n <span class=\"value\">This audit plan needs to be <strong>reviewed</strong> within 2 days after it has been completed.</span>\r\n </div>\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"frequencyMessage && !text\">\r\n <span class=\"value\" [innerHTML]=\"frequencyMessage\"></span>\r\n </div>\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"singleCategory && !frequencyMessage && !text\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"singleCategory\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{singleCategory}}</span>\r\n </div>\r\n </div>\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"!singleCategory && !text && !frequencyMessage\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\" *ngIf=\"selectedData.length\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteSelected(selectedData[0])\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"selectedData[0]?.title\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedData[0]?.title}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"countPopup.popover()\" placement=\"left\" *ngIf=\"selectedData?.length > 1\">+{{selectedData?.length - 1}}</button>\r\n </div>\r\n \r\n <span class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"(selectedData?.length - 1) === 1\">Widget Selected</span>\r\n <span class=\"vx-fs-12 vx-paragraph-txt\" *ngIf=\"(selectedData?.length - 1) > 1\">Widgets Selected</span>\r\n\r\n <app-popover #countPopup [dontCloseonClick]=\"true\">\r\n <div class=\"lib-floating-bar-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let data of selectedData | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"data?.title\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"><i class=\"icons cross-icon vx-mr-2\" (click)=\"deleteSelected(data)\"></i>{{data?.title}}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n <div class=\"right vx-d-flex vx-align-center\">\r\n <button class=\"cancel-btn\" (click)=\"cancelFloatingBar()\">Cancel</button>\r\n <!-- <button class=\"vx-bg-blue vx-txt-white vx-fw-500 vx-tt-uppercase\" (click)=\"submitFloatingBar()\">Update</button> -->\r\n <button class=\"save-btn\" (click)=\"submitFloatingBar()\">Save</button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-checkbox',\r\n templateUrl: './cs-checkbox.component.html',\r\n styleUrls: ['./cs-checkbox.component.less'],\r\n})\r\nexport class CsCheckboxComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() ngValue: any;\r\n @Input() value: any;\r\n @Output() ngValueChange = new EventEmitter<any>();\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n valueChanged() {\r\n this.ngValueChange.emit(this.ngValue);\r\n }\r\n}\r\n","<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\r\n <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\r\n <span class=\"checkbox\">\r\n <span class=\"inner\"></span>\r\n </span>\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n <span class=\"value\"><ng-content></ng-content></span>\r\n</label>\r\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-no-data',\r\n templateUrl: './no-data.component.html',\r\n styleUrls: ['./no-data.component.less'],\r\n})\r\nexport class NoDataComponent implements OnInit {\r\n @Input() action!: any;\r\n @Input() noDataImage!: string;\r\n @Input() noDataText = '';\r\n @Input() noDataButton!: string | boolean;\r\n @Input() noDataSecButton!: string | boolean;\r\n @Input() altText!: string;\r\n @Output() buttonAction = new EventEmitter<object>();\r\n @Input() smallButton!: boolean;\r\n @Input() buttonIcon!: any;\r\n @Input() iconClass!: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n actionEmitter(button: object) {\r\n this.buttonAction.emit(button);\r\n }\r\n}\r\n","<div class=\"no-data-wrapper\">\r\n <div class=\"no-data-container\">\r\n <img [src]=\"noDataImage\" [alt]=\"altText\" class=\"image\" />\r\n <p class=\"text\" [innerHTML]=\"noDataText\" *ngIf=\"noDataText\"></p>\r\n <div class=\"button-row\" *ngFor=\"let button of action\">\r\n <button *ngIf=\"!button?.buttonIcon\" (click)=\"actionEmitter(button)\" [innerHTML]=\"button?.buttonText\"\r\n [class.small]=\"smallButton\"></button>\r\n <button *ngIf=\"button?.buttonIcon\" (click)=\"actionEmitter(button)\" [class.small]=\"smallButton\">\r\n <i class=\"icons\" [innerHTML]=\"button?.buttonIcon\"></i> <span\r\n [innerHTML]=\"button?.buttonText\"></span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'search'\r\n})\r\nexport class SearchPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n if (!value) {\r\n return null;\r\n }\r\n if (!args) {\r\n return value;\r\n }\r\n\r\n args = args.toLowerCase();\r\n\r\n return value.filter((item: any) => {\r\n return JSON.stringify(item).toLowerCase().includes(args);\r\n });\r\n }\r\n\r\n}\r\n","import { ConfigureWidgetsService } from '../../services/configure-widgets.service';\r\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { retry } from 'rxjs/operators';\r\nimport { widgetDataModel } from '../../interfaces/widget-data-model';\r\nimport { DialogRef } from '../../../ui-kit/dialog/dialog-ref';\r\nimport { widgetConfig } from './widget.interface';\r\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\r\n\r\n@Component({\r\n selector: 'app-configure-widgets',\r\n templateUrl: './configure-widgets.component.html',\r\n styleUrls: ['./configure-widgets.component.less']\r\n})\r\nexport class ConfigureWidgetsComponent implements OnInit, OnChanges {\r\n\r\n @Output() widgetsDataModified: EventEmitter<any> = new EventEmitter();\r\n @Output() closeConfigureWidgets: EventEmitter<any> = new EventEmitter();\r\n checkboxStatus!: any;\r\n search: string = '';\r\n checkedArray: Array<{ index: number, status: number }> = [];\r\n selectedWidgets: Array<widgetDataModel> = [];\r\n\r\n module: \"COMPLIANCE\" | \"RISK\" = 'COMPLIANCE';\r\n @Input() selectedWidgetsData: any = [];\r\n @Input() displayedWidgets: any = [];\r\n @Input() showRisk = false;\r\n @Input() showCompliance = false;\r\n @Input() mode = 'CREATE'\r\n noDataText = 'You have not configured any widgets. Click on the <strong>Configure Widgets</strong> button to begin.';\r\n\r\n selectedWidgetIds: any = [];\r\n subResponsibilitiesSelected: boolean = false\r\n subKeyResponsibilitiesSelected: boolean = false\r\n showWidgets = true;\r\n complianceWidgetsDisplayCount = 9;\r\n riskWidgetsDisplayCount = 9;\r\n\r\n\r\n constructor(\r\n private dialog: DialogRef,\r\n public configureWidgetsService: ConfigureWidgetsService,\r\n private snackBar: SnackBarService) {\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.mode == 'EDIT') {\r\n this.setWidgetsVisibilityToFalse()\r\n this.riskWidgetsDisplayCount = 0;\r\n this.complianceWidgetsDisplayCount = 0;\r\n const finalData = [...new Set(this.displayedWidgets)];\r\n finalData.forEach((element: any, index: any) => {\r\n this.widgetsList.COMPLIANCE.forEach((ele: any) => {\r\n if (ele.id == element.widget_code) {\r\n ele.visibility = true;\r\n if (ele.subWidgets.length > 0) {\r\n const filterData: any = []\r\n element.sub_widgets.filter((subwidget: any) => {\r\n filterData.push(subwidget.widget_code);\r\n });\r\n ele.subWidgets.forEach((subElement: any, subIndex: number) => {\r\n if (filterData.includes(subElement.id)) {\r\n ele.subWidgets[subIndex].visibility = true;\r\n } else {\r\n ele.subWidgets[subIndex].visibility = false;\r\n }\r\n });\r\n }\r\n this.complianceWidgetsDisplayCount++\r\n }\r\n })\r\n this.widgetsList.RISK.forEach((ele: any) => {\r\n if (ele.id == element.widget_code) {\r\n ele.visibility = true;\r\n if (ele.subWidgets.length > 0) {\r\n const filterData: any = []\r\n element.sub_widgets.filter((subwidget: any) => {\r\n filterData.push(subwidget.widget_code);\r\n });\r\n ele.subWidgets.forEach((subElement: any, subIndex: number) => {\r\n if (filterData.includes(subElement.id)) {\r\n ele.subWidgets[subIndex].visibility = true;\r\n } else {\r\n ele.subWidgets[subIndex].visibility = false;\r\n }\r\n });\r\n\r\n }\r\n this.riskWidgetsDisplayCount++\r\n }\r\n })\r\n });\r\n }\r\n const data = [...new Set(this.selectedWidgetsData)];\r\n data.forEach((element: any, index: any) => {\r\n this.widgetsList.COMPLIANCE.forEach((ele: any) => {\r\n if (ele.id == element.widget_code && element.state == 'ACTIVE') {\r\n ele.value = true;\r\n if (ele.subWidgets.length > 0) {\r\n const filterData: any = []\r\n element.sub_widgets.filter((subwidget: any) => {\r\n if (subwidget.state == 'ACTIVE') {\r\n filterData.push(subwidget.widget_code);\r\n }\r\n });\r\n ele.subWidgets.forEach((subElement: any, subIndex: number) => {\r\n if (filterData.includes(subElement.id)) {\r\n ele.subWidgets[subIndex].value = true;\r\n } else {\r\n ele.subWidgets[subIndex].value = false;\r\n }\r\n });\r\n\r\n }\r\n this.selectedWidgets.push(ele);\r\n\r\n }\r\n })\r\n this.widgetsList.RISK.forEach((ele: any) => {\r\n if (ele.id == element.widget_code && element.state == 'ACTIVE') {\r\n ele.value = true;\r\n if (ele.subWidgets.length > 0) {\r\n const filterData: any = []\r\n element.sub_widgets.filter((subwidget: any) => {\r\n if (subwidget.state == 'ACTIVE') {\r\n filterData.push(subwidget.widget_code);\r\n }\r\n });\r\n ele.subWidgets.forEach((subElement: any, subIndex: number) => {\r\n if (filterData.includes(subElement.id)) {\r\n ele.subWidgets[subIndex].value = true;\r\n } else {\r\n ele.subWidgets[subIndex].value = false;\r\n }\r\n });\r\n\r\n }\r\n this.selectedWidgets.push(ele);\r\n\r\n }\r\n })\r\n\r\n });\r\n this.module = (this.showCompliance) ? 'COMPLIANCE' : 'RISK';\r\n this.setSelectedWidgets();\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n\r\n widgetsList = {\r\n COMPLIANCE: [\r\n {\r\n title: 'Overview',\r\n id: 'overview',\r\n description: 'Overview shows the performance of responsibilities and Programs.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/overview.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Responsibility Calendar',\r\n id: 'compliance_calendar_flag',\r\n description: 'The Responsibility Calendar shows the due dates of responsibilities in a calendar format. The responsibilities are color coded to reflect the status of the responsibilities.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/responsibility-calender.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Responsibility Center Overview',\r\n id: 'responsibility_center_overview_flag',\r\n description: 'The Responsibility Center Overview shows the performance of responsibilities and Responsibility Centers.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/responsibility-center-overview.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Responsibilities',\r\n id: 'my_responsibilities',\r\n description: 'This widget shows the performance of the responsibilities that you are required to complete, the responsibilities that you are reviewing and the responsibilities that you are overseeing.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/my-responsibilities.png',\r\n tabOption: true,\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: [\r\n {\r\n title: 'My Responsibilities',\r\n id: 'my_responsibility_flag',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'I’m Reviewing',\r\n id: 'reviewer_responsibility_flag',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'I’m Overseeing',\r\n id: 'cc_responsibility_flag',\r\n value: false,\r\n visibility:true,\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Key Responsibilities',\r\n id: 'key_responsibilities',\r\n description: 'This widget shows the performance of key responsibilities that you are required to complete, that you are reviewing, that you are overseeing and that you have assigned to another person.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/key-responsibilities.png',\r\n tabOption: true,\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: [\r\n {\r\n title: 'Overview',\r\n id: 'key_responsibilities_overview_flag',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'My Responsibilities',\r\n id: 'key_my_responsibilities_flag',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'I’m Reviewing',\r\n id: 'key_i_am_reviewing_flag',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'I’m Overseeing',\r\n id: 'key_i_am_overseeing_flag',\r\n value: false,\r\n visibility:true,\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Trend Analysis',\r\n id: 'trend_analysis_flag',\r\n description: 'The Trend Analysis is a graphical representation of the performance of responsibilities over a period.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/trend-analysis.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Workroom Updates',\r\n id: 'workroom_alert_flag',\r\n description: 'The Responsibility Workroom shows updates from the Responsibility Workrooms. A Responsibility Workroom exists for all responsibilities.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/workroom-updates.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Recent Activities',\r\n id: 'recent_activity_flag',\r\n description: 'This is a chronological view of the recent updates of responsibilities.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/recent-activities.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Exception Summary',\r\n id: 'exception_summary_flag',\r\n description: 'Exceptions Summary show the number of responsibilities that are either not accepted, not completed or deleted.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/exception-summary.png',\r\n value: false,\r\n visibility:true,\r\n module: 'COMPLIANCE',\r\n subWidgets: []\r\n }\r\n ],\r\n RISK: [\r\n {\r\n title: 'Risk Overview',\r\n id: 'risk_overview',\r\n description: 'This widget shows the number and percentage of risks within each risk response strategy.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-overview.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/risk-overview.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Risk Metrics',\r\n id: 'risk_metrics',\r\n description: 'This widget shows the number of risks within each risk appetite, the number of risks that exceed the risk appetite, the number of risks that exceed the risk tolerance, the number of risks within each risk rating, and the number of risks that do not have any linked controls.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/appetite-tolerance.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: [\r\n {\r\n title: 'Risk Appetite & Tolerance',\r\n id: 'risk_appetite_tolerance',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'Risk Ratings',\r\n id: 'risk_ratings',\r\n value: false,\r\n visibility:true,\r\n },\r\n {\r\n title: 'Risks Without Controls',\r\n id: 'risks_without_controls',\r\n value: false,\r\n visibility:true,\r\n },\r\n // {\r\n // title: 'Exceeds Risk Tolerance',\r\n // id: 'exceeds_risk_tolerance',\r\n // value: false,\r\n // visibility:true,\r\n // },\r\n ]\r\n },\r\n\r\n {\r\n title: 'Inherent Risk Rating by Responsibility Centers ',\r\n id: 'inherent_risk_rating_by_responsibility_centers',\r\n description: 'This widget shows the number of risks within each inherent risk rating, grouped according to the Responsibility Center exposed to the risk.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-RC.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/inherent-RC.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Residual Risk Rating by Responsibility Centers ',\r\n id: 'residual_risk_rating_by_responsibility_centers',\r\n description: 'This widget shows the number of risks within each residual risk rating, grouped according to the Responsibility Center exposed to the risk.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-RC.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/residual-RC.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Risk Category Overview',\r\n id: 'risk_category_overview',\r\n description: 'This widgets shows the number of risks within each status, grouped according to the Risk Category the risk is assigned to.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-category-overview.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/risk-category-overview.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Risk Heatmap',\r\n id: 'risk_heatmap',\r\n description: 'The Risk Heatmap displays the risk matrix for any two risk factors.',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-heatmap.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n {\r\n title: 'Inherent Risk Rating by Categories',\r\n id: 'inherent_risk_rating_by_categories',\r\n description: 'This widget shows the number of risks within each inherent risk rating, grouped according to the Risk Category that the risk is assigned to.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-categories.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/inherent-categories.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n\r\n {\r\n title: 'Residual Risk Rating by Categories',\r\n id: 'residual_risk_rating_by_categories',\r\n description: 'This widget shows the number of risks within each residual risk rating, grouped according to the Risk Category that the risk is assigned to.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-categories.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/riskV2/residual-categories.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n },\r\n // {\r\n // title: 'Inherent Risk Rating Trend by Responsibility Centers',\r\n // id: 'inherent_risk_rating_trend_by_responsibility_centers',\r\n // description: 'This widget is a graphical representation of the number of risks within each inherent risk rating, grouped according to the Responsibility Center exposed to the risk.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-trend.png',\r\n // value: false,\r\n // visibility:true,\r\n // module: 'RISK',\r\n // subWidgets: []\r\n // },\r\n // {\r\n // title: 'Residual Risk Rating Trend by Responsibility Centers',\r\n // id: 'residual_risk_rating_trend_by_responsibility_centers',\r\n // description: 'This widget is a graphical representation of the number of risks within each residual risk rating, grouped according to the Responsibility Center exposed to the risk.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-trend.png',\r\n // value: false,\r\n // visibility:true,\r\n // module: 'RISK',\r\n // subWidgets: []\r\n // },\r\n // {\r\n // title: 'Risk Rating Trend by Categories',\r\n // id: 'risk_rating_trend_by_categories',\r\n // description: 'This widgets is a trend chart that shows the inherent and residual risk rating trend across the different Risk Categories.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-trend.png',\r\n // value: false,\r\n // visibility:true,\r\n // module: 'RISK',\r\n // subWidgets: []\r\n // },\r\n {\r\n title: 'Top 10 Risk Ratings',\r\n id: 'top_10_residual_risk_ratings',\r\n description: 'This widgets shows ths top five risks with the highest risk rating.',\r\n // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/5-risk-ratings.png',\r\n widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/10-risk-ratings.png',\r\n value: false,\r\n visibility:true,\r\n module: 'RISK',\r\n subWidgets: []\r\n }\r\n ]\r\n }\r\n\r\n selectWidget(event: any, module: 'COMPLIANCE' | 'RISK', widgetId: string, subWidgetId?: string) {\r\n const widgetIndex = this.widgetsList[module].findIndex((ele: any) => ele.id == widgetId);\r\n const isSubWidgetAddable = this.selectedWidgets.findIndex(( widget: any) => widget.id === widgetId )\r\n if (event) {\r\n if (this.selectedWidgets.length >= 10 && !(subWidgetId && isSubWidgetAddable >= 0)) {\r\n this.snackBar.show('You cannot add more than 10 widgets.','alert');\r\n this.showWidgets = false;\r\n setTimeout(() => {\r\n this.widgetsList[module][widgetIndex].value = false;\r\n this.showWidgets = true;\r\n }, 10);\r\n return\r\n }\r\n this.widgetsList[module][widgetIndex].value = true;\r\n if (this.widgetsList[module][widgetIndex].subWidgets.length > 0) {\r\n if (!subWidgetId) {\r\n this.widgetsList[module][widgetIndex].subWidgets.forEach(ele => ele.value = true);\r\n } else {\r\n const subWidgetIndex = this.widgetsList[module][widgetIndex].subWidgets.findIndex((ele: any) => ele.id == subWidgetId);\r\n this.widgetsList[module][widgetIndex].subWidgets[subWidgetIndex].value = true;\r\n }\r\n }\r\n } else {\r\n if (this.widgetsList[module][widgetIndex].subWidgets.length > 0) {\r\n if (!subWidgetId) {\r\n this.widgetsList[module][widgetIndex].value = false;\r\n this.widgetsList[module][widgetIndex].subWidgets.forEach((ele: any) => ele.value = false);\r\n } else {\r\n const subWidgetIndex = this.widgetsList[module][widgetIndex].subWidgets.findIndex((ele: any) => ele.id == subWidgetId);\r\n this.widgetsList[module][widgetIndex].subWidgets[subWidgetIndex].value = false;\r\n\r\n const isAllWidgetsRemoved = this.widgetsList[module][widgetIndex].subWidgets.every((ele: any) => ele.value == false);\r\n if (isAllWidgetsRemoved) {\r\n this.widgetsList[module][widgetIndex].value = false;\r\n }\r\n }\r\n } else {\r\n this.widgetsList[module][widgetIndex].value = false;\r\n }\r\n }\r\n this.setSelectedWidgets();\r\n\r\n }\r\n setSelectedWidgets() {\r\n this.selectedWidgets = []\r\n this.widgetsList.COMPLIANCE.forEach((ele: any) => {\r\n if (ele.value) {\r\n this.selectedWidgets.push(ele)\r\n }\r\n })\r\n this.widgetsList.RISK.forEach((ele: any) => {\r\n if (ele.value) {\r\n this.selectedWidgets.push(ele)\r\n }\r\n })\r\n }\r\n\r\n removeWidget(widget: widgetConfig) {\r\n const widgetIndex = this.widgetsList[widget.module].findIndex((ele: any) => ele.id == widget.id);\r\n this.widgetsList[widget.module][widgetIndex].value = false;\r\n if (this.widgetsList[widget.module][widgetIndex].subWidgets.length > 0) {\r\n this.widgetsList[widget.module][widgetIndex].subWidgets.forEach((ele: any) => ele.value = false);\r\n }\r\n this.setSelectedWidgets()\r\n }\r\n\r\n onNextClick() {\r\n this.widgetsDataModified.emit(this.selectedWidgets);\r\n }\r\n\r\n closeConfigureDashboard() {\r\n this.selectedWidgets = [];\r\n this.dialog.close();\r\n this.closeConfigureWidgets.emit(false);\r\n }\r\n\r\n setWidgetsVisibilityToFalse(){\r\n this.widgetsList.COMPLIANCE.forEach((ele: any) => {\r\n ele.visibility = false;\r\n if (ele.subWidgets.length > 0) { \r\n ele.subWidgets.forEach((subElement: any) => { \r\n subElement.visibility = false;\r\n });\r\n }\r\n })\r\n this.widgetsList.RISK.forEach((ele: any) => {\r\n ele.visibility = false;\r\n if (ele.subWidgets.length > 0) {\r\n ele.subWidgets.forEach((subElement: any) => {\r\n subElement.visibility = false;\r\n });\r\n }\r\n })\r\n }\r\n}\r\n","<div class=\"configure-widgets vx-d-block\" *ngIf=\"showWidgets\">\r\n <div class=\"configure-widgets-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"configure-widgets-title vx-fs-14 vx-fw-500 vx-label-txt\">Configure Widgets</div>\r\n <button class=\"configure-widgets-back vx-fs-14 vx-fw-500 vx-label-txt vx-m-0 vx-p-0 vx-d-inline-flex vx-align-center\" (click)=\"closeConfigureDashboard()\">\r\n <i class=\"icons vx-fs-16\"></i> Back\r\n </button>\r\n </div>\r\n <div class=\"configure-widgets-body\">\r\n <div class=\"configure-widgets-tab\">\r\n <ul>\r\n <li [class.active]=\"module === 'COMPLIANCE'\" *ngIf=\"showCompliance\" (click)=\"module='COMPLIANCE'\">\r\n <button>Compliance<span>{{complianceWidgetsDisplayCount}}</span></button></li>\r\n <li [class.active]=\"module === 'RISK'\" *ngIf=\"showRisk\"><button\r\n (click)=\"module='RISK'\">Risks<span>{{riskWidgetsDisplayCount}}</span></button></li>\r\n </ul>\r\n </div>\r\n <div class=\"configure-widgets-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" placeholder=\"Search widgets\" [(ngModel)]=\"search\">\r\n </div>\r\n <div class=\"configure-widgets-list vx-d-flex vx-flex-wrap\" *ngIf=\"(widgetsList[module] | search:search).length !== 0\">\r\n <ng-container *ngFor=\"let widget of widgetsList[module] | search:search\">\r\n <div class=\"configure-widgets-item\" *ngIf=\"widget?.visibility\">\r\n <label class=\"block\">\r\n <input type=\"checkbox\" [checked]=\"widget.value\"\r\n (change)=\"selectWidget($event.target.checked,module,widget.id)\">\r\n <div class=\"check-icon\">\r\n <svg class=\"check\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"check-circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"check-circle\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"configure-widgets-item-head\">\r\n <h4 class=\"configure-widgets-item-title\" [innerHTML]=\"widget?.title\"></h4>\r\n <p class=\"configure-widgets-item-description\" [innerHTML]=\"widget?.description\"></p>\r\n <button *ngIf=\"!widget.value\" class=\"configure-widgets-item-button add\"\r\n (click)=\"selectWidget(true,module,widget.id) \">+ ADD</button>\r\n <button *ngIf=\"widget.value\" class=\"configure-widgets-item-button remove\"\r\n (click)=\"selectWidget(false,module,widget.id) \">- Remove</button>\r\n </div>\r\n <div class=\"configure-widgets-item-body\">\r\n <div class=\"image-wrapper\">\r\n <img [src]=\"widget?.widgetImage\" alt=\"\">\r\n </div>\r\n <div class=\"floating-option vx-d-flex\" *ngIf=\"widget?.subWidgets?.length>0\">\r\n <ng-container *ngFor=\"let subWidget of widget.subWidgets\">\r\n <app-cs-checkbox *ngIf=\"subWidget.visibility\"\r\n (ngValueChange)=\"selectWidget($event, module,widget.id,subWidget.id)\"\r\n [ngValue]=\"subWidget.value\">{{subWidget.title}}\r\n </app-cs-checkbox>\r\n </ng-container>\r\n \r\n </div>\r\n\r\n </div>\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- No Data Image -->\r\n\r\n </div>\r\n <app-no-data *ngIf=\"(widgetsList[module] | search:search).length === 0 \"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/configure-widget/assets/images/configure-widget.svg'\"\r\n [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n\r\n <floating-bar (submitEvent)=\"onNextClick()\" (cancelEvent)=\"closeConfigureDashboard()\" [selectedData]=\"selectedWidgets\" (deleteEvent)=\"removeWidget($event)\"></floating-bar>\r\n </div>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader-inline',\r\n templateUrl: './loader-inline.component.html',\r\n styleUrls: ['./loader-inline.component.less'],\r\n})\r\nexport class LoaderInlineComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<!-- <p>loader-inline works!</p> -->\r\n<div class=\"inline-loader\">\r\n <div class=\"demo-loader\">\r\n <div class=\"demo-loader-colored-blocks\">\r\n <div class=\"demo-loader-colored-blocks-rotater\">\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n </div>\r\n <div class=\"demo-loader-colored-blocks-inner\"></div>\r\n </div>\r\n <div class=\"demo-loader-inner\">\r\n <svg\r\n width=\"30px\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n id=\"Layer_1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 16 16\"\r\n style=\"enable-background: new 0 0 16 16\"\r\n xml:space=\"preserve\"\r\n >\r\n <style type=\"text/css\">\r\n .st0 {\r\n fill: #9d1f24;\r\n }\r\n\r\n .st1 {\r\n fill: #d83b3f;\r\n }\r\n </style>\r\n <g>\r\n <path class=\"st0\" d=\"M2,12.3c0.5,0.3,1.1,0.4,1.8,0.2c0.9-0.3,1.4-1.1,1.5-1.1c-0.3-0.2-0.5-0.6-0.5-1.1V7.2 C4.5,4.6,1.1,3.8,1.1,3.8v7.3C1.1,11.2,1.3,11.9,2,12.3z\" />\r\n <path\r\n class=\"st1\"\r\n d=\"M9.9,3.5c-1.8,2.8-4.6,7.8-4.6,7.8s0,0,0,0c0,0.1-0.5,0.8-1.5,1.1c-0.7,0.2-1.3,0.1-1.8-0.2 c-0.6-0.4-0.9-1.1-0.9-1.1s-0.1,1.2,0.6,2.2C2,13.9,4,15.9,6.6,14.5c0.6-0.3,1.1-0.8,1.6-1.5c0.4-0.5,6.9-11.6,6.9-11.6 S11.7,0.5,9.9,3.5z\"\r\n />\r\n </g>\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { SnackBarService } from '../snack-bar.service';\r\n\r\n@Component({\r\n selector: 'app-snack-bar',\r\n templateUrl: './snack-bar.component.html',\r\n styleUrls: ['./snack-bar.component.less'],\r\n})\r\nexport class SnackBarComponent implements OnInit {\r\n show = false;\r\n message: string = '--';\r\n icon: string = '';\r\n type='alert'\r\n icons:any = {\r\n success:'',\r\n warning:'',\r\n info:'',\r\n alert:'',\r\n error:''\r\n }\r\n constructor(private snackbarService: SnackBarService) {}\r\n\r\n ngOnInit(): void {\r\n this.snackbarService.snackbarSubject.subscribe((state) => {\r\n if(state.icon && Object.keys(this.icons).includes(state?.icon)){\r\n this.icon = this.icons[state.icon];\r\n this.type = state?.icon;\r\n }\r\n this.message = state.message;\r\n this.show = state.show;\r\n setTimeout(() => {\r\n this.show = false;\r\n }, 3000);\r\n });\r\n }\r\n close() {\r\n this.show = false;\r\n }\r\n ngOnDestroy() {\r\n }\r\n}\r\n","<div class=\"snackbar\" *ngIf=\"show\">\r\n <div class=\"snackbar-inner\">\r\n <div class=\"snackbarText\">\r\n <!--  -->\r\n <i class=\"icons\" [class]=\"type\" [innerHTML]=\"icon\"></i> \r\n <span [innerHTML]=\"message\">{{ message }}</span>\r\n </div>\r\n <button (click)=\"close()\">[ <span>Close</span> ]</button>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Directive, ElementRef, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appScrollInView]'\r\n})\r\nexport class ScrollInViewDirective implements OnChanges {\r\n@Input() appScrollInView = false;\r\n constructor(private el: ElementRef) {\r\n }\r\nngOnChanges(change:SimpleChanges){\r\n if(change?.appScrollInView && change?.appScrollInView?.currentValue === true){\r\n this.scroll();\r\n }\r\n}\r\n ngAfterViewInit() {\r\n // Otherwise Angular throws error: Expression has changed after it was checked.\r\n this.scroll();\r\n }\r\n\r\n scroll(){\r\n if(this.appScrollInView){\r\n window.setTimeout(() => {\r\n this.el.nativeElement.scrollIntoView({behavior: 'smooth', block: 'center'});\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, EventEmitter, Output, HostListener } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-smiley-dialog',\r\n templateUrl: './smiley-dialog.component.html',\r\n styleUrls: ['./smiley-dialog.component.less'],\r\n})\r\nexport class SmileyDialogComponent implements OnInit {\r\n @Input() message!: string;\r\n @Input() autoClose!: boolean;\r\n @Input() actionButtons!: any[];\r\n @Output() action: EventEmitter<string> = new EventEmitter();\r\n @Output() closeSmiley: EventEmitter<any> = new EventEmitter();\r\n\r\n @HostListener('window:keyup', ['$event']) handleKeyboardEvent(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n this.smileyCloseEmitter({});\r\n }\r\n }\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n if (this.autoClose) {\r\n setTimeout(() => {\r\n this.close();\r\n }, 8000);\r\n }\r\n }\r\n close() {\r\n this.closeSmiley.emit();\r\n }\r\n\r\n actionEmitter(event: any) {\r\n this.action.emit(event?.id);\r\n }\r\n\r\n smileyCloseEmitter(event: any) {\r\n this.closeSmiley.emit();\r\n }\r\n}\r\n","<!-- active -->\r\n<div class=\"smiley-popup active\">\r\n <button class=\"close\" (click)=\"smileyCloseEmitter($event)\">\r\n <i class=\"icons\"></i>\r\n </button>\r\n <div class=\"smiley-container\">\r\n <div class=\"smiley\">\r\n <!-- active deactive -->\r\n <div class=\"smiley-circle active\">\r\n <div class=\"smiley-circle-inner\">\r\n <div class=\"eyes\">\r\n <div class=\"eye\"></div>\r\n <div class=\"eye\"></div>\r\n </div>\r\n <div class=\"mouth\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <h3>{{ message }}</h3>\r\n <div class=\"successSmilyButton\">\r\n <button *ngFor=\"let button of actionButtons\" (click)=\"actionEmitter(button)\" [class]=\"button?.class\">\r\n {{ button?.buttonText }}\r\n </button>\r\n </div>\r\n <!-- <div class=\"successSmilyButton\"> -->\r\n <!-- <button>White Button</button>\r\n <button class=\"blue-btn\">Blue Button</button> -->\r\n <!-- </div> -->\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../dashboard-footer-config';\r\n\r\n@Component({\r\n selector: 'app-dashboard-footer',\r\n templateUrl: './dashboard-footer.component.html',\r\n styleUrls: ['./dashboard-footer.component.less']\r\n})\r\nexport class DashboardFooterComponent implements OnInit {\r\n @Output() cancelEvent = new EventEmitter();\r\n @Output() submitEvent = new EventEmitter();\r\n @Output() deleteEvent = new EventEmitter();\r\n @Input() footerDetails:DashboardFooterConfig={\r\n selectedData : [],\r\n nonRemovableList:[],\r\n displayElementKey: '',\r\n elementId: '',\r\n singularText: '',\r\n pluralText:'',\r\n showFrequency:false,\r\n frequencyText:'',\r\n isDisabled :false\r\n\r\n };\r\n\r\n @Input() userButtonColor = '';\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n cancelFloatingBar() {\r\n this.cancelEvent.emit();\r\n }\r\n submitFloatingBar() {\r\n this.submitEvent.emit(this.footerDetails.selectedData);\r\n }\r\n\r\n deleteSelected(element: any) {\r\n this.deleteEvent.emit(element);\r\n }\r\n\r\n\r\n}\r\n","<div class=\"dashboard-floating-bar-container\">\r\n <div class=\"dashboard-floating-bar vx-d-flex vx-align-center\" [class.vx-justify-end]=\"!(footerDetails.showFrequency || footerDetails.selectedData.length>0)\" [class.vx-justify-between]=\"footerDetails.showFrequency || footerDetails.selectedData.length>0\">\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"footerDetails.showFrequency\">\r\n <span class=\"value\" [innerHTML]=\"footerDetails.frequencyText\"></span>\r\n </div>\r\n\r\n <div class=\"left vx-d-flex vx-align-center\" *ngIf=\"footerDetails.selectedData.length>0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\" *ngIf=\"!footerDetails.nonRemovableList.includes(footerDetails.selectedData[0][footerDetails.elementId])\" (click)=\"deleteSelected(footerDetails.selectedData[0])\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"footerDetails.selectedData[0][footerDetails.displayElementKey]\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{footerDetails.selectedData[0][footerDetails.displayElementKey]}}</span>\r\n <button *ngIf=\"footerDetails.selectedData.length > 1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" [ngClass]=\"userButtonColor\" appPopover (click)=\"countPopup.popover()\" placement=\"left\">+{{footerDetails.selectedData.length - 1}}</button>\r\n </div>\r\n <ng-container *ngIf=\"footerDetails?.selectedData?.length>1\">\r\n <span class=\"value vx-ml-2\" *ngIf=\"footerDetails?.selectedData?.slice(1).length === 1\">{{footerDetails.singularText}}</span>\r\n <span class=\"value vx-ml-2\" *ngIf=\"footerDetails?.selectedData?.slice(1).length > 1\">{{footerDetails.pluralText}}</span>\r\n </ng-container>\r\n <app-popover #countPopup [dontCloseonClick]=\"true\">\r\n <div class=\"dashboard-floating-bar-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of footerDetails.selectedData.slice(1); let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"element[footerDetails.displayElementKey]\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" *ngIf=\"!footerDetails.nonRemovableList.includes(element[footerDetails.elementId])\" (click)=\"deleteSelected(element)\"></i> {{element[footerDetails.displayElementKey]}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n <div class=\"right vx-d-flex vx-align-center\">\r\n <button class=\"cancel vx-bg-white vx-txt-red vx-fw-500 vx-tt-uppercase\" (click)=\"cancelFloatingBar()\">Cancel</button>\r\n <!-- <button class=\"vx-bg-blue vx-txt-white vx-fw-500 vx-tt-uppercase\" (click)=\"submitFloatingBar()\">Update</button> -->\r\n <button [class.disabled]=\"footerDetails.isDisabled\" class=\"vx-bg-blue vx-txt-white vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-center\" (click)=\"submitFloatingBar()\">Next <i class=\"icons vx-ml-1\"></i></button>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit, OnChanges, Input, Output, EventEmitter } from '@angular/core';\r\nimport { PaginationService } from '../../create-dashboard-container/services/pagination.service';\r\n\r\n@Component({\r\n selector: 'app-pagination',\r\n templateUrl: './pagination.component.html',\r\n styleUrls: ['./pagination.component.less']\r\n})\r\n/**\r\n * Adds place holder for Pagination on the lists\r\n */\r\nexport class PaginationComponent implements OnInit, OnChanges {\r\n start = 1;\r\n totalCount!: number;\r\n paginationArray: any[] = [];\r\n currentPage!: number;\r\n @Input() totalPages = 1;\r\n @Input() limit = 1;\r\n @Input() totalList = 1;\r\n @Output() paginationFilter = new EventEmitter();\r\n\r\n constructor(private paginationService: PaginationService) {\r\n }\r\n ngOnChanges() {\r\n this.currentPage = Number(this.paginationService.currentPage);\r\n this.start = Number(this.paginationService.currentPage);\r\n this.rebuildPagination(this.currentPage, this.totalPages);\r\n }\r\n\r\n ngOnInit() {\r\n this.currentPage = Number(this.paginationService.currentPage);\r\n this.start = Number(this.paginationService.currentPage);\r\n this.rebuildPagination(this.currentPage, this.totalPages);\r\n this.paginationService.currentValues.subscribe(event => {\r\n if (event && (this.paginationService.currentPage !== this.currentPage)) {\r\n this.currentPage = this.paginationService.currentPage;\r\n }\r\n });\r\n }\r\n\r\n /* In this function we will recreate the pagination structure as per current page and\r\n total number of pages */\r\n\r\n rebuildPagination(currentPage: number, totalCount: number) {\r\n this.paginationArray = [];\r\n this.totalCount = totalCount;\r\n this.currentPage = currentPage;\r\n if (this.paginationService.currentPage !== this.currentPage) {\r\n this.paginationService.currentPage = this.currentPage;\r\n this.paginationFilter.emit(true);\r\n }\r\n\r\n // If there are only 6 pages or less in total, just display all pages without \"...\"\r\n if (totalCount <= 6) {\r\n for (let i = 1; i <= totalCount; i++) {\r\n this.paginationArray.push(i);\r\n }\r\n }\r\n // ELSE display with ...\r\n else {\r\n\r\n // Always print first page button\r\n this.paginationArray.push(1);\r\n\r\n // Print \"...\" if currentPage is > 3\r\n if (currentPage > 3) {\r\n // this.paginationArray.push(2);\r\n this.paginationArray.push('...');\r\n\r\n }\r\n // special case where last page is selected...\r\n // Without this special case, only 2 buttons would be shown after ... if you were on last page\r\n if (currentPage === totalCount) {\r\n this.paginationArray.push(currentPage - 2);\r\n }\r\n\r\n // Print previous number button if currentPage > 2\r\n if (currentPage > 2) {\r\n this.paginationArray.push(currentPage - 1);\r\n }\r\n\r\n // Print current page number button as long as it not the first or last page\r\n if (currentPage !== 1 && currentPage !== totalCount) {\r\n this.paginationArray.push(currentPage);\r\n\r\n }\r\n\r\n // print next page number button if currentPage < lastPage - 1\r\n if (currentPage < totalCount - 1) {\r\n this.paginationArray.push(currentPage + 1);\r\n\r\n }\r\n\r\n // special case where first page is selected...\r\n // Without this special case, only 2 buttons would be shown before ... if you were on first page\r\n if (currentPage === 1) {\r\n this.paginationArray.push(currentPage + 2);\r\n\r\n }\r\n\r\n // print \"...\" if currentPage is < lastPage -2\r\n if (currentPage < totalCount - 2) {\r\n this.paginationArray.push('...');\r\n\r\n // HTML += \"...\";\r\n }\r\n\r\n // Always print last page button if there is more than 1 page\r\n if (totalCount > 1) {\r\n this.paginationArray.push(totalCount);\r\n\r\n }\r\n }\r\n\r\n }\r\n/* In this function we will set current page according to the action performed on browser\r\n ex: prev next buttons clicks or selecting a particular page */\r\n\r\n changePage(prev: string, page: number, next: string) {\r\n if (prev) {\r\n if (this.start > 1) {\r\n this.start--;\r\n // We have changed the start page, total rebuild the pagination\r\n this.rebuildPagination(this.start, this.totalCount);\r\n }\r\n }\r\n if (next) {\r\n if (this.start < this.totalCount) {\r\n this.start++;\r\n this.rebuildPagination(this.start, this.totalCount);\r\n }\r\n }\r\n if (page) {\r\n this.start = page;\r\n this.rebuildPagination(this.start, this.totalCount);\r\n }\r\n }\r\n}\r\n","<div class=\"pagination-box\">\r\n <ul>\r\n <li><button [class.disabled]=\"currentPage==1\" (click)=\"changePage('prev',0,'')\"><i class=\"icons vx-fs-10\"></i></button></li>\r\n <li *ngFor=\"let page of paginationArray\">\r\n <button [disabled]=\"page=='...'\" [class.disable]=\"page=='...'\" [class.active]=\"currentPage==page\" (click)=\"changePage('',page,'')\">\r\n <i *ngIf=\"page=='...'\" class=\"icons\"></i>{{page!='...'?page : ''}}\r\n </button>\r\n </li>\r\n <li><button [class.disabled]=\"currentPage==totalCount\" (click)=\"changePage('',0,'next')\"><i class=\"icons vx-fs-10\"></i></button></li>\r\n </ul>\r\n</div>","import { HttpParams } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../../ui-kit/dashboard-footer/dashboard-footer-config';\r\nimport { CreateDashboardService } from '../services/create-dashboard.service';\r\nimport { PaginationService } from '../services/pagination.service';\r\nimport { UserListConfiguration } from './user-list.config';\r\n\r\n@Component({\r\n selector: 'app-user-list',\r\n templateUrl: './user-list.component.html',\r\n styleUrls: ['./user-list.component.less']\r\n})\r\nexport class UserListComponent implements OnInit {\r\n @Output() closeUserList = new EventEmitter();\r\n @Output() saveSelectedUsers = new EventEmitter();\r\n @Input() selectionType = '';\r\n @Input() listDetails: UserListConfiguration = {\r\n displayElementKey: '',\r\n displayGroupKey:'',\r\n groupIdkey:'',\r\n elementIdKey: '',\r\n tooltipKey: '',\r\n selectedUsersList: [],\r\n selectedGroupList:[],\r\n nonRemovableUsersList: []\r\n };\r\n\r\n footerDetails: DashboardFooterConfig = {\r\n selectedData: [],\r\n nonRemovableList: [],\r\n displayElementKey: '',\r\n elementId: '',\r\n singularText: 'User selected',\r\n pluralText: 'Users selected',\r\n showFrequency: false,\r\n frequencyText: '',\r\n isDisabled: false\r\n\r\n };\r\n vLoader = false;\r\n vLoaderGroups = false\r\n\r\n @Input() totalPages = 1;\r\n @Input() limit = 1;\r\n @Input() totalList = 1;\r\n @Input() feature:any;\r\n @Input() totalgroupscount : any;\r\n searchList = [];\r\n searchValue = '';\r\n searchFilter = '';\r\n selectedIds: any[] = [];\r\n selectedList: any[] = [];\r\n groupdata: any[] = [];\r\n\r\n\r\n animation = true;\r\n totalgroups: any;\r\n total_group_pages: any;\r\n selectedGroupIds: any[]= [];\r\n groupsEnabled:any;\r\n selectedgroupList: any[] =[];\r\n currentPage=1;\r\n constructor(\r\n public paginationService: PaginationService,\r\n private dashboardService: CreateDashboardService,\r\n ) { \r\n this.paginationService.reset();\r\n this.getOrganizationUsersCount('');\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.groupsEnabled=this.feature?.isFeatureEnabled(\"ff_groups_improvements\");\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n if (this.listDetails.selectedUsersList.length > 0) {\r\n this.selectedList = [...new Set(this.listDetails.selectedUsersList)];\r\n const selectedData = [...new Set(this.listDetails.selectedUsersList)];\r\n this.footerDetails.selectedData = selectedData;\r\n this.footerDetails.nonRemovableList = this.listDetails.nonRemovableUsersList;\r\n this.selectedIds = selectedData.map((ele: any) => {\r\n if (ele[this.listDetails.elementIdKey]) { return ele[this.listDetails.elementIdKey]; }\r\n });\r\n\r\n }\r\n this.getUsersList({\r\n // p: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\r\n p: this.paginationService.currentPage ?? 1,\r\n type: '',\r\n });\r\n this.footerDetails.displayElementKey = this.listDetails.displayElementKey;\r\n this.footerDetails.elementId = this.listDetails.elementIdKey;\r\n if (this.groupsEnabled) {\r\n this.getGroupsList({})\r\n } \r\n if (this.listDetails.selectedGroupList.length > 0) {\r\n this.selectedgroupList = [...new Set(this.listDetails.selectedGroupList)];\r\n const selectedData = [...new Set(this.listDetails.selectedGroupList)];\r\n this.footerDetails.selectedData = selectedData;\r\n this.footerDetails.nonRemovableList = this.listDetails.nonRemovableUsersList;\r\n this.selectedGroupIds = selectedData.map((ele: any) => {\r\n if (ele[this.listDetails.groupIdkey]) { return ele[this.listDetails.groupIdkey]; }\r\n \r\n });\r\n\r\n }\r\n }\r\n\r\n cancelChanges() {\r\n\r\n }\r\n removeElement(event: any) {\r\n\r\n }\r\n submitChanges() {\r\n\r\n }\r\n selectAll(event: any) {\r\n if (event) {\r\n this.searchList.forEach(searchElement => {\r\n\r\n if (!this.selectedIds.includes(searchElement[this.listDetails.elementIdKey])) {\r\n this.selectedList.push(searchElement);\r\n this.selectedIds.push(searchElement[this.listDetails.elementIdKey]);\r\n this.footerDetails.selectedData = this.selectedList;\r\n }\r\n });\r\n\r\n } else {\r\n this.searchList.forEach(searchElement => {\r\n if (!this.listDetails.nonRemovableUsersList.includes(searchElement[this.listDetails.elementIdKey])) {\r\n const index = this.selectedList.findIndex(ele => ele[this.listDetails.elementIdKey] ===\r\n searchElement[this.listDetails.elementIdKey]);\r\n this.selectedList.splice(index, 1);\r\n const filteredList = [...this.selectedList];\r\n this.footerDetails.selectedData = this.selectedList;\r\n\r\n const idIndex = this.selectedIds.findIndex(ele => ele === searchElement[this.listDetails.elementIdKey]);\r\n this.selectedIds.splice(idIndex, 1);\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * Selects all admins and managers at once by making api call.\r\n * @param event consists boolean value to select of unselect.\r\n */\r\n selectAllUsers(event: any) {\r\n if (event) {\r\n this.vLoader = true;\r\n this.dashboardService.getAllUsers().subscribe((res: any) => {\r\n\r\n if(res.length>1){\r\n res.forEach((searchElement:any) => {\r\n \r\n if (!this.selectedIds.includes(searchElement[this.listDetails.elementIdKey])) {\r\n this.selectedList.push(searchElement);\r\n this.selectedIds.push(searchElement[this.listDetails.elementIdKey]);\r\n this.footerDetails.selectedData = this.selectedList;\r\n }\r\n });\r\n }\r\n this.vLoader = false;\r\n });\r\n\r\n } else {\r\n\r\n\r\n\r\n const selectedData = [...new Set(this.selectedList)];\r\n const index = selectedData.findIndex(ele => ele[this.listDetails.elementIdKey] === this.listDetails.nonRemovableUsersList[0]);\r\n if (index != -1) {\r\n const owner = Object.assign(selectedData[index]);\r\n\r\n this.selectedList = [];\r\n this.selectedIds = [];\r\n this.footerDetails.selectedData = [];\r\n\r\n this.selectedList.push(owner);\r\n this.selectedIds.push(owner.member_id);\r\n this.footerDetails.selectedData = this.selectedList;\r\n\r\n } else {\r\n this.selectedList = [];\r\n this.selectedIds = [];\r\n this.footerDetails.selectedData = [];\r\n }\r\n }\r\n }\r\n\r\n selectAllGroups(event: any) {\r\n let params =new HttpParams();\r\n params = params.append('fetch_all', 1);\r\n if (event) {\r\n this.vLoaderGroups = true;\r\n this.dashboardService.getAllGroups(params).subscribe((res: any) => {\r\n if (res.data.length > 1) {\r\n \r\n res.data.forEach((searchElement: any) => {\r\n\r\n if (!this.selectedGroupIds.includes(searchElement[this.listDetails.groupIdkey])) {\r\n this.selectedgroupList.push(searchElement);\r\n this.selectedGroupIds.push(searchElement[this.listDetails.groupIdkey]);\r\n this.footerDetails.selectedData = this.selectedgroupList;\r\n }\r\n }); \r\n }\r\n this.vLoaderGroups = false;\r\n }); \r\n } else {\r\n this.selectedgroupList = [];\r\n this.selectedGroupIds = [];\r\n this.footerDetails.selectedData = []; \r\n }\r\n }\r\n\r\n selectAllsearchgroups(event: any) {\r\n if (event) {\r\n this.groupdata.forEach(searchElement => {\r\n \r\n if (!this.selectedGroupIds.includes(searchElement[this.listDetails.groupIdkey])) {\r\n this.selectedgroupList.push(searchElement);\r\n this.selectedGroupIds.push(searchElement[this.listDetails.groupIdkey]);\r\n this.footerDetails.selectedData = this.selectedgroupList;\r\n }\r\n });\r\n \r\n } else {\r\n this.selectedgroupList = [];\r\n this.selectedGroupIds = [];\r\n this.footerDetails.selectedData = []; \r\n \r\n }\r\n } \r\n\r\n/**\r\n * Selects checked item from the list.\r\n * In case of user's list calculates number of admins/manages to set visibility(either to all admins/ admins and managers)\r\n * @param data is the selected element\r\n */\r\nselectElement(data: any) {\r\n if (this.selectedIds.includes(data[this.listDetails.elementIdKey])) {\r\n if (!this.listDetails.nonRemovableUsersList.includes(data[this.listDetails.elementIdKey])) {\r\n const index = this.selectedList.findIndex(ele => ele[this.listDetails.elementIdKey] === data[this.listDetails.elementIdKey]);\r\n this.selectedList.splice(index, 1);\r\n this.footerDetails.selectedData = this.selectedList;\r\n\r\n const idIndex = this.selectedIds.findIndex(ele => ele === data[this.listDetails.elementIdKey]);\r\n\r\n this.selectedIds.splice(idIndex, 1);\r\n }\r\n\r\n } else {\r\n this.selectedList.push(data);\r\n this.selectedIds.push(data[this.listDetails.elementIdKey]);\r\n this.footerDetails.selectedData = this.selectedList;\r\n\r\n }\r\n}\r\n\r\n selectGroupElement(data: any) { \r\n if (this.selectedGroupIds.includes(data[this.listDetails.groupIdkey])) {\r\n const index = this.selectedgroupList.findIndex((ele: { [x: string]: any; }) => ele[this.listDetails.groupIdkey] === data[this.listDetails.groupIdkey]);\r\n this.selectedgroupList.splice(index, 1);\r\n this.footerDetails.selectedData = this.selectedgroupList;\r\n const idIndex = this.selectedGroupIds.findIndex(ele => ele === data[this.listDetails.groupIdkey]);\r\n this.selectedGroupIds.splice(idIndex, 1);\r\n } else {\r\n this.selectedgroupList.push(data);\r\n this.selectedGroupIds.push(data[this.listDetails.groupIdkey]);\r\n this.footerDetails.selectedData = this.selectedgroupList; \r\n }\r\n }\r\n/**\r\n * It is used to set and search value incase of backend driven list to differentiate search list and original list\r\n */\r\nsetSearchValue() {\r\n if(this.paginationService.searchValue !== this.searchValue) {\r\n this.paginationService.currentPage = 1;\r\n this.paginationService.searchValue = this.searchValue;\r\n this.paginationFilter(true);\r\n }\r\n\r\n}\r\n\r\n/**\r\n* it is used check select all condition incase of backend driven search\r\n*/\r\ncheckSelectAll() {\r\n if (this.searchList.length > 0) {\r\n const data: boolean = this.searchList.every(ele => this.selectedIds.includes(ele[this.listDetails.elementIdKey]));\r\n return data;\r\n } else {\r\n return false;\r\n\r\n }\r\n\r\n}\r\n\r\n/**\r\n* it is used check select all groups condition incase of backend driven search\r\n*/\r\ncheckSelectAllGroups() {\r\n if (this.groupdata.length > 0) {\r\n const data: boolean = this.groupdata.every(ele => this.selectedGroupIds.includes(ele[this.listDetails.groupIdkey]));\r\n return data;\r\n } else {\r\n return false;\r\n\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Filter list user's list based on pagination by making api call\r\n * @param event specifies a boolean value to call api\r\n */\r\npaginationFilter(event: any) {\r\n if(!event) return\r\n if(this.groupsEnabled){\r\n this.vLoader = true;\r\n if(this.currentTab == 'USER'){\r\n this.getUsersList({\r\n // p: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\r\n p: this.paginationService.currentPage ?? 1,\r\n type: '',\r\n q: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n }); \r\n this.getOrganizationUsersCount({\r\n p: this.paginationService.currentPage ?? 1,\r\n type: '',\r\n q: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n }) \r\n }\r\n else{\r\n this.getGroupsList({\r\n page: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\r\n groupName: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n });\r\n }\r\n }else{\r\n this.vLoader = true;\r\n this.getUsersList({\r\n // p: this.paginationService.currentPage === 1 ? '' : this.paginationService.currentPage,\r\n p: this.paginationService.currentPage ?? 1,\r\n type: '',\r\n q: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n });\r\n this.getOrganizationUsersCount({\r\n p: this.paginationService.currentPage ?? 1,\r\n type: '',\r\n q: (!this.paginationService.searchValue) ? '' : this.paginationService.searchValue,\r\n })\r\n }\r\n}\r\n/**\r\n * Gets user's list by making api call\r\n * @param url contains userlist filter details\r\n */\r\ngetUsersList(url: any) {\r\n this.vLoader = true;\r\n\r\n this.dashboardService.getOrganizationUsers(url ? url : '').subscribe(res => {\r\n\r\n this.searchList = res;\r\n this.vLoader = false;\r\n\r\n\r\n });\r\n\r\n }\r\ngetGroupsList(event:any){\r\n this.vLoaderGroups = true\r\n let params =new HttpParams()\r\n if (event.hasOwnProperty(\"groupName\")) {\r\n params = params.append('groupName', event[\"groupName\"]);\r\n }\r\n if(event.hasOwnProperty(\"page\") && !this.searchValue) {\r\n params = params.append('page', event[\"page\"]);\r\n }\r\n if(this.totalgroupscount > 30 && !this.searchValue){\r\n params = params.append('limit', 30);\r\n }\r\n this.dashboardService.getAllGroups(params).subscribe((res:any)=>{\r\n this.groupdata = res?.data;\r\n this.vLoaderGroups = false;\r\n this.totalgroups = res.total_items;\r\n this.total_group_pages = res.total_pages;\r\n \r\n})\r\n}\r\n\r\n /**\r\n * on click on next button from the list, it emits the selected list of elements to parent component.\r\n */\r\n onSubmit() {\r\n // const data = [...new Set(this.selectedList)];\r\n // data.push(this.selectedgroupList)\r\n this.saveSelectedUsers.emit({ users: this.selectedList, groups: this.selectedgroupList });\r\n this.paginationService.reset();\r\n }\r\n currentTab = 'USER'\r\n switchTab(tab: string) {\r\n this.paginationService.reset();\r\n this.getOrganizationUsersCount('');\r\n this.currentTab = tab;\r\n if(this.currentTab==\"USER\"){\r\n this.searchValue=''\r\n this.getUsersList({p: this.paginationService.currentPage});\r\n }else{\r\n this.searchValue=''\r\n this.getGroupsList({})\r\n }\r\n }\r\n\r\n getOrganizationUsersCount(Url: any) {\r\n this.dashboardService.getOrganizationUsersCount(Url).subscribe(res => {\r\n this.totalList = res.total_members;\r\n if (res.total_members && res.limit_per_page > 1) {\r\n this.totalPages = res.create_page;\r\n } else {\r\n this.totalPages = 1;\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"user-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"user-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Who can view this dashboard?</div>\r\n </div>\r\n <div class=\"user-list-body\">\r\n <div class=\"user-list-tab vx-d-flex vx-align-center vx-mb-2\" *ngIf=\"groupsEnabled\">\r\n <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 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\">{{totalList}}</span></button>\r\n <button id=\"switchtab\" (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\" >USER GROUPS <span id=\"groupscount\" class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{totalgroups}}</span></button>\r\n </div>\r\n\r\n <div class=\"user-list-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"searchValue\" placeholder=\"{{currentTab === 'USER' ? 'Search User(s)' :'Search User Group(s)'}} who can view this dashboard\" (keyup.enter)=\"setSearchValue()\" (focusout)=\"setSearchValue()\">\r\n </div>\r\n\r\n <ng-container *ngIf=\"currentTab === 'USER'\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-end\" *ngIf=\"totalPages>1\">\r\n <div class=\"pagination-box\" *ngIf=\"totalPages>1 && searchList.length>1\"> \r\n <app-pagination (paginationFilter)=\"paginationFilter($event)\" [limit]=\"limit\" [totalPages]=\"totalPages\" [totalList]=\"totalList\"></app-pagination>\r\n </div>\r\n </div>\r\n <div class=\"user-list-body-top\" *ngIf=\"searchList.length !== 0\">\r\n <app-cs-checkbox *ngIf=\"!searchValue && searchList.length>1\" [ngValue]=\"selectedList.length == totalList\" (ngValueChange)=\"selectAllUsers($event)\">\r\n <strong>{{((selectedList.length == totalList) ? 'Deselect All':'Select All')}}</strong>\r\n </app-cs-checkbox>\r\n <app-cs-checkbox *ngIf=\"searchValue && searchList.length>1\" [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\r\n <strong>{{((selectedList.length == totalList) ? 'Deselect All':'Select All')}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"list-of-user\">\r\n <div class=\"selection-list vx-mb-4\" [class.with-group]=\"groupsEnabled\" [class.with-noData]=\"searchList.length == 0\" [class.with-pagination]=\"totalPages>1 && searchList.length>1\">\r\n <ul *ngIf=\"searchList.length !== 0\">\r\n <li *ngFor=\"let data of searchList; let i = index\">\r\n <app-cs-checkbox [disabled]=\"listDetails.nonRemovableUsersList.includes(data[listDetails.elementIdKey])\" [ngValue]=\"selectedList.length>0 && selectedIds.includes(data[listDetails.elementIdKey])\" (ngValueChange)=\"selectElement(data)\" [arTooltip]=\"data[listDetails.tooltipKey]\" placement=\"bottom-left\" delay=\"0\" [tooltipMandatory]=\"true\">{{data[listDetails.displayElementKey]}}</app-cs-checkbox>\r\n </li>\r\n </ul>\r\n\r\n <app-no-data *ngIf=\"!vLoader && searchList.length == 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\r\n </div>\r\n\r\n <app-loader-inline *ngIf=\"vLoader\"></app-loader-inline>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentTab === 'GROUP' && groupsEnabled\">\r\n <ng-container *ngIf=\"(groupdata) as groups \">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-end\" *ngIf=\"true\">\r\n <div class=\"pagination-box\" *ngIf=\"total_group_pages>1\"> \r\n <app-pagination (paginationFilter)=\"paginationFilter($event)\" [limit]=\"limit\" [totalPages]=\"total_group_pages\" [totalList]=\"totalgroups\"></app-pagination>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"true\">\r\n <div class=\"user-list-mid vx-mb-4\" [class.with-pagination]=\"total_group_pages>1\">\r\n <ng-container *ngIf=\"groups?.length > 0\">\r\n <div class=\"user-list-select vx-mb-4\">\r\n <app-cs-checkbox [disabled]=\"false\" *ngIf=\"!searchValue && groups.length>1\" [ngValue]=\"selectedgroupList.length == totalgroups\" (ngValueChange)=\"selectAllGroups($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{((selectedgroupList.length == totalgroups) ? 'Deselect All':'Select All')}}</div>\r\n </app-cs-checkbox>\r\n <app-cs-checkbox [disabled]=\"false\" *ngIf=\"searchValue && groups.length>1\" [ngValue]=\"checkSelectAllGroups()\" (ngValueChange)=\"selectAllsearchgroups($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{((selectedgroupList.length == totalgroups) ? 'Deselect All':'Select All')}}</div>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let data of groups; let i = index\">\r\n <app-cs-checkbox (ngValueChange)=\"selectGroupElement(data)\" [disabled]=\"false\" [ngValue]=\"selectedgroupList.length>0 && selectedGroupIds.includes(data[listDetails.groupIdkey])\">\r\n <div class=\"user-name vx-d-flex vx-align-center\"> \r\n <div class=\"group-name\" [arTooltip]=\"data[listDetails.displayGroupKey]\" placement=\"bottom-left\"\r\n delay=\"0\" [tooltipMandatory]=\"true\">{{data[listDetails.displayGroupKey]}}</div>\r\n <span id=\"usersofgroup\" 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}} {{data[\"associatedUsers\"].length > 1 ? 'USERS' :'USER'}}</span>\r\n </div>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"groups?.length == 0 && !vLoaderGroups\">\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No data to display.')\"></app-no-data>\r\n </ng-container>\r\n <app-loader-inline *ngIf=\"vLoaderGroups\"></app-loader-inline>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n \r\n <div class=\"user-floating-bar\" *ngIf=\"groupsEnabled\">\r\n <div class=\"user-floating-bar-container vx-d-flex vx-align-center vx-justify-between\">\r\n <div class=\"left vx-d-flex vx-align-center\">\r\n <button class=\"counter vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 vx-m-0 vx-pl-1 vx-pr-1\" *ngIf=\"selectedList?.length\" appPopover (click)=\"userCount.popover()\" placement=\"left\">{{selectedList?.length}}</button>\r\n <div class=\"name vx-fs-12 vx-paragraph-txt vx-ml-2\"> \r\n <span *ngIf=\"selectedList?.length === 1\">User {{selectedgroupList?.length > 0 ?' & ':'selected'}}</span>\r\n <span *ngIf=\"selectedList?.length > 1\">Users {{selectedgroupList?.length > 0 ?' & ':'are selected'}}</span>\r\n </div>\r\n <button class=\"counter group vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 vx-ml-2 vx-pl-1 vx-pr-1\" *ngIf=\"selectedgroupList?.length\" appPopover (click)=\"groupCount.popover()\" placement=\"left\">{{selectedgroupList?.length}}</button>\r\n <div class=\"name vx-fs-12 vx-paragraph-txt vx-ml-2\">\r\n <span *ngIf=\"selectedgroupList?.length === 1\">User Group selected</span>\r\n <span *ngIf=\"selectedgroupList?.length > 1\">User Groups selected</span>\r\n </div>\r\n\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedList\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"element.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"selectElement(element)\" *ngIf=\"!listDetails.nonRemovableUsersList.includes(element?.member_id)\"></i> {{element.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n \r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedgroupList\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"element?.group_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"selectGroupElement(element)\"></i> {{element?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n \r\n <div class=\"right vx-d-flex vx-align-center\">\r\n <button class=\"cancel\" (click)=\"closeUserList.emit()\">Cancel</button>\r\n <button [disabled]=\"false\" (click)=\"onSubmit()\">Next <i class=\"icons\"></i></button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"user-list-footer\" *ngIf=\"!groupsEnabled\">\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"closeUserList.emit(); paginationService.reset();\"\r\n (deleteEvent) =\"selectElement($event)\"\r\n (submitEvent)=\"onSubmit()\"\r\n [userButtonColor]=\"'greenBg'\"\r\n ></app-dashboard-footer>\r\n </div>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filter'\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n\r\n transform(items: any[], searchText: string): any[] {\r\n if (!items) {\r\n return [];\r\n }\r\n if (!searchText) {\r\n return items;\r\n }\r\n searchText = searchText.toLowerCase();\r\n if(items?.length){\r\n return items.filter((it: any) => {\r\n return JSON.stringify(it).toLowerCase().includes(searchText);\r\n });\r\n }else{\r\n return [];\r\n }\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../../ui-kit/dashboard-footer/dashboard-footer-config';\r\n\r\n@Component({\r\n selector: 'app-responsibility-center',\r\n templateUrl: './responsibility-center.component.html',\r\n styleUrls: ['./responsibility-center.component.less']\r\n})\r\nexport class ResponsibilityCenterComponent implements OnInit, OnChanges {\r\n @Output() saveSelectedList = new EventEmitter();\r\n @Output() closeRcList = new EventEmitter();\r\n @Input() responsibilityCentersList = [];\r\n @Input() selectedResponsibilityCenters = [];\r\n @Input() rcIdKey = '';\r\n @Input() radioSelection = false;\r\n\r\n\r\n selectedIds: any[] = [];\r\n animation = false;\r\n search = '';\r\n footerDetails: DashboardFooterConfig = {\r\n selectedData: [],\r\n nonRemovableList:[],\r\n displayElementKey: 'item_name',\r\n elementId: 'item_id',\r\n singularText: 'Responsibility Center selected',\r\n pluralText: 'Responsibility Centers selected',\r\n showFrequency: false,\r\n frequencyText: '',\r\n isDisabled: false\r\n\r\n };\r\n constructor() { }\r\n\r\n ngOnChanges(): void {\r\n this.footerDetails.selectedData = this.selectedResponsibilityCenters;\r\n this.selectedIds = this.selectedResponsibilityCenters.map((ele: any) => { if (ele[this.rcIdKey]) { return ele[this.rcIdKey]; } });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n }\r\n\r\n selectRc(rc: any, mode: any) {\r\n if (this.radioSelection) {\r\n if (mode) {\r\n this.selectedIds = [];\r\n this.selectedIds.push(rc);\r\n }\r\n this.setList();\r\n } else {\r\n if (mode) {\r\n this.selectedIds.push(rc);\r\n const rcElement = this.responsibilityCentersList.findIndex((ele: any) => ele.item_id == rc);\r\n if (rcElement !== -1) {\r\n const parentRc: any = this.responsibilityCentersList[rcElement];\r\n if (parentRc?.item_child_ids?.length > 0) {\r\n parentRc.item_child_ids.forEach((childElement: any) => {\r\n if(!this.selectedIds.includes(childElement)){\r\n this.selectedIds.push(childElement);\r\n }\r\n });\r\n }\r\n }\r\n\r\n } else {\r\n const index = this.selectedIds.findIndex((element: any) => element == rc);\r\n this.selectedIds.splice(index, 1);\r\n const rcElement = this.responsibilityCentersList.findIndex((ele: any) => ele.item_id == rc);\r\n if (rcElement !== -1) {\r\n const parentRc: any = this.responsibilityCentersList[rcElement];\r\n if (parentRc?.item_child_ids?.length > 0) {\r\n parentRc.item_child_ids.forEach((childElement: any) => {\r\n const removeIndex = this.selectedIds.findIndex((removeElement: any) => removeElement == childElement);\r\n this.selectedIds.splice(removeIndex, 1);\r\n });\r\n }\r\n }\r\n\r\n }\r\n this.setList();\r\n }\r\n\r\n\r\n }\r\n deleteEvent(event: any) {\r\n const index = this.selectedIds.findIndex((element: any) => element == event[this.rcIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n this.setList();\r\n }\r\n\r\n selectAll(mode: any) {\r\n if (mode) {\r\n const list = [...this.responsibilityCentersList];\r\n this.selectedIds = [];\r\n list.forEach(element => {\r\n this.selectedIds.push(element[this.rcIdKey]);\r\n });\r\n } else {\r\n this.selectedIds = [];\r\n }\r\n this.setList();\r\n }\r\n\r\n\r\n setList() {\r\n const data: any = [];\r\n const rcList = [...new Set(this.responsibilityCentersList)]\r\n // cloneDeep(this.responsibilityCentersList);\r\n const selectedIds = [...new Set(this.selectedIds)]\r\n // cloneDeep(this.selectedIds);\r\n rcList.forEach((element: any) => {\r\n if (selectedIds.includes(element[this.rcIdKey])) {\r\n data.push(element);\r\n }\r\n });\r\n this.selectedResponsibilityCenters = data;\r\n this.footerDetails.selectedData = this.selectedResponsibilityCenters;\r\n }\r\n\r\n checkSelectAll() {\r\n const data = this.responsibilityCentersList.every((rc: any) => this.selectedIds.includes(rc[this.rcIdKey]));\r\n return data;\r\n }\r\n\r\n save() {\r\n this.saveSelectedList.emit(this.selectedIds);\r\n }\r\n\r\n closeResponsibilityCenterList() {\r\n this.closeRcList.emit();\r\n }\r\n}\r\n","<div class=\"responsibility-center\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"responsibility-center-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Responsibility Center(s)</div>\r\n </div>\r\n <div class=\"responsibility-center-body\">\r\n <div class=\"responsibility-center-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Responsibility Center\">\r\n </div>\r\n\r\n <ng-container *ngIf=\"(responsibilityCentersList | filter:search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length>1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\r\n <strong>{{checkSelectAll() ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <ul class=\"responsibility-center-list\" *ngIf=\"searchList.length > 0\">\r\n <li *ngFor=\"let rc of searchList; let i = index\">\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(rc.item_id)\" (ngValueChange)=\"selectRc(rc.item_id,$event)\">\r\n <ul class=\"responsibility-center-list-name\">\r\n <li *ngFor=\"let entity of rc.rc_name; let j = index\" [arTooltip]=\"entity\" placement=\"bottom-left\" delay=\"0\">\r\n <i class=\"icons\" *ngIf=\"j !== 0\"></i>\r\n {{entity}}\r\n <!-- <span class=\"name\">{{entity}}</span> -->\r\n </li> \r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <div class=\"responsibility-center-footer\">\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"closeRcList.emit()\"\r\n (deleteEvent) =\"selectRc($event.item_id,false)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../../ui-kit/dashboard-footer/dashboard-footer-config';\r\nimport { CategoriesConfig } from './categories-config';\r\n\r\n@Component({\r\n selector: 'app-categories',\r\n templateUrl: './categories.component.html',\r\n styleUrls: ['./categories.component.less']\r\n})\r\nexport class CategoriesComponent implements OnInit {\r\n\r\n\r\n @Input() categoryList: CategoriesConfig = {\r\n regulations: {\r\n list: [],\r\n selectedList: []\r\n },\r\n standards: {\r\n list: [],\r\n selectedList: []\r\n },\r\n internalControls: {\r\n list: [],\r\n selectedList: []\r\n },\r\n others: {\r\n list: [],\r\n selectedList: []\r\n }\r\n };\r\n @Input() allCategories: any[] = [];\r\n\r\n @Input() categoryIdKey: any;\r\n @Input() selectedCategories: any[] = [];\r\n\r\n search = '';\r\n activeTab: \"standards\" | \"regulations\" | \"internalControls\" | \"others\"=\"regulations\";\r\n selectedIds: any[] = [];\r\n animation = false;\r\n blockWidth: any;\r\n footerDetails: DashboardFooterConfig = {\r\n selectedData: [],\r\n nonRemovableList:[],\r\n displayElementKey: 'item_name',\r\n elementId: 'item_id',\r\n singularText: 'Program selected',\r\n pluralText: 'Programs selected',\r\n showFrequency: false,\r\n frequencyText: '',\r\n isDisabled: false\r\n\r\n };\r\n\r\n @Output() saveSelectedCategory = new EventEmitter();\r\n @Output() closeList = new EventEmitter();\r\n @Output() closeCategoriesList = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n this.selectedIds = [];\r\n if (this.selectedCategories) {\r\n this.selectedCategories.forEach(element => {\r\n this.selectedIds.push(element[this.categoryIdKey]);\r\n });\r\n }\r\n this.setList()\r\n\r\n\r\n }\r\n\r\n selectCategory(mode: any, activeTab: any, category: any) {\r\n if (mode) {\r\n this.selectedIds.push(category[this.categoryIdKey]);\r\n const rcElement = this.allCategories.findIndex((ele: any) => ele.category_id == category[this.categoryIdKey]);\r\n if (rcElement !== -1) {\r\n const parentRc: any = this.allCategories[rcElement];\r\n if (parentRc?.child_cat_ids?.length > 0) {\r\n parentRc.child_cat_ids.forEach((childElement: any) => {\r\n if(!this.selectedIds.includes(childElement)){\r\n this.selectedIds.push(childElement);\r\n }\r\n });\r\n }\r\n }\r\n } else {\r\n const index = this.selectedIds.findIndex((element: any) => element == category[this.categoryIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n const rcElement = this.allCategories.findIndex((ele: any) => ele.category_id == category[this.categoryIdKey]);\r\n if (rcElement !== -1) {\r\n const parentRc: any = this.allCategories[rcElement];\r\n if (parentRc?.child_cat_ids?.length > 0) {\r\n parentRc.child_cat_ids.forEach((childElement: any) => {\r\n const removeIndex = this.selectedIds.findIndex((removeElement: any) => removeElement == childElement);\r\n this.selectedIds.splice(removeIndex, 1);\r\n });\r\n }\r\n }\r\n }\r\n this.setList();\r\n\r\n }\r\n\r\n deleteEvent(event: any) {\r\n const index = this.selectedIds.findIndex((element: any) => element == event[this.categoryIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n this.setList();\r\n }\r\n\r\n selectAll(mode: any, activeTab: \"standards\" | \"regulations\" | \"internalControls\" | \"others\") {\r\n\r\n if (mode) {\r\n const list = [...this.categoryList[activeTab].list];\r\n list.forEach(element => {\r\n if (!this.selectedIds.includes(element[this.categoryIdKey])) {\r\n this.selectedIds.push(element[this.categoryIdKey]);\r\n }\r\n }); \r\n } else {\r\n const list = [...this.categoryList[activeTab].list];\r\n list.forEach(element => {\r\n if (this.selectedIds.includes(element[this.categoryIdKey])) {\r\n let idIndex = this.selectedIds.findIndex((id: any) => id == element[this.categoryIdKey]);\r\n this.selectedIds.splice(idIndex, 1);\r\n }\r\n });\r\n }\r\n this.setList();\r\n }\r\n\r\n setList() {\r\n const data: any = [];\r\n const categoryList = [...new Set(this.allCategories)] \r\n // cloneDeep(this.allCategories)\r\n const selectedIds =[...new Set(this.selectedIds)] \r\n // cloneDeep(this.selectedIds);\r\n this.categoryList.regulations.selectedList = [];\r\n this.categoryList.standards.selectedList = [];\r\n this.categoryList.internalControls.selectedList = [];\r\n this.categoryList.others.selectedList = [];\r\n\r\n categoryList.forEach((element: any) => {\r\n if (selectedIds.includes(element[this.categoryIdKey])) {\r\n data.push(element);\r\n }\r\n });\r\n this.selectedCategories = data;\r\n this.footerDetails.selectedData = data;\r\n\r\n this.categoryList.regulations.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.regulations.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.standards.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.standards.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.internalControls.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.internalControls.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.others.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.others.selectedList.push(category)\r\n }\r\n });\r\n if (!this.activeTab) {\r\n this.setActiveTab();\r\n }\r\n }\r\n setActiveTab() {\r\n if (this.categoryList.regulations.selectedList.length > 0) {\r\n this.activeTab = 'regulations'\r\n } else if (this.categoryList.standards.selectedList.length > 0) {\r\n this.activeTab = 'standards'\r\n } else if (this.categoryList.internalControls.selectedList.length > 0) {\r\n this.activeTab = 'internalControls'\r\n } else if (this.categoryList.others.selectedList.length > 0) {\r\n this.activeTab = 'others'\r\n } else {\r\n this.activeTab = 'regulations'\r\n }\r\n }\r\n\r\n\r\n checkSelectAll(activeTab: \"standards\" | \"regulations\" | \"internalControls\" | \"others\") {\r\n const data = this.categoryList[activeTab].list.every((user: any) => this.selectedIds.includes(user[this.categoryIdKey]));\r\n return data;\r\n }\r\n\r\n save() {\r\n this.saveSelectedCategory.emit(this.selectedCategories);\r\n }\r\n\r\n close() {\r\n this.closeCategoriesList.emit();\r\n }\r\n}\r\n","<div class=\"category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <span class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Program(s)</span>\r\n </div>\r\n <div class=\"category-list-mid\">\r\n <div class=\"vx-d-flex vx-mb-2\">\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'regulations'\" (click)=\"activeTab = 'regulations'\">\r\n <div class=\"left\">\r\n <label>REGULATIONS</label>\r\n <p *ngIf=\"categoryList?.regulations?.selectedList?.length != 0\">\r\n {{categoryList?.regulations?.selectedList?.length}}\r\n {{(categoryList?.regulations?.selectedList?.length==1)?'Program':'Programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.regulations?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'standards'\" (click)=\"activeTab = 'standards'\">\r\n <div class=\"left\">\r\n <label>STANDARDS</label>\r\n <p *ngIf=\"categoryList?.standards?.selectedList?.length != 0\">\r\n {{categoryList?.standards?.selectedList?.length}}\r\n {{(categoryList?.standards?.selectedList?.length==1)?'Program':'Programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.standards?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'internalControls'\" (click)=\"activeTab = 'internalControls'\">\r\n <div class=\"left\">\r\n <label>INTERNAL CONTROLS</label>\r\n <p *ngIf=\"categoryList?.internalControls?.selectedList?.length != 0\">\r\n {{categoryList?.internalControls?.selectedList?.length}}\r\n {{(categoryList?.internalControls?.selectedList?.length==1)?'Program':'programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.internalControls?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'others'\" (click)=\"activeTab = 'others'\">\r\n <div class=\"left\">\r\n <label>OTHERS</label>\r\n <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\r\n {{categoryList?.others?.selectedList?.length}}\r\n {{(categoryList?.others?.selectedList?.length==1)?'Program':'Programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.others?.list?.length}}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"category-list-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Program\" />\r\n </div>\r\n\r\n <ng-container *ngIf=\"(categoryList[activeTab].list | filter: search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll(activeTab)\" (ngValueChange)=\"selectAll($event,activeTab)\">\r\n <strong>{{checkSelectAll(activeTab) ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"category-list-item vx-mb-4\" [class.with-selectAll]=\"searchList.length > 1\" *ngIf=\"searchList.length > 0\">\r\n <ul class=\"category-list-item-ul vx-m-0 vx-p-0\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let category of searchList\" >\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\r\n (ngValueChange)=\"selectCategory($event,activeTab,category)\">\r\n <ul class=\"categories\">\r\n <li *ngFor=\"let entity of category.category_name; let j = index\" [arTooltip]=\"entity\" placement=\"bottom-left\" delay=\"0\">{{entity}}</li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <app-no-data *ngIf=\"searchList.length == 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"close()\"\r\n (deleteEvent) =\"deleteEvent($event)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../../ui-kit/dashboard-footer/dashboard-footer-config';\r\nimport { RiskCategoriesConfig } from './risk-categories-config';\r\n\r\n@Component({\r\n selector: 'app-risk-categories',\r\n templateUrl: './risk-categories.component.html',\r\n styleUrls: ['./risk-categories.component.less']\r\n})\r\nexport class RiskCategoriesComponent implements OnInit {\r\n\r\n\r\n @Input() categoryList: RiskCategoriesConfig = {\r\n strategic: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n operational: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n compliance: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n others: {\r\n list: [],\r\n selectedList: [],\r\n }\r\n }\r\n @Input() allCategories: any[] = [];\r\n\r\n @Input() categoryIdKey: any;\r\n @Input() selectedCategories: any[] = [];\r\n\r\n search = '';\r\n activeTab: \"strategic\" | \"operational\" | \"compliance\" | \"others\"=\"strategic\";\r\n selectedIds: any[] = [];\r\n animation = false;\r\n blockWidth: any;\r\n footerDetails: DashboardFooterConfig = {\r\n selectedData: [],\r\n nonRemovableList:[],\r\n displayElementKey: 'category_name',\r\n elementId: 'category_id',\r\n singularText: 'Risk Category selected',\r\n pluralText: 'Risk Categories selected',\r\n showFrequency: false,\r\n frequencyText: '',\r\n isDisabled: false\r\n\r\n };\r\n\r\n @Output() saveSelectedCategory = new EventEmitter();\r\n @Output() closeList = new EventEmitter();\r\n @Output() closeCategoriesList = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n this.selectedIds = [];\r\n if (this.selectedCategories) {\r\n this.selectedCategories.forEach(element => {\r\n this.selectedIds.push(element[this.categoryIdKey]);\r\n });\r\n }\r\n this.setList()\r\n \r\n }\r\n\r\n selectCategory(mode: any, activeTab: any, category: any) {\r\n if (mode) {\r\n this.selectedIds.push(category[this.categoryIdKey]);\r\n } else {\r\n const index = this.selectedIds.findIndex((element: any) => element == category[this.categoryIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n }\r\n this.setList();\r\n\r\n }\r\n\r\n deleteEvent(event: any) {\r\n const index = this.selectedIds.findIndex((element: any) => element == event[this.categoryIdKey]);\r\n this.selectedIds.splice(index, 1);\r\n this.setList();\r\n }\r\n\r\n selectAll(mode: any, activeTab: string) {\r\n\r\n if (mode) {\r\n if (activeTab === \"strategic\" || activeTab === \"operational\" || activeTab === \"compliance\" || activeTab === \"others\") {\r\n const list = this.categoryList[activeTab].list;\r\n list.forEach(element => {\r\n if (!this.selectedIds.includes(element[this.categoryIdKey])) {\r\n this.selectedIds.push(element[this.categoryIdKey]);\r\n }\r\n });\r\n }\r\n\r\n } else {\r\n if (activeTab === \"strategic\" || activeTab === \"operational\" || activeTab === \"compliance\" || activeTab === \"others\") {\r\n const list = [...this.categoryList[activeTab].list];\r\n list.forEach(element => {\r\n if (this.selectedIds.includes(element[this.categoryIdKey])) {\r\n let idIndex = this.selectedIds.findIndex((id: any) => id == element[this.categoryIdKey]);\r\n this.selectedIds.splice(idIndex, 1);\r\n }\r\n });\r\n }\r\n\r\n }\r\n this.setList();\r\n }\r\n\r\n setList() {\r\n const data: any = [];\r\n const categoryList = [...new Set(this.allCategories)] \r\n // cloneDeep(this.allCategories)\r\n const selectedIds =[...new Set(this.selectedIds)] \r\n // cloneDeep(this.selectedIds);\r\n this.categoryList.strategic.selectedList = [];\r\n this.categoryList.operational.selectedList = [];\r\n this.categoryList.compliance.selectedList = [];\r\n this.categoryList.others.selectedList = [];\r\n\r\n categoryList.forEach((element: any) => {\r\n if (selectedIds.includes(element[this.categoryIdKey])) {\r\n data.push(element);\r\n }\r\n });\r\n this.selectedCategories = data;\r\n this.footerDetails.selectedData = data;\r\n\r\n this.categoryList.strategic.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.strategic.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.operational.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.operational.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.compliance.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.compliance.selectedList.push(category)\r\n }\r\n });\r\n this.categoryList.others.list.forEach((category: any) => {\r\n if (selectedIds.includes(category[this.categoryIdKey])) {\r\n this.categoryList.others.selectedList.push(category)\r\n }\r\n });\r\n if (!this.activeTab) {\r\n this.setActiveTab();\r\n }\r\n }\r\n setActiveTab() {\r\n if (this.categoryList.strategic.selectedList.length > 0) {\r\n this.activeTab = 'strategic'\r\n } else if (this.categoryList.operational.selectedList.length > 0) {\r\n this.activeTab = 'operational'\r\n } else if (this.categoryList.compliance.selectedList.length > 0) {\r\n this.activeTab = 'compliance'\r\n } else if (this.categoryList.others.selectedList.length > 0) {\r\n this.activeTab = 'others'\r\n } else {\r\n this.activeTab = 'strategic'\r\n }\r\n }\r\n\r\n\r\n checkSelectAll(activeTab: string) {\r\n if (activeTab === \"strategic\" || activeTab === \"operational\" || activeTab === \"compliance\" || activeTab === \"others\") {\r\n const data = this.categoryList[activeTab].list.every((user: any) => this.selectedIds.includes(user[this.categoryIdKey]));\r\n return data;\r\n }\r\n }\r\n\r\n save() {\r\n this.saveSelectedCategory.emit(this.selectedCategories);\r\n }\r\n\r\n close() {\r\n this.closeCategoriesList.emit();\r\n }\r\n}\r\n","<div class=\"risk-category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"risk-category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <span class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risk Category(s)</span>\r\n </div>\r\n <div class=\"risk-category-list-mid\">\r\n <div class=\"vx-d-flex vx-mb-2\">\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'strategic'\" (click)=\"activeTab = 'strategic'\">\r\n <div class=\"left\">\r\n <label>strategic</label>\r\n <p *ngIf=\"categoryList?.strategic?.selectedList?.length != 0\">\r\n {{categoryList?.strategic?.selectedList?.length}}\r\n {{(categoryList?.strategic?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.strategic?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'operational'\" (click)=\"activeTab = 'operational'\">\r\n <div class=\"left\">\r\n <label>operational</label>\r\n <p *ngIf=\"categoryList?.operational?.selectedList?.length != 0\">\r\n {{categoryList?.operational?.selectedList?.length}}\r\n {{(categoryList?.operational?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.operational?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'compliance'\" (click)=\"activeTab = 'compliance'\">\r\n <div class=\"left\">\r\n <label>compliance</label>\r\n <p *ngIf=\"categoryList?.compliance?.selectedList?.length != 0\">\r\n {{categoryList?.compliance?.selectedList?.length}}\r\n {{(categoryList?.compliance?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.compliance?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'others'\" (click)=\"activeTab = 'others'\">\r\n <div class=\"left\">\r\n <label>OTHERS</label>\r\n <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\r\n {{categoryList?.others?.selectedList?.length}}\r\n {{(categoryList?.others?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.others?.list?.length}}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"risk-category-list-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Risk Category\" />\r\n </div>\r\n\r\n <ng-container *ngIf=\"(categoryList[activeTab]?.list | filter: search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll(activeTab)\" (ngValueChange)=\"selectAll($event,activeTab)\">\r\n <strong>{{checkSelectAll(activeTab) ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"risk-category-list-item vx-mb-4\" [class.with-selectAll]=\"searchList.length > 1\" *ngIf=\"searchList.length > 0\">\r\n <ul class=\"risk-category-list-item-ul vx-m-0 vx-p-0\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let category of searchList\" >\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\r\n (ngValueChange)=\"selectCategory($event,activeTab,category)\">\r\n <ul class=\"categories\">\r\n <li [arTooltip]=\"category.category_name\" placement=\"bottom-left\" delay=\"0\">{{category.category_name}}</li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n <app-no-data *ngIf=\"searchList.length == 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"close()\"\r\n (deleteEvent) =\"deleteEvent($event)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { DashboardFooterConfig } from '../../ui-kit/dashboard-footer/dashboard-footer-config';\r\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-frequency',\r\n templateUrl: './frequency.component.html',\r\n styleUrls: ['./frequency.component.less']\r\n})\r\nexport class FrequencyComponent implements OnInit,OnChanges {\r\n animation = true;\r\n @Input() savedFrequencyTab: string | undefined;\r\n monthlyDate = 1;\r\n quarterlyDate = 1;\r\n @Input() savedFrequencies: any;\r\n @Input() selectedDate: any;\r\n frequencyTab = 'weekly';\r\n showFrequency = true;\r\n dayNames = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\r\n monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n quarters = ['January, April, July, October', 'February, May, August, November', 'March, June, September, December'];\r\n selectedDays: any[] = [0];\r\n selectedMonths: any[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\r\n selectedQuarter = 0;\r\n @Output() closeFrequencyPopup = new EventEmitter<string>();\r\n @Output() saveFrequency = new EventEmitter<any>();\r\n footerDetails: DashboardFooterConfig = {\r\n selectedData: [],\r\n nonRemovableList:[],\r\n displayElementKey: '',\r\n elementId: '',\r\n singularText: '',\r\n pluralText: '',\r\n showFrequency: true,\r\n frequencyText: 'You have selected a <strong>' + this.frequencyTab + '</strong> frequency.',\r\n isDisabled: false\r\n\r\n };\r\n showRadio = true;\r\n constructor(private snackBar:SnackBarService) { }\r\n ngOnChanges(){\r\n this.savedFrequencies = [...new Set(this.savedFrequencies)]\r\n }\r\n\r\n ngOnInit(): void {\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n if (this.savedFrequencyTab) {\r\n this.changeTab(this.savedFrequencyTab);\r\n }\r\n if (this.selectedDate) {\r\n switch (this.savedFrequencyTab) {\r\n case 'weekly':\r\n this.selectedDays = [...new Set(this.savedFrequencies)]\r\n break;\r\n case 'monthly':\r\n this.monthlyDate = this.selectedDate;\r\n this.selectedMonths = [...new Set(this.savedFrequencies)]\r\n\r\n break;\r\n case 'quarterly':\r\n this.showRadio = false;\r\n setTimeout(() => {\r\n this.showRadio = true\r\n }, 100);\r\n this.quarterlyDate = this.selectedDate\r\n this.selectedQuarter = this.savedFrequencies;\r\n\r\n break;\r\n\r\n }\r\n }\r\n\r\n }\r\n closeFrequency() {\r\n this.closeFrequencyPopup.emit();\r\n }\r\n daySelectionChange(event: any, index: any) {\r\n if (event) { //checkbox was selected\r\n this.selectedDays.push(index);\r\n } else {\r\n let unselectedElementIndex = this.selectedDays.indexOf(index);\r\n this.selectedDays.splice(unselectedElementIndex, 1);\r\n }\r\n this.checkFrequencyValidity();\r\n }\r\n monthSelectionChange(event: any, index: any) {\r\n if (event) {\r\n this.selectedMonths.push(index);\r\n } else {\r\n let unselectedElementIndex = this.selectedMonths.indexOf(index);\r\n this.selectedMonths.splice(unselectedElementIndex, 1);\r\n }\r\n this.checkDateValidity(this.monthlyDate,'monthly')\r\n this.checkFrequencyValidity();\r\n }\r\n\r\n quarterSelectionChange(event: any, index: any) {\r\n this.selectedQuarter = index;\r\n this.checkDateValidity(this.quarterlyDate,'quarterly');\r\n this.checkFrequencyValidity();\r\n }\r\n\r\n changeTab(tabValue: string) {\r\n this.frequencyTab = tabValue;\r\n this.footerDetails.frequencyText = 'You have selected a <strong>' + this.frequencyTab + '</strong> frequency.';\r\n this.footerDetails.isDisabled = false;\r\n this.setToDefaultValues()\r\n if (this.frequencyTab === this.savedFrequencyTab) {\r\n switch (this.frequencyTab) {\r\n case 'weekly': {\r\n this.selectedDays = [...this.savedFrequencies];\r\n this.monthlyDate = 1;\r\n this.quarterlyDate = 1;\r\n break;\r\n }\r\n case 'monthly': {\r\n this.selectedMonths = [...this.savedFrequencies];\r\n this.monthlyDate = this.selectedDate;\r\n this.quarterlyDate = 1;\r\n this.checkDateValidity(this.monthlyDate,'monthly')\r\n break;\r\n }\r\n case 'quarterly': {\r\n this.selectedQuarter = this.savedFrequencies;\r\n this.quarterlyDate = this.selectedDate;\r\n this.monthlyDate = 1;\r\n this.checkDateValidity(this.quarterlyDate,'quarterly')\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n setToDefaultValues() {\r\n this.selectedDays = [0];\r\n this.selectedMonths = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\r\n this.selectedQuarter = 0;\r\n }\r\n\r\n submitFrequency() {\r\n let stringVal = \"Every \";\r\n let frequencies;\r\n let selectedDate = 1;\r\n switch (this.frequencyTab) {\r\n case 'weekly': {\r\n if (this.selectedDays.length > 0) {\r\n this.selectedDays.sort();\r\n frequencies = this.selectedDays;\r\n this.selectedDays.forEach((dayIndex, index) => {\r\n stringVal += index === 0 ? this.dayNames[dayIndex] : ', ' + this.dayNames[dayIndex];\r\n })\r\n } else {\r\n // nothing was selected\r\n this.closeFrequency();\r\n }\r\n break;\r\n }\r\n case 'monthly': {\r\n stringVal = \" of every \";\r\n if (this.selectedMonths.length > 0) {\r\n frequencies = this.selectedMonths;\r\n this.monthNames.forEach((monthNames: string, monthIndex: number) => {\r\n if (this.selectedMonths.includes(monthIndex)) {\r\n stringVal += monthIndex === 0 ? monthNames : ', ' + monthNames;\r\n\r\n }\r\n })\r\n let monthDateName;\r\n if (this.monthlyDate == 1) {\r\n monthDateName = '1st'\r\n }\r\n else if (this.monthlyDate == 2) {\r\n monthDateName = '2nd'\r\n }\r\n else if (this.monthlyDate == 3) {\r\n monthDateName = '3rd'\r\n }\r\n else {\r\n monthDateName = this.monthlyDate + 'th'\r\n }\r\n stringVal = monthDateName + stringVal;\r\n selectedDate = this.monthlyDate;\r\n } else {\r\n // nothing was selected\r\n this.closeFrequency();\r\n }\r\n break;\r\n }\r\n case 'quarterly': {\r\n stringVal = \" of every \";\r\n\r\n if (this.selectedQuarter >= 0) {\r\n frequencies = this.selectedQuarter;\r\n stringVal += this.quarters[this.selectedQuarter];\r\n selectedDate = this.quarterlyDate;\r\n let monthDateName;\r\n if (this.quarterlyDate == 1) {\r\n monthDateName = '1st'\r\n }\r\n else if (this.quarterlyDate == 2) {\r\n monthDateName = '2nd'\r\n }\r\n else if (this.quarterlyDate == 3) {\r\n monthDateName = '3rd'\r\n }\r\n else {\r\n monthDateName = this.quarterlyDate + 'th'\r\n }\r\n stringVal = monthDateName + stringVal;\r\n selectedDate = this.quarterlyDate;\r\n } else {\r\n // nothing was selected\r\n this.closeFrequency();\r\n }\r\n break;\r\n }\r\n }\r\n this.saveFrequency.emit({\r\n frequencyString: stringVal,\r\n frequencyType: this.frequencyTab,\r\n frequencies: frequencies,\r\n selectedDate\r\n })\r\n }\r\n \r\n checkDateValidity(date:number, type:string){\r\n if(date>31 || date<1){\r\n this.snackBar.show('Select valid date.','alert');\r\n this.footerDetails.isDisabled = true;\r\n return\r\n }else{\r\n this.footerDetails.isDisabled = false;\r\n }\r\n const monthList=[{name:'January',maxDays:31,value:0},{name:'February',maxDays:28,value:1},{name:'March',maxDays:31,value:2},\r\n {name:'April',maxDays:30,value:3},{name:'May',maxDays:31,value:4},{name:'June',maxDays:30,value:5},\r\n {name:'July',maxDays:31,value:6},{name:'August',maxDays:31,value:7},{name:'September',maxDays:30,value:8},\r\n {name:'October',maxDays:31,value:9},{name:'November',maxDays:30,value:10},{name:'December',maxDays:31,value:11}]\r\n switch (type) {\r\n case 'monthly':\r\n if(this.selectedMonths.length==1){\r\n const index = monthList.findIndex((ele:any)=>ele.value==this.selectedMonths[0]);\r\n if(date<=monthList[index].maxDays){\r\n this.footerDetails.isDisabled = false;\r\n \r\n }else{\r\n this.snackBar.show('Select valid date.','alert');\r\n this.footerDetails.isDisabled = true; \r\n }\r\n }else if(this.selectedMonths.length==0){\r\n this.footerDetails.isDisabled = true; \r\n }else{\r\n this.footerDetails.isDisabled = false;\r\n }\r\n\r\n break;\r\n default:\r\n this.footerDetails.isDisabled = false;\r\n return true;\r\n break;\r\n\r\n }\r\n\r\n}\r\n\r\ncheckFrequencyValidity(){\r\n switch (this.frequencyTab) {\r\n case 'weekly': {\r\n if (this.selectedDays.length > 0) {\r\n this.footerDetails.isDisabled = false;\r\n\r\n } else {\r\n this.footerDetails.isDisabled = true;\r\n }\r\n break;\r\n }\r\n case 'monthly': {\r\n \r\n if (this.selectedMonths.length > 0) {\r\n this.footerDetails.isDisabled = false;\r\n \r\n } else {\r\n this.footerDetails.isDisabled = true;\r\n }\r\n break;\r\n }\r\n case 'quarterly': {\r\n\r\n if (this.selectedQuarter >= 0){\r\n this.footerDetails.isDisabled = false;\r\n \r\n } else {\r\n this.footerDetails.isDisabled = true;\r\n }\r\n break;\r\n }\r\n } \r\n}\r\n\r\n}\r\n","<div class=\"create-frequency\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"create-frequency-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4 vx-mb-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Frequency</div>\r\n </div>\r\n <div class=\"create-frequency-body vx-pl-4 vx-pr-4\">\r\n <div class=\"create-frequency-body-inner\">\r\n <div class=\"create-frequency-tab\" [ngSwitch]=\"frequencyTab\">\r\n <div class=\"create-frequency-tab-head\">\r\n <ul class=\"navigation\">\r\n <li><button [class.active]=\"frequencyTab == 'weekly'\" (click)=\"changeTab('weekly')\">Weekly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'monthly'\" (click)=\"changeTab('monthly')\">Monthly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'quarterly'\" (click)=\"changeTab('quarterly')\">Quarterly</button></li>\r\n </ul>\r\n </div>\r\n <div class=\"create-frequency-tab-body vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Email Reminder Frequency:</div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'weekly'\">\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let day of dayNames; let dayIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"daySelectionChange($event, dayIndex)\" [ngValue]=\"selectedDays.includes(dayIndex)\">{{day}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list month\" *ngSwitchCase=\"'monthly'\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(monthlyDate,'monthly')\" [(ngModel)]=\"monthlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center vx-flex-wrap\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let month of monthNames; let monthIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"monthSelectionChange($event, monthIndex)\" [ngValue]=\"selectedMonths.includes(monthIndex)\">{{month}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'quarterly'\">\r\n <ng-container *ngIf=\"showRadio\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(quarterlyDate,'quarterly')\" [(ngModel)]=\"quarterlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center vx-w-100\" *ngFor=\"let quarter of quarters, let quarterIndex = index\">\r\n <app-cs-radio (checkedEvent)=\"quarterSelectionChange($event, quarterIndex)\" [checked]=\"selectedQuarter === quarterIndex\">{{quarter}}</app-cs-radio>\r\n </div>\r\n </div>\r\n </ng-container> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"create-frequency-footer\">\r\n <app-dashboard-footer \r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeFrequencyPopup.emit()\"\r\n (submitEvent)=\"submitFrequency()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { EditorConfig } from '@vcomply/editor';\r\nimport { DatePickerComponent, IDatePickerConfig } from 'ng2-date-picker';\r\nimport { CreateDashboardService } from './services/create-dashboard.service';\r\nimport { PaginationService } from './services/pagination.service';\r\nimport { UserListConfiguration } from './user-list/user-list.config';\r\nimport { CreateDashboardForm } from './create-dashboard-config';\r\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\r\nimport { ConfigureWidgetsService } from './services/configure-widgets.service';\r\nimport { findIndex } from 'rxjs/operators';\r\n\r\nimport * as dayjs from 'dayjs';\r\n// import * as customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport { PopoverService } from '../ui-kit/popover/popover.service';\r\nimport { TextCountPipe } from './pipes/text-count.pipe';\r\n// dayjs.extend(customParseFormat);\r\n\r\n@Component({\r\n selector: 'app-create-dashboard',\r\n templateUrl: './create-dashboard.component.html',\r\n styleUrls: ['./create-dashboard.component.less'],\r\n providers: [TextCountPipe],\r\n})\r\nexport class CreateDashboardComponent implements OnInit, OnChanges {\r\n @Input() feature: any;\r\n\r\n activeSelector = '';\r\n disabled = false;\r\n @Input() mode = 'CREATE';\r\n @Input() dashboardId = '';\r\n @Output() close = new EventEmitter();\r\n @Input() createdBy = 0;\r\n\r\n @ViewChild('fromDatePicker') fromDatePicker!: DatePickerComponent;\r\n @ViewChild('toDatePicker') toDatePicker!: DatePickerComponent;\r\n animation = true;\r\n @Input() configureWidget = false;\r\n\r\n totalPages = 1;\r\n totalList = 1;\r\n usersList: any[] = [];\r\n vLoader = true;\r\n userListLoaded = false;\r\n rcListLoaded = false;\r\n complianceCategoriesListLoaded = false;\r\n riskCategoryListLoaded = false;\r\n hideToDate = false;\r\n listDetails: UserListConfiguration = {\r\n selectedUsersList: [],\r\n selectedGroupList: [],\r\n nonRemovableUsersList: [],\r\n displayElementKey: 'member_name',\r\n displayGroupKey: 'group_name',\r\n groupIdkey: 'group_id',\r\n elementIdKey: 'member_id',\r\n tooltipKey: 'member_email',\r\n };\r\n dashboardDescription: EditorConfig = {\r\n placeholder: 'Description (Max limit: 250 characters)',\r\n mode: 'prime',\r\n id: 'description',\r\n };\r\n responsibilityCategoriesTree: any = {\r\n regulations: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n standards: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n internalControls: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n others: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n };\r\n allComplianceCategories: any[] = [];\r\n allRiskCategories: any[] = [];\r\n showRiskCategory = false;\r\n showCriteria = true;\r\n\r\n dashboardForm: CreateDashboardForm = {\r\n dashboardName: '',\r\n dashboardDescriptionText: '',\r\n selectedViewers: [],\r\n selectedGroup: [],\r\n selectedFromDate: undefined,\r\n selectedToDate: undefined,\r\n selectedResponsibilityCenters: [],\r\n selectedResponsibilityCategories: [],\r\n selectedRiskCategories: [],\r\n displayCriteria: 'or',\r\n configureWidget: [],\r\n frequencyDetails: '',\r\n selectedFrequencyType: '',\r\n selectedFrequencies: [0],\r\n frequencyMessage: '',\r\n frequencyDate: 1,\r\n };\r\n\r\n openConfigureWidgets = false;\r\n selectedWidgets: any = [];\r\n displayedWidgets: any = [];\r\n\r\n responsibilityCentersList = [];\r\n datePickerOverlay = false;\r\n dayNames = [\r\n 'Monday',\r\n 'Tuesday',\r\n 'Wednesday',\r\n 'Thursday',\r\n 'Friday',\r\n 'Saturday',\r\n 'Sunday',\r\n ];\r\n monthNames = [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December',\r\n ];\r\n quarters = [\r\n 'January, April, July, October',\r\n 'February, May, August, November',\r\n 'March, June, September, December',\r\n ];\r\n\r\n categoryListLoaded = false;\r\n showRiskWidgets = false;\r\n showComplianceWidgets = false;\r\n isManageRisk: boolean = false;\r\n\r\n riskCategoryList = {\r\n strategic: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n operational: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n compliance: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n others: {\r\n list: [],\r\n selectedList: [],\r\n },\r\n };\r\n\r\n fromDatePickerConfig: IDatePickerConfig = {\r\n min: this.getCurrentDate(),\r\n };\r\n\r\n toDatePickerConfig: IDatePickerConfig = {};\r\n\r\n isSmiley!: boolean;\r\n smileyMessage: string = '';\r\n groupList: any;\r\n groupsEnabled: boolean = false;\r\n totalgroups: any;\r\n\r\n constructor(\r\n private createDashboardService: CreateDashboardService,\r\n private paginationService: PaginationService,\r\n private cdr: ChangeDetectorRef,\r\n private snackBar: SnackBarService,\r\n public popoverService: PopoverService,\r\n private configureWidgetsService: ConfigureWidgetsService,\r\n private textCount: TextCountPipe\r\n ) {}\r\n\r\n ngOnChanges() {\r\n if (this.createdBy) {\r\n this.listDetails.nonRemovableUsersList.push(this.createdBy);\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\r\n event: KeyboardEvent\r\n ) {\r\n this.close.emit({ mode: 'discard' });\r\n this.isSmiley = false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.groupsEnabled = this.feature?.isFeatureEnabled(\r\n 'ff_groups_improvements'\r\n );\r\n this.animation = true;\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 300);\r\n // this.getOrganizationUsersCount('');\r\n this.getCategoryList();\r\n this.getRCList();\r\n this.getComplianceCategoryList();\r\n this.setFrequency('2~1~0~0', 'import');\r\n this.checkWhetherAllListsLoaded();\r\n this.getUsersList('');\r\n this.getGroupList();\r\n this.createDashboardService.getUserInformation().subscribe(\r\n (res: any) => {\r\n this.setPermission(res?.roleActions);\r\n const quickLink = res.quick_link;\r\n if (quickLink.risk) {\r\n this.showRiskCategory = true;\r\n } else {\r\n this.showRiskCategory = false;\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Displays the listing pages the left side of policy form to set and edit the dropdown fields values\r\n * @param type holds name of particular list is to be displayed\r\n * @param event contains boolean value to display the list or not\r\n */\r\n activateSelector(type: any, event: boolean) {\r\n if (type == 'frequency' || this.activeSelector == 'frequency') {\r\n this.showCriteria = false;\r\n setTimeout(() => {\r\n this.showCriteria = true;\r\n }, 1);\r\n }\r\n this.activeSelector = event ? type : '';\r\n }\r\n\r\n openFromDatePicker() {\r\n this.fromDatePicker?.api?.open();\r\n this.datePickerOverlay = true;\r\n }\r\n\r\n openToDatePicker() {\r\n this.toDatePicker?.api?.open();\r\n this.datePickerOverlay = true;\r\n }\r\n closeFromDatePicker() {\r\n if (!this.dashboardForm.selectedFromDate) {\r\n this.dashboardForm.selectedToDate = undefined;\r\n this.hideToDate = true;\r\n setTimeout(() => {\r\n this.hideToDate = false;\r\n }, 20);\r\n this.fromDatePicker.api.close();\r\n this.datePickerOverlay = false;\r\n return;\r\n }\r\n let minToDate = this.setToDate(this.dashboardForm.selectedFromDate);\r\n this.toDatePickerConfig = { min: minToDate };\r\n\r\n const fromDate = new Date(minToDate.split('-').reverse().join('-'));\r\n const toDate = new Date(this.dashboardForm.selectedToDate);\r\n const inValidDate = fromDate >= toDate ? true : false;\r\n if (inValidDate) {\r\n this.dashboardForm.selectedToDate = undefined;\r\n this.hideToDate = true;\r\n setTimeout(() => {\r\n this.hideToDate = false;\r\n }, 20);\r\n }\r\n this.fromDatePicker?.api?.close();\r\n this.datePickerOverlay = false;\r\n }\r\n\r\n closeToDatePicker() {\r\n this.toDatePicker?.api?.close();\r\n this.datePickerOverlay = false;\r\n }\r\n\r\n animateImage() {\r\n const circleImage = document.getElementsByClassName('image');\r\n }\r\n\r\n saveFrequency(eventValues: any) {\r\n this.dashboardForm.selectedFrequencyType = eventValues.frequencyType;\r\n this.dashboardForm.selectedFrequencies = eventValues.frequencies;\r\n this.dashboardForm.frequencyMessage = eventValues.frequencyString;\r\n this.dashboardForm.frequencyDate = eventValues.selectedDate;\r\n this.activateSelector('', false);\r\n }\r\n\r\n getCurrentDate() {\r\n let today = new Date();\r\n return (\r\n today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear()\r\n );\r\n }\r\n setToDate(data: string) {\r\n let today = new Date(data);\r\n return (\r\n today.getDate() +\r\n 1 +\r\n '-' +\r\n (today.getMonth() + 1) +\r\n '-' +\r\n today.getFullYear()\r\n );\r\n }\r\n getFromDate(data: string) {\r\n let today = new Date(data);\r\n return (\r\n today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear()\r\n );\r\n }\r\n\r\n /**\r\n * It takes a string, converts it to a date, then returns a string in the format of YYYY-MM-DD.\r\n * @param {string} data - the date you want to format\r\n * @returns A string in the format of YYYY-MM-DD\r\n */\r\n getDateFormate(data: string) {\r\n let today = new Date(data);\r\n return (\r\n today.getFullYear() +\r\n '-' +\r\n String(today.getMonth() + 1).padStart(2, '0') +\r\n '-' +\r\n String(today.getDate()).padStart(2, '0')\r\n );\r\n }\r\n\r\n configureDashboard() {\r\n let fieldsStatus = this.validateDashboard();\r\n if (fieldsStatus) {\r\n if (this.mode == 'CREATE') {\r\n this.vLoader = true;\r\n const payload = {\r\n dashboard_name: this.dashboardForm.dashboardName,\r\n dashboard_id: '',\r\n };\r\n this.createDashboardService\r\n .checkDuplicateDashboardName(payload)\r\n .subscribe(\r\n (res) => {\r\n if (!res) {\r\n this.vLoader = false;\r\n this.showRiskWidgets =\r\n this.isManageRisk &&\r\n this.showRiskCategory &&\r\n (this.dashboardForm.selectedRiskCategories.length > 0 ||\r\n this.dashboardForm.selectedResponsibilityCenters.length > 0)\r\n ? true\r\n : false;\r\n this.showComplianceWidgets =\r\n this.dashboardForm.selectedResponsibilityCategories.length >\r\n 0 ||\r\n this.dashboardForm.selectedResponsibilityCenters.length > 0\r\n ? true\r\n : false;\r\n this.openConfigureWidgets = true;\r\n } else {\r\n this.vLoader = false;\r\n this.snackBar.show(\r\n 'A dashboard with this name already exists. Specify a different name for the dashboard.',\r\n 'alert'\r\n );\r\n return;\r\n }\r\n },\r\n (error) => {\r\n console.error(error);\r\n this.vLoader = false;\r\n }\r\n );\r\n } else if (this.mode == 'EDIT') {\r\n this.vLoader = true;\r\n const payload = {\r\n dashboard_name: this.dashboardForm.dashboardName,\r\n dashboard_id: this.dashboardId,\r\n };\r\n this.createDashboardService\r\n .checkDuplicateDashboardName(payload)\r\n .subscribe(\r\n (res) => {\r\n if (!res) {\r\n this.vLoader = false;\r\n this.showRiskWidgets =\r\n this.isManageRisk &&\r\n this.showRiskCategory &&\r\n (this.dashboardForm.selectedRiskCategories.length > 0 ||\r\n this.dashboardForm.selectedResponsibilityCenters.length > 0)\r\n ? true\r\n : false;\r\n this.showComplianceWidgets =\r\n this.dashboardForm.selectedResponsibilityCategories.length >\r\n 0 ||\r\n this.dashboardForm.selectedResponsibilityCenters.length > 0\r\n ? true\r\n : false;\r\n this.openConfigureWidgets = true;\r\n } else {\r\n this.vLoader = false;\r\n this.snackBar.show(\r\n 'A dashboard with this name already exists. Specify a different name for the dashboard.',\r\n 'alert'\r\n );\r\n return;\r\n }\r\n },\r\n (error) => {\r\n this.vLoader = false;\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Fetches organization users count api to get total number of pages\r\n * @param Url contains prams\r\n */\r\n getOrganizationUsersCount(Url: any) {\r\n this.createDashboardService\r\n .getOrganizationUsersCount(Url)\r\n .subscribe((res) => {\r\n this.totalList = res.total_members;\r\n if (res.total_members && res.limit_per_page > 1) {\r\n this.totalPages = res.create_page;\r\n } else {\r\n this.totalPages = 1;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Get users list by making api call and pre selects all admins by adding to viewers\r\n * @param url contains query params for organization users api\r\n */\r\n getUsersList(url: any) {\r\n this.createDashboardService.getAllUsers().subscribe((res: any) => {\r\n this.usersList = res;\r\n this.userListLoaded = true;\r\n\r\n if (this.mode === 'EDIT') {\r\n this.vLoader = true;\r\n } else {\r\n this.dashboardForm.selectedViewers = this.setList(\r\n this.usersList,\r\n [this.createdBy],\r\n 'member_id'\r\n );\r\n this.listDetails.selectedUsersList = this.dashboardForm.selectedViewers;\r\n this.vLoader = false;\r\n }\r\n });\r\n }\r\n\r\n getGroupList() {\r\n this.createDashboardService.getAllGroups().subscribe((res: any) => {\r\n this.totalgroups = res.total_items;\r\n this.groupList = res.data;\r\n this.userListLoaded = true;\r\n if (this.mode === 'EDIT') {\r\n this.vLoader = true;\r\n } else {\r\n this.dashboardForm.selectedGroup = this.setList(\r\n this.groupList,\r\n [this.createdBy],\r\n 'group_id'\r\n );\r\n this.listDetails.selectedGroupList = this.dashboardForm.selectedGroup;\r\n this.vLoader = false;\r\n }\r\n });\r\n }\r\n\r\n getComplianceCategoryList() {\r\n this.createDashboardService\r\n .getComplianceCategoriesListFromGlobal()\r\n .subscribe(\r\n (res: any) => {\r\n const data = res;\r\n this.allComplianceCategories = Object.assign(res);\r\n // cloneDeep(res);\r\n data.forEach((element: any) => {\r\n if (element && element.compliance_type == 0) {\r\n this.responsibilityCategoriesTree.others.list.push(element);\r\n }\r\n if (element && element.compliance_type == 1) {\r\n this.responsibilityCategoriesTree.regulations.list.push(element);\r\n }\r\n if (element && element.compliance_type == 2) {\r\n this.responsibilityCategoriesTree.standards.list.push(element);\r\n }\r\n if (element && element.compliance_type == 3) {\r\n this.responsibilityCategoriesTree.internalControls.list.push(\r\n element\r\n );\r\n }\r\n });\r\n this.complianceCategoriesListLoaded = true;\r\n },\r\n (err: any) => {\r\n console.error(err);\r\n this.complianceCategoriesListLoaded = true;\r\n }\r\n );\r\n }\r\n\r\n saveSelectedCategory(event: any) {\r\n console.log('event==>>>', event);\r\n }\r\n\r\n getCategoryList() {\r\n this.createDashboardService.getCategoryList().subscribe(\r\n (res: any) => {\r\n this.riskCategoryList.strategic.list = res.strategic_arr;\r\n this.riskCategoryList.operational.list = res.operational_arr;\r\n this.riskCategoryList.compliance.list = res.compliance_arr;\r\n this.riskCategoryList.others.list = res.others_arr;\r\n this.riskCategoryListLoaded = true;\r\n this.allRiskCategories = [\r\n ...new Set(\r\n this.allRiskCategories.concat(\r\n res.strategic_arr,\r\n res.operational_arr,\r\n res.compliance_arr,\r\n res.others_arr\r\n )\r\n ),\r\n ];\r\n },\r\n (err) => {\r\n console.error(err);\r\n this.riskCategoryListLoaded = true;\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * It is to ensure whether all required lists on Policy from is loaded from the api call or not\r\n */\r\n checkWhetherAllListsLoaded() {\r\n if (\r\n this.rcListLoaded &&\r\n this.complianceCategoriesListLoaded &&\r\n this.riskCategoryListLoaded &&\r\n this.userListLoaded\r\n ) {\r\n if (this.mode === 'EDIT') {\r\n this.editDashboard();\r\n } else {\r\n this.vLoader = false;\r\n }\r\n } else {\r\n setTimeout(() => {\r\n this.checkWhetherAllListsLoaded();\r\n }, 300);\r\n }\r\n }\r\n\r\n setSelectedWidgets(data: any) {\r\n if (this.mode === 'CREATE') {\r\n const widgetsArray: any = [];\r\n data.forEach((element: any) => {\r\n let obj: any = {};\r\n obj.module_name = element.module;\r\n obj._id = '';\r\n obj.widget_name = element.title;\r\n obj.widget_code = element.id;\r\n obj.sub_widgets = [];\r\n obj.state = 'ACTIVE';\r\n if (element.subWidgets.length > 0) {\r\n element.subWidgets.forEach((subWidget: any) => {\r\n let subWidgetObject: any = {};\r\n subWidgetObject._id = '';\r\n subWidgetObject.widget_name = subWidget.title;\r\n subWidgetObject.widget_code = subWidget.id;\r\n subWidgetObject.state = subWidget.value ? 'ACTIVE' : 'INACTIVE';\r\n obj.sub_widgets.push(Object.assign(subWidgetObject));\r\n });\r\n }\r\n widgetsArray.push(obj);\r\n });\r\n\r\n this.dashboardForm.configureWidget = widgetsArray;\r\n } else if (this.mode === 'EDIT') {\r\n const widgetsArray: any = [];\r\n\r\n data.forEach((element: any) => {\r\n if (\r\n !JSON.stringify(this.dashboardForm.configureWidget).includes(\r\n element.id\r\n )\r\n ) {\r\n let obj: any = {};\r\n obj.module_name = element.module;\r\n obj._id = '';\r\n obj.widget_name = element.title;\r\n obj.widget_code = element.id;\r\n obj.sub_widgets = [];\r\n obj.state = 'ACTIVE';\r\n if (element.subWidgets.length > 0) {\r\n element.subWidgets.forEach((subWidget: any) => {\r\n let subWidgetObject: any = {};\r\n subWidgetObject._id = '';\r\n subWidgetObject.widget_name = subWidget.title;\r\n subWidgetObject.widget_code = subWidget.id;\r\n subWidgetObject.state = subWidget.value ? 'ACTIVE' : 'INACTIVE';\r\n obj.sub_widgets.push(subWidgetObject);\r\n });\r\n }\r\n this.dashboardForm.configureWidget.push(obj);\r\n } else {\r\n const index = this.selectedWidgets.findIndex(\r\n (ele: any) => ele.widget_code == element.id\r\n );\r\n if (index != -1) {\r\n this.selectedWidgets[index].state = 'ACTIVE';\r\n if (this.selectedWidgets[index].sub_widgets.length > 0) {\r\n this.selectedWidgets[index].sub_widgets.forEach(\r\n (subWidgetData: any) => {\r\n const elementIndex = element.subWidgets.findIndex(\r\n (ele: any) => ele.id == subWidgetData.widget_code\r\n );\r\n if (elementIndex != -1) {\r\n subWidgetData.state = element.subWidgets[elementIndex].value\r\n ? 'ACTIVE'\r\n : 'INACTIVE';\r\n }\r\n }\r\n );\r\n }\r\n }\r\n }\r\n });\r\n this.dashboardForm.configureWidget.forEach((savedWidget: any) => {\r\n const index = data.findIndex(\r\n (dataElement: any) => dataElement.id == savedWidget.widget_code\r\n );\r\n if (index == -1) {\r\n savedWidget.state = 'INACTIVE';\r\n if (savedWidget.sub_widgets.length > 0) {\r\n savedWidget.sub_widgets.forEach((saveSubWidget: any) => {\r\n saveSubWidget.state = 'INACTIVE';\r\n });\r\n }\r\n }\r\n });\r\n }\r\n this.selectedWidgets = data;\r\n this.openConfigureWidgets = false;\r\n this.submitDashboard();\r\n }\r\n\r\n closeConfigureWidgets(event: boolean) {\r\n this.openConfigureWidgets = event;\r\n }\r\n\r\n /**\r\n * Filter list user's list based on pagination by making api call\r\n * @param event specifies a boolean value to call api\r\n */\r\n paginationFilter(event: any) {\r\n if (event) {\r\n this.getUsersList({\r\n p:\r\n this.paginationService.currentPage === 1\r\n ? ''\r\n : this.paginationService.currentPage,\r\n type: 'all_except_executive',\r\n q: !this.paginationService.searchValue\r\n ? ''\r\n : this.paginationService.searchValue,\r\n });\r\n }\r\n }\r\n\r\n getRCList() {\r\n this.createDashboardService.getResponsibilityCenterList().subscribe(\r\n (res: any) => {\r\n this.responsibilityCentersList = res;\r\n this.rcListLoaded = true;\r\n },\r\n (err: any) => {\r\n console.error(err);\r\n this.rcListLoaded = true;\r\n }\r\n );\r\n }\r\n /**\r\n * #### Description\r\n *\r\n * Returns the unique array of object based on unique key\r\n * @param array\r\n * @param key\r\n * @returns\r\n */\r\n uniqueByProp(array: any, key: string) {\r\n return Array.from(\r\n array\r\n .reduce(\r\n (acc: any, item: any) => (\r\n item && item[key] && acc.set(item[key], item), acc\r\n ),\r\n new Map()\r\n )\r\n .values()\r\n );\r\n }\r\n\r\n saveSelectedList(type: string, selectedItems: any) {\r\n switch (type) {\r\n case 'rc':\r\n this.dashboardForm.selectedResponsibilityCenters = this.setList(\r\n this.responsibilityCentersList,\r\n selectedItems,\r\n 'item_id'\r\n );\r\n if (this.dashboardForm.selectedResponsibilityCenters.length == 0) {\r\n if (this.dashboardForm.selectedResponsibilityCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'COMPLIANCE'\r\n );\r\n } else if (this.dashboardForm.selectedRiskCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'RISK'\r\n );\r\n }\r\n }\r\n break;\r\n case 'whoCanView':\r\n this.dashboardForm.selectedViewers = this.uniqueByProp(\r\n selectedItems?.users,\r\n 'member_id'\r\n );\r\n this.listDetails.selectedUsersList = this.dashboardForm.selectedViewers;\r\n this.dashboardForm.selectedGroup = this.uniqueByProp(\r\n selectedItems?.groups,\r\n 'group_id'\r\n );\r\n this.listDetails.selectedGroupList = this.dashboardForm.selectedGroup;\r\n break;\r\n case 'responsibilityCategories':\r\n this.dashboardForm.selectedResponsibilityCategories = selectedItems;\r\n if (this.dashboardForm.selectedResponsibilityCenters.length == 0) {\r\n if (this.dashboardForm.selectedResponsibilityCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'COMPLIANCE'\r\n );\r\n } else if (this.dashboardForm.selectedRiskCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'RISK'\r\n );\r\n }\r\n }\r\n break;\r\n case 'riskCategory':\r\n this.dashboardForm.selectedRiskCategories = selectedItems;\r\n if (this.dashboardForm.selectedResponsibilityCenters.length == 0) {\r\n if (this.dashboardForm.selectedResponsibilityCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'COMPLIANCE'\r\n );\r\n } else if (this.dashboardForm.selectedRiskCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'RISK'\r\n );\r\n }\r\n }\r\n break;\r\n }\r\n this.activateSelector('', false);\r\n }\r\n\r\n remove(type: any, event: any, removeIndex?: any) {\r\n switch (type) {\r\n case 'rc':\r\n const rcIndex =\r\n this.dashboardForm.selectedResponsibilityCenters.findIndex(\r\n (rc: any) => rc.rc_id == event.rc_id\r\n );\r\n if (rcIndex !== -1) {\r\n const parentRc: any =\r\n this.dashboardForm.selectedResponsibilityCenters[rcIndex];\r\n this.dashboardForm.selectedResponsibilityCenters.splice(rcIndex, 1);\r\n\r\n if (parentRc?.item_child_ids?.length > 0) {\r\n parentRc.item_child_ids.forEach((childElement: any) => {\r\n const removeIndex =\r\n this.dashboardForm.selectedResponsibilityCenters.findIndex(\r\n (removeElement: any) => removeElement.rc_id == childElement\r\n );\r\n this.dashboardForm.selectedResponsibilityCenters.splice(\r\n removeIndex,\r\n 1\r\n );\r\n });\r\n }\r\n }\r\n if (this.dashboardForm.selectedResponsibilityCenters.length == 0) {\r\n if (this.dashboardForm.selectedResponsibilityCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'COMPLIANCE'\r\n );\r\n } else if (this.dashboardForm.selectedRiskCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'RISK'\r\n );\r\n }\r\n }\r\n break;\r\n\r\n case 'whoCanView':\r\n const reviewerIndex = this.dashboardForm.selectedViewers.findIndex(\r\n (viewer: any) => viewer.member_id == event.member_id\r\n );\r\n this.dashboardForm.selectedViewers.splice(reviewerIndex, 1);\r\n break;\r\n case 'whoCanViewGroup':\r\n const groups = this.dashboardForm.selectedGroup.findIndex(\r\n (ele: any) => ele?.group_id == event?.group_id\r\n );\r\n this.dashboardForm.selectedGroup.splice(groups, 1);\r\n break;\r\n case 'responsibilityCategories':\r\n const CCcategoryIndex =\r\n this.dashboardForm.selectedResponsibilityCategories.findIndex(\r\n (CCcategory: any) => CCcategory.category_id == event.category_id\r\n );\r\n this.dashboardForm.selectedResponsibilityCategories.splice(\r\n CCcategoryIndex,\r\n 1\r\n );\r\n if (this.dashboardForm.selectedResponsibilityCenters.length == 0) {\r\n if (this.dashboardForm.selectedResponsibilityCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'COMPLIANCE'\r\n );\r\n } else if (this.dashboardForm.selectedRiskCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'RISK'\r\n );\r\n }\r\n }\r\n break;\r\n\r\n case 'riskCategory':\r\n const riskCategoryIndex =\r\n this.dashboardForm.selectedRiskCategories.findIndex(\r\n (riskCategory: any) => riskCategory.category_id == event.category_id\r\n );\r\n if (riskCategoryIndex !== -1) {\r\n const parent: any =\r\n this.dashboardForm.selectedRiskCategories[riskCategoryIndex];\r\n this.dashboardForm.selectedRiskCategories.splice(\r\n riskCategoryIndex,\r\n 1\r\n );\r\n if (parent?.child_cat_ids?.length > 0) {\r\n parent.child_cat_ids.forEach((childElement: any) => {\r\n const removeIndex =\r\n this.dashboardForm.selectedRiskCategories.findIndex(\r\n (removeElement: any) =>\r\n removeElement.category_id == childElement\r\n );\r\n this.dashboardForm.selectedRiskCategories.splice(removeIndex, 1);\r\n });\r\n }\r\n }\r\n this.dashboardForm.selectedRiskCategories.splice(riskCategoryIndex, 1);\r\n if (this.dashboardForm.selectedResponsibilityCenters.length == 0) {\r\n if (this.dashboardForm.selectedResponsibilityCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'COMPLIANCE'\r\n );\r\n } else if (this.dashboardForm.selectedRiskCategories.length == 0) {\r\n this.selectedWidgets = this.selectedWidgets.filter(\r\n (element: any) => element.module_name != 'RISK'\r\n );\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n setList(list: any[], ids: any[], key: string) {\r\n const data: any = [];\r\n\r\n ids.forEach((element: any) => {\r\n const index = list.findIndex(\r\n (listElement: any) => listElement[key] == element\r\n );\r\n if (index !== -1) {\r\n data.push(list[index]);\r\n }\r\n });\r\n return data;\r\n }\r\n submitted = false;\r\n\r\n /**\r\n * Returns id's from a particular list elements\r\n * @param list actual selected list\r\n * @param key contains key to extract id from the list\r\n */\r\n returnIds(list: any[], key: string) {\r\n return list?.map((ele) => {\r\n if (ele[key]) {\r\n return ele[key];\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Validates the data submitted on create dashboard form\r\n */\r\n validateDashboard() {\r\n setTimeout(() => {\r\n this.submitted = true;\r\n }, 100);\r\n const event = this.dashboardForm.dashboardName;\r\n const re = / |<br>/g;\r\n this.dashboardForm.dashboardName = event.replace(re, '').trim();\r\n const description = this.dashboardForm.dashboardDescriptionText;\r\n this.dashboardForm.dashboardDescriptionText = description\r\n .replace(re, '')\r\n .trim();\r\n if (\r\n !this.dashboardForm.dashboardName ||\r\n this.dashboardForm.dashboardName.trim() == '' ||\r\n this.dashboardForm.dashboardName.length > 30 ||\r\n this.textCount.transform(this.dashboardForm?.dashboardDescriptionText) >\r\n 250 ||\r\n (this.dashboardForm?.selectedFromDate &&\r\n !this.dashboardForm?.selectedToDate) ||\r\n (this.dashboardForm.selectedResponsibilityCenters.length == 0 &&\r\n this.dashboardForm.selectedResponsibilityCategories.length == 0 &&\r\n this.dashboardForm.selectedRiskCategories.length == 0)\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * Makes an api call to create a policy\r\n * @param dashboard contains dashboardForm data\r\n */\r\n submitDashboard() {\r\n this.submitted = false;\r\n const valid = this.validateDashboard();\r\n if (!valid) {\r\n return false;\r\n }\r\n this.vLoader = true;\r\n const dashboard = this.dashboardForm;\r\n const payload: any = {\r\n dashboard_name: dashboard.dashboardName,\r\n description: [\r\n {\r\n content: dashboard.dashboardDescriptionText,\r\n attachments: [],\r\n },\r\n ],\r\n visible_to_users: this.returnIds(dashboard.selectedViewers, 'member_id'),\r\n visible_to_groups: this.returnIds(dashboard.selectedGroup, 'group_id'),\r\n responsibility_center: this.returnIds(\r\n dashboard.selectedResponsibilityCenters,\r\n 'item_id'\r\n ),\r\n responsibility_category: this.returnIds(\r\n dashboard.selectedResponsibilityCategories,\r\n 'category_id'\r\n ),\r\n risk_category: this.returnIds(\r\n dashboard.selectedRiskCategories,\r\n 'category_id'\r\n ),\r\n display_criteria:\r\n dashboard.displayCriteria === 'and'\r\n ? 'BOTH_RC_AND_CATEGORY'\r\n : 'RC_OR_CATEGORY',\r\n timeframe: {\r\n start_date: dashboard.selectedFromDate\r\n ? this.getDateFormate(dashboard?.selectedFromDate)\r\n : '',\r\n end_date: dashboard.selectedToDate\r\n ? this.getDateFormate(dashboard?.selectedToDate)\r\n : '',\r\n },\r\n email_summary: this.setFrequency('', 'export'), //setFormat\r\n widget_details: dashboard.configureWidget,\r\n };\r\n if (this.mode == 'CREATE') {\r\n this.createDashboardService.submitDashboard(payload).subscribe(\r\n (res: any) => {\r\n this.vLoader = false;\r\n // this.snackBar.show('The dashboard has been created.','info');\r\n this.isSmiley = true;\r\n this.smileyMessage = 'The dashboard has been created.';\r\n setTimeout(() => {\r\n this.isSmiley = false;\r\n this.close.emit({ mode: 'created', id: res._id });\r\n }, 3000);\r\n },\r\n (err) => {\r\n if (err.status === 409) {\r\n this.snackBar.show(\r\n 'A dashboard with this name already exists. Specify a different name for the dashboard.',\r\n 'alert'\r\n );\r\n this.vLoader = false;\r\n } else {\r\n console.error(err);\r\n this.vLoader = false;\r\n this.snackBar.show(\r\n 'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\r\n 'alert'\r\n );\r\n }\r\n }\r\n );\r\n }\r\n if (this.mode === 'EDIT') {\r\n payload.widget_update_flag = true;\r\n this.createDashboardService\r\n .updateDashboard(this.dashboardId, payload)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.vLoader = false;\r\n // this.snackBar.show('The dashboard has been updated','info');\r\n this.isSmiley = true;\r\n this.smileyMessage = 'The dashboard has been updated';\r\n setTimeout(() => {\r\n this.isSmiley = false;\r\n this.close.emit({ mode: 'updated' });\r\n }, 3000);\r\n },\r\n error: (error: any) => {\r\n console.error(error);\r\n this.vLoader = false;\r\n this.snackBar.show(\r\n 'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\r\n 'alert'\r\n );\r\n },\r\n });\r\n }\r\n }\r\n\r\n editDashboard() {\r\n if (this.dashboardId) {\r\n this.createDashboardService.fetchDashboard(this.dashboardId).subscribe(\r\n (res: any) => {\r\n const data = res;\r\n this.listDetails.nonRemovableUsersList = [res.created_by];\r\n data.visible_to_groups =\r\n data?.visible_to_groups && data.visible_to_groups.length\r\n ? data.visible_to_groups\r\n : [];\r\n this.populateDashboardForm(data);\r\n },\r\n (error) => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n populateDashboardForm(data: any) {\r\n try {\r\n console.log(' datattttta ===> ', data, this.groupList);\r\n (this.dashboardForm.dashboardName = data?.dashboard_name),\r\n (this.dashboardForm.dashboardDescriptionText =\r\n data?.description[0]?.content ?? ''),\r\n (this.dashboardForm.selectedViewers = this.setList(\r\n this.usersList,\r\n data?.visible_to_users,\r\n 'member_id'\r\n ));\r\n this.listDetails.selectedUsersList = this.dashboardForm.selectedViewers;\r\n data.visible_to_groups =\r\n data?.visible_to_groups && data?.visible_to_groups.length\r\n ? data?.visible_to_groups\r\n : [];\r\n this.dashboardForm.selectedGroup = this.setList(\r\n this.groupList,\r\n data?.visible_to_groups ?? [],\r\n 'group_id'\r\n );\r\n this.listDetails.selectedGroupList = this.dashboardForm.selectedGroup;\r\n this.dashboardForm.selectedResponsibilityCenters = this.setList(\r\n this.responsibilityCentersList,\r\n data?.responsibility_center,\r\n 'item_id'\r\n );\r\n this.dashboardForm.selectedResponsibilityCategories = this.setList(\r\n this.allComplianceCategories,\r\n data?.responsibility_category,\r\n 'category_id'\r\n );\r\n this.dashboardForm.selectedRiskCategories = this.setList(\r\n this.allRiskCategories,\r\n data?.risk_category,\r\n 'category_id'\r\n );\r\n this.dashboardForm.displayCriteria =\r\n data?.display_criteria === 'BOTH_RC_AND_CATEGORY' ? 'and' : 'or';\r\n this.dashboardForm.selectedFromDate = data?.timeframe?.start_date\r\n ? new Date(data?.timeframe?.start_date)\r\n : undefined;\r\n this.dashboardForm.selectedToDate = data?.timeframe?.end_date\r\n ? new Date(data?.timeframe?.end_date)\r\n : undefined;\r\n this.vLoader = false;\r\n this.dashboardForm.configureWidget = data.widget_details;\r\n this.selectedWidgets =\r\n data.widget_details.length > 0 ? [...new Set(data.widget_details)] : [];\r\n this.displayedWidgets =\r\n data.all_widgets.length > 0 ? [...new Set(data.all_widgets)] : [];\r\n this.setFrequency(data?.email_summary, 'import');\r\n let minToDate = this.setToDate(data?.timeframe?.start_date);\r\n this.toDatePickerConfig = { min: minToDate };\r\n this.hideToDate = true;\r\n setTimeout(() => {\r\n this.hideToDate = false;\r\n }, 20);\r\n } catch (error) {\r\n console.log('populate dashboard error =>', error);\r\n }\r\n }\r\n\r\n setFrequency(event: any, mode: any) {\r\n if (mode === 'export') {\r\n switch (this.dashboardForm.selectedFrequencyType) {\r\n case 'weekly':\r\n const weeklyValueData = this.dashboardForm?.selectedFrequencies?.map(\r\n (ele: any) => Number(ele) + 1\r\n );\r\n const weeklyValue = weeklyValueData?.join();\r\n return '2~' + weeklyValue + '~0~0';\r\n case 'monthly':\r\n const monthlyValueData = this.dashboardForm?.selectedFrequencies?.map(\r\n (ele: any) => Number(ele) + 1\r\n );\r\n const monthlyValue = monthlyValueData?.join();\r\n return (\r\n '3~' + this.dashboardForm?.frequencyDate + '~' + monthlyValue + '~0'\r\n );\r\n case 'quarterly':\r\n const quarterlyValueData =\r\n Number(this.dashboardForm.selectedFrequencies) + 1;\r\n return (\r\n '7~' +\r\n this.dashboardForm.frequencyDate +\r\n '~' +\r\n quarterlyValueData +\r\n '~0'\r\n );\r\n }\r\n }\r\n if (mode === 'import') {\r\n const val = event.split('~');\r\n switch (val[0]) {\r\n case '2':\r\n {\r\n let stringVal = 'Every ';\r\n this.dashboardForm.selectedFrequencyType = 'weekly';\r\n this.dashboardForm.selectedFrequencies = val[1]\r\n ?.split(',')\r\n ?.map((element: any) => Number(element) - 1);\r\n this.dashboardForm.selectedFrequencies?.forEach(\r\n (dayIndex: any, index: any) => {\r\n stringVal +=\r\n index === 0\r\n ? this.dayNames[dayIndex]\r\n : ', ' + this.dayNames[dayIndex];\r\n }\r\n );\r\n this.dashboardForm.frequencyMessage = stringVal;\r\n }\r\n\r\n break;\r\n case '3':\r\n {\r\n let stringVal = 'every ';\r\n this.dashboardForm.selectedFrequencyType = 'monthly';\r\n this.dashboardForm.frequencyDate = val[1];\r\n this.dashboardForm.selectedFrequencies = val[2]\r\n ?.split(',')\r\n ?.map((element: any) => Number(element) - 1);\r\n this.dashboardForm.selectedFrequencies.forEach(\r\n (monthIndex: any, index: any) => {\r\n stringVal +=\r\n index === 0\r\n ? this.monthNames[monthIndex]\r\n : ', ' + this.monthNames[monthIndex];\r\n }\r\n );\r\n let monthDateName;\r\n if (this.dashboardForm.frequencyDate == '1') {\r\n monthDateName = '1st';\r\n } else if (this.dashboardForm.frequencyDate == '2') {\r\n monthDateName = '2nd';\r\n } else if (this.dashboardForm.frequencyDate == '3') {\r\n monthDateName = '3rd';\r\n } else {\r\n monthDateName = this.dashboardForm.frequencyDate + 'th';\r\n }\r\n this.dashboardForm.frequencyMessage =\r\n monthDateName + ' of ' + stringVal;\r\n }\r\n break;\r\n case '7':\r\n {\r\n let stringVal = 'every ';\r\n this.dashboardForm.selectedFrequencyType = 'quarterly';\r\n this.dashboardForm.frequencyDate = val[1];\r\n this.dashboardForm.selectedFrequencies =\r\n Number(val[2].split(',')[0]) - 1;\r\n stringVal += this.quarters[this.dashboardForm.selectedFrequencies];\r\n let monthDateName;\r\n if (this.dashboardForm.frequencyDate == '1') {\r\n monthDateName = '1st';\r\n } else if (this.dashboardForm.frequencyDate == '2') {\r\n monthDateName = '2nd';\r\n } else if (this.dashboardForm.frequencyDate == '3') {\r\n monthDateName = '3rd';\r\n } else {\r\n monthDateName = this.dashboardForm.frequencyDate + 'th';\r\n }\r\n this.dashboardForm.frequencyMessage =\r\n monthDateName + ' of ' + stringVal;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n //your code to update the model\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setPermission(roleActions: any) {\r\n let ifExistRisk = roleActions?.find((el: any) => el.moduleName == 'risk');\r\n ifExistRisk?.subModule?.forEach((module: any) => {\r\n module?.permissions?.forEach((permission: any) => {\r\n switch (permission?.code) {\r\n case 'RRMR': {\r\n if (permission?.defaultPermission == 1 || permission?.enable == 1) {\r\n this.isManageRisk = true;\r\n }\r\n break;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","<app-snack-bar></app-snack-bar>\r\n<div class=\"create-dashboard\" *ngIf=\"!openConfigureWidgets\">\r\n <div class=\"create-dashboard-container vx-d-flex vx-justify-end\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"more-option\" *ngIf=\"activeSelector && activeSelector!=='name'\">\r\n <app-user-list *ngIf=\"activeSelector==='whoCanView'\"\r\n (saveSelectedUsers)=\"saveSelectedList('whoCanView',$event)\"\r\n (closeUserList)=\"activateSelector('', false)\" [totalPages]=\"totalPages\" [totalList]=\"totalList\"\r\n [listDetails]=\"listDetails\" [totalgroupscount]=\"totalgroups\" [feature]=\"feature\" ></app-user-list>\r\n <app-responsibility-center *ngIf=\"activeSelector==='rcList'\"\r\n [responsibilityCentersList]=\"responsibilityCentersList\" [radioSelection]=\"false\"\r\n [selectedResponsibilityCenters]=\"dashboardForm.selectedResponsibilityCenters\" [rcIdKey]=\"'item_id'\"\r\n (saveSelectedList)=\"saveSelectedList('rc',$event)\" (closeRcList)=\"activateSelector('', false)\">\r\n </app-responsibility-center>\r\n <app-categories *ngIf=\"activeSelector==='responsibilityCategories'\"\r\n [categoryList]=\"responsibilityCategoriesTree\" [allCategories]=\"allComplianceCategories\"\r\n [categoryIdKey]=\"'category_id'\" [selectedCategories]=\"dashboardForm.selectedResponsibilityCategories\"\r\n (saveSelectedCategory)=\"saveSelectedList('responsibilityCategories',$event)\"\r\n (closeCategoriesList)=\"activateSelector('', false)\"></app-categories>\r\n <app-risk-categories *ngIf=\"activeSelector==='riskCategories'\" [categoryList]=\"riskCategoryList\"\r\n [allCategories]=\"allRiskCategories\" [categoryIdKey]=\"'category_id'\"\r\n [selectedCategories]=\"dashboardForm.selectedRiskCategories\"\r\n (saveSelectedCategory)=\"saveSelectedList('riskCategory',$event)\"\r\n (closeCategoriesList)=\"activateSelector('', false)\"></app-risk-categories>\r\n\r\n <app-frequency *ngIf=\"activeSelector==='frequency'\" (closeFrequencyPopup)=\"activateSelector('', false)\"\r\n (saveFrequency)=\"saveFrequency($event)\" [savedFrequencyTab]=\"dashboardForm.selectedFrequencyType\"\r\n [selectedDate]=\"dashboardForm.frequencyDate\" [savedFrequencies]=\"dashboardForm.selectedFrequencies\">\r\n </app-frequency>\r\n </div>\r\n <div class=\"vx-dialog-container side-dialog\">\r\n <app-loader-inline *ngIf=\"vLoader\"></app-loader-inline>\r\n\r\n <div class=\"form-group\" [class.disabled]=\"disabled\">\r\n <div class=\"vx-dialog-body-container\" (scroll)=\"animateImage()\" [class.hidden-scroll]=\"popoverService.stopScroll\">\r\n <!-- Dashboard Name -->\r\n <div class=\"form-group-row\" [class.disabled]=\"activeSelector && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/what.svg\" *ngIf=\"!dashboardForm.dashboardName || activeSelector === 'name'\" alt=\"\">\r\n <svg class=\"checkIcon\" *ngIf=\"dashboardForm.dashboardName && activeSelector !== 'name'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">Dashboard Name <span class=\"require vx-txt-red vx-fs-16 vx-fw-400\">*</span></label>\r\n <div class=\"vx-input-group\">\r\n <input class=\"textField\" placeholder=\"Add dashboard name (Max limit: 30 characters).\" [(ngModel)]=\"dashboardForm.dashboardName\" (keydown)=\"activeSelector = 'name'\" (focusin)=\"activateSelector('name',true)\" (focusout)=\"activateSelector('name',false)\" />\r\n \r\n <span class=\"counter\" *ngIf=\"dashboardForm?.dashboardName?.length > 0\">{{30 - dashboardForm.dashboardName.length}}</span>\r\n </div>\r\n\r\n <p class=\"vx-txt-error\" [appScrollInView]=\"true\" *ngIf=\"submitted && ( dashboardForm?.dashboardName?.length>30 || !dashboardForm?.dashboardName)\">{{(dashboardForm.dashboardName.length>30)?'You have exceeded the maximum character limit of 30 characters.':'Please enter a name for this Dashboard.'}}</p>\r\n\r\n <div class=\"vx-input-group vx-mt-2\">\r\n <vcomply-editor [editorConfig]=\"dashboardDescription\" [(ngModel)]=\"dashboardForm.dashboardDescriptionText\"></vcomply-editor>\r\n <span class=\"counter\" *ngIf=\"dashboardForm?.dashboardDescriptionText?.length > 0\">{{250 - (dashboardForm?.dashboardDescriptionText | textCount)}}</span>\r\n </div>\r\n\r\n <p class=\"vx-txt-error\" [appScrollInView]=\"true\" *ngIf=\"submitted && (dashboardForm?.dashboardDescriptionText | textCount) > 250\">You have exceeded the maximum character limit of 250 characters.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Who -->\r\n <div class=\"form-group-row\" [class.active]=\"activeSelector === 'whoCanView'\" [class.disabled]=\" activeSelector && activeSelector !== 'whoCanView' && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/who.svg\" *ngIf=\"dashboardForm?.selectedViewers?.length==0 || activeSelector === 'whoCanView'\" alt=\"\">\r\n <svg class=\"checkIcon\" *ngIf=\"dashboardForm?.selectedViewers?.length>0 && activeSelector !== 'whoCanView'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">Who can view this dashboard?<span class=\"require vx-txt-red vx-fs-16 vx-fw-400\">*</span></label>\r\n <div *ngIf=\"dashboardForm?.selectedViewers?.length==0\" class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" (click)=\"activateSelector('whoCanView', true)\">\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">Who can view this dashboard?</div>\r\n </div>\r\n\r\n <div *ngIf=\"dashboardForm?.selectedViewers?.length>0\" class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\r\n <ng-container *ngIf=\"!groupsEnabled\" id=\"onlyuserslist\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngFor=\"let user of dashboardForm?.selectedViewers?.slice(0,1)\">\r\n <i class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\" *ngIf=\"!listDetails.nonRemovableUsersList.includes(user.member_id)\" (click)=\"remove('whoCanView',user)\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"user.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{user.member_name}}</span>\r\n <button *ngIf=\"dashboardForm?.selectedViewers?.length > 1 && !groupsEnabled\" class=\"countBtn greenBg vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"userList.popover()\" placement=\"left\">+{{dashboardForm?.selectedViewers?.slice(1).length}}</button>\r\n </div>\r\n <app-popover #userList [dontCloseonClick]=\"true\" >\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let user of dashboardForm?.selectedViewers | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"user?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" *ngIf=\"!listDetails.nonRemovableUsersList.includes(user.member_id) && !groupsEnabled\" (click)=\"remove('whoCanView',user)\"></i> {{ user?.member_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </ng-container>\r\n\r\n <div *ngIf=\"groupsEnabled\" class=\"vx-d-flex vx-align-center\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt\">USER(S)</span>\r\n <button class=\"countBtn greenBg vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"userCount.popover()\" placement=\"left\">{{dashboardForm?.selectedViewers?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"dashboardForm?.selectedGroup?.length && dashboardForm?.selectedViewers?.length\">&</span>\r\n <div *ngIf=\"dashboardForm?.selectedGroup?.length\" id=\"usersandgroups\" class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt\">USER GROUP(S)</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"groupCount.popover()\" placement=\"right\">{{dashboardForm?.selectedGroup?.length}}</button>\r\n </div>\r\n\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let data of dashboardForm?.selectedViewers\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"data.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" *ngIf=\"!listDetails.nonRemovableUsersList.includes(data.member_id)\" (click)=\"remove('whoCanView',data)\"></i> {{data.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n \r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let data of dashboardForm?.selectedGroup\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"data.group_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"remove('whoCanViewGroup',data)\" ></i> {{data.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <button *ngIf=\"activeSelector !== 'whoCanView'\" class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"activateSelector('whoCanView',true)\">\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div class=\"form-group-row\" [class.active]=\"activeSelector === 'rcList'\" [class.disabled]=\" activeSelector && activeSelector !== 'rcList' && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"dashboardForm?.selectedResponsibilityCenters?.length==0 || activeSelector === 'rcList'\" src=\"./assets/images/responsibility-center.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm?.selectedResponsibilityCenters?.length>0 && activeSelector !== 'rcList'\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">RESPONSIBILITY CENTER(S)</label>\r\n <div *ngIf=\"dashboardForm?.selectedResponsibilityCenters?.length==0\" class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" (click)=\"activateSelector('rcList', true)\" [class.error]=\"submitted && dashboardForm?.selectedResponsibilityCenters?.length==0 && dashboardForm?.selectedResponsibilityCategories?.length==0 && dashboardForm?.selectedRiskCategories?.length==0\">\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">Select the Responsibility Center(s) that you would like<br>displayed in the Dashboard, if any.</div>\r\n </div>\r\n\r\n <div *ngIf=\"dashboardForm?.selectedResponsibilityCenters?.length>0\" class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngFor=\"let rc of dashboardForm?.selectedResponsibilityCenters?.slice(0,1)\">\r\n <i class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\" (click)=\"remove('rc',rc)\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"rc.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rc.item_name}}</span>\r\n <button *ngIf=\"dashboardForm?.selectedResponsibilityCenters?.length > 1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"rcList.popover()\" placement=\"left\">+{{dashboardForm?.selectedResponsibilityCenters?.slice(1).length}}</button>\r\n\r\n <app-popover #rcList [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let rc of dashboardForm?.selectedResponsibilityCenters | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"rc?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"remove('rc',rc)\"></i> {{ rc?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <button *ngIf=\"activeSelector !== 'rcList'\" class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"activateSelector('rcList',true)\">\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Program -->\r\n <div class=\"form-group-row\" [class.active]=\"activeSelector === 'responsibilityCategories'\" [class.disabled]=\" activeSelector && activeSelector !== 'responsibilityCategories' && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"dashboardForm?.selectedResponsibilityCategories?.length==0 || activeSelector === 'responsibilityCategories'\" src=\"./assets/images/category.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm?.selectedResponsibilityCategories?.length>0 && activeSelector !== 'responsibilityCategories'\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">PROGRAM</label>\r\n <div *ngIf=\"dashboardForm?.selectedResponsibilityCategories?.length==0\" class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" (click)=\"activateSelector('responsibilityCategories', true)\" [class.error]=\"submitted && dashboardForm?.selectedResponsibilityCenters?.length==0 && dashboardForm?.selectedResponsibilityCategories?.length==0 && dashboardForm?.selectedRiskCategories?.length==0\">\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">Select the Program(s) that you would like displayed in the<br>Dashboard, if any.</div>\r\n </div>\r\n\r\n <div *ngIf=\"dashboardForm?.selectedResponsibilityCategories?.length>0\" class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngFor=\"let rCategory of dashboardForm?.selectedResponsibilityCategories?.slice(0,1)\">\r\n <i class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\" (click)=\"remove('responsibilityCategories',rCategory)\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"rCategory.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{rCategory.item_name}}</span>\r\n <button *ngIf=\"dashboardForm?.selectedResponsibilityCategories?.length > 1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"rCategoryList.popover()\" placement=\"left\">+{{dashboardForm?.selectedResponsibilityCategories?.slice(1).length}}</button>\r\n\r\n <app-popover #rCategoryList [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let rCategory of dashboardForm?.selectedResponsibilityCategories | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"rCategory?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"remove('responsibilityCategories',rCategory)\"></i> {{ rCategory?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <button *ngIf=\"activeSelector !== 'responsibilityCategories'\" class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"activateSelector('responsibilityCategories',true)\">\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Risk Category -->\r\n <div class=\"form-group-row\" [class.active]=\"activeSelector === 'riskCategories'\" *ngIf=\"showRiskCategory && isManageRisk\" [class.disabled]=\" activeSelector && activeSelector !== 'riskCategories' && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"dashboardForm?.selectedRiskCategories?.length==0 || activeSelector === 'riskCategories'\" src=\"./assets/images/category.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm?.selectedRiskCategories?.length>0 && activeSelector !== 'riskCategories'\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\" *ngIf=\"isManageRisk\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">RISK CATEGORIES</label>\r\n <div *ngIf=\"dashboardForm?.selectedRiskCategories?.length==0\" class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" (click)=\"activateSelector('riskCategories', true)\" [class.error]=\"submitted && dashboardForm?.selectedResponsibilityCenters?.length==0 && dashboardForm?.selectedResponsibilityCategories?.length==0 && dashboardForm?.selectedRiskCategories?.length==0\">\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">Select the Risk Categories that you would like displayed<br>in the Dashboard, if any.</div>\r\n </div>\r\n\r\n <div *ngIf=\"dashboardForm?.selectedRiskCategories?.length>0\" class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngFor=\"let riskCategory of dashboardForm?.selectedRiskCategories?.slice(0,1)\">\r\n <i class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\" (click)=\"remove('riskCategory',riskCategory)\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [arTooltip]=\"riskCategory.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{riskCategory.category_name}}</span>\r\n <button *ngIf=\"dashboardForm?.selectedRiskCategories?.length > 1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"riskList.popover()\" placement=\"left\">+{{dashboardForm?.selectedRiskCategories?.slice(1).length}}</button>\r\n\r\n <app-popover #riskList [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let riskCategory of dashboardForm?.selectedRiskCategories | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\" [arTooltip]=\"riskCategory?.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <i class=\"icons cross-icon\" (click)=\"remove('riskCategory',riskCategory)\"></i> {{ riskCategory?.category_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <button *ngIf=\"activeSelector !== 'riskCategories'\" class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"(click)=\"activateSelector('riskCategories',true)\">\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Display Criteria -->\r\n <div class=\"form-group-row\" [class.disabled]=\" activeSelector && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"dashboardForm?.displayCriteria?.length==0\" src=\"./assets/images/who.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm?.displayCriteria?.length>0 \" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">DISPLAY CRITERIA</label>\r\n <div class=\"radio-group\" *ngIf=\"showCriteria\" >\r\n <app-cs-radio [checked]=\"dashboardForm.displayCriteria=='or'\"\r\n (checkedEvent)=\"dashboardForm.displayCriteria='or'\">\r\n Those Items that have been assigned to either the selected Responsibility Center(s) or the selected Categories.</app-cs-radio>\r\n\r\n <app-cs-radio [checked]=\"dashboardForm.displayCriteria=='and'\"\r\n (checkedEvent)=\"dashboardForm.displayCriteria='and'\">\r\n Those Items that have been assigned to both the selected Responsibility Center(s) and the selected Categories.</app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Timeframe -->\r\n <div class=\"form-group-row\" \r\n [class.disabled]=\" activeSelector && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"!dashboardForm?.selectedFromDate || !dashboardForm?.selectedToDate\" src=\"./assets/images/when.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm?.selectedFromDate && dashboardForm?.selectedToDate\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block vx-mb-4\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">TIMEFRAME</label>\r\n <label class=\"vx-control-panel-sub-label\">Select how long you would like the information selected to be displayed for. If no timeframe is selected, the information will be displayed permanently.</label>\r\n <div class=\"input-group vx-d-flex vx-justify-between\">\r\n <div class=\"date-select\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [value]=\"dashboardForm?.selectedFromDate | date: 'dd MMM yyyy'\" [placeholder]=\"'From'\" (click)=\"openFromDatePicker()\" readonly>\r\n <dp-date-picker #fromDatePicker [(ngModel)]=\"dashboardForm.selectedFromDate\" placeholder=\"Select Date\" (onSelect)=\"closeFromDatePicker(); datePickerOverlay = false\" [config]=\"fromDatePickerConfig\"></dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeFromDatePicker()\" *ngIf=\"datePickerOverlay\">\r\n </div>\r\n </div>\r\n <div class=\"date-select\" *ngIf=\"!hideToDate\" [class.disabled]=\"!dashboardForm?.selectedFromDate \">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [value]=\"dashboardForm?.selectedToDate | date: 'dd MMM yyyy'\" [placeholder]=\"'To'\" (click)=\"openToDatePicker()\" readonly>\r\n <dp-date-picker #toDatePicker [(ngModel)]=\"dashboardForm.selectedToDate\" placeholder=\"Select Date\" (onSelect)=\"closeToDatePicker(); datePickerOverlay = false\" [config]=\"toDatePickerConfig\"></dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeToDatePicker()\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n </div>\r\n <p class=\"vx-txt-error\" [appScrollInView]=\"true\" *ngIf=\"submitted && (dashboardForm.selectedFromDate && (!dashboardForm.selectedToDate))\">Select a time-frame.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Email Summary -->\r\n <div class=\"form-group-row\" [class.active]=\"activeSelector === 'frequency'\" [class.disabled]=\" activeSelector && activeSelector !== 'frequency' && activeSelector !== 'name'\">\r\n <div class=\"image\">\r\n <img *ngIf=\"!dashboardForm.frequencyMessage\" src=\"./assets/images/send-resolution.svg\" alt=\"\">\r\n <svg *ngIf=\"dashboardForm.frequencyMessage\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group vx-d-block\">\r\n <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-d-block vx-tt-uppercase vx-mb-2 vx-w-100 vx-lh-4\">Email Summaries</label>\r\n <label class=\"vx-control-panel-sub-label\">If you would like to send a summary of this Dashboard, please select a frequency(By default VComply sends a weekly Summary).</label>\r\n <div *ngIf=\"!dashboardForm.frequencyMessage\" class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\" (click)=\"activateSelector('frequency', true)\">\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">Email Summaries</div>\r\n </div>\r\n\r\n <div *ngIf=\"dashboardForm.frequencyMessage\" class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\">\r\n <div class=\"selectBoxText vx-fs-13 vx-paragraph-txt\" [arTooltip]=\"dashboardForm.frequencyMessage\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory] =\"false\" [innerHTML]=\"dashboardForm.frequencyMessage\"></div>\r\n\r\n <button *ngIf=\"dashboardForm.frequencyMessage && activeSelector !== 'frequency'\" class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"activateSelector('frequency',true)\">\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"button-block\">\r\n <button class=\"vx-btn block primary\" [disabled]=\"activeSelector && activeSelector !== 'name'\" (click)=\"configureDashboard()\">Next: Configure Widgets</button>\r\n </div>\r\n </div>\r\n\r\n\r\n <button class=\"close-dialog\" type=\"button\" [disabled]=\"activeSelector && activeSelector !== 'name'\" (click)=\"close.emit({mode:'discard'})\" [arTooltip]=\"'[Esc] to close'\" placement=\"left\" type=\"black\" delay=\"0\" [tooltipMandatory] =\"true\">\r\n <i class=\"icons\"></i>\r\n </button>\r\n <div class=\"global-confirmation-alert\" *ngIf=\"submitted && dashboardForm?.selectedResponsibilityCenters?.length==0 && \r\n dashboardForm?.selectedResponsibilityCategories?.length==0 &&\r\n dashboardForm?.selectedRiskCategories?.length==0\">\r\n <div class=\"global-confirmation-alert-top\">\r\n <span class=\"icon-block\">\r\n <i class=\"icons\"></i>\r\n </span>\r\n <p class=\"text\" *ngIf=\"showRiskCategory\">Select a Responsibility Center, Program or Risk Category.</p>\r\n <p class=\"text\" *ngIf=\"!showRiskCategory\">Select a Responsibility Center or Program.</p>\r\n\r\n </div>\r\n <div class=\"global-confirmation-alert-bottom\">\r\n <p class=\"message\"></p>\r\n <div class=\"button-group\">\r\n <button class=\"fill\" type=\"button\" (click)=\"submitted=false\">OKAY</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<app-smiley-dialog *ngIf=\"isSmiley\" [message]=\"smileyMessage\"></app-smiley-dialog>\r\n\r\n<app-configure-widgets *ngIf=\"openConfigureWidgets\" [mode]=\"mode\" [displayedWidgets]=\"displayedWidgets\" showRisk]=\"showRiskWidgets\" [showCompliance]=\"showComplianceWidgets\" [selectedWidgetsData]=\"selectedWidgets\" (widgetsDataModified)=\"setSelectedWidgets($event)\" (closeConfigureWidgets)=\"closeConfigureWidgets($event)\"></app-configure-widgets>","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml'\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitizer:DomSanitizer){}\r\n transform(html: any) {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, forwardRef, Input, OnInit, ViewChild, QueryList, ContentChildren } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { nanoid } from 'nanoid';\r\n// import { CsOptionComponent } from '../cs-option/cs-option.component';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'cs-select',\r\n templateUrl: './cs-select.component.html',\r\n styleUrls: ['./cs-select.component.less'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CsSelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class CsSelectComponent implements OnInit {\r\n @Input() dropdownLabel!: string;\r\n @Input() dropdownSubLabel!: string;\r\n @Input() isRequired!: string;\r\n @Input() placeholder!: string;\r\n\r\n // @ContentChildren(CsOptionComponent) op !: QueryList<CsOptionComponent>;\r\n\r\n dropdownToggle!: boolean;\r\n positionReset!: boolean;\r\n getLeft!: number;\r\n getTop!: number;\r\n getWidth!: number;\r\n maxWidth!: number;\r\n\r\n valuePlaceholder!: string;\r\n private optionList!: ElementRef;\r\n\r\n @ViewChild('optionList') set content(content: ElementRef) {\r\n if (content) {\r\n // initially setter gets called with undefined\r\n this.optionList = content;\r\n }\r\n }\r\n name!: string;\r\n val!: string;\r\n showOptions!: boolean;\r\n constructor() {\r\n this.name = nanoid();\r\n this.valuePlaceholder = '';\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n set RadioVal(val: any) {\r\n if (val !== undefined && val !== null && this.val !== val) {\r\n this.val = val;\r\n console.log('VALUE', this.val);\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.RadioVal = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n openDropdown(event: any): void {\r\n this.dropdownToggle = true;\r\n setTimeout(() => {\r\n const dropdown = event.target.getBoundingClientRect();\r\n const selectOption = this.optionList.nativeElement.offsetHeight;\r\n if (dropdown.top + selectOption * 2 > window.innerHeight) {\r\n this.getTop = dropdown.top - selectOption;\r\n } else {\r\n this.getTop = dropdown.top + dropdown.height;\r\n }\r\n this.getLeft = dropdown.left;\r\n this.getWidth = dropdown.width;\r\n this.maxWidth = dropdown.width * 1.25;\r\n this.showOptions = true;\r\n }, 10);\r\n }\r\n closeDropdown(): void {\r\n this.dropdownToggle = false;\r\n }\r\n}\r\n","<div class=\"selection-wrap\">\r\n <label class=\"label\" *ngIf=\"dropdownLabel != undefined\">\r\n {{ dropdownLabel }}\r\n <span class=\"sub-label\">{{ dropdownSubLabel }}</span>\r\n <span class=\"required\" *ngIf=\"isRequired\">*</span>\r\n </label>\r\n <div class=\"input-group\">\r\n <span class=\"value\" (click)=\"openDropdown($event)\" (keyup.enter)=\"openDropdown($event)\" tabindex=\"0\" [attr.aria-placeholder]=\"placeholder\" [innerHTML]=\"valuePlaceholder | safeHtml\"></span>\r\n </div>\r\n <div class=\"overlay\" *ngIf=\"dropdownToggle === true\" (click)=\"closeDropdown()\"></div>\r\n <div class=\"select-options\" *ngIf=\"dropdownToggle === true\" #optionList (keyup.Escape)=\"closeDropdown()\"\r\n (keyup.enter)=\"closeDropdown()\" (click)=\"closeDropdown()\" [style.top.px]=\"getTop\" [style.left.px]=\"getLeft\"\r\n [style.width.px]=\"getWidth\" [class.active]=\"showOptions\">\r\n <ng-content select=\"cs-option\"></ng-content>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CsSelectService {\r\n color: any;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CsSelectService } from '../../services/cs-select.service';\r\nimport { CsSelectComponent } from '../cs-select/cs-select.component';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'cs-option',\r\n templateUrl: './cs-option.component.html',\r\n styleUrls: ['./cs-option.component.less'],\r\n})\r\nexport class CsOptionComponent implements OnInit {\r\n @Input() value!: string;\r\n @ViewChild('options') option!: ElementRef;\r\n @Input() color!: any;\r\n constructor(public csSelect: CsSelectComponent, public colorSelector: CsSelectService) {\r\n this.value = '';\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n change(event: any): void {\r\n if (this.option) {\r\n setTimeout(() => {\r\n this.csSelect.valuePlaceholder = this.option.nativeElement.innerHTML;\r\n this.colorSelector.color = this.color;\r\n console.log(this.color);\r\n }, 1);\r\n }\r\n this.csSelect.writeValue(this.value);\r\n }\r\n}\r\n","<div class=\"list\">\r\n <label>\r\n <input type=\"radio\" tabindex=\"0\" [value]=\"value\" [name]=\"csSelect.name\" (click)=\"change($event)\" [checked]=\"csSelect.val === this.value\" />\r\n <span class=\"value\" #options>\r\n <ng-content></ng-content>\r\n </span>\r\n </label>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CsSelectComponent } from './cs-select/cs-select.component';\r\nimport { CsOptionComponent } from './cs-option/cs-option.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SafeHtmlPipe } from './safe-html.pipe';\r\n\r\n@NgModule({\r\n declarations: [CsSelectComponent, CsOptionComponent, SafeHtmlPipe],\r\n imports: [FormsModule, CommonModule],\r\n exports: [CsSelectComponent, CsOptionComponent],\r\n})\r\nexport class SelectModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PaginationComponent } from './pagination.component';\r\n\r\n@NgModule({\r\n declarations: [PaginationComponent],\r\n imports: [CommonModule],\r\n exports: [PaginationComponent],\r\n})\r\nexport class PaginationModule {}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-switch',\r\n templateUrl: './cs-switch.component.html',\r\n styleUrls: ['./cs-switch.component.less'],\r\n})\r\nexport class CsSwitchComponent implements OnInit {\r\n @Input() disabled!: boolean;\r\n @Input() ngValue: any;\r\n @Input() value: any;\r\n @Output() ngValueChange = new EventEmitter<any>();\r\n @Input() tooltipMessage: any;\r\n @Input() position: any;\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n // console.log(this.value);\r\n }\r\n valueChanged() {\r\n this.ngValueChange.emit(this.ngValue);\r\n }\r\n}\r\n","<label class=\"cs-switch\" [class.top]=\"position == 'top'\">\r\n <!-- [class.large]=\"large\" -->\r\n <span class=\"value\">\r\n <span [innerHTML]=\"value\" *ngIf=\"value != undefined\"></span>\r\n <!-- <span class=\"notification\" *ngIf=\"!tooltipMessage\" [arTooltip]=\"tooltipMessage\" placement=\"bottom-right\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\r\n <i class=\"vc-icons\"></i>\r\n </span> -->\r\n </span>\r\n <!-- [class.last]=\"last\" -->\r\n <span class=\"switch\" *ngIf=\"tooltipMessage === '' || tooltipMessage === undefined\">\r\n <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\r\n <span class=\"switch-box\">\r\n <span class=\"switch-ball\"></span>\r\n </span>\r\n </span>\r\n <span\r\n class=\"switch\"\r\n *ngIf=\"tooltipMessage !== '' && tooltipMessage !== undefined\"\r\n [arTooltip]=\"tooltipMessage\"\r\n placement=\"bottom-right\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >\r\n <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\r\n <span class=\"switch-box\">\r\n <span class=\"switch-ball\"></span>\r\n </span>\r\n </span>\r\n</label>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-radio-group',\r\n templateUrl: './cs-radio-group.component.html',\r\n styleUrls: ['./cs-radio-group.component.less'],\r\n})\r\nexport class CsRadioGroupComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<app-cs-radio>fefre</app-cs-radio>\r\n<app-cs-radio>fefre</app-cs-radio>\r\n<app-cs-radio>fefre</app-cs-radio>\r\n<app-cs-radio>fefre</app-cs-radio>\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n constructor(private elementRef: ElementRef) {}\r\n @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\r\n\r\n @HostListener('document:click', ['$event.target']) onMouseEnter(targetElement: any) {\r\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.clickOutside.emit(null);\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'pascal',\r\n})\r\nexport class PascalPipe implements PipeTransform {\r\n transform(value: string, ...args: unknown[]): unknown {\r\n if (typeof value !== 'string') {\r\n return value;\r\n }\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cs-select',\r\n templateUrl: './cs-select.component.html',\r\n styleUrls: ['./cs-select.component.less'],\r\n})\r\nexport class CsSelectComponent implements OnChanges {\r\n @Input() dataList!: any[];\r\n @Input() dropdownLabel!: string;\r\n @Input() displayProperty!: string;\r\n @Input() selectedValue!: string;\r\n @Input() isRequired!: boolean;\r\n @Input() dropdownSubLabel!: string;\r\n @Input() disabled!: boolean;\r\n @ViewChild('option') option!: ElementRef;\r\n\r\n @Output() selectedData = new EventEmitter();\r\n @Output() selectedValueChange = new EventEmitter();\r\n @Input() placeholder: any;\r\n @Input() stylex: any;\r\n @Input() valueKey: any;\r\n @Input() multipleSelect: any;\r\n @Input() colorProperty!: string;\r\n\r\n @Input() colorSelected!: string;\r\n colorCode!: string;\r\n\r\n dropdownOption = false;\r\n positionReset!: boolean;\r\n getLeft!: number;\r\n getTop!: number;\r\n getWidth!: number;\r\n maxWidth!: number;\r\n activeDoropdown = false;\r\n\r\n private optionList!: ElementRef;\r\n\r\n @ViewChild('optionList') set content(content: ElementRef) {\r\n if (content) {\r\n // initially setter gets called with undefined\r\n this.optionList = content;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.selectedValue) {\r\n this.selectedValue = this.selectedValue || '--';\r\n }\r\n }\r\n\r\n openDropdown(event: any): void {\r\n this.dropdownOption = true;\r\n setTimeout(() => {\r\n const dropdown = event.target.getBoundingClientRect();\r\n const selectOption = this.optionList.nativeElement.offsetHeight;\r\n if (dropdown.top + selectOption * 2 > window.innerHeight) {\r\n this.getTop = dropdown.top - selectOption;\r\n } else {\r\n this.getTop = dropdown.top + dropdown.height;\r\n }\r\n this.getLeft = dropdown.left;\r\n this.getWidth = dropdown.width;\r\n this.maxWidth = dropdown.width * 1.25;\r\n }, 10);\r\n setTimeout(() => {\r\n this.activeDoropdown = true;\r\n }, 100);\r\n }\r\n selectOption(selectedData: any) {\r\n if (typeof selectedData === 'object') {\r\n this.selectedValue = selectedData[this.displayProperty];\r\n this.colorSelected = selectedData[this.colorProperty];\r\n } else {\r\n this.selectedValue = selectedData;\r\n }\r\n this.selectedData.emit(selectedData);\r\n this.dropdownOption = false;\r\n }\r\n closeDropdown() {\r\n this.dropdownOption = false;\r\n }\r\n}\r\n","<div class=\"input-group\" (clickOutside)=\"dropdownOption = false\">\r\n <label *ngIf=\"dropdownLabel != undefined\">\r\n {{ dropdownLabel }} <span class=\"sub-label\">{{ dropdownSubLabel }}</span> <span class=\"required\" *ngIf=\"isRequired\">*</span></label\r\n >\r\n <div class=\"custom-select-box\" [class.disabled]=\"disabled\">\r\n <input\r\n type=\"text\"\r\n [class.line]=\"stylex\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"selectedValue | pascal\"\r\n readonly\r\n (click)=\"openDropdown($event)\"\r\n (keyup.enter)=\"openDropdown($event)\"\r\n (keyup.arrowup)=\"openDropdown($event)\"\r\n (keyup.arrowdown)=\"openDropdown($event)\"\r\n *ngIf=\"!colorProperty\"\r\n />\r\n <span class=\"show-label\" *ngIf=\"colorProperty\" (click)=\"openDropdown($event)\">\r\n <span class=\"label\" [innerHTML]=\"selectedValue\" [style.backgroundColor]=\"colorSelected + '1A'\" [style.color]=\"colorSelected\"></span>\r\n </span>\r\n <span class=\"arrow\" [class.line]=\"stylex\">\r\n <i class=\"risk-icons\"></i>\r\n </span>\r\n <div class=\"overlay active\" *ngIf=\"dropdownOption === true\" (click)=\"closeDropdown()\"></div>\r\n <ul\r\n class=\"list-of-option\"\r\n *ngIf=\"dropdownOption === true && !colorProperty\"\r\n #optionList\r\n (keyup.Escape)=\"closeDropdown()\"\r\n [style.top.px]=\"getTop\"\r\n [style.left.px]=\"getLeft\"\r\n [style.min-width.px]=\"getWidth\"\r\n [style.max-width.px]=\"maxWidth\"\r\n [class.active]=\"activeDoropdown\"\r\n >\r\n <li *ngFor=\"let data of dataList\">\r\n <label>\r\n <input type=\"radio\" [value]=\"data[valueKey]\" name=\"sliceLabel\" (change)=\"selectOption(data)\" #option (keyup.enter)=\"closeDropdown()\" class=\"pointer-none\" />\r\n <span (click)=\"closeDropdown(); selectOption(data)\" *ngIf=\"displayProperty && displayProperty !== ''\" class=\"value\">{{ data[displayProperty] }}</span>\r\n <span (click)=\"closeDropdown(); selectOption(data)\" *ngIf=\"!displayProperty || displayProperty === ''\" class=\"value\">{{ data }}</span>\r\n </label>\r\n </li>\r\n </ul>\r\n <ul\r\n class=\"list-of-option\"\r\n *ngIf=\"dropdownOption === true && colorProperty\"\r\n #optionList\r\n (keyup.Escape)=\"closeDropdown()\"\r\n [style.top.px]=\"getTop\"\r\n [style.left.px]=\"getLeft\"\r\n [style.min-width.px]=\"getWidth\"\r\n [style.max-width.px]=\"maxWidth\"\r\n [class.active]=\"activeDoropdown\"\r\n >\r\n <li *ngFor=\"let data of dataList\">\r\n <label class=\"colors\">\r\n <input type=\"radio\" [value]=\"data[valueKey]\" name=\"sliceLabel\" (click)=\"selectOption(data)\" #option (keyup.enter)=\"closeDropdown()\" class=\"pointer-none\" />\r\n <span\r\n (click)=\"selectOption(data)\"\r\n *ngIf=\"displayProperty && displayProperty !== ''\"\r\n class=\"value\"\r\n [ngStyle]=\"{ color: data.segment_color }\"\r\n [style.backgroundColor]=\"data.segment_color + '1A'\"\r\n >{{ data[displayProperty] }}</span\r\n >\r\n <span\r\n (click)=\"selectOption(data)\"\r\n *ngIf=\"!displayProperty || displayProperty === ''\"\r\n class=\"value\"\r\n [ngStyle]=\"{ color: data.segment_color }\"\r\n [style.backgroundColor]=\"data.segment_color + '1A'\"\r\n >{{ data }}</span\r\n >\r\n </label>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToolTipDirective } from './tooltip.directive';\r\n\r\n@NgModule({\r\n declarations: [ToolTipDirective],\r\n imports: [CommonModule],\r\n exports: [ToolTipDirective],\r\n})\r\nexport class TooltipModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'searchMultiSelect',\r\n})\r\nexport class SearchMultiSelectPipe implements PipeTransform {\r\n transform(value: any[], key: string, searchKey: string): any[] {\r\n if (searchKey && searchKey.length > 0) {\r\n searchKey = searchKey.toLowerCase();\r\n return value.filter((item) => {\r\n if (item[key].toLowerCase().includes(searchKey)) {\r\n return item;\r\n }\r\n });\r\n }\r\n return value;\r\n }\r\n}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CsCheckboxComponent } from './cs-checkbox/cs-checkbox.component';\r\nimport { CsRadioComponent } from './cs-radio/cs-radio.component';\r\nimport { CsSwitchComponent } from './cs-switch/cs-switch.component';\r\nimport { CsRadioGroupComponent } from './cs-radio-group/cs-radio-group.component';\r\nimport { CsSelectComponent } from './cs-select/cs-select.component';\r\nimport { TooltipModule } from '../tooltip/tooltip.module';\r\nimport { PascalPipe } from './pipes/pascal.pipe';\r\nimport { SearchMultiSelectPipe } from './pipes/searchMultiSelect.pipe';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n CsCheckboxComponent,\r\n CsRadioComponent,\r\n CsSwitchComponent,\r\n CsRadioGroupComponent,\r\n CsSelectComponent,\r\n PascalPipe,\r\n SearchMultiSelectPipe,\r\n ClickOutsideDirective,\r\n ],\r\n imports: [CommonModule, FormsModule, TooltipModule],\r\n exports: [\r\n CsCheckboxComponent,\r\n CsRadioComponent,\r\n CsSwitchComponent,\r\n CsRadioGroupComponent,\r\n CsSelectComponent,\r\n SearchMultiSelectPipe,\r\n ],\r\n})\r\nexport class FormgroupModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PopoverComponent } from './popover.component';\r\nimport { PopoverDirective } from './popover.directive';\r\nimport { PopoverService } from './popover.service';\r\n\r\n@NgModule({\r\n declarations: [PopoverComponent, PopoverDirective],\r\n imports: [CommonModule],\r\n exports: [PopoverComponent, PopoverDirective],\r\n providers: [PopoverService],\r\n})\r\nexport class PopoverModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DashboardFooterComponent } from './dashboard-footer/dashboard-footer.component';\r\nimport { PopoverModule } from '../popover/popover.module';\r\nimport { TooltipModule } from '../tooltip/tooltip.module'\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DashboardFooterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n PopoverModule,\r\n TooltipModule\r\n ],\r\n exports:[\r\n DashboardFooterComponent\r\n ]\r\n})\r\nexport class DashboardFooterModule { }\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appInsertion]',\r\n})\r\nexport class InsertionDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}\r\n","export class DialogConfig<D = any> {\r\n data?: D;\r\n position?: any;\r\n background?: any;\r\n pointer?: any;\r\n}\r\n","import { Component, Type, ComponentFactoryResolver, ViewChild, OnDestroy, ComponentRef, AfterViewInit, ChangeDetectorRef, OnInit } from '@angular/core';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { Subject } from 'rxjs';\r\nimport { DialogRef } from './dialog-ref';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { NavigationEnd, NavigationError, NavigationStart, Router, ROUTER_CONFIGURATION } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.css'],\r\n})\r\nexport class DialogComponent implements AfterViewInit, OnDestroy, OnInit {\r\n componentRef!: ComponentRef<any>;\r\n position: any;\r\n background: any;\r\n pointer: any;\r\n @ViewChild(InsertionDirective, { static: true })\r\n insertionPoint!: InsertionDirective;\r\n animation = true;\r\n\r\n private readonly onDialogClose = new Subject<any>();\r\n public onClose = this.onDialogClose.asObservable();\r\n\r\n childComponentType!: Type<any>;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private cd: ChangeDetectorRef,\r\n private dialogRef: DialogRef,\r\n public config: DialogConfig,\r\n private router: Router\r\n ) {\r\n // this.componentRef = this.componentRef;\r\n // this.animate = this.animate;\r\n // this.insertionPoint = this.insertionPoint;\r\n // this.childComponentType = this.childComponentType;\r\n }\r\n ngOnInit() {\r\n this.position = this.config.position;\r\n this.background = this.config.background;\r\n document.body.style.overflow = 'hidden';\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 200);\r\n this.routeAction();\r\n }\r\n\r\n routeAction() {\r\n this.router.events.subscribe((event: any) => {\r\n if (event instanceof NavigationStart) {\r\n // Show loading indicator\r\n }\r\n if (event instanceof NavigationEnd) {\r\n // Hide loading indicator\r\n this.dialogRef.close();\r\n }\r\n if (event instanceof NavigationError) {\r\n // Hide loading indicator\r\n // Present error to user\r\n }\r\n });\r\n }\r\n ngAfterViewInit() {\r\n this.loadChildComponent(this.childComponentType);\r\n this.cd.detectChanges();\r\n }\r\n\r\n onOverlayClicked(evt: MouseEvent) {\r\n // this.dialogRef.close();\r\n }\r\n\r\n onDialogClicked(evt: MouseEvent) {\r\n evt.stopPropagation();\r\n }\r\n\r\n loadChildComponent(componentType: Type<any>) {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\r\n\r\n const viewContainerRef = this.insertionPoint.viewContainerRef;\r\n viewContainerRef.clear();\r\n\r\n this.componentRef = viewContainerRef.createComponent(componentFactory);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n }\r\n\r\n close(data?: any) {\r\n this.onDialogClose.next(data);\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","<div\r\n class=\"overlay\"\r\n (click)=\"onOverlayClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER',\r\n black: background === 'black'\r\n }\" [class.pointer-none]=\"pointer === 'none'\"\r\n>\r\n <div\r\n class=\"dialog\"\r\n [class.animate]=\"animation\"\r\n (click)=\"onDialogClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER'\r\n }\"\r\n >\r\n <ng-template appInsertion></ng-template>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { DialogRef } from './dialog-ref';\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DialogComponent, InsertionDirective],\r\n providers: [DialogRef]\r\n})\r\nexport class DialogModule {}\r\n","import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\r\n\r\nexport class DialogInjector implements Injector {\r\n constructor(private parentDialogInjector: Injector, private dialogAdditionalTokens: WeakMap<any, any>) {}\r\n\r\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n // get(token: any, notFoundValue?: any){return; }\r\n get(token: any, notFoundValue?: any, flags?: any) {\r\n const value = this.dialogAdditionalTokens.get(token);\r\n if (value) {\r\n return value;\r\n }\r\n return this.parentDialogInjector.get<any>(token, notFoundValue);\r\n }\r\n}\r\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, Type, EmbeddedViewRef, ComponentRef } from '@angular/core';\r\nimport { DialogModule } from './dialog.module';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { DialogInjector } from './dialog-injector';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { DialogRef } from './dialog-ref';\r\n\r\n@Injectable({\r\n providedIn: DialogModule,\r\n})\r\nexport class DialogService {\r\n dialogComponentRef!: ComponentRef<DialogComponent>;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) {}\r\n\r\n public open(componentType: Type<any>, config: DialogConfig) {\r\n const dialogRef = this.appendDialogComponentToBody(config);\r\n\r\n this.dialogComponentRef.instance.childComponentType = componentType;\r\n\r\n return dialogRef;\r\n }\r\n\r\n private appendDialogComponentToBody(config: DialogConfig) {\r\n const map = new WeakMap();\r\n map.set(DialogConfig, config);\r\n\r\n const dialogRef = new DialogRef();\r\n map.set(DialogRef, dialogRef);\r\n\r\n const sub = dialogRef.afterClosed.subscribe(() => {\r\n this.removeDialogComponentFromBody();\r\n sub.unsubscribe();\r\n });\r\n\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DialogComponent);\r\n const componentRef = componentFactory.create(new DialogInjector(this.injector, map));\r\n\r\n this.appRef.attachView(componentRef.hostView);\r\n\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n\r\n this.dialogComponentRef = componentRef;\r\n\r\n this.dialogComponentRef.instance.onClose.subscribe(() => {\r\n this.removeDialogComponentFromBody();\r\n });\r\n\r\n return dialogRef;\r\n }\r\n\r\n private removeDialogComponentFromBody() {\r\n this.appRef.detachView(this.dialogComponentRef.hostView);\r\n this.dialogComponentRef.destroy();\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { DatePickerComponent, IDatePickerConfig } from 'ng2-date-picker';\r\nimport { DialogService } from '../../ui-kit/dialog/dialog.service';\r\nimport { EditorConfig } from '@vcomply/editor';\r\n// import { ConfigureWidgetsComponent } from '../../configure-widgets/configure-widgets/configure-widgets.component';\r\n\r\n@Component({\r\n selector: 'app-form-group',\r\n templateUrl: './form-group.component.html',\r\n styleUrls: ['./form-group.component.less'],\r\n})\r\nexport class FormGroupComponent implements OnInit {\r\n @Output() openCategoryList = new EventEmitter<string>();\r\n @Output() openResponsibilityCenterList = new EventEmitter<string>();\r\n @Output() openWhoCanViewThis = new EventEmitter<string>();\r\n @Output() closeCreateDashboard = new EventEmitter<string>();\r\n @Output() openFrequency = new EventEmitter<string>();\r\n @Input() disabled!: boolean;\r\n\r\n @ViewChild('fromDatePicker') fromDatePicker!: DatePickerComponent;\r\n @ViewChild('toDatePicker') toDatePicker!: DatePickerComponent;\r\n datePickerOverlay = false;\r\n selectedFromDate!: any;\r\n selectedToDate!: any;\r\n dashboardName!: any;\r\n dashboardDescriptionText!: any;\r\n fieldEmptyErrorMessage: string = 'Enter a value for this input box.';\r\n fieldLimitExceededErrorMessage: string =\r\n 'You have exceeded the maximum character limit of XYZ characters.';\r\n dashboardNameNotUniqueErrorMessage: string =\r\n 'A dashboard with this name already exists. Specify a different name for the dashboard.';\r\n dashboardNameError!: string;\r\n dashboardDescriptionError!: string;\r\n displayCriteria!: string;\r\n\r\n constructor(private dialog: DialogService) {}\r\n\r\n dashboardDescription: EditorConfig = {\r\n placeholder: 'Description (Max limit: 250 characters)',\r\n mode: 'prime',\r\n id: 'description',\r\n };\r\n\r\n fromDatePickerConfig: IDatePickerConfig = {\r\n min: this.getCurrentDate(),\r\n };\r\n\r\n toDatePickerConfig: IDatePickerConfig = {};\r\n\r\n ngOnInit(): void {}\r\n\r\n openFromDatePicker() {\r\n this.fromDatePicker.api.open();\r\n this.datePickerOverlay = true;\r\n }\r\n\r\n openToDatePicker() {\r\n this.toDatePicker.api.open();\r\n this.datePickerOverlay = true;\r\n }\r\n\r\n closeFromDatePicker() {\r\n let minToDate = this.selectedFromDate.clone().add(1, 'days');\r\n this.toDatePickerConfig = { min: minToDate, minTime: minToDate };\r\n\r\n if (this.selectedToDate && minToDate.diff(this.selectedToDate) > 0) {\r\n this.selectedToDate = undefined;\r\n }\r\n\r\n this.fromDatePicker.api.close();\r\n this.datePickerOverlay = false;\r\n }\r\n\r\n closeToDatePicker() {\r\n this.toDatePicker.api.close();\r\n this.datePickerOverlay = false;\r\n }\r\n\r\n animateImage() {\r\n const circleImage = document.getElementsByClassName('image');\r\n console.log(circleImage);\r\n }\r\n\r\n selectWhoCanViewThis() {\r\n this.openWhoCanViewThis.emit();\r\n }\r\n\r\n selectResponsibilityCenter() {\r\n this.openResponsibilityCenterList.emit();\r\n }\r\n\r\n selectCategories() {\r\n this.openCategoryList.emit();\r\n }\r\n\r\n selectFrequency() {\r\n this.openFrequency.emit();\r\n }\r\n\r\n configureDashboard() {\r\n let fieldsStatus = this.verifyFields();\r\n // if(fieldsStatus) {\r\n // this.closeCreateDashboard.emit();\r\n // const ref = this.dialog.open(ConfigureWidgetsComponent, {\r\n // data: {},\r\n // position: 'CENTER',\r\n // pointer: 'none'\r\n // });\r\n // }\r\n }\r\n\r\n verifyFields() {\r\n let allFieldsValid = true;\r\n this.dashboardNameError = '';\r\n this.dashboardDescriptionError = '';\r\n\r\n if (\r\n this.dashboardName === null ||\r\n this.dashboardName === undefined ||\r\n this.dashboardName === ''\r\n ) {\r\n this.dashboardNameError = this.fieldEmptyErrorMessage;\r\n allFieldsValid = false;\r\n } else if (this.dashboardName.length > 30) {\r\n this.dashboardNameError = this.fieldLimitExceededErrorMessage.replace(\r\n 'XYZ',\r\n '30'\r\n );\r\n allFieldsValid = false;\r\n } else if (\r\n this.dashboardDescriptionText === null ||\r\n this.dashboardDescriptionText === undefined ||\r\n this.dashboardDescriptionText === ''\r\n ) {\r\n this.dashboardDescriptionError = this.fieldEmptyErrorMessage;\r\n allFieldsValid = false;\r\n } else if (this.dashboardDescriptionText.length > 250) {\r\n this.dashboardDescriptionError =\r\n this.fieldLimitExceededErrorMessage.replace('XYZ', '250');\r\n allFieldsValid = false;\r\n }\r\n return allFieldsValid;\r\n }\r\n\r\n getCurrentDate() {\r\n let today = new Date();\r\n return (\r\n today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear()\r\n );\r\n }\r\n\r\n displayCriteriaSelected(event: boolean, selection: string) {\r\n this.displayCriteria = selection;\r\n }\r\n}\r\n","<!-- <p>form-group works!</p> -->\r\n<div class=\"form-group\" [class.disabled]=\"disabled\">\r\n <div class=\"vx-dialog-body-container\" (scroll)=\"animateImage()\">\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/what.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Dashboard Name<span class=\"required\">*</span></label>\r\n <div class=\"vx-input-group\">\r\n <input type=\"text\" placeholder=\"Add dashboard name (Max limit: 30 characters).\" [(ngModel)]=\"dashboardName\">\r\n <span class=\"counter\" *ngIf=\"dashboardName?.length > 0\">{{30 - dashboardName?.length}}</span>\r\n </div>\r\n <p class=\"vx-txt-error\">{{dashboardNameError}}</p>\r\n <div class=\"vx-input-group\">\r\n <vcomply-editor [editorConfig]=\"dashboardDescription\" [(ngModel)]=\"dashboardDescriptionText\"></vcomply-editor>\r\n <span class=\"counter\" *ngIf=\"dashboardDescriptionText?.length > 0\">{{250 - dashboardDescriptionText?.length}}</span>\r\n </div>\r\n <p class=\"vx-txt-error\">{{dashboardDescriptionError}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/who.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Who can view this dashboard?<span class=\"required\">*</span></label>\r\n <div class=\"selectbox\">\r\n <input type=\"text\" placeholder=\"Who can view this dashboard?\" readonly\r\n (click)=\"selectWhoCanViewThis()\">\r\n </div>\r\n <div class=\"selected\">\r\n <div class=\"left\">\r\n <div class=\"chip-container\">\r\n <span class=\"chip\">\r\n <span class=\"value\">Samantha Jones</span>\r\n </span>\r\n <span class=\"chip\">\r\n <i class=\"icons\"></i>\r\n <span class=\"value\">Angel Kleven</span>\r\n </span>\r\n </div>\r\n <button class=\"count\">+10</button>\r\n </div>\r\n <button class=\"edit\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/responsibility-center.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">RESPONSIBILITY CENTER(S)</label>\r\n <div class=\"selectbox\">\r\n <div class=\"custom-input\"\r\n aria-placeholder=\"Select the Responsibility Center(s) that you would like displayed in the Dashboard, if any.\"\r\n (click)=\"selectResponsibilityCenter()\">\r\n </div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/category.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">PROGRAM</label>\r\n <div class=\"selectbox\">\r\n <div class=\"custom-input\"\r\n aria-placeholder=\"Select the Program that this responsibility relates to.\"\r\n (click)=\"selectCategories()\"></div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/category.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">RISK CATEGORIES</label>\r\n <div class=\"selectbox\">\r\n <div class=\"custom-input\"\r\n aria-placeholder=\"Select the Risk Categories that you would like displayed in the Dashboard, if any.\"\r\n (click)=\"selectCategories()\"></div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/who.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">DISPLAY CRITERIA</label>\r\n <div class=\"radio-group\">\r\n <app-cs-radio (checkedEvent)=\"displayCriteriaSelected($event, 'BOTH_RC_AND_CATEGORY')\">Those responsibilities that have been assigned to both the selected\r\n Responsibility Center(s) and the selected Categories.</app-cs-radio>\r\n <app-cs-radio (checkedEvent)=\"displayCriteriaSelected($event, 'RC_OR_CATEGORY')\">Those responsibilities that have been assigned to either the selected\r\n Responsibility Center(s) or the selected Categories.</app-cs-radio>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div class=\"image\">\r\n <img src=\"./assets/images/when.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">TIMEFRAME</label>\r\n <label class=\"vx-control-panel-sub-label\">Select how long you would like the information\r\n selected to be displayed for. If no timeframe is selected, the information will be\r\n displayed permanently.</label>\r\n <div class=\"input-group vx-d-flex vx-justify-between\">\r\n <div class=\"date-select\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [value]=\"selectedFromDate | date: 'dd MMM yyyy'\" [placeholder]=\"'From'\"\r\n (click)=\"openFromDatePicker()\" readonly>\r\n <dp-date-picker #fromDatePicker [(ngModel)]=\"selectedFromDate\" placeholder=\"Select Date\"\r\n (onSelect)=\"closeFromDatePicker(); datePickerOverlay = false\" [config]=\"fromDatePickerConfig\"></dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeFromDatePicker()\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n <div class=\"date-select\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [value]=\"selectedToDate | date: 'dd MMM yyyy'\" [placeholder]=\"'To'\"\r\n (click)=\"openToDatePicker()\" readonly>\r\n <dp-date-picker #toDatePicker [(ngModel)]=\"selectedToDate\" placeholder=\"Select Date\"\r\n (onSelect)=\"closeToDatePicker(); datePickerOverlay = false\" [config]=\"toDatePickerConfig\"></dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeToDatePicker()\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <!--active class will appear on open list-->\r\n <div class=\"image\">\r\n <img src=\"./assets/images/send-resolution.svg\" alt=\"\">\r\n </div>\r\n <div class=\"form\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Email Summaries <i class=\"icons\" [arTooltip]=\"'This is a test tooltip'\" placement=\"bottom-left\"\r\n type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\"></i></label>\r\n <label class=\"vx-control-panel-sub-label\">\r\n If you would like to send a summary of this Dashboard,\r\n please select a frequency(By default VComply sends a weekly Summary).\r\n </label>\r\n <div class=\"selectbox\">\r\n <input type=\"text\" placeholder=\"Email Summaries\" readonly (click)=\"selectFrequency()\">\r\n </div>\r\n <!-- <p class=\"vx-txt-error\">Enter a value for this input box.</p> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"button-block\">\r\n <button class=\"vx-btn block primary\" [disabled]=\"disabled\" (click)=\"configureDashboard()\">Next: Configure\r\n Widgets</button>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FloatingBarComponent } from './floating-bar.component';\r\nimport { PopoverModule } from '../popover/popover.module';\r\nimport { TooltipModule } from '../tooltip/tooltip.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n FloatingBarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n PopoverModule,\r\n TooltipModule\r\n ],\r\n exports: [\r\n FloatingBarComponent\r\n ]\r\n})\r\nexport class FloatingBarModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ScrollInViewDirective } from './scroll-in-view.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ScrollInViewDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports:[\r\n ScrollInViewDirective\r\n ]\r\n})\r\nexport class DirectivesModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NoDataComponent } from './no-data.component';\r\n\r\n@NgModule({\r\n declarations: [NoDataComponent],\r\n imports: [CommonModule],\r\n exports: [NoDataComponent],\r\n})\r\nexport class NoDataModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FloatingBarModule } from '../../ui-kit//floating-bar/floating-bar.module';\r\nimport { FormgroupModule } from '../../ui-kit/formgroup/formgroup.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SearchPipe } from '../pipes/search.pipe';\r\nimport { ConfigureWidgetsComponent } from './configure-widgets/configure-widgets.component';\r\nimport { DirectivesModule } from '../directives/directives.module';\r\nimport { NoDataModule } from '../../ui-kit/no-data/no-data.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ConfigureWidgetsComponent, SearchPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n FloatingBarModule,\r\n FormgroupModule,\r\n FormsModule,\r\n DirectivesModule,\r\n NoDataModule\r\n ],\r\n exports: [\r\n ConfigureWidgetsComponent\r\n ]\r\n})\r\nexport class ConfigureWidgetsModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.less'],\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<!-- <p>loader works!</p> -->\r\n<div class=\"main-loader\">\r\n <div class=\"demo-loader\">\r\n <div class=\"demo-loader-colored-blocks\">\r\n <div class=\"demo-loader-colored-blocks-rotater\">\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n <div class=\"demo-loader-colored-block\"></div>\r\n </div>\r\n <div class=\"demo-loader-colored-blocks-inner\"></div>\r\n </div>\r\n <div class=\"demo-loader-inner\">\r\n <svg\r\n width=\"30px\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n id=\"Layer_1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 16 16\"\r\n style=\"enable-background: new 0 0 16 16\"\r\n xml:space=\"preserve\"\r\n >\r\n <style type=\"text/css\">\r\n .st0 {\r\n fill: #9d1f24;\r\n }\r\n\r\n .st1 {\r\n fill: #d83b3f;\r\n }\r\n </style>\r\n <g>\r\n <path class=\"st0\" d=\"M2,12.3c0.5,0.3,1.1,0.4,1.8,0.2c0.9-0.3,1.4-1.1,1.5-1.1c-0.3-0.2-0.5-0.6-0.5-1.1V7.2 C4.5,4.6,1.1,3.8,1.1,3.8v7.3C1.1,11.2,1.3,11.9,2,12.3z\" />\r\n <path\r\n class=\"st1\"\r\n d=\"M9.9,3.5c-1.8,2.8-4.6,7.8-4.6,7.8s0,0,0,0c0,0.1-0.5,0.8-1.5,1.1c-0.7,0.2-1.3,0.1-1.8-0.2 c-0.6-0.4-0.9-1.1-0.9-1.1s-0.1,1.2,0.6,2.2C2,13.9,4,15.9,6.6,14.5c0.6-0.3,1.1-0.8,1.6-1.5c0.4-0.5,6.9-11.6,6.9-11.6 S11.7,0.5,9.9,3.5z\"\r\n />\r\n </g>\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoaderComponent } from './loader/loader.component';\r\nimport { LoaderInlineComponent } from './loader-inline/loader-inline.component';\r\n\r\n@NgModule({\r\n declarations: [LoaderComponent, LoaderInlineComponent],\r\n imports: [CommonModule],\r\n exports: [LoaderComponent, LoaderInlineComponent],\r\n})\r\nexport class VLoaderModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SnackBarComponent } from './snack-bar/snack-bar.component';\r\n\r\n@NgModule({\r\n declarations: [SnackBarComponent],\r\n imports: [CommonModule],\r\n exports: [SnackBarComponent],\r\n})\r\nexport class SnackBarModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SmileyDialogComponent } from './smiley-dialog.component';\r\n\r\n@NgModule({\r\n declarations: [SmileyDialogComponent],\r\n imports: [CommonModule],\r\n\r\n exports: [SmileyDialogComponent],\r\n})\r\nexport class SmileyDialogModule {}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n// import { MarxEditorModule } from 'vcomply-editor';\r\nimport { VcomplyEditorModule } from '@vcomply/editor';\r\nimport { DpDatePickerModule } from 'ng2-date-picker';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CreateDashboardComponent } from './create-dashboard.component';\r\nimport { SelectModule } from '../ui-kit/select/select.module';\r\nimport { UserListComponent } from './user-list/user-list.component';\r\nimport { ResponsibilityCenterComponent } from './responsibility-center/responsibility-center.component';\r\nimport { CategoriesComponent } from './categories/categories.component';\r\nimport { FrequencyComponent } from './frequency/frequency.component';\r\nimport { PaginationModule } from '../ui-kit/pagination/pagination.module';\r\nimport { FormgroupModule } from '../ui-kit/formgroup/formgroup.module';\r\nimport { DashboardFooterModule } from '../ui-kit/dashboard-footer/dashboard-footer.module';\r\nimport { FormGroupComponent } from './form-group/form-group.component';\r\nimport { TooltipModule } from '../ui-kit/tooltip/tooltip.module';\r\nimport { FloatingBarModule } from '../ui-kit/floating-bar/floating-bar.module';\r\nimport { DialogModule } from '../ui-kit/dialog/dialog.module';\r\nimport { Configurations } from '../configurations';\r\nimport { FilterPipe } from './pipes/filter.pipe';\r\nimport { RiskCategoriesComponent } from './risk-categories/risk-categories.component';\r\nimport { ConfigureWidgetsModule } from './configure-widgets/configure-widgets.module';\r\nimport { PopoverModule } from '../ui-kit/popover/popover.module';\r\nimport { VLoaderModule } from '../ui-kit/v-loader/v-loader.module';\r\nimport { SnackBarModule } from '../ui-kit/snack-bar/snack-bar.module';\r\nimport { NoDataModule } from '../ui-kit/no-data/no-data.module';\r\nimport { DirectivesModule } from './directives/directives.module';\r\nimport { SmileyDialogModule } from '../ui-kit/smiley-dialog/smiley-dialog.module';\r\nimport { TextCountPipe } from './pipes/text-count.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n CreateDashboardComponent,\r\n UserListComponent,\r\n FormGroupComponent,\r\n ResponsibilityCenterComponent,\r\n CategoriesComponent,\r\n RiskCategoriesComponent,\r\n FrequencyComponent,\r\n FilterPipe,\r\n TextCountPipe,\r\n ],\r\n imports: [\r\n CommonModule,\r\n // MarxEditorModule,\r\n VcomplyEditorModule,\r\n FormgroupModule,\r\n DpDatePickerModule,\r\n FormsModule,\r\n TooltipModule,\r\n SelectModule,\r\n DashboardFooterModule,\r\n PaginationModule,\r\n FloatingBarModule,\r\n DialogModule,\r\n ConfigureWidgetsModule,\r\n PopoverModule,\r\n VLoaderModule,\r\n SnackBarModule,\r\n NoDataModule,\r\n DirectivesModule,\r\n SmileyDialogModule,\r\n ],\r\n exports: [CreateDashboardComponent],\r\n})\r\nexport class CreateDashboardModule {\r\n public static forRoot(\r\n environmentConfig: Configurations\r\n ): ModuleWithProviders<CreateDashboardModule> {\r\n return {\r\n ngModule: CreateDashboardModule,\r\n providers: [{ provide: Configurations, useValue: environmentConfig }],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of create-dashboard\r\n */\r\n\r\n// export * from './lib/create-dashboard.service';\r\n// export * from './lib/create-dashboard.component';\r\n// export * from './lib/create-dashboard.module';\r\n\r\nexport * from './lib/create-dashboard.service';\r\nexport * from './lib/create-dashboard-container/create-dashboard.component';\r\nexport * from './lib/create-dashboard-container/create-dashboard.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CreateDashboardService","i2.Configurations","i2.AuthService","i3.Configurations","i1.PopoverService","i2","i1.SnackBarService","i3.PopoverComponent","i4.PopoverDirective","i5.ToolTipDirective","i1","i1.DialogRef","i2.ConfigureWidgetsService","i3.SnackBarService","i4","i5.FloatingBarComponent","i6.CsCheckboxComponent","i7","i8.NoDataComponent","i9.SearchPipe","i2.PopoverComponent","i3.PopoverDirective","i4.ToolTipDirective","i1.PaginationService","i2.CreateDashboardService","i3","i4.CsCheckboxComponent","i5","i6.ToolTipDirective","i7.DashboardFooterComponent","i8.PaginationComponent","i9.PopoverComponent","i10.PopoverDirective","i11.LoaderInlineComponent","i12.NoDataComponent","i2.CsCheckboxComponent","i5.DashboardFooterComponent","i6.NoDataComponent","i7.FilterPipe","i3.CsCheckboxComponent","i4.CsRadioComponent","i6.DashboardFooterComponent","i1.CreateDashboardService","i2.PaginationService","i4.PopoverService","i5.ConfigureWidgetsService","i6.TextCountPipe","i9.CsRadioComponent","i11","i12.ToolTipDirective","i13.ConfigureWidgetsComponent","i14.PopoverComponent","i15.PopoverDirective","i16.LoaderInlineComponent","i17.SnackBarComponent","i18.ScrollInViewDirective","i19.SmileyDialogComponent","i20.UserListComponent","i21.ResponsibilityCenterComponent","i22.CategoriesComponent","i23.RiskCategoriesComponent","i24.FrequencyComponent","CsSelectComponent","i2.SafeHtmlPipe","i1.CsSelectComponent","i2.CsSelectService","i3.ToolTipDirective","i1.CsRadioComponent","i2.ClickOutsideDirective","i3.PascalPipe","i2.DialogConfig","i5.InsertionDirective","i1.DialogService","i6","i7.ToolTipDirective"],"mappings":"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"}
|