UNPKG

ngx-extended-pdf-viewer

Version:

Embedding PDF files in your Angular application. Highly configurable viewer including the toolbar, sidebar, and all the features you're used to.

43 lines 8.07 kB
import { Component, effect, Input } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "../../../pdf-notification-service"; import * as i2 from "../../pdf-shy-button/pdf-shy-button.component"; import * as i3 from "../../../responsive-visibility"; export class PdfZoomInComponent { showZoomButtons = true; disabled = true; PDFViewerApplication; eventListener = ({ source, scale }) => { const maxZoom = source.maxZoom; if (maxZoom) { this.disabled = scale >= maxZoom; } else { this.disabled = false; } }; constructor(notificationService) { effect(() => { this.PDFViewerApplication = notificationService.onPDFJSInitSignal(); if (this.PDFViewerApplication) { this.onPdfJsInit(); } }); } onPdfJsInit() { this.PDFViewerApplication?.eventBus.on('scalechanging', this.eventListener); } ngOnDestroy() { this.PDFViewerApplication?.eventBus.off('scalechanging', this.eventListener); this.PDFViewerApplication = undefined; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfZoomInComponent, deps: [{ token: i1.PDFNotificationService }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PdfZoomInComponent, selector: "pdf-zoom-in", inputs: { showZoomButtons: "showZoomButtons" }, ngImport: i0, template: "<pdf-shy-button\n primaryToolbarId=\"primaryZoomIn\"\n [cssClass]=\"showZoomButtons | responsiveCSSClass : 'always-visible'\"\n class=\"zoomIn\"\n title=\"Zoom In\"\n l10nId=\"pdfjs-zoom-in-button\"\n l10nLabel=\"pdfjs-zoom-in-button-label\"\n eventBusName=\"zoomin\"\n [order]=\"1600\"\n image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z' /></svg>\"\n [disabled]=\"disabled\"\n>\n</pdf-shy-button>\n", styles: ["button{margin-left:-2px!important;margin-right:-2px!important;padding:0}\n"], dependencies: [{ kind: "component", type: i2.PdfShyButtonComponent, selector: "pdf-shy-button", inputs: ["primaryToolbarId", "secondaryMenuId", "cssClass", "eventBusName", "l10nId", "l10nLabel", "title", "toggled", "disabled", "order", "action", "closeOnClick", "onlySecondaryMenu", "image"] }, { kind: "pipe", type: i3.ResponsiveCSSClassPipe, name: "responsiveCSSClass" }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfZoomInComponent, decorators: [{ type: Component, args: [{ selector: 'pdf-zoom-in', template: "<pdf-shy-button\n primaryToolbarId=\"primaryZoomIn\"\n [cssClass]=\"showZoomButtons | responsiveCSSClass : 'always-visible'\"\n class=\"zoomIn\"\n title=\"Zoom In\"\n l10nId=\"pdfjs-zoom-in-button\"\n l10nLabel=\"pdfjs-zoom-in-button-label\"\n eventBusName=\"zoomin\"\n [order]=\"1600\"\n image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z' /></svg>\"\n [disabled]=\"disabled\"\n>\n</pdf-shy-button>\n", styles: ["button{margin-left:-2px!important;margin-right:-2px!important;padding:0}\n"] }] }], ctorParameters: () => [{ type: i1.PDFNotificationService }], propDecorators: { showZoomButtons: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXpvb20taW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3BkZi16b29tLXRvb2xiYXIvcGRmLXpvb20taW4vcGRmLXpvb20taW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3BkZi16b29tLXRvb2xiYXIvcGRmLXpvb20taW4vcGRmLXpvb20taW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7OztBQVdwRSxNQUFNLE9BQU8sa0JBQWtCO0lBRXRCLGVBQWUsR0FBeUIsSUFBSSxDQUFDO0lBRTdDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsb0JBQW9CLENBQW9DO0lBRWhELGFBQWEsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBc0IsRUFBRSxFQUFFO1FBQ2hFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssSUFBSSxPQUFPLENBQUM7U0FDbEM7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsWUFBWSxtQkFBMkM7UUFDckQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0lBQ3hDLENBQUM7d0dBaENVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLG1HQ1gvQixraEJBYUE7OzRGREZhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxhQUFhOzJGQU1oQixlQUFlO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjYWxlQ2hhbmdpbmdFdmVudCB9IGZyb20gJy4uLy4uLy4uL2V2ZW50cy9zY2FsZS1jaGFuZ2luZy1ldmVudCc7XG5pbXBvcnQgeyBJUERGVmlld2VyQXBwbGljYXRpb24gfSBmcm9tICcuLi8uLi8uLi9vcHRpb25zL3BkZi12aWV3ZXItYXBwbGljYXRpb24nO1xuaW1wb3J0IHsgUERGTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3BkZi1ub3RpZmljYXRpb24tc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zaXZlVmlzaWJpbGl0eSB9IGZyb20gJy4uLy4uLy4uL3Jlc3BvbnNpdmUtdmlzaWJpbGl0eSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkZi16b29tLWluJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BkZi16b29tLWluLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGRmLXpvb20taW4uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQZGZab29tSW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1pvb21CdXR0b25zOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgcHVibGljIGRpc2FibGVkID0gdHJ1ZTtcbiAgUERGVmlld2VyQXBwbGljYXRpb246IElQREZWaWV3ZXJBcHBsaWNhdGlvbiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGV2ZW50TGlzdGVuZXIgPSAoeyBzb3VyY2UsIHNjYWxlIH06IFNjYWxlQ2hhbmdpbmdFdmVudCkgPT4ge1xuICAgIGNvbnN0IG1heFpvb20gPSBzb3VyY2UubWF4Wm9vbTtcbiAgICBpZiAobWF4Wm9vbSkge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHNjYWxlID49IG1heFpvb207XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3Iobm90aWZpY2F0aW9uU2VydmljZTogUERGTm90aWZpY2F0aW9uU2VydmljZSkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uID0gbm90aWZpY2F0aW9uU2VydmljZS5vblBERkpTSW5pdFNpZ25hbCgpO1xuICAgICAgaWYgKHRoaXMuUERGVmlld2VyQXBwbGljYXRpb24pIHtcbiAgICAgICAgdGhpcy5vblBkZkpzSW5pdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvblBkZkpzSW5pdCgpIHtcbiAgICB0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uPy5ldmVudEJ1cy5vbignc2NhbGVjaGFuZ2luZycsIHRoaXMuZXZlbnRMaXN0ZW5lcik7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5QREZWaWV3ZXJBcHBsaWNhdGlvbj8uZXZlbnRCdXMub2ZmKCdzY2FsZWNoYW5naW5nJywgdGhpcy5ldmVudExpc3RlbmVyKTtcbiAgICB0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uID0gdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8cGRmLXNoeS1idXR0b25cbiAgcHJpbWFyeVRvb2xiYXJJZD1cInByaW1hcnlab29tSW5cIlxuICBbY3NzQ2xhc3NdPVwic2hvd1pvb21CdXR0b25zIHwgcmVzcG9uc2l2ZUNTU0NsYXNzIDogJ2Fsd2F5cy12aXNpYmxlJ1wiXG4gIGNsYXNzPVwiem9vbUluXCJcbiAgdGl0bGU9XCJab29tIEluXCJcbiAgbDEwbklkPVwicGRmanMtem9vbS1pbi1idXR0b25cIlxuICBsMTBuTGFiZWw9XCJwZGZqcy16b29tLWluLWJ1dHRvbi1sYWJlbFwiXG4gIGV2ZW50QnVzTmFtZT1cInpvb21pblwiXG4gIFtvcmRlcl09XCIxNjAwXCJcbiAgaW1hZ2U9XCI8c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyB3aWR0aD0nMjRweCcgaGVpZ2h0PScyNHB4JyB2aWV3Qm94PScwIDAgMjQgMjQnPjxwYXRoIGZpbGw9J2N1cnJlbnRDb2xvcicgZD0nTTE5LDEzSDEzVjE5SDExVjEzSDVWMTFIMTFWNUgxM1YxMUgxOVYxM1onIC8+PC9zdmc+XCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbj5cbjwvcGRmLXNoeS1idXR0b24+XG4iXX0=