{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/auth.interceptor.ts","./src/app/common.interceptor.ts","./src/app/get-file/get-file.component.ts","./src/app/get-file/get-file.component.html","./src/app/get-file/get-file.service.ts","./src/app/profile/profile.component.ts","./src/app/safe-html.pipe.ts","./src/environments/environment.dev.ts","./src/main.ts","ignored|/home/vsts/work/1/s/node_modules/pdfjs-dist/build|canvas","ignored|/home/vsts/work/1/s/node_modules/pdfjs-dist/build|fs","ignored|/home/vsts/work/1/s/node_modules/pdfjs-dist/build|http","ignored|/home/vsts/work/1/s/node_modules/pdfjs-dist/build|https","ignored|/home/vsts/work/1/s/node_modules/pdfjs-dist/build|url","ignored|/home/vsts/work/1/s/node_modules/pdfjs-dist/build|zlib","ignored|/home/vsts/work/1/s/node_modules/unload/dist/es|./node.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { OktaAuthGuard, OktaCallbackComponent } from '@okta/okta-angular';\nimport { GetFileComponent } from './get-file/get-file.component';\n\nimport { ProfileComponent } from './profile/profile.component';\n\nconst routes: Routes = [\n { path: 'authorization-code/callback', component: OktaCallbackComponent },\n {path: 'profile', component: ProfileComponent, canActivate: [OktaAuthGuard]},\n {path: 'getFile', component: GetFileComponent, canActivate: [OktaAuthGuard]}\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { OktaAuthStateService, OKTA_AUTH } from '@okta/okta-angular';\nimport { AuthState, OktaAuth } from '@okta/okta-auth-js';\nimport { filter, map, Observable } from 'rxjs';\n\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\nimport { AngularPlugin } from '@microsoft/applicationinsights-angularplugin-js';\n\nimport {Idle, DEFAULT_INTERRUPTSOURCES} from '@ng-idle/core';\nimport {Keepalive} from '@ng-idle/keepalive';\n\n\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent implements OnInit {\n idleState = 'Not started.';\n timedOut = false;\n lastPing?: any = null;\n countdown?: any = null;\n \n public isAuthenticated$!: Observable;\n\n constructor(cd: ChangeDetectorRef, private keepalive: Keepalive, private idle: Idle, private _router: Router, private _oktaStateService: OktaAuthStateService, @Inject(OKTA_AUTH) private _oktaAuth: OktaAuth,private route: ActivatedRoute) {\n idle.setIdle(1200000);\n idle.setTimeout(1200000);\n idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\n \n idle.onIdleEnd.subscribe(() =>{ \n this.idleState = \"NOT_IDLE\";\n console.log(`${this.idleState} ${new Date()}`)\n this.countdown = null;\n cd.detectChanges();\n });\n\n idle.onTimeout.subscribe(() => {\n this.idleState = 'Timed out!';\n this.timedOut = true;\n \n });\n\n idle.onIdleStart.subscribe(() => this.idleState = 'You\\'ve gone idle!');\n idle.onTimeoutWarning.subscribe(seconds => this.countdown = seconds);\n\n keepalive.interval(1200000);\n\n keepalive.onPing.subscribe(() => this.lastPing = new Date());\n\n \n\n var angularPlugin = new AngularPlugin();\n const appInsights = new ApplicationInsights({ config: {\n instrumentationKey: '815b5602-85e8-44d0-897b-ae04d5b14114',\n extensions: [angularPlugin],\n extensionConfig: {\n [angularPlugin.identifier]: { router: this._router }\n }\n } });\n appInsights.loadAppInsights();\n }\n\n reset() {\n this.idle.watch();\n this.idleState = \"NOT_IDLE\";\n this.countdown = null;\n this.lastPing = null;\n }\n public ngOnInit(): void {\n this.reset();\n this.isAuthenticated$ = this._oktaStateService.authState$.pipe(\n filter((s: AuthState) => !!s),\n map((s: AuthState) => s.isAuthenticated ?? false)\n );\n\n this.route.queryParams\n .subscribe(params => {\n if (typeof params['hash'] !== 'undefined') {\n\n localStorage.setItem('hash', params['hash']);\n }\n });\n\n // this._oktaAuth.isAuthenticated().then((val) => {\n // if(val === false){\n // this._oktaAuth.signInWithRedirect().then(\n // _ => this._router.navigate(['/getFile'])\n // );\n // }\n // })\n // setTimeout(() => {\n // this._oktaAuth.signInWithRedirect({ originalUri: '/' });\n // localStorage.setItem('downloading', '0');\n // }, 5000);\n }\n\n \n public async signIn() : Promise {\n await this._oktaAuth.signInWithRedirect().then(\n _ => this._router.navigate(['/getFile'])\n );\n //await this._oktaAuth.signInWithRedirect({ originalUri: '/' })\n }\n\n public async signOut(): Promise {\n await this._oktaAuth.signOut();\n }\n\n \n}\n","
\n
\n
\n

Online

\n

Offline

\n\n\n
\nLAST_PING: {{lastPing | date :'short'}}\n
\n","import { ErrorHandler, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\n\nimport { AppRoutingModule } from './app-routing.module';\n\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { AppComponent } from './app.component';\n\nimport { OktaAuthModule, OKTA_CONFIG } from '@okta/okta-angular';\nimport { OktaAuth } from '@okta/okta-auth-js';\nimport { ProfileComponent } from './profile/profile.component';\n\nimport { AuthInterceptor } from './auth.interceptor';\nimport { GetFileComponent } from './get-file/get-file.component';\n\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\n\nimport { NgxExtendedPdfViewerModule } from 'ngx-extended-pdf-viewer';\n\nimport {CommonInterceptor} from './common.interceptor'\n\nimport { ApplicationinsightsAngularpluginErrorService } from '@microsoft/applicationinsights-angularplugin-js';\n\nimport { NgIdleKeepaliveModule } from '@ng-idle/keepalive';\nimport { SafeHTMLPipe } from './safe-html.pipe';\n\nimport { environment } from '../environments/environment';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\n\nconst oktaAuth = new OktaAuth({\n //TODO: move to env setting below code same for QA, DEV due to diff setting \n issuer: environment.issuer,\n clientId: environment.clientId,\n redirectUri: window.location.origin+'/authorization-code/callback'\n})\n\n\n\n@NgModule({\n declarations: [\n AppComponent,\n ProfileComponent,\n GetFileComponent,\n SafeHTMLPipe\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n HttpClientModule,\n OktaAuthModule,\n PdfViewerModule,\n NgxExtendedPdfViewerModule,\n NgIdleKeepaliveModule.forRoot(),\n BrowserAnimationsModule,\n MatProgressBarModule,\n MatProgressSpinnerModule\n ],\n providers: [ {\n provide: ErrorHandler,\n useClass: ApplicationinsightsAngularpluginErrorService\n },{ provide: OKTA_CONFIG, useValue: { oktaAuth } },{ provide: HTTP_INTERCEPTORS, useClass: CommonInterceptor, multi: true },{ provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Inject, Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { OKTA_AUTH } from '@okta/okta-angular';\nimport { OktaAuth } from '@okta/okta-auth-js';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n constructor(@Inject(OKTA_AUTH) private _oktaAuth: OktaAuth) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(this.addAuthHeaderToAllowedOrigins(request));\n }\n\n private addAuthHeaderToAllowedOrigins(request: HttpRequest): HttpRequest {\n let req = request;\n const allowedOrigins = ['http://localhost'];\n if (!!allowedOrigins.find(origin => request.url.includes(origin))) {\n const authToken = this._oktaAuth.getAccessToken();\n req = request.clone({ setHeaders: { 'Authorization': `Bearer ${authToken}` } });\n }\n\n return req;\n }\n}","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { map, Observable } from 'rxjs';\n\n@Injectable()\nexport class CommonInterceptor implements HttpInterceptor {\n\n constructor() {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(request).pipe(map((response)=>{\n console.log(response)\n return response\n }));\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport {ThemePalette} from '@angular/material/core';\n\nimport { environment } from '../../environments/environment';\n\nimport { GetFileService } from './get-file.service';\nimport {\n NgxExtendedPdfViewerService,\n pdfDefaultOptions,\n} from 'ngx-extended-pdf-viewer';\n\nfunction blobToBase64(blob: any): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const dataUrl = reader.result as string;\n const base64 = dataUrl.split(',')[1];\n resolve(base64);\n };\n reader.readAsDataURL(blob.content);\n });\n}\n\n@Component({\n selector: 'app-get-file',\n templateUrl: './get-file.component.html',\n styleUrls: ['./get-file.component.css'],\n})\nexport class GetFileComponent implements OnInit {\n public src: any;\n public pageActual: any;\n fileName: any;\n displayBanner: boolean | undefined;\n public spreadMode: 'off' | 'even' | 'odd' = 'off';\n page: any;\n color: ThemePalette = 'accent';\n\n constructor(\n private getFileService: GetFileService,\n private pdfViewerService: NgxExtendedPdfViewerService\n ) {\n this.src = null as any;\n pdfDefaultOptions.ignoreDestinationZoom = true;\n }\n\n ngOnInit(): void {\n let _hash = localStorage.getItem('hash');\n this.downloadFile(environment.apiURL + '?hash=' + _hash);\n }\n\n downloadFile(url: string) {\n this.getFileService.getFile(url).subscribe(\n (response) => {\n \n this.displayBanner = this.messageBar(false);\n this.src = response;\n blobToBase64(response).then(\n (base64String) => {\n this.src = base64String;\n this.fileName = response.headers?.get(\"content-disposition\")?.split(';')[1].split(\"=\")[1];\n }\n );\n },\n (error) => {\n console.log(error);\n this.displayBanner = this.messageBar(true);\n }\n );\n }\n\n messageBar(value: boolean) {\n return value;\n }\n\n closeMessage() {\n this.displayBanner = this.messageBar(false);\n }\n\n public onPageRendered(): void {\n if (!this.pdfViewerService.isRenderQueueEmpty()) {\n // try again later when the pages requested by the pdf.js core or the user have been rendered\n setTimeout(() => this.onPageRendered(), 100);\n }\n\n const pagesBefore = this.spreadMode === 'off' ? 2 : 2;\n const pagesAfter = this.spreadMode === 'off' ? 2 : 5;\n let startPage = Math.max(this.page - pagesBefore, 1);\n let endPage = Math.min(\n this.page + pagesAfter,\n this.pdfViewerService.numberOfPages()\n );\n\n const renderedPages = this.pdfViewerService.currentlyRenderedPages();\n\n for (let page = startPage; page <= endPage; page++) {\n const pageIndex = page - 1;\n if (this.pdfViewerService.hasPageBeenRendered(pageIndex)) {\n this.pdfViewerService.addPageToRenderQueue(pageIndex);\n break; // break because you can request only one page at a time\n }\n }\n }\n}\n","
\n
\n \"KC_Logo\"\n
\n
\n
\n

PLM Spec File Viewer

\n {{ fileName }}\n
\n
\n
\n
\n\n\n\n\n
\n Failed to load file\n
\n \n \n \n
\n
\n\n >\n\n","import { Injectable } from '@angular/core';\nimport {\n HttpClient,\n HttpHeaders,\n HttpErrorResponse,\n HttpEvent,\n HttpEventType,\n HttpResponse,\n HttpProgressEvent,\n} from '@angular/common/http';\nimport { catchError, Observable, scan, tap, throwError } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GetFileService {\n constructor(private http: HttpClient) {}\n\n getFile(url: string): Observable {\n const headers = new HttpHeaders().set(\n 'authorization',\n 'Bearer ' +\n JSON.parse(localStorage.getItem('okta-token-storage') || '').accessToken\n .accessToken\n );\n\n return this.http\n .get(url, {\n reportProgress: true,\n observe: 'events',\n responseType: 'blob',\n headers,\n })\n .pipe(\n download((blob) => blob),\n catchError(this.handleError)\n );\n }\n\n private handleError(error: HttpErrorResponse) {\n if (error.status === 0) {\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(`Backend returned code ${error.status}, body was: `, error);\n }\n // Return an observable with a user-facing error message.\n return throwError(\n () => new Error('Something bad happened; please try again later.')\n );\n }\n}\n\nexport interface Download {\n state: 'PENDING' | 'IN_PROGRESS' | 'DONE';\n progress: number;\n content: Blob | null;\n headers?:HttpHeaders;\n}\n\nfunction isHttpResponse(event: HttpEvent): event is HttpResponse {\n return event.type === HttpEventType.Response;\n}\n\nfunction isHttpProgressEvent(\n event: HttpEvent\n): event is HttpProgressEvent {\n return (\n event.type === HttpEventType.DownloadProgress ||\n event.type === HttpEventType.UploadProgress\n );\n}\n\nexport function download(\n saver?: (b: Blob) => void\n): (source: Observable>) => Observable {\n return (source: Observable>) =>\n source.pipe(\n scan(\n (previous: Download, event: HttpEvent): Download => {\n if (isHttpProgressEvent(event)) {\n return {\n progress: event.total\n ? Math.round((100 * event.loaded) / event.total)\n : previous.progress,\n state: 'IN_PROGRESS',\n content: null,\n };\n }\n if (isHttpResponse(event)) {\n console.log(event)\n if (saver && event.body) {\n saver(event.body);\n }\n return {\n progress: 100,\n state: 'DONE',\n content: event.body,\n headers:event.headers\n };\n }\n return previous;\n },\n { state: 'PENDING', progress: 0, content: null }\n )\n );\n}\n","import { Component, OnInit } from '@angular/core';\nimport { OktaAuthStateService } from '@okta/okta-angular';\nimport { filter, map, Observable } from 'rxjs';\nimport { AuthState } from '@okta/okta-auth-js';\n\n@Component({\n selector: 'app-profile',\n template: `\n
\n
\n

\n Hello {{name}}!\n

\n
\n `,\n styleUrls: ['./profile.component.css']\n})\n\nexport class ProfileComponent implements OnInit {\n\n public name$!: Observable;\n\n constructor(private _oktaAuthStateService: OktaAuthStateService) { }\n\n public ngOnInit(): void {\n this.name$ = this._oktaAuthStateService.authState$.pipe(\n filter((authState: AuthState) => !!authState && !!authState.isAuthenticated),\n map((authState: AuthState) => authState.idToken?.claims.name ?? '')\n );\n\n }\n}","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer} from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHTML',\n})\nexport class SafeHTMLPipe implements PipeTransform {\n\n constructor(private _sanitizer:DomSanitizer){}\n\n transform(value: any): any {\n return this._sanitizer.sanitize(SecurityContext.HTML, this._sanitizer.bypassSecurityTrustHtml(value)) as any\n}\n\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n apiURL:\"https://apim-plm-d-ncus-1.azure-api.net/getContentHubFile/v1/getContentHubFile/\",\n issuer: 'https://ebiz.oktapreview.com/oauth2/auslle1jli7NKpqm70h7',\n clientId: '0oa16bt01jpXP5AgR0h8'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["OKTA_AUTH","filter","map","ApplicationInsights","AngularPlugin","DEFAULT_INTERRUPTSOURCES","i0","AppComponent","constructor","cd","keepalive","idle","_router","_oktaStateService","_oktaAuth","route","setIdle","setTimeout","setInterrupts","onIdleEnd","subscribe","idleState","console","log","Date","countdown","detectChanges","onTimeout","timedOut","onIdleStart","onTimeoutWarning","seconds","interval","onPing","lastPing","angularPlugin","appInsights","config","instrumentationKey","extensions","extensionConfig","identifier","router","loadAppInsights","reset","watch","ngOnInit","isAuthenticated$","authState$","pipe","s","isAuthenticated","_a","queryParams","params","localStorage","setItem","signIn","signInWithRedirect","then","_","navigate","signOut","selectors","decls","vars","consts","template","ProfileComponent","_oktaAuthStateService","name$","authState","idToken","claims","name","_b"],"sourceRoot":"webpack:///"}