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.03 kB
JavaScript
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 PdfZoomOutComponent {
showZoomButtons = true;
disabled = true;
PDFViewerApplication;
eventListener = ({ source, scale }) => {
const minZoom = source.minZoom;
if (minZoom) {
this.disabled = scale <= minZoom;
}
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: PdfZoomOutComponent, deps: [{ token: i1.PDFNotificationService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PdfZoomOutComponent, selector: "pdf-zoom-out", inputs: { showZoomButtons: "showZoomButtons" }, ngImport: i0, template: "<pdf-shy-button\n primaryToolbarId=\"primaryZoomOut\"\n class=\"zoomOut\"\n title=\"Zoom Out\"\n l10nId=\"pdfjs-zoom-out-button\"\n l10nLabel=\"pdfjs-zoom-out-button-label\"\n eventBusName=\"zoomout\"\n [cssClass]=\"showZoomButtons | responsiveCSSClass : 'always-visible'\"\n [order]=\"1500\"\n image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M19,13H5V11H19V13Z' /></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: PdfZoomOutComponent, decorators: [{
type: Component,
args: [{ selector: 'pdf-zoom-out', template: "<pdf-shy-button\n primaryToolbarId=\"primaryZoomOut\"\n class=\"zoomOut\"\n title=\"Zoom Out\"\n l10nId=\"pdfjs-zoom-out-button\"\n l10nLabel=\"pdfjs-zoom-out-button-label\"\n eventBusName=\"zoomout\"\n [cssClass]=\"showZoomButtons | responsiveCSSClass : 'always-visible'\"\n [order]=\"1500\"\n image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M19,13H5V11H19V13Z' /></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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXpvb20tb3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtem9vbS10b29sYmFyL3BkZi16b29tLW91dC9wZGYtem9vbS1vdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3BkZi16b29tLXRvb2xiYXIvcGRmLXpvb20tb3V0L3BkZi16b29tLW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7Ozs7O0FBV3BFLE1BQU0sT0FBTyxtQkFBbUI7SUFFdkIsZUFBZSxHQUF5QixJQUFJLENBQUM7SUFFN0MsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixvQkFBb0IsQ0FBb0M7SUFFaEQsYUFBYSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFzQixFQUFFLEVBQUU7UUFDaEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxJQUFJLE9BQU8sQ0FBQztTQUNsQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDLENBQUM7SUFFRixZQUFZLG1CQUEyQztRQUNyRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDcEUsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUM7SUFDeEMsQ0FBQzt3R0FoQ1UsbUJBQW1COzRGQUFuQixtQkFBbUIsb0dDWGhDLGlnQkFhQTs7NEZERmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGNBQWM7MkZBTWpCLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2NhbGVDaGFuZ2luZ0V2ZW50IH0gZnJvbSAnLi4vLi4vLi4vZXZlbnRzL3NjYWxlLWNoYW5naW5nLWV2ZW50JztcbmltcG9ydCB7IElQREZWaWV3ZXJBcHBsaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL29wdGlvbnMvcGRmLXZpZXdlci1hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBQREZOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcGRmLW5vdGlmaWNhdGlvbi1zZXJ2aWNlJztcbmltcG9ydCB7IFJlc3BvbnNpdmVWaXNpYmlsaXR5IH0gZnJvbSAnLi4vLi4vLi4vcmVzcG9uc2l2ZS12aXNpYmlsaXR5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRmLXpvb20tb3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BkZi16b29tLW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BkZi16b29tLW91dC5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBkZlpvb21PdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1pvb21CdXR0b25zOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgcHVibGljIGRpc2FibGVkID0gdHJ1ZTtcbiAgUERGVmlld2VyQXBwbGljYXRpb246IElQREZWaWV3ZXJBcHBsaWNhdGlvbiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGV2ZW50TGlzdGVuZXIgPSAoeyBzb3VyY2UsIHNjYWxlIH06IFNjYWxlQ2hhbmdpbmdFdmVudCkgPT4ge1xuICAgIGNvbnN0IG1pblpvb20gPSBzb3VyY2UubWluWm9vbTtcbiAgICBpZiAobWluWm9vbSkge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHNjYWxlIDw9IG1pblpvb207XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3Iobm90aWZpY2F0aW9uU2VydmljZTogUERGTm90aWZpY2F0aW9uU2VydmljZSkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uID0gbm90aWZpY2F0aW9uU2VydmljZS5vblBERkpTSW5pdFNpZ25hbCgpO1xuICAgICAgaWYgKHRoaXMuUERGVmlld2VyQXBwbGljYXRpb24pIHtcbiAgICAgICAgdGhpcy5vblBkZkpzSW5pdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvblBkZkpzSW5pdCgpIHtcbiAgICB0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uPy5ldmVudEJ1cy5vbignc2NhbGVjaGFuZ2luZycsIHRoaXMuZXZlbnRMaXN0ZW5lcik7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5QREZWaWV3ZXJBcHBsaWNhdGlvbj8uZXZlbnRCdXMub2ZmKCdzY2FsZWNoYW5naW5nJywgdGhpcy5ldmVudExpc3RlbmVyKTtcbiAgICB0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uID0gdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8cGRmLXNoeS1idXR0b25cbiAgcHJpbWFyeVRvb2xiYXJJZD1cInByaW1hcnlab29tT3V0XCJcbiAgY2xhc3M9XCJ6b29tT3V0XCJcbiAgdGl0bGU9XCJab29tIE91dFwiXG4gIGwxMG5JZD1cInBkZmpzLXpvb20tb3V0LWJ1dHRvblwiXG4gIGwxMG5MYWJlbD1cInBkZmpzLXpvb20tb3V0LWJ1dHRvbi1sYWJlbFwiXG4gIGV2ZW50QnVzTmFtZT1cInpvb21vdXRcIlxuICBbY3NzQ2xhc3NdPVwic2hvd1pvb21CdXR0b25zIHwgcmVzcG9uc2l2ZUNTU0NsYXNzIDogJ2Fsd2F5cy12aXNpYmxlJ1wiXG4gIFtvcmRlcl09XCIxNTAwXCJcbiAgaW1hZ2U9XCI8c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyB3aWR0aD0nMjRweCcgaGVpZ2h0PScyNHB4JyB2aWV3Qm94PScwIDAgMjQgMjQnPjxwYXRoIGZpbGw9J2N1cnJlbnRDb2xvcicgZD0nTTE5LDEzSDVWMTFIMTlWMTNaJyAvPjwvc3ZnPlwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4+XG48L3BkZi1zaHktYnV0dG9uPlxuIl19