diff --git a/ng2-components/ng2-alfresco-viewer/package.json b/ng2-components/ng2-alfresco-viewer/package.json index 7e61691738..b77d502976 100644 --- a/ng2-components/ng2-alfresco-viewer/package.json +++ b/ng2-components/ng2-alfresco-viewer/package.json @@ -1,7 +1,7 @@ { "name": "ng2-alfresco-viewer", "description": "Alfresco documents viewer", - "version": "0.1.26", + "version": "0.1.27", "author": "Eugenio Romano", "scripts": { "clean": "rimraf dist node_modules typings", diff --git a/ng2-components/ng2-alfresco-viewer/src/viewer.component.ts b/ng2-components/ng2-alfresco-viewer/src/viewer.component.ts index 63dc15917d..4951422662 100644 --- a/ng2-components/ng2-alfresco-viewer/src/viewer.component.ts +++ b/ng2-components/ng2-alfresco-viewer/src/viewer.component.ts @@ -15,9 +15,10 @@ * limitations under the License. */ -import { Component, ElementRef, Input, Output, HostListener, EventEmitter } from '@angular/core'; +import { Component, ElementRef, Input, Output, HostListener, EventEmitter, Inject } from '@angular/core'; import { PdfViewerComponent } from './pdfViewer.component'; import { NotSupportedFormat } from './notSupportedFormat.component'; +import { DOCUMENT } from '@angular/platform-browser'; declare let __moduleName: string; @@ -54,12 +55,13 @@ export class ViewerComponent { extension: string; - constructor(private element: ElementRef) { + constructor(private element: ElementRef, @Inject(DOCUMENT) private document) { } ngOnChanges(changes) { if (this.showViewer) { this.hideOtherHeaderBar(); + this.blockOtherScrollBar(); if (!this.urlFile) { throw new Error('Attribute urlFile is required'); } @@ -78,6 +80,7 @@ export class ViewerComponent { * close the viewer */ close() { + this.unblockOtherScrollBar(); if (this.otherMenu) { this.otherMenu.hidden = false; } @@ -167,6 +170,32 @@ export class ViewerComponent { } } + /** + * Check if in the document there are scrollable main area and disable it + * + * @returns {boolean} + */ + private blockOtherScrollBar() { + let mainElements: any = document.getElementsByTagName('main'); + + for (let i = 0; i < mainElements.length; i++) { + mainElements[i].style.overflow = 'hidden'; + } + } + + /** + * Check if in the document there are scrollable main area and renable it + * + * @returns {boolean} + */ + private unblockOtherScrollBar() { + let mainElements: any = document.getElementsByTagName('main'); + + for (let i = 0; i < mainElements.length; i++) { + mainElements[i].style.overflow = ''; + } + } + /** * Check if the viewer is used inside and header element *