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.

49 lines 12.5 kB
import { Component, 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 "@angular/common"; import * as i4 from "../../responsive-visibility"; export class PdfRotatePageComponent { constructor(notificationService, changeDetectorRef) { this.notificationService = notificationService; this.changeDetectorRef = changeDetectorRef; this.showRotateButton = true; this.disableRotate = true; this.clockwise = true; this.counterClockwise = true; const subscription = this.notificationService.onPDFJSInit.subscribe(() => { this.onPdfJsInit(); subscription.unsubscribe(); }); } rotateCW() { const PDFViewerApplication = window.PDFViewerApplication; PDFViewerApplication.eventBus.dispatch('rotatecw'); } rotateCCW() { const PDFViewerApplication = window.PDFViewerApplication; PDFViewerApplication.eventBus.dispatch('rotateccw'); } onPdfJsInit() { const PDFViewerApplication = window.PDFViewerApplication; PDFViewerApplication.eventBus.on('updateuistate', (event) => this.updateUIState(event)); } updateUIState(event) { this.disableRotate = event.pagesCount === 0; this.changeDetectorRef.markForCheck(); } } PdfRotatePageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PdfRotatePageComponent, deps: [{ token: i1.PDFNotificationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); PdfRotatePageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PdfRotatePageComponent, selector: "pdf-rotate-page", inputs: { showRotateButton: "showRotateButton", clockwise: "clockwise", counterClockwise: "counterClockwise" }, ngImport: i0, template: "<pdf-shy-button\n *ngIf=\"clockwise\"\n [action]=\"rotateCW\"\n primaryToolbarId=\"primaryPageRotateCw\"\n class=\"rotateCw\"\n [cssClass]=\"showRotateButton | responsiveCSSClass : 'hiddenXLView'\"\n title=\"Rotate Clockwise\"\n l10nid=\"page_rotate_cw\"\n l10nLabel=\"page_rotate_cw_label\"\n [disabled]=\"disableRotate\"\n [order]=\"900\"\n [closeOnClick]=\"false\"\n image=\"<svg style='width: 23px; height: 23px' viewBox='0 0 24 24'><path fill='currentColor' d='M12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C14 21 15.92 20.34 17.5 19.14L16.06 17.7C14.87 18.54 13.45 19 12 19C8.13 19 5 15.87 5 12S8.13 5 12 5 19 8.13 19 12H16L20 16L24 12H21C21 7.03 16.97 3 12 3'/></svg>\"\n>\n</pdf-shy-button>\n<pdf-shy-button\n *ngIf=\"counterClockwise\"\n [action]=\"rotateCCW\"\n primaryToolbarId=\"primaryPageRotateCcw\"\n class=\"rotateCcw\"\n [cssClass]=\"showRotateButton | responsiveCSSClass : 'hiddenXLView'\"\n title=\"Rotate Counterclockwise\"\n l10n-id=\"page_rotate_ccw\"\n l10nLabel=\"page_rotate_ccw_label\"\n [disabled]=\"disableRotate\"\n [order]=\"1000\"\n [closeOnClick]=\"false\"\n image=\"<svg style='width: 23px; height: 23px' viewBox='0 0 24 24'><path fill='currentColor' d='M12 3C7.03 3 3 7.03 3 12H0L4 16L8 12H5C5 8.13 8.13 5 12 5S19 8.13 19 12 15.87 19 12 19C10.55 19 9.13 18.54 7.94 17.7L6.5 19.14C8.08 20.34 10 21 12 21C16.97 21 21 16.97 21 12S16.97 3 12 3'/></svg>\"\n>\n</pdf-shy-button>\n", styles: [":host:focus{outline:none}button:focus{outline:none}svg:focus{outline:none}button{padding:0;margin-top:0;margin-bottom:0}\n"], components: [{ type: i2.PdfShyButtonComponent, selector: "pdf-shy-button", inputs: ["primaryToolbarId", "secondaryMenuId", "cssClass", "eventBusName", "l10nId", "l10nLabel", "title", "toggled", "disabled", "order", "action", "closeOnClick", "onlySecondaryMenu", "image"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "responsiveCSSClass": i4.ResponsiveCSSClassPipe } }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PdfRotatePageComponent, decorators: [{ type: Component, args: [{ selector: 'pdf-rotate-page', template: "<pdf-shy-button\n *ngIf=\"clockwise\"\n [action]=\"rotateCW\"\n primaryToolbarId=\"primaryPageRotateCw\"\n class=\"rotateCw\"\n [cssClass]=\"showRotateButton | responsiveCSSClass : 'hiddenXLView'\"\n title=\"Rotate Clockwise\"\n l10nid=\"page_rotate_cw\"\n l10nLabel=\"page_rotate_cw_label\"\n [disabled]=\"disableRotate\"\n [order]=\"900\"\n [closeOnClick]=\"false\"\n image=\"<svg style='width: 23px; height: 23px' viewBox='0 0 24 24'><path fill='currentColor' d='M12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C14 21 15.92 20.34 17.5 19.14L16.06 17.7C14.87 18.54 13.45 19 12 19C8.13 19 5 15.87 5 12S8.13 5 12 5 19 8.13 19 12H16L20 16L24 12H21C21 7.03 16.97 3 12 3'/></svg>\"\n>\n</pdf-shy-button>\n<pdf-shy-button\n *ngIf=\"counterClockwise\"\n [action]=\"rotateCCW\"\n primaryToolbarId=\"primaryPageRotateCcw\"\n class=\"rotateCcw\"\n [cssClass]=\"showRotateButton | responsiveCSSClass : 'hiddenXLView'\"\n title=\"Rotate Counterclockwise\"\n l10n-id=\"page_rotate_ccw\"\n l10nLabel=\"page_rotate_ccw_label\"\n [disabled]=\"disableRotate\"\n [order]=\"1000\"\n [closeOnClick]=\"false\"\n image=\"<svg style='width: 23px; height: 23px' viewBox='0 0 24 24'><path fill='currentColor' d='M12 3C7.03 3 3 7.03 3 12H0L4 16L8 12H5C5 8.13 8.13 5 12 5S19 8.13 19 12 15.87 19 12 19C10.55 19 9.13 18.54 7.94 17.7L6.5 19.14C8.08 20.34 10 21 12 21C16.97 21 21 16.97 21 12S16.97 3 12 3'/></svg>\"\n>\n</pdf-shy-button>\n", styles: [":host:focus{outline:none}button:focus{outline:none}svg:focus{outline:none}button{padding:0;margin-top:0;margin-bottom:0}\n"] }] }], ctorParameters: function () { return [{ type: i1.PDFNotificationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { showRotateButton: [{ type: Input }], clockwise: [{ type: Input }], counterClockwise: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXJvdGF0ZS1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtcm90YXRlLXBhZ2UvcGRmLXJvdGF0ZS1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtcm90YXRlLXBhZ2UvcGRmLXJvdGF0ZS1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBV3BFLE1BQU0sT0FBTyxzQkFBc0I7SUFZakMsWUFBb0IsbUJBQTJDLEVBQVUsaUJBQW9DO1FBQXpGLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBVnRHLHFCQUFnQixHQUF5QixJQUFJLENBQUM7UUFFOUMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFHckIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUdqQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFHN0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUTtRQUNiLE1BQU0sb0JBQW9CLEdBQTJCLE1BQWMsQ0FBQyxvQkFBb0IsQ0FBQztRQUN6RixvQkFBb0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxTQUFTO1FBQ2QsTUFBTSxvQkFBb0IsR0FBMkIsTUFBYyxDQUFDLG9CQUFvQixDQUFDO1FBQ3pGLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsTUFBTSxvQkFBb0IsR0FBMkIsTUFBYyxDQUFDLG9CQUFvQixDQUFDO1FBQ3pGLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUF5QjtRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzttSEFyQ1Usc0JBQXNCO3VHQUF0QixzQkFBc0IsdUtDWG5DLGs1Q0E4QkE7MkZEbkJhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxpQkFBaUI7NklBTXBCLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFNQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVwZGF0ZVVJU3RhdGVFdmVudCB9IGZyb20gJy4uLy4uL2V2ZW50cy91cGRhdGUtdWktc3RhdGUtZXZlbnQnO1xuaW1wb3J0IHsgSVBERlZpZXdlckFwcGxpY2F0aW9uIH0gZnJvbSAnLi4vLi4vb3B0aW9ucy9wZGYtdmlld2VyLWFwcGxpY2F0aW9uJztcbmltcG9ydCB7IFJlc3BvbnNpdmVWaXNpYmlsaXR5IH0gZnJvbSAnLi4vLi4vcmVzcG9uc2l2ZS12aXNpYmlsaXR5JztcbmltcG9ydCB7IFBERk5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3BkZi1ub3RpZmljYXRpb24tc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkZi1yb3RhdGUtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGYtcm90YXRlLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wZGYtcm90YXRlLXBhZ2UuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQZGZSb3RhdGVQYWdlQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIHNob3dSb3RhdGVCdXR0b246IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBwdWJsaWMgZGlzYWJsZVJvdGF0ZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNsb2Nrd2lzZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvdW50ZXJDbG9ja3dpc2UgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogUERGTm90aWZpY2F0aW9uU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uub25QREZKU0luaXQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub25QZGZKc0luaXQoKTtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJvdGF0ZUNXKCk6IHZvaWQge1xuICAgIGNvbnN0IFBERlZpZXdlckFwcGxpY2F0aW9uOiBJUERGVmlld2VyQXBwbGljYXRpb24gPSAod2luZG93IGFzIGFueSkuUERGVmlld2VyQXBwbGljYXRpb247XG4gICAgUERGVmlld2VyQXBwbGljYXRpb24uZXZlbnRCdXMuZGlzcGF0Y2goJ3JvdGF0ZWN3Jyk7XG4gIH1cblxuICBwdWJsaWMgcm90YXRlQ0NXKCk6IHZvaWQge1xuICAgIGNvbnN0IFBERlZpZXdlckFwcGxpY2F0aW9uOiBJUERGVmlld2VyQXBwbGljYXRpb24gPSAod2luZG93IGFzIGFueSkuUERGVmlld2VyQXBwbGljYXRpb247XG4gICAgUERGVmlld2VyQXBwbGljYXRpb24uZXZlbnRCdXMuZGlzcGF0Y2goJ3JvdGF0ZWNjdycpO1xuICB9XG5cbiAgcHVibGljIG9uUGRmSnNJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IFBERlZpZXdlckFwcGxpY2F0aW9uOiBJUERGVmlld2VyQXBwbGljYXRpb24gPSAod2luZG93IGFzIGFueSkuUERGVmlld2VyQXBwbGljYXRpb247XG4gICAgUERGVmlld2VyQXBwbGljYXRpb24uZXZlbnRCdXMub24oJ3VwZGF0ZXVpc3RhdGUnLCAoZXZlbnQpID0+IHRoaXMudXBkYXRlVUlTdGF0ZShldmVudCkpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVVJU3RhdGUoZXZlbnQ6IFVwZGF0ZVVJU3RhdGVFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZVJvdGF0ZSA9IGV2ZW50LnBhZ2VzQ291bnQgPT09IDA7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPHBkZi1zaHktYnV0dG9uXG4gICpuZ0lmPVwiY2xvY2t3aXNlXCJcbiAgW2FjdGlvbl09XCJyb3RhdGVDV1wiXG4gIHByaW1hcnlUb29sYmFySWQ9XCJwcmltYXJ5UGFnZVJvdGF0ZUN3XCJcbiAgY2xhc3M9XCJyb3RhdGVDd1wiXG4gIFtjc3NDbGFzc109XCJzaG93Um90YXRlQnV0dG9uIHwgcmVzcG9uc2l2ZUNTU0NsYXNzIDogJ2hpZGRlblhMVmlldydcIlxuICB0aXRsZT1cIlJvdGF0ZSBDbG9ja3dpc2VcIlxuICBsMTBuaWQ9XCJwYWdlX3JvdGF0ZV9jd1wiXG4gIGwxMG5MYWJlbD1cInBhZ2Vfcm90YXRlX2N3X2xhYmVsXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVSb3RhdGVcIlxuICBbb3JkZXJdPVwiOTAwXCJcbiAgW2Nsb3NlT25DbGlja109XCJmYWxzZVwiXG4gIGltYWdlPVwiPHN2ZyBzdHlsZT0nd2lkdGg6IDIzcHg7IGhlaWdodDogMjNweCcgdmlld0JveD0nMCAwIDI0IDI0Jz48cGF0aCBmaWxsPSdjdXJyZW50Q29sb3InIGQ9J00xMiAzQzcuMDMgMyAzIDcuMDMgMyAxMlM3LjAzIDIxIDEyIDIxQzE0IDIxIDE1LjkyIDIwLjM0IDE3LjUgMTkuMTRMMTYuMDYgMTcuN0MxNC44NyAxOC41NCAxMy40NSAxOSAxMiAxOUM4LjEzIDE5IDUgMTUuODcgNSAxMlM4LjEzIDUgMTIgNSAxOSA4LjEzIDE5IDEySDE2TDIwIDE2TDI0IDEySDIxQzIxIDcuMDMgMTYuOTcgMyAxMiAzJy8+PC9zdmc+XCJcbj5cbjwvcGRmLXNoeS1idXR0b24+XG48cGRmLXNoeS1idXR0b25cbiAgKm5nSWY9XCJjb3VudGVyQ2xvY2t3aXNlXCJcbiAgW2FjdGlvbl09XCJyb3RhdGVDQ1dcIlxuICBwcmltYXJ5VG9vbGJhcklkPVwicHJpbWFyeVBhZ2VSb3RhdGVDY3dcIlxuICBjbGFzcz1cInJvdGF0ZUNjd1wiXG4gIFtjc3NDbGFzc109XCJzaG93Um90YXRlQnV0dG9uIHwgcmVzcG9uc2l2ZUNTU0NsYXNzIDogJ2hpZGRlblhMVmlldydcIlxuICB0aXRsZT1cIlJvdGF0ZSBDb3VudGVyY2xvY2t3aXNlXCJcbiAgbDEwbi1pZD1cInBhZ2Vfcm90YXRlX2Njd1wiXG4gIGwxMG5MYWJlbD1cInBhZ2Vfcm90YXRlX2Njd19sYWJlbFwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlUm90YXRlXCJcbiAgW29yZGVyXT1cIjEwMDBcIlxuICBbY2xvc2VPbkNsaWNrXT1cImZhbHNlXCJcbiAgaW1hZ2U9XCI8c3ZnIHN0eWxlPSd3aWR0aDogMjNweDsgaGVpZ2h0OiAyM3B4JyB2aWV3Qm94PScwIDAgMjQgMjQnPjxwYXRoIGZpbGw9J2N1cnJlbnRDb2xvcicgZD0nTTEyIDNDNy4wMyAzIDMgNy4wMyAzIDEySDBMNCAxNkw4IDEySDVDNSA4LjEzIDguMTMgNSAxMiA1UzE5IDguMTMgMTkgMTIgMTUuODcgMTkgMTIgMTlDMTAuNTUgMTkgOS4xMyAxOC41NCA3Ljk0IDE3LjdMNi41IDE5LjE0QzguMDggMjAuMzQgMTAgMjEgMTIgMjFDMTYuOTcgMjEgMjEgMTYuOTcgMjEgMTJTMTYuOTcgMyAxMiAzJy8+PC9zdmc+XCJcbj5cbjwvcGRmLXNoeS1idXR0b24+XG4iXX0=