RED-7051 & RED-7138 scroll page indicators & hide chip focus

This commit is contained in:
Dan Percic 2023-07-19 16:11:22 +03:00
parent d0e06bd6a9
commit 7995c72fe5
3 changed files with 21 additions and 5 deletions

View File

@ -1,4 +1,4 @@
import { Component, inject, Input } from '@angular/core';
import { AfterViewInit, Component, inject, Input } from '@angular/core';
import { List } from '@iqser/common-ui/lib/utils';
import { PdfViewer } from '../../../pdf-viewer/services/pdf-viewer.service';
import { MultiSelectService } from '../../services/multi-select.service';
@ -7,13 +7,14 @@ import { AnnotationWrapper } from '@models/file/annotation.wrapper';
import { FilePreviewStateService } from '../../services/file-preview-state.service';
import { ViewedPagesMapService } from '@services/files/viewed-pages-map.service';
import { ViewedPage } from '@red/domain';
import scrollIntoView from 'scroll-into-view-if-needed';
@Component({
selector: 'redaction-pages',
templateUrl: './pages.component.html',
styleUrls: ['./pages.component.scss'],
})
export class PagesComponent {
export class PagesComponent implements AfterViewInit {
readonly #state = inject(FilePreviewStateService);
readonly #multiSelectService = inject(MultiSelectService);
readonly #listingService = inject(AnnotationsListingService);
@ -22,6 +23,22 @@ export class PagesComponent {
@Input({ required: true }) displayedAnnotations: Map<number, AnnotationWrapper[]>;
readonly viewedPages$ = inject(ViewedPagesMapService).get$(this.#state.fileId);
ngAfterViewInit() {
setTimeout(() => {
this.scrollToLastViewedPage();
}, 100);
}
scrollToLastViewedPage() {
const currentPdfPage = this._pdf.currentPage();
scrollIntoView(document.getElementById(`quick-nav-page-${currentPdfPage}`), {
behavior: 'smooth',
scrollMode: 'if-needed',
block: 'start',
inline: 'start',
});
}
pageSelectedByClick($event: number): void {
this._pdf.navigateTo($event);
}

View File

@ -76,12 +76,11 @@ export class DownloadDialogComponent extends IqserDialogComponent<DownloadDialog
}
get invalidDownload() {
const hasReportTypes = this.form.controls.reportTemplateIds.value.length;
const downloadFileTypes = this.form.controls.downloadFileTypes.value;
const onlyRedactedVersionSelected =
downloadFileTypes.length && downloadFileTypes.every(type => type === DownloadFileTypes.REDACTED);
return !hasReportTypes || (onlyRedactedVersionSelected && !this.hasApprovedFiles);
return onlyRedactedVersionSelected && !this.hasApprovedFiles;
}
override get valid() {

@ -1 +1 @@
Subproject commit e69f8b3f0df8701bbc3dbc79e2239aaad3acc889
Subproject commit fd4491b2a39792ffe3ef76155c1572a45e38406e