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.
41 lines • 8.46 kB
JavaScript
import { Component, effect, EventEmitter, Input, Output } 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 PdfToggleSidebarComponent {
notificationService;
show = true;
sidebarVisible = false;
showChange = new EventEmitter();
onClick;
PDFViewerApplication;
constructor(notificationService) {
this.notificationService = notificationService;
const emitter = this.showChange;
effect(() => {
this.PDFViewerApplication = notificationService.onPDFJSInitSignal();
});
this.onClick = () => {
const newVisibility = !this.PDFViewerApplication?.pdfSidebar.isOpen;
emitter.emit(newVisibility);
this.PDFViewerApplication?.eventBus.dispatch('toggleSidebar', { visible: newVisibility });
};
}
ngOnDestroy() {
this.onClick = undefined;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfToggleSidebarComponent, deps: [{ token: i1.PDFNotificationService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PdfToggleSidebarComponent, selector: "pdf-toggle-sidebar", inputs: { show: "show", sidebarVisible: "sidebarVisible" }, outputs: { showChange: "showChange" }, ngImport: i0, template: "<pdf-shy-button\n title=\"Toggle Sidebar\"\n primaryToolbarId=\"primarySidebarToggle\"\n [cssClass]=\"show | responsiveCSSClass : 'always-visible'\"\n [toggled]=\"sidebarVisible === true\"\n l10nId=\"pdfjs-toggle-sidebar-button\"\n l10nLabel=\"pdfjs-toggle-sidebar-button-label\"\n [order]=\"4500\"\n [closeOnClick]=\"true\"\n [action]=\"onClick\"\n image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'> <path fill='currentColor' d='M3,9H17V7H3V9M3,13H17V11H3V13M3,17H17V15H3V17M19,17H21V15H19V17M19,7V9H21V7H19M19,13H21V11H19V13Z' /> </svg>\"\n>\n</pdf-shy-button>\n", styles: [":host:focus{outline:none}button:focus{outline:none}svg:focus{outline:none}button#sidebarToggle{height:24px;width:24px;margin-right:5px!important}button{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: PdfToggleSidebarComponent, decorators: [{
type: Component,
args: [{ selector: 'pdf-toggle-sidebar', template: "<pdf-shy-button\n title=\"Toggle Sidebar\"\n primaryToolbarId=\"primarySidebarToggle\"\n [cssClass]=\"show | responsiveCSSClass : 'always-visible'\"\n [toggled]=\"sidebarVisible === true\"\n l10nId=\"pdfjs-toggle-sidebar-button\"\n l10nLabel=\"pdfjs-toggle-sidebar-button-label\"\n [order]=\"4500\"\n [closeOnClick]=\"true\"\n [action]=\"onClick\"\n image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'> <path fill='currentColor' d='M3,9H17V7H3V9M3,13H17V11H3V13M3,17H17V15H3V17M19,17H21V15H19V17M19,7V9H21V7H19M19,13H21V11H19V13Z' /> </svg>\"\n>\n</pdf-shy-button>\n", styles: [":host:focus{outline:none}button:focus{outline:none}svg:focus{outline:none}button#sidebarToggle{height:24px;width:24px;margin-right:5px!important}button{padding:0}\n"] }]
}], ctorParameters: () => [{ type: i1.PDFNotificationService }], propDecorators: { show: [{
type: Input
}], sidebarVisible: [{
type: Input
}], showChange: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXRvZ2dsZS1zaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtdG9nZ2xlLXNpZGViYXIvcGRmLXRvZ2dsZS1zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtdG9nZ2xlLXNpZGViYXIvcGRmLXRvZ2dsZS1zaWRlYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVUxRixNQUFNLE9BQU8seUJBQXlCO0lBY2pCO0lBWlosSUFBSSxHQUF5QixJQUFJLENBQUM7SUFHbEMsY0FBYyxHQUF3QixLQUFLLENBQUM7SUFHNUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFekMsT0FBTyxDQUFjO0lBRXBCLG9CQUFvQixDQUFvQztJQUVoRSxZQUFtQixtQkFBMkM7UUFBM0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDcEUsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUM1RixDQUFDLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUMzQixDQUFDO3dHQTVCVSx5QkFBeUI7NEZBQXpCLHlCQUF5Qiw2SkNWdEMsK21CQWFBOzs0RkRIYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usb0JBQW9COzJGQU12QixJQUFJO3NCQURWLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUERGVmlld2VyQXBwbGljYXRpb24gfSBmcm9tICcuLi8uLi9vcHRpb25zL3BkZi12aWV3ZXItYXBwbGljYXRpb24nO1xuaW1wb3J0IHsgUERGTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3BkZi1ub3RpZmljYXRpb24tc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zaXZlVmlzaWJpbGl0eSB9IGZyb20gJy4uLy4uL3Jlc3BvbnNpdmUtdmlzaWJpbGl0eSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkZi10b2dnbGUtc2lkZWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGYtdG9nZ2xlLXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wZGYtdG9nZ2xlLXNpZGViYXIuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQZGZUb2dnbGVTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHNob3c6IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2lkZWJhclZpc2libGU6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNob3dDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgUERGVmlld2VyQXBwbGljYXRpb246IElQREZWaWV3ZXJBcHBsaWNhdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbm90aWZpY2F0aW9uU2VydmljZTogUERGTm90aWZpY2F0aW9uU2VydmljZSkge1xuICAgIGNvbnN0IGVtaXR0ZXIgPSB0aGlzLnNob3dDaGFuZ2U7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuUERGVmlld2VyQXBwbGljYXRpb24gPSBub3RpZmljYXRpb25TZXJ2aWNlLm9uUERGSlNJbml0U2lnbmFsKCk7XG4gICAgfSk7XG4gICAgdGhpcy5vbkNsaWNrID0gKCkgPT4ge1xuICAgICAgY29uc3QgbmV3VmlzaWJpbGl0eSA9ICF0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uPy5wZGZTaWRlYmFyLmlzT3BlbjtcbiAgICAgIGVtaXR0ZXIuZW1pdChuZXdWaXNpYmlsaXR5KTtcbiAgICAgIHRoaXMuUERGVmlld2VyQXBwbGljYXRpb24/LmV2ZW50QnVzLmRpc3BhdGNoKCd0b2dnbGVTaWRlYmFyJywgeyB2aXNpYmxlOiBuZXdWaXNpYmlsaXR5IH0pO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkNsaWNrID0gdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8cGRmLXNoeS1idXR0b25cbiAgdGl0bGU9XCJUb2dnbGUgU2lkZWJhclwiXG4gIHByaW1hcnlUb29sYmFySWQ9XCJwcmltYXJ5U2lkZWJhclRvZ2dsZVwiXG4gIFtjc3NDbGFzc109XCJzaG93IHwgcmVzcG9uc2l2ZUNTU0NsYXNzIDogJ2Fsd2F5cy12aXNpYmxlJ1wiXG4gIFt0b2dnbGVkXT1cInNpZGViYXJWaXNpYmxlID09PSB0cnVlXCJcbiAgbDEwbklkPVwicGRmanMtdG9nZ2xlLXNpZGViYXItYnV0dG9uXCJcbiAgbDEwbkxhYmVsPVwicGRmanMtdG9nZ2xlLXNpZGViYXItYnV0dG9uLWxhYmVsXCJcbiAgW29yZGVyXT1cIjQ1MDBcIlxuICBbY2xvc2VPbkNsaWNrXT1cInRydWVcIlxuICBbYWN0aW9uXT1cIm9uQ2xpY2tcIlxuICBpbWFnZT1cIjxzdmcgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnIHdpZHRoPScyNHB4JyBoZWlnaHQ9JzI0cHgnIHZpZXdCb3g9JzAgMCAyNCAyNCc+IDxwYXRoIGZpbGw9J2N1cnJlbnRDb2xvcicgZD0nTTMsOUgxN1Y3SDNWOU0zLDEzSDE3VjExSDNWMTNNMywxN0gxN1YxNUgzVjE3TTE5LDE3SDIxVjE1SDE5VjE3TTE5LDdWOUgyMVY3SDE5TTE5LDEzSDIxVjExSDE5VjEzWicgLz4gPC9zdmc+XCJcbj5cbjwvcGRmLXNoeS1idXR0b24+XG4iXX0=