diff --git a/angular.json b/angular.json index 700f0f37e..2de16ff06 100644 --- a/angular.json +++ b/angular.json @@ -11,7 +11,7 @@ "builder": "@nrwl/jest:jest", "outputs": ["coverage/libs/common-ui"], "options": { - "jestConfig": "libs/common-ui/jest.config.js", + "jestConfig": "libs/common-ui/jest.config.ts", "passWithNoTests": true } }, @@ -41,7 +41,7 @@ "test": { "builder": "@nrwl/jest:jest", "options": { - "jestConfig": "libs/red-cache/jest.config.js", + "jestConfig": "libs/red-cache/jest.config.ts", "passWithNoTests": true }, "outputs": ["coverage/libs/red-cache"] @@ -64,7 +64,7 @@ "builder": "@nrwl/jest:jest", "outputs": ["coverage/libs/red-domain"], "options": { - "jestConfig": "libs/red-domain/jest.config.js", + "jestConfig": "libs/red-domain/jest.config.ts", "passWithNoTests": true } }, @@ -200,7 +200,7 @@ "test": { "builder": "@nrwl/jest:jest", "options": { - "jestConfig": "apps/red-ui/jest.config.js", + "jestConfig": "apps/red-ui/jest.config.ts", "passWithNoTests": true }, "outputs": ["coverage/apps/red-ui"] diff --git a/apps/red-ui/jest.config.js b/apps/red-ui/jest.config.ts similarity index 94% rename from apps/red-ui/jest.config.js rename to apps/red-ui/jest.config.ts index c2b04a43e..bf48f25e9 100644 --- a/apps/red-ui/jest.config.js +++ b/apps/red-ui/jest.config.ts @@ -1,4 +1,5 @@ -module.exports = { +/* eslint-disable */ +export default { preset: '../../jest.preset.js', setupFilesAfterEnv: ['/src/test-setup.ts'], globals: { diff --git a/apps/red-ui/ngsw-config.json b/apps/red-ui/ngsw-config.json index 90d383880..5b78c22f4 100644 --- a/apps/red-ui/ngsw-config.json +++ b/apps/red-ui/ngsw-config.json @@ -16,14 +16,6 @@ "resources": { "files": ["/assets/**", "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"] } - }, - { - "name": "pdftron", - "installMode": "prefetch", - "updateMode": "prefetch", - "resources": { - "files": ["/assets/wv-resources/**/*.*"] - } } ] } diff --git a/apps/red-ui/src/app/app-routing.module.ts b/apps/red-ui/src/app/app-routing.module.ts index 32afdf260..1ce33d29d 100644 --- a/apps/red-ui/src/app/app-routing.module.ts +++ b/apps/red-ui/src/app/app-routing.module.ts @@ -15,6 +15,7 @@ import { DashboardGuard } from '@guards/dashboard-guard.service'; import { TrashGuard } from '@guards/trash.guard'; import { ARCHIVE_ROUTE, BreadcrumbTypes, DOSSIER_ID, DOSSIER_TEMPLATE_ID, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE, FILE_ID } from '@red/domain'; import { DossierFilesGuard } from '@guards/dossier-files-guard'; +import { WebViewerLoadedGuard } from './modules/pdf-viewer/services/webviewer-loaded.guard'; const routes: Routes = [ { @@ -94,7 +95,7 @@ const routes: Routes = [ }, { path: `:${DOSSIER_ID}/file/:${FILE_ID}`, - canActivate: [CompositeRouteGuard], + canActivate: [CompositeRouteGuard, WebViewerLoadedGuard], data: { routeGuards: [DossierFilesGuard], breadcrumbs: [BreadcrumbTypes.dossierTemplate, BreadcrumbTypes.dossier, BreadcrumbTypes.file], diff --git a/apps/red-ui/src/app/app.component.html b/apps/red-ui/src/app/app.component.html index 20a8fecb2..6f2b09693 100644 --- a/apps/red-ui/src/app/app.component.html +++ b/apps/red-ui/src/app/app.component.html @@ -1,4 +1,7 @@ + + + diff --git a/apps/red-ui/src/app/app.component.ts b/apps/red-ui/src/app/app.component.ts index 05dec74fc..39033dde8 100644 --- a/apps/red-ui/src/app/app.component.ts +++ b/apps/red-ui/src/app/app.component.ts @@ -1,6 +1,7 @@ import { Component, ViewContainerRef } from '@angular/core'; import { RouterHistoryService } from '@services/router-history.service'; import { UserService } from '@services/user.service'; +import { REDDocumentViewer } from './modules/pdf-viewer/services/document-viewer.service'; @Component({ selector: 'redaction-root', @@ -14,5 +15,6 @@ export class AppComponent { public viewContainerRef: ViewContainerRef, private readonly _routerHistoryService: RouterHistoryService, private readonly _userService: UserService, + readonly documentViewer: REDDocumentViewer, ) {} } diff --git a/apps/red-ui/src/app/app.module.ts b/apps/red-ui/src/app/app.module.ts index 07c42e3e1..0e923f032 100644 --- a/apps/red-ui/src/app/app.module.ts +++ b/apps/red-ui/src/app/app.module.ts @@ -20,7 +20,7 @@ import { AppRoutingModule } from './app-routing.module'; import { SharedModule } from '@shared/shared.module'; import { FileUploadDownloadModule } from '@upload-download/file-upload-download.module'; import { DatePipe as BaseDatePipe, PlatformLocation } from '@angular/common'; -import { ACTIVE_DOSSIERS_SERVICE, ARCHIVED_DOSSIERS_SERVICE, BASE_HREF } from './tokens'; +import { ACTIVE_DOSSIERS_SERVICE, ARCHIVED_DOSSIERS_SERVICE, BASE_HREF, BASE_HREF_FN } from './tokens'; import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor'; import { GlobalErrorHandler } from '@utils/global-error-handler.service'; import { REDMissingTranslationHandler } from '@utils/missing-translations-handler'; @@ -51,6 +51,8 @@ import { MAT_TOOLTIP_DEFAULT_OPTIONS } from '@angular/material/tooltip'; import { LoggerModule, NgxLoggerLevel, TOKEN_LOGGER_CONFIG, TOKEN_LOGGER_RULES_SERVICE } from 'ngx-logger'; import { LoggerRulesService } from '@services/logger-rules.service'; import { ILoggerConfig } from '@red/domain'; +import { SystemPreferencesService } from '@services/system-preferences.service'; +import { PdfViewerModule } from './modules/pdf-viewer/pdf-viewer.module'; export function httpLoaderFactory(httpClient: HttpClient, configService: ConfigService): PruningTranslationLoader { return new PruningTranslationLoader(httpClient, '/assets/i18n/', `.json?version=${configService.values.FRONTEND_APP_VERSION}`); @@ -82,6 +84,7 @@ const components = [AppComponent, AuthErrorComponent, NotificationsComponent, Sp AppRoutingModule, MonacoEditorModule, IqserHelpModeModule, + PdfViewerModule, ToastrModule.forRoot({ closeButton: true, enableHtml: true, @@ -148,6 +151,11 @@ const components = [AppComponent, AuthErrorComponent, NotificationsComponent, Sp useFactory: (s: PlatformLocation) => cleanupBaseUrl(s.getBaseHrefFromDOM()), deps: [PlatformLocation], }, + { + provide: BASE_HREF_FN, + useFactory: (baseHref: string) => (path: string) => baseHref + path, + deps: [BASE_HREF], + }, { provide: HTTP_INTERCEPTORS, multi: true, @@ -167,6 +175,7 @@ const components = [AppComponent, AuthErrorComponent, NotificationsComponent, Sp KeycloakService, Title, ConfigService, + SystemPreferencesService, FeaturesService, GeneralSettingsService, LanguageService, diff --git a/apps/red-ui/src/app/components/base-screen/base-screen.component.html b/apps/red-ui/src/app/components/base-screen/base-screen.component.html index 2f6675b9e..006247efa 100644 --- a/apps/red-ui/src/app/components/base-screen/base-screen.component.html +++ b/apps/red-ui/src/app/components/base-screen/base-screen.component.html @@ -7,7 +7,7 @@ -