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.
175 lines • 77.3 kB
JavaScript
import { Component, EventEmitter, HostListener, Input, Output, } from '@angular/core';
import { take } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "./../../pdf-notification-service";
import * as i2 from "@angular/common";
import * as i3 from "../../responsive-visibility";
export class PdfSecondaryToolbarComponent {
constructor(element, notificationService) {
this.element = element;
this.notificationService = notificationService;
this.showPresentationModeButton = true;
this.showOpenFileButton = true;
this.showPrintButton = true;
this.showDownloadButton = true;
this.showPagingButtons = true;
this.showRotateButton = true;
this.showHandToolButton = true;
this.showScrollingButton = true;
this.showSpreadButton = true;
this.showPropertiesButton = true;
this.spreadChange = new EventEmitter();
this.secondaryMenuIsEmpty = new EventEmitter();
this.disablePreviousPage = true;
this.disableNextPage = true;
this.notificationService.onPDFJSInit.pipe(take(1)).subscribe(() => {
this.onPdfJsInit();
});
}
onPdfJsInit() {
const PDFViewerApplication = window.PDFViewerApplication;
PDFViewerApplication.eventBus.on('pagechanging', () => {
this.updateUIState();
});
PDFViewerApplication.eventBus.on('pagerendered', () => {
this.updateUIState();
});
}
updateUIState() {
setTimeout(() => {
const PDFViewerApplication = window.PDFViewerApplication;
const currentPage = PDFViewerApplication.pdfViewer.currentPageNumber;
const previousButton = document.getElementById('previousPage');
if (previousButton) {
this.disablePreviousPage = Number(currentPage) <= 1;
previousButton.disabled = this.disablePreviousPage;
}
const nextButton = document.getElementById('nextPage');
if (nextButton) {
this.disableNextPage = currentPage === PDFViewerApplication.pagesCount;
nextButton.disabled = this.disableNextPage;
}
});
}
onSpreadChange(newSpread) {
this.spreadChange.emit(newSpread);
}
ngOnChanges(changes) {
setTimeout(() => this.checkVisibility());
}
onResize() {
setTimeout(() => this.checkVisibility());
}
ngAfterViewInit() {
const targetNode = this.element.nativeElement;
const config = { attributes: true, childList: true, subtree: true };
this.mutationObserver = new MutationObserver((mutationList, observer) => {
for (const mutation of mutationList) {
if (mutation.type === 'attributes') {
if (mutation.attributeName === 'class') {
this.checkVisibility();
}
}
}
});
this.mutationObserver.observe(targetNode, config);
}
ngOnDestroy() {
if (this.mutationObserver) {
this.mutationObserver.disconnect();
this.mutationObserver = undefined;
}
}
checkVisibility() {
let visibleButtons = 0;
const e = this.element.nativeElement;
const f = e.children.item(0);
if (f) {
const g = f.children.item(0);
if (g && g instanceof HTMLElement) {
visibleButtons = this.checkVisibilityRecursively(g);
}
}
this.secondaryMenuIsEmpty.emit(visibleButtons === 0);
}
checkVisibilityRecursively(e) {
if (typeof window === 'undefined') {
return 0;
}
if (e.style.display === 'none') {
return 0;
}
if (e.classList.contains('hidden')) {
return 0;
}
if (e.classList.contains('invisible')) {
return 0;
}
const style = window.getComputedStyle(e);
if (style.display === 'none') {
return 0;
}
if (e instanceof HTMLButtonElement || e instanceof HTMLAnchorElement) {
return 1;
}
let count = 0;
const children = e.children;
if (children && children.length) {
for (let i = 0; i < children.length && count === 0; i++) {
const child = children.item(i);
if (child && child instanceof HTMLElement) {
count += this.checkVisibilityRecursively(child);
}
}
}
return count;
}
previousPage() {
const PDFViewerApplication = window.PDFViewerApplication;
PDFViewerApplication.eventBus.dispatch('previouspage');
}
nextPage() {
const PDFViewerApplication = window.PDFViewerApplication;
PDFViewerApplication.eventBus.dispatch('nextpage');
}
}
PdfSecondaryToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PdfSecondaryToolbarComponent, deps: [{ token: i0.ElementRef }, { token: i1.PDFNotificationService }], target: i0.ɵɵFactoryTarget.Component });
PdfSecondaryToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PdfSecondaryToolbarComponent, selector: "pdf-secondary-toolbar", inputs: { customSecondaryToolbar: "customSecondaryToolbar", secondaryToolbarTop: "secondaryToolbarTop", mobileFriendlyZoomScale: "mobileFriendlyZoomScale", showPresentationModeButton: "showPresentationModeButton", showOpenFileButton: "showOpenFileButton", showPrintButton: "showPrintButton", showDownloadButton: "showDownloadButton", showPagingButtons: "showPagingButtons", showRotateButton: "showRotateButton", showHandToolButton: "showHandToolButton", showScrollingButton: "showScrollingButton", showSpreadButton: "showSpreadButton", showPropertiesButton: "showPropertiesButton" }, outputs: { spreadChange: "spreadChange", secondaryMenuIsEmpty: "secondaryMenuIsEmpty" }, host: { listeners: { "window:resize": "onResize()" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"customSecondaryToolbar ? customSecondaryToolbar : defaultSecondaryToolbar\"> </ng-container>\n\n<ng-template #defaultSecondaryToolbar>\n <div\n id=\"secondaryToolbar\"\n class=\"secondaryToolbar hidden doorHangerRight\"\n [style.top]=\"secondaryToolbarTop\"\n [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n [style.transformOrigin]=\"'right top'\"\n >\n <div id=\"secondaryToolbarButtonContainer\">\n <button\n type=\"button\"\n id=\"secondaryPresentationMode\"\n class=\"secondaryToolbarButton\"\n [class]=\"showPresentationModeButton | negativeResponsiveCSSClass : 'visibleLargeView'\"\n title=\"Switch to Presentation Mode\"\n data-l10n-id=\"presentation_mode\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z\" />\n </svg>\n <span data-l10n-id=\"presentation_mode_label\">Presentation Mode</span>\n </button>\n\n <button\n type=\"button\"\n id=\"secondaryOpenFile\"\n class=\"secondaryToolbarButton\"\n [class]=\"showOpenFileButton | negativeResponsiveCSSClass : 'visibleSmallView'\"\n title=\"Open File\"\n data-l10n-id=\"open_file\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,12L16,16H13.5V19H10.5V16H8L12,12Z\"\n />\n </svg>\n <span data-l10n-id=\"open_file_label\">Open</span>\n </button>\n\n <button\n type=\"button\"\n id=\"secondaryPrint\"\n class=\"secondaryToolbarButton\"\n [class]=\"showPrintButton | negativeResponsiveCSSClass : 'visibleSmallView'\"\n title=\"Print\"\n data-l10n-id=\"print\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M18,3H6V7H18M19,12A1,1 0 0,1 18,11A1,1 0 0,1 19,10A1,1 0 0,1 20,11A1,1 0 0,1 19,12M16,19H8V14H16M19,8H5A3,3 0 0,0 2,11V17H6V21H18V17H22V11A3,3 0 0,0 19,8Z\"\n />\n </svg>\n <span data-l10n-id=\"print_label\">Print</span>\n </button>\n\n <button\n type=\"button\"\n id=\"secondaryDownload\"\n class=\"secondaryToolbarButton\"\n [class]=\"showDownloadButton | negativeResponsiveCSSClass : 'visibleSmallView'\"\n title=\"Download\"\n data-l10n-id=\"download\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,19L8,15H10.5V12H13.5V15H16L12,19Z\"\n />\n </svg>\n <span data-l10n-id=\"download_label\">Download</span>\n </button>\n\n <button\n type=\"button\"\n id=\"firstPage\"\n class=\"secondaryToolbarButton firstPage\"\n [class]=\"showPagingButtons | negativeResponsiveCSSClass : 'visibleLargeView'\"\n title=\"Go to First Page\"\n data-l10n-id=\"first_page\"\n >\n <svg style=\"width: 24px; height: 24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z\" />\n </svg>\n <span data-l10n-id=\"first_page_label\">Go to First Page</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showPagingButtons | negativeResponsiveCSSClass : 'visibleTinyView'\"\n id=\"previousPage\"\n class=\"secondaryToolbarButton previousPage\"\n title=\"Go to Previous Page\"\n data-l10n-id=\"previous\"\n [disabled]=\"disablePreviousPage\"\n (click)=\"previousPage()\"\n >\n <svg style=\"width: 24px; height: 24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\" />\n </svg>\n <span data-l10n-id=\"previous_label\">Go to Previous Page</span>\n </button>\n <button\n type=\"button\"\n [disabled]=\"disableNextPage\"\n id=\"nextPage\"\n class=\"secondaryToolbarButton nextPage\"\n [class]=\"showPagingButtons | negativeResponsiveCSSClass : 'visibleTinyView'\"\n title=\"Go to Next Page\"\n data-l10n-id=\"next\"\n (click)=\"nextPage()\"\n >\n <svg style=\"width: 24px; height: 24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\" />\n </svg>\n <span data-l10n-id=\"next_label\">Go to Next Page</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showPagingButtons | negativeResponsiveCSSClass : 'visibleLargeView'\"\n id=\"lastPage\"\n class=\"secondaryToolbarButton lastPage\"\n title=\"Go to Last Page\"\n data-l10n-id=\"last_page\"\n >\n <svg style=\"width: 24px; height: 24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z\" />\n </svg>\n <span data-l10n-id=\"last_page_label\">Go to Last Page</span>\n </button>\n\n <button\n type=\"button\"\n [class]=\"showRotateButton | negativeResponsiveCSSClass : 'visibleXLView'\"\n id=\"pageRotateCw\"\n class=\"secondaryToolbarButton rotateCw\"\n title=\"Rotate Clockwise\"\n data-l10n-id=\"page_rotate_cw\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n 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\"\n />\n </svg>\n <span data-l10n-id=\"page_rotate_cw_label\">Rotate Clockwise</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showRotateButton | negativeResponsiveCSSClass : 'visibleXLView'\"\n id=\"pageRotateCcw\"\n class=\"secondaryToolbarButton rotateCcw\"\n title=\"Rotate Counterclockwise\"\n data-l10n-id=\"page_rotate_ccw\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n 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\"\n />\n </svg>\n <span data-l10n-id=\"page_rotate_ccw_label\">Rotate Counterclockwise</span>\n </button>\n\n <button\n type=\"button\"\n id=\"cursorSelectTool\"\n class=\"secondaryToolbarButton toggled\"\n [class]=\"showHandToolButton | negativeResponsiveCSSClass : 'visibleXXLView'\"\n title=\"Enable Text Selection Tool\"\n data-l10n-id=\"cursor_text_select_tool\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M2 4C2 2.89 2.9 2 4 2H7V4H4V7H2V4M22 4V7H20V4H17V2H20C21.1 2 22 2.89 22 4M2 20V17H4V20H7V22H4C2.9 22 2 21.11 2 20M10 2H14V4H10V2M10 20H14V22H10V20M2 10H4V14H2V10M18.5 13C20.4 13 22 14.6 22 16.5C22 19.1 18.5 23 18.5 23C18.5 23 15 19.1 15 16.5C15 14.6 16.6 13 18.5 13M18.5 17.8C19.2 17.8 19.8 17.2 19.7 16.6C19.7 16 19.1 15.4 18.5 15.4C17.9 15.4 17.3 15.9 17.3 16.6C17.3 17.2 17.8 17.8 18.5 17.8M20 10H22V12.34C21.42 11.84 20.74 11.45 20 11.23V10Z\"\n />\n </svg>\n <span data-l10n-id=\"cursor_text_select_tool_label\">Text Selection Tool</span>\n </button>\n <button\n type=\"button\"\n id=\"cursorHandTool\"\n class=\"secondaryToolbarButton\"\n [class]=\"showHandToolButton | negativeResponsiveCSSClass : 'visibleXXLView'\"\n title=\"Enable Hand Tool\"\n data-l10n-id=\"cursor_hand_tool\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13,6V11H18V7.75L22.25,12L18,16.25V13H13V18H16.25L12,22.25L7.75,18H11V13H6V16.25L1.75,12L6,7.75V11H11V6H7.75L12,1.75L16.25,6H13Z\"\n />\n </svg>\n <span data-l10n-id=\"cursor_hand_tool_label\">Hand Tool</span>\n </button>\n\n <button\n type=\"button\"\n [class]=\"showScrollingButton | negativeResponsiveCSSClass : ''\"\n id=\"scrollPage\"\n class=\"secondaryToolbarButton scrollPage\"\n title=\"Use Page Scrolling\"\n data-l10n-id=\"scroll_page\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M9.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C5 4.5 5.5 4 6.5 4zM11 0v.5c0 1-.5 1.5-1.5 1.5h-3C5.5 2 5 1.5 5 .5V0h6zM11 16v-.5c0-1-.5-1.5-1.5-1.5h-3c-1 0-1.5.5-1.5 1.5v.5h6z\"\n />\n </svg>\n <span data-l10n-id=\"scroll_page\">Page Scrolling</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showScrollingButton | negativeResponsiveCSSClass : ''\"\n id=\"scrollVertical\"\n class=\"secondaryToolbarButton scrollVertical toggled\"\n title=\"Use Vertical Scrolling\"\n data-l10n-id=\"scroll_vertical\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M9.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C5 4.5 5.5 4 6.5 4zM11 0v.5c0 1-.5 1.5-1.5 1.5h-3C5.5 2 5 1.5 5 .5V0h6zM11 16v-.5c0-1-.5-1.5-1.5-1.5h-3c-1 0-1.5.5-1.5 1.5v.5h6z\"\n />\n </svg>\n <span data-l10n-id=\"scroll_vertical_label\">Vertical Scrolling</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showScrollingButton | negativeResponsiveCSSClass : ''\"\n id=\"scrollHorizontal\"\n class=\"secondaryToolbarButton scrollHorizontal\"\n title=\"Use Horizontal Scrolling\"\n data-l10n-id=\"scroll_horizontal\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M0 4h1.5c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5H0zM9.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C5 4.5 5.5 4 6.5 4zM16 4h-1.5c-1 0-1.5.5-1.5 1.5v5c0 1 .5 1.5 1.5 1.5H16z\"\n />\n </svg>\n <span data-l10n-id=\"scroll_horizontal_label\">Horizontal Scrolling</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showScrollingButton | negativeResponsiveCSSClass : ''\"\n id=\"scrollWrapped\"\n class=\"secondaryToolbarButton scrollWrapped\"\n title=\"Use Wrapped Scrolling\"\n data-l10n-id=\"scroll_wrapped\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M5.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C1 4.5 1.5 4 2.5 4zM7 0v.5C7 1.5 6.5 2 5.5 2h-3C1.5 2 1 1.5 1 .5V0h6zM7 16v-.5c0-1-.5-1.5-1.5-1.5h-3c-1 0-1.5.5-1.5 1.5v.5h6zM13.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5c0-1 .5-1.5 1.5-1.5zM15 0v.5c0 1-.5 1.5-1.5 1.5h-3C9.5 2 9 1.5 9 .5V0h6zM15 16v-.507c0-1-.5-1.5-1.5-1.5h-3C9.5 14 9 14.5 9 15.5v.5h6z\"\n />\n </svg>\n <span data-l10n-id=\"scroll_wrapped_label\">Wrapped Scrolling</span>\n </button>\n\n <button\n type=\"button\"\n [class]=\"showSpreadButton | negativeResponsiveCSSClass : ''\"\n id=\"spreadNone\"\n class=\"secondaryToolbarButton spreadNone toggled\"\n title=\"Do not join page spreads\"\n data-l10n-id=\"spread_none\"\n (click)=\"onSpreadChange('off')\"\n >\n <svg height=\"16\" width=\"16\">\n <path fill=\"currentColor\" d=\"M6 3c-1 0-1.5.5-1.5 1.5v7c0 1 .5 1.5 1.5 1.5h4c1 0 1.5-.5 1.5-1.5v-7c0-1-.5-1.5-1.5-1.5z\" />\n </svg>\n <span data-l10n-id=\"spread_none_label\">No Spreads</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showSpreadButton | negativeResponsiveCSSClass : ''\"\n id=\"spreadOdd\"\n class=\"secondaryToolbarButton spreadOdd\"\n title=\"Join page spreads starting with odd-numbered pages\"\n data-l10n-id=\"spread_odd\"\n (click)=\"onSpreadChange('odd')\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M10.56 3.5C9.56 3.5 9 4 9 5v6.5c0 1 .5 1.5 1.5 1.5h4c1 0 1.5-.5 1.5-1.5V5c0-1-.5-1.5-1.5-1.5zm1.93 1.2c.8 0 1.4.2 1.8.64.5.4.7 1 .7 1.7 0 .5-.2 1-.5 1.44-.2.3-.6.6-1 .93l-.6.4c-.4.3-.6.4-.7.55-.1.1-.2.2-.3.4h3.2v1.27h-5c0-.5.1-1 .3-1.43.2-.49.7-1 1.5-1.54.7-.5 1.1-.8 1.3-1.02.3-.3.4-.7.4-1.05 0-.3-.1-.6-.3-.77-.2-.2-.4-.3-.7-.3-.4 0-.7.2-.9.5-.1.2-.1.5-.2.9h-1.4c0-.6.2-1.1.3-1.5.4-.7 1.1-1.1 2-1.1zM1.54 3.5C.54 3.5 0 4 0 5v6.5c0 1 .5 1.5 1.54 1.5h4c1 0 1.5-.5 1.5-1.5V5c0-1-.5-1.5-1.5-1.5zm1.8 1.125H4.5V12H3V6.9H1.3v-1c.5 0 .8 0 .97-.03.33-.07.53-.17.73-.37.1-.2.2-.3.25-.5.05-.2.05-.3.05-.3z\"\n />\n </svg>\n <span data-l10n-id=\"spread_odd_label\">Odd Spreads</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showSpreadButton | negativeResponsiveCSSClass : ''\"\n id=\"spreadEven\"\n class=\"secondaryToolbarButton spreadEven\"\n title=\"Join page spreads starting with even-numbered pages\"\n data-l10n-id=\"spread_even\"\n (click)=\"onSpreadChange('even')\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M1.5 3.5C.5 3.5 0 4 0 5v6.5c0 1 .5 1.5 1.5 1.5h4c1 0 1.5-.5 1.5-1.5V5c0-1-.5-1.5-1.5-1.5zm2 1.2c.8 0 1.4.2 1.8.6.5.4.7 1 .7 1.7 0 .5-.2 1-.5 1.4-.2.3-.5.7-1 1l-.6.4c-.4.3-.6.4-.75.56-.15.14-.25.24-.35.44H6v1.3H1c0-.6.1-1.1.3-1.5.3-.6.7-1 1.5-1.6.7-.4 1.1-.8 1.28-1 .32-.3.42-.6.42-1 0-.3-.1-.6-.23-.8-.17-.2-.37-.3-.77-.3s-.7.1-.9.5c-.04.2-.1.5-.1.9H1.1c0-.6.1-1.1.3-1.5.4-.7 1.1-1.1 2.1-1.1zM10.54 3.54C9.5 3.54 9 4 9 5v6.5c0 1 .5 1.5 1.54 1.5h4c.96 0 1.46-.5 1.46-1.5V5c0-1-.5-1.46-1.5-1.46zm1.9.95c.7 0 1.3.2 1.7.5.4.4.6.8.6 1.4 0 .4-.1.8-.4 1.1-.2.2-.3.3-.5.4.1 0 .3.1.6.3.4.3.5.8.5 1.4 0 .6-.2 1.2-.6 1.6-.4.5-1.1.7-1.9.7-1 0-1.8-.3-2.2-1-.14-.29-.24-.69-.24-1.29h1.4c0 .3 0 .5.1.7.2.4.5.5 1 .5.3 0 .5-.1.7-.3.2-.2.3-.5.3-.8 0-.5-.2-.8-.6-.95-.2-.05-.5-.15-1-.15v-1c.5 0 .8-.1 1-.14.3-.1.5-.4.5-.9 0-.3-.1-.5-.2-.7-.2-.2-.4-.3-.7-.3-.3 0-.6.1-.75.3-.2.2-.2.5-.2.86h-1.34c0-.4.1-.7.19-1.1 0-.12.2-.32.4-.62.2-.2.4-.3.7-.4.3-.1.6-.1 1-.1z\"\n />\n </svg>\n <span data-l10n-id=\"spread_even_label\">Even Spreads</span>\n </button>\n\n <button\n type=\"button\"\n [class]=\"showPropertiesButton | negativeResponsiveCSSClass : ''\"\n id=\"documentProperties\"\n class=\"secondaryToolbarButton documentProperties\"\n title=\"Document Properties\u2026\"\n data-l10n-id=\"document_properties\"\n aria-controls=\"documentPropertiesDialog\"\n >\n <svg style=\"width: 16px; height: 16px; margin-top: 3px\" viewBox=\"0 0 16 16\">\n <path fill=\"currentColor\" d=\"M8 16a8 8 0 1 1 8-8 8.009 8.009 0 0 1-8 8zM8 2a6 6 0 1 0 6 6 6.006 6.006 0 0 0-6-6z\" />\n <path fill=\"currentColor\" d=\"M8 7a1 1 0 0 0-1 1v3a1 1 0 0 0 2 0V8a1 1 0 0 0-1-1z\" />\n <circle fill=\"currentColor\" cx=\"8\" cy=\"5\" r=\"1.188\" />\n </svg>\n <span data-l10n-id=\"document_properties_label\">Document Properties\u2026</span>\n </button>\n </div>\n </div>\n</ng-template>\n", styles: ["svg{position:absolute;display:inline-block;top:0;left:0}\n"], directives: [{ type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "negativeResponsiveCSSClass": i3.NegativeResponsiveCSSClassPipe } });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PdfSecondaryToolbarComponent, decorators: [{
type: Component,
args: [{ selector: 'pdf-secondary-toolbar', template: "<ng-container [ngTemplateOutlet]=\"customSecondaryToolbar ? customSecondaryToolbar : defaultSecondaryToolbar\"> </ng-container>\n\n<ng-template #defaultSecondaryToolbar>\n <div\n id=\"secondaryToolbar\"\n class=\"secondaryToolbar hidden doorHangerRight\"\n [style.top]=\"secondaryToolbarTop\"\n [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n [style.transformOrigin]=\"'right top'\"\n >\n <div id=\"secondaryToolbarButtonContainer\">\n <button\n type=\"button\"\n id=\"secondaryPresentationMode\"\n class=\"secondaryToolbarButton\"\n [class]=\"showPresentationModeButton | negativeResponsiveCSSClass : 'visibleLargeView'\"\n title=\"Switch to Presentation Mode\"\n data-l10n-id=\"presentation_mode\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z\" />\n </svg>\n <span data-l10n-id=\"presentation_mode_label\">Presentation Mode</span>\n </button>\n\n <button\n type=\"button\"\n id=\"secondaryOpenFile\"\n class=\"secondaryToolbarButton\"\n [class]=\"showOpenFileButton | negativeResponsiveCSSClass : 'visibleSmallView'\"\n title=\"Open File\"\n data-l10n-id=\"open_file\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,12L16,16H13.5V19H10.5V16H8L12,12Z\"\n />\n </svg>\n <span data-l10n-id=\"open_file_label\">Open</span>\n </button>\n\n <button\n type=\"button\"\n id=\"secondaryPrint\"\n class=\"secondaryToolbarButton\"\n [class]=\"showPrintButton | negativeResponsiveCSSClass : 'visibleSmallView'\"\n title=\"Print\"\n data-l10n-id=\"print\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M18,3H6V7H18M19,12A1,1 0 0,1 18,11A1,1 0 0,1 19,10A1,1 0 0,1 20,11A1,1 0 0,1 19,12M16,19H8V14H16M19,8H5A3,3 0 0,0 2,11V17H6V21H18V17H22V11A3,3 0 0,0 19,8Z\"\n />\n </svg>\n <span data-l10n-id=\"print_label\">Print</span>\n </button>\n\n <button\n type=\"button\"\n id=\"secondaryDownload\"\n class=\"secondaryToolbarButton\"\n [class]=\"showDownloadButton | negativeResponsiveCSSClass : 'visibleSmallView'\"\n title=\"Download\"\n data-l10n-id=\"download\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,19L8,15H10.5V12H13.5V15H16L12,19Z\"\n />\n </svg>\n <span data-l10n-id=\"download_label\">Download</span>\n </button>\n\n <button\n type=\"button\"\n id=\"firstPage\"\n class=\"secondaryToolbarButton firstPage\"\n [class]=\"showPagingButtons | negativeResponsiveCSSClass : 'visibleLargeView'\"\n title=\"Go to First Page\"\n data-l10n-id=\"first_page\"\n >\n <svg style=\"width: 24px; height: 24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z\" />\n </svg>\n <span data-l10n-id=\"first_page_label\">Go to First Page</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showPagingButtons | negativeResponsiveCSSClass : 'visibleTinyView'\"\n id=\"previousPage\"\n class=\"secondaryToolbarButton previousPage\"\n title=\"Go to Previous Page\"\n data-l10n-id=\"previous\"\n [disabled]=\"disablePreviousPage\"\n (click)=\"previousPage()\"\n >\n <svg style=\"width: 24px; height: 24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\" />\n </svg>\n <span data-l10n-id=\"previous_label\">Go to Previous Page</span>\n </button>\n <button\n type=\"button\"\n [disabled]=\"disableNextPage\"\n id=\"nextPage\"\n class=\"secondaryToolbarButton nextPage\"\n [class]=\"showPagingButtons | negativeResponsiveCSSClass : 'visibleTinyView'\"\n title=\"Go to Next Page\"\n data-l10n-id=\"next\"\n (click)=\"nextPage()\"\n >\n <svg style=\"width: 24px; height: 24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\" />\n </svg>\n <span data-l10n-id=\"next_label\">Go to Next Page</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showPagingButtons | negativeResponsiveCSSClass : 'visibleLargeView'\"\n id=\"lastPage\"\n class=\"secondaryToolbarButton lastPage\"\n title=\"Go to Last Page\"\n data-l10n-id=\"last_page\"\n >\n <svg style=\"width: 24px; height: 24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z\" />\n </svg>\n <span data-l10n-id=\"last_page_label\">Go to Last Page</span>\n </button>\n\n <button\n type=\"button\"\n [class]=\"showRotateButton | negativeResponsiveCSSClass : 'visibleXLView'\"\n id=\"pageRotateCw\"\n class=\"secondaryToolbarButton rotateCw\"\n title=\"Rotate Clockwise\"\n data-l10n-id=\"page_rotate_cw\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n 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\"\n />\n </svg>\n <span data-l10n-id=\"page_rotate_cw_label\">Rotate Clockwise</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showRotateButton | negativeResponsiveCSSClass : 'visibleXLView'\"\n id=\"pageRotateCcw\"\n class=\"secondaryToolbarButton rotateCcw\"\n title=\"Rotate Counterclockwise\"\n data-l10n-id=\"page_rotate_ccw\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n 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\"\n />\n </svg>\n <span data-l10n-id=\"page_rotate_ccw_label\">Rotate Counterclockwise</span>\n </button>\n\n <button\n type=\"button\"\n id=\"cursorSelectTool\"\n class=\"secondaryToolbarButton toggled\"\n [class]=\"showHandToolButton | negativeResponsiveCSSClass : 'visibleXXLView'\"\n title=\"Enable Text Selection Tool\"\n data-l10n-id=\"cursor_text_select_tool\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M2 4C2 2.89 2.9 2 4 2H7V4H4V7H2V4M22 4V7H20V4H17V2H20C21.1 2 22 2.89 22 4M2 20V17H4V20H7V22H4C2.9 22 2 21.11 2 20M10 2H14V4H10V2M10 20H14V22H10V20M2 10H4V14H2V10M18.5 13C20.4 13 22 14.6 22 16.5C22 19.1 18.5 23 18.5 23C18.5 23 15 19.1 15 16.5C15 14.6 16.6 13 18.5 13M18.5 17.8C19.2 17.8 19.8 17.2 19.7 16.6C19.7 16 19.1 15.4 18.5 15.4C17.9 15.4 17.3 15.9 17.3 16.6C17.3 17.2 17.8 17.8 18.5 17.8M20 10H22V12.34C21.42 11.84 20.74 11.45 20 11.23V10Z\"\n />\n </svg>\n <span data-l10n-id=\"cursor_text_select_tool_label\">Text Selection Tool</span>\n </button>\n <button\n type=\"button\"\n id=\"cursorHandTool\"\n class=\"secondaryToolbarButton\"\n [class]=\"showHandToolButton | negativeResponsiveCSSClass : 'visibleXXLView'\"\n title=\"Enable Hand Tool\"\n data-l10n-id=\"cursor_hand_tool\"\n >\n <svg style=\"width: 22px; height: 22px\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13,6V11H18V7.75L22.25,12L18,16.25V13H13V18H16.25L12,22.25L7.75,18H11V13H6V16.25L1.75,12L6,7.75V11H11V6H7.75L12,1.75L16.25,6H13Z\"\n />\n </svg>\n <span data-l10n-id=\"cursor_hand_tool_label\">Hand Tool</span>\n </button>\n\n <button\n type=\"button\"\n [class]=\"showScrollingButton | negativeResponsiveCSSClass : ''\"\n id=\"scrollPage\"\n class=\"secondaryToolbarButton scrollPage\"\n title=\"Use Page Scrolling\"\n data-l10n-id=\"scroll_page\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M9.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C5 4.5 5.5 4 6.5 4zM11 0v.5c0 1-.5 1.5-1.5 1.5h-3C5.5 2 5 1.5 5 .5V0h6zM11 16v-.5c0-1-.5-1.5-1.5-1.5h-3c-1 0-1.5.5-1.5 1.5v.5h6z\"\n />\n </svg>\n <span data-l10n-id=\"scroll_page\">Page Scrolling</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showScrollingButton | negativeResponsiveCSSClass : ''\"\n id=\"scrollVertical\"\n class=\"secondaryToolbarButton scrollVertical toggled\"\n title=\"Use Vertical Scrolling\"\n data-l10n-id=\"scroll_vertical\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M9.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C5 4.5 5.5 4 6.5 4zM11 0v.5c0 1-.5 1.5-1.5 1.5h-3C5.5 2 5 1.5 5 .5V0h6zM11 16v-.5c0-1-.5-1.5-1.5-1.5h-3c-1 0-1.5.5-1.5 1.5v.5h6z\"\n />\n </svg>\n <span data-l10n-id=\"scroll_vertical_label\">Vertical Scrolling</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showScrollingButton | negativeResponsiveCSSClass : ''\"\n id=\"scrollHorizontal\"\n class=\"secondaryToolbarButton scrollHorizontal\"\n title=\"Use Horizontal Scrolling\"\n data-l10n-id=\"scroll_horizontal\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M0 4h1.5c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5H0zM9.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C5 4.5 5.5 4 6.5 4zM16 4h-1.5c-1 0-1.5.5-1.5 1.5v5c0 1 .5 1.5 1.5 1.5H16z\"\n />\n </svg>\n <span data-l10n-id=\"scroll_horizontal_label\">Horizontal Scrolling</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showScrollingButton | negativeResponsiveCSSClass : ''\"\n id=\"scrollWrapped\"\n class=\"secondaryToolbarButton scrollWrapped\"\n title=\"Use Wrapped Scrolling\"\n data-l10n-id=\"scroll_wrapped\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M5.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C1 4.5 1.5 4 2.5 4zM7 0v.5C7 1.5 6.5 2 5.5 2h-3C1.5 2 1 1.5 1 .5V0h6zM7 16v-.5c0-1-.5-1.5-1.5-1.5h-3c-1 0-1.5.5-1.5 1.5v.5h6zM13.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5c0-1 .5-1.5 1.5-1.5zM15 0v.5c0 1-.5 1.5-1.5 1.5h-3C9.5 2 9 1.5 9 .5V0h6zM15 16v-.507c0-1-.5-1.5-1.5-1.5h-3C9.5 14 9 14.5 9 15.5v.5h6z\"\n />\n </svg>\n <span data-l10n-id=\"scroll_wrapped_label\">Wrapped Scrolling</span>\n </button>\n\n <button\n type=\"button\"\n [class]=\"showSpreadButton | negativeResponsiveCSSClass : ''\"\n id=\"spreadNone\"\n class=\"secondaryToolbarButton spreadNone toggled\"\n title=\"Do not join page spreads\"\n data-l10n-id=\"spread_none\"\n (click)=\"onSpreadChange('off')\"\n >\n <svg height=\"16\" width=\"16\">\n <path fill=\"currentColor\" d=\"M6 3c-1 0-1.5.5-1.5 1.5v7c0 1 .5 1.5 1.5 1.5h4c1 0 1.5-.5 1.5-1.5v-7c0-1-.5-1.5-1.5-1.5z\" />\n </svg>\n <span data-l10n-id=\"spread_none_label\">No Spreads</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showSpreadButton | negativeResponsiveCSSClass : ''\"\n id=\"spreadOdd\"\n class=\"secondaryToolbarButton spreadOdd\"\n title=\"Join page spreads starting with odd-numbered pages\"\n data-l10n-id=\"spread_odd\"\n (click)=\"onSpreadChange('odd')\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M10.56 3.5C9.56 3.5 9 4 9 5v6.5c0 1 .5 1.5 1.5 1.5h4c1 0 1.5-.5 1.5-1.5V5c0-1-.5-1.5-1.5-1.5zm1.93 1.2c.8 0 1.4.2 1.8.64.5.4.7 1 .7 1.7 0 .5-.2 1-.5 1.44-.2.3-.6.6-1 .93l-.6.4c-.4.3-.6.4-.7.55-.1.1-.2.2-.3.4h3.2v1.27h-5c0-.5.1-1 .3-1.43.2-.49.7-1 1.5-1.54.7-.5 1.1-.8 1.3-1.02.3-.3.4-.7.4-1.05 0-.3-.1-.6-.3-.77-.2-.2-.4-.3-.7-.3-.4 0-.7.2-.9.5-.1.2-.1.5-.2.9h-1.4c0-.6.2-1.1.3-1.5.4-.7 1.1-1.1 2-1.1zM1.54 3.5C.54 3.5 0 4 0 5v6.5c0 1 .5 1.5 1.54 1.5h4c1 0 1.5-.5 1.5-1.5V5c0-1-.5-1.5-1.5-1.5zm1.8 1.125H4.5V12H3V6.9H1.3v-1c.5 0 .8 0 .97-.03.33-.07.53-.17.73-.37.1-.2.2-.3.25-.5.05-.2.05-.3.05-.3z\"\n />\n </svg>\n <span data-l10n-id=\"spread_odd_label\">Odd Spreads</span>\n </button>\n <button\n type=\"button\"\n [class]=\"showSpreadButton | negativeResponsiveCSSClass : ''\"\n id=\"spreadEven\"\n class=\"secondaryToolbarButton spreadEven\"\n title=\"Join page spreads starting with even-numbered pages\"\n data-l10n-id=\"spread_even\"\n (click)=\"onSpreadChange('even')\"\n >\n <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n <path\n fill=\"currentColor\"\n d=\"M1.5 3.5C.5 3.5 0 4 0 5v6.5c0 1 .5 1.5 1.5 1.5h4c1 0 1.5-.5 1.5-1.5V5c0-1-.5-1.5-1.5-1.5zm2 1.2c.8 0 1.4.2 1.8.6.5.4.7 1 .7 1.7 0 .5-.2 1-.5 1.4-.2.3-.5.7-1 1l-.6.4c-.4.3-.6.4-.75.56-.15.14-.25.24-.35.44H6v1.3H1c0-.6.1-1.1.3-1.5.3-.6.7-1 1.5-1.6.7-.4 1.1-.8 1.28-1 .32-.3.42-.6.42-1 0-.3-.1-.6-.23-.8-.17-.2-.37-.3-.77-.3s-.7.1-.9.5c-.04.2-.1.5-.1.9H1.1c0-.6.1-1.1.3-1.5.4-.7 1.1-1.1 2.1-1.1zM10.54 3.54C9.5 3.54 9 4 9 5v6.5c0 1 .5 1.5 1.54 1.5h4c.96 0 1.46-.5 1.46-1.5V5c0-1-.5-1.46-1.5-1.46zm1.9.95c.7 0 1.3.2 1.7.5.4.4.6.8.6 1.4 0 .4-.1.8-.4 1.1-.2.2-.3.3-.5.4.1 0 .3.1.6.3.4.3.5.8.5 1.4 0 .6-.2 1.2-.6 1.6-.4.5-1.1.7-1.9.7-1 0-1.8-.3-2.2-1-.14-.29-.24-.69-.24-1.29h1.4c0 .3 0 .5.1.7.2.4.5.5 1 .5.3 0 .5-.1.7-.3.2-.2.3-.5.3-.8 0-.5-.2-.8-.6-.95-.2-.05-.5-.15-1-.15v-1c.5 0 .8-.1 1-.14.3-.1.5-.4.5-.9 0-.3-.1-.5-.2-.7-.2-.2-.4-.3-.7-.3-.3 0-.6.1-.75.3-.2.2-.2.5-.2.86h-1.34c0-.4.1-.7.19-1.1 0-.12.2-.32.4-.62.2-.2.4-.3.7-.4.3-.1.6-.1 1-.1z\"\n />\n </svg>\n <span data-l10n-id=\"spread_even_label\">Even Spreads</span>\n </button>\n\n <button\n type=\"button\"\n [class]=\"showPropertiesButton | negativeResponsiveCSSClass : ''\"\n id=\"documentProperties\"\n class=\"secondaryToolbarButton documentProperties\"\n title=\"Document Properties\u2026\"\n data-l10n-id=\"document_properties\"\n aria-controls=\"documentPropertiesDialog\"\n >\n <svg style=\"width: 16px; height: 16px; margin-top: 3px\" viewBox=\"0 0 16 16\">\n <path fill=\"currentColor\" d=\"M8 16a8 8 0 1 1 8-8 8.009 8.009 0 0 1-8 8zM8 2a6 6 0 1 0 6 6 6.006 6.006 0 0 0-6-6z\" />\n <path fill=\"currentColor\" d=\"M8 7a1 1 0 0 0-1 1v3a1 1 0 0 0 2 0V8a1 1 0 0 0-1-1z\" />\n <circle fill=\"currentColor\" cx=\"8\" cy=\"5\" r=\"1.188\" />\n </svg>\n <span data-l10n-id=\"document_properties_label\">Document Properties\u2026</span>\n </button>\n </div>\n </div>\n</ng-template>\n", styles: ["svg{position:absolute;display:inline-block;top:0;left:0}\n"] }]
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PDFNotificationService }]; }, propDecorators: { customSecondaryToolbar: [{
type: Input
}], secondaryToolbarTop: [{
type: Input
}], mobileFriendlyZoomScale: [{
type: Input
}], showPresentationModeButton: [{
type: Input
}], showOpenFileButton: [{
type: Input
}], showPrintButton: [{
type: Input
}], showDownloadButton: [{
type: Input
}], showPagingButtons: [{
type: Input
}], showRotateButton: [{
type: Input
}], showHandToolButton: [{
type: Input
}], showScrollingButton: [{
type: Input
}], showSpreadButton: [{
type: Input
}], showPropertiesButton: [{
type: Input
}], spreadChange: [{
type: Output
}], secondaryMenuIsEmpty: [{
type: Output
}], onResize: [{
type: HostListener,
args: ['window:resize']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXNlY29uZGFyeS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvc2Vjb25kYXJ5LXRvb2xiYXIvcGRmLXNlY29uZGFyeS10b29sYmFyL3BkZi1zZWNvbmRhcnktdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlci9zcmMvbGliL3NlY29uZGFyeS10b29sYmFyL3BkZi1zZWNvbmRhcnktdG9vbGJhci9wZGYtc2Vjb25kYXJ5LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVV0QyxNQUFNLE9BQU8sNEJBQTRCO0lBb0R2QyxZQUFvQixPQUFtQixFQUFTLG1CQUEyQztRQUF2RSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQVMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQXpDcEYsK0JBQTBCLEdBQXlCLElBQUksQ0FBQztRQUd4RCx1QkFBa0IsR0FBeUIsSUFBSSxDQUFDO1FBR2hELG9CQUFlLEdBQXlCLElBQUksQ0FBQztRQUc3Qyx1QkFBa0IsR0FBeUIsSUFBSSxDQUFDO1FBR2hELHNCQUFpQixHQUF5QixJQUFJLENBQUM7UUFHL0MscUJBQWdCLEdBQXlCLElBQUksQ0FBQztRQUc5Qyx1QkFBa0IsR0FBeUIsSUFBSSxDQUFDO1FBR2hELHdCQUFtQixHQUF5QixJQUFJLENBQUM7UUFHakQscUJBQWdCLEdBQXlCLElBQUksQ0FBQztRQUc5Qyx5QkFBb0IsR0FBeUIs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LFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7OzBIQW5MVSw0QkFBNEI7OEdBQTVCLDRCQUE0QiwyeUJDdkJ6Qyx1OWZBNFVBOzRGRHJUYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsdUJBQXVCO3NJQU0xQixzQkFBc0I7c0JBRDVCLEtBQUs7Z0JBSUMsbUJBQW1CO3NCQUR6QixLQUFLO2dCQUlDLHVCQUF1QjtzQkFEN0IsS0FBSztnQkFJQywwQkFBMEI7c0JBRGhDLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBSUMsb0JBQW9CO3NCQUQxQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLE1BQU07Z0JBSUEsb0JBQW9CO3NCQUQxQixNQUFNO2dCQW1EQSxRQUFRO3NCQURkLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSVBERlZpZXdlckFwcGxpY2F0aW9uIH0gZnJvbSAnLi4vLi4vb3B0aW9ucy9wZGYtdmlld2VyLWFwcGxpY2F0aW9uJztcbmltcG9ydCB7IFJlc3BvbnNpdmVWaXNpYmlsaXR5IH0gZnJvbSAnLi4vLi4vcmVzcG9uc2l2ZS12aXNpYmlsaXR5JztcbmltcG9ydCB7IFBERk5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3BkZi1ub3RpZmljYXRpb24tc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkZi1zZWNvbmRhcnktdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGYtc2Vjb25kYXJ5LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wZGYtc2Vjb25kYXJ5LXRvb2xiYXIuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQZGZTZWNvbmRhcnlUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY3VzdG9tU2Vjb25kYXJ5VG9vbGJhcjogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2Vjb25kYXJ5VG9vbGJhclRvcDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbW9iaWxlRnJpZW5kbHlab29tU2NhbGU6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1ByZXNlbnRhdGlvbk1vZGVCdXR0b246IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd09wZW5GaWxlQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dQcmludEJ1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93RG93bmxvYWRCdXR0b246IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1BhZ2luZ0J1dHRvbnM6IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1JvdGF0ZUJ1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93SGFuZFRvb2xCdXR0b246IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1Njcm9sbGluZ0J1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93U3ByZWFkQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dQcm9wZXJ0aWVzQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzcHJlYWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPCdvZmYnIHwgJ2V2ZW4nIHwgJ29kZCc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWNvbmRhcnlNZW51SXNFbXB0eSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgZGlzYWJsZVByZXZpb3VzUGFnZSA9IHRydWU7XG5cbiAgcHVibGljIGRpc2FibGVOZXh0UGFnZSA9IHRydWU7XG5cbiAgcHJpdmF