\r\n
\r\n
\r\n {{bs.getResource('rbkey_UsrsClnLBL')}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{obj['uName']}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { LearningCard } from '../../learner/my-tasks/programmable-channel/programmable-channel.model';\r\nimport { BaseService } from '../../shared-service/base.service';\r\nimport { ViewMoreLikeThisService } from './view-more-like-this.service';\r\n\r\n\r\ndeclare var jquery: any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-view-more-like-this',\r\n templateUrl: './view-more-like-this.component.html',\r\n styleUrls: ['./view-more-like-this.component.css', '../../../assets/css/custom-css/searchcard.css']\r\n})\r\nexport class ViewMoreLikeThisComponent implements OnInit {\r\n\r\n private params: Object | any = {};\r\n public learningCardList: LearningCard[] = [];\r\n constructor(private viewMoreLikeService: ViewMoreLikeThisService, private router: Router, private route: ActivatedRoute, public bs: BaseService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.route.params.subscribe(queryString => {\r\n this.params[\"CourseLaunchId\"] = queryString.CourseLaunchId == undefined ? 0 : parseInt(queryString.CourseLaunchId);\r\n\r\n if (queryString.LearningType == \"CRS\")\r\n this.params[\"LearningType\"] = \"C\";\r\n else if (queryString.LearningType == \"ILT\")\r\n this.params[\"LearningType\"] = \"T\";\r\n this.params[\"ModuleName\"] = queryString.ModuleName;\r\n this.learningCardList = [];\r\n this.GetSuggestedCourses();\r\n });\r\n }\r\n\r\n initializeCrowsel() {\r\n setTimeout(() => {\r\n $('.H_carousel').owlCarousel({\r\n autoplay: false,\r\n rewind: false, /* use rewind if you don't want loop */\r\n margin: 20,\r\n mergeFit: true,\r\n /*\r\n animateOut: 'fadeOut',\r\n animateIn: 'fadeIn',\r\n */\r\n responsiveClass: true,\r\n autoHeight: true,\r\n // autoplayTimeout: 7000,\r\n smartSpeed: 800,\r\n nav: true,\r\n navText: ['
',\r\n '
'],\r\n responsive: {\r\n 0: {\r\n items: 2\r\n },\r\n\r\n 600: {\r\n items: 2\r\n },\r\n 768: {\r\n items: 3\r\n },\r\n 992: {\r\n items: 3\r\n },\r\n 1024: {\r\n items: 3\r\n },\r\n\r\n 1366: {\r\n items: 4\r\n }\r\n }\r\n });\r\n $(\".owl-slider\").css(\"display\", \"block\");\r\n }, 500);\r\n setTimeout(() => {\r\n // setTimeout(function(){\r\n $(\".H_carousel .owl-nav .owl-next\").css(\"display\", \"block\");\r\n // }, 1000);\r\n }, 1500);\r\n\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n GetSuggestedCourses() {\r\n var params = {\r\n CorporateId: this.bs.user['CorporateId'],\r\n LearnerId: this.bs.user['UserId'],\r\n LearningId: this.params[\"CourseLaunchId\"],\r\n Culture: this.bs.user['Culture'],\r\n // T for ILT and C for Course/Program \r\n LearningType: this.params[\"LearningType\"],\r\n AccessibleCategories: this.bs.user['AccessibleCategories']\r\n };\r\n\r\n this.viewMoreLikeService.getSuggestedLearningsFromServer(params, \"****\").then((data:any) => {\r\n this.learningCardList = data[\"SuggestedItems\"];\r\n\r\n this.initializeCrowsel();\r\n });\r\n\r\n }\r\n\r\n OpenItem(cardList:any) {\r\n \r\n\r\n if (cardList.IsSuggestedLearning) {\r\n // if (cardList['ItemTypeCode'] == 'T') {\r\n // this.router.navigate(['/learner/course-catalog/container/catalog-ilt-detail', { tab: '', id: cardList.CardItemId, cns: '' }]);\r\n // }\r\n // else {\r\n // this.router.navigate(['/learner/course-catalog/container/catalog-detail', { tab: '', id: cardList.CardItemId }]);\r\n\r\n // }\r\n if (cardList['ItemTypeCode'] == 'T') {\r\n this.router.navigate(['/learner/taskList/container/catalog-ilt-detail', { tab: '', id: cardList.CardItemId, cns: '' }]);\r\n }\r\n else {\r\n this.router.navigate(['/learner/taskList/container/catalog-detail', { tab: '', id: cardList.CardItemId }]);\r\n }\r\n $(\"#overview-tab-li\").addClass(\"active\");\r\n $(\"#morelikethis-tab-li\").removeClass(\"active\");\r\n }\r\n else {\r\n\r\n this.bs.setCurrentModulePath(this.bs.loadModulePath('tsk_mdl'));\r\n let paramsNew :any = {\r\n tab: '',\r\n id: cardList.CardItemId\r\n }\r\n if (cardList['ItemTypeCode'] == 'T') {\r\n paramsNew['id'] = cardList['CardItemId'];\r\n this.bs.routerParam['ILT_DETAIL'] = paramsNew;\r\n this.routeTo(this.bs.loadModulePath('tsk_mdl') + this.bs.getDirectPath('ilt_dtl'), paramsNew);\r\n }\r\n else {\r\n paramsNew['CourseLaunchId'] = cardList['CardItemId'];\r\n paramsNew['id'] = cardList['CardItemId'];\r\n paramsNew['IsNodeClick'] = false;\r\n this.routeTo(this.bs.loadModulePath('tsk_mdl') + this.bs.getDirectPath('crs_dtl'), paramsNew);\r\n }\r\n\r\n\r\n }\r\n\r\n $(\"#overview-tab\").show();\r\n $(\"#rating-tab\").hide();\r\n $(\"#dynamic-tab\").hide();\r\n }\r\n\r\n routeTo(path: string, params: object) {\r\n this.router.navigate([path, params]).then((res) => {\r\n console.log(res);\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n {{bs.getResource('rbkey_NoItmToDsply')}}\r\n
\r\n
0)\">\r\n {{bs.getResource('rbkey_MorLkThsMsg')}}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{cardList.ItemTypeName}}\r\n
\r\n
\r\n \r\n\r\n

\r\n\r\n
\r\n
\r\n
\r\n
{{cardList.ItemName}}
\r\n
{{cardList.IsMandatory?\"Mandatory\":\"Optional\"}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { DataService } from '../../shared-service/data.service';\r\nimport { BaseService } from '../../shared-service/base.service';\r\n\r\n@Injectable()\r\nexport class ViewMoreLikeThisService {\r\n\r\n\tconstructor(private dataService: DataService, private bs: BaseService) {\r\n\t\tthis.bs.log('info', \"Loaded view more like this Service\");\r\n\t}\r\n\r\n\tgetSuggestedLearningsFromServer(body: Object, key: PropertyKey) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tlet controllerMethod = 'Learning/GetMoreLikeThisLearnings';\r\n\t\t\tthis.dataService.doPostWithPromise(key, controllerMethod, body).then((data) => {\r\n\t\t\t\tresolve(data);\r\n\t\t\t}, (err) => { reject(err); });\r\n\t\t});\r\n\t};\r\n}\r\n","import { Component, OnInit, NgZone } from '@angular/core';\r\nimport { Util } from '../../shared-service/util.service';\r\nimport { BaseService } from '../../shared-service/base.service';\r\nimport { SharingPanelService } from '../../shared-service/sharing-panel-service';\r\n\r\ndeclare var Tree: any;\r\n\r\n@Component({\r\n\tselector: 'app-visibility-filter',\r\n\ttemplateUrl: './visibility-filter.component.html',\r\n\tstyleUrls: ['./visibility-filter.component.css']\r\n})\r\nexport class VisibilityFilterComponent implements OnInit {\r\n\r\n\tloader: boolean = true;\r\n\tconstructor(private ngZone: NgZone, private util: Util, public bs: BaseService, private sps: SharingPanelService) { }\r\n\r\n\tngOnInit() {\r\n\t\tconsole.log('ngOnInit VisibilityFilterComponent');\r\n\t\tthis.loadTreeView();\r\n\t}\r\n\r\n\tloadTreeView() {\r\n\t\tconst script = [\r\n \t'assets/js/tree.js'\r\n ];\r\n this.util.getScripts(script).then((success) => {\r\n \tconsole.log('Script loaded successfully');\r\n \tthis.getTreeData();\r\n }, () => {\r\n \tthis.loadTreeView();\r\n });\r\n\t}\r\n\r\n\tgetTreeData() {\r\n\t\tconst params: Object = { 'UserID': this.bs.getUserAttr('UserId'), 'CorporateID': this.bs.getUserAttr('CorporateId') };\r\n\t\tthis.sps.GetShareTreeJson(params, \"****\").then((data:any) => {\r\n\t\t\tlet treeJson=JSON.parse(data[\"TreeJson\"]);\r\n\t\t\tthis.sps.treeData['data'] = treeJson[0];\r\n\t\t\tthis.sps.treeData['rootId'] = 'rootTree';\r\n\t\t\tthis.ngZone.runOutsideAngular(()=>{\r\n\t\t\t\tlet treeRoot = new Tree('rootTree', false, treeJson[0]);\r\n\t\t\t\ttreeRoot.init();\r\n\t\t\t\tthis.loader = false;\r\n\t\t\t});\r\n\t\t}, (err) => {\r\n\t\t\tconsole.log(err);\r\n\t\t\tthis.loader = false;\r\n\t\t});\r\n\t}\r\n\r\n\tupdateView(ev: Event) {\r\n\t\tthis.sps.changeDetected.next(ev['timeStamp'].toString());\r\n\t}\r\n\r\n}","
\r\n
\r\n","import { Component, Input, OnChanges, SimpleChanges, ViewChild, ComponentFactoryResolver, ViewContainerRef} from '@angular/core';\r\nimport { WidgetItem } from '../../shared-datatypes/widget-items';\r\nimport { WidgetComponent } from '../../shared-datatypes/widget.component';\r\nimport { WidgetDirective } from './widget.directive';\r\n\r\n@Component({\r\n\tselector: 'app-widget-container',\r\n\ttemplateUrl: './widget-container.component.html',\r\n\tstyleUrls: ['./widget-container.component.css']\r\n})\r\n\r\nexport class WidgetContainerComponent implements OnChanges {\r\n\r\n\t@Input() widgets: WidgetItem | any;\r\n\t@ViewChild(WidgetDirective, { static: true }) widgetHost!: WidgetDirective;\r\n\tloader: boolean = true;\r\n\r\n\tngOnChanges(change: SimpleChanges) {\r\n\t\tthis.loadDefaultComponent();\r\n\t}\r\n\r\n\tloadDefaultComponent() {\r\n\t\tif (this.widgets) {\r\n\t\t\tthis.loadComponent();\r\n\t\t} else {\r\n\t\t\tthis.loader = true;\r\n\t\t}\r\n\t}\r\n\r\n\tloadComponent() {\r\n\t\tif (this.widgets.hasOwnProperty('initializing')) {\r\n\t\t\tif (this.widgets['initializing']) {\r\n\t\t\t\tconsole.log(\"Do Nothing\");\r\n\t\t\t\tthis.loader = false;\r\n\t\t\t} else {\r\n\t\t\t\tthis.loader = false;\r\n\t\t\t\t//let componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.widgets.component);\r\n\r\n\t\t\t\t/*clearning previous component*/\r\n\t\t\t\tlet viewContainerRef = this.widgetHost.viewContainerRef;\r\n\t\t\t\tviewContainerRef.clear();\r\n\r\n\t\t\t\tlet componentRef = viewContainerRef.createComponent(this.widgets.component);\r\n\t\t\t\t(
componentRef.instance).data = this.widgets.data;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.loader = false;\r\n\t\t\t//let componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.widgets.component);\r\n\r\n\t\t\t/*clearning previous component*/\r\n\t\t\tlet viewContainerRef = this.widgetHost.viewContainerRef;\r\n\t\t\tviewContainerRef.clear();\r\n\r\n\t\t\tlet componentRef = viewContainerRef.createComponent(this.widgets.component);\r\n\t\t\t(componentRef.instance).data = this.widgets.data;\r\n\t\t}\r\n\t\t// if (this.widgets) {\r\n\t\t// \tthis.loader = false;\r\n\t\t// \tlet componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.widgets.component);\r\n\r\n\t\t// \t/*clearning previous component*/\r\n\t\t// \tlet viewContainerRef = this.widgetHost.viewContainerRef;\r\n\t\t// \tviewContainerRef.clear();\r\n\r\n\t\t// \tlet componentRef = viewContainerRef.createComponent(componentFactory);\r\n\t\t// \t(componentRef.instance).data = this.widgets.data;\r\n\t\t// } else {\r\n\t\t// \tthis.loader = true;\r\n\t\t// }\r\n\t}\r\n\r\n}\r\n","Loading Widgets ..
\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[widgetHost]',\r\n})\r\nexport class WidgetDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}","import { Type } from '@angular/core';\r\n\r\nexport class WidgetItem {\r\n\tconstructor(public component: Type, public data: any) {}\r\n}","export enum EntityType {\r\n Course = 1,\r\n Program = 2,\r\n ILT = 3,\r\n MyLearning = 4,\r\n Conversation = 5,\r\n Survery = 6,\r\n Video = 7,\r\n Briefcase = 8,\r\n}","import { ErrorHandler } from '@angular/core';\r\n\r\nexport class WizdomErrorHandler implements ErrorHandler {\r\n\tconstructor () {\r\n\t\tconsole.log(\"Loaded WizdomErrorHandler\");\r\n\t};\r\n\thandleError(error: object) {\r\n\t\tconsole.log(\"Custom Exception Captured\");\r\n\t\tconsole.log(error);\r\n\t};\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpHeaders, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { BaseService } from '../shared-service/base.service';\r\nimport { Router } from \"@angular/router\";\r\nimport { throwError ,catchError } from 'rxjs';\r\nimport { AuthOIDCService } from \"../auth/authOIDC.service\";\r\n\r\n@Injectable()\r\nexport class AppHttpInterceptor implements HttpInterceptor {\r\n constructor(\r\n private bs: BaseService,\r\n private router: Router,\r\n private authOIDCService: AuthOIDCService\r\n ) {\r\n }\r\n \r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n //do whatever you want with the HttpRequest \r\n if (this.bs.menuKey != \"\" && this.bs.submenuKey != \"\" && !(req.body instanceof FormData)) {\r\n let params = {\r\n menuId: this.bs.menuKey,\r\n submenuId: this.bs.submenuKey\r\n }\r\n console.log('Intercepted!', req);\r\n const reqCloned = this.handleBodyIn(req, params);\r\n const copiedReq = reqCloned;\r\n\r\n //return next.handle(copiedReq);\r\n return next.handle(this.addToken(copiedReq)).pipe(catchError((context => {\r\n if (context instanceof HttpErrorResponse && (context.status === 500)) {\r\n this.bs.log('error', 'UnAuthorized Access of Content.');\r\n }\r\n else {\r\n this.bs.log('error', 'Some error occurred. Please contact to administrator.');\r\n }\r\n return throwError(context);\r\n })));\r\n\r\n }\r\n else {\r\n return next.handle(this.addToken(req));\r\n }\r\n }\r\n\r\n handleBodyIn(req: HttpRequest, params:any) {\r\n if (req.method.toLowerCase() === 'post') {\r\n req = req.clone({\r\n body: { ...req.body, ...params }\r\n })\r\n }\r\n console.log(req);\r\n return req;\r\n }\r\n\r\n addToken(req: HttpRequest) {\r\n const token = this.authOIDCService.token;\r\n const headers = new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n return req.clone({ headers });\r\n }\r\n}\r\n\r\n","import { InjectionToken } from '@angular/core';\r\nimport { environment } from '../../environments/environment';\r\n\r\nexport let APP_CONFIG = new InjectionToken('app.config');\r\n\r\nexport interface AppConfig {\r\n\tapiEndpoint: string;\r\n\ttitle: string;\r\n\tstorageLoginKey: string;\r\n\tstorageResourcesKey: string;\r\n\tsaveLogs: boolean;\r\n\tlmsBaseUrl: string;\r\n\tpageSize: number;\r\n\tsessionTimeOut: number;\r\n\tvideolibraryapiurl: string;\r\n\tvideoLibraryThumbnailApiUrl: string;\r\n\tsearchApiEndpoint: string;\r\n\tstorageSearchApiKey: string;\r\n\thostName: string;\r\n\tdashboardViewerUrl: string;\r\n\tapiBaseUrl: string;\r\n}\r\n\r\nexport const WIZDOM_APP_CONFIG: AppConfig = {\r\n\t// /*Define all global level constants*/\r\n\tapiEndpoint: environment.apiEndpoint,\r\n\tapiBaseUrl: environment.apiBaseUrl,\r\n\tsearchApiEndpoint: environment.searchApiEndpoint,\r\n\ttitle: environment.title,\r\n\tsaveLogs: environment.saveLogs,\r\n\tstorageLoginKey: environment.storageLoginKey,\r\n\tstorageResourcesKey: environment.storageResourcesKey,\r\n\tstorageSearchApiKey: environment.storageSearchApiKey,\r\n\thostName: environment.hostName,\r\n\tlmsBaseUrl: environment.lmsBaseUrl,\r\n\tpageSize: 10,\r\n\tsessionTimeOut: 1200,\r\n\tvideolibraryapiurl: environment.videolibraryapiurl,\r\n\tvideoLibraryThumbnailApiUrl: environment.videoLibraryThumbnailApiUrl,\r\n\tdashboardViewerUrl: environment.dashboardViewerUrl\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseService } from './base.service';\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Injectable()\r\nexport class AuthGuardGuard implements CanActivate {\r\n constructor(private bs: BaseService, private router: Router) {\r\n\r\n }\r\n canActivate( next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean {\r\n /*Check user is authenticated or not then return response*/\r\n console.log(\"canActivate AuthGuardGuard\");\r\n let path = state.url;\r\n //this.bs.lastPath = state.url;\r\n console.log(path);\r\n console.log(this.router.navigated);\r\n return true;\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { WizdomErrorHandler } from './app-error.handler';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { AuthOIDCService } from '../auth/authOIDC.service';\r\n// import { KeycloakService } from 'keycloak-angular';\r\nimport { WindowRef } from '../shared-service/windowRef.service';\r\n\r\ndeclare var jquery: any;\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class BaseService {\r\n\r\n\tprivate refresh: BehaviorSubject = new BehaviorSubject(false);\r\n\tsResources: object | any = {};\r\n\ttempfResource: object | any = {};\r\n\tpublic routerParam: object | any = {};\r\n\tconfig: any;\r\n\tuser: any = {};\r\n\tpublic isTrainingHistory: boolean = false;\r\n\tpublic isLrngClnder: boolean = false;\r\n\tnotificationRoute: string | any\r\n\tpublic menu: { MenuItems: Array } = { MenuItems: [] };\r\n\tpublic subMenu: Array = [];\r\n\tpublic userProfileImage: string = ''\r\n\tpublic notificationCount: number = 0;\r\n\tpublic lastNotificationAlertCheck: number = 0;\r\n\tpublic announcementCount: number = 0;\r\n\tpublic lastAnnouncementAlertCheck: number = 0;\r\n\tpublic UnreadAnnouncementCount: number = 0;\r\n\tpublic UnreadNotificationCount: number = 0;\r\n\tpublic isResumeClicked: boolean = false;\r\n\tpublic objScormWindow: any;\r\n\tpublic isActiveNotification: boolean | any;\r\n\tpublic NotificationClass: string = \"active\";\r\n\tpublic AnnouncementClass: string = \"\";\r\n\tpublic HasOverView: boolean = false;\r\n\tpublic IsSpacedLearning: boolean = false;\r\n\tpublic SpacedLaunchId: number = 0;\r\n\tpublic SpacedNodeId: number = 0;\r\n\tpublic LastRunSync: string | any;\r\n\tpublic videoNotificationCount: number = 0;\r\n\tpublic showSkillRoleBased: boolean = false;\r\n\r\n\tpublic IsDeepLinkActive: boolean = false;\r\n\tpublic DeepLinkMenuItemKey: string = \"\";\r\n\tpublic DeepLinkSubmenuItemKey: string = \"\";\r\n\tpublic expression: string = '';\r\n\r\n\tpublic isDirectLogin: boolean = false;\r\n\r\n\tuploadControls: object | any = {\r\n\t\tgeneric: 'FileUpload/UploadJsonFile',\r\n\t\tprofilePic: 'FileUpload/UploadProfileFile'\r\n\t};\r\n\r\n\t//\r\n\tpublic isVwLrng: boolean = false;\r\n\tpublic isShowAssignedFilter: boolean = false;\r\n\tpublic isLearningType: boolean = true;\r\n\tpublic profileRedirection: string = \"\";\r\n\tpublic isReadAndSign: boolean = false;\r\n\tpublic menuKey: string = '';\r\n\tpublic submenuKey: string = '';\r\n\r\n\tpublic paramsObject: Object = {};\r\n\r\n\tpublic BaseVariantType:VariantType=VariantType.Base;\r\n\tpublic LearnVariantType:VariantType=VariantType.Learn;\r\n\tpublic GrowVariantType:VariantType=VariantType.Grow;\r\n\tpublic ActVariantType:VariantType=VariantType.Act;\r\n\t//\r\n\tconstructor(\r\n\t\tprivate wizdomErrorHandler: WizdomErrorHandler,\r\n\t\tprivate authOIDCServie: AuthOIDCService,\r\n\t\tprivate winRef: WindowRef\r\n\t\t// private keycloakService: KeycloakService\r\n\t) {\r\n\t}\r\n\r\n\tprivate mapedRoute: object | any = {\r\n\t\t/* Modules path */\r\n\t\tcnvrstn_mdl: '/learner/conversation/container',\r\n\t\tmy_lrng_mdl: '/learner/learning/container',\r\n\t\tcrs_ctlg_mdl: '/learner/course-catalog/container',\r\n\t\tsrvy_mdl: 'learner/survey/container',\r\n\t\tvd_mdl: '/learner/video-library/container',\r\n\t\tovrvw_mdl: '/learner/overview/container',\r\n\t\textrnl_lrng_mdl: '/learner/external-learning/container',\r\n\t\tldrbrd_mdl: '/learner/leaderboard/container',\r\n\t\ttsk_mdl: '/learner/taskList/container',\r\n\t\tcompliance_mdl: '/learner/compliance/container',\r\n\r\n\t\t/* my-compliance */\r\n\t\tmy_complnc: '/my-compliance/container',\r\n\t\t/* catalog */\r\n\t\tctlg_dtl: '/catalog-detail',\r\n\t\tctlg_ilt_cnvrstn: '/catalog-ilt-detail/catalog-conversation',\r\n\t\tctlg_ilt_rtng: '/catalog-ilt-detail/catalog-rating',\r\n\t\tctlg_ilt_morelikethis: '/catalog-ilt-detail/catalog-ilt-morelikethis',\r\n\t\tctlg_ilt_dynamic: '/catalog-ilt-detail/catalog-ilt-dynamic',\r\n\t\tctlg_ilt_dtl: '/catalog-ilt-detail',\r\n\t\tctlg_crs_cnvrstn: '/catalog-detail/catalog-conversation',\r\n\t\tctlg_crs_rtng: '/catalog-detail/catalog-rating',\r\n\t\tctlg_crs_annncmnt: '/catalog-detail/catalog-announcement',\r\n\t\tctlg_crs_dynamic: '/catalog-detail/catalog-dynamic',\r\n\t\tctlg_crs_morelikethis: '/catalog-detail/catalog-crs-morelikethis',\r\n\t\t/* External Learning*/\r\n\t\textrnl_dtls: '/external-details',\r\n\r\n\t\t/* Course- Relative to module path */\r\n\t\tcrs_dtl: '/details/course-detail',\r\n\t\tilt_dtl: '/details/ilt-detail',\r\n\t\textrnl_dtl: '/details/external-details',\r\n\r\n\t\t/* Assessment- Relative to module path */\r\n\t\tasesmnt_opn: '/assessment/open-assessment',\r\n\t\tasesmnt_ply: '/assessment/play-assessment',\r\n\t\tasesmnt_cmplt: '/assessment/play-assessment/AssessmentComplete',\r\n\t\tasesmnt_rprt: '/assessment/play-assessment/AssessmentReport',\r\n\t\tasesmnt_attempt_rpt: '/assessment/open-report',\r\n\t\tply_tf: '/assessment/play-assessment/TF',\r\n\t\tply_fb: '/assessment/play-assessment/FB',\r\n\t\tply_mc: '/assessment/play-assessment/MC',\r\n\t\tply_mr: '/assessment/play-assessment/MR',\r\n\t\tply_mf: '/assessment/play-assessment/MF',\r\n\t\tply_os: '/assessment/play-assessment/OS',\r\n\t\tply_ds: '/assessment/play-assessment/DS',\r\n\r\n\t\twbnr_mdl: '/learner/webinar/container',\r\n\r\n\t\t/* Checklist- Relative to module path */\r\n\t\tchecklist_open: '/checklist/open-checklist',\r\n\t\tchecklict_play: '/checklist/play-checklist'\r\n\t}\r\n\r\n\tprivate dynamicPath: object | any = {};\r\n\r\n\tsetCurrentModulePath(path: string) {\r\n\t\tthis.dynamicPath['module'] = path;\r\n\t}\r\n\r\n\tgetCurrentModulePath() {\r\n\t\treturn this.dynamicPath['module'];\r\n\t}\r\n\r\n\t/* Returns full path with previous loaded module */\r\n\tgetFullPath(nextPath: string) {\r\n\t\treturn this.getCurrentModulePath() + this.getDirectPath(nextPath);\r\n\t}\r\n\r\n\t/* Used when there is no need of previous loaded module */\r\n\tgetDirectPath(path: string) {\r\n\t\treturn this.mapedRoute[path];\r\n\t}\r\n\r\n\tgetFullComponentPath(moduleName: string, nextPath: string) {\r\n\t\treturn this.mapedRoute[moduleName] + this.mapedRoute[nextPath];\r\n\t}\r\n\r\n\t/* Path new module inside another module */\r\n\tloadModulePath(path: string) {\r\n\t\treturn this.mapedRoute[path];\r\n\t}\r\n\r\n\r\n\r\n\t/*For logging */\r\n\tlog(type: any, msg: any) {\r\n\t\tif (type == 'info') {\r\n\t\t\tconsole.info(msg);\r\n\t\t} else if (type == 'warn') {\r\n\t\t\tconsole.warn(msg);\r\n\t\t} else if (type == 'error') {\r\n\t\t\tconsole.log(msg);\r\n\t\t} else {\r\n\t\t\tconsole.log(msg);\r\n\t\t}\r\n\t}\r\n\r\n\tloadConfig(appConfig: any) {\r\n\t\tthis.config = appConfig;\r\n\t}\r\n\r\n\r\n\tloadStringResources(resources: any) {\r\n\t\ttry {\r\n\t\t\tthis.sResources = JSON.parse(resources);\r\n\t\t\t//this.mutateSresourceAndFresource();\r\n\t\t} catch (error) {\r\n\t\t\tthis.sResources = resources;\r\n\t\t}\r\n\t}\r\n\t/* For error handling */\r\n\terrorHandler(error: any) {\r\n\t\tthis.wizdomErrorHandler.handleError(error);\r\n\t}\r\n\r\n\tloadUserAccount(user: any) {\r\n\t\ttry {\r\n\t\t\tthis.user = JSON.parse(user);\r\n\t\t} catch (error) {\r\n\t\t\tthis.user = user;\r\n\t\t}\r\n\t}\r\n\r\n\tgetResource(key: any) {\r\n\t\ttry {\r\n\t\t\treturn this.sResources[key];\r\n\t\t}\r\n\t\tcatch (error) {\r\n\t\t\treturn key + ': Resource not found in DB.';\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tgetUserAttr(key: any) {\r\n\t\treturn this.user[key];\r\n\t}\r\n\r\n\tsetUserAttr(key: any, value: any) {\r\n\t\tthis.user[key] = value;\r\n\t}\r\n\r\n\tdeActivateMenus() {\r\n\t\tfor (let i = 0; i < this.menu['MenuItems'].length; i++) {\r\n\t\t\tthis.menu['MenuItems'][i]['isQuickLinkActive'] = false;\r\n\t\t}\r\n\t}\r\n\r\n\tdeActivateSubMenus() {\r\n\t\tfor (let i = 0; i < this.subMenu.length; i++) {\r\n\t\t\tthis.subMenu[i]['isSubMenuActive'] = false;\r\n\t\t}\r\n\t}\r\n\r\n\tdeActivateAllMenus() {\r\n\t\tthis.deActivateMenus();\r\n\t\tthis.deActivateSubMenus();\r\n\t}\r\n\r\n\tshowPreloader() {\r\n\r\n\t\tvar screenHeight = this.winRef.nativeWindow.document.body.clientHeight;\r\n\r\n\t\tvar screenWidth = this.winRef.nativeWindow.document.body.clientWidth;\r\n\t\t$(\".preloader-overlay\").css(\"height\", screenHeight + \"px\");\r\n\r\n\t\t$(\".preloader-overlay\").show();\r\n\t\t$(\".preloader\").show();\r\n\r\n\t\t$(this.winRef.nativeWindow.document).scrollTop(0);\r\n\t}\r\n\thidePreloader() {\r\n\t\t$(\".preloader-overlay\").hide();\r\n\t\t$(\".preloader\").hide();\r\n\r\n\t\t$(this.winRef.nativeWindow.document).scrollTop(0);\r\n\t}\r\n\r\n\tlogout() {\r\n\t\tsessionStorage.clear();\r\n\t\tif (this.isDirectLogin == false) {\r\n\t\t\tlocation.href = this.config.lmsBaseUrl + \"Control/Controller.aspx?Action=forward/Lgt&ClearProxyLogin=true\";\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.authOIDCServie.logout();\r\n\t\t}\r\n\t}\r\n\r\n\tloadScripts(dynamicScripts: string[]) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\ttry {\r\n\t\t\t\tfor (let i = 0; i < dynamicScripts.length; i++) {\r\n\t\t\t\t\tconst node = this.winRef.nativeWindow.document.createElement('script');\r\n\t\t\t\t\tnode.src = dynamicScripts[i];\r\n\t\t\t\t\tnode.type = 'text/javascript';\r\n\t\t\t\t\tnode.async = false;\r\n\t\t\t\t\tnode.charset = 'utf-8';\r\n\t\t\t\t\tthis.winRef.nativeWindow.document.getElementsByTagName('head')[0].appendChild(node);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tresolve(true);\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\treject(false)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tRemoveScripts(dynamicScripts: string[], filetype: string) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\ttry {\r\n\t\t\t\tvar targetelement = (filetype == \"js\") ? \"script\" : (filetype == \"css\") ? \"link\" : \"none\" //determine element type to create nodelist from\r\n\t\t\t\tvar targetattr = (filetype == \"js\") ? \"src\" : (filetype == \"css\") ? \"href\" : \"none\" //determine corresponding attribute to test for\r\n\t\t\t\tvar allsuspects = this.winRef.nativeWindow.document.getElementsByTagName(targetelement)\r\n\t\t\t\tfor (let j = 0; j < dynamicScripts.length; j++) {\r\n\t\t\t\t\tfor (var i = allsuspects.length; i >= 0; i--) { //search backwards within nodelist for matching elements to remove\r\n\t\t\t\t\t\tif (allsuspects[i] && allsuspects[i].getAttribute(targetattr) != null && allsuspects[i].getAttribute(targetattr)!.indexOf(dynamicScripts[j]) != -1)\r\n\t\t\t\t\t\t\tallsuspects[i].parentNode!.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild()\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tresolve(true);\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\treject(false)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tloadStyle(styleName: string) {\r\n\t\tlet fileName = styleName.slice(styleName.lastIndexOf(\"/\") + 1, styleName.length).replace('.', '-');\r\n\t\tif ($(\"#gcube-\" + fileName).length) {\r\n\t\t\tconsole.log(\" ALREADY LOADED\", fileName);\r\n\t\t} else {\r\n\t\t\tvar $head = $(\"head\");\r\n\t\t\tvar $headlinklast = $head.find(\"link[rel='stylesheet']:last\");\r\n\t\t\tvar linkElement = \"\";\r\n\t\t\tif ($headlinklast.length) {\r\n\t\t\t\t$headlinklast.after(linkElement);\r\n\t\t\t} else {\r\n\t\t\t\t$head.append(linkElement);\r\n\t\t\t}\r\n\t\t\tconsole.log(\"LOADING\", fileName);\r\n\t\t}\r\n\t}\r\n\r\n\tCloseSCORM() {\r\n\t\tif (this.objScormWindow != null) {\r\n\t\t\tif (this.objScormWindow.closed == false) {\r\n\t\t\t\tthis.objScormWindow.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\telScroll: any;\r\n\r\n\tsetEl(el: any) {\r\n\t\tthis.elScroll = el;\r\n\t}\r\n\tunsetEl() {\r\n\t\tthis.elScroll = null;\r\n\t}\r\n\r\n\tbindScrollEvent() {\r\n\t\tthis.elScroll.addEventListener('scroll', this.scroll, true);\r\n\t}\r\n\r\n\tunbindScrollEvent() {\r\n\t\tthis.elScroll.removeEventListener('scroll', this.scroll, true);\r\n\t}\r\n\r\n\tscroll = (e: any): void => {\r\n\t\tif (e.target.scrollTop > 190) {\r\n\t\t\tthis.addScrollClass();\r\n\r\n\t\t} else if (e.target.scrollTop == 0) {\r\n\t\t\tthis.removeScrollClass();\r\n\t\t}\r\n\t}\r\n\r\n\taddScrollClass() {\r\n\t\t$(\"#nav-tabs-heading\").addClass(\"nav-tab-fixed\");\r\n\t\t$(\"#nav-tabs-heading\").addClass(\"fadeIn\");\r\n\t\t$(\".ml-image-section\").addClass(\"mlib-fixed\");\r\n\t\t$(\".ml-image-bottom\").addClass(\"fadeIn\");\r\n\t}\r\n\tremoveScrollClass() {\r\n\t\t$(\"#nav-tabs-heading\").removeClass(\"nav-tab-fixed\");\r\n\t\t$(\"#nav-tabs-heading\").removeClass(\"fadeIn\");\r\n\t\t$(\".ml-image-section\").removeClass(\"mlib-fixed\");\r\n\t\t$(\".ml-image-bottom\").removeClass(\"fadeIn\");\r\n\t}\r\n\t//Funcation to load and activate Quick Link and it submenu after Global Search on behalf of item Module paramenter\r\n\t//itemModule=V => Video,M=> My learing,A=>Catalog,D=>Conversation,S=>Survey,H=>History\r\n\tactivateMenuItem(itemModule: string) {\r\n\t\tlet activatedMenu: string;\r\n\t\tlet activatedQuickLink: string;\r\n\t\tswitch (itemModule) {\r\n\t\t\tcase \"M\":\r\n\t\t\t\tactivatedMenu = \"rbkey_MyLrnngLBL\";\r\n\t\t\t\tactivatedQuickLink = \"rbkey_LrnLBL\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"A\":\r\n\t\t\t\tactivatedMenu = \"rbkey_CtlgLBL\";\r\n\t\t\t\tactivatedQuickLink = \"rbkey_LrnLBL\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"V\":\r\n\t\t\t\tactivatedMenu = \"rbkey_VdLbrryLBL\";\r\n\t\t\t\tactivatedQuickLink = \"rbkey_LrnLBL\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"H\":\r\n\t\t\t\tactivatedMenu = \"rbkey_MyLrnngLBL\";\r\n\t\t\t\tactivatedQuickLink = \"rbkey_LrnLBL\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"E\":\r\n\t\t\t\tactivatedMenu = \"rbkey_ExtrnlLrnngLBL\";\r\n\t\t\t\tactivatedQuickLink = \"rbkey_LrnLBL\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"D\":\r\n\t\t\t\tactivatedMenu = \"rbkey_CnvrstnLBL\";\r\n\t\t\t\tactivatedQuickLink = \"rbkey_CllbrtLBL\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"S\":\r\n\t\t\t\tactivatedMenu = \"rbkey_SrvyLBL\";\r\n\t\t\t\tactivatedQuickLink = \"rbkey_CllbrtLBL\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"G\":\r\n\t\t\t\tactivatedMenu = \"rbkey_Ldr_BrdLBL\";\r\n\t\t\t\tactivatedQuickLink = \"rbkey_CmptLBL\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"W\":\r\n\t\t\t\tactivatedMenu = \"rbkey_WbmnrLBL\";\r\n\t\t\t\tactivatedQuickLink = \"rbkey_CllbrtLBL\";\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tlet Menu = this.menu['MenuItems'].find((menu: any) => menu['Key'] == activatedQuickLink);\r\n\t\tif (Menu != undefined)\r\n\t\t\tthis.loadSubMenu(Menu);\r\n\t\tlet subMenu = this.subMenu.find((menu: any) => menu['Key'] == activatedMenu);\r\n\t\tif (subMenu != undefined)\r\n\t\t\tsubMenu['isSubMenuActive'] = true;\r\n\t\t/* Recheck this case if overview was also added in search */\r\n\t\tif ($('.sub-header').is(\":hidden\")) {\r\n\t\t\t$('.sub-header').show();\r\n\t\t}\r\n\t}\r\n\r\n\t//Function for Selecting the Route Quick Link and its submenu after Global Search and Nav bar menu Selection\r\n\tloadSubMenu(item: any) {\r\n\t\tthis.deActivateMenus();\r\n\t\titem.isQuickLinkActive = true;\r\n\t\tif (item.subMenuItems != null)\r\n\t\t\tthis.subMenu = item.subMenuItems;\r\n\t\tthis.deActivateSubMenus();\r\n\t\tthis.menuKey = item.Key;\r\n\t\tif (this.subMenu.length > 0) {\r\n\t\t\tthis.submenuKey = this.subMenu[0]['Key'];\r\n\t\t}\r\n\t\tswitch (item.Key) {\r\n\t\t\tcase \"rbkey_OvrVwLBL\": {\r\n\t\t\t\tthis.winRef.nativeWindow.document.getElementById('MenuName')!.style.visibility = \"hidden\";\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase \"rbkey_LrnLBL\": {\r\n\t\t\t\tthis.winRef.nativeWindow.document.getElementById('MenuName')!.className = \"coll-left-arrow switch learning-la\"\r\n\t\t\t\tthis.winRef.nativeWindow.document.getElementById('MenuName')!.style.visibility = \"visible\";\r\n\t\t\t\tthis.winRef.nativeWindow.document.getElementById(\"headerMenuText\")!.innerHTML = this.getResource('rbkey_MyLrnngLBL');\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase \"rbkey_CllbrtLBL\": {\r\n\t\t\t\tthis.winRef.nativeWindow.document.getElementById('MenuName')!.className = \"coll-left-arrow conversation-la switch\"\r\n\t\t\t\tthis.winRef.nativeWindow.document.getElementById('MenuName')!.style.visibility = \"visible\";\r\n\t\t\t\tthis.winRef.nativeWindow.document.getElementById(\"headerMenuText\")!.innerHTML = this.getResource('rbkey_CnvrstnLBL');\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase \"rbkey_CmptLBL\": {\r\n\t\t\t\tthis.winRef.nativeWindow.document.getElementById('MenuName')!.className = \"coll-left-arrow leaderboard-la switch\"\r\n\t\t\t\tthis.winRef.nativeWindow.document.getElementById('MenuName')!.style.visibility = \"visible\";\r\n\t\t\t\tthis.winRef.nativeWindow.document.getElementById(\"headerMenuText\")!.innerHTML = this.getResource('rbkey_Ldr_BrdLBL');\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\t//ellipses\r\n\ttextLimit(characters: any, limitChar: any) {\r\n\t\tlet description = characters;\r\n\t\tlet customDescription = description;\r\n\t\tif (parseInt(description.length) > parseInt(limitChar)) {\r\n\t\t\tcustomDescription = customDescription.substr(0, limitChar) + \"...\";\r\n\t\t}\r\n\t\treturn customDescription;\r\n\t}\r\n\tDynamicObjSetter(cobject: object) {\r\n\t\tthis.paramsObject = cobject;\r\n\t\tconsole.log(this.paramsObject);\r\n\t\t//return paramsObject;\r\n\t}\r\n\r\n\tpublic getUserAtibuteLoded(): Observable {\r\n\t\treturn this.refresh.asObservable();\r\n\t}\r\n\r\n\tpublic setUserAtibuteLoded(value: boolean): void {\r\n\t\tthis.refresh.next(value);\r\n\t}\r\n\tisAlphaNumericWithRegex(expression: any) {\r\n\t\tvar pattern = new RegExp(\"^[a-zA-Z0-9_-]*$\");\r\n\t\treturn pattern.test(expression);\r\n\t}\r\n\r\n\tpublic HasVariantAccess(variantType: VariantType): boolean {\r\n\r\n\t\tvar type: number = this.getUserAttr(\"VariantType\");\r\n\t\tvar isVariantActive: boolean = this.getUserAttr(\"IsVariantActive\");\r\n\t\treturn variantType <= type && isVariantActive;\r\n\t}\r\n}\r\n\r\nexport enum VariantType {\r\n\tBase = 1,\r\n\tLearn = 2,\r\n\tGrow = 4,\r\n\tAct = 8\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\n//import 'rxjs/add/operator/toPromise';\r\nimport { BaseService } from '../shared-service/base.service';\r\nimport { AuthOIDCService } from '../auth/authOIDC.service';\r\nimport { WindowRef } from '../shared-service/windowRef.service';\r\n\r\ndeclare var jquery: any;\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class DataService {\r\n\r\n\tconstructor(\r\n\t\tprivate router: Router, \r\n\t\tprivate http: HttpClient, \r\n\t\tprivate bs: BaseService,\r\n\t\tprivate authOIDCService: AuthOIDCService,\r\n\t\tprivate winRef:WindowRef\r\n\t) {\r\n\t\tthis.dataStore = [];\r\n\t}\r\n\r\n\tdataStore: Object | any = {};\r\n\tchkSessionCntr: number = 0;\r\n\tsessionTimeout: number | null = null;\r\n\tLastRequestTime: Date | null = null;\r\n\tstartTimer(sessionTimeout: number) {\r\n\t\tthis.sessionTimeout = sessionTimeout;\r\n\t\tsetInterval(() => {\r\n\t\t\tthis.chkSessionCntr = this.chkSessionCntr + 1;\r\n\t\t\tif (this.chkSessionCntr > this.sessionTimeout!) {\r\n\t\t\t\tthis.bs.logout();\r\n\t\t\t}\r\n\t\t}, 1000);\r\n\t}\r\n\r\n\tgetDataStoreData(key: PropertyKey) {\r\n\r\n\t\tif (this.dataStore.hasOwnProperty(key)) {\r\n\t\t\treturn this.dataStore[key];\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t};\r\n\r\n\tsetStoreData(key: PropertyKey, updateData: Object) {\r\n\t\tthis.dataStore[key] = updateData;\r\n\t\treturn true;\r\n\t};\r\n\r\n\tappendHeaderIfUserLoggedIn() {\r\n\r\n\t\tif (this.dataStore.hasOwnProperty(this.bs.config.storageLoginKey)) {\r\n\t\t\tlet obj = {\r\n\t\t\t\theaders: new HttpHeaders().set('Authorization', 'Bearer '.concat(this.authOIDCService.token?this.authOIDCService.token:'')),\r\n\t\t\t};\r\n\t\t\treturn obj;\r\n\t\t}\r\n\t\treturn;\r\n\t};\r\n\tshowPreloader() {\r\n\r\n\t\tvar screenHeight = this.winRef.nativeWindow.document.body.clientHeight;\r\n\r\n\t\tvar screenWidth = this.winRef.nativeWindow.document.body.clientWidth;\r\n\t\t$(\".preloader-overlay\").css(\"height\", screenHeight + \"px\");\r\n\r\n\t\t$(\".preloader-overlay\").show();\r\n\t\t$(\".preloader\").show();\r\n\r\n\t\t$(this.winRef.nativeWindow.document).scrollTop(0);\r\n\t}\r\n\thidePreloader() {\r\n\t\t$(\".preloader-overlay\").hide();\r\n\t\t$(\".preloader\").hide();\r\n\r\n\t\t$(this.winRef.nativeWindow.document).scrollTop(0);\r\n\t}\r\n\t//function to extend user session of wizdom web\r\n\r\n\tpostExtendSessionRequest() {\r\n\t\t\r\n\t\tlet URL = this.bs.config.lmsBaseUrl + \"Control/Controller.aspx?Action=forward/extendSession\";\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: 'POST',\r\n\t\t\tasync: true,\r\n\t\t\turl: URL,\r\n\t\t\tdata: '',\r\n\t\t\tsuccess: (data:any) => {\r\n\t\t\t\tthis.chkSessionCntr = 0;\r\n\t\t\t},\r\n\t\t\terror: (xhr:any, textStatus:any, errorThrown:any) => {\r\n\t\t\t\tthis.bs.log('error', \"unable to maintain session with web as error occures while sending request to wizdomweb\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tprepareUrl(method: string, key:any) {\r\n\t\tif (key.toLowerCase( ) == 'test') {\r\n\t\t\treturn this.bs.config.lmsBaseUrl.concat(method);\r\n\t\t}\r\n\t\telse if(key.toLowerCase( ) ==this.bs.config.storageSearchApiKey.toLowerCase()){\r\n\t\t\treturn this.bs.config.searchApiEndpoint.concat(\"/\" + method)\r\n\t\t}\r\n\t\telse {\r\n\t\t\tmethod = method.toLowerCase();\r\n\t\t\t//Changes for the time being for testing \r\n\t\t\t//purposes of API V2 (async version of the following controllers)\r\n\t\t\tif (method.indexOf(\"fileupload/\") > -1) {\r\n\t\t\t\treturn this.bs.config.apiEndpoint.concat(method);\r\n\t\t\t}\r\n\t\t\telse {\t\t\t\t\r\n\t\t\t\treturn this.bs.config.apiEndpoint.concat(\"v2/\" + method);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tdoPostWithPromise(storageKey:any, method:any, body: Object, hidePreLoader = false, extendSession = true) {\r\n\t\t//Don't extend session in case of Notification and Announcement referesh.\t\t\r\n\t\tif (!hidePreLoader) {\r\n\t\t\tthis.showPreloader();\r\n\t\t}\r\n\t\tif (extendSession) {\r\n\t\t\tif (this.chkSessionCntr > 60) {\r\n\t\t\t\tthis.postExtendSessionRequest();\r\n\t\t\t\tthis.chkSessionCntr = 0;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\r\n\t\t\tthis.http.post(this.prepareUrl(method, storageKey), this.appendBaseParameters(body), this.appendHeaderIfUserLoggedIn()).toPromise().then(\r\n\r\n\t\t\t\tres => { // Success\r\n\t\t\t\t\tif (!hidePreLoader)\r\n\t\t\t\t\t\tthis.hidePreloader();\r\n\t\t\t\t\tthis.dataStore[storageKey] = res;\r\n\t\t\t\t\t//this.LastRequestTime = res['LastRequestTime'];\r\n\t\t\t\t\tresolve(this.dataStore[storageKey]);\r\n\r\n\t\t\t\t},\r\n\t\t\t\tmsg => { // Error\r\n\t\t\t\t\tif (!hidePreLoader)\r\n\t\t\t\t\t\tthis.hidePreloader();\r\n\t\t\t\t\treject(msg);\r\n\t\t\t\t\tif (msg.status == '401') {\r\n\t\t\t\t\t\tthis.bs.logout();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t});\r\n\t};\r\n\r\n\t// get Data\r\n\tgetData(storageKey:any, method:any, hidePreLoader = false, extendSession = true){\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t//Don't extend session in case of Notification and Announcement referesh.\t\t\r\n\t\t\tif (!hidePreLoader) {\r\n\t\t\t\tthis.showPreloader();\r\n\t\t\t}\r\n\t\t\tif (extendSession) {\r\n\t\t\t\tif (this.chkSessionCntr > 60) {\r\n\t\t\t\t\tthis.postExtendSessionRequest();\r\n\t\t\t\t\tthis.chkSessionCntr = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\tthis.http.get(this.prepareUrl(method, storageKey)).toPromise().then(\r\n\r\n\t\t\t\tres => { // Success\r\n\t\t\t\t\tif (!hidePreLoader)\r\n\t\t\t\t\t\tthis.hidePreloader();\r\n\t\t\t\t\tthis.dataStore[storageKey] = res;\r\n\t\t\t\t\t//this.LastRequestTime = res['LastRequestTime'];\r\n\t\t\t\t\tresolve(this.dataStore[storageKey]);\r\n\r\n\t\t\t\t},\r\n\t\t\t\tmsg => { // Error\r\n\t\t\t\t\tif (!hidePreLoader)\r\n\t\t\t\t\t\tthis.hidePreloader();\r\n\t\t\t\t\treject(msg);\r\n\t\t\t\t\tif (msg.status == '401') {\r\n\t\t\t\t\t\tthis.bs.logout();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\t/*@TODO not used*/\r\n\tdoPostWithObservable(storageKey:any, method:any, body:Object) {\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.http.post(this.bs.config.apiEndpoint.concat(method), body).subscribe(\r\n\t\t\t\tres => { // Success\r\n\t\t\t\t\tthis.dataStore[storageKey] = res;\r\n\t\t\t\t\tresolve(this.dataStore[storageKey]);\r\n\t\t\t\t},\r\n\t\t\t\tmsg => { // Error\r\n\t\t\t\t\treject(msg);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t});\r\n\t};\r\n\r\n\tappendBaseParameters(params: Object|any) {\r\n\r\n\t\tif (this.dataStore.hasOwnProperty(this.bs.config.storageLoginKey)) {\r\n\r\n\t\t\tlet loginClassParams = this.getDataStoreData(this.bs.config.storageLoginKey);\r\n\t\t\tparams['CorporateId'] = loginClassParams['CorporateId'];\r\n\t\t\tparams['Culture'] = loginClassParams['Culture'];\r\n\t\t\tparams['UserId'] = loginClassParams['UserId'];\r\n\t\t\tparams['TimeZoneValue'] = loginClassParams['TimeZoneValue'];\r\n\t\t\tparams['EmailId'] = loginClassParams['EmailId'];\r\n\t\t\tparams['UserRoles'] = loginClassParams['UserRoles'];\r\n\t\t\tparams['AccessibleCategories'] = loginClassParams['AccessibleCategories'];\r\n\t\t\tparams['UserRoleId'] = sessionStorage.getItem(\"selectedUserRoleID\") == null ? 3 : sessionStorage.getItem(\"selectedUserRoleID\");\r\n\t\t\tif (sessionStorage.getItem(\"selectedUserRoleID\") != null) {\r\n\t\t\t\tthis.bs.setUserAttr(\"SelectedUserRoleId\", sessionStorage.getItem(\"selectedUserRoleID\"));\r\n\t\t\t}\r\n\t\t\tif (sessionStorage.getItem(\"selectedCulture\") != null) {\r\n\t\t\t\tparams['Culture'] = sessionStorage.getItem(\"selectedCulture\");\r\n\t\t\t}\r\n\t\t\tparams['WebAppFlag'] = \"W\";\r\n\t\t\tparams['LogOnCode'] = loginClassParams['LogOnCode'];\r\n\t\t\t\r\n\t\t\tif(loginClassParams['UserKey'])\r\n\t\t\t\tparams['UserKey'] = loginClassParams['UserKey'];\r\n\t\t\t//params['LastRequestTime'] = this.LastRequestTime;\r\n\t\t}\r\n\t\treturn params;\r\n\t}\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { SystemAlertService } from '../learner/system-alert/system-alert.service';\r\nimport { BaseService } from '../shared-service/base.service';\r\nimport { HttpClient } from '@angular/common/http';\r\ndeclare var $: any;\r\n\r\n\r\n\r\n@Injectable()\r\nexport class NotificationRouteService {\r\n\t\r\n\tprivate storageRouteStatusKey: PropertyKey = 'RouteStatusKey';\r\n\tprivate subMenuArray: Array = [];\r\n\r\n\tconstructor(private router: Router, private bs: BaseService, private systemAlertService: SystemAlertService) {\r\n\t\tthis.bs.log('info', \"Loaded NotificationRouteService\");\r\n\t\tlet menuLength = this.bs.menu['MenuItems'].length;\r\n\t\tfor (let i = 0; i < menuLength; i++) {\r\n\t\t\tlet subMenuLength = this.bs.menu['MenuItems'][i]['subMenuItems'].length;\r\n\t\t\tfor (let j = 0; j < subMenuLength; j++) {\r\n\t\t\t\tthis.subMenuArray.push(this.bs.menu['MenuItems'][i]['subMenuItems'][j]['Action']);\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\trouteNotificationItems(RouteItem: Object|any) {\r\n\t\tthis.bs.log('info', RouteItem['ItemId']);\r\n\t\tlet itemType = RouteItem['ItemType'];\r\n\t\tlet ItemId = RouteItem['ItemId'];\r\n\t\tlet actionName = RouteItem['ActionName'];\r\n\t\tlet paramObj = {};\r\n\r\n\t\tthis.bs.isTrainingHistory = false;\r\n\r\n\t\tif (itemType == \"ANN\") {\r\n\t\t\tparamObj = {\r\n\t\t\t\tAnnouncementId: ItemId\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (itemType == \"DF\") {\r\n\t\t\tif (this.subMenuArray.indexOf('/learner/conversation/container') > -1) {\r\n\t\t\t\tparamObj = {\r\n\t\t\t\t\tItemId: ItemId\r\n\t\t\t\t}\r\n\t\t\t\tthis.systemAlertService.getPublicDFRouteStatusFromServer(paramObj, this.storageRouteStatusKey).then((data) => {\r\n\t\t\t\t\tif (data == \"A\") {\r\n\t\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('cnvrstn_mdl'), { id: ItemId, date: new Date().getTime() }, 'D');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (data == \"M\") {\r\n\t\t\t\t\t\talert(\"Item has been expired\");\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\tthis.bs.log('info', 'Error in getting list');\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telse if (itemType == \"SRV\") {\r\n\t\t\tif (this.subMenuArray.indexOf('learner/survey/container') > -1) {\r\n\t\t\t\tparamObj = { ItemId: ItemId }\r\n\t\t\t\tthis.systemAlertService.getPublicSRVRouteStatusFromServer(paramObj, this.storageRouteStatusKey).then((data) => {\r\n\t\t\t\t\tif (data == \"A\") {\r\n\t\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('srvy_mdl'), { id: ItemId, date: new Date().getTime() }, 'S');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (data == \"E\") {\r\n\t\t\t\t\t\talert(\"Item has been expired\");\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\tthis.bs.log('info', 'Error in getting list');\r\n\t\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telse if (itemType == \"WBR\") {\r\n\t\t\tlet obj = { ItemId: ItemId, ItemType: itemType }\r\n\t\t\tif (actionName == \"forward/VwWbmnrLS\") {\r\n\t\t\t\tif (this.subMenuArray.indexOf('/learner/webinar/container') > -1) {\r\n\t\t\t\t\tthis.systemAlertService.getNotificationAssignRouteWebinarStatusFromServer(obj, this.storageRouteStatusKey).then((data) => {\r\n\t\t\t\t\t\tif (data == \"A\") {\r\n\t\t\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('wbnr_mdl') , { id: ItemId, date: new Date().getTime() }, 'W');\r\n\t\t\t\t\t\t\t//this.router.navigate(['/learner/webinar/container', { id: ItemId, date: new Date().getTime() }]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (data == \"E\") {\r\n\t\t\t\t\t\t\talert(\"This content has been expired.\")\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (data == \"M\") {\r\n\t\t\t\t\t\t\talert(\"This content has been moved from here.\")\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\t\tthis.bs.log('info', 'Error in getting list');\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (itemType == \"EL\") {\r\n\t\t\tif (this.subMenuArray.indexOf('learner/external-learning/container') > -1) {\r\n\t\t\t\tparamObj = { DiscussionForumId: ItemId }\r\n\t\t\t\tthis.routeTo(this.bs.loadModulePath('extrnl_lrng_mdl') + this.bs.getDirectPath('extrnl_dtls'), { id: ItemId }, 'E');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telse if (itemType == \"CRS-RMNDR\") {\r\n\t\t\tif (this.subMenuArray.indexOf('/learner/taskList/container') > -1) {\r\n\r\n\t\t\t\tthis.routeTo(this.bs.loadModulePath('tsk_mdl'), {}, 'M');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\r\n\t\telse if (itemType == \"CRS\" || itemType == \"CRS-DF\" || itemType == \"CRS-EL\" ) {\r\n\r\n\t\t\tlet Obj = { ItemId: ItemId, ItemType: itemType }\r\n\t\t\tif (actionName == \"forward/VwCrsLS\") {\r\n\t\t\t\tif (this.subMenuArray.indexOf('/learner/taskList/container') > -1) {\r\n\t\t\t\t\tthis.systemAlertService.getNotificationAssignRouteCourseStatusFromServer(Obj, this.storageRouteStatusKey).then((data) => {\r\n\t\t\t\t\t\tif (data == \"A\") {\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif (itemType == \"CRS-DF\") {\r\n\t\t\t\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('tsk_mdl') + this.bs.getDirectPath('crs_dtl'), { id: ItemId, tab: 'conversation', IsNodeClick: true }, 'M');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('tsk_mdl') + this.bs.getDirectPath('crs_dtl'), { id: ItemId, IsNodeClick: true }, 'M');\r\n\t\t\t\t\t\t\t}\t\t\t\t\t\t//this.router.navigate(['/learner/learning/container/course-detail', { id: ItemId }]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (data == \"E\") {\r\n\t\t\t\t\t\t\talert(\"This content has been expired.\")\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (data == \"M\") {\r\n\t\t\t\t\t\t\talert(\"This content has been moved from here.\")\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\t\tthis.bs.log('info', 'Error in getting list');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\telse if (actionName == \"forward/LrnngCntrSd\") {\r\n\t\t\t\tif (this.subMenuArray.indexOf('/learner/course-catalog/container') > -1) {\r\n\t\t\t\t\tthis.systemAlertService.getNotificationCatlougeRouteCourseStatusFromServer(Obj, this.storageRouteStatusKey).then((data) => {\r\n\t\t\t\t\t\tif (data == \"A\") {\r\n\t\t\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('crs_ctlg_mdl') + this.bs.getDirectPath('ctlg_dtl'), { id: ItemId }, 'A');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (data == \"E\") {\r\n\t\t\t\t\t\t\talert(\"This content has been expired.\")\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (data == \"M\") {\r\n\t\t\t\t\t\t\talert(\"This content has been moved from here.\")\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\t\tthis.bs.log('info', 'Error in getting list');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (itemType == \"ILT-L\" || itemType == \"ILT-DF\") {\r\n\t\t\tlet Obj = { ItemId: ItemId }\r\n\t\t\tif (actionName == \"forward/VwCrsLS\") {\r\n\t\t\t\tif (this.subMenuArray.indexOf('/learner/taskList/container') > -1) {\r\n\t\t\t\t\tthis.systemAlertService.getNotificationAssignRouteIltStatusFromServer(Obj, this.storageRouteStatusKey).then((data) => {\r\n\t\t\t\t\t\tif (data == \"A\") {\r\n\t\t\t\t\t\t\tif (itemType == \"ILT-DF\") {\r\n\t\t\t\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('tsk_mdl') + this.bs.getDirectPath('ilt_dtl'), { id: ItemId, tab: 'conversation' }, 'M');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('tsk_mdl') + this.bs.getDirectPath('ilt_dtl'), { id: ItemId }, 'M');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (data == \"E\") {\r\n\t\t\t\t\t\t\talert(\"This content has been expired.\")\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (data == \"M\") {\r\n\t\t\t\t\t\t\talert(\"This content has been moved from here.\")\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\t\tthis.bs.log('info', 'Error in getting list');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (actionName == \"forward/TrnngHstory\") {\r\n\t\t\t\tif (this.subMenuArray.indexOf('/learner/taskList/container') > -1) {\r\n\t\t\t\t\tthis.bs.isTrainingHistory = true;\r\n\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('tsk_mdl') + this.bs.getDirectPath('ilt_dtl'), { id: ItemId, IsNodeClick: false }, 'H');\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (actionName == \"forward/LrnngCntrSd\") {\r\n\t\t\t\tif (this.subMenuArray.indexOf('/learner/course-catalog/container') > -1) {\r\n\t\t\t\t\tthis.systemAlertService.getNotificationCatlougeRouteIltStatusFromServer(Obj, this.storageRouteStatusKey).then((data) => {\r\n\t\t\t\t\t\tif (data == \"A\") {\r\n\t\t\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('crs_ctlg_mdl') + this.bs.getDirectPath('ctlg_ilt_dtl'), { id: ItemId }, 'A');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (data == \"E\") {\r\n\t\t\t\t\t\t\talert(\"This content has been expired.\")\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (data == \"M\") {\r\n\t\t\t\t\t\t\talert(\"This content has been moved from here.\")\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\t\tthis.bs.log('info', 'Error in getting list');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (itemType == \"ILT\") {\r\n\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse if (itemType == \"GMF\" && actionName != '') {\r\n\t\t\tif (this.subMenuArray.indexOf('/learner/leaderboard/container') > -1) {\r\n\r\n\t\t\t\tthis.bs.notificationRoute = \"true\";\r\n\t\t\t\tthis.routeTo(this.bs.loadModulePath('ldrbrd_mdl'), { id: ItemId }, 'G');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if ((itemType == \"GMF\" && actionName == '') || itemType == \"GMF1\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\telse if (itemType == \"SPLRN\") {\r\n\t\t\tlet Obj = { ItemId: ItemId, ItemType: itemType }\r\n\t\t\tif (this.subMenuArray.indexOf('/learner/taskList/container') > -1) {\r\n\t\t\t\tthis.systemAlertService.getNotificationAssignRouteCourseStatusFromServer(Obj, this.storageRouteStatusKey).then((data) => {\r\n\t\t\t\t\tif (data == \"A\") {\r\n\t\t\t\t\t\tthis.routeTo(this.bs.loadModulePath('tsk_mdl') + this.bs.getDirectPath('crs_dtl'), { id: ItemId, IsNodeClick: true }, 'M');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\talert(\"Space learning program is either expired or not started yet.\")\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t},\r\n\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\tthis.bs.log('info', 'Error in getting list');\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\talert(\"Access denied - You are not authorized to access this notification.\")\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\trouteTo(path: string, params: object, menuItem: string) {\r\n\t\t$('.sub-header').show();\r\n\t\t$('body').removeClass('offsidebar-open');\r\n\t\tif(menuItem=='M' || menuItem=='H' ){\r\n\t\t\tthis.bs.setCurrentModulePath(this.bs.loadModulePath('tsk_mdl'));\r\n\t\t}\r\n\r\n\t\tthis.router.navigate([path, params]).then((res) => {\r\n\t\t\tconsole.log(res);\r\n\t\t});\r\n\t\tthis.bs.activateMenuItem(menuItem);\r\n\t}\r\n}\r\n","import { NgModule, ModuleWithProviders, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DataService } from './data.service';\r\nimport { Util } from './util.service';\r\n\r\nimport { WizdomErrorHandler } from './app-error.handler';\r\nimport { APP_CONFIG, WIZDOM_APP_CONFIG } from './app.config';\r\n\r\nimport { AuthGuardGuard } from './auth-guard.guard';\r\nimport { SortingresultsService } from './sorting.results.service';\r\nimport { NotificationRouteService } from './notification-route.service';\r\nimport { SharingPanelService } from './sharing-panel-service';\r\nimport { DynamicFieldService } from '../shared-components/dynamic-field/dynamic-field.service';\r\nimport { DynamicFieldLearningService } from '../shared-components/dynamic-field-learning/dynamic-field-learning.service';\r\nimport { ViewMoreLikeThisService } from '../shared-components/view-more-like-this/view-more-like-this.service';\r\nimport { SuggestionsService } from '../shared-components/suggestions/suggestions.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class SharedServiceModule {\r\n constructor (@Optional() @SkipSelf() parentModule: SharedServiceModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'SharedServiceModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: SharedServiceModule,\r\n providers: [ \r\n DataService,\r\n Util,\r\n WizdomErrorHandler,\r\n AuthGuardGuard,\r\n SortingresultsService,\r\n NotificationRouteService,\r\n SharingPanelService,\r\n DynamicFieldService,\r\n DynamicFieldLearningService,\r\n ViewMoreLikeThisService,\r\n SuggestionsService,\r\n { provide: APP_CONFIG, useValue: WIZDOM_APP_CONFIG }\r\n ]\r\n }\r\n }\r\n}\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { WidgetItem } from '../shared-datatypes/widget-items';\r\nimport { DataService } from '../shared-service/data.service';\r\nimport { BaseService } from '../shared-service/base.service';\r\nimport { WindowRef } from '../shared-service/windowRef.service';\r\n\r\n@Injectable()\r\nexport class SharingPanelService {\r\n\r\n compList: object | any = {};\r\n treeData: object | any = {};\r\n changeDetected = new Subject();\r\n sharedSuccess = new Subject();\r\n\tactiveWallSubject = new Subject();\r\n\tisActiveWall: boolean = false;\r\n\r\n constructor(private ds: DataService, private bs: BaseService,private winRef:WindowRef) {\r\n \tthis.compList['panel'] = { initializing: true };\r\n\t\tthis.activeWallSubject.next(this.isActiveWall);\r\n }\r\n\r\n\tupdateActiveWall(isActiveWall: boolean): void{\r\n\t\tthis.isActiveWall = isActiveWall;\r\n\t\tthis.activeWallSubject.next(this.isActiveWall);\r\n\t}\r\n\r\n updateComponentObj( component: Type, data: object ) {\t\t\r\n this.compList['panel'] = new WidgetItem(component, data);\r\n }\r\n\r\n resetPanel() {\r\n \tthis.compList['panel'] = { initializing: true };\r\n }\r\n\r\n GetShareTreeJson(body: Object, key: PropertyKey) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.ds.doPostWithPromise(key, 'OverView/GetShareTreeJson', body).then((data) => {\r\n\t\t\t\tresolve(data);\r\n\t\t\t}, (err) => {\r\n\t\t\t\treject(err);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t\r\n\r\n\tgetUserList(body: Object, key: PropertyKey, useFor: string) {\r\n\t\tlet cm = '';\r\n\t\tif (useFor == 'SharingPanelComponent') {\r\n\t\t\tcm = 'OverView/GetUserList';\r\n\t\t} else if (useFor == 'BriefcaseListComponent' || useFor == 'BriefcaseDetailsComponent' || useFor == 'MyBriefcaseComponent') {\r\n\t\t\tcm = 'learning/GetUserList';\r\n\t\t}\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.ds.doPostWithPromise(key, cm, body).then((data) => {\r\n\t\t\t\tresolve(data);\r\n\t\t\t}, (err) => {\r\n\t\t\t\treject(err);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tShareTimeLineTiles(body: Object, key: PropertyKey) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.ds.doPostWithPromise(key, 'OverView/ShareTimeLineTiles', body).then((data) => {\r\n\t\t\t\tresolve(data);\r\n\t\t\t}, (err) => {\r\n\t\t\t\treject(err);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tsetBlockShareTimeLineTilesUser(body: Object, key: PropertyKey) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.ds.doPostWithPromise(key, 'OverView/BlockShareTimeLineTilesUser', body).then((data) => {\r\n\t\t\t\tresolve(data);\r\n\t\t\t}, (err) => {\r\n\t\t\t\treject(err);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\nselectedItems: string = '';\r\n\r\n\trefreshList() {\r\n\t\tthis.selectedItems = '';\r\n\t\tlet rootObj = this.treeData['data'];\r\n\t\tlet el = this.winRef.nativeWindow.document.getElementById(this.treeData['rootId']);\r\n\t\tlet inputAr = el!.getElementsByTagName('input');\r\n\t\tfor (var i = 0; i < inputAr.length; i++) {\r\n\t\t\tif(inputAr[i]['checked']) {\r\n\t\t\t\tlet arrRoute = inputAr[i]['value'].split('-');\r\n\t\t\t\tif (arrRoute[0] == 'true') {\r\n\t\t\t\t\tlet nEl = this.winRef.nativeWindow.document.getElementById('ul'+arrRoute[1]+this.treeData['rootId']);\r\n\t\t\t\t\tthis.selectedItems = this.selectedItems + arrRoute[1] + ',';\r\n\t\t\t\t\tif (nEl == null) {\r\n\t\t\t\t\t\tthis.findChilds(arrRoute, rootObj);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.selectedItems = this.selectedItems + arrRoute[1] + ',';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.selectedItems;\r\n\t}\r\n\r\n\tfindChilds(arrRoute: Array, rootObj: object | any) {\r\n\t\tlet tmpObj = rootObj;\r\n\t\tfor (let i = 3; i < arrRoute.length; i++) {\r\n\t\t\ttmpObj = tmpObj['childs'][arrRoute[i]];\r\n\t\t}\r\n\t\tthis.doAddIds(tmpObj);\r\n\t}\r\n\r\n\tdoAddIds(tmpObj:any) {\r\n\t\tif (tmpObj['childs'] != null) {\r\n\t\t\tfor (let i = 0; i < tmpObj['childs'].length; i++) {\r\n\t\t\t\tthis.selectedItems = this.selectedItems + tmpObj['childs'][i]['id'] + ',';\r\n\t\t\t\tthis.doAddIds(tmpObj['childs'][i]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/*findParentPath(arrRoute: Array) {\r\n\t\tlet tmpObj = this.rootObj;\r\n\t\tfor (let i = 3; i < arrRoute.length; i++) {\r\n\t\t\ttmpObj = tmpObj['childs'][arrRoute[i]];\r\n\t\t\tthis.selectedItems = this.selectedItems + tmpObj['id'] + ',';\r\n\t\t}\r\n\t}*/\r\n}","import { Injectable, Inject } from '@angular/core';\r\nimport { BaseService } from './base.service';\r\n\r\n\r\n@Injectable()\r\nexport class SortingresultsService {\r\n constructor(private bs: BaseService) {\r\n this.bs.log('info',\"Loaded SortingresultsService\");\r\n }\r\n\r\n sortResults(data:any, key:any) {\r\n return data.sort(function (a:any, b:any) { \r\n var x = a[key];\r\n var y = b[key];\r\n return ((x < y) ? -1 : ((x > y) ? 1 : 0));\r\n });\r\n \r\n }\r\n\r\n sortResultsByDefinedOrder(data:any, key:any, asc:any) {\r\n return data.sort(function(a:any, b:any) {\r\n if (asc) {\r\n return (a[key] > b[key]) ? 1 : ((a[key] < b[key]) ? -1 : 0);\r\n } else {\r\n return (b[key] > a[key]) ? 1 : ((b[key] < a[key]) ? -1 : 0);\r\n }\r\n });\r\n \r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthOIDCService } from '../auth/authOIDC.service';\r\nimport { BaseService } from './base.service';\r\n\r\ndeclare var jquery: any;\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class Util {\r\n\r\n constructor( \r\n private bs: BaseService,\r\n private authOIDCService: AuthOIDCService\r\n ) {\r\n this.bs.log('info', 'Loaded Class Util');\r\n }\r\n\r\n checkNetworkInfo() {\r\n const networkState = navigator['connection'].type;\r\n console.log('networkState', networkState);\r\n if (networkState == 'none') {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n disable(id: string) {\r\n $('#' + id).css('pointer-events', 'none');\r\n }\r\n\r\n enable(id: string) {\r\n $('#' + id).css('pointer-events', 'auto');\r\n }\r\n\r\n toaster (message:any) {\r\n /*To be done \r\n as this is to be cenral point for displaying messages*/\r\n /*const $item = $('', {\r\n 'html': message,\r\n 'class': 'toaster'\r\n });\r\n\r\n $item.appendTo($('[data-role=page]')).fadeIn('slow');\r\n\r\n setTimeout(function () {\r\n $item.fadeOut('slow');\r\n $item.remove();\r\n }, 2000);*/\r\n\r\n }\r\n\r\n progressBar (message: string) {\r\n const $item = $('', {\r\n 'html': message,\r\n 'class': 'toaster',\r\n 'id': 'progressBar'\r\n });\r\n $item.appendTo($('[data-role=page]')).fadeIn('slow');\r\n }\r\n\r\n updateProgressBar(msg: string) {\r\n $('#progressBar').html(msg);\r\n }\r\n\r\n hideProgressBar(){\r\n $('#progressBar').remove();\r\n }\r\n\r\n showLoader() {\r\n this.disable('content');\r\n //$.mobile.loading( 'show' );\r\n }\r\n\r\n hideLoader() {\r\n this.enable('content');\r\n //$.mobile.loading( 'hide' );\r\n }\r\n\r\n uploadFile(fileURI: any, allowFileType:any, uploadMethod: string) {\r\n console.log(fileURI);\r\n this.showLoader();\r\n const formData: FormData = new FormData();\r\n formData.append('uploadFile', fileURI, fileURI['name']);\r\n formData.append('CorporateID', this.bs.user['CorporateId']);\r\n formData.append('Culture', this.bs.user['Culture']);\r\n formData.append('userId', this.bs.user['UserId']);\r\n formData.append('AllowFileType', allowFileType);\r\n return Observable.create( (observer:any) => {\r\n const xhr: XMLHttpRequest = new XMLHttpRequest();\r\n xhr.open('POST', this.bs.config.apiEndpoint + uploadMethod, true);\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + this.authOIDCService.token);\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n observer.next(JSON.parse(xhr.response));\r\n this.hideLoader();\r\n observer.complete();\r\n } else {\r\n this.hideLoader();\r\n observer.error(xhr.response);\r\n }\r\n }\r\n };\r\n\r\n xhr.upload.onprogress = (event) => {\r\n const progress = Math.round(event.loaded / event.total * 100);\r\n observer.next(progress);\r\n };\r\n xhr.send(formData);\r\n });\r\n }\r\n\r\n getScripts(scripts:any) {\r\n return new Promise((resolve, reject) => {\r\n let progress = 0;\r\n scripts.forEach(function(script:any) {\r\n $.getScript( script ).done( function( script1:any, textStatus:any ) {\r\n console.log( textStatus );\r\n if (++progress == scripts.length) {\r\n resolve({});\r\n }\r\n }).fail(function( jqxhr:any, settings:any, exception:any ) {\r\n console.log( jqxhr, settings, exception );\r\n reject();\r\n });\r\n });\r\n });\r\n }\r\n\r\n generateRandomString(){\r\n return Math.random().toString(36).substring(2);\r\n }\r\n\r\n escape(string:any){\r\n return (string + '').replace(/[&<>\"'/]/g, '\\\\$&');\r\n }\r\n}\r\n\r\n","import {Injectable} from '@angular/core';\r\n\r\nfunction _window(): any {\r\n // return the native window obj\r\n return window;\r\n}\r\n\r\n@Injectable()\r\nexport class WindowRef {\r\n \r\n get nativeWindow(): any {\r\n return _window();\r\n }\r\n \r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthOIDCService } from '../auth/authOIDC.service';\r\nimport { BaseService } from '../shared-service/base.service';\r\nimport { WindowRef } from '../shared-service/windowRef.service';\r\n\r\n// import { KeycloakService } from 'keycloak-angular';\r\n\r\n@Component({\r\n selector: 'app-unauthorized',\r\n templateUrl: './unauthorized.component.html',\r\n styleUrls: ['./unauthorized.component.css']\r\n})\r\nexport class UnauthorizedComponent implements OnInit {\r\n\r\n constructor(private router: Router, private baseService: BaseService, private authOIDCService: AuthOIDCService,private winRef:WindowRef) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n routeToLogin() {\r\n setTimeout(() => {\r\n if (this.baseService.isDirectLogin) {\r\n this.authOIDCService.logout();\r\n // this.winRef.nativeWindow.document.location.href = `${this.baseService.config.authServerBaseUrl}realms/${this.baseService.config.realm}/protocol/openid-connect/logout?post_logout_redirect_uri=${this.baseService.config.lmsBaseUrl}learner&id_token_hint=${this.keycloakService.getKeycloakInstance().idToken}`;\r\n //this.keycloakService.logout(location.origin).then(() => this.keycloakService.clearToken()); \r\n }\r\n this.baseService.logout();\r\n }, 1500);\r\n }\r\n\r\n}\r\n","\r\n \r\n
Unauthorized Access
\r\n
\r\n
\r\n
\r\n\r\n","import { Environment } from './environment.d';\r\n\r\nexport const environment: Environment = {\r\n production: true,\r\n env: 'prod',\r\n apiEndpoint: 'https://sikshalms.tvscredit.com/AppService/api/',\r\n apiBaseUrl: 'https://sikshalms.tvscredit.com/AppService/',\r\n searchApiEndpoint: 'https://lmswebapp.gc-solutions.net/lmsproduct80/rest/v1/tvscredit',\r\n title: 'Siksha',\r\n saveLogs: false,\r\n storageLoginKey: 'LoginDetails',\r\n storageResourcesKey: 'StringResources',\r\n storageSearchApiKey: 'searchapi',\r\n hostName: 'tvscredit',\r\n lmsBaseUrl: 'https://sikshalms.tvscredit.com/',\r\n pageSize: 10,\r\n sessionTimeOut: 1200,\r\n videolibraryapiurl: 'https://lmswebapp.gc-solutions.net/videolib80/rest/v2/tvscredit',\r\n\tvideoLibraryThumbnailApiUrl:'https://lmswebapp.gc-solutions.net/videolib80/rest/v2/tvscredit/thumbnail?videokey=',\r\n dashboardViewerUrl: 'https://gcubelmsqc.gc-solutions.net/olapapi/rest/v1/prodload/', \r\n keycloakConfigOptions: {\r\n url: 'https://lmsauth.gc-solutions.net/',\r\n\t\trealm: 'tvscredit',\r\n\t\tclientId: 'learnerweb',\r\n\t\tenableLogging: true,\r\n\t},\r\n\tkeycloakInitOptions : {\r\n\t\tonLoad: 'login-required',\r\n\t\tresponseMode: 'query',\r\n\t\tredirectUri: 'https://sikshalms.tvscredit.com/learner/',\r\n checkLoginIframe: false\r\n\t},\r\n notificationInterval:60000\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"names":["isDevMode","environment","APP_CONFIG","AppService","constructor","loginService","router","baseService","titleService","dataService","config","authOIDCService","winRef","deeplinkService","nativeWindow","navigator","userAgent","loadConfig","ngOnInitConfig","switchAdminToLearnerUrl","sessionStorage","getItem","location","href","canUserLogin","then","res","alert","logout","isLearnerSwitch","getParameterByName","isDirectLogin","isCorrectDeepLinkDetails","urlQueryPart","indexOf","substring","urlHostPart","urlObj","URL","urlOriginPart","origin","pathname","urlHashPart","hash","replace","window","lmsBaseUrl","isProxyLogin","isHash","metadata","navigate","navigateByUrl","jwt","corporateID","courseLaunchId","setItem","selectedUserRoleID","CultureCarrier","userId","nodeId","$","addClass","removeClass","sResource","getStringResourceFromServer","storageResourcesKey","JSON","stringify","loadStringResources","spacedResource","getJwtWiseUserSpacedLearningDetail","IsSpacedLearning","SpacedLaunchId","SpacedNodeId","setTimeout","body","getJwtWiseLoginDetailFromServer","storageLoginKey","loadUserAccount","setUserAtibuteLoded","userProfileImage","getUserAttr","isActiveNotification","setTitle","startTimer","user","loginInAdminSite","console","log","err","getResource","selectedCulture","aspSessionId","params","userName","IsProxyLogin","getUserMoreDetails","setSessionStorage","setUserDetailsMoveToLearning","date","Date","getTime","getCookie","removeItem","undefined","setUserDetailOnReload","NotificationClass","AnnouncementClass","setStoreData","parse","get00Item","LogOnCode","setUserAttr","resData","name","url","regex","RegExp","results","exec","decodeURIComponent","cname","decodedCookie","document","cookie","ca","split","i","length","c","charAt","navigatetoLastHistory","toString","routeTo","path","menuItem","show","setCurrentModulePath","loadModulePath","activateMenuItem","DeeplinkUrl","Promise","resolve","rejected","getDeeplinkDetailFromServer","LearningItemDetail","i0","factory","EntityType","role_r21","NavbarComponent","bs","navbarService","platformLocation","search","menuCollapse","onPopState","e","confirmAssessmentMsg","r","confirm","CloseSCORM","state","preventDefault","stopPropagation","ngOnInit","css","setObservableGlobalSearchValue","lang","currentLang","userImage","enableActiveWall","CultureList","UserRoles","getQuickLinksFromServer","data","menu","IsDeepLinkActive","deepLinkMenu","filter","mnu","DeepLinkMenuItemKey","subMenu","loadSubMenu","sbmnu","DeepLinkSubmenuItemKey","openCloseNotifications","expandMenu","submenuKey","s","rbkey","Key","showSkillRoleBased","enableColapseMenu","getHomePageOption","ngAfterViewInit","RegisterAutoComplete","click","hasClass","toggleClass","mouseleave","toggle","currentClass","autocomplete","source","request","response","term","autocmpltsrchtext","getAutoCmplteData","map","obj","key","toUpperCase","label","value","MyLearning","autoFocus","html","minLength","delay","open","event","ui","close","select","val","item","GlobalSearch","modal","trigger","scroll","isLrngClnder","isTrainingHistory","isReadAndSign","HasOverView","getDirectPath","id","IsNodeClick","hide","resetNavbar","width","openSubMenu","next","deActivateSubMenus","action","Action","getElementById","style","visibility","innerHTML","className","isVwLrng","openGlobalSearch","getUserPrivilegeDetails","attr","closeGlobalSearch","setCulture","normalize","reload","changeRole","roleId","roleType","clear","forms","SelectedUserRoleId","SelectedCulture","submit","openCloseSystemAlert","classname","bodyTag","ActiveNotification","changeValue","lastAnnouncementAlertCheck","lastNotificationAlertCheck","updateLastAlertCheck","updateLastUserAlertCheck","RedirectCustomerCare","deActivateAllMenus","getHomePageOptionFromServer","homePageOption","forEach","option","enableNotification","enableCustomerSupport","enableGlobalSearch","getAnnouncementCount","getNotificationCount","getActiveWallStatus","getNotificationCountFromServer","notificationCount","getPublicAnnouncementCountFromServer","announcementCount","getActiveWallStatusFromServer","enableRedDot","error","setInterval","alertCounter","notificationInterval","setliClass","index","openlang","changeGlobalSearchValue","GlobalSearchEnter","RedirectUserProfile","RedirectPath","setActiveWallStatus","setActiveWallStatusFromServer","OpenCloseActiveWall","showActiveWall","OSVisibilityClaim","RoleVisibilityClaim","JobRoleVisibilityClaim","RAVisibilityClaim","UserSkills","CloseActiveWall","selectors","decls","vars","consts","template","ctx","_r6","Subject","of","catchError","switchMap","debounceTime","distinctUntilChanged","obj_r7","_r1","UserListComponent","sps","UserId","UserName","parentName","subs","changeDetected","subscribe","checkBoxTriggered","selectUserList","selectedItems","refreshList","getList","ngOnDestroy","unsubscribe","getUserList","userListData","uData","loadList","radioChanged","ev","target","UserIdList","searchTerms","pipe","searchList","noData","sTerm","toLowerCase","selectTag","tag","push","RemoveDuplicates","removeIndex","splice","toggleSearch","focus","sText","toggleChips","remove","keyDownFunction","keyCode","originalArray","prop","newArray","lookupObject","inputs","BehaviorSubject","BaseService","wizdomErrorHandler","authOIDCServie","MenuItems","generic","profilePic","VariantType","Base","Learn","Grow","Act","cnvrstn_mdl","my_lrng_mdl","crs_ctlg_mdl","srvy_mdl","vd_mdl","ovrvw_mdl","extrnl_lrng_mdl","ldrbrd_mdl","tsk_mdl","compliance_mdl","my_complnc","ctlg_dtl","ctlg_ilt_cnvrstn","ctlg_ilt_rtng","ctlg_ilt_morelikethis","ctlg_ilt_dynamic","ctlg_ilt_dtl","ctlg_crs_cnvrstn","ctlg_crs_rtng","ctlg_crs_annncmnt","ctlg_crs_dynamic","ctlg_crs_morelikethis","extrnl_dtls","crs_dtl","ilt_dtl","extrnl_dtl","asesmnt_opn","asesmnt_ply","asesmnt_cmplt","asesmnt_rprt","asesmnt_attempt_rpt","ply_tf","ply_fb","ply_mc","ply_mr","ply_mf","ply_os","ply_ds","wbnr_mdl","checklist_open","checklict_play","scrollTop","addScrollClass","removeScrollClass","dynamicPath","getCurrentModulePath","getFullPath","nextPath","mapedRoute","getFullComponentPath","moduleName","type","msg","info","warn","appConfig","resources","sResources","errorHandler","handleError","deActivateMenus","showPreloader","screenHeight","clientHeight","screenWidth","clientWidth","hidePreloader","loadScripts","dynamicScripts","reject","node","createElement","src","async","charset","getElementsByTagName","appendChild","RemoveScripts","filetype","targetelement","targetattr","allsuspects","j","getAttribute","parentNode","removeChild","loadStyle","styleName","fileName","slice","lastIndexOf","$head","$headlinklast","find","linkElement","after","append","objScormWindow","closed","setEl","el","elScroll","unsetEl","bindScrollEvent","addEventListener","unbindScrollEvent","removeEventListener","itemModule","activatedMenu","activatedQuickLink","Menu","is","isQuickLinkActive","subMenuItems","menuKey","textLimit","characters","limitChar","description","customDescription","parseInt","substr","DynamicObjSetter","cobject","paramsObject","getUserAtibuteLoded","refresh","asObservable","isAlphaNumericWithRegex","expression","pattern","test","HasVariantAccess","variantType","isVariantActive","HttpHeaders","DataService","http","dataStore","sessionTimeout","chkSessionCntr","getDataStoreData","hasOwnProperty","updateData","appendHeaderIfUserLoggedIn","headers","set","concat","token","postExtendSessionRequest","ajax","success","xhr","textStatus","errorThrown","prepareUrl","method","storageSearchApiKey","searchApiEndpoint","apiEndpoint","doPostWithPromise","storageKey","hidePreLoader","extendSession","post","appendBaseParameters","toPromise","status","getData","get","doPostWithObservable","loginClassParams"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}