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.

50 lines 9.54 kB
import { Component, EventEmitter, Input, Output } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "./pdf-sidebar-toolbar/pdf-sidebar-toolbar.component"; import * as i2 from "./pdf-sidebar-content/pdf-sidebar-content.component"; import * as i3 from "@angular/common"; export class PdfSidebarComponent { constructor(elementRef, ref) { this.elementRef = elementRef; this.ref = ref; this.sidebarVisible = true; this.mobileFriendlyZoomScale = 1; this.showSidebarButton = true; this.thumbnailDrawn = new EventEmitter(); this.hideSidebarToolbar = true; } showToolbarWhenNecessary() { const element = this.elementRef.nativeElement; const buttons = element.querySelectorAll('button'); let visible = 0; for (let index = 0; index < buttons.length; index++) { const b = buttons.item(index); if (!b.hidden) { visible++; } } this.hideSidebarToolbar = visible <= 1; this.ref.markForCheck(); } } PdfSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PdfSidebarComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); PdfSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PdfSidebarComponent, selector: "pdf-sidebar", inputs: { sidebarPositionTop: "sidebarPositionTop", sidebarVisible: "sidebarVisible", mobileFriendlyZoomScale: "mobileFriendlyZoomScale", showSidebarButton: "showSidebarButton", customSidebar: "customSidebar", customThumbnail: "customThumbnail" }, outputs: { thumbnailDrawn: "thumbnailDrawn" }, ngImport: i0, template: "<div>\n <ng-content *ngTemplateOutlet=\"customSidebar ? customSidebar : defaultSidebar\"></ng-content>\n</div>\n\n<ng-template #defaultSidebar>\n <div id=\"sidebarContainer\" [style.top]=\"sidebarPositionTop\">\n <div id=\"additionalSidebarContainer\" [style.display]=\"hideSidebarToolbar ? 'none' : ''\">\n <pdf-sidebar-toolbar [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"></pdf-sidebar-toolbar>\n </div>\n <pdf-sidebar-content\n [customThumbnail]=\"customThumbnail\"\n (thumbnailDrawn)=\"thumbnailDrawn.emit($event)\"\n [hideSidebarToolbar]=\"hideSidebarToolbar\"\n [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n ></pdf-sidebar-content>\n <div id=\"sidebarResizer\" class=\"hidden\"></div>\n </div>\n</ng-template>\n", styles: [""], components: [{ type: i1.PdfSidebarToolbarComponent, selector: "pdf-sidebar-toolbar", inputs: ["mobileFriendlyZoomScale"] }, { type: i2.PdfSidebarContentComponent, selector: "pdf-sidebar-content", inputs: ["customThumbnail", "hideSidebarToolbar", "mobileFriendlyZoomScale"], outputs: ["thumbnailDrawn"] }], directives: [{ type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PdfSidebarComponent, decorators: [{ type: Component, args: [{ selector: 'pdf-sidebar', template: "<div>\n <ng-content *ngTemplateOutlet=\"customSidebar ? customSidebar : defaultSidebar\"></ng-content>\n</div>\n\n<ng-template #defaultSidebar>\n <div id=\"sidebarContainer\" [style.top]=\"sidebarPositionTop\">\n <div id=\"additionalSidebarContainer\" [style.display]=\"hideSidebarToolbar ? 'none' : ''\">\n <pdf-sidebar-toolbar [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"></pdf-sidebar-toolbar>\n </div>\n <pdf-sidebar-content\n [customThumbnail]=\"customThumbnail\"\n (thumbnailDrawn)=\"thumbnailDrawn.emit($event)\"\n [hideSidebarToolbar]=\"hideSidebarToolbar\"\n [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n ></pdf-sidebar-content>\n <div id=\"sidebarResizer\" class=\"hidden\"></div>\n </div>\n</ng-template>\n", styles: [""] }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { sidebarPositionTop: [{ type: Input }], sidebarVisible: [{ type: Input }], mobileFriendlyZoomScale: [{ type: Input }], showSidebarButton: [{ type: Input }], customSidebar: [{ type: Input }], customThumbnail: [{ type: Input }], thumbnailDrawn: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIvc3JjL2xpYi9zaWRlYmFyL3BkZi1zaWRlYmFyL3BkZi1zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvc2lkZWJhci9wZGYtc2lkZWJhci9wZGYtc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTbkgsTUFBTSxPQUFPLG1CQUFtQjtJQXdCOUIsWUFBb0IsVUFBc0IsRUFBVSxHQUFzQjtRQUF0RCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFuQm5FLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBR3RCLDRCQUF1QixHQUFHLENBQUMsQ0FBQztRQUc1QixzQkFBaUIsR0FBeUIsSUFBSSxDQUFDO1FBUy9DLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFFNUQsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO0lBRTRDLENBQUM7SUFFdkUsd0JBQXdCO1FBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBNEIsQ0FBQztRQUM3RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25ELE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2IsT0FBTyxFQUFFLENBQUM7YUFDWDtTQUNGO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDOztpSEF0Q1UsbUJBQW1CO3FHQUFuQixtQkFBbUIsMFZDVGhDLDZ3QkFrQkE7NEZEVGEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWE7aUlBTWhCLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLHVCQUF1QjtzQkFEN0IsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQZGZUaHVtYm5haWxEcmF3bkV2ZW50IH0gZnJvbSAnLi4vLi4vZXZlbnRzL3BkZi10aHVtYm5haWwtZHJhd24tZXZlbnQnO1xuaW1wb3J0IHsgUmVzcG9uc2l2ZVZpc2liaWxpdHkgfSBmcm9tICcuLi8uLi9yZXNwb25zaXZlLXZpc2liaWxpdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZGYtc2lkZWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGYtc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BkZi1zaWRlYmFyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGRmU2lkZWJhckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaWRlYmFyUG9zaXRpb25Ub3A6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2lkZWJhclZpc2libGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtb2JpbGVGcmllbmRseVpvb21TY2FsZSA9IDE7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dTaWRlYmFyQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGN1c3RvbVNpZGViYXI6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGN1c3RvbVRodW1ibmFpbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHRodW1ibmFpbERyYXduID0gbmV3IEV2ZW50RW1pdHRlcjxQZGZUaHVtYm5haWxEcmF3bkV2ZW50PigpO1xuXG4gIHB1YmxpYyBoaWRlU2lkZWJhclRvb2xiYXIgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHB1YmxpYyBzaG93VG9vbGJhcldoZW5OZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGJ1dHRvbnMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpO1xuICAgIGxldCB2aXNpYmxlID0gMDtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYnV0dG9ucy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGIgPSBidXR0b25zLml0ZW0oaW5kZXgpO1xuICAgICAgaWYgKCFiLmhpZGRlbikge1xuICAgICAgICB2aXNpYmxlKys7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaGlkZVNpZGViYXJUb29sYmFyID0gdmlzaWJsZSA8PSAxO1xuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8bmctY29udGVudCAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVNpZGViYXIgPyBjdXN0b21TaWRlYmFyIDogZGVmYXVsdFNpZGViYXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0U2lkZWJhcj5cbiAgPGRpdiBpZD1cInNpZGViYXJDb250YWluZXJcIiBbc3R5bGUudG9wXT1cInNpZGViYXJQb3NpdGlvblRvcFwiPlxuICAgIDxkaXYgaWQ9XCJhZGRpdGlvbmFsU2lkZWJhckNvbnRhaW5lclwiIFtzdHlsZS5kaXNwbGF5XT1cImhpZGVTaWRlYmFyVG9vbGJhciA/ICdub25lJyA6ICcnXCI+XG4gICAgICA8cGRmLXNpZGViYXItdG9vbGJhciBbbW9iaWxlRnJpZW5kbHlab29tU2NhbGVdPVwibW9iaWxlRnJpZW5kbHlab29tU2NhbGVcIj48L3BkZi1zaWRlYmFyLXRvb2xiYXI+XG4gICAgPC9kaXY+XG4gICAgPHBkZi1zaWRlYmFyLWNvbnRlbnRcbiAgICAgIFtjdXN0b21UaHVtYm5haWxdPVwiY3VzdG9tVGh1bWJuYWlsXCJcbiAgICAgICh0aHVtYm5haWxEcmF3bik9XCJ0aHVtYm5haWxEcmF3bi5lbWl0KCRldmVudClcIlxuICAgICAgW2hpZGVTaWRlYmFyVG9vbGJhcl09XCJoaWRlU2lkZWJhclRvb2xiYXJcIlxuICAgICAgW21vYmlsZUZyaWVuZGx5Wm9vbVNjYWxlXT1cIm1vYmlsZUZyaWVuZGx5Wm9vbVNjYWxlXCJcbiAgICA+PC9wZGYtc2lkZWJhci1jb250ZW50PlxuICAgIDxkaXYgaWQ9XCJzaWRlYmFyUmVzaXplclwiIGNsYXNzPVwiaGlkZGVuXCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==