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.

47 lines 9.44 kB
import { Component, effect, Input } from '@angular/core'; import { PositioningService } from '../../dynamic-css/positioning.service'; 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 PdfFindButtonComponent { notificationService; showFindButton = undefined; // This is set internally by the viewer after loading a document. If the document has a text layer, the viewer will set this to true. hasTextLayer = false; textLayer = undefined; findbarVisible = false; PDFViewerApplication; constructor(notificationService) { this.notificationService = notificationService; effect(() => { this.PDFViewerApplication = notificationService.onPDFJSInitSignal(); }); } onClick() { const PDFViewerApplication = this.PDFViewerApplication; if (PDFViewerApplication.findBar.opened) { PDFViewerApplication.findBar.close(); } else { PDFViewerApplication.findBar.open(); const positioningService = new PositioningService(); positioningService.positionPopupBelowItsButton('primaryViewFind', 'findbar'); } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfFindButtonComponent, deps: [{ token: i1.PDFNotificationService }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PdfFindButtonComponent, selector: "pdf-find-button", inputs: { showFindButton: "showFindButton", hasTextLayer: "hasTextLayer", textLayer: "textLayer", findbarVisible: "findbarVisible" }, ngImport: i0, template: "<pdf-shy-button\n [cssClass]=\"showFindButton | responsiveCSSClass : ((textLayer && hasTextLayer) ? 'always-visible' : 'invisible')\"\n primaryToolbarId=\"primaryViewFind\" title=\"Find in Document\" l10nId=\"pdfjs-findbar-button\"\n l10nLabel=\"pdfjs-findbar-button-label\" [order]=\"1400\" [action]=\"onClick\" [toggled]=\"findbarVisible\"\n image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'> <path fill='currentColor' d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z' /> </svg>\">\n</pdf-shy-button>", styles: [":host:focus{outline:none}button:focus{outline:none}svg:focus{outline:none}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: PdfFindButtonComponent, decorators: [{ type: Component, args: [{ selector: 'pdf-find-button', template: "<pdf-shy-button\n [cssClass]=\"showFindButton | responsiveCSSClass : ((textLayer && hasTextLayer) ? 'always-visible' : 'invisible')\"\n primaryToolbarId=\"primaryViewFind\" title=\"Find in Document\" l10nId=\"pdfjs-findbar-button\"\n l10nLabel=\"pdfjs-findbar-button-label\" [order]=\"1400\" [action]=\"onClick\" [toggled]=\"findbarVisible\"\n image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'> <path fill='currentColor' d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z' /> </svg>\">\n</pdf-shy-button>", styles: [":host:focus{outline:none}button:focus{outline:none}svg:focus{outline:none}button{padding:0}\n"] }] }], ctorParameters: () => [{ type: i1.PDFNotificationService }], propDecorators: { showFindButton: [{ type: Input }], hasTextLayer: [{ type: Input }], textLayer: [{ type: Input }], findbarVisible: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWZpbmQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtZmluZC1idXR0b24vcGRmLWZpbmQtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtZmluZC1idXR0b24vcGRmLWZpbmQtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFVM0UsTUFBTSxPQUFPLHNCQUFzQjtJQWVkO0lBYlosY0FBYyxHQUFxQyxTQUFTLENBQUM7SUFFcEUscUlBQXFJO0lBRTlILFlBQVksR0FBRyxLQUFLLENBQUM7SUFHckIsU0FBUyxHQUF3QixTQUFTLENBQUM7SUFHM0MsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN0QixvQkFBb0IsQ0FBcUM7SUFFakUsWUFBbUIsbUJBQTJDO1FBQTNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDNUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDWixNQUFNLG9CQUFvQixHQUFRLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUM1RCxJQUFJLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDdkMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3RDO2FBQU07WUFDTCxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDcEQsa0JBQWtCLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDO3dHQTlCVSxzQkFBc0I7NEZBQXRCLHNCQUFzQiw2TENYbkMsK3ZCQUtpQjs7NEZETUosc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQjsyRkFNcEIsY0FBYztzQkFEcEIsS0FBSztnQkFLQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3NpdGlvbmluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9keW5hbWljLWNzcy9wb3NpdGlvbmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElQREZWaWV3ZXJBcHBsaWNhdGlvbiB9IGZyb20gJy4uLy4uL29wdGlvbnMvcGRmLXZpZXdlci1hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBQREZOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcGRmLW5vdGlmaWNhdGlvbi1zZXJ2aWNlJztcbmltcG9ydCB7IFJlc3BvbnNpdmVWaXNpYmlsaXR5IH0gZnJvbSAnLi4vLi4vcmVzcG9uc2l2ZS12aXNpYmlsaXR5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRmLWZpbmQtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BkZi1maW5kLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BkZi1maW5kLWJ1dHRvbi5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBkZkZpbmRCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0ZpbmRCdXR0b246IFJlc3BvbnNpdmVWaXNpYmlsaXR5IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIC8vIFRoaXMgaXMgc2V0IGludGVybmFsbHkgYnkgdGhlIHZpZXdlciBhZnRlciBsb2FkaW5nIGEgZG9jdW1lbnQuIElmIHRoZSBkb2N1bWVudCBoYXMgYSB0ZXh0IGxheWVyLCB0aGUgdmlld2VyIHdpbGwgc2V0IHRoaXMgdG8gdHJ1ZS5cbiAgQElucHV0KClcbiAgcHVibGljIGhhc1RleHRMYXllciA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZXh0TGF5ZXI6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZpbmRiYXJWaXNpYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgUERGVmlld2VyQXBwbGljYXRpb24hOiBJUERGVmlld2VyQXBwbGljYXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG5vdGlmaWNhdGlvblNlcnZpY2U6IFBERk5vdGlmaWNhdGlvblNlcnZpY2UpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5QREZWaWV3ZXJBcHBsaWNhdGlvbiA9IG5vdGlmaWNhdGlvblNlcnZpY2Uub25QREZKU0luaXRTaWduYWwoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsaWNrKCkge1xuICAgIGNvbnN0IFBERlZpZXdlckFwcGxpY2F0aW9uOiBhbnkgPSB0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uO1xuICAgIGlmIChQREZWaWV3ZXJBcHBsaWNhdGlvbi5maW5kQmFyLm9wZW5lZCkge1xuICAgICAgUERGVmlld2VyQXBwbGljYXRpb24uZmluZEJhci5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBQREZWaWV3ZXJBcHBsaWNhdGlvbi5maW5kQmFyLm9wZW4oKTtcbiAgICAgIGNvbnN0IHBvc2l0aW9uaW5nU2VydmljZSA9IG5ldyBQb3NpdGlvbmluZ1NlcnZpY2UoKTtcbiAgICAgIHBvc2l0aW9uaW5nU2VydmljZS5wb3NpdGlvblBvcHVwQmVsb3dJdHNCdXR0b24oJ3ByaW1hcnlWaWV3RmluZCcsICdmaW5kYmFyJyk7XG4gICAgfVxuICB9XG59XG4iLCI8cGRmLXNoeS1idXR0b25cbiAgW2Nzc0NsYXNzXT1cInNob3dGaW5kQnV0dG9uIHwgcmVzcG9uc2l2ZUNTU0NsYXNzIDogKCh0ZXh0TGF5ZXIgJiYgaGFzVGV4dExheWVyKSA/ICdhbHdheXMtdmlzaWJsZScgOiAnaW52aXNpYmxlJylcIlxuICBwcmltYXJ5VG9vbGJhcklkPVwicHJpbWFyeVZpZXdGaW5kXCIgdGl0bGU9XCJGaW5kIGluIERvY3VtZW50XCIgbDEwbklkPVwicGRmanMtZmluZGJhci1idXR0b25cIlxuICBsMTBuTGFiZWw9XCJwZGZqcy1maW5kYmFyLWJ1dHRvbi1sYWJlbFwiIFtvcmRlcl09XCIxNDAwXCIgW2FjdGlvbl09XCJvbkNsaWNrXCIgW3RvZ2dsZWRdPVwiZmluZGJhclZpc2libGVcIlxuICBpbWFnZT1cIjxzdmcgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnIHdpZHRoPScyNHB4JyBoZWlnaHQ9JzI0cHgnIHZpZXdCb3g9JzAgMCAyNCAyNCc+IDxwYXRoIGZpbGw9J2N1cnJlbnRDb2xvcicgZD0nTTkuNSwzQTYuNSw2LjUgMCAwLDEgMTYsOS41QzE2LDExLjExIDE1LjQxLDEyLjU5IDE0LjQ0LDEzLjczTDE0LjcxLDE0SDE1LjVMMjAuNSwxOUwxOSwyMC41TDE0LDE1LjVWMTQuNzFMMTMuNzMsMTQuNDRDMTIuNTksMTUuNDEgMTEuMTEsMTYgOS41LDE2QTYuNSw2LjUgMCAwLDEgMyw5LjVBNi41LDYuNSAwIDAsMSA5LjUsM005LjUsNUM3LDUgNSw3IDUsOS41QzUsMTIgNywxNCA5LjUsMTRDMTIsMTQgMTQsMTIgMTQsOS41QzE0LDcgMTIsNSA5LjUsNVonIC8+IDwvc3ZnPlwiPlxuPC9wZGYtc2h5LWJ1dHRvbj4iXX0=