Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MNT-24538] Update PDFjs viewer version and disable annotation mode #10538

Merged
merged 14 commits into from
Jan 15, 2025
Merged
28 changes: 12 additions & 16 deletions lib/content-services/karma.conf.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
/* eslint-env es6 */
const { join } = require('path');
const { constants } = require('karma');

Expand All @@ -8,25 +9,25 @@ module.exports = function (config) {
basePath: '../../',

files: [
{pattern: 'node_modules/pdfjs-dist/build/pdf.js', included: true, watched: false},
{pattern: 'node_modules/pdfjs-dist/build/pdf.worker.js', included: true, watched: false},
{pattern: 'node_modules/pdfjs-dist/web/pdf_viewer.js', included: true, watched: false},
{ pattern: 'node_modules/pdfjs-dist/build/pdf.js', included: true, watched: false },
{ pattern: 'node_modules/pdfjs-dist/build/pdf.worker.js', included: true, watched: false },
{ pattern: 'node_modules/pdfjs-dist/web/pdf_viewer.js', included: true, watched: false },
{
pattern: 'node_modules/@angular/material/prebuilt-themes/indigo-pink.css',
included: true,
watched: false
},
{pattern: 'lib/content-services/src/lib/i18n/**/en.json', included: false, served: true, watched: false},
{ pattern: 'lib/content-services/src/lib/i18n/**/en.json', included: false, served: true, watched: false },
{
pattern: 'lib/content-services/src/lib/assets/images/**/*.svg',
included: false,
served: true,
watched: false
},
{pattern: 'lib/core/src/lib/assets/**/*.svg', included: false, served: true, watched: false},
{pattern: 'lib/core/src/lib/i18n/**/en.json', included: false, served: true, watched: false},
{pattern: 'lib/content-services/**/*.ts', included: false, served: true, watched: false},
{pattern: 'lib/config/app.config.json', included: false, served: true, watched: false}
{ pattern: 'lib/core/src/lib/assets/**/*.svg', included: false, served: true, watched: false },
{ pattern: 'lib/core/src/lib/i18n/**/en.json', included: false, served: true, watched: false },
{ pattern: 'lib/content-services/**/*.ts', included: false, served: true, watched: false },
{ pattern: 'lib/config/app.config.json', included: false, served: true, watched: false }
],

frameworks: ['jasmine-ajax', 'jasmine', '@angular-devkit/build-angular'],
Expand All @@ -38,7 +39,7 @@ module.exports = function (config) {
'/assets/adf-content-services/i18n/en.json': '/base/lib/content-services/src/lib/i18n/en.json',
'/assets/adf-core/i18n/en.json': '/base/lib/core/src/lib/i18n/en.json',
'/assets/adf-core/i18n/en-GB.json': '/base/lib/core/src/lib/i18n/en.json',
'/app.config.json': '/base/lib/config/app.config.json',
'/app.config.json': '/base/lib/config/app.config.json'
},

plugins: [
Expand All @@ -58,7 +59,7 @@ module.exports = function (config) {
},

jasmineHtmlReporter: {
suppressAll: true, // removes the duplicated traces
suppressAll: true // removes the duplicated traces
},

coverageReporter: {
Expand All @@ -78,12 +79,7 @@ module.exports = function (config) {
customLaunchers: {
ChromeHeadless: {
base: 'Chrome',
flags: [
'--no-sandbox',
'--headless',
'--disable-gpu',
'--remote-debugging-port=9222'
]
flags: ['--no-sandbox', '--headless', '--disable-gpu', '--remote-debugging-port=9222']
}
},

Expand Down
50 changes: 23 additions & 27 deletions lib/core/karma.conf.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
/* eslint-env es6 */
const { join } = require('path');
const { constants } = require('karma');

Expand All @@ -8,23 +9,23 @@ module.exports = function (config) {
basePath: '../../',

files: [
{pattern: 'node_modules/pdfjs-dist/build/pdf.js', included: true, watched: false},
{pattern: 'node_modules/pdfjs-dist/build/pdf.worker.js', included: true, watched: false, served: true},
{pattern: 'node_modules/pdfjs-dist/build/pdf.worker.min.js', included: true, watched: false, served: true},
{pattern: 'node_modules/pdfjs-dist/web/pdf_viewer.js', included: true, watched: false},
{ pattern: 'node_modules/pdfjs-dist/build/pdf.js', included: true, watched: false },
{ pattern: 'node_modules/pdfjs-dist/build/pdf.worker.js', included: true, watched: false, served: true },
{ pattern: 'node_modules/pdfjs-dist/build/pdf.worker.min.js', included: true, watched: false, served: true },
{ pattern: 'node_modules/pdfjs-dist/web/pdf_viewer.js', included: true, watched: false },
{
pattern: 'node_modules/@angular/material/prebuilt-themes/indigo-pink.css',
included: true,
watched: false
},
{pattern: 'lib/core/src/lib/i18n/**/en.json', included: false, served: true, watched: false},
{pattern: 'lib/core/**/*.ts', included: false, served: true, watched: false},
{pattern: 'lib/core/src/lib/assets/**/*.svg', included: false, served: true, watched: false},
{pattern: 'lib/core/src/lib/assets/**/*.png', included: false, served: true, watched: false},
{pattern: 'lib/config/app.config.json', included: false, served: true, watched: false},
{pattern: 'lib/core/src/lib/viewer/assets/fake-test-file.pdf', included: false, served: true, watched: false},
{pattern: 'lib/core/src/lib/viewer/assets/fake-test-file.txt', included: false, served: true, watched: false},
{pattern: 'lib/core/src/lib/viewer/assets/fake-test-video.mp4', included: false, served: true, watched: false},
{ pattern: 'lib/core/src/lib/i18n/**/en.json', included: false, served: true, watched: false },
{ pattern: 'lib/core/**/*.ts', included: false, served: true, watched: false },
{ pattern: 'lib/core/src/lib/assets/**/*.svg', included: false, served: true, watched: false },
{ pattern: 'lib/core/src/lib/assets/**/*.png', included: false, served: true, watched: false },
{ pattern: 'lib/config/app.config.json', included: false, served: true, watched: false },
{ pattern: 'lib/core/src/lib/viewer/assets/fake-test-file.pdf', included: false, served: true, watched: false },
{ pattern: 'lib/core/src/lib/viewer/assets/fake-test-file.txt', included: false, served: true, watched: false },
{ pattern: 'lib/core/src/lib/viewer/assets/fake-test-video.mp4', included: false, served: true, watched: false },
{
pattern: 'lib/core//viewer/assets/fake-test-password-file.pdf',
included: false,
Expand All @@ -36,21 +37,21 @@ module.exports = function (config) {
frameworks: ['jasmine-ajax', 'jasmine', '@angular-devkit/build-angular'],

proxies: {
'/pdf.worker.min.js' :'/base/node_modules/pdfjs-dist/build/pdf.worker.min.js',
'/pdf.worker.js' :'/base/node_modules/pdfjs-dist/build/pdf.worker.js',
'/fake-url-file.png' :'/base/lib/core/src/lib/assets/images/logo.png',
'/logo.png' :'/base/lib/core/src/lib/assets/images/logo.png',
'/alfresco-logo.svg' :'/base/lib/core/src/lib/assets/images/alfresco-logo.svg',
'/pdf.worker.min.js': '/base/node_modules/pdfjs-dist/build/pdf.worker.min.js',
'/pdf.worker.js': '/base/node_modules/pdfjs-dist/build/pdf.worker.js',
'/fake-url-file.png': '/base/lib/core/src/lib/assets/images/logo.png',
'/logo.png': '/base/lib/core/src/lib/assets/images/logo.png',
'/alfresco-logo.svg': '/base/lib/core/src/lib/assets/images/alfresco-logo.svg',
'/assets/images/': '/base/lib/core/src/lib/assets/images/',
'/assets/images/ecm-background.png': '/base/lib/core/src/lib/assets/images/ecm-background.png',
'/assets/images/bpm-background.png': '/base/lib/core/src/lib/assets/images/bpm-background.png',
'/content.bin': '/base/lib/core/src/lib/viewer/assets/fake-test-file.pdf',
'/base/assets/' :'/base/lib/core/src/lib/assets/',
'/base/assets/': '/base/lib/core/src/lib/assets/',
'/assets/adf-core/i18n/en.json': '/base/lib/core/src/lib/i18n/en.json',
'/assets/adf-core/i18n/en-GB.json': '/base/lib/core/src/lib/i18n/en.json',
'/assets/adf-core/i18n/en-US.json': '/base/lib/core/src/lib/i18n/en.json',
'/fake-content-img' : '/base/lib/core/src/lib/assets/images/logo.png',
'/fake-content-img.bin' : '/base/lib/core/src/lib/assets/images/logo.png',
'/fake-content-img': '/base/lib/core/src/lib/assets/images/logo.png',
'/fake-content-img.bin': '/base/lib/core/src/lib/assets/images/logo.png',
'/fake-test-file.pdf': '/base/lib/core/src/lib/viewer/assets/fake-test-file.pdf',
'/fake-content-pdf': '/base/lib/core/src/lib/viewer/assets/fake-test-file.pdf',
'/fake-content-pdf.bin': '/base/lib/core/src/lib/viewer/assets/fake-test-file.pdf',
Expand All @@ -77,7 +78,7 @@ module.exports = function (config) {
}
},
jasmineHtmlReporter: {
suppressAll: true, // removes the duplicated traces
suppressAll: true // removes the duplicated traces
},

coverageReporter: {
Expand All @@ -97,12 +98,7 @@ module.exports = function (config) {
customLaunchers: {
ChromeHeadless: {
base: 'Chrome',
flags: [
'--no-sandbox',
'--headless',
'--disable-gpu',
'--remote-debugging-port=9222'
]
flags: ['--no-sandbox', '--headless', '--disable-gpu', '--remote-debugging-port=9222']
}
},

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import { CoreTestingModule } from '../../../testing';
import { RenderingQueueServices } from '../../services/rendering-queue.services';
import { PdfThumbListComponent } from '../pdf-viewer-thumbnails/pdf-viewer-thumbnails.component';
import { PdfViewerComponent } from './pdf-viewer.component';
import { AnnotationMode } from 'pdfjs-dist';

declare const pdfjsLib: any;

Expand Down Expand Up @@ -159,6 +160,15 @@ describe('Test PdfViewer component', () => {
document.body.removeChild(elementUrlTestComponent);
});

it('should init the viewer with annotation mode disabled', (done) => {
fixtureUrlTestComponent.detectChanges();

fixtureUrlTestComponent.whenStable().then(() => {
expect(componentUrlTestComponent.pdfViewerComponent.pdfViewer.annotationEditorMode).toBe(AnnotationMode.DISABLE);
done();
});
}, 55000);

it('should Total number of pages be loaded', (done) => {
fixtureUrlTestComponent.detectChanges();

Expand Down Expand Up @@ -243,32 +253,34 @@ describe('Test PdfViewer component', () => {
}, 55000);

describe('Zoom', () => {
it('should zoom in increment the scale value', fakeAsync(() => {
it('should zoom in increment the scale value', (done) => {
spyOn(componentUrlTestComponent.pdfViewerComponent.pdfViewer, 'forceRendering').and.callFake(() => {});

const zoomInButton: any = elementUrlTestComponent.querySelector('#viewer-zoom-in-button');

tick(250);

const zoomBefore = componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScaleValue;
zoomInButton.click();
fixtureUrlTestComponent.detectChanges();

expect(componentUrlTestComponent.pdfViewerComponent.currentScaleMode).toBe('auto');
const currentZoom = componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScaleValue;
expect(zoomBefore < currentZoom).toBe(true);
}), 55000);
done();
}, 55000);

it('should zoom out decrement the scale value', fakeAsync(() => {
it('should zoom out decrement the scale value', (done) => {
spyOn(componentUrlTestComponent.pdfViewerComponent.pdfViewer, 'forceRendering').and.callFake(() => {});
const zoomOutButton: any = elementUrlTestComponent.querySelector('#viewer-zoom-out-button');

tick(250);

const zoomBefore = componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScaleValue;
zoomOutButton.click();
fixtureUrlTestComponent.detectChanges();

expect(componentUrlTestComponent.pdfViewerComponent.currentScaleMode).toBe('auto');
const currentZoom = componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScaleValue;
expect(zoomBefore > currentZoom).toBe(true);
}), 55000);
done();
}, 55000);

it('should it-in button toggle page-fit and auto scale mode', fakeAsync(() => {
spyOn(componentUrlTestComponent.pdfViewerComponent.pdfViewer, 'forceRendering').and.callFake(() => {});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import { MatDialog } from '@angular/material/dialog';
import { MatIconModule } from '@angular/material/icon';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { TranslateModule } from '@ngx-translate/core';
import { OnProgressParameters, PDFDocumentLoadingTask, PDFDocumentProxy } from 'pdfjs-dist';
import { AnnotationMode, OnProgressParameters, PDFDocumentLoadingTask, PDFDocumentProxy } from 'pdfjs-dist';
import { Subject } from 'rxjs';
import { catchError, delay } from 'rxjs/operators';
import { AppConfigService } from '../../../app-config';
Expand Down Expand Up @@ -246,7 +246,8 @@ export class PdfViewerComponent implements OnChanges, OnDestroy {
container,
viewer,
renderingQueue: this.renderingQueueServices,
eventBus: this.eventBus
eventBus: this.eventBus,
annotationMode: AnnotationMode.DISABLE
});

// cspell: disable-next
Expand Down
12 changes: 4 additions & 8 deletions lib/process-services-cloud/karma.conf.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
/* eslint-env es6 */
const { join } = require('path');
const { constants } = require('karma');

Expand Down Expand Up @@ -32,7 +33,7 @@ module.exports = function (config) {
'/assets/adf-core/i18n/en-GB.json': '/base/lib/core/src/lib/i18n/en.json',
'/assets/adf-process-services-cloud/i18n/en.json': '/base/lib/process-services-cloud/lib/i18n/en.json',
'/assets/adf-process-services-cloud/i18n/en-GB.json': '/base/lib/process-services-cloud/lib/i18n/en.json',
'/app.config.json': '/base/lib/config/app.config.json',
'/app.config.json': '/base/lib/config/app.config.json'
},
plugins: [
require('karma-jasmine-ajax'),
Expand All @@ -50,7 +51,7 @@ module.exports = function (config) {
}
},
jasmineHtmlReporter: {
suppressAll: true, // removes the duplicated traces
suppressAll: true // removes the duplicated traces
},

coverageReporter: {
Expand All @@ -70,12 +71,7 @@ module.exports = function (config) {
customLaunchers: {
ChromeHeadless: {
base: 'Chrome',
flags: [
'--no-sandbox',
'--headless',
'--disable-gpu',
'--remote-debugging-port=9222'
]
flags: ['--no-sandbox', '--headless', '--disable-gpu', '--remote-debugging-port=9222']
}
},

Expand Down
1 change: 1 addition & 0 deletions lib/process-services/karma.conf.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
/* eslint-env es6 */
const { join } = require('path');
const { constants } = require('karma');

Expand Down
Loading