{"version":3,"file":"support-chatbot.mjs","sources":["../../../projects/support-chatbot/src/lib/shared/constants/hub-spot.constant.ts","../../../projects/support-chatbot/src/lib/configuration.ts","../../../projects/support-chatbot/src/lib/shared/services/hubspot.service.ts","../../../projects/support-chatbot/src/lib/shared/services/token-validator.service.ts","../../../projects/support-chatbot/src/lib/shared/services/common.service.ts","../../../projects/support-chatbot/src/lib/shared/constants/header-details.constant.ts","../../../projects/support-chatbot/src/lib/shared/constants/button-details.constants.ts","../../../projects/support-chatbot/src/lib/ui-kit/dialog/dialog-config.ts","../../../projects/support-chatbot/src/lib/ui-kit/dialog/dialog-ref.ts","../../../projects/support-chatbot/src/lib/shared/pipes/pipes/safe.pipe.ts","../../../projects/support-chatbot/src/lib/shared/pages/iframe-integration/iframe-integration.component.ts","../../../projects/support-chatbot/src/lib/shared/pages/iframe-integration/iframe-integration.component.html","../../../projects/support-chatbot/src/lib/ui-kit/dialog/insertion.directive.ts","../../../projects/support-chatbot/src/lib/ui-kit/dialog/dialog.component.ts","../../../projects/support-chatbot/src/lib/ui-kit/dialog/dialog.component.html","../../../projects/support-chatbot/src/lib/ui-kit/dialog/dialog.module.ts","../../../projects/support-chatbot/src/lib/ui-kit/dialog/dialog-injector.ts","../../../projects/support-chatbot/src/lib/ui-kit/dialog/dialog.service.ts","../../../projects/support-chatbot/src/lib/shared/pages/support-list/header/header.component.ts","../../../projects/support-chatbot/src/lib/shared/pages/support-list/header/header.component.html","../../../projects/support-chatbot/src/lib/shared/pages/support-list/button/button.component.ts","../../../projects/support-chatbot/src/lib/shared/pages/support-list/button/button.component.html","../../../projects/support-chatbot/src/lib/shared/constants/app-tour.constant.ts","../../../projects/support-chatbot/src/lib/shared/services/permission-manager.service.ts","../../../projects/support-chatbot/src/lib/ui-kit/skeleton-loader/app-tour-loader/app-tour-loader.component.ts","../../../projects/support-chatbot/src/lib/ui-kit/skeleton-loader/app-tour-loader/app-tour-loader.component.html","../../../projects/support-chatbot/src/lib/shared/pages/app-tour/app-tours/app-tours.component.ts","../../../projects/support-chatbot/src/lib/shared/pages/app-tour/app-tours/app-tours.component.html","../../../projects/support-chatbot/src/lib/ui-kit/v-loader/loader-inline/loader-inline.component.ts","../../../projects/support-chatbot/src/lib/ui-kit/v-loader/loader-inline/loader-inline.component.html","../../../projects/support-chatbot/src/lib/shared/pages/support-container/support-container/support-container.component.ts","../../../projects/support-chatbot/src/lib/shared/pages/support-container/support-container/support-container.component.html","../../../projects/support-chatbot/src/lib/ui-kit/tooltip/tooltip.directive.ts","../../../projects/support-chatbot/src/lib/support-chatbot.component.ts","../../../projects/support-chatbot/src/lib/shared/pages/support-list/support-list.module.ts","../../../projects/support-chatbot/src/lib/ui-kit/tooltip/tooltip.module.ts","../../../projects/support-chatbot/src/lib/shared/pipes/pipes/redirect-url.pipe.ts","../../../projects/support-chatbot/src/lib/shared/pipes/pipes.module.ts","../../../projects/support-chatbot/src/lib/ui-kit/v-loader/v-loader.module.ts","../../../projects/support-chatbot/src/lib/ui-kit/skeleton-loader/skeleton-loader.module.ts","../../../projects/support-chatbot/src/lib/shared/pages/app-tour/app-tour.module.ts","../../../projects/support-chatbot/src/lib/shared/pages/support-container/support-container.module.ts","../../../projects/support-chatbot/src/lib/shared/interceptor/token.interceptor.ts","../../../projects/support-chatbot/src/lib/support-chatbot.module.ts","../../../projects/support-chatbot/src/public-api.ts","../../../projects/support-chatbot/src/support-chatbot.ts"],"sourcesContent":["const SCRIPT_URL = '//js-na1.hs-scripts.com/19683876.js';\r\nconst CREATE_SUPPORT_TICKET_URL = '//js.hsforms.net/forms/embed/v2.js';\r\nconst MEETING_LINK =\r\n  'https://meetings.hubspot.com/prerna7/vcomply-support?embed=true';\r\nconst API_URL =\r\n  'https://api.hubapi.com/visitor-identification/v3/tokens/create';\r\nconst SUPPORT_LINK = 'https://share.hsforms.com/1VtKB12U6RaO3lKA8Hr0c0Abpw6c';\r\nconst GET_TOKEN_API = '/api/v1/misc/hubspotToken?isAuth=true';\r\n\r\nconst BEARER_TOKEN = 'pat-na1-0d0cb58c-a909-4a3d-afdd-1c618dcea8c5';\r\n\r\nconst HELP_EMAIL = 'help@v-comply.com';\r\n\r\nconst SUPPORT_LINK_TITLE = 'Support Request';\r\nconst SUPPORT_TEXT = `is your dedicated contact who is\r\nfamiliar with your account and business needs. She is typically\r\navailable during business hours.`;\r\n\r\nconst SUPPORT_PROFILE = {\r\n  support_link:\r\n    'https://meetings.hubspot.com/prerna7/vcomply-support?embed=true',\r\n  support_images: 'https://cdn.v-comply.com/libraries/support/prerna.png',\r\n  support_name: 'Prerna',\r\n  email: 'prerna.g@v-comply.com',\r\n  helpEmail: 'help@v-comply.com',\r\n  supportText: SUPPORT_TEXT,\r\n};\r\n\r\nconst FORM_CONFIG = {\r\n  region: 'na1',\r\n  portalId: '19683876',\r\n  formId: '56d281d7-653a-45a3-b794-a03c1ebd1cd0',\r\n  target: '#hubspotForm',\r\n  css: '',\r\n};\r\n\r\nexport const HUBSPOT = {\r\n  SCRIPT_URL,\r\n  API_URL,\r\n  BEARER_TOKEN,\r\n  HELP_EMAIL,\r\n  SUPPORT_LINK,\r\n  SUPPORT_LINK_TITLE,\r\n  GET_TOKEN_API,\r\n  SUPPORT_PROFILE,\r\n  MEETING_LINK,\r\n  CREATE_SUPPORT_TICKET_URL,\r\n  FORM_CONFIG,\r\n};\r\n\r\nexport const PORTAL_TICKET = 'https://help.v-comply.com/tickets-view';\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","import { DOCUMENT } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional, Renderer2 } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { AuthorizerService } from '@vcomply/authorizer';\r\n\r\nimport { HUBSPOT } from '../constants/hub-spot.constant';\r\nimport { Configurations } from '../../configuration';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class HubspotService {\r\n  public window!: Window | null | any;\r\n  public $onLoadToken: Subject<any> = new Subject();\r\n  private env: any;\r\n  private userDetails: any;\r\n\r\n  constructor(\r\n    private authorizer: AuthorizerService,\r\n    @Inject(DOCUMENT) private document: Document,\r\n    private http: HttpClient,\r\n    @Optional() config?: Configurations\r\n  ) {\r\n    this.window = this.document.defaultView;\r\n    if (config) {\r\n      this.env = config.envConfig;\r\n    }\r\n    this.userDetails = this.authorizer.getUser();\r\n  }\r\n\r\n  public setInitialState() {\r\n    this.window.hsConversationsSettings = {\r\n      loadImmediately: false,\r\n      identificationEmail: this.userDetails.email,\r\n      identificationToken: this.getToken().token,\r\n    };\r\n  }\r\n\r\n  public loadScript(renderer: Renderer2, src: string): HTMLScriptElement {\r\n    const script = renderer.createElement('script');\r\n    script.type = 'text/javascript';\r\n    script.src = src;\r\n    renderer.appendChild(this.document.body, script);\r\n    return script;\r\n  }\r\n\r\n  public loadChatbotWidget() {\r\n    this.window.HubSpotConversations.widget.load();\r\n    this.window.HubSpotConversations.widget.open();\r\n    this.closeChatbotWidget();\r\n  }\r\n\r\n  public closeChatbotWidget() {\r\n    this.window.HubSpotConversations.on('widgetClosed', (event: any) => {\r\n      this.window.HubSpotConversations.widget.remove();\r\n    });\r\n  }\r\n\r\n  generateToken() {\r\n    this.http\r\n      .get(this.env?.apiBaseUrl + HUBSPOT.GET_TOKEN_API)\r\n      .subscribe((res: any) => {\r\n        this.setLocalStorage('supportIdentity', JSON.stringify(res.data));\r\n        this.setInitialState();\r\n        this.$onLoadToken.next(true);\r\n      });\r\n  }\r\n\r\n  getToken() {\r\n    let HUBSPOT_TOKEN = JSON.parse(this.getLocalStorage('supportIdentity'));\r\n    if (typeof HUBSPOT_TOKEN == 'string') {\r\n      HUBSPOT_TOKEN = JSON.parse(HUBSPOT_TOKEN);\r\n    }\r\n    if (Object.keys(HUBSPOT_TOKEN).length) {\r\n      return HUBSPOT_TOKEN;\r\n    }\r\n    return null;\r\n  }\r\n\r\n  private getLocalStorage(key: string) {\r\n    return localStorage.getItem(key) ?? '{}';\r\n  }\r\n\r\n  private setLocalStorage(key: string, data: any) {\r\n    localStorage.setItem(key, JSON.stringify(data));\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { AuthorizerService } from '@vcomply/authorizer';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class TokenValidatorService {\r\n  public userDetails: any;\r\n  constructor(\r\n    private jwtHelper: JwtHelperService,\r\n    private authorizer: AuthorizerService\r\n  ) {\r\n    this.userDetails = this.authorizer.getUser();\r\n  }\r\n\r\n  isTokenInvalid() {\r\n    return (\r\n      this.jwtHelper.isTokenExpired(this.getSupportToken()) ||\r\n      this.decodeToken().sub !== this.userDetails?.email\r\n    );\r\n  }\r\n\r\n  decodeToken() {\r\n    return this.jwtHelper.decodeToken(this.getSupportToken());\r\n  }\r\n\r\n  getSupportToken() {\r\n    const TOKEN = localStorage.getItem('supportIdentity');\r\n    let supportIdentity;\r\n    TOKEN !== null\r\n      ? (supportIdentity = JSON.parse(TOKEN))\r\n      : (supportIdentity = {});\r\n    if (Object.keys(supportIdentity).length) {\r\n      return JSON.parse(supportIdentity)?.token;\r\n    }\r\n    return null;\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 CommonService {\r\n  public featureFlag: any;\r\n\r\n  constructor() {}\r\n}\r\n","import { HeaderDetails } from '../interfaces/header-details.interface';\r\n\r\nconst CDN_URL = 'https://cdn.v-comply.com';\r\n\r\nconst CHAT_BOT: HeaderDetails = {\r\n  icon: `${CDN_URL}/libraries/support/general-support.svg`,\r\n  name: 'General Support',\r\n  description: '24x7 availability for your valuable time',\r\n  type: 'CHAT_BOT',\r\n};\r\n\r\nconst SUPPORT_REQUEST: HeaderDetails = {\r\n  icon: `${CDN_URL}/libraries/support/support-request.svg`,\r\n  name: 'Support Request',\r\n  description:\r\n    'If you have any queries related to your account, create a support ticket',\r\n  type: 'SEND_REQUEST',\r\n};\r\n\r\nconst SUPPORT_SPECIALIST: HeaderDetails = {\r\n  icon: `${CDN_URL}/libraries/support/support-specialist.svg`,\r\n  name: 'Contact Your Dedicated Support Specialist',\r\n  description: 'To guide you with your specific business needs',\r\n  type: 'SUPPORT_SPECIALIST',\r\n};\r\n\r\nconst APP_TOURS: HeaderDetails = {\r\n  icon: `${CDN_URL}/libraries/support/vcomply-tour.svg`,\r\n  name: 'VComply App Tours',\r\n  description: 'Take a tour of the VComply platform',\r\n  type: 'APP_TOURS',\r\n};\r\n\r\nexport const Header = {\r\n  CHAT_BOT,\r\n  SUPPORT_REQUEST,\r\n  SUPPORT_SPECIALIST,\r\n  APP_TOURS,\r\n};\r\n","import { ButtonDetails } from '../interfaces/button-details.interface';\r\n\r\nconst CHAT_BOT: ButtonDetails[] = [\r\n  {\r\n    info: 'Chatbot',\r\n    name: 'Start',\r\n    icon: '&#xe9a6;',\r\n    id: 'start',\r\n  },\r\n  {\r\n    info: 'Message',\r\n    name: 'SEND A MESSAGE',\r\n    icon: '&#xea17;',\r\n    id: 'message',\r\n  },\r\n];\r\n\r\nconst SUPPORT_REQUEST: ButtonDetails[] = [\r\n  {\r\n    info: 'New Support Ticket',\r\n    name: 'Start a new request',\r\n    icon: '&#xe900;',\r\n    id: 'support_ticket',\r\n  },\r\n  {\r\n    info: 'View All Tickets',\r\n    name: 'Go To Portal',\r\n    icon: '&#xeb32;',\r\n    id: 'portal_ticket',\r\n  },\r\n];\r\n\r\nconst SUPPORT_SPECIALIST: ButtonDetails[] = [\r\n  {\r\n    info: 'Schedule a meeting',\r\n    name: 'Schedule a meeting',\r\n    icon: '&#xe996;',\r\n    id: 'meeting',\r\n  },\r\n  {\r\n    info: 'Email',\r\n    name: 'email',\r\n    icon: ' &#xea17;',\r\n    id: 'email',\r\n  },\r\n];\r\n\r\nconst APP_TOURS: ButtonDetails[] = [\r\n  {\r\n    info: 'App Tours',\r\n    name: 'View Tours',\r\n    icon: '&#xe900;',\r\n    id: 'app_tours',\r\n  },\r\n];\r\n\r\nexport const button = {\r\n  CHAT_BOT,\r\n  SUPPORT_REQUEST,\r\n  SUPPORT_SPECIALIST,\r\n  APP_TOURS,\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 { 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    // debugger\r\n    this.afterDialogClosed.next(result);\r\n    document.body.style.overflow = 'auto';\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n  name: 'safe',\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n  constructor(private sanitizer: DomSanitizer) {}\r\n  transform(url: string) {\r\n    return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n  }\r\n}\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\n\r\nimport { DialogRef } from '../../../ui-kit/dialog/dialog-ref';\r\nimport { DialogConfig } from '../../../ui-kit/dialog/dialog-config';\r\n\r\n@Component({\r\n  selector: 'lib-iframe-integration',\r\n  templateUrl: './iframe-integration.component.html',\r\n})\r\nexport class IframeIntegrationComponent implements OnInit {\r\n  iFrameDetails: any;\r\n\r\n  constructor(\r\n    private dialogConfig: DialogConfig,\r\n    private dialogRef: DialogRef\r\n  ) {\r\n    this.iFrameDetails = this.dialogConfig.data;\r\n  }\r\n\r\n  ngOnInit(): void {}\r\n\r\n  closeDialog() {\r\n    this.dialogRef.close();\r\n  }\r\n\r\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\r\n    event: KeyboardEvent\r\n  ) {\r\n    this.closeDialog();\r\n  }\r\n}\r\n","<div class=\"schedule-meeting-popup\">\r\n  <div class=\"schedule-meeting-popup-box\">\r\n    <button\r\n      (click)=\"closeDialog()\"\r\n      class=\"close-btn vx-fs-14 vx-fw-600 vx-txt-white vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\r\n    >\r\n      <i class=\"icons\">&#xe9ae;</i>\r\n    </button>\r\n    <div class=\"schedule-meeting-popup-inner\">\r\n      <iframe\r\n        width=\"100%\"\r\n        height=\"690\"\r\n        id=\"iframe-integration\"\r\n        [src]=\"iFrameDetails.src | safe\"\r\n        [title]=\"iFrameDetails?.title\"\r\n        allowfullscreen\r\n      ></iframe>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[appInsertion]',\r\n})\r\nexport class InsertionDirective {\r\n  constructor(public viewContainerRef: ViewContainerRef) {}\r\n}\r\n","import { Component, Type, ComponentFactoryResolver, ViewChild, OnDestroy, ComponentRef, AfterViewInit, ChangeDetectorRef, OnInit } from '@angular/core';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { Subject } from 'rxjs';\r\nimport { DialogRef } from './dialog-ref';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { NavigationEnd, NavigationError, NavigationStart, Router, ROUTER_CONFIGURATION } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'app-dialog',\r\n  templateUrl: './dialog.component.html',\r\n  styleUrls: ['./dialog.component.css'],\r\n})\r\nexport class DialogComponent implements AfterViewInit, OnDestroy, OnInit {\r\n  componentRef!: ComponentRef<any>;\r\n  position: any;\r\n  background: any;\r\n  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  exports:[DialogComponent]\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, OnInit } from '@angular/core';\r\nimport { HeaderDetails } from '../../../interfaces/header-details.interface';\r\n\r\n@Component({\r\n  selector: 'lib-header',\r\n  templateUrl: './header.component.html',\r\n  styleUrls: ['./header.component.less'],\r\n  inputs: ['HEADER_DETAILS'],\r\n  outputs: ['onToggleChange'],\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n  HEADER_DETAILS!: HeaderDetails | null;\r\n\r\n  isToggleOn: boolean = true;\r\n\r\n  onToggleChange: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {}\r\n\r\n  toggleChange() {\r\n    this.isToggleOn = !this.isToggleOn;\r\n    this.onToggleChange.emit(this.isToggleOn);\r\n  }\r\n}\r\n","<div\r\n  class=\"support-item-top vx-d-flex vx-align-center vx-justify-between vx-p-4 vx-pr-5\"\r\n  (click)=\"toggleChange()\"\r\n>\r\n  <div class=\"vx-d-flex vx-align-center\">\r\n    <div class=\"support-icon vx-p-2 vx-mr-2\">\r\n      <img [src]=\"HEADER_DETAILS?.icon\" />\r\n    </div>\r\n    <div class=\"vx-d-block\">\r\n      <div class=\"vx-fs-14 vx-fw-500 vx-label-txt vx-lh-5\">\r\n        {{ HEADER_DETAILS?.name }}\r\n      </div>\r\n      <div class=\"vx-fs-11 vx-paragraph-txt vx-lh-4\">\r\n        {{ HEADER_DETAILS?.description }}\r\n      </div>\r\n    </div>\r\n  </div>\r\n  <i *ngIf=\"isToggleOn\" class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe9e7;</i>\r\n  <i *ngIf=\"!isToggleOn\" class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe9e8;</i>\r\n</div>\r\n","import { Component, EventEmitter, OnInit } from '@angular/core';\r\nimport { ButtonDetails } from '../../../interfaces/button-details.interface';\r\n\r\n@Component({\r\n  selector: 'lib-button',\r\n  templateUrl: './button.component.html',\r\n  styleUrls: ['./button.component.less'],\r\n  inputs: ['BUTTON_DETAILS'],\r\n  outputs: ['onActionTaken'],\r\n})\r\nexport class ButtonComponent implements OnInit {\r\n  BUTTON_DETAILS: ButtonDetails[] = [];\r\n\r\n  onActionTaken: EventEmitter<ButtonDetails> = new EventEmitter();\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {}\r\n\r\n  actionTaken(event: ButtonDetails) {\r\n    this.onActionTaken.emit(event);\r\n  }\r\n}\r\n","<div class=\"support-item-bottom vx-p-3 vx-pt-0 vx-pl-4\">\r\n  <div\r\n    *ngFor=\"let eachButton of BUTTON_DETAILS; let i = index\"\r\n    class=\"support-item-bottom-list vx-d-flex vx-align-center vx-justify-between vx-mt-3\"\r\n  >\r\n    <div class=\"vx-fs-13 vx-label-txt vx-lh-5\">{{ eachButton?.info }}</div>\r\n    <button\r\n      *ngIf=\"eachButton?.id !== 'email'\"\r\n      (click)=\"actionTaken(eachButton)\"\r\n      class=\"support-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center\"\r\n    >\r\n      <i class=\"icons vx-fs-12 vx-mr-2\" [innerHTML]=\"eachButton?.icon\"></i>\r\n      {{ eachButton?.name }}\r\n    </button>\r\n    <a\r\n      *ngIf=\"eachButton?.id === 'email'\"\r\n      (click)=\"actionTaken(eachButton)\"\r\n      class=\"vx-fs-11 vx-fw-500 vx-txt-blue vx-d-flex vx-align-center vx-lh-6\"\r\n      ><i class=\"icons vx-fs-12 vx-mr-2\">&#xea17;</i\r\n      ><span>{{ eachButton?.name }}</span></a\r\n    >\r\n  </div>\r\n</div>\r\n","import { AppTourDetails } from '../interfaces/button-details.interface';\r\n\r\nconst CDN = 'https://cdn.v-comply.com';\r\nexport const LIGHT_USER_CREATE_RESPONSIBILITY =\r\n  '/compliance/?appcue=d17525b8-dc2a-4e43-a8d6-c7f561986a96#/compliance/manage-responsibility?q=%7B%22byResponsibilities%22:%7B%22type%22:%5B%22my_responsibilities%22%5D,%22subType%22:%5B%22CC%22%5D%7D,%22byStatus%22:%7B%22type%22:%5B%22active%22%5D,%22subType%22:%5B%5D%7D,%22filterObject%22:%7B%22responsibilityCenter%22:%5B%5D,%22entrustedBy%22:%5B%5D,%22entrustedTo%22:%5B%5D,%22riskIds%22:%5B%5D,%22responsibilityCategory%22:%5B%5D%7D,%22timePeriodDetails%22:%7B%22type%22:%22%22,%22selectedPeriod%22:%22%22,%22selectedYear%22:%22%22%7D,%22status%22:%22%22%7D';\r\nexport const POWER_USER_CREATE_RESPONSIBILITY =\r\n  '/compliance/?appcue=5e7a7975-8af4-48c7-9dd4-7438000d43e9#/compliance/manage-responsibility?q=%7B%22byResponsibilities%22:%7B%22type%22:%5B%22my_responsibilities%22%5D,%22subType%22:%5B%22CC%22%5D%7D,%22byStatus%22:%7B%22type%22:%5B%22active%22%5D,%22subType%22:%5B%5D%7D,%22filterObject%22:%7B%22responsibilityCenter%22:%5B%5D,%22entrustedBy%22:%5B%5D,%22entrustedTo%22:%5B%5D,%22riskIds%22:%5B%5D,%22responsibilityCategory%22:%5B%5D%7D,%22timePeriodDetails%22:%7B%22type%22:%22%22,%22selectedPeriod%22:%22%22,%22selectedYear%22:%22%22%7D,%22status%22:%22%22%7D';\r\n\r\nexport let APP_TOURS: AppTourDetails[] = [\r\n  {\r\n    module: 'Settings',\r\n    actionName: 'Edit Organization Profile',\r\n    description: `Edit your organization's account settings.`,\r\n    permaLink:\r\n      '/global-dashboard/compliance_dashboard?appcue=47136a71-5865-4487-b6e7-0b8a21033b2a',\r\n    visibility: 'Key Power User',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/edit-org-profile.svg`,\r\n    id: 'EDIT_ORG_PROFILE',\r\n  },\r\n  {\r\n    module: 'Settings',\r\n    actionName: 'Edit Profile',\r\n    description: 'Edit your profile details.',\r\n    permaLink:\r\n      '/global-dashboard/compliance_dashboard?appcue=f7198539-0ffa-4278-bea3-889d5e421276',\r\n    visibility: 'All',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/edit-user-profile.svg`,\r\n    id: 'EDIT_PROFILE',\r\n  },\r\n\r\n  {\r\n    module: 'Organization',\r\n    actionName: 'Add a User',\r\n    description: 'Add a new user to the VComply account.',\r\n    permaLink:\r\n      '/organization/?appcue=db1567c1-7661-49fb-a951-5fdf4d29632c#/manage-users',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/add-a-user.svg`,\r\n    id: 'ADD_A_USER',\r\n  },\r\n  {\r\n    module: 'Organization',\r\n    actionName: 'Add a User Group',\r\n    description: 'Create a user group in the VComply account.',\r\n    permaLink:\r\n      '/organization/?appcue=88980517-8cf2-43b6-a7dc-071fc4a4cff8#/manage-groups',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/create-group.svg`,\r\n    id: 'ADD_A_USER_GROUP',\r\n  },\r\n  {\r\n    module: 'Settings',\r\n    actionName: 'Sync Calendar',\r\n    description: `Sync your external calendar with VComply's responsibility calendar.`,\r\n    permaLink:\r\n      '/global-dashboard/compliance_dashboard?appcue=876dd9bf-62f9-4cab-b62d-14d9544a5d8b',\r\n    visibility: 'All',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/sync-calendar.svg`,\r\n    id: 'SYNC_CALENDAR',\r\n  },\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Add a Program',\r\n    description: 'Add a compliance program.',\r\n    permaLink:\r\n      '/program/manage-program-categories/programs-overview?appcue=95b48d89-dda1-44c1-b9ca-dd4c7ea8ca1a',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/add-a-program.svg`,\r\n    id: 'ADD_A_PROGRAM',\r\n  },\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Add a Program Category',\r\n    description: 'Add sub-categories within an existing program.',\r\n    permaLink:\r\n      '/program/manage-program-categories/programs-overview?appcue=410dd6f4-50db-461d-a76d-a0534bd4fc32',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/add-program-category.svg`,\r\n    id: 'ADD_A_PROGRAM_CATEGORY',\r\n  },\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Add a Responsibility',\r\n    description: 'Add a responsibility.',\r\n    permaLink:\r\n      '/program/manage-program-categories/programs-overview?appcue=bd68609d-954a-4d26-9336-5d36d3c1a20f',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/add-a-responsibility.svg`,\r\n    id: 'ADD_A_RESPONSIBILITY',\r\n  },\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Add a Responsibility from a Program Workroom',\r\n    description: 'Add a responsibility from the program workroom.',\r\n    permaLink:\r\n      '/program/manage-program-categories/programs-overview?appcue=baebf693-8eab-461c-aa6b-0da96648fa33',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/add-a-responsibility-from-program.svg`,\r\n    id: 'ADD_PROGRAM_RESPONSIBILITY',\r\n  },\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Complete a Responsibility',\r\n    description: 'Complete a responsibility on the VComply platform.',\r\n    permaLink: LIGHT_USER_CREATE_RESPONSIBILITY,\r\n    visibility: 'Light User',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/complete-a-responsibility.svg`,\r\n    id: 'COMPLETE_A_RESPONSIBILITY',\r\n  },\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Delete a Program ',\r\n    description: `Delete a program that's no longer required.`,\r\n    permaLink:\r\n      '/program/manage-program-categories/programs-overview?appcue=87b14d17-323c-4164-98ed-03be53a68689',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/delete-program.svg`,\r\n    id: 'DELETE_A_PROGRAM',\r\n  },\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Delete a Program Category',\r\n    description: `Delete a program category or sub-category that's no longer required.`,\r\n    permaLink:\r\n      '/program/manage-program-categories/programs-overview?appcue=205aa5af-89d1-4d3f-b971-e96d0a9211a0',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/delete-program-category.svg`,\r\n    id: 'DELETE_A_PROGRAM_CATEGORY',\r\n  },\r\n\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Delete a Responsibility',\r\n    description: `Delete a responsibility that's no longer required.`,\r\n    permaLink:\r\n      '/compliance/?appcue=9f273e7f-c4f6-4516-87ea-f81993ff5b12#/compliance/manage-responsibility?q=%7B%22byResponsibilities%22:%7B%22type%22:%5B%22manage_responsibilities%22%5D,%22subType%22:%5B%22CC%22%5D%7D,%22byStatus%22:%7B%22type%22:%5B%22active%22%5D,%22subType%22:%5B%5D%7D,%22filterObject%22:%7B%22responsibilityCenter%22:%5B%5D,%22entrustedBy%22:%5B%5D,%22entrustedTo%22:%5B%5D,%22riskIds%22:%5B%5D,%22responsibilityCategory%22:%5B%5D%7D,%22timePeriodDetails%22:%7B%22type%22:%22%22,%22selectedPeriod%22:%22%22,%22selectedYear%22:%22%22%7D,%22status%22:%22%22%7D',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/delete-a-responsibility.svg`,\r\n    id: 'DELETE_A_RESPONSIBILITY',\r\n  },\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Duplicate a Responsibility',\r\n    description: 'Create a duplicate version of a responsibility.',\r\n    permaLink:\r\n      '/compliance/?appcue=72734bee-c62d-48b7-91b4-24b2cce9fd1a#/compliance/manage-responsibility?q=%7B%22byResponsibilities%22:%7B%22type%22:%5B%22manage_responsibilities%22%5D,%22subType%22:%5B%22CC%22%5D%7D,%22byStatus%22:%7B%22type%22:%5B%22active%22%5D,%22subType%22:%5B%5D%7D,%22filterObject%22:%7B%22responsibilityCenter%22:%5B%5D,%22entrustedBy%22:%5B%5D,%22entrustedTo%22:%5B%5D,%22riskIds%22:%5B%5D,%22responsibilityCategory%22:%5B%5D%7D,%22timePeriodDetails%22:%7B%22type%22:%22%22,%22selectedPeriod%22:%22%22,%22selectedYear%22:%22%22%7D,%22status%22:%22%22%7D',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/duplicate-a-responsibility.svg`,\r\n    id: 'DUPLICATE_A_RESPONSIBILITY',\r\n  },\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Edit a Program',\r\n    description: `Edit a program's details.`,\r\n    permaLink:\r\n      '/program/manage-program-categories/programs-overview?appcue=8bc6b1fa-66d3-4702-abf9-a05f57f88a8e',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/add-a-program-edit.svg`,\r\n    id: 'EDIT_A_PROGRAM',\r\n  },\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Edit a Program Category',\r\n    description: `Edit a program category or sub-category's details.`,\r\n    permaLink:\r\n      '/program/manage-program-categories/programs-overview?appcue=d1f6bef3-3fb4-4c99-aa96-33e219b343b8',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/edit-program-category.svg`,\r\n    id: 'EDIT_A_PROGRAM_CATEGORY',\r\n  },\r\n\r\n  {\r\n    module: 'Compliance',\r\n    actionName: 'Link Existing Responsibility to a Program',\r\n    description: 'Link an existing responsibility to a program.',\r\n    permaLink:\r\n      '/program/manage-program-categories/programs-overview?appcue=ec21e8a1-74fe-485d-9866-447bf1bb46f6',\r\n    visibility: 'Power user',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/link-responsibility.svg`,\r\n    id: 'LINK_EXISTING_RESPONSIBILITY',\r\n  },\r\n  // {\r\n  //   module: 'Compliance',\r\n  //   actionName: 'Link policies with a program',\r\n  //   description: 'Link policies to a compliance program.',\r\n  //   permaLink:\r\n  //     '/program/manage-program-categories/programs-overview?appcue=a1ef7648-9339-47ee-a4e0-f630b3c260d5',\r\n  //   visibility: 'Power user',\r\n  //   iconURL: `${CDN}/libraries/support/app-tour-icons/link-policy.svg`,\r\n  //   id: 'LINK_POLICIES_WITH_PROGRAM',\r\n  // },\r\n\r\n  // {\r\n  //   module: 'Compliance',\r\n  //   actionName: 'Unlink Policies from a Program',\r\n  //   description: 'Unlink policies from a compliance program.',\r\n  //   permaLink:\r\n  //     '/program/manage-program-categories/programs-overview?appcue=be42c2e7-c10b-419e-9b36-78b91f7ada9a',\r\n  //   visibility: 'Power user',\r\n  //   iconURL: `${CDN}/libraries/support/app-tour-icons/unlink-policy.svg`,\r\n  //   id: 'UNLINK_POLICIES_FROM_PROGRAM',\r\n  // },\r\n\r\n  // {\r\n  //   module: 'Policy',\r\n  //   actionName: 'Access a Policy',\r\n  //   description: 'need clarity',\r\n  //   permaLink: '',\r\n  //   visibility: 'All',\r\n  //   iconURL: `${CDN}/libraries/support/app-tour-icons/access-policy.svg`,\r\n  // },\r\n\r\n  {\r\n    module: 'Policy',\r\n    actionName: 'Attest a Policy',\r\n    description: 'Attest a policy on VComply.',\r\n    permaLink:\r\n      '/all/policy/policy-portal?appcue=9cd81a90-7b8b-4d9e-af26-3cc4f426bd08',\r\n    visibility: 'All',\r\n    iconURL: `${CDN}/libraries/support/app-tour-icons/attest-policy.svg`,\r\n    id: 'ATTEST_A_POLICY',\r\n  },\r\n];\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { forkJoin, of } from 'rxjs';\r\nimport { catchError, map, retry } from 'rxjs/operators';\r\nimport { Configurations } from '../../configuration';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AuthorizerService } from '@vcomply/authorizer';\r\nimport {\r\n  APP_TOURS,\r\n  POWER_USER_CREATE_RESPONSIBILITY,\r\n} from '../constants/app-tour.constant';\r\nimport { CommonService } from './common.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class PermissionManagerService {\r\n  public appTourList: any[] = [];\r\n  public loader: boolean = false;\r\n  private env: any;\r\n\r\n  constructor(\r\n    private http: HttpClient,\r\n    private authorizer: AuthorizerService,\r\n    private commonService: CommonService,\r\n    @Optional() config?: Configurations\r\n  ) {\r\n    this.env = config?.envConfig;\r\n  }\r\n\r\n  public getPermission(feature?: any) {\r\n    this.loader = true;\r\n    forkJoin([this.getSubscriptionDetails(), this.getUserDetails()]).subscribe(\r\n      (permissionResponse: any) => {\r\n        this.checkPermission(permissionResponse);\r\n        this.loader = false;\r\n      }\r\n    );\r\n  }\r\n\r\n  private getSubscriptionDetails() {\r\n    return this.http\r\n      .get(this.env.organizationGet + 'subscriptionList&isAuth=true')\r\n      .pipe(\r\n        map((res: any) => {\r\n          return res[0];\r\n        }),\r\n        catchError((err: Error) => of(err))\r\n      )\r\n      .pipe(retry(2));\r\n  }\r\n\r\n  private getUserDetails() {\r\n    return this.http\r\n      .get(\r\n        this.env.organizationGet +\r\n          'memberFindbyId&id=' +\r\n          (this.authorizer.getMemberId() ?? '') +\r\n          '&isAuth=true'\r\n      )\r\n      .pipe(retry(2));\r\n  }\r\n\r\n  checkPermission(permissionResponse: any[]): string[] {\r\n    let permissionArray: string[] = [\r\n      'EDIT_PROFILE',\r\n      'SYNC_CALENDAR',\r\n      'COMPLETE_A_RESPONSIBILITY',\r\n    ];\r\n    const [SUBSCRIPTION_DETAILS, USER_DETAILS] = permissionResponse;\r\n    const IS_LIGHT_USER =\r\n      this.getRoleActions('compliance', USER_DETAILS.roleActions).length === 0;\r\n    const isAppTours: boolean =\r\n      this.commonService.featureFlag?.isFeatureEnabled('ff_app_tours');\r\n    const TOURS_WITH_FEATURE_FLAG = [\r\n      'ADD_A_USER',\r\n      'ADD_A_USER_GROUP',\r\n      'COMPLETE_A_RESPONSIBILITY',\r\n      'DUPLICATE_A_RESPONSIBILITY',\r\n    ];\r\n    permissionArray = permissionArray.concat(\r\n      this.getCompliancePermission(USER_DETAILS),\r\n      this.getOrgPermission(USER_DETAILS),\r\n      this.getPolicyPermission(SUBSCRIPTION_DETAILS, USER_DETAILS)\r\n    );\r\n    this.appTourList = APP_TOURS.filter((tours: any) => {\r\n      if (tours.id === 'COMPLETE_A_RESPONSIBILITY' && !IS_LIGHT_USER) {\r\n        tours['visibility'] = 'Power User';\r\n        tours['permaLink'] = POWER_USER_CREATE_RESPONSIBILITY;\r\n      }\r\n\r\n      if (\r\n        ((!isAppTours && !TOURS_WITH_FEATURE_FLAG.includes(tours.id)) ||\r\n          isAppTours) &&\r\n        permissionArray.includes(tours.id)\r\n      )\r\n        return tours;\r\n    });\r\n    return permissionArray;\r\n  }\r\n\r\n  private getRoleActions(\r\n    module: 'compliance' | 'policy' | 'organization',\r\n    roleActions: any[]\r\n  ) {\r\n    const PERMISSION_ARRAY: string[] = [];\r\n    const roleDetails = roleActions.find(\r\n      (role: any) => role.isActive && role.moduleName === module\r\n    );\r\n    if (roleDetails) {\r\n      const moduleSubModulesMap: any = {\r\n        compliance: {\r\n          programs: {\r\n            permissionCode: 'CPMP',\r\n            permissionName: 'MANAGE_PROGRAMS',\r\n          },\r\n          responsibilities: {\r\n            permissionCode: 'CRMR',\r\n            permissionName: 'MANAGE_RESPONSIBILITIES',\r\n          },\r\n        },\r\n        policy: {\r\n          policies: {\r\n            permissionCode: 'PPMP',\r\n            permissionName: 'MANAGE_POLICIES',\r\n          },\r\n        },\r\n        organization: {\r\n          users: {\r\n            permissionCode: 'OUMU',\r\n            permissionName: 'MANAGE_USERS',\r\n          },\r\n          groups: {\r\n            permissionCode: 'OGMG',\r\n            permissionName: 'MANAGE_GROUPS',\r\n          },\r\n        },\r\n      };\r\n      roleDetails.subModule.forEach((subModule: any) => {\r\n        if (subModule.isActive) {\r\n          const moduleSubModuleMap =\r\n            moduleSubModulesMap[module][subModule.subModuleName.toLowerCase()];\r\n          if (moduleSubModuleMap) {\r\n            const CHECK_PERMISSION = subModule.permissions.find(\r\n              (permission: any) =>\r\n                permission.code === moduleSubModuleMap.permissionCode &&\r\n                permission.enable\r\n            );\r\n            if (CHECK_PERMISSION) {\r\n              PERMISSION_ARRAY.push(moduleSubModuleMap.permissionName);\r\n            }\r\n          }\r\n        }\r\n      });\r\n    }\r\n    return PERMISSION_ARRAY;\r\n  }\r\n\r\n  private getCompliancePermission(userDetails: any) {\r\n    const COMPLIANCE_PERMISSION: string[] = [];\r\n    const getCompliancePermissionDetails = this.getRoleActions(\r\n      'compliance',\r\n      userDetails.roleActions\r\n    );\r\n\r\n    getCompliancePermissionDetails.forEach((eachPermission: any) => {\r\n      if (eachPermission === 'MANAGE_RESPONSIBILITIES') {\r\n        COMPLIANCE_PERMISSION.push(\r\n          'ADD_PROGRAM_RESPONSIBILITY',\r\n          'ADD_A_RESPONSIBILITY',\r\n          'DELETE_A_RESPONSIBILITY',\r\n          'DUPLICATE_A_RESPONSIBILITY',\r\n          'LINK_EXISTING_RESPONSIBILITY'\r\n        );\r\n      }\r\n\r\n      if (eachPermission === 'MANAGE_PROGRAMS') {\r\n        COMPLIANCE_PERMISSION.push(\r\n          'ADD_A_PROGRAM_CATEGORY',\r\n          'ADD_A_PROGRAM',\r\n          'DELETE_A_PROGRAM_CATEGORY',\r\n          'DELETE_A_PROGRAM',\r\n          'EDIT_A_PROGRAM_CATEGORY',\r\n          'EDIT_A_PROGRAM'\r\n        );\r\n      }\r\n    });\r\n\r\n    return COMPLIANCE_PERMISSION;\r\n  }\r\n\r\n  private getOrgPermission(userDetails: any) {\r\n    const ORG_PERMISSION: string[] = [];\r\n    if (this.authorizer.isKeyAdmin()) {\r\n      ORG_PERMISSION.push('EDIT_ORG_PROFILE');\r\n    }\r\n    const getOrgPermissionDetails = this.getRoleActions(\r\n      'organization',\r\n      userDetails.roleActions\r\n    );\r\n    getOrgPermissionDetails.forEach((eachPermission: any) => {\r\n      if (eachPermission === 'MANAGE_USERS') {\r\n        ORG_PERMISSION.push('ADD_A_USER');\r\n      }\r\n\r\n      if (eachPermission === 'MANAGE_GROUPS') {\r\n        ORG_PERMISSION.push('ADD_A_USER_GROUP');\r\n      }\r\n    });\r\n    return ORG_PERMISSION;\r\n  }\r\n\r\n  private getPolicyPermission(SUBSCRIPTION_DETAILS: any, userDetails: any) {\r\n    const POLICY_PERMISSION: string[] = [];\r\n    if (SUBSCRIPTION_DETAILS?.policy_flag) {\r\n      POLICY_PERMISSION.push('ATTEST_A_POLICY');\r\n      const getPolicyPermissionDetails = this.getRoleActions(\r\n        'policy',\r\n        userDetails.roleActions\r\n      );\r\n      if (getPolicyPermissionDetails.includes('MANAGE_POLICIES')) {\r\n        POLICY_PERMISSION.push(\r\n          'POLICY_PERMISSION',\r\n          'UNLINK_POLICIES_FROM_PROGRAM'\r\n        );\r\n      }\r\n    }\r\n\r\n    return POLICY_PERMISSION;\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-app-tour-loader',\r\n  templateUrl: './app-tour-loader.component.html',\r\n  styleUrls: ['./app-tour-loader.component.less']\r\n})\r\nexport class AppTourLoaderComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<div class=\"app-tour-item-loader vx-p-4 vx-mb-2 vx-d-flex vx-align-center vx-justify-between\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\r\n    <div class=\"vx-d-flex vx-align-center\">\r\n        <div class=\"app-tour-icon vx-mr-2 vx-d-flex vx-align-center vx-justify-center\"></div>\r\n        <div class=\"vx-d-block\">\r\n            <div class=\"loader-support\" *ngFor=\"let data of [1, 1]\"></div>\r\n        </div>\r\n    </div>\r\n    <div class=\"explore-btn\">\r\n        <div class=\"loader-support\"></div>\r\n    </div>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { PermissionManagerService } from '../../../services/permission-manager.service';\r\n\r\n@Component({\r\n  selector: 'lib-app-tours',\r\n  templateUrl: './app-tours.component.html',\r\n  styleUrls: ['./app-tours.component.less'],\r\n  inputs: ['feature'],\r\n})\r\nexport class AppToursComponent implements OnInit {\r\n  feature: any;\r\n  constructor(public getPermission: PermissionManagerService) {\r\n    this.getPermission.getPermission(this.feature);\r\n  }\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","<div class=\"app-tour-dialog\">\r\n  <div class=\"app-tour-dialog-body\">\r\n    <div class=\"app-tour-dialog-inner\">\r\n      <ng-container *ngIf=\"!getPermission.loader\">\r\n        <div\r\n          *ngFor=\"let tour of getPermission.appTourList\"\r\n          class=\"app-tour-item vx-p-4 vx-mb-2 vx-d-flex vx-align-center vx-justify-between\"\r\n        >\r\n          <div class=\"vx-d-flex vx-align-center\">\r\n            <div\r\n              class=\"app-tour-icon vx-mr-2 vx-d-flex vx-align-center vx-justify-center\"\r\n            >\r\n              <img [src]=\"tour?.iconURL\" />\r\n            </div>\r\n            <div class=\"vx-d-block\">\r\n              <div class=\"vx-fs-14 vx-fw-500 vx-label-txt vx-lh-5\">\r\n                {{ tour?.actionName }}\r\n              </div>\r\n              <div class=\"vx-fs-11 vx-paragraph-txt vx-lh-4\">\r\n                {{ tour?.description }}\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <!--   [href]=\"tour.permaLink | redirectUrl\" -->\r\n          <a\r\n            [id]=\"tour.id | lowercase\"\r\n            class=\"explore-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-lh-6\"\r\n          >\r\n            EXPLORE\r\n          </a>\r\n        </div>\r\n      </ng-container>\r\n      <app-app-tour-loader *ngIf=\"getPermission.loader\"></app-app-tour-loader>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, Optional } from '@angular/core';\r\nimport { Configurations } from '../../../configuration';\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 {\r\n  vLoader: any;\r\n\r\n  public env!: any;\r\n\r\n  constructor(@Optional() config?: Configurations) {\r\n    if (config) {\r\n      this.env = config.envConfig;\r\n    }\r\n    this.vLoader = this.env.vLoader;\r\n  }\r\n}\r\n","<div class=\"inline-loader\">\r\n  <img src=\"{{vLoader}}\" alt=\"\" />\r\n  <div class=\"loader-index\">\r\n    <div class=\"loader-index-circle\"></div>\r\n  </div>\r\n</div>","import { Component, EventEmitter, OnInit, Renderer2 } from '@angular/core';\r\nimport { Header } from '../../../constants/header-details.constant';\r\nimport { button } from '../../../constants/button-details.constants';\r\nimport { HubspotService } from '../../../services/hubspot.service';\r\nimport { HUBSPOT, PORTAL_TICKET } from '../../../constants/hub-spot.constant';\r\nimport { DialogService } from '../../../../ui-kit/dialog/dialog.service';\r\nimport { IframeIntegrationComponent } from '../../iframe-integration/iframe-integration.component';\r\n\r\ndeclare var hbspt: any;\r\n\r\n@Component({\r\n  selector: 'lib-support-container',\r\n  templateUrl: './support-container.component.html',\r\n  styleUrls: ['./support-container.component.less'],\r\n  inputs: ['isTrialUser', 'isSupportTicket', 'isTour', 'feature'],\r\n  outputs: ['isSupportRequest'],\r\n})\r\nexport class SupportContainerComponent implements OnInit {\r\n  HEADER_DETAILS: any = Header;\r\n  BUTTON_DETAILS: any = button;\r\n\r\n  supportSpecialist = HUBSPOT.SUPPORT_PROFILE;\r\n  isTrialUser: boolean = false;\r\n  type: string[] = [];\r\n  iFrameDetails: any;\r\n  isSupportTicket: boolean = false;\r\n  isLoader: boolean = false;\r\n  isTour: boolean = false;\r\n  feature: any;\r\n\r\n  isSupportRequest: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor(\r\n    private hubspotService: HubspotService,\r\n    private dialogService: DialogService,\r\n    private renderer: Renderer2\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    this.setSupportSpecialist();\r\n    this.setSupportChat();\r\n  }\r\n\r\n  setSupportSpecialist() {\r\n    this.BUTTON_DETAILS.SUPPORT_SPECIALIST =\r\n      this.BUTTON_DETAILS.SUPPORT_SPECIALIST.map((details: any) => {\r\n        if (details.id === 'email') {\r\n          details.name = this.supportSpecialist.email;\r\n        }\r\n        return details;\r\n      });\r\n  }\r\n\r\n  setSupportChat() {\r\n    if (this.isTrialUser) {\r\n      this.BUTTON_DETAILS.CHAT_BOT = this.BUTTON_DETAILS.CHAT_BOT.filter(\r\n        (button: any) => button.id !== 'start'\r\n      );\r\n    }\r\n  }\r\n\r\n  onToggleChange(event: any, type: string) {\r\n    if (event) {\r\n      this.type = this.type.filter((ele) => ele !== type);\r\n    } else {\r\n      this.type.push(type);\r\n    }\r\n  }\r\n\r\n  onActionTaken(event: any) {\r\n    switch (event.id) {\r\n      case 'start':\r\n        this.isLoader = true;\r\n        this.setLoaderFalse();\r\n        this.hubspotService.loadChatbotWidget();\r\n        break;\r\n      case 'message':\r\n        this.openEmail(HUBSPOT.HELP_EMAIL);\r\n        break;\r\n      case 'support_ticket':\r\n        this.openSupportTicket(true);\r\n        break;\r\n      case 'portal_ticket':\r\n        window.open(PORTAL_TICKET, '_blank');\r\n        break;\r\n      case 'meeting':\r\n        this.openSupportSpecialist(event);\r\n        break;\r\n      case 'email':\r\n        this.openEmail(this.supportSpecialist.email);\r\n        break;\r\n      case 'app_tours':\r\n        this.isTour = true;\r\n        this.isSupportRequest.emit({ type: 'app-tour', status: true });\r\n\r\n        break;\r\n    }\r\n  }\r\n\r\n  openSupportTicket(event: any) {\r\n    this.isLoader = true;\r\n    this.loadFormScript();\r\n\r\n    this.isSupportTicket = event;\r\n    this.isSupportRequest.emit({ type: 'support_request', status: event });\r\n  }\r\n\r\n  openSupportSpecialist(event: any) {\r\n    const SUPPORT_SPECIALIST = {\r\n      src: HUBSPOT.MEETING_LINK,\r\n      title: '',\r\n      id: event.id,\r\n    };\r\n    this.dialogService\r\n      .open(IframeIntegrationComponent, {\r\n        data: SUPPORT_SPECIALIST,\r\n        position: 'CENTER',\r\n        background: 'black',\r\n      })\r\n      .afterClosed.subscribe({\r\n        next: (res: any) => {},\r\n        error: (error: Error) => {},\r\n      });\r\n  }\r\n\r\n  private openEmail(email: string) {\r\n    window.open(`mailto:${email}`, '_self');\r\n  }\r\n\r\n  private loadFormScript() {\r\n    const SCRIPT_ELEMENT = this.hubspotService.loadScript(\r\n      this.renderer,\r\n      HUBSPOT.CREATE_SUPPORT_TICKET_URL\r\n    );\r\n\r\n    SCRIPT_ELEMENT.onload = (res: any) => {\r\n      hbspt.forms.create(HUBSPOT.FORM_CONFIG);\r\n    };\r\n    this.setLoaderFalse();\r\n  }\r\n\r\n  private setLoaderFalse() {\r\n    setTimeout(() => {\r\n      this.isLoader = false;\r\n    }, 500);\r\n  }\r\n}\r\n","<div class=\"support-dialog-body\" [class.with-tour]=\"isTour\" [class.with-form]=\"isSupportTicket\">\r\n  <ng-container *ngIf=\"!isSupportTicket && !isTour\">\r\n    <div class=\"support-item vx-mb-3\">\r\n      <lib-header\r\n        [HEADER_DETAILS]=\"HEADER_DETAILS?.CHAT_BOT\"\r\n        (onToggleChange)=\"onToggleChange($event, HEADER_DETAILS.CHAT_BOT.type)\"\r\n      ></lib-header>\r\n      <lib-button\r\n        *ngIf=\"!type.includes(HEADER_DETAILS.CHAT_BOT.type)\"\r\n        [BUTTON_DETAILS]=\"BUTTON_DETAILS?.CHAT_BOT\"\r\n        (onActionTaken)=\"onActionTaken($event)\"\r\n      ></lib-button>\r\n    </div>\r\n    <div class=\"support-item vx-mb-3\">\r\n      <lib-header\r\n        [HEADER_DETAILS]=\"HEADER_DETAILS?.SUPPORT_REQUEST\"\r\n        (onToggleChange)=\"\r\n          onToggleChange($event, HEADER_DETAILS.SUPPORT_REQUEST.type)\r\n        \"\r\n      ></lib-header>\r\n      <lib-button\r\n        *ngIf=\"!type.includes(HEADER_DETAILS.SUPPORT_REQUEST.type)\"\r\n        [BUTTON_DETAILS]=\"BUTTON_DETAILS?.SUPPORT_REQUEST\"\r\n        (onActionTaken)=\"onActionTaken($event)\"\r\n      ></lib-button>\r\n    </div>\r\n\r\n    <div class=\"support-item vx-mb-3\">\r\n      <lib-header\r\n        [HEADER_DETAILS]=\"HEADER_DETAILS?.SUPPORT_SPECIALIST\"\r\n        (onToggleChange)=\"\r\n          onToggleChange($event, HEADER_DETAILS.SUPPORT_SPECIALIST.type)\r\n        \"\r\n      ></lib-header>\r\n      <ng-container\r\n        *ngIf=\"!type.includes(HEADER_DETAILS.SUPPORT_SPECIALIST.type)\"\r\n      >\r\n        <div\r\n          class=\"support-details vx-pt-4 vx-pb-4 vx-pr-1 vx-d-flex vx-align-center vx-ml-4 vx-mr-4\"\r\n        >\r\n          <img [src]=\"supportSpecialist?.support_images\" />\r\n          <div class=\"vx-d-block\">\r\n            <div class=\"vx-fs-13 vx-label-txt vx-lh-5 vx-mb-1\">\r\n              {{ supportSpecialist?.support_name }}\r\n            </div>\r\n            <div class=\"vx-fs-11 vx-paragraph-txt\">\r\n              {{ supportSpecialist?.support_name }}\r\n              {{ supportSpecialist.supportText }}\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <lib-button\r\n          [BUTTON_DETAILS]=\"BUTTON_DETAILS?.SUPPORT_SPECIALIST\"\r\n          (onActionTaken)=\"onActionTaken($event)\"\r\n        ></lib-button>\r\n      </ng-container>\r\n    </div>\r\n    <div class=\"support-item vx-mb-3\">\r\n      <lib-header\r\n        [HEADER_DETAILS]=\"HEADER_DETAILS?.APP_TOURS\"\r\n        (onToggleChange)=\"onToggleChange($event, HEADER_DETAILS.APP_TOURS.type)\"\r\n      ></lib-header>\r\n      <lib-button\r\n        *ngIf=\"!type.includes(HEADER_DETAILS.APP_TOURS.type)\"\r\n        [BUTTON_DETAILS]=\"BUTTON_DETAILS?.APP_TOURS\"\r\n        (onActionTaken)=\"onActionTaken($event)\"\r\n      ></lib-button>\r\n    </div>\r\n  </ng-container>\r\n  <div\r\n    *ngIf=\"isSupportTicket\"\r\n    class=\"support-request-dialog-mid\"\r\n    id=\"hubspotForm\"\r\n  ></div>\r\n  <lib-app-tours *ngIf=\"isTour\" [feature]=\"feature\"></lib-app-tours>\r\n  <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\r\n</div>\r\n","import {\r\n  Directive,\r\n  Input,\r\n  ElementRef,\r\n  HostListener,\r\n  Renderer2,\r\n  OnInit,\r\n  AfterViewInit,\r\n  ViewChild,\r\n} 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, 'fl-tooltip-show');\r\n    } else {\r\n      if (\r\n        element.scrollWidth * element.scrollHeight >\r\n        element.offsetWidth * element.offsetHeight\r\n      ) {\r\n        this.setPosition();\r\n        this.renderer.addClass(this.tooltip, 'fl-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(\r\n          document.body,\r\n          document.getElementById('tooltip')\r\n        );\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, 'fl-tooltip');\r\n    this.renderer.addClass(this.tooltip, `fl-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 =\r\n      window.pageYOffset ||\r\n      document.documentElement.scrollTop ||\r\n      document.body.scrollTop ||\r\n      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, `fl-tooltip-bottom`);\r\n        this.renderer.addClass(this.tooltip, `fl-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        left = hostPos.left;\r\n        this.renderer.removeClass(this.tooltip, `fl-tooltip-bottom-left`);\r\n        this.renderer.addClass(this.tooltip, `fl-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 {\r\n  Component,\r\n  EventEmitter,\r\n  HostListener,\r\n  Renderer2,\r\n  OnInit,\r\n} from '@angular/core';\r\nimport { HubspotService } from './shared/services/hubspot.service';\r\nimport { HUBSPOT } from './shared/constants/hub-spot.constant';\r\nimport { TokenValidatorService } from './shared/services/token-validator.service';\r\nimport { CommonService } from './shared/services/common.service';\r\n\r\n@Component({\r\n  selector: 'lib-support-chatbot',\r\n  template: `\r\n    <div class=\"support-dialog\">\r\n      <div\r\n        class=\"support-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n      >\r\n        <div class=\"vx-fs-14 vx-fw-500 vx-label-txt vx-d-flex vx-align-center\">\r\n          <button\r\n            *ngIf=\"isBack\"\r\n            (click)=\"back()\"\r\n            class=\"back-btn vx-fs-16 vx-label-txt vx-p-0 vx-m-0 vx-mr-2 vx-d-flex vx-align-center\"\r\n          >\r\n            <i class=\"icons\">&#xe91d;</i>\r\n          </button>\r\n          {{ headerText }}\r\n        </div>\r\n        <button\r\n          (click)=\"closeDialog()\"\r\n          class=\"support-dialog-close vx-fs-16 vx-label-txt vx-p-0 vx-m-0 vx-lh-4 vx-d-flex vx-align-center\"\r\n          [arTooltip]=\"'[ESC] to close'\"\r\n          placement=\"left\"\r\n          type=\"black\"\r\n          delay=\"0\"\r\n          [tooltipMandatory]=\"true\"\r\n        >\r\n          <i class=\"icons\">&#xe93f;</i>\r\n        </button>\r\n      </div>\r\n      <lib-support-container\r\n        [isTrialUser]=\"isTrialUser\"\r\n        [isSupportTicket]=\"isSupportRequest\"\r\n        [isTour]=\"isTour\"\r\n        [feature]=\"feature\"\r\n        (isSupportRequest)=\"setHeaderText($event)\"\r\n      ></lib-support-container>\r\n    </div>\r\n  `,\r\n  styleUrls: ['./support-chatbot.component.less'],\r\n  inputs: ['isTrialUser', 'feature'],\r\n  outputs: ['onClose'],\r\n})\r\nexport class SupportChatbotComponent implements OnInit {\r\n  isTrialUser: boolean = false;\r\n  headerText: string = 'Support';\r\n  isSupportRequest: boolean = false;\r\n  isBack: boolean = false;\r\n  isTour: boolean = false;\r\n  feature: any;\r\n\r\n  onClose: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor(\r\n    private hubspotService: HubspotService,\r\n    private tokenValidatorService: TokenValidatorService,\r\n    private renderer: Renderer2,\r\n    private commonService: CommonService\r\n  ) {}\r\n  ngOnInit(): void {\r\n    this.commonService.featureFlag = this.feature;\r\n    this.setHubspot();\r\n  }\r\n\r\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\r\n    event: KeyboardEvent\r\n  ) {\r\n    this.closeDialog();\r\n  }\r\n\r\n  loadHubspotScript() {\r\n    const SCRIPT_ELEMENT = this.hubspotService.loadScript(\r\n      this.renderer,\r\n      HUBSPOT.SCRIPT_URL\r\n    );\r\n    SCRIPT_ELEMENT.onload = (res: any) => {};\r\n  }\r\n\r\n  setHubspot() {\r\n    if (\r\n      this.hubspotService.getToken() &&\r\n      !this.tokenValidatorService.isTokenInvalid()\r\n    ) {\r\n      this.hubspotService.setInitialState();\r\n      this.loadHubspotScript();\r\n    } else {\r\n      this.hubspotService.generateToken();\r\n      this.hubspotService.$onLoadToken.subscribe((res: any) => {\r\n        if (res) this.loadHubspotScript();\r\n      });\r\n    }\r\n  }\r\n\r\n  setHeaderText(isRequest: any) {\r\n    switch (isRequest.type) {\r\n      case 'support_request':\r\n        this.isSupportRequest = isRequest.status;\r\n        this.isBack = this.isSupportRequest;\r\n        this.headerText = 'Support Request';\r\n        this.isTour = false;\r\n        break;\r\n      case 'app-tour':\r\n        this.isBack = isRequest.status;\r\n        this.isSupportRequest = false;\r\n        this.headerText = 'VComply App Tours';\r\n        this.isTour = isRequest.status;\r\n        break;\r\n    }\r\n    if (!isRequest.status) {\r\n      this.headerText = 'Support';\r\n    }\r\n  }\r\n\r\n  back() {\r\n    this.headerText = 'Support';\r\n    this.isSupportRequest = false;\r\n    this.isTour = false;\r\n    this.isBack = false;\r\n  }\r\n\r\n  closeDialog(data?: any) {\r\n    this.onClose.emit(data);\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { ButtonComponent } from './button/button.component';\r\n\r\n@NgModule({\r\n  declarations: [HeaderComponent, ButtonComponent],\r\n  imports: [CommonModule],\r\n  exports: [HeaderComponent, ButtonComponent],\r\n})\r\nexport class SupportListModule {}\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: 'redirectUrl',\r\n})\r\nexport class RedirectUrlPipe implements PipeTransform {\r\n  transform(value: string): string {\r\n    let url = '';\r\n    const locationUrl = window.location.host + value;\r\n    if (window.location.host.startsWith('localhost')) {\r\n      url = 'https://app-uat1.v-comply.com' + value;\r\n    } else {\r\n      url = 'https://' + locationUrl;\r\n    }\r\n    return url;\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { SafePipe } from './pipes/safe.pipe';\r\nimport { RedirectUrlPipe } from './pipes/redirect-url.pipe';\r\n\r\n@NgModule({\r\n  declarations: [SafePipe, RedirectUrlPipe],\r\n  imports: [CommonModule],\r\n  exports: [SafePipe, RedirectUrlPipe],\r\n})\r\nexport class PipesModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { LoaderInlineComponent } from './loader-inline/loader-inline.component';\r\n\r\n@NgModule({\r\n  declarations: [LoaderInlineComponent],\r\n  imports: [CommonModule],\r\n  exports: [LoaderInlineComponent],\r\n})\r\nexport class VLoaderModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AppTourLoaderComponent } from './app-tour-loader/app-tour-loader.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    AppTourLoaderComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    AppTourLoaderComponent\r\n  ]\r\n})\r\nexport class SkeletonLoaderModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AppToursComponent } from './app-tours/app-tours.component';\r\nimport { TooltipModule } from '../../../ui-kit/tooltip/tooltip.module';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\nimport { VLoaderModule } from '../../../ui-kit/v-loader/v-loader.module';\r\nimport { SkeletonLoaderModule } from '../../../ui-kit/skeleton-loader/skeleton-loader.module';\r\n\r\n@NgModule({\r\n  declarations: [AppToursComponent],\r\n  imports: [CommonModule, TooltipModule, PipesModule, VLoaderModule, SkeletonLoaderModule],\r\n  exports: [AppToursComponent],\r\n})\r\nexport class AppTourModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { SupportListModule } from '../support-list/support-list.module';\r\nimport { DialogModule } from '../../../ui-kit/dialog/dialog.module';\r\nimport { TooltipModule } from '../../../ui-kit/tooltip/tooltip.module';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\n\r\nimport { SupportContainerComponent } from './support-container/support-container.component';\r\nimport { VLoaderModule } from '../../../ui-kit/v-loader/v-loader.module';\r\nimport { AppTourModule } from '../app-tour/app-tour.module';\r\n\r\n@NgModule({\r\n  declarations: [SupportContainerComponent],\r\n  imports: [\r\n    CommonModule,\r\n    SupportListModule,\r\n    DialogModule,\r\n    TooltipModule,\r\n    PipesModule,\r\n    VLoaderModule,\r\n    AppTourModule,\r\n  ],\r\n  exports: [SupportContainerComponent],\r\n})\r\nexport class SupportContainerModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n  HttpRequest,\r\n  HttpHandler,\r\n  HttpEvent,\r\n  HttpInterceptor,\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n  constructor() {}\r\n\r\n  intercept(\r\n    request: HttpRequest<unknown>,\r\n    next: HttpHandler\r\n  ): Observable<HttpEvent<unknown>> {\r\n    const TOKEN = this.getAuthorizationToken();\r\n    if (request.url.includes('isAuth=true')) {\r\n      return next.handle(request.clone({ setHeaders: { TOKEN } })).pipe(\r\n        catchError((err) => {\r\n          if ([401].indexOf(err.status) !== -1) {\r\n          }\r\n          return throwError(err);\r\n        })\r\n      );\r\n    } else {\r\n      return next.handle(request.clone({})).pipe(\r\n        catchError((err) => {\r\n          if ([401].indexOf(err.status) !== -1) {\r\n          }\r\n\r\n          return throwError(err);\r\n        })\r\n      );\r\n    }\r\n  }\r\n\r\n  getAuthorizationToken() {\r\n    const TOKEN = localStorage.getItem('currentUser');\r\n    let currentUser;\r\n    TOKEN !== null ? (currentUser = JSON.parse(TOKEN)) : (currentUser = {});\r\n    return currentUser.token;\r\n  }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport { JwtHelperService, JWT_OPTIONS } from '@auth0/angular-jwt';\r\n\r\nimport { SupportContainerModule } from './shared/pages/support-container/support-container.module';\r\nimport { DialogModule } from './ui-kit/dialog/dialog.module';\r\nimport { TooltipModule } from './ui-kit/tooltip/tooltip.module';\r\nimport { PipesModule } from './shared/pipes/pipes.module';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { SupportChatbotComponent } from './support-chatbot.component';\r\nimport { IframeIntegrationComponent } from './shared/pages/iframe-integration/iframe-integration.component';\r\n\r\nimport { TokenInterceptor } from './shared/interceptor/token.interceptor';\r\n\r\nimport { Configurations } from './configuration';\r\n\r\n@NgModule({\r\n  declarations: [SupportChatbotComponent, IframeIntegrationComponent],\r\n  imports: [\r\n    SupportContainerModule,\r\n    DialogModule,\r\n    TooltipModule,\r\n    PipesModule,\r\n    CommonModule,\r\n  ],\r\n\r\n  providers: [\r\n    { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true },\r\n    { provide: JWT_OPTIONS, useValue: JWT_OPTIONS },\r\n    JwtHelperService,\r\n  ],\r\n  exports: [SupportChatbotComponent],\r\n})\r\nexport class SupportChatbotModule {\r\n  public static forRoot(\r\n    environmentConfig: Configurations\r\n  ): ModuleWithProviders<SupportChatbotModule> {\r\n    return {\r\n      ngModule: SupportChatbotModule,\r\n      providers: [{ provide: Configurations, useValue: environmentConfig }],\r\n    };\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of support-chatbot\r\n */\r\n\r\nexport * from './lib/support-chatbot.component';\r\nexport * from './lib/support-chatbot.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CHAT_BOT","SUPPORT_REQUEST","SUPPORT_SPECIALIST","APP_TOURS"],"mappings":"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"}