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.

48 lines 12.2 kB
import { Component, Input, effect } 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 PdfRotatePageComponent { changeDetectorRef; showRotateButton = true; disableRotate = true; clockwise = true; counterClockwise = true; PDFViewerApplication; constructor(notificationService, changeDetectorRef) { this.changeDetectorRef = changeDetectorRef; effect(() => { this.PDFViewerApplication = notificationService.onPDFJSInitSignal(); if (this.PDFViewerApplication) { this.onPdfJsInit(); } }); } rotateCW() { this.PDFViewerApplication?.eventBus.dispatch('rotatecw'); } rotateCCW() { this.PDFViewerApplication?.eventBus.dispatch('rotateccw'); } onPdfJsInit() { this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event)); } updateUIState(event) { this.disableRotate = event.pagesCount === 0; this.changeDetectorRef.markForCheck(); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfRotatePageComponent, deps: [{ token: i1.PDFNotificationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PdfRotatePageComponent, selector: "pdf-rotate-page", inputs: { showRotateButton: "showRotateButton", clockwise: "clockwise", counterClockwise: "counterClockwise" }, ngImport: i0, template: "@if (clockwise) {\n <pdf-shy-button\n [action]=\"rotateCW\"\n primaryToolbarId=\"primaryPageRotateCw\"\n class=\"rotateCw\"\n [cssClass]=\"showRotateButton | responsiveCSSClass : 'hiddenXLView'\"\n title=\"Rotate Clockwise\"\n l10nId=\"pdfjs-page-rotate-cw-button\"\n l10nLabel=\"pdfjs-page-rotate-cw-button-label\"\n [disabled]=\"disableRotate\"\n [order]=\"900\"\n [closeOnClick]=\"false\"\n image=\"<svg aria-hidden='true' focusable='false' 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}\n@if (counterClockwise) {\n <pdf-shy-button\n [action]=\"rotateCCW\"\n primaryToolbarId=\"primaryPageRotateCcw\"\n class=\"rotateCcw\"\n [cssClass]=\"showRotateButton | responsiveCSSClass : 'hiddenXLView'\"\n title=\"Rotate Counterclockwise\"\n l10nId=\"pdfjs-page-rotate-ccw-button\"\n l10nLabel=\"pdfjs-page-rotate-ccw-button-label\"\n [disabled]=\"disableRotate\"\n [order]=\"1000\"\n [closeOnClick]=\"false\"\n image=\"<svg aria-hidden='true' focusable='false' 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}\n", styles: [":host:focus{outline:none}\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: PdfRotatePageComponent, decorators: [{ type: Component, args: [{ selector: 'pdf-rotate-page', template: "@if (clockwise) {\n <pdf-shy-button\n [action]=\"rotateCW\"\n primaryToolbarId=\"primaryPageRotateCw\"\n class=\"rotateCw\"\n [cssClass]=\"showRotateButton | responsiveCSSClass : 'hiddenXLView'\"\n title=\"Rotate Clockwise\"\n l10nId=\"pdfjs-page-rotate-cw-button\"\n l10nLabel=\"pdfjs-page-rotate-cw-button-label\"\n [disabled]=\"disableRotate\"\n [order]=\"900\"\n [closeOnClick]=\"false\"\n image=\"<svg aria-hidden='true' focusable='false' 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}\n@if (counterClockwise) {\n <pdf-shy-button\n [action]=\"rotateCCW\"\n primaryToolbarId=\"primaryPageRotateCcw\"\n class=\"rotateCcw\"\n [cssClass]=\"showRotateButton | responsiveCSSClass : 'hiddenXLView'\"\n title=\"Rotate Counterclockwise\"\n l10nId=\"pdfjs-page-rotate-ccw-button\"\n l10nLabel=\"pdfjs-page-rotate-ccw-button-label\"\n [disabled]=\"disableRotate\"\n [order]=\"1000\"\n [closeOnClick]=\"false\"\n image=\"<svg aria-hidden='true' focusable='false' 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}\n", styles: [":host:focus{outline:none}\n"] }] }], ctorParameters: () => [{ type: i1.PDFNotificationService }, { type: i0.ChangeDetectorRef }], propDecorators: { showRotateButton: [{ type: Input }], clockwise: [{ type: Input }], counterClockwise: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXJvdGF0ZS1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtcm90YXRlLXBhZ2UvcGRmLXJvdGF0ZS1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtcm90YXRlLXBhZ2UvcGRmLXJvdGF0ZS1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVzVFLE1BQU0sT0FBTyxzQkFBc0I7SUFjZ0M7SUFaMUQsZ0JBQWdCLEdBQXlCLElBQUksQ0FBQztJQUU5QyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBR3JCLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFHakIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBRXZCLG9CQUFvQixDQUFvQztJQUVoRSxZQUFZLG1CQUEyQyxFQUFVLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25HLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNwRSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUF5QjtRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO3dHQXRDVSxzQkFBc0I7NEZBQXRCLHNCQUFzQix1S0NYbkMsMmpEQWdDQTs7NEZEckJhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxpQkFBaUI7MkhBTXBCLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFNQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXBkYXRlVUlTdGF0ZUV2ZW50IH0gZnJvbSAnLi4vLi4vZXZlbnRzL3VwZGF0ZS11aS1zdGF0ZS1ldmVudCc7XG5pbXBvcnQgeyBJUERGVmlld2VyQXBwbGljYXRpb24gfSBmcm9tICcuLi8uLi9vcHRpb25zL3BkZi12aWV3ZXItYXBwbGljYXRpb24nO1xuaW1wb3J0IHsgUmVzcG9uc2l2ZVZpc2liaWxpdHkgfSBmcm9tICcuLi8uLi9yZXNwb25zaXZlLXZpc2liaWxpdHknO1xuaW1wb3J0IHsgUERGTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vLi4vLi4vcGRmLW5vdGlmaWNhdGlvbi1zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRmLXJvdGF0ZS1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BkZi1yb3RhdGUtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BkZi1yb3RhdGUtcGFnZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBkZlJvdGF0ZVBhZ2VDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1JvdGF0ZUJ1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIHB1YmxpYyBkaXNhYmxlUm90YXRlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2xvY2t3aXNlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY291bnRlckNsb2Nrd2lzZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBQREZWaWV3ZXJBcHBsaWNhdGlvbjogSVBERlZpZXdlckFwcGxpY2F0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKG5vdGlmaWNhdGlvblNlcnZpY2U6IFBERk5vdGlmaWNhdGlvblNlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuUERGVmlld2VyQXBwbGljYXRpb24gPSBub3RpZmljYXRpb25TZXJ2aWNlLm9uUERGSlNJbml0U2lnbmFsKCk7XG4gICAgICBpZiAodGhpcy5QREZWaWV3ZXJBcHBsaWNhdGlvbikge1xuICAgICAgICB0aGlzLm9uUGRmSnNJbml0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcm90YXRlQ1coKTogdm9pZCB7XG4gICAgdGhpcy5QREZWaWV3ZXJBcHBsaWNhdGlvbj8uZXZlbnRCdXMuZGlzcGF0Y2goJ3JvdGF0ZWN3Jyk7XG4gIH1cblxuICBwdWJsaWMgcm90YXRlQ0NXKCk6IHZvaWQge1xuICAgIHRoaXMuUERGVmlld2VyQXBwbGljYXRpb24/LmV2ZW50QnVzLmRpc3BhdGNoKCdyb3RhdGVjY3cnKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBkZkpzSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uPy5ldmVudEJ1cy5vbigndXBkYXRldWlzdGF0ZScsIChldmVudCkgPT4gdGhpcy51cGRhdGVVSVN0YXRlKGV2ZW50KSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVUlTdGF0ZShldmVudDogVXBkYXRlVUlTdGF0ZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlUm90YXRlID0gZXZlbnQucGFnZXNDb3VudCA9PT0gMDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCJAaWYgKGNsb2Nrd2lzZSkge1xuICA8cGRmLXNoeS1idXR0b25cbiAgICBbYWN0aW9uXT1cInJvdGF0ZUNXXCJcbiAgICBwcmltYXJ5VG9vbGJhcklkPVwicHJpbWFyeVBhZ2VSb3RhdGVDd1wiXG4gICAgY2xhc3M9XCJyb3RhdGVDd1wiXG4gICAgW2Nzc0NsYXNzXT1cInNob3dSb3RhdGVCdXR0b24gfCByZXNwb25zaXZlQ1NTQ2xhc3MgOiAnaGlkZGVuWExWaWV3J1wiXG4gICAgdGl0bGU9XCJSb3RhdGUgQ2xvY2t3aXNlXCJcbiAgICBsMTBuSWQ9XCJwZGZqcy1wYWdlLXJvdGF0ZS1jdy1idXR0b25cIlxuICAgIGwxMG5MYWJlbD1cInBkZmpzLXBhZ2Utcm90YXRlLWN3LWJ1dHRvbi1sYWJlbFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVSb3RhdGVcIlxuICAgIFtvcmRlcl09XCI5MDBcIlxuICAgIFtjbG9zZU9uQ2xpY2tdPVwiZmFsc2VcIlxuICAgIGltYWdlPVwiPHN2ZyBhcmlhLWhpZGRlbj0ndHJ1ZScgZm9jdXNhYmxlPSdmYWxzZScgd2lkdGg9JzIzcHgnIGhlaWdodD0nMjNweCcgdmlld0JveD0nMCAwIDI0IDI0Jz48cGF0aCBmaWxsPSdjdXJyZW50Q29sb3InIGQ9J00xMiAzQzcuMDMgMyAzIDcuMDMgMyAxMlM3LjAzIDIxIDEyIDIxQzE0IDIxIDE1LjkyIDIwLjM0IDE3LjUgMTkuMTRMMTYuMDYgMTcuN0MxNC44NyAxOC41NCAxMy40NSAxOSAxMiAxOUM4LjEzIDE5IDUgMTUuODcgNSAxMlM4LjEzIDUgMTIgNSAxOSA4LjEzIDE5IDEySDE2TDIwIDE2TDI0IDEySDIxQzIxIDcuMDMgMTYuOTcgMyAxMiAzJy8+PC9zdmc+XCJcbiAgICA+XG4gIDwvcGRmLXNoeS1idXR0b24+XG59XG5AaWYgKGNvdW50ZXJDbG9ja3dpc2UpIHtcbiAgPHBkZi1zaHktYnV0dG9uXG4gICAgW2FjdGlvbl09XCJyb3RhdGVDQ1dcIlxuICAgIHByaW1hcnlUb29sYmFySWQ9XCJwcmltYXJ5UGFnZVJvdGF0ZUNjd1wiXG4gICAgY2xhc3M9XCJyb3RhdGVDY3dcIlxuICAgIFtjc3NDbGFzc109XCJzaG93Um90YXRlQnV0dG9uIHwgcmVzcG9uc2l2ZUNTU0NsYXNzIDogJ2hpZGRlblhMVmlldydcIlxuICAgIHRpdGxlPVwiUm90YXRlIENvdW50ZXJjbG9ja3dpc2VcIlxuICAgIGwxMG5JZD1cInBkZmpzLXBhZ2Utcm90YXRlLWNjdy1idXR0b25cIlxuICAgIGwxMG5MYWJlbD1cInBkZmpzLXBhZ2Utcm90YXRlLWNjdy1idXR0b24tbGFiZWxcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlUm90YXRlXCJcbiAgICBbb3JkZXJdPVwiMTAwMFwiXG4gICAgW2Nsb3NlT25DbGlja109XCJmYWxzZVwiXG4gICAgaW1hZ2U9XCI8c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyB3aWR0aD0nMjNweCcgaGVpZ2h0PScyM3B4JyB2aWV3Qm94PScwIDAgMjQgMjQnPjxwYXRoIGZpbGw9J2N1cnJlbnRDb2xvcicgZD0nTTEyIDNDNy4wMyAzIDMgNy4wMyAzIDEySDBMNCAxNkw4IDEySDVDNSA4LjEzIDguMTMgNSAxMiA1UzE5IDguMTMgMTkgMTIgMTUuODcgMTkgMTIgMTlDMTAuNTUgMTkgOS4xMyAxOC41NCA3Ljk0IDE3LjdMNi41IDE5LjE0QzguMDggMjAuMzQgMTAgMjEgMTIgMjFDMTYuOTcgMjEgMjEgMTYuOTcgMjEgMTJTMTYuOTcgMyAxMiAzJy8+PC9zdmc+XCJcbiAgICA+XG4gIDwvcGRmLXNoeS1idXR0b24+XG59XG4iXX0=