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.

44 lines 10.1 kB
import { Component, Input, ViewEncapsulation, 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 PdfRotatePageCcwComponent { notificationService; changeDetectorRef; showRotateCcwButton = true; disableRotate = true; counterClockwise = true; PDFViewerApplication; constructor(notificationService, changeDetectorRef) { this.notificationService = notificationService; this.changeDetectorRef = changeDetectorRef; effect(() => { this.PDFViewerApplication = notificationService.onPDFJSInitSignal(); if (this.PDFViewerApplication) { this.onPdfJsInit(); } }); } 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: PdfRotatePageCcwComponent, deps: [{ token: i1.PDFNotificationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PdfRotatePageCcwComponent, selector: "pdf-rotate-page-ccw", inputs: { showRotateCcwButton: "showRotateCcwButton", counterClockwise: "counterClockwise" }, ngImport: i0, template: "@if (counterClockwise) {\n <pdf-shy-button\n [action]=\"rotateCCW\"\n primaryToolbarId=\"primaryPageRotateCcw\"\n class=\"rotateCcw\"\n [cssClass]=\"showRotateCcwButton | 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' class='width-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}ngx-extended-pdf-viewer pdf-rotate-page-ccw button:focus{outline:none}ngx-extended-pdf-viewer pdf-rotate-page-ccw svg:focus{outline:none}ngx-extended-pdf-viewer pdf-rotate-page-ccw button{padding:0;margin-top:0;margin-bottom:0}ngx-extended-pdf-viewer pdf-rotate-page-ccw .width-height-23px{width:23px;height:23px}\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" }], encapsulation: i0.ViewEncapsulation.None }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfRotatePageCcwComponent, decorators: [{ type: Component, args: [{ selector: 'pdf-rotate-page-ccw', encapsulation: ViewEncapsulation.None, template: "@if (counterClockwise) {\n <pdf-shy-button\n [action]=\"rotateCCW\"\n primaryToolbarId=\"primaryPageRotateCcw\"\n class=\"rotateCcw\"\n [cssClass]=\"showRotateCcwButton | 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' class='width-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}ngx-extended-pdf-viewer pdf-rotate-page-ccw button:focus{outline:none}ngx-extended-pdf-viewer pdf-rotate-page-ccw svg:focus{outline:none}ngx-extended-pdf-viewer pdf-rotate-page-ccw button{padding:0;margin-top:0;margin-bottom:0}ngx-extended-pdf-viewer pdf-rotate-page-ccw .width-height-23px{width:23px;height:23px}\n"] }] }], ctorParameters: () => [{ type: i1.PDFNotificationService }, { type: i0.ChangeDetectorRef }], propDecorators: { showRotateCcwButton: [{ type: Input }], counterClockwise: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXJvdGF0ZS1wYWdlLWNjdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlci9zcmMvbGliL3Rvb2xiYXIvcGRmLXJvdGF0ZS1wYWdlLWNjdy9wZGYtcm90YXRlLXBhZ2UtY2N3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtcm90YXRlLXBhZ2UtY2N3L3BkZi1yb3RhdGUtcGFnZS1jY3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFZL0YsTUFBTSxPQUFPLHlCQUF5QjtJQVdoQjtJQUFxRDtJQVRsRSxtQkFBbUIsR0FBeUIsSUFBSSxDQUFDO0lBRWpELGFBQWEsR0FBRyxJQUFJLENBQUM7SUFHckIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBRXZCLG9CQUFvQixDQUFvQztJQUVoRSxZQUFvQixtQkFBMkMsRUFBVSxpQkFBb0M7UUFBekYsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDM0csTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUF5QjtRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO3dHQS9CVSx5QkFBeUI7NEZBQXpCLHlCQUF5Qix5SkNadEMsd3lCQWdCQTs7NEZESmEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHFCQUFxQixpQkFHaEIsaUJBQWlCLENBQUMsSUFBSTsySEFJOUIsbUJBQW1CO3NCQUR6QixLQUFLO2dCQU1DLGdCQUFnQjtzQkFEdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgZWZmZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVcGRhdGVVSVN0YXRlRXZlbnQgfSBmcm9tICcuLi8uLi9ldmVudHMvdXBkYXRlLXVpLXN0YXRlLWV2ZW50JztcbmltcG9ydCB7IElQREZWaWV3ZXJBcHBsaWNhdGlvbiB9IGZyb20gJy4uLy4uL29wdGlvbnMvcGRmLXZpZXdlci1hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBQREZOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcGRmLW5vdGlmaWNhdGlvbi1zZXJ2aWNlJztcbmltcG9ydCB7IFJlc3BvbnNpdmVWaXNpYmlsaXR5IH0gZnJvbSAnLi4vLi4vcmVzcG9uc2l2ZS12aXNpYmlsaXR5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRmLXJvdGF0ZS1wYWdlLWNjdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGYtcm90YXRlLXBhZ2UtY2N3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGRmLXJvdGF0ZS1wYWdlLWNjdy5jb21wb25lbnQuY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFBkZlJvdGF0ZVBhZ2VDY3dDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1JvdGF0ZUNjd0J1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIHB1YmxpYyBkaXNhYmxlUm90YXRlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY291bnRlckNsb2Nrd2lzZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBQREZWaWV3ZXJBcHBsaWNhdGlvbjogSVBERlZpZXdlckFwcGxpY2F0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogUERGTm90aWZpY2F0aW9uU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5QREZWaWV3ZXJBcHBsaWNhdGlvbiA9IG5vdGlmaWNhdGlvblNlcnZpY2Uub25QREZKU0luaXRTaWduYWwoKTtcbiAgICAgIGlmICh0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uKSB7XG4gICAgICAgIHRoaXMub25QZGZKc0luaXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByb3RhdGVDQ1coKTogdm9pZCB7XG4gICAgdGhpcy5QREZWaWV3ZXJBcHBsaWNhdGlvbj8uZXZlbnRCdXMuZGlzcGF0Y2goJ3JvdGF0ZWNjdycpO1xuICB9XG5cbiAgcHVibGljIG9uUGRmSnNJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuUERGVmlld2VyQXBwbGljYXRpb24/LmV2ZW50QnVzLm9uKCd1cGRhdGV1aXN0YXRlJywgKGV2ZW50KSA9PiB0aGlzLnVwZGF0ZVVJU3RhdGUoZXZlbnQpKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVVSVN0YXRlKGV2ZW50OiBVcGRhdGVVSVN0YXRlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVSb3RhdGUgPSBldmVudC5wYWdlc0NvdW50ID09PSAwO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIkBpZiAoY291bnRlckNsb2Nrd2lzZSkge1xuICA8cGRmLXNoeS1idXR0b25cbiAgICBbYWN0aW9uXT1cInJvdGF0ZUNDV1wiXG4gICAgcHJpbWFyeVRvb2xiYXJJZD1cInByaW1hcnlQYWdlUm90YXRlQ2N3XCJcbiAgICBjbGFzcz1cInJvdGF0ZUNjd1wiXG4gICAgW2Nzc0NsYXNzXT1cInNob3dSb3RhdGVDY3dCdXR0b24gfCByZXNwb25zaXZlQ1NTQ2xhc3MgOiAnaGlkZGVuWExWaWV3J1wiXG4gICAgdGl0bGU9XCJSb3RhdGUgQ291bnRlcmNsb2Nrd2lzZVwiXG4gICAgbDEwbklkPVwicGRmanMtcGFnZS1yb3RhdGUtY2N3LWJ1dHRvblwiXG4gICAgbDEwbkxhYmVsPVwicGRmanMtcGFnZS1yb3RhdGUtY2N3LWJ1dHRvbi1sYWJlbFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVSb3RhdGVcIlxuICAgIFtvcmRlcl09XCIxMDAwXCJcbiAgICBbY2xvc2VPbkNsaWNrXT1cImZhbHNlXCJcbiAgICBpbWFnZT1cIjxzdmcgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnIGNsYXNzPSd3aWR0aC1oZWlnaHQtMjNweCcgdmlld0JveD0nMCAwIDI0IDI0Jz48cGF0aCBmaWxsPSdjdXJyZW50Q29sb3InIGQ9J00xMiAzQzcuMDMgMyAzIDcuMDMgMyAxMkgwTDQgMTZMOCAxMkg1QzUgOC4xMyA4LjEzIDUgMTIgNVMxOSA4LjEzIDE5IDEyIDE1Ljg3IDE5IDEyIDE5QzEwLjU1IDE5IDkuMTMgMTguNTQgNy45NCAxNy43TDYuNSAxOS4xNEM4LjA4IDIwLjM0IDEwIDIxIDEyIDIxQzE2Ljk3IDIxIDIxIDE2Ljk3IDIxIDEyUzE2Ljk3IDMgMTIgMycvPjwvc3ZnPlwiXG4gICAgPlxuICA8L3BkZi1zaHktYnV0dG9uPlxufVxuIl19