{"version":3,"sources":["./src/app/face/face-recognition/recognize/recognize.component.ts","./src/app/angular-material/app-material.module.ts","./src/app/image2spell/image2spell.component.css","./src/app/face/face.component.css","./src/app/footer/footer.component.css","./src/app/spellcheck/spellcheck.component.css","./src/app/spellcheck/spellcheck.service.ts","./src/app/app-global.ts","./src/app/image2spell/image2spellRequest.ts","./src/app/common/error.service.ts","./src/app/spellcheck/spellcheck.component.html","./src/app/face/intro/intro.component.ts","./src/app/translation/translation.service.ts","./src/app/translation/translation.component.html","./src/app/home/home.component.ts","./src/app/app.component.css","./src/app/face/face-recognition/face-recognition.component.ts","./src/environments/environment.ts","./src/app/common/image-preview/image-preview.component.css","./src/app/face/face-blurring/blur/blur.component.html","./src/app/spellcheck/spellcheck.component.ts","./src/app/menu/menu.component.css","./src/app/image2spell/image2spell.component.html","./src/app/home/home.component.html","./src/app/footer/footer.component.html","./src/app/face/face-recognition/face-recognition.component.html","./src/app/spellcheck/spellCheckRequest.ts","./src/app/image2spell/image2spell.component.ts","./src/app/auth/auth.guard.ts","./src/app/home/home.service.ts","./src/app/home/home.component.css","./src/app/face/result/result.component.html","./src/app/app.component.ts","./src/app/menu/menu.component.ts","./src/app/face/intro/intro.component.css","./src/app/app.component.html","./src/app/face/result/result.component.ts","./src/app/auth/logout/logout.component.scss","./src/app/auth/auth.module.ts","./src/app/face/face-recognition/add-face/add-face.component.ts","./src/app/image2spell/image2spell.service.ts","./src/app/app.module.ts","./src/app/face/face-blurring/blur/blur.component.css","./src/app/face/face-recognition/add-face/add-face.component.css","./src/app/face/face-recognition/recognize/recognize.component.css","./src/app/footer/footer.component.ts","./src/app/face/face-recognition/recognize/recognize.component.html","./src/app/translation/translation.component.ts","./src/app/auth/logout/logout.component.ts","./src/app/face/face-blurring/face-blurring.component.css","./src/app/auth/logout/logout.module.ts","./src/app/face/face-blurring/blur/blur.component.ts","./src/app/face/face.component.html","./src/app/face/intro/intro.component.html","./src/app/face/face-recognition/add-face/add-face.component.html","./src/app/face/face-recognition/face-recognition.component.css","./src/app/auth/logout/logout.component.html","./src/app/common/image-preview/image-preview.component.ts","./src/app/auth/auth.service.ts","./src/app/face/result/result.component.css","./src/app/menu/menu.component.html","./src/app/face/face-blurring/face-blurring.component.ts","./src/app/app-routing.module.ts","./src/app/common/image-preview/image-preview.component.html","./src/app/text.service.ts","./src/app/translation/translation.component.css","./src/app/face/face-blurring/face-blurring.component.html","./src/main.ts","./src/app/face/face.component.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import { Component, OnInit, SecurityContext } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppGlobals } from '../../../app-global';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport {MatDialog } from '@angular/material/dialog';\r\nimport { ResultComponent } from '../../result/result.component';\r\n\r\n@Component({\r\n selector: 'app-recognize',\r\n templateUrl: './recognize.component.html',\r\n styleUrls: ['./recognize.component.css']\r\n})\r\nexport class RecognizeComponent implements OnInit {\r\n\r\n private imageToRecognizeFrom: File;\r\n public recognizedImage: any = '//:0';\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private appGlobals: AppGlobals,\r\n private spinner: NgxSpinnerService,\r\n public snackBar: MatSnackBar,\r\n public dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public onSubmit() {\r\n const formData = new FormData();\r\n\r\n formData.append('Image', this.imageToRecognizeFrom);\r\n\r\n this.spinner.show();\r\n this.httpClient.post(\r\n this.appGlobals.getBaseApiUrl() + '/api/face/' + this.appGlobals.getApplicationId() + '/recognition/recognize',\r\n formData\r\n ).subscribe(\r\n (res) => {\r\n console.log(res);\r\n this.recognizedImage = res.fileContents;\r\n this.spinner.hide();\r\n this.snackBar.open('Face Recognized', 'Success', { duration: 3000, verticalPosition: 'top' });\r\n\r\n const dialogRef = this.dialog.open(ResultComponent, {\r\n width: '400px',\r\n height: '600px',\r\n data: {image: this.recognizedImage}\r\n });\r\n\r\n },\r\n (err) => {\r\n console.log(err);\r\n this.spinner.hide();\r\n this.snackBar.open('Error recognizing face : ' + err.error, 'Error', { duration: 3000, verticalPosition: 'top' });\r\n }\r\n );\r\n }\r\n\r\n public getFile(file: File) {\r\n this.imageToRecognizeFrom = file;\r\n }\r\n}\r\n","// material.module.ts\r\nimport { ModuleWithProviders, NgModule} from \"@angular/core\";\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n@NgModule({\r\n imports: [\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n MatNativeDateModule\r\n ],\r\n exports: [\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n MatNativeDateModule\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class MaterialModule {\r\n constructor(public matIconRegistry: MatIconRegistry) {\r\n // matIconRegistry.registerFontClassAlias('fontawesome', 'fa');\r\n }\r\n\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: MaterialModule,\r\n providers: [MatIconRegistry]\r\n };\r\n }\r\n}\r\n","export default \".dstLanguage-container {\\r\\n position: relative;\\r\\n}\\r\\n.dstSelect {\\r\\n width: 183px;\\r\\n height: 42px;\\r\\n border-radius: 2px;\\r\\n border: solid 1px #ff6600;\\r\\n background-color: rgba(255, 255, 255, 0.64);\\r\\n outline: none;\\r\\n padding: 10px 5px 10px 10px;\\r\\n color: #686868;\\r\\n}\\r\\n.image2spell-btn {\\r\\n width: 182px;\\r\\n height: 50px;\\r\\n border-radius: 4px;\\r\\n background-color: #ff6600;\\r\\n color: white;\\r\\n}\\r\\n/*MODAL*/\\r\\n.modal {\\r\\n position: fixed;\\r\\n z-index: 1;\\r\\n padding-top: 50px;\\r\\n left: 0;\\r\\n top: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n overflow: auto;\\r\\n background-color: black;\\r\\n}\\r\\n.modal-content {\\r\\n position: relative;\\r\\n background-color: #fefefe;\\r\\n margin: auto;\\r\\n padding: 0;\\r\\n width: 90%;\\r\\n max-width: 1200px;\\r\\n -webkit-animation-name: zoom;\\r\\n animation-name: zoom;\\r\\n -webkit-animation-duration: 0.6s;\\r\\n animation-duration: 0.6s;\\r\\n}\\r\\n@-webkit-keyframes zoom {\\r\\n from {transform:scale(0.5); opacity: 0; } \\r\\n to {transform:scale(1); opacity: 1;}\\r\\n}\\r\\n@keyframes zoom {\\r\\n from {transform:scale(0.5); opacity: 0; } \\r\\n to {transform:scale(1); opacity: 1;}\\r\\n}\\r\\n.close {\\r\\n color: white;\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n right: 25px;\\r\\n font-size: 35px;\\r\\n font-weight: bold;\\r\\n transition: 0.5s;\\r\\n}\\r\\n.close:hover,\\r\\n.close:focus {\\r\\n color: #999;\\r\\n text-decoration: none;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltYWdlMnNwZWxsLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLFlBQVk7RUFDWixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLHlCQUF5QjtFQUN6QiwyQ0FBMkM7RUFDM0MsYUFBYTtFQUNiLDJCQUEyQjtFQUMzQixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osWUFBWTtFQUNaLGtCQUFrQjtFQUNsQix5QkFBeUI7RUFDekIsWUFBWTtBQUNkO0FBRUEsUUFBUTtBQUNSO0VBQ0UsZUFBZTtFQUNmLFVBQVU7RUFDVixpQkFBaUI7RUFDakIsT0FBTztFQUNQLE1BQU07RUFDTixXQUFXO0VBQ1gsWUFBWTtFQUNaLGNBQWM7RUFDZCx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQix5QkFBeUI7RUFDekIsWUFBWTtFQUNaLFVBQVU7RUFDVixVQUFVO0VBQ1YsaUJBQWlCO0VBQ2pCLDRCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsZ0NBQXdCO1VBQXhCLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsTUFBTSxvQkFBb0IsRUFBRSxVQUFVLEVBQUU7RUFDeEMsSUFBSSxrQkFBa0IsRUFBRSxVQUFVLENBQUM7QUFDckM7QUFIQTtFQUNFLE1BQU0sb0JBQW9CLEVBQUUsVUFBVSxFQUFFO0VBQ3hDLElBQUksa0JBQWtCLEVBQUUsVUFBVSxDQUFDO0FBQ3JDO0FBQ0E7RUFDRSxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxXQUFXO0VBQ1gsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixnQkFBZ0I7QUFDbEI7QUFDQTs7RUFFRSxXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGVBQWU7QUFDakIiLCJmaWxlIjoiaW1hZ2Uyc3BlbGwuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kc3RMYW5ndWFnZS1jb250YWluZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG4uZHN0U2VsZWN0IHtcclxuICB3aWR0aDogMTgzcHg7XHJcbiAgaGVpZ2h0OiA0MnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBib3JkZXI6IHNvbGlkIDFweCAjZmY2NjAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NCk7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBwYWRkaW5nOiAxMHB4IDVweCAxMHB4IDEwcHg7XHJcbiAgY29sb3I6ICM2ODY4Njg7XHJcbn1cclxuLmltYWdlMnNwZWxsLWJ0biB7XHJcbiAgd2lkdGg6IDE4MnB4O1xyXG4gIGhlaWdodDogNTBweDtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjYwMDtcclxuICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi8qTU9EQUwqL1xyXG4ubW9kYWwge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB6LWluZGV4OiAxO1xyXG4gIHBhZGRpbmctdG9wOiA1MHB4O1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcclxufVxyXG4ubW9kYWwtY29udGVudCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgd2lkdGg6IDkwJTtcclxuICBtYXgtd2lkdGg6IDEyMDBweDtcclxuICBhbmltYXRpb24tbmFtZTogem9vbTtcclxuICBhbmltYXRpb24tZHVyYXRpb246IDAuNnM7XHJcbn1cclxuQGtleWZyYW1lcyB6b29tIHtcclxuICBmcm9tIHt0cmFuc2Zvcm06c2NhbGUoMC41KTsgb3BhY2l0eTogMDsgfSBcclxuICB0byB7dHJhbnNmb3JtOnNjYWxlKDEpOyBvcGFjaXR5OiAxO31cclxufVxyXG4uY2xvc2Uge1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIHJpZ2h0OiAyNXB4O1xyXG4gIGZvbnQtc2l6ZTogMzVweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICB0cmFuc2l0aW9uOiAwLjVzO1xyXG59XHJcbi5jbG9zZTpob3ZlcixcclxuLmNsb3NlOmZvY3VzIHtcclxuICBjb2xvcjogIzk5OTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbiJdfQ== */\";","export default \".example-container {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\n .face-mat-drawer {\\r\\n padding-top: 10px;\\r\\n padding-left: 17px;\\r\\n width: 250px;\\r\\n }\\r\\n\\r\\n li{\\r\\n margin: 16px 0;\\r\\n }\\r\\n\\r\\n li:hover {\\r\\n color: #ff6600;\\r\\n background-color: #f1f1f1;\\r\\n }\\r\\n\\r\\n .menu-item {\\r\\n font-size: 17px;\\r\\n }\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZhY2UuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLFdBQVc7RUFDYjs7RUFFQTtNQUNJLGlCQUFpQjtNQUNqQixrQkFBa0I7TUFDbEIsWUFBWTtFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0lBQ2QseUJBQXlCO0VBQzNCOztFQUVBO0lBQ0UsZUFBZTtFQUNqQiIsImZpbGUiOiJmYWNlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZXhhbXBsZS1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAuZmFjZS1tYXQtZHJhd2VyIHtcclxuICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMTdweDtcclxuICAgICAgd2lkdGg6IDI1MHB4O1xyXG4gIH1cclxuXHJcbiAgbGl7XHJcbiAgICBtYXJnaW46IDE2cHggMDtcclxuICB9XHJcblxyXG4gIGxpOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjZmY2NjAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcclxuICB9XHJcblxyXG4gIC5tZW51LWl0ZW0ge1xyXG4gICAgZm9udC1zaXplOiAxN3B4O1xyXG4gIH0iXX0= */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJmb290ZXIuY29tcG9uZW50LmNzcyJ9 */\";","export default \".redToken {\\r\\n color: red;\\r\\n}\\r\\n.suggestion-table {\\r\\n border: 1px solid rgba(132, 132, 132, 0.5);\\r\\n border-spacing: 0;\\r\\n border-collapse: collapse;\\r\\n text-align: center;\\r\\n}\\r\\n.suggestion-table td {\\r\\n border-bottom: 1px solid rgba(132, 132, 132, 0.5);\\r\\n}\\r\\n.suggestion-table th {\\r\\n font-weight: 500;\\r\\n}\\r\\n.suggestion-table-inner {\\r\\n margin: auto;\\r\\n}\\r\\n/* Tooltip container */\\r\\n.tooltip {\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n border-bottom: 1px dashed red; /* If you want dots under the hoverable text */\\r\\n}\\r\\n/* Tooltip text */\\r\\n.tooltip .tooltiptext {\\r\\n visibility: hidden;\\r\\n width: 120px;\\r\\n background-color: black;\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n padding: 5px 0;\\r\\n border-radius: 5px;\\r\\n\\r\\n /* Position the tooltip text - see examples below! */\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n}\\r\\n/* Show the tooltip text when you mouse over the tooltip container */\\r\\n.tooltip:hover .tooltiptext {\\r\\n visibility: visible;\\r\\n}\\r\\n.tooltip-token {\\r\\n}\\r\\n.tooltip-suggestion {\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNwZWxsY2hlY2suY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLFVBQVU7QUFDZDtBQUNBO0lBQ0ksMENBQTBDO0lBQzFDLGlCQUFpQjtJQUNqQix5QkFBeUI7SUFDekIsa0JBQWtCO0FBQ3RCO0FBQ0E7SUFDSSxpREFBaUQ7QUFDckQ7QUFDQTtJQUNJLGdCQUFnQjtBQUNwQjtBQUNBO0lBQ0ksWUFBWTtBQUNoQjtBQUVBLHNCQUFzQjtBQUN0QjtJQUNJLGtCQUFrQjtJQUNsQixxQkFBcUI7SUFDckIsNkJBQTZCLEVBQUUsOENBQThDO0FBQ2pGO0FBRUEsaUJBQWlCO0FBQ2pCO0lBQ0ksa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWix1QkFBdUI7SUFDdkIsV0FBVztJQUNYLGtCQUFrQjtJQUNsQixjQUFjO0lBQ2Qsa0JBQWtCOztJQUVsQixvREFBb0Q7SUFDcEQsa0JBQWtCO0lBQ2xCLFVBQVU7QUFDZDtBQUVBLG9FQUFvRTtBQUNwRTtJQUNJLG1CQUFtQjtBQUN2QjtBQUVBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6InNwZWxsY2hlY2suY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yZWRUb2tlbiB7XHJcbiAgICBjb2xvcjogcmVkO1xyXG59XHJcbi5zdWdnZXN0aW9uLXRhYmxlIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTMyLCAxMzIsIDEzMiwgMC41KTtcclxuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4uc3VnZ2VzdGlvbi10YWJsZSB0ZCB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxMzIsIDEzMiwgMTMyLCAwLjUpO1xyXG59XHJcbi5zdWdnZXN0aW9uLXRhYmxlIHRoIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbn1cclxuLnN1Z2dlc3Rpb24tdGFibGUtaW5uZXIge1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG59XHJcblxyXG4vKiBUb29sdGlwIGNvbnRhaW5lciAqL1xyXG4udG9vbHRpcCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHJlZDsgLyogSWYgeW91IHdhbnQgZG90cyB1bmRlciB0aGUgaG92ZXJhYmxlIHRleHQgKi9cclxufVxyXG5cclxuLyogVG9vbHRpcCB0ZXh0ICovXHJcbi50b29sdGlwIC50b29sdGlwdGV4dCB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcblxyXG4gICAgLyogUG9zaXRpb24gdGhlIHRvb2x0aXAgdGV4dCAtIHNlZSBleGFtcGxlcyBiZWxvdyEgKi9cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi8qIFNob3cgdGhlIHRvb2x0aXAgdGV4dCB3aGVuIHlvdSBtb3VzZSBvdmVyIHRoZSB0b29sdGlwIGNvbnRhaW5lciAqL1xyXG4udG9vbHRpcDpob3ZlciAudG9vbHRpcHRleHQge1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxufVxyXG5cclxuLnRvb2x0aXAtdG9rZW4ge1xyXG59XHJcbi50b29sdGlwLXN1Z2dlc3Rpb24ge1xyXG59XHJcbiJdfQ== */\";","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ErrorService } from '../common/error.service';\r\nimport { Language } from '../common/language';\r\nimport { AppGlobals } from '../app-global';\r\nimport { SpellCheckRequest } from './spellCheckRequest';\r\nimport { Observable } from 'rxjs';\r\nimport { SpellCheckResponse } from './spellCheckResponse';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpellcheckService {\r\n\r\n constructor(private http: HttpClient,\r\n private errorService: ErrorService,\r\n private appGlobals: AppGlobals) { }\r\n\r\n getSpellCheckLanguages(): Observable {\r\n return this.http\r\n .get(\r\n this.appGlobals.getBaseApiUrl() + '/api/Text/' + this.appGlobals.getApplicationId() + '/spellcheck/languages'\r\n )\r\n .pipe(\r\n catchError(this.errorService.handleError('getSpellCheckLanguages', []))\r\n );\r\n }\r\n\r\n postSpellCheck(spellCheckRequest: SpellCheckRequest) {\r\n return this.http.post(\r\n this.appGlobals.getBaseApiUrl() + '/api/Text/' + this.appGlobals.getApplicationId() + '/spellcheck/' + spellCheckRequest.language,\r\n spellCheckRequest)\r\n .pipe(\r\n catchError(this.errorService.handleError('postSpellCheck', []))\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { AuthService } from './auth/auth.service';\r\n\r\n@Injectable()\r\nexport class AppGlobals {\r\n private static baseUrl: string = AppGlobals.isEnvironment('localhost') ? 'http://localhost:4200' : window.location.origin;\r\n public static baseApiUrl: string =\r\n AppGlobals.isEnvironment('localhost') ? 'https://cognitivehub-lab.azurewebsites.net' : window.location.origin;\r\n\r\n public static readonly msalConfig = {\r\n validateAuthority: true,\r\n storeAuthStateInCookie: false,\r\n navigateToLoginRequestUrl: true,\r\n piiLoggingEnabled: true,\r\n isAngular: true,\r\n clientId: 'ba584198-83b6-4dee-a333-2aeb11b27147',\r\n authority: 'https://login.microsoftonline.com/sgs.onmicrosoft.com',\r\n redirectUri: `${AppGlobals.baseUrl}/home`,\r\n postLogoutRedirectUri: `${AppGlobals.baseUrl}/home`,\r\n cacheLocation: 'localStorage',\r\n consentScope: ['User.Read'],\r\n apiScope: ['api://swacognitivehub/user_auth'],\r\n popUp: false\r\n };\r\n\r\n\r\n\r\n private readonly applicationId = '5cc823ea-4965-407d-9dff-f4dd6d10991b';\r\n private readonly categoryId = 'd1adbad6-b269-48fd-bad0-9b71beec2395-GENERAL';\r\n\r\n private static isEnvironment(env: string): boolean {\r\n return window.location.href.includes(env);\r\n }\r\n\r\n public static getMsalConfig() {\r\n return AppGlobals.msalConfig;\r\n }\r\n\r\n public getBaseApiUrl(): string {\r\n return AppGlobals.baseApiUrl;\r\n }\r\n\r\n public getBaseUrl(): string {\r\n return AppGlobals.baseUrl;\r\n }\r\n\r\n public getApplicationId(): string {\r\n return this.applicationId;\r\n }\r\n\r\n public getCategoryId(): string {\r\n return this.categoryId;\r\n }\r\n\r\n}\r\n","class CognitiveOptions {\r\n language?: string;\r\n languageTo?: string;\r\n}\r\n\r\nclass BasicRequest {\r\n type: string;\r\n options: CognitiveOptions;\r\n}\r\n\r\nexport class Image2spellRequest {\r\n bytesImage: string;\r\n requests: BasicRequest[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorService {\r\n\r\n constructor() { }\r\n\r\n public handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n console.error(error);\r\n return of(error as T);\r\n };\r\n }\r\n}\r\n","export default \"
\\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 {{message.value.length}} / 10000\\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
{{wordLabel}}{{correctionLabel}}
\\r\\n {{ token.token }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{ suggestion.suggestion }} ({{ 100 * suggestion.score }}%)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\";","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-intro',\r\n templateUrl: './intro.component.html',\r\n styleUrls: ['./intro.component.css']\r\n})\r\nexport class IntroComponent implements OnInit {\r\n\r\n constructor(\r\n\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ErrorService } from '../common/error.service';\r\nimport { AppGlobals } from '../app-global';\r\nimport { Language } from '../common/language';\r\nimport { Translation } from './translation';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class TranslationService {\r\n constructor(\r\n private http: HttpClient,\r\n private errorservice: ErrorService,\r\n private appGlobals: AppGlobals\r\n ) {}\r\n\r\n getTranslateLanguages(): Observable {\r\n return this.http\r\n .get(\r\n this.appGlobals.getBaseApiUrl() +\r\n \"/api/text/\" +\r\n this.appGlobals.getApplicationId() +\r\n \"/translate/languages\"\r\n )\r\n .pipe(\r\n catchError(this.errorservice.handleError(\"getTranslateLanguages\", []))\r\n );\r\n }\r\n\r\n postTranslateLanguage(\r\n srcLanguage: string,\r\n textTranslate: Translation\r\n ): Observable {\r\n return this.http\r\n .post(\r\n this.appGlobals.getBaseApiUrl() +\r\n \"/api/text/\" +\r\n this.appGlobals.getApplicationId() +\r\n \"/translate/\" +\r\n srcLanguage,\r\n textTranslate\r\n )\r\n .pipe(\r\n catchError(this.errorservice.handleError(\"postTranslateLanguage\", []))\r\n );\r\n }\r\n\r\n postDeepLTranslateLanguage(\r\n srcLanguage: string,\r\n textTranslate: Translation\r\n ): Observable {\r\n return this.http\r\n .post(\r\n this.appGlobals.getBaseApiUrl() +\r\n \"/api/text/\" +\r\n this.appGlobals.getApplicationId() +\r\n \"/translate/delta/\" +\r\n srcLanguage,\r\n textTranslate\r\n )\r\n .pipe(\r\n catchError(\r\n this.errorservice.handleError(\"postDeepLTranslateLanguage\", [])\r\n )\r\n );\r\n }\r\n\r\n postTranslateLanguages(\r\n srcLanguage: string,\r\n dstLanguage: string,\r\n textTranslate: Translation\r\n ): Observable {\r\n const srcLanguageUrlPart =\r\n srcLanguage === \"auto-detect\" ? \"\" : \"/\" + srcLanguage;\r\n return this.http\r\n .post(\r\n this.appGlobals.getBaseApiUrl() +\r\n \"/api/text/\" +\r\n this.appGlobals.getApplicationId() +\r\n \"/translate\" +\r\n srcLanguageUrlPart +\r\n \"/\" +\r\n dstLanguage,\r\n textTranslate\r\n )\r\n .pipe(\r\n catchError(\r\n this.errorservice.handleError(\"postTranslateLanguages\", null)\r\n )\r\n );\r\n }\r\n\r\n postDeepLTranslateLanguages(\r\n srcLanguage: string,\r\n dstLanguage: string,\r\n textTranslate: Translation\r\n ): Observable {\r\n const srcLanguageUrlPart =\r\n srcLanguage === \"auto-detect\" ? \"\" : \"/\" + srcLanguage;\r\n return this.http\r\n .post(\r\n this.appGlobals.getBaseApiUrl() +\r\n \"/api/text/\" +\r\n this.appGlobals.getApplicationId() +\r\n \"/translate/delta\" +\r\n srcLanguageUrlPart +\r\n \"/\" +\r\n dstLanguage,\r\n textTranslate\r\n )\r\n .pipe(\r\n catchError(\r\n this.errorservice.handleError(\"postDeepLTranslateLanguages\", null)\r\n )\r\n );\r\n }\r\n}\r\n","export default \"
\\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 {{message.value.length}} / 20000\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n info\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n info\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n info\\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
\\r\\n \\r\\n
\\r\\n
\\r\\n\";","import { Component, OnInit } from '@angular/core';\r\nimport { HomeService } from './home.service';\r\nimport * as numeral from 'numeral';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n constructor(private homeService: HomeService) {}\r\n\r\n private showing = true;\r\n public totalCharacters: number;\r\n\r\n ngOnInit() {\r\n this.homeService.getDocumentTranslatorStats().subscribe(\r\n res => {\r\n this.totalCharacters = numeral(res.totalCharacters).format('0.00 a');\r\n },\r\n err => {\r\n console.log(err);\r\n },\r\n () => {}\r\n );\r\n }\r\n\r\n msg(message: string) {\r\n alert(message);\r\n }\r\n\r\n flip() {\r\n this.showing = !this.showing;\r\n console.log(this.showing);\r\n }\r\n}\r\n","export default \"\\r\\n.sgs-header-username {\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\r\\n max-width: 200px;\\r\\n display: inline-block;\\r\\n font-family: Roboto;\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-stretch: normal;\\r\\n font-style: normal;\\r\\n line-height: 1.29;\\r\\n letter-spacing: normal;\\r\\n color: var(--black);\\r\\n text-align: initial;\\r\\n}\\r\\n\\r\\n.user-icon {\\r\\n color: #ff6600;\\r\\n}\\r\\n\\r\\n.sgs-black-tooltip {\\r\\n background-color: var(--black);\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtFQUNoQixxQkFBcUI7RUFDckIsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsOEJBQThCO0FBQ2hDIiwiZmlsZSI6ImFwcC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5zZ3MtaGVhZGVyLXVzZXJuYW1lIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgbWF4LXdpZHRoOiAyMDBweDtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1mYW1pbHk6IFJvYm90bztcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMjk7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogdmFyKC0tYmxhY2spO1xyXG4gIHRleHQtYWxpZ246IGluaXRpYWw7XHJcbn1cclxuXHJcbi51c2VyLWljb24ge1xyXG4gIGNvbG9yOiAjZmY2NjAwO1xyXG59XHJcblxyXG4uc2dzLWJsYWNrLXRvb2x0aXAge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJsYWNrKTtcclxufVxyXG4iXX0= */\";","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-face-recognition',\r\n templateUrl: './face-recognition.component.html',\r\n styleUrls: ['./face-recognition.component.css']\r\n})\r\nexport class FaceRecognitionComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","export default \".inputfile {\\r\\n\\twidth: 0.1px;\\r\\n\\theight: 0.1px;\\r\\n\\topacity: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tposition: absolute;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.inputfile + label {\\r\\n font-size: 1.25em;\\r\\n font-weight: 700;\\r\\n color: white;\\r\\n background-color: black;\\r\\n display: inline-block;\\r\\n cursor: pointer; /* \\\"hand\\\" cursor */\\r\\n}\\r\\n\\r\\n.inputfile:focus + label,\\r\\n.inputfile + label:hover {\\r\\n background-color: red;\\r\\n}\\r\\n\\r\\n.rectangle {\\r\\n margin-top: 4px;\\r\\n width: 85px;\\r\\n height: 60px;\\r\\n border-radius: 5px;\\r\\n border: solid 1px #ff6600;\\r\\n background-color: #ffffff;\\r\\n text-align: center;\\r\\n color:#ff6600;\\r\\n vertical-align: middle;\\r\\n font-size: 16px;\\r\\n font-weight: normal;\\r\\n font-stretch: normal;\\r\\n font-style: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: 0.56px;\\r\\n text-align: center;\\r\\n color: #ff6600;\\r\\n padding-top: 18px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.image-preview {\\r\\n width: 387;\\r\\n height: 235;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltYWdlLXByZXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtDQUNDLFlBQVk7Q0FDWixhQUFhO0NBQ2IsVUFBVTtDQUNWLGdCQUFnQjtDQUNoQixrQkFBa0I7Q0FDbEIsV0FBVztBQUNaOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osdUJBQXVCO0lBQ3ZCLHFCQUFxQjtJQUNyQixlQUFlLEVBQUUsa0JBQWtCO0FBQ3ZDOztBQUVBOztJQUVJLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLGVBQWU7UUFDWCxXQUFXO1FBQ1gsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQix5QkFBeUI7UUFDekIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2Isc0JBQXNCO1FBQ3RCLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsc0JBQXNCO1FBQ3RCLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLGVBQWU7QUFDdkI7O0FBRUE7SUFDSSxVQUFVO0lBQ1YsV0FBVztJQUNYLGtCQUFrQjtBQUN0QiIsImZpbGUiOiJpbWFnZS1wcmV2aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaW5wdXRmaWxlIHtcclxuXHR3aWR0aDogMC4xcHg7XHJcblx0aGVpZ2h0OiAwLjFweDtcclxuXHRvcGFjaXR5OiAwO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHotaW5kZXg6IC0xO1xyXG59XHJcblxyXG4uaW5wdXRmaWxlICsgbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiAxLjI1ZW07XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIFwiaGFuZFwiIGN1cnNvciAqL1xyXG59XHJcblxyXG4uaW5wdXRmaWxlOmZvY3VzICsgbGFiZWwsXHJcbi5pbnB1dGZpbGUgKyBsYWJlbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5yZWN0YW5nbGUge1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgICAgIHdpZHRoOiA4NXB4O1xyXG4gICAgICAgIGhlaWdodDogNjBweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2ZmNjYwMDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBjb2xvcjojZmY2NjAwO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNTZweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICNmZjY2MDA7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDE4cHg7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uaW1hZ2UtcHJldmlldyB7XHJcbiAgICB3aWR0aDogMzg3O1xyXG4gICAgaGVpZ2h0OiAyMzU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbn1cclxuXHJcbiJdfQ== */\";","export default \"\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n Blur faces\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n

Blurring faces...

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Picture
\\r\\n
Select the picture where appear people whose faces you want to blur.\\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\\r\\n
\";","import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { SpellcheckService } from './spellcheck.service';\r\nimport { SpellCheckRequest } from './spellCheckRequest';\r\nimport { SpellCheckResponse, FlaggedToken } from './spellCheckResponse';\r\nimport { Language } from '../common/language';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { TextService } from '../text.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-spellcheck',\r\n templateUrl: './spellcheck.component.html',\r\n styleUrls: ['./spellcheck.component.css'],\r\n encapsulation: ViewEncapsulation.None, // needed for suggestion html to work\r\n})\r\nexport class SpellcheckComponent implements OnInit, OnDestroy {\r\n\r\n constructor(private spellService: SpellcheckService, private textService: TextService) { }\r\n\r\n private languages: Language[];\r\n private text: string;\r\n private selectedLanguage: string;\r\n private flaggedTokens: FlaggedToken[];\r\n private isCorrected = false;\r\n private textInput = new Subject();\r\n private languageSubscription: Subscription;\r\n\r\n private languageLabel: string;\r\n private originalLabel: string;\r\n private highlightedLabel: string;\r\n private correctedLabel: string;\r\n private placeholderLabel: string;\r\n private wordLabel: string;\r\n private correctionLabel: string;\r\n private submitting = false;\r\n private lastCall = null;\r\n\r\n spellForm = new FormGroup({\r\n srcLanguage: new FormControl('', [Validators.required]),\r\n srcText: new FormControl('')\r\n });\r\n\r\n public keyUp(event: any) {\r\n this.textInput.next(event.target.value);\r\n }\r\n\r\n ngOnInit() {\r\n this.submitting = true;\r\n // no need to unsubscribe from this\r\n this.spellService.getSpellCheckLanguages().subscribe(res => {\r\n res = res.sort((a, b) => a.englishName.localeCompare(b.englishName));\r\n this.languages = res;\r\n this.selectedLanguage = 'auto-detect';\r\n },\r\n (err) => {\r\n console.log(err);\r\n },\r\n () => {\r\n this.submitting = false;\r\n });\r\n\r\n this.textInput\r\n .pipe(\r\n debounceTime(300),\r\n distinctUntilChanged()\r\n )\r\n .subscribe(text => {\r\n if (text.length > 0) {\r\n this.onSubmit();\r\n }\r\n });\r\n\r\n // this.getLabels();\r\n this.languageSubscription = this.textService.currentLanguage.subscribe(lang => this.getLabels());\r\n }\r\n\r\n getLabels() {\r\n this.languageLabel = this.textService.getText(this.textService.KEY_LANGUAGE);\r\n this.originalLabel = this.textService.getText(this.textService.KEY_ORIGINAL);\r\n this.highlightedLabel = this.textService.getText(this.textService.KEY_HIGHLIGHTED);\r\n this.correctedLabel = this.textService.getText(this.textService.KEY_CORRECTED);\r\n this.placeholderLabel = this.textService.getText(this.textService.KEY_PLACEHOLDER);\r\n this.wordLabel = this.textService.getText(this.textService.KEY_WORD);\r\n this.correctionLabel = this.textService.getText(this.textService.KEY_CORRECTION);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.textInput.unsubscribe();\r\n this.languageSubscription.unsubscribe();\r\n }\r\n\r\n onChange(event) {\r\n if (this.text && this.text.length > 0) {\r\n this.onSubmit();\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.submitting = true;\r\n const req = new SpellCheckRequest(this.text, this.selectedLanguage);\r\n this.lastCall = req;\r\n // this.isCorrected = false;\r\n this.spellService.postSpellCheck(req).subscribe((res: SpellCheckResponse) => {\r\n if (res.error || this.lastCall !== req) { return; }\r\n\r\n this.isCorrected = false;\r\n if (res.isCorrected) {\r\n this.flaggedTokens = res.possibleCorrections.flaggedTokens;\r\n }\r\n this.isCorrected = res.isCorrected;\r\n },\r\n err => {\r\n // TODO: on error it never gets here...\r\n console.log(err);\r\n this.isCorrected = false;\r\n },\r\n () => this.submitting = false\r\n );\r\n }\r\n\r\n // Shows returned text with corrections in red, each with hover tooltip with token + suggestions.\r\n onColoredText() {\r\n if (this.submitting) {\r\n return '';\r\n }\r\n if (false === this.isCorrected || this.flaggedTokens === undefined) {\r\n return this.text !== undefined ? this.text.replace(/\\n/g, '
') : '';\r\n }\r\n let coloredText = '';\r\n let initOffset = 0;\r\n for (const token of this.flaggedTokens) {\r\n const offset = token.offset;\r\n coloredText += this.text.substring(initOffset, offset);\r\n const tokenLength = token.token.length;\r\n const suggestion = token.suggestions[0].suggestion;\r\n coloredText += '' + suggestion +\r\n '' + this.suggestionsHTML(token) + '' +\r\n '';\r\n initOffset = offset + tokenLength;\r\n }\r\n coloredText += this.text.substr(initOffset);\r\n coloredText = coloredText.replace(/\\n/g, '
');\r\n return coloredText;\r\n }\r\n\r\n suggestionsHTML(token: FlaggedToken): string {\r\n let html = '
';\r\n html += token.token;\r\n for (const suggestion of token.suggestions) {\r\n html += '
'\r\n + suggestion.suggestion + ': ' + 100 * suggestion.score\r\n + '%
';\r\n }\r\n html += '
';\r\n return html;\r\n }\r\n\r\n // Shows original text with found tokens in red.\r\n onColoredText_original() {\r\n if (false === this.isCorrected || this.flaggedTokens.length === 0) {\r\n return '';\r\n }\r\n\r\n let coloredText = '';\r\n let initOffset = 0;\r\n // tslint:disable-next-line: prefer-for-of\r\n for (let i = 0; i < this.flaggedTokens.length; ++i) {\r\n const offset = this.flaggedTokens[i].offset;\r\n coloredText += this.text.substring(initOffset, offset);\r\n const tokenLength = this.flaggedTokens[i].token.length;\r\n coloredText += '' + this.text.substr(offset, tokenLength) + '';\r\n initOffset = offset + tokenLength;\r\n }\r\n coloredText += this.text.substr(initOffset);\r\n coloredText = coloredText.replace('\\n', '
');\r\n return coloredText;\r\n }\r\n}\r\n","export default \".appMenu {\\r\\n margin-right: 10px;\\r\\n outline: none;\\r\\n}\\r\\n\\r\\nbutton mat-icon {\\r\\n font-size: 40px;\\r\\n color: #ff6600;\\r\\n}\\r\\n\\r\\n.mat-menu-item {\\r\\n background-size: 100%;\\r\\n}\\r\\n\\r\\n.mat-grid-tile {\\r\\n background: #fff2da;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkIiLCJmaWxlIjoibWVudS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFwcE1lbnUge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuYnV0dG9uIG1hdC1pY29uIHtcclxuICAgIGZvbnQtc2l6ZTogNDBweDtcclxuICAgIGNvbG9yOiAjZmY2NjAwO1xyXG59XHJcblxyXG4ubWF0LW1lbnUtaXRlbSB7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XHJcbn1cclxuXHJcbi5tYXQtZ3JpZC10aWxlIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmYyZGE7XHJcbn0iXX0= */\";","export default \"
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n

{{dropImageLabel}}...

\\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 {{spellcheckLabel}}\\r\\n {{textLabel}}\\r\\n {{translateLabel}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{onlyImageLabel}}\\r\\n {{onlyDataLabel}}\\r\\n {{imageDataLabel}}\\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 {{detectedTextLabel}}\\r\\n
{{detectedText}}
\\r\\n
\\r\\n
\\r\\n {{translationLabel}}\\r\\n
{{completeTranslation}}
\\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
{{wordsLabel}}{{translationLabel}}{{correctionLabel}}
{{ w.text }}\\r\\n
  • {{trans.text}}
\\r\\n
\\r\\n
    0\\\">\\r\\n
  • \\r\\n {{token.suggestions[0].suggestion}} ({{100 * token.suggestions[0].score}}%)\\r\\n 1\\\">\\r\\n [1/{{token.suggestions.length}}]\\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n thumb_up\\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\";","export default \"
\\r\\n\\r\\n
\\r\\n\\r\\n \\\"\\\"\\r\\n \\\"\\\"\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
SGS Intelligence for your business
\\r\\n
\\r\\n
\\r\\n
\\\"\\\"
\\r\\n
\\r\\n

Centralized Knowledge

\\r\\n

Single place for accessing all SGS AI/ML services reducing integration time with already-trained algorithms and SGS-specific dictionaries

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\\"\\\"
\\r\\n
\\r\\n

All platforms included

\\r\\n

All resources can be used from web, mobile and desktop applications with direct integration for quick development and best performance

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\\"\\\"
\\r\\n
\\r\\n

Easy to use APIs

\\r\\n

REST-based APIs with included OpenAPI documentation and custom clients for all SGS platforms

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\\"\\\"
\\r\\n
\\r\\n

Smart solutions

\\r\\n

Includes services for:
Speech - Imaging - Language - Vision

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
CLIENT APPLICATIONS
\\r\\n
\\r\\n
\\r\\n \\r\\n
AVAILABLE API METHODS
\\r\\n
\\r\\n
\\r\\n
CHARACTERS TRANSLATED
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Featured Products
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"Avatar\\\"\\r\\n \\\"\\\"\\r\\n DOCUMENT TRANSLATOR
\\r\\n
\\r\\n
\\r\\n \\\"Avatar\\\"\\r\\n DOCUMENT TRANSLATOR
\\r\\n Translate your documents to more than 60 languages keeping the original format.\\r\\n VIEW\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"\\\"\\r\\n \\\"\\\"\\r\\n IMAGE COGNITIVE TOOLS
\\r\\n
\\r\\n
\\r\\n \\\"\\\"\\r\\n IMAGE COGNITIVE TOOLS
\\r\\n Identify blocks of texts, translate them and spell-check any image. This tool is also available as a mobile app.\\r\\n VIEW\\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 Speech2Text
\\r\\n
\\r\\n
\\r\\n \\\"\\\"\\r\\n Speech2Text
\\r\\n Integrate speech capabilities in any application with command & control or natural language processing.\\r\\n (coming soon)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"Avatar\\\"\\r\\n \\\"\\\"\\r\\n Document Verification
\\r\\n
\\r\\n
\\r\\n \\\"Avatar\\\"\\r\\n Document Verification
\\r\\n Use SGS-specific smarts to analyze and understand unstructured documents.\\r\\n (coming soon)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"Avatar\\\"\\r\\n \\\"\\\"\\r\\n Video translation
\\r\\n
\\r\\n
\\r\\n \\\"Avatar\\\"\\r\\n Video translation
\\r\\n Transcribe, translate and auto-caption videos in over 60 languages.\\r\\n VIEW\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"\\\"\\r\\n \\\"\\\"\\r\\n Virtual inspections
\\r\\n
\\r\\n
\\r\\n \\\"\\\"\\r\\n Virtual inspections
\\r\\n Use AR and mobile apps to perform hands-free inspections with speech to text, video and natural language processing.\\r\\n (coming soon)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";","export default \"\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Face Recognition

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n add_circle\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Add face\\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

Do you want to recognize somebody in a Picture?
Just add his/her face to the database,
and then run the recognize process.

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n RECOGNIZE\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\";","export class SpellCheckRequest {\r\n public text: string;\r\n public language: string;\r\n constructor(text: string, lang: string) {\r\n this.text = text;\r\n this.language = lang;\r\n }\r\n}\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { Language } from '../common/language';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport { Image2spellService } from '../image2spell/image2spell.service';\r\nimport { TextService } from '../text.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\r\nimport { Image2spell, Image2SpellCriteria } from './image2spell';\r\nimport { Image2spellRequest } from './image2spellRequest';\r\n\r\n\r\n@Component({\r\n selector: 'app-image2spell',\r\n templateUrl: './image2spell.component.html',\r\n styleUrls: ['./image2spell.component.css']\r\n})\r\nexport class Image2spellComponent implements OnInit {\r\n\r\n private submitting = false;\r\n private languages: Language[];\r\n private image2spellForm: FormGroup;\r\n private imgUrl: any;\r\n private file: File;\r\n private responseimgUrl;\r\n private responseimgUrlSrc: string;\r\n private words: any[];\r\n private completeTranslation: string;\r\n private detectedText: string;\r\n private annotations: string[];\r\n private response: Image2spell = null;\r\n private responseCriteria: Image2SpellCriteria = null;\r\n private ires: Image2spellRequest;\r\n private dynamicDownload: HTMLElement = null;\r\n\r\n private languageSubscription: Subscription;\r\n\r\n private translationLanguageLabel: string;\r\n private translateLabel: string;\r\n private selectImageLabel: string;\r\n private spellcheckLabel: string;\r\n private textLabel: string;\r\n private autodetectLabel: string;\r\n private onlyImageLabel: string;\r\n private onlyDataLabel: string;\r\n private imageDataLabel: string;\r\n private wordsLabel: string;\r\n private translationLabel: string;\r\n private correctionLabel: string;\r\n private imageLabel: string;\r\n private jsonDataLabel: string;\r\n private submitLabel: string;\r\n private dropImageLabel: string;\r\n private detectedTextLabel: string;\r\n\r\n private showModal = false;\r\n private modalImg = null;\r\n\r\n constructor(\r\n private image2spellService: Image2spellService,\r\n private textService: TextService,\r\n private formBuilder: FormBuilder,\r\n private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit() {\r\n const browserLanguage = navigator.language.substr(0, 2);\r\n\r\n this.image2spellForm = this.formBuilder.group({\r\n dstLanguage: new FormControl(browserLanguage),\r\n selectedFile: new FormControl(''),\r\n types: new FormControl(['SpellCheck', 'Translate']),\r\n style: new FormControl('both'),\r\n });\r\n\r\n this.beginSubmitting();\r\n this.image2spellService.getTranslateLanguages().subscribe(\r\n res => {\r\n res = res.sort((a, b) => a.englishName.localeCompare(b.englishName));\r\n this.languages = res.filter((item) => {\r\n return item.model.indexOf(\"cognitive\") >= 0;\r\n });\r\n },\r\n err => console.log(err),\r\n () => {\r\n this.endSubmitting();\r\n }\r\n );\r\n\r\n this.languageSubscription = this.textService.currentLanguage.subscribe(lang => this.getLabels());\r\n }\r\n\r\n // I18N\r\n getLabels() {\r\n this.translationLanguageLabel = this.textService.getText(this.textService.KEY_TRANSLATION_LANGUAGE);\r\n this.translateLabel = this.textService.getText(this.textService.KEY_TRANSLATE);\r\n this.selectImageLabel = this.textService.getText(this.textService.KEY_SELECT_IMAGE);\r\n this.spellcheckLabel = this.textService.getText(this.textService.KEY_SPELLCHECK);\r\n this.textLabel = this.textService.getText(this.textService.KEY_TEXT);\r\n this.autodetectLabel = this.textService.getText(this.textService.KEY_AUTODETECT);\r\n this.onlyDataLabel = this.textService.getText(this.textService.KEY_ONLYDATA);\r\n this.onlyImageLabel = this.textService.getText(this.textService.KEY_ONLYIMAGE);\r\n this.imageDataLabel = this.textService.getText(this.textService.KEY_IMAGEDATA);\r\n this.wordsLabel = this.textService.getText(this.textService.KEY_WORDS);\r\n this.translationLabel = this.textService.getText(this.textService.KEY_TRANSLATION);\r\n this.correctionLabel = this.textService.getText(this.textService.KEY_CORRECTION);\r\n this.imageLabel = this.textService.getText(this.textService.KEY_IMAGE);\r\n this.jsonDataLabel = this.textService.getText(this.textService.KEY_JSONDATA);\r\n this.submitLabel = this.textService.getText(this.textService.KEY_SUBMIT);\r\n this.dropImageLabel = this.textService.getText(this.textService.KEY_DROPIMAGE);\r\n this.detectedTextLabel = this.textService.getText(this.textService.KEY_DETECTEDTEXT);\r\n }\r\n\r\n // SUBMIT\r\n processFile(dstLang: string, imageInput: any) {\r\n\r\n this.ires = new Image2spellRequest();\r\n this.ires.bytesImage = this.imgUrl.split(',')[1];\r\n\r\n this.ires.requests = [ { type: 'Ocr', options: { } } ];\r\n const types: string[] = this.image2spellForm.get('types').value;\r\n types.forEach((type: string) => {\r\n if (type === 'SpellCheck') {\r\n this.ires.requests.push({ type, options: { language: dstLang } }); // always autodetect... ignored language\r\n } else if (type === 'Translate') {\r\n this.ires.requests.push({ type, options: { language: 'auto-detect', languageTo: dstLang } });\r\n } else {\r\n // this.ires.requests.push({ type: element, options: { } });\r\n }\r\n });\r\n this.ires.requests.push({ type: 'Rendering', options: { } });\r\n\r\n this.beginSubmitting();\r\n this.response = null;\r\n this.image2spellService.postUploadImageMulti(this.ires).subscribe(\r\n (res: Image2spell) => {\r\n this.response = res;\r\n this.responseimgUrlSrc = 'data:image/jpg;base64,' + res.bytes;\r\n this.responseimgUrl = this.sanitizer.bypassSecurityTrustResourceUrl('data:image/jpg;base64,' + res.bytes);\r\n this.words = res.words;\r\n this.completeTranslation = res.completeTranslation;\r\n this.detectedText = res.detectedText;\r\n this.annotations = res.annotations;\r\n },\r\n (err) => {\r\n console.log(err);\r\n },\r\n () => {\r\n this.endSubmitting();\r\n });\r\n\r\n }\r\n\r\n beginSubmitting() {\r\n this.submitting = true;\r\n this.image2spellForm.get('style').disable();\r\n this.image2spellForm.get('types').disable();\r\n this.image2spellForm.get('selectedFile').disable();\r\n this.image2spellForm.get('dstLanguage').disable();\r\n }\r\n endSubmitting() {\r\n this.submitting = false;\r\n this.image2spellForm.get('style').enable();\r\n this.image2spellForm.get('types').enable();\r\n this.image2spellForm.get('selectedFile').enable();\r\n this.image2spellForm.get('dstLanguage').enable();\r\n }\r\n\r\n onSubmit(imageInput: any): void {\r\n if (!this.imgUrl) {\r\n return;\r\n }\r\n this.responseimgUrl = null;\r\n const dstLang = this.image2spellForm.get('dstLanguage').value;\r\n this.responseCriteria = {\r\n types: this.image2spellForm.get('types').value,\r\n style: this.image2spellForm.get('style').value\r\n };\r\n this.processFile(dstLang, imageInput);\r\n }\r\n\r\n onFileChange(imageInput: any): void {\r\n this.file = imageInput.files.length > 0 && imageInput.files[0] as File;\r\n this.fileReading();\r\n }\r\n fileReading() {\r\n this.responseimgUrl = null;\r\n if (!this.file) {\r\n this.imgUrl = null;\r\n return;\r\n }\r\n const reader = new FileReader();\r\n reader.onload = (event: any) => {\r\n this.imgUrl = reader.result as string;\r\n };\r\n reader.readAsDataURL(this.file);\r\n }\r\n\r\n validateForm(): boolean {\r\n return !this.image2spellForm.valid || this.submitting || !this.imgUrl;\r\n }\r\n\r\n // RESULT BUTTONS\r\n dynamicDownloadByHtmlTag(arg: { fileName: string, text: string }) {\r\n if (!this.dynamicDownload) {\r\n this.dynamicDownload = document.createElement('a');\r\n }\r\n const link = this.dynamicDownload;\r\n const fileType = arg.fileName.indexOf('.json') > -1 ? 'text/json' : 'text/plain';\r\n link.setAttribute('href', `data:${fileType};charset=utf-8,${encodeURIComponent(arg.text)}`);\r\n link.setAttribute('download', arg.fileName);\r\n link.click();\r\n }\r\n\r\n onJsonDataButtonClick() {\r\n if (this.response) {\r\n const responseWords = [];\r\n for (const word of this.response.words) {\r\n\r\n let translation = '';\r\n if (word.possibleTranslations && word.possibleTranslations.length > 0) {\r\n translation = word.possibleTranslations[0].text;\r\n }\r\n\r\n let correction = '';\r\n let confidence = 0;\r\n if (word.isCorrected && word.possibleCorrections && word.possibleCorrections.flaggedTokens &&\r\n word.possibleCorrections.flaggedTokens.length > 0) {\r\n const flaggedToken = word.possibleCorrections.flaggedTokens[0];\r\n if (flaggedToken.suggestions && flaggedToken.suggestions.length > 0) {\r\n correction = flaggedToken.suggestions[0].suggestion;\r\n confidence = flaggedToken.suggestions[0].score;\r\n }\r\n }\r\n const spellcheck = {\r\n isCorrected: word.isCorrected,\r\n correction,\r\n confidence\r\n };\r\n\r\n responseWords.push({\r\n word: word.text,\r\n translation,\r\n spellcheck\r\n });\r\n }\r\n const jsonResult = {\r\n originalText: this.response.detectedText,\r\n translation: this.response.completeTranslation,\r\n spellcheck: responseWords\r\n };\r\n this.dynamicDownloadByHtmlTag({\r\n fileName: 'Image2Spell.json',\r\n text: JSON.stringify(jsonResult)\r\n });\r\n }\r\n }\r\n\r\n onImageButtonClick(i: any) {\r\n const link = document.createElement('a');\r\n link.setAttribute('href', this.responseimgUrlSrc);\r\n link.setAttribute('download', 'image2Spell.jpg'); // TODO: what if not jpg\r\n link.click();\r\n }\r\n\r\n // DRAG DROP\r\n dropHandler(ev) {\r\n // Prevent default behavior (Prevent file from being opened)\r\n ev.preventDefault();\r\n\r\n if (this.submitting) {\r\n return;\r\n }\r\n\r\n if (ev.dataTransfer.items) {\r\n // Use DataTransferItemList interface to access the file(s)\r\n for (const each of ev.dataTransfer.items) {\r\n // If dropped items aren't files, reject them\r\n if (each.kind === 'file') {\r\n this.file = each.getAsFile();\r\n if (this.file.type.startsWith('image')) {\r\n this.fileReading();\r\n }\r\n }\r\n }\r\n } else {\r\n // Use DataTransfer interface to access the file(s)\r\n for (const each of ev.dataTransfer.files) {\r\n this.file = each;\r\n }\r\n }\r\n }\r\n dragOverHandler(ev) {\r\n // Prevent default behavior (Prevent file from being opened)\r\n ev.preventDefault();\r\n }\r\n\r\n // CONDITIONAL show\r\n mustShowImage() {\r\n const style = this.responseCriteria.style;\r\n const types = this.responseCriteria.types;\r\n const typesIsOnlyText = types.length === 1 && types[0] === 'Text';\r\n return this.responseimgUrl && (style === 'image' || style === 'both') && false === typesIsOnlyText;\r\n }\r\n mustShowData() {\r\n const style = this.responseCriteria.style;\r\n return (style === 'data' || style === 'both');\r\n }\r\n mustShowTranslation() {\r\n const types = this.responseCriteria.types;\r\n return this.mustShowData() && types.includes('Translate') && this.completeTranslation;\r\n }\r\n mustShowSpellCheck() {\r\n const types = this.responseCriteria.types;\r\n return this.mustShowData() && types.includes('SpellCheck');\r\n }\r\n mustShowText() {\r\n const types = this.responseCriteria.types;\r\n return this.mustShowData() && types.includes('Text') && this.detectedText;\r\n }\r\n\r\n // MODAL\r\n openModalOrigin() {\r\n if (false === this.submitting) {\r\n this.openModal();\r\n this.modalImg = this.imgUrl;\r\n }\r\n }\r\n openModalResult() {\r\n this.openModal();\r\n this.modalImg = this.responseimgUrl;\r\n }\r\n private openModal() {\r\n this.showModal = true;\r\n document.body.style.overflow = 'hidden';\r\n }\r\n closeModal() {\r\n this.showModal = false;\r\n document.body.style.overflow = 'auto';\r\n }\r\n @HostListener('document:keydown.escape', ['$event'])\r\n onKeydownHandler(event: KeyboardEvent) {\r\n this.closeModal();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Router } from '@angular/router';\r\nimport { NgxPermissionsService } from 'ngx-permissions';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private authService: AuthService,\r\n private permissionsService: NgxPermissionsService\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.isAuthenticated()) {\r\n return true;\r\n }\r\n\r\n this.authService.login();\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ErrorService } from '../common/error.service';\r\nimport { AppGlobals } from '../app-global';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HomeService {\r\n\r\n constructor(private http: HttpClient,\r\n private errorservice: ErrorService,\r\n private appGlobals: AppGlobals) { }\r\n\r\n\r\n getDocumentTranslatorStats(): Observable {\r\n return this.http\r\n .get(\r\n 'https://doctranslator-api.sgs.com/api/stats/123'\r\n )\r\n .pipe(\r\n catchError(this.errorservice.handleError('getDocumentTranslatorStats', null))\r\n );\r\n }\r\n}\r\n","export default \".background-header {\\r\\n z-index: 0;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.logo-header {\\r\\n z-index: 1;\\r\\n position: absolute;\\r\\n}\\r\\n\\r\\n.circle {\\r\\n height: 204px;\\r\\n width: 204px;\\r\\n display: table-cell;\\r\\n text-align: center;\\r\\n vertical-align: middle;\\r\\n border-radius: 50%;\\r\\n border: solid 1.9px #e6e6e6;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.circle-text {\\r\\n font-size: 32px;\\r\\n font-weight: bold;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.31;\\r\\n letter-spacing: -0.8px;\\r\\n text-align: center;\\r\\n color: #4b4b4b;\\r\\n}\\r\\n\\r\\n.circle-label {\\r\\n font-size: 18px;\\r\\n font-weight: bold;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.67;\\r\\n letter-spacing: 1px;\\r\\n color: #4b4b4b;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.features {\\r\\n font-size: 36px;\\r\\n font-weight: bold;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.33;\\r\\n letter-spacing: 1.4px;\\r\\n color: #4b4b4b;\\r\\n margin: 3rem 0;\\r\\n\\r\\n}\\r\\n\\r\\n.feature-subtitle {\\r\\n text-transform: uppercase;\\r\\n font-size: 16px;\\r\\n font-weight: bold;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.88;\\r\\n letter-spacing: 0.89px;\\r\\n color: #4b4b4b;\\r\\n}\\r\\n\\r\\n.feature-text {\\r\\n width: 488px;\\r\\n font-size: 16px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.25;\\r\\n letter-spacing: normal;\\r\\n color: #4b4b4b;\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.feature-container {\\r\\n padding-bottom: 30px;\\r\\n}\\r\\n\\r\\n.feature-icon-container {\\r\\n padding: 31px;\\r\\n padding-top: 0;\\r\\n}\\r\\n\\r\\n.feature-icon {\\r\\n width: 61px;\\r\\n height: 61px;\\r\\n}\\r\\n\\r\\n.SGS-Intelligence-for {\\r\\n font-size: 24px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.25;\\r\\n letter-spacing: 1.47px;\\r\\n color: #4b4b4b;\\r\\n padding-top: 30px;\\r\\n padding-bottom: 90px;\\r\\n}\\r\\n\\r\\n.combined-shape {\\r\\n background-color: #f5f5f5;\\r\\n padding-top: 30px;\\r\\n padding-bottom: 30px;\\r\\n}\\r\\n\\r\\n.Featured-Products {\\r\\n font-size: 36px;\\r\\n font-weight: bold;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.33;\\r\\n letter-spacing: 1.4px;\\r\\n color: #4b4b4b;\\r\\n padding-top: 50px;\\r\\n padding-bottom: 50px;\\r\\n}\\r\\n\\r\\n.project-card-small {\\r\\n z-index: 1;\\r\\n width: 403px;\\r\\n height: 403px;\\r\\n opacity: 1;\\r\\n display: block;\\r\\n width: 100%;\\r\\n height: auto;\\r\\n transition: .5s ease;\\r\\n -webkit-backface-visibility: hidden;\\r\\n backface-visibility: hidden;\\r\\n}\\r\\n\\r\\n.project-card-large {\\r\\n z-index: 1;\\r\\n width: 806px;\\r\\n height: 403px;\\r\\n opacity: 1;\\r\\n display: block;\\r\\n width: 100%;\\r\\n height: auto;\\r\\n transition: .5s ease;\\r\\n -webkit-backface-visibility: hidden;\\r\\n backface-visibility: hidden;\\r\\n}\\r\\n\\r\\n.main-container-overlay {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.imgPlus {\\r\\n z-index: 2;\\r\\n position: absolute;\\r\\n left: 25px;\\r\\n bottom: 25px;\\r\\n transition: none;\\r\\n}\\r\\n\\r\\n.button-view-left {\\r\\n position: absolute;\\r\\n width: 180px;\\r\\n height: 32px;\\r\\n top: 200px;\\r\\n left: 25px;\\r\\n background-color: #ff6600;\\r\\n font-size: 16px;\\r\\n letter-spacing: 2px;\\r\\n text-align: center;\\r\\n vertical-align: middle;\\r\\n color: white;\\r\\n line-height: 2;\\r\\n}\\r\\n\\r\\n.button-view-right {\\r\\n position: absolute;\\r\\n width: 180px;\\r\\n height: 32px;\\r\\n top: 200px;\\r\\n right: 250px;\\r\\n background-color: #ff6600;\\r\\n font-size: 16px;\\r\\n letter-spacing: 2px;\\r\\n text-align: center;\\r\\n vertical-align: middle;\\r\\n color: white;\\r\\n line-height: 2;\\r\\n}\\r\\n\\r\\n.subtitle-overlay-left {\\r\\n width: 50%;\\r\\n position: absolute;\\r\\n top: 20px;\\r\\n left: 25px;\\r\\n font-size: 28px;\\r\\n font-weight: bold;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.5;\\r\\n letter-spacing: 1.75px;\\r\\n color: white;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.text-overlay-left {\\r\\n width: 50%;\\r\\n position: absolute;\\r\\n top: 120px;\\r\\n left: 25px;\\r\\n font-size: 16px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.5;\\r\\n letter-spacing: normal;\\r\\n color: white;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.subtitle-overlay-right {\\r\\n width: 50%;\\r\\n position: absolute;\\r\\n top: 20px;\\r\\n right: 25px;\\r\\n font-size: 28px;\\r\\n font-weight: bold;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.5;\\r\\n letter-spacing: 1.75px;\\r\\n color: white;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.text-overlay-right {\\r\\n width: 50%;\\r\\n position: absolute;\\r\\n top: 120px;\\r\\n right: 25px;\\r\\n font-size: 16px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: 1.5;\\r\\n letter-spacing: normal;\\r\\n color: white;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n/**********FLIP***********/\\r\\n\\r\\n.flip-card-small {\\r\\n background-color: transparent;\\r\\n width: 403px;\\r\\n height: 403px;\\r\\n perspective: 1000px;\\r\\n}\\r\\n\\r\\n.flip-card-large {\\r\\n background-color: transparent;\\r\\n width: 806px;\\r\\n height: 403px;\\r\\n perspective: 1000px;\\r\\n}\\r\\n\\r\\n.flip-card-inner {\\r\\n position: relative;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n transition: transform 0.6s;\\r\\n transform-style: preserve-3d;\\r\\n box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);\\r\\n}\\r\\n\\r\\n.flip-card-small:hover .flip-card-inner {\\r\\n transform: rotateY(180deg);\\r\\n}\\r\\n\\r\\n.flip-card-large:hover .flip-card-inner {\\r\\n transform: rotateY(180deg);\\r\\n}\\r\\n\\r\\n.flip-card-front, .flip-card-back {\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n -webkit-backface-visibility: hidden;\\r\\n backface-visibility: hidden;\\r\\n}\\r\\n\\r\\n.flip-card-front {\\r\\n background-color: #bbb;\\r\\n color: black;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.flip-card-back {\\r\\n color: white;\\r\\n transform: rotateY(-180deg);\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,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QVc7RUFDWCxZQUFZO0VBQ1osbUNBQTJCO1VBQTNCLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixZQUFZO0VBQ1osVUFBVTtBQUNaOztBQUVBO0VBQ0UsWUFBWTtFQUNaLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJob21lLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYmFja2dyb3VuZC1oZWFkZXIge1xyXG4gIHotaW5kZXg6IDA7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4ubG9nby1oZWFkZXIge1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG4uY2lyY2xlIHtcclxuICBoZWlnaHQ6IDIwNHB4O1xyXG4gIHdpZHRoOiAyMDRweDtcclxuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBib3JkZXI6IHNvbGlkIDEuOXB4ICNlNmU2ZTY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5jaXJjbGUtdGV4dCB7XHJcbiAgZm9udC1zaXplOiAzMnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4zMTtcclxuICBsZXR0ZXItc3BhY2luZzogLTAuOHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogIzRiNGI0YjtcclxufVxyXG5cclxuLmNpcmNsZS1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS42NztcclxuICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gIGNvbG9yOiAjNGI0YjRiO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmZlYXR1cmVzIHtcclxuICBmb250LXNpemU6IDM2cHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xyXG4gIGxldHRlci1zcGFjaW5nOiAxLjRweDtcclxuICBjb2xvcjogIzRiNGI0YjtcclxuICBtYXJnaW46IDNyZW0gMDtcclxuXHJcbn1cclxuXHJcbi5mZWF0dXJlLXN1YnRpdGxlIHtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuODg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuODlweDtcclxuICBjb2xvcjogIzRiNGI0YjtcclxufVxyXG5cclxuLmZlYXR1cmUtdGV4dCB7XHJcbiAgd2lkdGg6IDQ4OHB4O1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4yNTtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiAjNGI0YjRiO1xyXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uZmVhdHVyZS1jb250YWluZXIge1xyXG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG59XHJcbi5mZWF0dXJlLWljb24tY29udGFpbmVyIHtcclxuICBwYWRkaW5nOiAzMXB4O1xyXG4gIHBhZGRpbmctdG9wOiAwO1xyXG59XHJcbi5mZWF0dXJlLWljb24ge1xyXG4gIHdpZHRoOiA2MXB4O1xyXG4gIGhlaWdodDogNjFweDtcclxufVxyXG5cclxuLlNHUy1JbnRlbGxpZ2VuY2UtZm9yIHtcclxuICBmb250LXNpemU6IDI0cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDEuNDdweDtcclxuICBjb2xvcjogIzRiNGI0YjtcclxuICBwYWRkaW5nLXRvcDogMzBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogOTBweDtcclxufVxyXG5cclxuXHJcbi5jb21iaW5lZC1zaGFwZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcclxuICBwYWRkaW5nLXRvcDogMzBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcclxufVxyXG5cclxuXHJcbi5GZWF0dXJlZC1Qcm9kdWN0cyB7XHJcbiAgZm9udC1zaXplOiAzNnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4zMztcclxuICBsZXR0ZXItc3BhY2luZzogMS40cHg7XHJcbiAgY29sb3I6ICM0YjRiNGI7XHJcbiAgcGFkZGluZy10b3A6IDUwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDUwcHg7XHJcbn1cclxuXHJcbi5wcm9qZWN0LWNhcmQtc21hbGwge1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgd2lkdGg6IDQwM3B4O1xyXG4gIGhlaWdodDogNDAzcHg7XHJcbiAgb3BhY2l0eTogMTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgdHJhbnNpdGlvbjogLjVzIGVhc2U7XHJcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcblxyXG4ucHJvamVjdC1jYXJkLWxhcmdlIHtcclxuICB6LWluZGV4OiAxO1xyXG4gIHdpZHRoOiA4MDZweDtcclxuICBoZWlnaHQ6IDQwM3B4O1xyXG4gIG9wYWNpdHk6IDE7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHRyYW5zaXRpb246IC41cyBlYXNlO1xyXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxufVxyXG5cclxuLm1haW4tY29udGFpbmVyLW92ZXJsYXkge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmltZ1BsdXMge1xyXG4gIHotaW5kZXg6IDI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDI1cHg7XHJcbiAgYm90dG9tOiAyNXB4O1xyXG4gIHRyYW5zaXRpb246IG5vbmU7XHJcbn1cclxuXHJcbi5idXR0b24tdmlldy1sZWZ0IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDE4MHB4O1xyXG4gIGhlaWdodDogMzJweDtcclxuICB0b3A6IDIwMHB4O1xyXG4gIGxlZnQ6IDI1cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjYwMDtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgbGluZS1oZWlnaHQ6IDI7XHJcbn1cclxuXHJcbi5idXR0b24tdmlldy1yaWdodCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxODBweDtcclxuICBoZWlnaHQ6IDMycHg7XHJcbiAgdG9wOiAyMDBweDtcclxuICByaWdodDogMjUwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjYwMDtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgbGluZS1oZWlnaHQ6IDI7XHJcbn1cclxuXHJcbi5zdWJ0aXRsZS1vdmVybGF5LWxlZnQge1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMjBweDtcclxuICBsZWZ0OiAyNXB4O1xyXG4gIGZvbnQtc2l6ZTogMjhweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICBsZXR0ZXItc3BhY2luZzogMS43NXB4O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4udGV4dC1vdmVybGF5LWxlZnQge1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMTIwcHg7XHJcbiAgbGVmdDogMjVweDtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4uc3VidGl0bGUtb3ZlcmxheS1yaWdodCB7XHJcbiAgd2lkdGg6IDUwJTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAyMHB4O1xyXG4gIHJpZ2h0OiAyNXB4O1xyXG4gIGZvbnQtc2l6ZTogMjhweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICBsZXR0ZXItc3BhY2luZzogMS43NXB4O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4udGV4dC1vdmVybGF5LXJpZ2h0IHtcclxuICB3aWR0aDogNTAlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDEyMHB4O1xyXG4gIHJpZ2h0OiAyNXB4O1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS41O1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKkZMSVAqKioqKioqKioqKi9cclxuLmZsaXAtY2FyZC1zbWFsbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgd2lkdGg6IDQwM3B4O1xyXG4gIGhlaWdodDogNDAzcHg7XHJcbiAgcGVyc3BlY3RpdmU6IDEwMDBweDtcclxufVxyXG4uZmxpcC1jYXJkLWxhcmdlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICB3aWR0aDogODA2cHg7XHJcbiAgaGVpZ2h0OiA0MDNweDtcclxuICBwZXJzcGVjdGl2ZTogMTAwMHB4O1xyXG59XHJcblxyXG4uZmxpcC1jYXJkLWlubmVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzO1xyXG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XHJcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IDAgcmdiYSgwLDAsMCwwLjIpO1xyXG59XHJcblxyXG5cclxuLmZsaXAtY2FyZC1zbWFsbDpob3ZlciAuZmxpcC1jYXJkLWlubmVyIHtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTtcclxufVxyXG5cclxuLmZsaXAtY2FyZC1sYXJnZTpob3ZlciAuZmxpcC1jYXJkLWlubmVyIHtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTtcclxufVxyXG5cclxuXHJcbi5mbGlwLWNhcmQtZnJvbnQsIC5mbGlwLWNhcmQtYmFjayB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbn1cclxuXHJcbi5mbGlwLWNhcmQtZnJvbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmI7XHJcbiAgY29sb3I6IGJsYWNrO1xyXG4gIHotaW5kZXg6IDI7XHJcbn1cclxuXHJcbi5mbGlwLWNhcmQtYmFjayB7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcclxufVxyXG4iXX0= */\";","export default \"\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Result\\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, OnDestroy } from '@angular/core';\r\nimport { TextService } from './text.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { AuthService } from './auth/auth.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n private title = 'CognitiveHubUserPortal';\r\n public selectedLanguage;\r\n private groupSubscription: Subscription;\r\n public apps = [];\r\n private showMenuLinks = false;\r\n public userData: any;\r\n\r\n constructor(private textService: TextService, private authService: AuthService) {}\r\n\r\n ngOnInit() {\r\n this.groupSubscription = this.textService.currentGroup.subscribe(group =>\r\n this.showGroupLinks(group)\r\n );\r\n\r\n let currentLanguage = localStorage.getItem('cognitive-hub-language');\r\n if (!currentLanguage) {\r\n currentLanguage = navigator.language.substr(0, 2);\r\n }\r\n this.selectedLanguage = currentLanguage;\r\n this.textService.changeLanguage(this.selectedLanguage);\r\n this.userData = this.authService.user;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.groupSubscription.unsubscribe();\r\n }\r\n\r\n windowWidth() {\r\n return window.innerWidth;\r\n }\r\n\r\n utf8_encode(data) {\r\n return decodeURIComponent(escape(data));\r\n }\r\n\r\n showGroupLinks(group) {\r\n this.apps = group.apps;\r\n }\r\n\r\n onChange(event) {\r\n const newLanguage = event.target.value;\r\n this.textService.changeLanguage(newLanguage);\r\n localStorage.setItem('cognitive-hub-language', newLanguage);\r\n }\r\n\r\n onLinkMenuClick() {\r\n this.showMenuLinks = !this.showMenuLinks;\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { TextService } from '../text.service';\r\nimport { Subscription, BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-menu',\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['./menu.component.css']\r\n})\r\nexport class MenuComponent implements OnInit, OnDestroy {\r\n\r\n constructor(private textService: TextService) { }\r\n\r\n private languageSubscription: Subscription;\r\n private apps = [];\r\n\r\n ngOnInit() {\r\n // this.getApps();\r\n this.languageSubscription = this.textService.currentLanguage.subscribe(lang => this.getApps());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.languageSubscription.unsubscribe();\r\n }\r\n\r\n getApps() {\r\n this.apps = this.textService.getAppGroups();\r\n }\r\n\r\n onClick(event) {\r\n const groupName = event.target.title;\r\n let group = this.apps.find(g => g.name === groupName);\r\n this.textService.changeAppGroup(group);\r\n }\r\n}\r\n","export default \".sgs-coe-mail-link hover{\\r\\n color: hotpink;\\r\\n}\\r\\n\\r\\na:hover {\\r\\n color: #ff6600;\\r\\n background-color: #f1f1f1;\\r\\n }\\r\\n\\r\\na:link {\\r\\n color: #ff6600;\\r\\n }\\r\\n\\r\\n/* visited link */\\r\\n\\r\\na:visited {\\r\\n color: #ff6600;\\r\\n }\\r\\n\\r\\n.header-shadow {\\r\\n background-image: url('fece-recognition-ilustration.png');\\r\\n width:200px;\\r\\n height:200px;\\r\\n }\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImludHJvLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksY0FBYztJQUNkLHlCQUF5QjtFQUMzQjs7QUFFQTtJQUNFLGNBQWM7RUFDaEI7O0FBRUEsaUJBQWlCOztBQUNqQjtJQUNFLGNBQWM7RUFDaEI7O0FBRUE7SUFDRSx5REFBNkU7SUFDN0UsV0FBVztJQUNYLFlBQVk7RUFDZCIsImZpbGUiOiJpbnRyby5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNncy1jb2UtbWFpbC1saW5rIGhvdmVye1xyXG4gICAgY29sb3I6IGhvdHBpbms7XHJcbn1cclxuXHJcbmE6aG92ZXIge1xyXG4gICAgY29sb3I6ICNmZjY2MDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xyXG4gIH1cclxuXHJcbiAgYTpsaW5rIHtcclxuICAgIGNvbG9yOiAjZmY2NjAwO1xyXG4gIH1cclxuICBcclxuICAvKiB2aXNpdGVkIGxpbmsgKi9cclxuICBhOnZpc2l0ZWQge1xyXG4gICAgY29sb3I6ICNmZjY2MDA7XHJcbiAgfVxyXG5cclxuICAuaGVhZGVyLXNoYWRvdyB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9pbWcvZmVjZS1yZWNvZ25pdGlvbi1pbHVzdHJhdGlvbi5wbmcnKTtcclxuICAgIHdpZHRoOjIwMHB4O1xyXG4gICAgaGVpZ2h0OjIwMHB4O1xyXG4gIH0iXX0= */\";","export default \"
\\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
\\r\\n
\\r\\n \\r\\n \\r\\n Menu\\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 {{(utf8_encode(userData.name))}}\\r\\n account_circle\\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
\\r\\n
\\r\\n\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { saveAs } from 'file-saver';\r\n\r\nexport interface DialogData {\r\n image: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-result',\r\n templateUrl: './result.component.html',\r\n styleUrls: ['./result.component.css']\r\n})\r\nexport class ResultComponent implements OnInit {\r\n\r\n private originalImage: string;\r\n private image: any = '//:0';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit() {\r\n this.originalImage = this.data.image;\r\n this.image = this.sanitizer.bypassSecurityTrustResourceUrl('data:image/png;base64,' + this.originalImage);\r\n }\r\n\r\n private close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveImage() {\r\n const byteCharacters = atob(this.originalImage);\r\n const byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray]);\r\n saveAs(blob, 'image.png');\r\n }\r\n}","export default \".sidenav-icon {\\n margin-right: 15px;\\n color: #ff6600;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uXFwuLlxcLi5cXC4uXFxsb2dvdXQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBQTtFQUNBLGNBQUE7QUFDRiIsImZpbGUiOiJsb2dvdXQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2lkZW5hdi1pY29uIHtcclxuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XHJcbiAgY29sb3I6ICNmZjY2MDA7XHJcbn1cclxuIl19 */\";","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport {AuthGuard} from './auth.guard';\r\nimport {FlexLayoutModule} from '@angular/flex-layout';\r\nimport { MsalInterceptor, MsalModule } from '@azure/msal-angular';\r\nimport { AuthService } from './auth.service';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { AppGlobals } from '../app-global';\r\n\r\n@NgModule({\r\n imports: [\r\n FlexLayoutModule.withConfig({ addFlexToParent: false }),\r\n FormsModule,\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n MsalModule.forRoot(\r\n {\r\n auth: {\r\n clientId: AppGlobals.msalConfig.clientId,\r\n authority: AppGlobals.msalConfig.authority,\r\n redirectUri: AppGlobals.msalConfig.redirectUri,\r\n postLogoutRedirectUri: AppGlobals.msalConfig.postLogoutRedirectUri,\r\n validateAuthority: AppGlobals.msalConfig.validateAuthority,\r\n navigateToLoginRequestUrl:\r\n AppGlobals.msalConfig.navigateToLoginRequestUrl,\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n storeAuthStateInCookie: AppGlobals.msalConfig.storeAuthStateInCookie, // set to true for IE 11\r\n },\r\n framework: {\r\n isAngular: AppGlobals.msalConfig.isAngular,\r\n },\r\n },\r\n {\r\n popUp: AppGlobals.msalConfig.popUp,\r\n consentScopes: AppGlobals.msalConfig.consentScope,\r\n protectedResourceMap: [[AppGlobals.baseApiUrl, AppGlobals.msalConfig.apiScope]],\r\n extraQueryParameters: {},\r\n }\r\n ),\r\n ],\r\n})\r\nexport class AuthModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: AuthModule,\r\n providers: [\r\n AuthGuard,\r\n AuthService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppGlobals } from '../../../app-global';\r\nimport { ErrorService } from 'src/app/common/error.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\n\r\n@Component({\r\n selector: 'app-add-face',\r\n templateUrl: './add-face.component.html',\r\n styleUrls: ['./add-face.component.css']\r\n})\r\nexport class AddFaceComponent implements OnInit {\r\n\r\n private faceFile: File;\r\n private personName: string;\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private appGlobals: AppGlobals,\r\n private errorservice: ErrorService,\r\n private spinner: NgxSpinnerService,\r\n public snackBar: MatSnackBar) {\r\n this.personName = '';\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public onSubmit() {\r\n const formData = new FormData();\r\n\r\n formData.append('FaceImage', this.faceFile);\r\n formData.append('PersonName', this.personName);\r\n\r\n this.spinner.show();\r\n this.httpClient.post(\r\n this.appGlobals.getBaseApiUrl() + '/api/face/' + this.appGlobals.getApplicationId() + '/recognition/addface',\r\n formData\r\n ).subscribe(\r\n (res) => {\r\n console.log(res);\r\n this.spinner.hide();\r\n this.snackBar.open('Face image uploaded', 'Success', {duration : 3000, verticalPosition : 'top'});\r\n },\r\n (err) => {\r\n console.log(err);\r\n this.spinner.hide();\r\n\r\n let errorMessage = 'Error uploading face : ';\r\n if(err.status === 400) {\r\n errorMessage += \"Seems there's no faces on the picture\";\r\n } else {\r\n errorMessage += err.error;\r\n }\r\n\r\n this.snackBar.open(errorMessage, 'Error', { duration: 3000, verticalPosition: 'top' });\r\n }\r\n );\r\n }\r\n\r\n public getFile(file: File) {\r\n this.faceFile = file;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ErrorService } from '../common/error.service';\r\nimport { AppGlobals } from '../app-global';\r\nimport { Language } from '../common/language';\r\nimport { Image2spell } from './image2spell';\r\nimport { Image2spellRequest } from './image2spellRequest';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Image2spellService {\r\n\r\n constructor(private http: HttpClient,\r\n private errorservice: ErrorService,\r\n private appGlobals: AppGlobals) { }\r\n\r\n getTranslateLanguages(): Observable {\r\n return this.http\r\n .get(\r\n this.appGlobals.getBaseApiUrl() + '/api/Text/' + this.appGlobals.getApplicationId() + '/translate/languages'\r\n )\r\n .pipe(\r\n catchError(this.errorservice.handleError('getTranslateLanguages', []))\r\n );\r\n }\r\n\r\n postUploadImageResponse(formData: FormData): Observable {\r\n return this.http\r\n .post(\r\n this.appGlobals.getBaseApiUrl() + '/api/Vision/' + this.appGlobals.getApplicationId() + '/spellcheckfromimageresponse',\r\n formData\r\n )\r\n .pipe(\r\n catchError(this.errorservice.handleError('postUploadImageResponse', null))\r\n );\r\n }\r\n\r\n postUploadImageMulti(iRes: Image2spellRequest): Observable {\r\n return this.http\r\n .post(\r\n this.appGlobals.getBaseApiUrl() + '/api/Vision/' + this.appGlobals.getApplicationId() + '/multiple',\r\n iRes\r\n )\r\n .pipe(\r\n catchError(this.errorservice.handleError('postUploadImageMulti', null))\r\n );\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { MaterialModule } from \"./angular-material/app-material.module\";\r\nimport { NgCircleProgressModule } from 'ng-circle-progress';\r\nimport { NgxSpinnerModule } from \"ngx-spinner\";\r\n\r\n\r\nimport { SpellcheckComponent } from './spellcheck/spellcheck.component';\r\nimport { TranslationComponent } from './translation/translation.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { AppGlobals } from './app-global';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { Image2spellComponent } from './image2spell/image2spell.component';\r\nimport { MenuComponent } from './menu/menu.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { TextService } from './text.service';\r\nimport { FaceComponent } from './face/face.component';\r\nimport { FaceRecognitionComponent } from './face/face-recognition/face-recognition.component';\r\nimport { FaceBlurringComponent } from './face/face-blurring/face-blurring.component';\r\nimport { AddFaceComponent } from './face/face-recognition/add-face/add-face.component';\r\nimport { ImagePreviewComponent } from './common/image-preview/image-preview.component';\r\nimport { RecognizeComponent } from './face/face-recognition/recognize/recognize.component';\r\nimport { BlurComponent } from './face/face-blurring/blur/blur.component';\r\nimport { ResultComponent } from './face/result/result.component';\r\nimport { IntroComponent } from './face/intro/intro.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { AuthModule } from './auth/auth.module';\r\nimport { NgxPermissionsModule } from 'ngx-permissions';\r\nimport { LogoutModule } from './auth/logout/logout.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n SpellcheckComponent,\r\n TranslationComponent,\r\n HomeComponent,\r\n Image2spellComponent,\r\n MenuComponent,\r\n FaceComponent,\r\n FaceRecognitionComponent,\r\n FaceBlurringComponent,\r\n AddFaceComponent,\r\n ImagePreviewComponent,\r\n RecognizeComponent,\r\n BlurComponent,\r\n ResultComponent,\r\n IntroComponent,\r\n FooterComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n MaterialModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n FlexLayoutModule,\r\n NgxSpinnerModule,\r\n NgCircleProgressModule.forRoot({\r\n radius: 80,\r\n space: -10,\r\n backgroundPadding: -10,\r\n backgroundColor: \"#ffffff\",\r\n outerStrokeGradient: true,\r\n outerStrokeWidth: 10,\r\n outerStrokeColor: \"#ff6600\",\r\n outerStrokeGradientStopColor: \"#ff6600\",\r\n outerStrokeLinecap: \"square\",\r\n innerStrokeColor: \"#e7e8ea\",\r\n innerStrokeWidth: 10,\r\n animateTitle: false,\r\n animationDuration: 1000,\r\n showUnits: false,\r\n showSubtitle: false,\r\n showBackground: true,\r\n clockwise: false,\r\n startFromZero: true,\r\n responsive: true,\r\n }),\r\n AuthModule.forRoot(),\r\n NgxPermissionsModule.forRoot(),\r\n LogoutModule,\r\n ],\r\n entryComponents: [TranslationComponent, Image2spellComponent],\r\n providers: [AppGlobals, TextService],\r\n bootstrap: [AppComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class AppModule {}\r\n","export default \".image-preview {\\r\\n width: 387;\\r\\n height: 235;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJsdXIuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLFVBQVU7SUFDVixXQUFXO0lBQ1gsa0JBQWtCO0FBQ3RCIiwiZmlsZSI6ImJsdXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pbWFnZS1wcmV2aWV3IHtcclxuICAgIHdpZHRoOiAzODc7XHJcbiAgICBoZWlnaHQ6IDIzNTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxufVxyXG4iXX0= */\";","export default \".section {\\r\\n margin-top:5px;\\r\\n font-size: 16px;\\r\\n font-weight: 500;\\r\\n font-stretch: normal;\\r\\n font-style: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: 0.74px;\\r\\n color: #333333;\\r\\n}\\r\\n\\r\\n\\r\\n.description{\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-stretch: normal;\\r\\n font-style: normal;\\r\\n line-height: 1.29;\\r\\n letter-spacing: normal;\\r\\n color: #333333;\\r\\n margin-top: 10px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFkZC1mYWNlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxjQUFjO01BQ1osZUFBZTtNQUNmLGdCQUFnQjtNQUNoQixvQkFBb0I7TUFDcEIsa0JBQWtCO01BQ2xCLG1CQUFtQjtNQUNuQixzQkFBc0I7TUFDdEIsY0FBYztBQUNwQjs7O0FBR0E7SUFDSSxlQUFlO0VBQ2pCLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixzQkFBc0I7RUFDdEIsY0FBYztFQUNkLGdCQUFnQjtBQUNsQiIsImZpbGUiOiJhZGQtZmFjZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNlY3Rpb24ge1xyXG4gICAgbWFyZ2luLXRvcDo1cHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNzRweDtcclxuICAgICAgY29sb3I6ICMzMzMzMzM7XHJcbn1cclxuXHJcblxyXG4uZGVzY3JpcHRpb257XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMjk7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogIzMzMzMzMztcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59Il19 */\";","export default \".section {\\r\\n margin-top:5px;\\r\\n font-size: 16px;\\r\\n font-weight: 500;\\r\\n font-stretch: normal;\\r\\n font-style: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: 0.74px;\\r\\n color: #333333;\\r\\n}\\r\\n\\r\\n\\r\\n.description{\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-stretch: normal;\\r\\n font-style: normal;\\r\\n line-height: 1.29;\\r\\n letter-spacing: normal;\\r\\n color: #333333;\\r\\n margin-top: 10px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlY29nbml6ZS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksY0FBYztNQUNaLGVBQWU7TUFDZixnQkFBZ0I7TUFDaEIsb0JBQW9CO01BQ3BCLGtCQUFrQjtNQUNsQixtQkFBbUI7TUFDbkIsc0JBQXNCO01BQ3RCLGNBQWM7QUFDcEI7OztBQUdBO0lBQ0ksZUFBZTtFQUNqQixtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCxnQkFBZ0I7QUFDbEIiLCJmaWxlIjoicmVjb2duaXplLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2VjdGlvbiB7XHJcbiAgICBtYXJnaW4tdG9wOjVweDtcclxuICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMC43NHB4O1xyXG4gICAgICBjb2xvcjogIzMzMzMzMztcclxufVxyXG5cclxuXHJcbi5kZXNjcmlwdGlvbntcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4yOTtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiAjMzMzMzMzO1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbn0iXX0= */\";","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.css']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \"\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n Recognize\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n

Recognizing Face...

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Picture
\\r\\n
Select the picture where appears a person you want to recognize. Have you added his/her face before?. \\r\\n Otherwise, add it here
\\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\\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, OnDestroy } from '@angular/core';\r\nimport { TranslationService } from './translation.service';\r\nimport { Language } from '../common/language';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Translation } from './translation';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { TextService } from '../text.service';\r\nimport { AppGlobals} from '../app-global';\r\n\r\n@Component({\r\n selector: \"app-translation\",\r\n templateUrl: \"./translation.component.html\",\r\n styleUrls: [\"./translation.component.css\"],\r\n})\r\nexport class TranslationComponent implements OnInit, OnDestroy {\r\n private languages: Language[];\r\n private languagesFiltered: Language[];\r\n private dataTranslate: Translation;\r\n private dictionary: string;\r\n private selectedLanguage: string;\r\n private selectedDictionary: boolean;\r\n private selectedModel: boolean;\r\n private selectedHtml: boolean;\r\n private browserLanguage: string;\r\n private textInput = new Subject();\r\n private languageSubscription: Subscription;\r\n private languageLabel: string;\r\n private dictionaryLabel: string;\r\n private placeholderLabel: string;\r\n\r\n translateForm = new FormGroup({\r\n srcLanguage: new FormControl(\"\", [Validators.required]),\r\n dstLanguage: new FormControl(\"\", [Validators.required]),\r\n srcText: new FormControl(\"\", [Validators.required, Validators.minLength(4)]),\r\n dstText: new FormControl(\"\"),\r\n category: new FormControl({value: '', disabled: true}, Validators.required),\r\n model: new FormControl(\"\"),\r\n html: new FormControl(\"\"),\r\n });\r\n\r\n private submitting = false;\r\n\r\n constructor(\r\n private translationService: TranslationService,\r\n private textService: TextService,\r\n private appGlobals: AppGlobals\r\n ) {\r\n this.dictionary = this.appGlobals.getCategoryId();\r\n }\r\n\r\n public keyUp(event: any) {\r\n if (event.key === 'Enter') {\r\n this.textInput.next(event.target.value);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.submitting = true;\r\n this.translationService.getTranslateLanguages().subscribe(\r\n (res) => {\r\n res = res.sort((a, b) => a.englishName.localeCompare(b.englishName));\r\n this.languages = res;\r\n this.selectedLanguage = \"auto-detect\";\r\n this.selectedDictionary = false;\r\n this.selectedModel = false;\r\n this.selectedHtml = false;\r\n this.browserLanguage = navigator.language.substr(0, 2);\r\n this.languagesFilter();\r\n },\r\n (err) => {\r\n console.log(err);\r\n },\r\n () => {\r\n this.submitting = false;\r\n }\r\n );\r\n\r\n this.textInput\r\n .pipe(debounceTime(300), distinctUntilChanged())\r\n .subscribe((text) => {\r\n if (text.length > 0) {\r\n this.onSubmit();\r\n }\r\n });\r\n\r\n this.languageSubscription = this.textService.currentLanguage.subscribe(\r\n (lang) => this.getLabels()\r\n );\r\n }\r\n\r\n getLabels() {\r\n this.languageLabel = this.textService.getText(\r\n this.textService.KEY_LANGUAGE\r\n );\r\n this.dictionaryLabel = this.textService.getText(\r\n this.textService.KEY_DICTIONARY\r\n );\r\n this.placeholderLabel = this.textService.getText(\r\n this.textService.KEY_PLACEHOLDER\r\n );\r\n }\r\n\r\n onSubmit(): void {\r\n this.submitting = true;\r\n const srcLang =\r\n this.translateForm.get(\"srcLanguage\").value || \"auto-detect\";\r\n const dictionary = this.selectedDictionary ? this.dictionary : null;\r\n const dstLang = this.translateForm.get(\"dstLanguage\").value;\r\n const srcText = this.translateForm.get(\"srcText\").value;\r\n\r\n this.dataTranslate = {\r\n texts: srcText.split(\"\\n\"),\r\n isHtml: this.selectedHtml,\r\n categoryId: dictionary,\r\n };\r\n\r\n if (this.selectedModel) {\r\n this.translationService\r\n .postDeepLTranslateLanguages(srcLang, dstLang, this.dataTranslate)\r\n .subscribe(\r\n (res) => {\r\n this.translateForm.get(\"dstText\").setValue(res.texts.join(\"\\n\"));\r\n },\r\n (err) => {\r\n console.log(err);\r\n },\r\n () => {\r\n this.submitting = false;\r\n }\r\n );\r\n } else {\r\n this.translationService\r\n .postTranslateLanguages(srcLang, dstLang, this.dataTranslate)\r\n .subscribe(\r\n (res) => {\r\n this.translateForm.get(\"dstText\").setValue(res.texts.join(\"\\n\"));\r\n },\r\n (err) => {\r\n console.log(err);\r\n },\r\n () => {\r\n this.submitting = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n ddChanged(event: any) {\r\n if (false) // avoid autosubmit for cost purposes\r\n if (this.translateForm.get(\"srcText\").value) {\r\n this.onSubmit();\r\n }\r\n }\r\n\r\n dictionaryChanged(event: any) {\r\n if (false) // avoid autosubmit for cost purposes\r\n if (this.translateForm.get(\"srcText\").value) {\r\n this.onSubmit();\r\n }\r\n }\r\n\r\n modelChanged(event: any) {\r\n this.selectedDictionary = this.selectedDictionary && !this.selectedModel;\r\n\r\n if (false) // avoid autosubmit for cost purposes\r\n if (this.translateForm.get(\"srcText\").value) {\r\n this.onSubmit();\r\n }\r\n\r\n this.languagesFilter();\r\n }\r\n\r\n private languagesFilter() {\r\n if (this.languages) {\r\n if (this.selectedModel)\r\n this.languagesFiltered = this.languages.filter((item) => {\r\n return item.model.indexOf(\"delta\") >= 0;\r\n });\r\n if (!this.selectedModel)\r\n this.languagesFiltered = this.languages.filter((item) => {\r\n return (item.model.indexOf(\"cognitive\") >= 0);\r\n });\r\n this.selectedLanguage = \"auto-detect\"\r\n this.browserLanguage = navigator.language.substr(0, 2);\r\n }\r\n }\r\n\r\n htmlChanged(event: any) {\r\n if (false) // avoid autosubmit for cost purposes\r\n if (this.translateForm.get(\"srcText\").value) {\r\n this.onSubmit();\r\n }\r\n }\r\n\r\n public hasError = (controlName: string, errorName: string) => {\r\n return this.translateForm.controls[controlName].hasError(errorName);\r\n };\r\n\r\n getErrorMessage(): string {\r\n // return this.dstLanguage.hasError('required') ? 'You must enter a value' : '';\r\n return \"\";\r\n }\r\n\r\n openFile(event) {\r\n this.submitting = true;\r\n const input = event.target;\r\n for (const inputFile of input.files) {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n // this 'text' is the content of the file\r\n this.translateForm.get(\"srcText\").setValue(reader.result);\r\n this.onSubmit();\r\n };\r\n reader.readAsText(inputFile);\r\n }\r\n }\r\n\r\n copyTo(inputElement: any): void {\r\n inputElement.select();\r\n document.execCommand(\"copy\");\r\n inputElement.setSelectionRange(0, 0);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.textInput.unsubscribe();\r\n this.languageSubscription.unsubscribe();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AuthService } from '../auth.service';\r\n\r\n@Component({\r\n selector: 'sgs-logout',\r\n templateUrl: './logout.component.html',\r\n styleUrls: ['./logout.component.scss'],\r\n providers: [],\r\n})\r\nexport class LogoutComponent {\r\n @Input() iconOnly = false;\r\n @Input() color = 'primary';\r\n\r\n user!: any;\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) {\r\n this.user = this.authService.user;\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJmYWNlLWJsdXJyaW5nLmNvbXBvbmVudC5jc3MifQ== */\";","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LogoutComponent } from './logout.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTooltipModule\r\n ],\r\n declarations: [LogoutComponent],\r\n exports: [LogoutComponent]\r\n})\r\nexport class LogoutModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppGlobals } from '../../../app-global';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport {MatDialog } from '@angular/material/dialog';\r\nimport { ResultComponent } from '../../result/result.component';\r\n\r\n@Component({\r\n selector: 'app-blur',\r\n templateUrl: './blur.component.html',\r\n styleUrls: ['./blur.component.css']\r\n})\r\nexport class BlurComponent implements OnInit {\r\n\r\n private imageToBlurFrom: File;\r\n public blurredImage : any = '//:0';\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private appGlobals: AppGlobals,\r\n private spinner: NgxSpinnerService,\r\n public snackBar: MatSnackBar,\r\n public dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public onSubmit() {\r\n const formData = new FormData();\r\n\r\n formData.append('Image', this.imageToBlurFrom);\r\n\r\n this.spinner.show();\r\n this.httpClient.post(\r\n this.appGlobals.getBaseApiUrl() + '/api/face/' + this.appGlobals.getApplicationId() + '/blurring',\r\n formData\r\n ).subscribe(\r\n (res) => {\r\n console.log(res);\r\n this.blurredImage = res.fileContents;\r\n this.spinner.hide();\r\n this.snackBar.open('Faces blurred', 'Success', {duration : 3000, verticalPosition : 'top'});\r\n\r\n const dialogRef = this.dialog.open(ResultComponent, {\r\n width: '400px',\r\n height: '600px',\r\n data: {image: this.blurredImage}\r\n });\r\n },\r\n (err) => {\r\n console.log(err);\r\n this.spinner.hide();\r\n this.snackBar.open('Error blurring faces : ' + err.error, 'Error', {duration : 3000, verticalPosition : 'top'});\r\n }\r\n );\r\n }\r\n\r\n public getFile(file: File) {\r\n this.imageToBlurFrom = file;\r\n }\r\n\r\n}\r\n","export default \"\\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\";","export default \"\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

SGS Cognitive Hub Face Services - Demo

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n Face Recognition\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

SGS Facial Recognition system is a technology capable of identifying or verifying a person from a digital image. There are multiple methods in which facial recognition systems work, but in general, they work by comparing selected facial features from given image with faces within a database.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n Face Blurring\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

In some situations, you might not want your pictures to show all the faces that appear on it. SGS Face Blurring system will help you to blur all the faces of the picture.

\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n The Face Recognition and blurring services are supported by a series of SGS Cognitive Hub API endpoints.
\\r\\n Those endpoints are public in order to allow you to integrate them in your applications. For more information , contact us in

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n coe@sgs.com \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\";","export default \"\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n Add face\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Face Information
\\r\\n
Tell us the name of the person whose image you want to add
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Person Name\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

Uploading Face...

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Picture
\\r\\n
Select the picture of that person
\\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\\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJmYWNlLXJlY29nbml0aW9uLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"
\\r\\n \\r\\n
\\r\\n\";","import {\r\n Component,\r\n OnInit,\r\n Output,\r\n Input,\r\n EventEmitter,\r\n} from '@angular/core';\r\n\r\nexport enum PreviewImageSize {\r\n\r\n small = 0,\r\n medium = 1,\r\n big = 2\r\n}\r\n\r\n@Component({\r\n selector: 'image-preview',\r\n templateUrl: './image-preview.component.html',\r\n styleUrls: ['./image-preview.component.css']\r\n})\r\nexport class ImagePreviewComponent implements OnInit {\r\n\r\n private _size : string = '';\r\n\r\n // Emit an event when a file has been picked. Here we return the file itself\r\n @Output() onChange: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n set size(size: string) {\r\n this._size = size;\r\n }\r\n\r\n private fileName : string;\r\n private source : string;\r\n\r\n constructor() { \r\n this.fileName = \"\";\r\n this.source = \"\";\r\n }\r\n\r\n // If the input has changed(file picked) we project the file into the img previewer\r\n updateSource($event: Event) {\r\n // We access he file with $event.target['files'][0]\r\n this.projectImage($event.target['files'][0]);\r\n this.fileName = $event.target['files'][0].name;\r\n }\r\n\r\n projectImage(file: File) {\r\n let reader = new FileReader;\r\n // TODO: Define type of 'e'\r\n reader.onload = (e: any) => {\r\n // Simply set e.target.result as our src in the layout\r\n this.source = e.target.result;\r\n this.onChange.emit(file);\r\n };\r\n // This will process our file and get it's attributes/data\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { CryptoUtils, InteractionRequiredAuthError, Logger } from 'msal';\r\nimport { AppGlobals } from '../app-global';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n private isIframe = false;\r\n private loggedIn = false;\r\n private token: string;\r\n private tokenAcquired = false;\r\n public user: any;\r\n\r\n constructor(\r\n private broadcastService: BroadcastService,\r\n private authService: MsalService,\r\n private appGlobals: AppGlobals,\r\n ) {\r\n this.initialize();\r\n }\r\n\r\n private initialize(): void {\r\n this.isIframe = window !== window.parent && !window.opener;\r\n\r\n this.checkAccount();\r\n\r\n this.broadcastService.subscribe('msal:loginSuccess', (payload) => {\r\n this.checkAccount();\r\n });\r\n\r\n this.broadcastService.subscribe('msal:acquireTokenSuccess', (payload) => {\r\n console.log('access token acquired: ' + new Date().toString());\r\n this.tokenAcquired = true;\r\n this.token = payload.accessToken;\r\n });\r\n\r\n this.broadcastService.subscribe('msal:acquireTokenFailure', (payload) => {\r\n console.log('access token acquisition fails');\r\n this.tokenAcquired = false;\r\n });\r\n\r\n this.authService.handleRedirectCallback((authError, response) => {\r\n if (authError) {\r\n console.error('Redirect Error: ', authError.errorMessage);\r\n return;\r\n }\r\n console.log('Redirect Success: ', response.accessToken);\r\n this.tokenAcquired = true;\r\n });\r\n\r\n\r\n this.authService.setLogger(\r\n new Logger(\r\n (logLevel, message, piiEnabled) => {\r\n console.log('MSAL Logging: ', message);\r\n },\r\n {\r\n correlationId: CryptoUtils.createNewGuid(),\r\n piiLoggingEnabled: AppGlobals.getMsalConfig().piiLoggingEnabled,\r\n }\r\n )\r\n );\r\n }\r\n\r\n checkAccount(): void {\r\n this.user = this.authService.getAccount();\r\n this.loggedIn = !!this.user;\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n return this.loggedIn;\r\n }\r\n\r\n async getAcquireTokenSilent(): Promise {\r\n const accessTokenRequest = {\r\n scopes: this.authService.getScopesForEndpoint(this.appGlobals.getBaseApiUrl()),\r\n clientId: AppGlobals.getMsalConfig().clientId, // This is your client ID\r\n authority: AppGlobals.getMsalConfig().authority, // This is your tenant ID\r\n redirectUri: AppGlobals.getMsalConfig().redirectUri, // This is your redirect URI\r\n };\r\n\r\n await this.authService\r\n .acquireTokenSilent(accessTokenRequest)\r\n .then((res) => {\r\n this.tokenAcquired = true;\r\n this.token = res.accessToken;\r\n })\r\n .catch((e) => {\r\n if (e.name === InteractionRequiredAuthError) {\r\n if (AppGlobals.getMsalConfig().popUp) {\r\n this.authService.acquireTokenPopup(accessTokenRequest);\r\n } else {\r\n this.authService.acquireTokenRedirect(accessTokenRequest);\r\n }\r\n }\r\n this.tokenAcquired = false;\r\n console.log('acquireTokenRedirect catch');\r\n console.log(e);\r\n });\r\n\r\n return this.accessToken;\r\n }\r\n\r\n get accessToken(): string {\r\n return this.token;\r\n }\r\n\r\n login(): void {\r\n if (AppGlobals.getMsalConfig().popUp) {\r\n this.authService.loginPopup();\r\n } else {\r\n this.authService.loginRedirect();\r\n }\r\n }\r\n\r\n logout(): void {\r\n this.authService.logout();\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJyZXN1bHQuY29tcG9uZW50LmNzcyJ9 */\";","export default \"\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\";","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-face-blurring',\r\n templateUrl: './face-blurring.component.html',\r\n styleUrls: ['./face-blurring.component.css']\r\n})\r\nexport class FaceBlurringComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { SpellcheckComponent } from './spellcheck/spellcheck.component';\r\nimport { TranslationComponent } from './translation/translation.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { Image2spellComponent } from './image2spell/image2spell.component';\r\nimport { FaceComponent } from './face/face.component';\r\nimport {FaceRecognitionComponent} from './face/face-recognition/face-recognition.component';\r\nimport {FaceBlurringComponent} from './face/face-blurring/face-blurring.component';\r\nimport {AddFaceComponent} from './face/face-recognition/add-face/add-face.component';\r\nimport { RecognizeComponent } from './face/face-recognition/recognize/recognize.component';\r\nimport { BlurComponent } from './face/face-blurring/blur/blur.component';\r\nimport { ResultComponent } from './face/result/result.component';\r\nimport { IntroComponent } from './face/intro/intro.component';\r\nimport { AuthGuard } from './auth/auth.guard';\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'home', pathMatch: 'full' },\r\n { path: 'home', component: HomeComponent, canActivate: [AuthGuard] },\r\n { path: 'spellcheck', component: SpellcheckComponent, canActivate: [AuthGuard] },\r\n { path: 'translate', component: TranslationComponent, canActivate: [AuthGuard] },\r\n\r\n { path: 'image2spell', component: Image2spellComponent, canActivate: [AuthGuard] },\r\n { path: 'face',\r\n component: FaceComponent, canActivate: [AuthGuard],\r\n children: [\r\n { path: 'intro', component: IntroComponent },\r\n { path: 'recognition', component: FaceRecognitionComponent },\r\n { path: 'blurring', component: FaceBlurringComponent },\r\n { path: 'addface', component: AddFaceComponent },\r\n { path: 'recognize', component: RecognizeComponent },\r\n { path: 'blur', component: BlurComponent },\r\n { path: 'result', component: ResultComponent }\r\n ]\r\n },\r\n { path: '**', redirectTo: 'home' }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","export default \"
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Select picture \\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
\\r\\n
\";","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class TextService {\r\n public readonly KEY_LANGUAGE = \"KEY_LANGUAGE\";\r\n public readonly KEY_DICTIONARY = \"KEY_DICTIONARY\";\r\n public readonly KEY_ORIGINAL = \"KEY_ORIGINAL\";\r\n public readonly KEY_HIGHLIGHTED = \"KEY_HIGHLIGHTED\";\r\n public readonly KEY_CORRECTED = \"KEY_CORRECTED\";\r\n public readonly KEY_PLACEHOLDER = \"KEY_PLACEHOLDER\";\r\n public readonly KEY_TRANSLATE = \"KEY_TRANSLATE\";\r\n public readonly KEY_SELECT_IMAGE = \"KEY_SELECT_IMAGE\";\r\n public readonly KEY_TEXT = \"KEY_TEXT\";\r\n public readonly KEY_SPELLCHECK = \"KEY_SPELLCHECK\";\r\n public readonly KEY_AUTODETECT = \"KEY_AUTODETECT\";\r\n public readonly KEY_ONLYIMAGE = \"KEY_ONLYIMAGE\";\r\n public readonly KEY_ONLYDATA = \"KEY_ONLYDATA\";\r\n public readonly KEY_IMAGEDATA = \"KEY_IMAGEDATA\";\r\n public readonly KEY_WORD = \"KEY_WORD\";\r\n public readonly KEY_WORDS = \"KEY_WORDS\";\r\n public readonly KEY_TRANSLATION = \"KEY_TRANSLATION\";\r\n public readonly KEY_CORRECTION = \"KEY_CORRECTION\";\r\n public readonly KEY_IMAGE = \"KEY_IMAGE\";\r\n public readonly KEY_JSONDATA = \"KEY_JSONDATA\";\r\n public readonly KEY_SUBMIT = \"KEY_SUBMIT\";\r\n public readonly KEY_DROPIMAGE = \"KEY_DROPIMAGE\";\r\n public readonly KEY_DETECTEDTEXT = \"KEY_DETECTEDTEXT\";\r\n public readonly KEY_TRANSLATION_LANGUAGE = \"KEY_TRANSLATION_LANGUAGE\";\r\n\r\n constructor() {\r\n const group = this.appGroups.find((g) => g.name === \"Cognitive\");\r\n this.appGroupSource.next(group);\r\n }\r\n\r\n private languageSource = new BehaviorSubject(\"en\");\r\n public currentLanguage = this.languageSource.asObservable();\r\n\r\n private appGroupSource = new BehaviorSubject(null);\r\n public currentGroup = this.appGroupSource.asObservable();\r\n\r\n private readonly labels = {\r\n es: {\r\n KEY_LANGUAGE: \"Lenguaje\",\r\n KEY_DICTIONARY: \"Diccionario\",\r\n KEY_ORIGINAL: \"Original\",\r\n KEY_HIGHLIGHTED: \"Resaltado\",\r\n KEY_CORRECTED: \"Corregido\",\r\n KEY_PLACEHOLDER: \"Escribir o pegar texto aquí...\",\r\n KEY_TRANSLATE: \"Traducir\",\r\n KEY_SELECT_IMAGE: \"Seleccionar Imagen\",\r\n KEY_TEXT: \"Texto\",\r\n KEY_SPELLCHECK: \"Ortografía\",\r\n KEY_AUTODETECT: \"Auto-Detectar\",\r\n KEY_ONLYIMAGE: \"Solo Imagen\",\r\n KEY_ONLYDATA: \"Solo Datos\",\r\n KEY_IMAGEDATA: \"Imagen + Datos\",\r\n KEY_WORD: \"Palabra\",\r\n KEY_WORDS: \"Palabras\",\r\n KEY_TRANSLATION: \"Traducción\",\r\n KEY_CORRECTION: \"Corrección\",\r\n KEY_IMAGE: \"Imagen\",\r\n KEY_JSONDATA: \"Datos Json\",\r\n KEY_SUBMIT: \"Enviar\",\r\n KEY_DROPIMAGE: \"Arrastre la imagen aquí\",\r\n KEY_DETECTEDTEXT: \"Texto original\",\r\n KEY_TRANSLATION_LANGUAGE: \"Lenguaje de Traducción\",\r\n },\r\n en: {\r\n KEY_LANGUAGE: \"Language\",\r\n KEY_DICTIONARY: \"Dictionary\",\r\n KEY_ORIGINAL: \"Original\",\r\n KEY_HIGHLIGHTED: \"Highlighted\",\r\n KEY_CORRECTED: \"Corrected\",\r\n KEY_PLACEHOLDER: \"Type or Paste text here...\",\r\n KEY_TRANSLATE: \"Translate\",\r\n KEY_SELECT_IMAGE: \"Select Image\",\r\n KEY_TEXT: \"Text\",\r\n KEY_SPELLCHECK: \"SpellCheck\",\r\n KEY_AUTODETECT: \"Auto-Detect\",\r\n KEY_ONLYIMAGE: \"Only Image\",\r\n KEY_ONLYDATA: \"Only Data\",\r\n KEY_IMAGEDATA: \"Image + Data\",\r\n KEY_WORD: \"Word\",\r\n KEY_WORDS: \"Words\",\r\n KEY_TRANSLATION: \"Translation\",\r\n KEY_CORRECTION: \"Correction\",\r\n KEY_IMAGE: \"Image\",\r\n KEY_JSONDATA: \"Json Data\",\r\n KEY_SUBMIT: \"Submit\",\r\n KEY_DROPIMAGE: \"Drop image here\",\r\n KEY_DETECTEDTEXT: \"Original text\",\r\n KEY_TRANSLATION_LANGUAGE: \"Translation Language\",\r\n },\r\n };\r\n\r\n private readonly appGroups = [\r\n {\r\n name: \"Cognitive\",\r\n imageUrl: \"../assets/img/coe-min-rgb.png\",\r\n url: \"\",\r\n apps: [\r\n {\r\n name: \"Text Translator\",\r\n url: \"translate\",\r\n imageUrl: \"../assets/img/coe-min-rgb.png\",\r\n }, // Spell2Text\r\n {\r\n name: \"Spell-checker\",\r\n url: \"spellcheck\",\r\n imageUrl: \"../assets/img/logotipo-sgs-rgb.png\",\r\n },\r\n {\r\n name: \"Image\",\r\n url: \"image2spell\",\r\n imageUrl: \"../assets/img/coe-min-rgb.png\",\r\n }, // Image2Spell\r\n {\r\n name: \"Face\",\r\n url: \"face\",\r\n imageUrl: \"../assets/img/coe-min-rgb.png\",\r\n },\r\n ],\r\n },\r\n ];\r\n\r\n getText(key: string): string {\r\n if (\r\n this.languageSource.getValue() !== \"en\" &&\r\n this.languageSource.getValue() !== \"es\"\r\n ) {\r\n this.languageSource.next(\"en\");\r\n }\r\n return this.labels[this.languageSource.getValue()][key];\r\n }\r\n\r\n changeLanguage(language: string) {\r\n this.languageSource.next(language);\r\n }\r\n\r\n getAppGroups() {\r\n return this.appGroups;\r\n }\r\n changeAppGroup(group) {\r\n this.appGroupSource.next(group);\r\n }\r\n}\r\n\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0cmFuc2xhdGlvbi5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Face Blurring

\\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
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Are there any faces you don't want to be recognized in your pictures?
Send the image and Cognitive Hub will blur them for you.

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n BLUR IMAGE\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\";","import 'hammerjs';\r\nimport { 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","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-face',\r\n templateUrl: './face.component.html',\r\n styleUrls: ['./face.component.css']\r\n})\r\nexport class FaceComponent implements OnInit {\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.router.navigateByUrl('/face/intro');\r\n }\r\n\r\n}\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"}