mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
add test resize view and input value
This commit is contained in:
parent
d8856b541d
commit
3add949925
@ -23,4 +23,25 @@ export class PDFViewermock {
|
|||||||
currentPage = {
|
currentPage = {
|
||||||
renderingState: 3 as number
|
renderingState: 3 as number
|
||||||
};
|
};
|
||||||
|
|
||||||
|
_pages: any =
|
||||||
|
[{
|
||||||
|
width: 793,
|
||||||
|
scale: 1,
|
||||||
|
update: this.update
|
||||||
|
}, {
|
||||||
|
width: 793,
|
||||||
|
scale: 1,
|
||||||
|
update: this.update
|
||||||
|
}, {
|
||||||
|
width: 793,
|
||||||
|
scale: 1,
|
||||||
|
update: this.update
|
||||||
|
}];
|
||||||
|
|
||||||
|
_currentPageNumber: number = 0;
|
||||||
|
|
||||||
|
update() {
|
||||||
|
console.log('update page');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,11 @@ export class EventMock {
|
|||||||
document.dispatchEvent(event);
|
document.dispatchEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static resizeMobileView() {
|
||||||
|
window.innerWidth = 320;
|
||||||
|
window.innerHeight = 568;
|
||||||
|
window.dispatchEvent(new Event('resize'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -237,5 +237,56 @@ describe('PdfViewer', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('Input page should move to the inserted page', inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
|
||||||
|
return tcb
|
||||||
|
.createAsync(PdfViewerComponent)
|
||||||
|
.then((fixture) => {
|
||||||
|
let component = fixture.componentInstance;
|
||||||
|
|
||||||
|
spyOn(component, 'getPDFJS').and.returnValue(new PDFJSmock());
|
||||||
|
spyOn(component, 'initPDFViewer').and.callFake(() => {
|
||||||
|
component.pdfViewer = new PDFViewermock();
|
||||||
|
});
|
||||||
|
|
||||||
|
component.urlFile = 'fake-url-file';
|
||||||
|
|
||||||
|
component.ngOnChanges().then(() => {
|
||||||
|
fixture.detectChanges();
|
||||||
|
expect(component.displayPage).toBe(1);
|
||||||
|
component.inputPage('4');
|
||||||
|
fixture.detectChanges();
|
||||||
|
expect(component.displayPage).toBe(4);
|
||||||
|
}).catch((error) => {
|
||||||
|
expect(error).toBeUndefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Rezize interaction', () => {
|
||||||
|
|
||||||
|
it('resize event should trigger setScaleUpdatePages', inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
|
||||||
|
return tcb
|
||||||
|
.createAsync(PdfViewerComponent)
|
||||||
|
.then((fixture) => {
|
||||||
|
let component = fixture.componentInstance;
|
||||||
|
let element = fixture.nativeElement;
|
||||||
|
|
||||||
|
spyOn(component, 'getPDFJS').and.returnValue(new PDFJSmock());
|
||||||
|
spyOn(component, 'initPDFViewer');
|
||||||
|
spyOn(component, 'setScaleUpdatePages');
|
||||||
|
|
||||||
|
component.documentContainer = element.querySelector('#viewer-pdf-container');
|
||||||
|
component.pdfViewer = new PDFViewermock();
|
||||||
|
component.urlFile = 'fake-url-file';
|
||||||
|
|
||||||
|
EventMock.resizeMobileView();
|
||||||
|
|
||||||
|
expect(component.setScaleUpdatePages).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -24,7 +24,7 @@ declare let __moduleName: string;
|
|||||||
moduleId: __moduleName,
|
moduleId: __moduleName,
|
||||||
selector: 'pdf-viewer',
|
selector: 'pdf-viewer',
|
||||||
templateUrl: './pdfViewer.component.html',
|
templateUrl: './pdfViewer.component.html',
|
||||||
styleUrls: ['./pdfViewer.component.css', './pdfViewerHost.component.css' ]
|
styleUrls: ['./pdfViewer.component.css', './pdfViewerHost.component.css']
|
||||||
})
|
})
|
||||||
export class PdfViewerComponent {
|
export class PdfViewerComponent {
|
||||||
|
|
||||||
@ -41,11 +41,9 @@ export class PdfViewerComponent {
|
|||||||
|
|
||||||
pdfViewer: any;
|
pdfViewer: any;
|
||||||
|
|
||||||
currentScaleMode: string;
|
currentScaleMode: string = 'auto';
|
||||||
currentScale: number;
|
currentScale: number;
|
||||||
|
|
||||||
documentContainer: any;
|
|
||||||
|
|
||||||
MAX_AUTO_SCALE: number = 1.25;
|
MAX_AUTO_SCALE: number = 1.25;
|
||||||
|
|
||||||
ngOnChanges(changes) {
|
ngOnChanges(changes) {
|
||||||
@ -86,11 +84,11 @@ export class PdfViewerComponent {
|
|||||||
PDFJS.verbosity = 5;
|
PDFJS.verbosity = 5;
|
||||||
PDFJS.disableWorker = true;
|
PDFJS.disableWorker = true;
|
||||||
|
|
||||||
this.documentContainer = document.getElementById('viewer-pdf-container');
|
let documentContainer = document.getElementById('viewer-pdf-container');
|
||||||
let viewer: any = document.getElementById('viewer-viewerPdf');
|
let viewer: any = document.getElementById('viewer-viewerPdf');
|
||||||
|
|
||||||
this.pdfViewer = new PDFJS.PDFViewer({
|
this.pdfViewer = new PDFJS.PDFViewer({
|
||||||
container: this.documentContainer,
|
container: documentContainer,
|
||||||
viewer: viewer
|
viewer: viewer
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -105,43 +103,46 @@ export class PdfViewerComponent {
|
|||||||
scalePage(scaleMode) {
|
scalePage(scaleMode) {
|
||||||
this.currentScaleMode = scaleMode;
|
this.currentScaleMode = scaleMode;
|
||||||
|
|
||||||
let currentPage = this.pdfViewer._pages[this.pdfViewer._currentPageNumber];
|
if (this.pdfViewer) {
|
||||||
|
let documentContainer = document.getElementById('viewer-pdf-container');
|
||||||
|
let currentPage = this.pdfViewer._pages[this.pdfViewer._currentPageNumber];
|
||||||
|
|
||||||
let padding = 20;
|
let padding = 20;
|
||||||
let pageWidthScale = (this.documentContainer.clientWidth - padding) / currentPage.width * currentPage.scale;
|
let pageWidthScale = (documentContainer.clientWidth - padding) / currentPage.width * currentPage.scale;
|
||||||
let pageHeightScale = (this.documentContainer.clientHeight - padding) / currentPage.width * currentPage.scale;
|
let pageHeightScale = (documentContainer.clientHeight - padding) / currentPage.width * currentPage.scale;
|
||||||
|
|
||||||
let scale;
|
let scale;
|
||||||
|
|
||||||
switch (this.currentScaleMode) {
|
switch (this.currentScaleMode) {
|
||||||
case 'page-actual':
|
case 'page-actual':
|
||||||
scale = 1;
|
scale = 1;
|
||||||
break;
|
break;
|
||||||
case 'page-width':
|
case 'page-width':
|
||||||
scale = pageWidthScale;
|
scale = pageWidthScale;
|
||||||
break;
|
break;
|
||||||
case 'page-height':
|
case 'page-height':
|
||||||
scale = pageHeightScale;
|
scale = pageHeightScale;
|
||||||
break;
|
break;
|
||||||
case 'page-fit':
|
case 'page-fit':
|
||||||
scale = Math.min(pageWidthScale, pageHeightScale);
|
scale = Math.min(pageWidthScale, pageHeightScale);
|
||||||
break;
|
break;
|
||||||
case 'auto':
|
case 'auto':
|
||||||
let horizontalScale;
|
let horizontalScale;
|
||||||
if (this.isLandscape) {
|
if (this.isLandscape) {
|
||||||
horizontalScale = Math.min(pageHeightScale, pageWidthScale);
|
horizontalScale = Math.min(pageHeightScale, pageWidthScale);
|
||||||
} else {
|
} else {
|
||||||
horizontalScale = pageWidthScale;
|
horizontalScale = pageWidthScale;
|
||||||
}
|
}
|
||||||
scale = Math.min(this.MAX_AUTO_SCALE, horizontalScale);
|
scale = Math.min(this.MAX_AUTO_SCALE, horizontalScale);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
console.error('pdfViewSetScale: \'' + scaleMode + '\' is an unknown zoom value.');
|
console.error('pdfViewSetScale: \'' + scaleMode + '\' is an unknown zoom value.');
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setScaleUpdatePages(scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setScaleUpdatePages(scale);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -154,7 +155,6 @@ export class PdfViewerComponent {
|
|||||||
|
|
||||||
this.pdfViewer._pages.forEach(function (currentPage) {
|
this.pdfViewer._pages.forEach(function (currentPage) {
|
||||||
currentPage.update(newScale);
|
currentPage.update(newScale);
|
||||||
console.log(currentPage.viewport);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.pdfViewer.update();
|
this.pdfViewer.update();
|
||||||
@ -230,7 +230,7 @@ export class PdfViewerComponent {
|
|||||||
|
|
||||||
if (!isNaN(pageInput) && pageInput > 0 && pageInput <= this.totalPages) {
|
if (!isNaN(pageInput) && pageInput > 0 && pageInput <= this.totalPages) {
|
||||||
this.page = pageInput;
|
this.page = pageInput;
|
||||||
|
this.displayPage = this.page;
|
||||||
this.pdfViewer.currentPageNumber = this.page;
|
this.pdfViewer.currentPageNumber = this.page;
|
||||||
} else {
|
} else {
|
||||||
this.displayPage = this.page;
|
this.displayPage = this.page;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user