diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotation-actions/annotation-actions.component.html b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotation-actions/annotation-actions.component.html
index 6502158f1..265b7d4cf 100644
--- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotation-actions/annotation-actions.component.html
+++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotation-actions/annotation-actions.component.html
@@ -1,4 +1,4 @@
-
+
page + 1);
await clearStamps(pdfDoc, pdfNet, allPages);
- if (this.viewModeService.viewMode === 'REDACTED') {
+ if (this.viewModeService.isRedacted) {
const dossier = this._dossiersService.find(this.dossierId);
if (dossier.watermarkPreviewEnabled) {
await this._stampPreview(pdfDoc, dossier.dossierTemplateId);
@@ -617,10 +617,6 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni
const currentFilters = this._filterService.getGroup('primaryFilters')?.filters || [];
this.rebuildFilters();
- if (!this.viewModeService.isStandard) {
- return;
- }
-
const startTime = new Date().getTime();
const newAnnotations = newAnnotationsFilter ? this.visibleAnnotations.filter(newAnnotationsFilter) : this.visibleAnnotations;
diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/view-mode.service.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/view-mode.service.ts
index d38a0cc30..f24d66389 100644
--- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/view-mode.service.ts
+++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/view-mode.service.ts
@@ -1,24 +1,36 @@
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { ViewMode } from '@red/domain';
+import { map } from 'rxjs/operators';
+import { shareDistinctLast } from '@iqser/common-ui';
@Injectable()
export class ViewModeService {
readonly viewMode$: Observable;
- readonly compareMode$: Observable;
- private readonly _viewMode$ = new BehaviorSubject('STANDARD');
+ readonly compareMode$: Observable;
+ readonly isRedacted$: Observable;
+ readonly isStandard$: Observable;
+ readonly isDelta$: Observable;
- private readonly _compareMode$ = new BehaviorSubject(false);
+ private readonly _viewMode$ = new BehaviorSubject('STANDARD');
+ private readonly _compareMode$ = new BehaviorSubject(false);
constructor() {
this.viewMode$ = this._viewMode$.asObservable();
this.compareMode$ = this._compareMode$.asObservable();
+ this.isRedacted$ = this._is('REDACTED');
+ this.isStandard$ = this._is('STANDARD');
+ this.isDelta$ = this._is('DELTA');
}
get viewMode() {
return this._viewMode$.value;
}
+ set viewMode(mode: ViewMode) {
+ this._viewMode$.next(mode);
+ }
+
get isStandard() {
return this._viewMode$.value === 'STANDARD';
}
@@ -31,10 +43,6 @@ export class ViewModeService {
return this._viewMode$.value === 'REDACTED';
}
- set viewMode(mode: ViewMode) {
- this._viewMode$.next(mode);
- }
-
get isCompare() {
return this._compareMode$.value;
}
@@ -42,4 +50,27 @@ export class ViewModeService {
set compareMode(compareMode: boolean) {
this._compareMode$.next(compareMode);
}
+
+ switchToStandard() {
+ this._switchTo('STANDARD');
+ }
+
+ switchToDelta() {
+ this._switchTo('DELTA');
+ }
+
+ switchToRedacted() {
+ this._switchTo('REDACTED');
+ }
+
+ private _switchTo(mode: ViewMode) {
+ this._viewMode$.next(mode);
+ }
+
+ private _is(mode: ViewMode) {
+ return this.viewMode$.pipe(
+ map(value => value === mode),
+ shareDistinctLast(),
+ );
+ }
}