UNPKG

345 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngx-extended-pdf-viewer.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-default-options.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/verbosity-level.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/events/find-result.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dummy-components/pdf-dummy-components.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-notification-service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-cursor-tools.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pinch-on-mobile-support.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-viewer.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/unit-to-px.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer-server.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-hand-tool/pdf-hand-tool.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-bookmark/pdf-bookmark.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-context-menu/pdf-context-menu.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/document-properties/pdf-document-properties-overlay/pdf-document-properties-overlay.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-download/pdf-download.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-find-button/pdf-find-button.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-fuzzily/pdf-find-fuzzily.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-open-file/pdf-open-file.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-paging-area.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-presentation-mode/pdf-presentation-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-print/pdf-print.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page/pdf-rotate-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toolbar/pdf-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-select-tool/pdf-select-tool.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/dynamic-css/dynamic-css.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-light-theme/pdf-light-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-original-theme/pdf-original.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-dark-theme/pdf-dark-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/translate.pipe.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer-common.module.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.module.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer-server.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer-server.module.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-document-properties-extractor.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/link-target.ts","../../../projects/ngx-extended-pdf-viewer/src/public_api.ts","../../../projects/ngx-extended-pdf-viewer/src/ngx-extended-pdf-viewer.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","const _isIE11 = typeof window === 'undefined' ? false : !!(<any>window).MSInputMethodContext && !!(<any>document).documentMode;\nconst isEdge = typeof navigator === 'undefined' || /Edge\\/\\d./i.test(navigator.userAgent);\nconst needsES5 = typeof ReadableStream === 'undefined' || typeof Promise['allSettled'] === 'undefined';\n\nexport let pdfjsVersion = '2.10.562';\nexport let pdfjsBleedingEdgeVersion = '2.11.530';\nexport function getVersionSuffix(folder: string): string {\n if (folder && folder.includes('bleeding-edge')) {\n return pdfjsBleedingEdgeVersion;\n }\n return pdfjsVersion;\n}\n\nexport let pdfDefaultOptions = {\n cursorToolOnLoad: 0,\n defaultUrl: '',\n defaultZoomValue: undefined,\n disableHistory: false,\n disablePageLabels: false,\n enablePrintAutoRotate: false,\n enableWebGL: false,\n eventBusDispatchToDOM: false,\n externalLinkRel: 'noopener noreferrer nofollow',\n externalLinkTarget: 0,\n historyUpdateUrl: false,\n imageResourcesPath: './images/',\n maxCanvasPixels: 16777216,\n pdfBugEnabled: false,\n rangeChunkSize: 65536,\n removePageBorders: false,\n renderer: 'canvas',\n renderInteractiveForms: true, // until pdf.js 2.10\n renderForms: true, // since pdf.js 2.11\n sidebarViewOnLoad: -1,\n scrollModeOnLoad: -1,\n spreadModeOnLoad: -1,\n textLayerMode: 2,\n useOnlyCssZoom: false,\n viewOnLoad: 0,\n cMapPacked: true,\n cMapUrl: () => './' + pdfDefaultOptions.assetsFolder + '/cmaps/',\n disableAutoFetch: false,\n disableCreateObjectURL: false,\n disableFontFace: false,\n disableRange: false,\n disableStream: false,\n isEvalSupported: true,\n maxImageSize: -1,\n pdfBug: false,\n postMessageTransfers: true,\n verbosity: 1,\n workerPort: null,\n assetsFolder: 'assets',\n sandboxBundleSrc: () =>\n _isIE11 || isEdge || needsES5\n ? './' + pdfDefaultOptions.assetsFolder + '/pdf.sandbox-' + getVersionSuffix(pdfDefaultOptions.assetsFolder) + '-es5.js'\n : './' + pdfDefaultOptions.assetsFolder + '/pdf.sandbox-' + getVersionSuffix(pdfDefaultOptions.assetsFolder) + '.js',\n workerSrc: () =>\n _isIE11 || isEdge || needsES5\n ? './' + pdfDefaultOptions.assetsFolder + '/pdf.worker-' + getVersionSuffix(pdfDefaultOptions.assetsFolder) + '-es5.js'\n : './' + pdfDefaultOptions.assetsFolder + '/pdf.worker-' + getVersionSuffix(pdfDefaultOptions.assetsFolder) + '.js',\n\n // options specific to ngx-extended-pdf-viewer (as opposed to being used by pdf.js)\n doubleTapZoomFactor: 'page-width',\n enableScripting: true,\n defaultCacheSize: 50\n};\n\nif (typeof window !== 'undefined') {\n if ((<any>window).pdfDefaultOptions) {\n pdfDefaultOptions = (<any>window).pdfDefaultOptions;\n } else {\n (<any>window).pdfDefaultOptions = pdfDefaultOptions;\n }\n}\n","export enum VerbosityLevel {\n ERRORS = 0,\n WARNINGS = 1,\n INFOS = 5\n};\n","export enum FindState {\n FOUND = 0,\n NOT_FOUND = 1,\n WRAPPED = 2,\n PENDING = 3\n}\n\nexport interface FindResultMatchesCount {\n current?: number;\n total?: number;\n matches?: Array<any>;\n matchesLength?: Array<any>;\n matchesColor?: Array<any>;\n\n}\n\nexport interface FindResult {\n state: FindState;\n previous: any;\n matchesCount: FindResultMatchesCount;\n}\n","import { Component } from '@angular/core';\n\n/** List of all field that can be customized */\nconst requiredIds = [\n 'toolbarViewer',\n 'numPages',\n 'pageNumber',\n 'scaleSelectContainer',\n 'customScaleOption',\n 'previous',\n 'next',\n 'zoomIn',\n 'zoomOut',\n 'viewFind',\n 'openFile',\n 'print',\n 'presentationMode',\n 'download',\n 'viewBookmark',\n 'secondaryToolbar',\n 'secondaryToolbarToggle',\n 'secondaryToolbarButtonContainer',\n 'secondaryPresentationMode',\n 'secondaryOpenFile',\n 'secondaryPrint',\n 'secondaryDownload',\n 'secondaryViewBookmark',\n 'firstPage',\n 'lastPage',\n 'pageRotateCw',\n 'pageRotateCcw',\n 'cursorSelectTool',\n 'cursorHandTool',\n 'scrollVertical',\n 'scrollHorizontal',\n 'scrollWrapped',\n 'spreadNone',\n 'spreadOdd',\n 'spreadEven',\n 'documentProperties',\n 'contextFirstPage',\n 'contextLastPage',\n 'contextPageRotateCw',\n 'contextPageRotateCcw',\n 'currentOutlineItem',\n 'outerContainer',\n 'viewerContainer',\n 'sidebarToggle',\n 'viewThumbnail',\n 'viewOutline',\n 'viewAttachments',\n 'thumbnailView',\n 'outlineView',\n 'attachmentsView',\n 'outerContainer',\n 'sidebarResizer',\n 'outlineOptionsContainer',\n 'findbar',\n 'viewFind',\n 'findInput',\n 'findInputMultiline',\n 'findHighlightAll',\n 'findMatchCase',\n 'findEntireWord',\n 'findMultipleSearchTexts',\n 'findIgnoreAccents',\n 'findMsg',\n 'findResultsCount',\n 'findPrevious',\n 'findNext',\n 'findFuzzy',\n 'passwordOverlay',\n 'passwordText',\n 'password',\n 'passwordSubmit',\n 'passwordCancel',\n 'documentPropertiesOverlay',\n 'documentPropertiesClose',\n 'fileNameField',\n 'fileSizeField',\n 'titleField',\n 'authorField',\n 'subjectField',\n 'keywordsField',\n 'creationDateField',\n 'modificationDateField',\n 'creatorField',\n 'producerField',\n 'versionField',\n 'pageCountField',\n 'pageSizeField',\n 'linearizedField',\n 'errorWrapper',\n 'errorMessage',\n 'errorClose',\n 'errorMoreInfo',\n 'errorShowMore',\n 'errorShowLess',\n 'scaleSelectContainer',\n 'viewAttachments',\n 'viewLayers',\n 'viewThumbnail',\n 'viewOutline',\n];\n\n@Component({\n selector: 'pdf-dummy-components',\n templateUrl: './pdf-dummy-components.component.html'\n})\nexport class PdfDummyComponentsComponent {\n private dummyComponentsContainer: Element;\n\n public addMissingStandardWidgets(): void {\n this.dummyComponentsContainer = document.getElementsByClassName('dummy-pdf-viewer-components')[0];\n const container = this.dummyComponentsContainer as HTMLElement;\n if (container) {\n for (let i = 0; i < container.children.length; i++) {\n const child = container.firstChild;\n if (child) {\n container.removeChild(child);\n }\n }\n }\n\n requiredIds.forEach(id => {\n if (this.needsDummyWidget(id)) {\n const dummy = document.createElement('span');\n dummy.id = id;\n dummy.className = 'invisible dummy-component';\n this.dummyComponentsContainer.appendChild(dummy);\n }\n });\n\n if (this.needsDummyWidget('scaleSelect')) {\n const dummy = document.createElement('select');\n dummy.id = 'scaleSelect';\n dummy.className = 'invisible dummy-component';\n this.dummyComponentsContainer.appendChild(dummy);\n }\n }\n\n private needsDummyWidget(id: string): boolean {\n const widget = document.getElementById(id);\n if (!widget) {\n return true;\n }\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject, ReplaySubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PDFNotificationService {\n // this event is fired when the pdf.js library has been loaded and objects like PDFApplication are available\n public onPDFJSInit = new Subject<void>();\n\n public pdfjsVersion = new ReplaySubject<string>(1);\n\n constructor() {\n if (typeof window !== 'undefined') {\n if ((window as any).pdfjsLib && (window as any).pdfjsLib.version) {\n this.pdfjsVersion.next((window as any).pdfjsLib.version);\n } else {\n this.onPDFJSInit.subscribe(() => {\n this.pdfjsVersion.next((window as any).pdfjsLib.version);\n });\n }\n }\n }\n}\n","export enum PdfCursorTools {\n SELECT = 0,\n HAND = 1,\n ZOOM = 2\n}\n","import { NgZone } from '@angular/core';\nimport { IPDFViewerApplicationOptions } from './options/pdf-viewer-application-options';\n\nexport class PinchOnMobileSupport {\n private viewer: any;\n private startX = 0;\n private startY = 0;\n private initialPinchDistance = 0;\n private pinchScale = 1;\n\n private boundOnViewerTouchStart: any;\n private boundOnViewerTouchMove: any;\n private boundOnViewerTouchEnd: any;\n\n constructor(private _zone: NgZone) {\n this.boundOnViewerTouchStart = this.onViewerTouchStart.bind(this);\n this.boundOnViewerTouchMove = this.onViewerTouchMove.bind(this);\n this.boundOnViewerTouchEnd = this.onViewerTouchEnd.bind(this);\n\n this.initializePinchZoom();\n }\n\n private isMobile() {\n return ('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || ((<any>navigator).msMaxTouchPoints > 0);\n }\n\n private onViewerTouchStart(event: TouchEvent): void {\n this.initialPinchDistance = 0;\n\n if (event.touches.length === 2) {\n const container = document.getElementById('viewerContainer') as HTMLDivElement;\n const rect = container.getBoundingClientRect();\n if (event.touches[0].pageX >= rect.left && event.touches[0].pageX <= rect.right) {\n if (event.touches[0].pageY >= (rect.top + window.scrollY) && event.touches[0].pageY <= (rect.bottom + window.scrollY)) {\n if (event.touches[1].pageX >= rect.left && event.touches[1].pageX <= rect.right) {\n if (event.touches[1].pageY >= (rect.top + window.scrollY) && event.touches[1].pageY <= (rect.bottom + window.scrollY)) {\n this.startX = (event.touches[0].pageX + event.touches[1].pageX) / 2;\n this.startY = (event.touches[0].pageY + event.touches[1].pageY) / 2;\n this.initialPinchDistance = Math.hypot(event.touches[1].pageX - event.touches[0].pageX, event.touches[1].pageY - event.touches[0].pageY);\n\n if (event.cancelable) {\n event.preventDefault();\n }\n event.stopPropagation();\n }\n }\n }\n }\n }\n }\n\n private onViewerTouchMove(event: TouchEvent): void {\n const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = (window as any).PDFViewerApplicationOptions;\n const PDFViewerApplication: any = (window as any).PDFViewerApplication;\n\n if (this.initialPinchDistance <= 0 || event.touches.length !== 2) {\n return;\n }\n\n const pinchDistance = Math.hypot(event.touches[1].pageX - event.touches[0].pageX, event.touches[1].pageY - event.touches[0].pageY);\n const container = document.getElementById('viewerContainer') as HTMLDivElement;\n const originX = this.startX + container.scrollLeft;\n const originY = this.startY + container.scrollTop;\n this.pinchScale = pinchDistance / this.initialPinchDistance;\n let minZoom = Number(PDFViewerApplicationOptions.get('minZoom'));\n if (!minZoom) {\n minZoom = 0.1;\n }\n\n const currentZoom = PDFViewerApplication.pdfViewer._currentScale;\n if (currentZoom * this.pinchScale < minZoom) {\n this.pinchScale = minZoom / currentZoom;\n }\n let maxZoom = Number(PDFViewerApplicationOptions.get('maxZoom'));\n if (!maxZoom) {\n maxZoom = 10;\n }\n if (currentZoom * this.pinchScale > maxZoom) {\n this.pinchScale = maxZoom / currentZoom;\n }\n this.viewer.style.transform = `scale(${this.pinchScale})`;\n this.viewer.style.transformOrigin = `${originX}px ${originY}px`;\n\n if (event.cancelable) {\n event.preventDefault();\n }\n event.stopPropagation();\n }\n\n private onViewerTouchEnd(event: TouchEvent): void {\n const PDFViewerApplication: any = (window as any).PDFViewerApplication;\n if (this.initialPinchDistance <= 0) {\n return;\n }\n this.viewer.style.transform = `none`;\n this.viewer.style.transformOrigin = `unset`;\n PDFViewerApplication.pdfViewer.currentScale *= this.pinchScale;\n const container = document.getElementById('viewerContainer') as HTMLDivElement;\n const rect = container.getBoundingClientRect();\n const dx = this.startX - rect.left;\n const dy = this.startY - rect.top;\n container.scrollLeft += dx * (this.pinchScale - 1);\n container.scrollTop += dy * (this.pinchScale - 1);\n this.resetPinchZoomParams();\n\n if (event.cancelable) {\n event.preventDefault();\n }\n event.stopPropagation();\n }\n\n private resetPinchZoomParams(): void {\n this.startX = this.startY = this.initialPinchDistance = 0;\n this.pinchScale = 1;\n }\n\n public initializePinchZoom(): void {\n if (!this.isMobile()) {\n return;\n }\n this.viewer = document.getElementById('viewer');\n this._zone.runOutsideAngular(() => {\n document.addEventListener('touchstart', this.boundOnViewerTouchStart);\n document.addEventListener('touchmove', this.boundOnViewerTouchMove, { passive: false });\n document.addEventListener('touchend', this.boundOnViewerTouchEnd);\n });\n }\n\n public destroyPinchZoom(): void {\n if (!this.isMobile()) {\n return;\n }\n document.removeEventListener('touchstart', this.boundOnViewerTouchStart);\n document.removeEventListener('touchmove', this.boundOnViewerTouchMove);\n document.removeEventListener('touchend', this.boundOnViewerTouchEnd);\n }\n}\n","export enum ScrollModeType {\n vertical = 0,\n horizontal = 1,\n wrapped = 2\n}\n\nexport enum SpreadModeType {\n UNKNOWN = -1,\n NONE = 0, // Default value.\n ODD = 1,\n EVEN = 2,\n}\n\nexport type PageViewModeType = 'single' | 'book' | 'multiple' | 'infinite-scroll';\n\nexport interface ScrollModeChangedEvent {\n mode: ScrollModeType;\n}\nexport interface IPDFRenderingQueue {\n getHighestPriority(visiblePage: Array<any>, pages: Array<any>, scrolledDown: boolean, preRenderExtra: boolean);\n}\nexport interface IPDFViewer {\n currentPageLabel: string | undefined;\n currentPageNumber: number;\n currentScaleValue: string | number;\n pagesRotation: 0 | 90 | 180 | 270;\n removePageBorders: boolean;\n renderingQueue: IPDFRenderingQueue;\n scrollMode: ScrollModeType;\n spreadMode: 0 | 1 | 2;\n _pages: Array<any>;\n addPageToRenderQueue(pageIndex: number): boolean;\n _getVisiblePages(): Array<any>;\n}\n","export class UnitToPx {\n // cache this.con, el for reused\n private static con: HTMLDivElement | undefined = undefined;\n private static el: HTMLDivElement | undefined = undefined;\n\n // high sample will more accurate?\n private static readonly sample = 100;\n\n private static pxPerUnitCache: { [key: string]: number } = {};\n\n private static initElements(): void {\n if (!document) {\n return;\n }\n if (!this.con || !this.el) {\n this.con = document.createElement('div');\n this.el = document.createElement('div');\n }\n this.con.style.position = 'absolute';\n this.con.style.width = '0';\n this.con.style.height = '0';\n this.con.style.visibility = 'hidden';\n this.con.style.overflow = 'hidden';\n this.con.appendChild(this.el);\n }\n\n private static pxPerUnit(unit: string): number {\n if (!this.pxPerUnitCache[unit]) {\n if (!this.con || !this.el) {\n this.initElements();\n }\n if (!this.con || !this.el) {\n // dummy implementation for server-side rendering\n return 1;\n }\n this.el.style.width = this.sample + unit;\n document.body.appendChild(this.con);\n const dimension = this.el.getBoundingClientRect();\n this.con.parentNode!.removeChild(this.con);\n this.pxPerUnitCache[unit] = dimension.width / this.sample;\n }\n return this.pxPerUnitCache[unit];\n }\n\n public static toPx(length): number {\n const unitRe = /^\\s*([+-]?[\\d\\.]*)\\s*(.*)\\s*$/i;\n const match = unitRe.exec(length);\n if (match != null && match.length > 2) {\n const bare = match[1] === '';\n const val = bare ? 1 : Number(match[1]);\n const unit = match[2];\n const valid = !isNaN(val) && unit;\n if (valid) {\n return unit === 'px' ? val : this.pxPerUnit(unit) * val;\n }\n }\n throw new TypeError('Error parsing length');\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n HostListener,\n NgZone,\n TemplateRef,\n Inject,\n PLATFORM_ID,\n ViewChild,\n OnInit,\n} from '@angular/core';\nimport { PlatformLocation } from '@angular/common';\nimport { PagesLoadedEvent } from './events/pages-loaded-event';\nimport { PageRenderedEvent } from './events/page-rendered-event';\nimport { PdfDownloadedEvent } from './events/pdf-downloaded-event';\nimport { PdfLoadedEvent } from './events/pdf-loaded-event';\nimport { getVersionSuffix, pdfDefaultOptions } from './options/pdf-default-options';\nimport { ScaleChangingEvent } from './events/scale-changing-event';\nimport { PagesRotationEvent } from './events/pages-rotation-event';\nimport { FileInputChanged } from './events/file-input-changed';\nimport { SidebarviewChange } from './events/sidebarview-changed';\nimport { HandtoolChanged } from './events/handtool-changed';\nimport { PageNumberChange } from './events/page-number-change';\nimport { ServiceWorkerOptionsType } from './options/service-worker-options';\nimport { VerbosityLevel } from './options/verbosity-level';\nimport { FindState, FindResultMatchesCount, FindResult } from './events/find-result';\nimport { isPlatformBrowser } from '@angular/common';\nimport { PdfDummyComponentsComponent } from './pdf-dummy-components/pdf-dummy-components.component';\nimport { AfterViewInit, ElementRef } from '@angular/core';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\nimport { IPDFViewerApplicationOptions } from './options/pdf-viewer-application-options';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { PDFNotificationService } from './pdf-notification-service';\nimport { PdfCursorTools } from './options/pdf-cursor-tools';\nimport { TextLayerRenderedEvent } from './events/textlayer-rendered';\nimport { Location } from '@angular/common';\nimport { PinchOnMobileSupport } from './pinch-on-mobile-support';\nimport { PdfThumbnailDrawnEvent } from './events/pdf-thumbnail-drawn-event';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { PageViewModeType, ScrollModeChangedEvent, ScrollModeType } from './options/pdf-viewer';\nimport { PdfDocumentLoadedEvent } from './events/document-loaded-event';\nimport { ProgressBarEvent } from './events/progress-bar-event';\nimport { UnitToPx } from './unit-to-px';\nimport { PageRenderEvent } from './events/page-render-event';\nimport { Annotation } from './Annotation';\n\ndeclare const ServiceWorkerOptions: ServiceWorkerOptionsType; // defined in viewer.js\ndeclare class ResizeObserver {\n constructor(param: () => void);\n public observe(div: HTMLElement);\n}\n\ninterface ElementAndPosition {\n element: HTMLElement;\n x: number;\n y: number;\n}\n\nexport interface FormDataType {\n [fieldName: string]: string | number | boolean | string[];\n}\n\n@Component({\n selector: 'ngx-extended-pdf-viewer',\n templateUrl: './ngx-extended-pdf-viewer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxExtendedPdfViewerComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n public static ngxExtendedPdfViewerInitialized = false;\n public ngxExtendedPdfViewerIncompletelyInitialized = true;\n\n /**\n * The dummy components are inserted automatically when the user customizes the toolbar\n * without adding every original toolbar item. Without the dummy components, the\n * initialization code of pdf.js crashes because it assume that every standard widget is there.\n */\n @ViewChild(PdfDummyComponentsComponent)\n public dummyComponents: PdfDummyComponentsComponent;\n\n @ViewChild('root')\n public root: ElementRef;\n\n private pinchOnMobileSupport: PinchOnMobileSupport | undefined;\n\n /* UI templates */\n @Input()\n public customFindbarInputArea: TemplateRef<any> | undefined;\n\n @Input()\n public customToolbar: TemplateRef<any> | undefined;\n\n @Input()\n public customFindbar: TemplateRef<any> | undefined;\n\n @Input()\n public customFindbarButtons: TemplateRef<any> | undefined;\n\n @Input()\n public customSecondaryToolbar: TemplateRef<any> | undefined;\n\n @Input()\n public customSidebar: TemplateRef<any> | undefined;\n\n @Input()\n public customThumbnail: TemplateRef<any> | undefined;\n\n @Input()\n public customFreeFloatingBar: TemplateRef<any> | undefined;\n\n @Input()\n public enableDragAndDrop = true;\n\n @Input()\n public formData: FormDataType = {};\n\n /** Maps the internal ids of the annotations of pdf.js to their field name */\n private formIdToFieldName = {};\n private formRadioButtonValueToId = {};\n\n @Output()\n public formDataChange = new EventEmitter<FormDataType>();\n\n public _pageViewMode: PageViewModeType = 'multiple';\n\n public baseHref: string;\n\n public get pageViewMode(): PageViewModeType {\n return this._pageViewMode;\n }\n\n @Input()\n public set pageViewMode(viewMode: PageViewModeType) {\n this._pageViewMode = viewMode;\n if (viewMode === 'infinite-scroll') {\n this.scrollMode = ScrollModeType.vertical;\n this.spread = 'off';\n } else if (viewMode !== 'multiple') {\n this.scrollMode = ScrollModeType.vertical;\n }\n if (viewMode === 'book') {\n this.showBorders = false;\n }\n }\n\n @Output()\n public progress = new EventEmitter<ProgressBarEvent>();\n\n @ViewChild('pdfSecondaryToolbarComponent')\n private secondaryToolbarComponent: PdfSecondaryToolbarComponent;\n\n @ViewChild('pdfsidebar')\n private sidebarComponent: PdfSidebarComponent;\n\n /* regular attributes */\n\n private _src: string | ArrayBuffer | Uint8Array | { range: any } | undefined;\n\n @Output()\n public srcChange = new EventEmitter<string>();\n\n @Input()\n public scrollMode: ScrollModeType | undefined = undefined;\n\n @Output()\n public scrollModeChange = new EventEmitter<ScrollModeType>();\n\n @Input()\n public authorization: Object | undefined = undefined;\n\n @Input()\n public httpHeaders: Object | undefined = undefined;\n\n @Input()\n public contextMenuAllowed = true;\n\n @Output()\n public afterPrint = new EventEmitter<void>();\n\n @Output()\n public beforePrint = new EventEmitter<void>();\n\n @Output()\n public currentZoomFactor = new EventEmitter<number>();\n\n /** This field stores the previous zoom level if the page is enlarged with a double-tap or double-click */\n private previousZoom: string | number | undefined;\n\n @Input()\n public enablePrint = true;\n\n /**\n * Number of milliseconds to wait between initializing the PDF viewer and loading the PDF file.\n * Most users can let this parameter safely at it's default value of zero.\n * Set this to 1000 or higher if you run into timing problems (typically caused by loading the locale files\n * after the PDF files, so they are not available when the PDF viewer is initialized).\n */\n @Input()\n public delayFirstView = 0;\n\n /** store the timeout id so it can be canceled if user leaves the page before the PDF is shown */\n private initTimeout: any;\n\n /** How many log messages should be printed?\n * Legal values: VerbosityLevel.INFOS (= 5), VerbosityLevel.WARNINGS (= 1), VerbosityLevel.ERRORS (= 0) */\n @Input()\n public logLevel = VerbosityLevel.WARNINGS;\n\n @Input()\n public enablePinchOnMobile = false;\n\n /** Use the minified (minifiedJSLibraries=\"true\", which is the default) or the user-readable pdf.js library (minifiedJSLibraries=\"false\") */\n @Input()\n public minifiedJSLibraries = true;\n\n public primaryMenuVisible = true;\n\n /** option to increase (or reduce) print resolution. Default is 150 (dpi). Sensible values\n * are 300, 600, and 1200. Note the increase memory consumption, which may even result in a browser crash. */\n @Input()\n public printResolution = null;\n\n @Input()\n public rotation: 0 | 90 | 180 | 270;\n\n @Output()\n public rotationChange = new EventEmitter<0 | 90 | 180 | 270>();\n\n public hasSignature: boolean;\n\n @Input()\n public set src(url: string | ArrayBuffer | Blob | Uint8Array | URL | { range: any }) {\n if (url instanceof Uint8Array) {\n this._src = url.buffer;\n } else if (url instanceof URL) {\n this._src = url.toString();\n } else if (typeof Blob !== 'undefined' && url instanceof Blob) {\n // additional check introduced to support server side rendering\n const reader = new FileReader();\n reader.onloadend = () => {\n setTimeout(() => {\n this.src = new Uint8Array(reader.result as ArrayBuffer);\n if (NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n if (this.ngxExtendedPdfViewerIncompletelyInitialized) {\n this.openPDF();\n } else {\n (async () => await this.openPDF2())();\n }\n // else openPDF is called later, so we do nothing to prevent loading the PDF file twice\n }\n });\n };\n reader.readAsArrayBuffer(url);\n } else if (typeof url === 'string') {\n this._src = url;\n if (url.length > 980) {\n // minimal length of a base64 encoded PDF\n if (url.length % 4 === 0) {\n if (/^[a-zA-Z\\d\\/+]+={0,2}$/.test(url)) {\n console.error('The URL looks like a base64 encoded string. If so, please use the attribute [base64Src] instead of [src]');\n }\n }\n }\n } else {\n (this._src as any) = url;\n }\n }\n\n @Input()\n public set base64Src(base64: string | null | undefined) {\n if (base64) {\n const binary_string = window.atob(base64);\n const len = binary_string.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n this.src = bytes.buffer;\n } else {\n this._src = undefined;\n }\n }\n\n /**\n * The combination of height, minHeight, and autoHeight ensures the PDF height of the PDF viewer is calculated correctly when the height is a percentage.\n * By default, many CSS frameworks make a div with 100% have a height or zero pixels. checkHeigth() fixes this.\n */\n private autoHeight = false;\n\n public minHeight: string | undefined = undefined;\n\n private _height = '100%';\n\n @Input()\n public set height(h: string) {\n this.minHeight = undefined;\n this.autoHeight = false;\n if (h) {\n this._height = h;\n } else {\n this.height = '100%';\n }\n setTimeout(() => {\n this.checkHeight();\n });\n }\n\n public get height() {\n return this._height;\n }\n\n /**\n * If this flag is true, this components adds a link to the locale assets. The pdf viewer\n * sees this link and uses it to load the locale files automatically.\n * @param useBrowserLocale boolean\n */\n @Input()\n public useBrowserLocale = false;\n\n @Input()\n public backgroundColor = '#e8e8eb';\n\n @Input()\n public pdfBackgroundColor = '#FFF';\n\n /** Allows the user to define the name of the file after clicking \"download\" */\n @Input()\n public filenameForDownload: string | undefined = undefined;\n\n /** Allows the user to disable the keyboard bindings completely */\n @Input()\n public ignoreKeyboard = false;\n\n /** Allows the user to disable a list of key bindings. */\n @Input()\n public ignoreKeys: Array<string> = [];\n\n /** Allows the user to enable a list of key bindings explicitly. If this property is set, every other key binding is ignored. */\n @Input()\n public acceptKeys: Array<string> = [];\n\n /** Allows the user to put the viewer's svg images into an arbitrary folder */\n @Input()\n public imageResourcesPath = './' + pdfDefaultOptions.assetsFolder + '/images/';\n\n /** Allows the user to put their locale folder into an arbitrary folder */\n @Input()\n public localeFolderPath = './' + pdfDefaultOptions.assetsFolder + '/locale';\n\n /** Override the default locale. This must be the complete locale name, such as \"es-ES\". The string is allowed to be all lowercase.\n */\n @Input()\n public language: string | undefined = undefined;\n\n /** By default, listening to the URL is deactivated because often the anchor tag is used for the Angular router */\n @Input()\n public listenToURL = false;\n\n /** Navigate to a certain \"named destination\" */\n @Input()\n public nameddest: string | undefined = undefined;\n\n /** allows you to pass a password to read password-protected files */\n @Input()\n public password: string | undefined = undefined;\n\n public _showSidebarButton = true;\n\n public viewerPositionTop = '32px';\n\n /** pdf.js can show signatures, but fails to verify them. So they are switched off by default.\n * Set \"[showUnverifiedSignatures]\"=\"true\" to display e-signatures nonetheless.\n */\n @Input()\n public showUnverifiedSignatures = false;\n\n @Input()\n public startTabindex: number | undefined;\n\n public get showSidebarButton() {\n return this._showSidebarButton;\n }\n @Input()\n public set showSidebarButton(show: boolean) {\n this._showSidebarButton = show;\n const isIE = /msie\\s|trident\\//i.test(window.navigator.userAgent);\n let factor = 1;\n if (isIE) {\n factor = Number((this._mobileFriendlyZoom || '100').replace('%', '')) / 100;\n }\n\n if (this._showSidebarButton) {\n this.findbarLeft = (68 * factor).toString() + 'px';\n } else {\n this.findbarLeft = '0px';\n }\n }\n\n @Input()\n public sidebarVisible: boolean | undefined = undefined;\n\n @Output()\n public sidebarVisibleChange = new EventEmitter<boolean>();\n\n @Input()\n public showFindButton: boolean | undefined = undefined;\n @Input()\n public showPagingButtons = true;\n @Input()\n public showZoomButtons = true;\n @Input()\n public showPresentationModeButton = false;\n @Input()\n public showOpenFileButton = true;\n @Input()\n public showPrintButton = true;\n @Input()\n public showDownloadButton = true;\n @Input()\n public showBookmarkButton = true;\n\n @Input()\n public theme: 'dark' | 'light' | 'custom' | string = 'light';\n\n @Input()\n public showToolbar = true;\n\n @Input()\n public showSecondaryToolbarButton = true;\n\n /** Set by the event (secondaryMenuIsEmpty) */\n public hideKebabMenuForSecondaryToolbar = false;\n\n @Input()\n public showRotateButton = true;\n @Input()\n public handTool = true;\n @Output()\n public handToolChange = new EventEmitter<boolean>();\n @Input()\n public showHandToolButton = false;\n\n private _showScrollingButton = true;\n\n public get showScrollingButton() {\n if (this.pageViewMode === 'multiple') {\n return this._showScrollingButton;\n }\n return false;\n }\n\n @Input()\n public set showScrollingButton(val: any) {\n this._showScrollingButton = val;\n }\n\n private _showSpreadButton = true;\n\n public get showSpreadButton() {\n if (this.pageViewMode !== 'infinite-scroll') {\n return this._showSpreadButton;\n }\n return false;\n }\n\n @Input()\n public set showSpreadButton(val: any) {\n this._showSpreadButton = val;\n }\n\n @Input()\n public showPropertiesButton = true;\n @Input()\n public showBorders = true;\n\n @Input()\n public spread: 'off' | 'even' | 'odd';\n\n @Output()\n public spreadChange = new EventEmitter<'off' | 'even' | 'odd'>();\n\n @Output()\n public thumbnailDrawn = new EventEmitter<PdfThumbnailDrawnEvent>();\n\n private _page: number | undefined = undefined;\n\n public get page(): number | undefined {\n return this._page;\n }\n\n @Input()\n public set page(p: number | undefined) {\n if (p) {\n // silently cope with strings\n this._page = Number(p);\n } else {\n this._page = undefined;\n }\n }\n\n @Output()\n public pageChange = new EventEmitter<number | undefined>();\n\n @Input()\n public pageLabel: string | undefined = undefined;\n\n @Output()\n public pageLabelChange = new EventEmitter<string | undefined>();\n\n @Output()\n public pagesLoaded = new EventEmitter<PagesLoadedEvent>();\n\n @Output()\n public pageRender = new EventEmitter<PageRenderEvent>();\n\n @Output()\n public pageRendered = new EventEmitter<PageRenderedEvent>();\n\n @Output()\n public pdfDownloaded = new EventEmitter<PdfDownloadedEvent>();\n\n @Output()\n public pdfLoaded = new EventEmitter<PdfLoadedEvent>();\n\n @Output()\n public pdfLoadingFailed = new EventEmitter<Error>();\n\n @Input()\n public textLayer: boolean | undefined = undefined;\n\n @Output()\n public textLayerRendered = new EventEmitter<TextLayerRenderedEvent>();\n\n @Output()\n public updateFindMatchesCount = new EventEmitter<FindResultMatchesCount>();\n\n @Output()\n public updateFindState = new EventEmitter<FindState>();\n\n /** Legal values: undefined, 'auto', 'page-actual', 'page-fit', 'page-width', or '50' (or any other percentage) */\n @Input()\n public zoom: string | number | undefined = undefined;\n\n @Output()\n public zoomChange = new EventEmitter<string | number | undefined>();\n\n @Input()\n public zoomLevels = ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 1, 1.25, 1.5, 2, 3, 4];\n\n @Input()\n public maxZoom = 10;\n\n @Input()\n public minZoom = 0.1;\n\n /** This attribute allows you to increase the size of the UI elements so you can use them on small mobile devices.\n * This attribute is a string with a percent character at the end (e.g. \"150%\").\n */\n @Input() _mobileFriendlyZoom: string = '100%';\n\n public mobileFriendlyZoomScale = 1;\n\n public toolbarMarginTop = '0px';\n\n public toolbarWidth = '100%';\n\n public toolbarWidthInPixels = 100;\n\n public secondaryToolbarTop: string | undefined = undefined;\n\n public sidebarPositionTop: string | undefined = undefined;\n\n // dirty IE11 hack - temporary solution\n public findbarTop: string | undefined = undefined;\n\n // dirty IE11 hack - temporary solution\n public findbarLeft: string | undefined = undefined;\n\n // Additional PDF Form Field Types #567: Used to store the exported values of radio and checkbox buttons\n public buttonValues: any = {};\n\n public get mobileFriendlyZoom() {\n return this._mobileFriendlyZoom;\n }\n /**\n * This attributes allows you to increase the size of the UI elements so you can use them on small mobile devices.\n * This attribute is a string with a percent character at the end (e.g. \"150%\").\n */\n @Input()\n public set mobileFriendlyZoom(zoom: string) {\n // tslint:disable-next-line:triple-equals - the type conversion is intended\n if (zoom == 'true') {\n zoom = '150%';\n // tslint:disable-next-line:triple-equals - the type conversion is intended\n } else if (zoom == 'false' || zoom === undefined || zoom === null) {\n zoom = '100%';\n }\n this._mobileFriendlyZoom = zoom;\n let factor = 1;\n if (!String(zoom).includes('%')) {\n zoom = 100 * Number(zoom) + '%';\n }\n factor = Number((zoom || '100').replace('%', '')) / 100;\n this.mobileFriendlyZoomScale = factor;\n this.toolbarWidth = (100 / factor).toString() + '%';\n this.toolbarMarginTop = (factor - 1) * 16 + 'px';\n\n setTimeout(() => this.calcViewerPositionTop());\n }\n\n private shuttingDown = false;\n\n public calcViewerPositionTop(): void {\n const toolbar = document.getElementsByClassName('toolbar')[0] as HTMLElement;\n if (toolbar === undefined) {\n return;\n }\n let top = toolbar.getBoundingClientRect().height;\n this.viewerPositionTop = top + 'px';\n\n const factor = top / 33;\n\n this.sidebarPositionTop = (33 + 33 * (factor - 1)).toString() + 'px';\n this.secondaryToolbarTop = (33 + 38 * (factor - 1)).toString() + 'px';\n this.findbarTop = (34 + 54 * (factor - 1)).toString() + 'px';\n\n const findButton = document.getElementById('viewFind');\n if (findButton) {\n const containerPositionLeft = toolbar.getBoundingClientRect().left;\n const findButtonPosition = findButton.getBoundingClientRect();\n const left = findButtonPosition.left - containerPositionLeft;\n this.findbarLeft = left + 'px';\n } else if (this.showSidebarButton) {\n this.findbarLeft = 34 + (32 * factor).toString() + 'px';\n } else {\n this.findbarLeft = '0px';\n }\n }\n\n constructor(\n private ngZone: NgZone,\n @Inject(PLATFORM_ID) private platformId,\n private notificationService: PDFNotificationService,\n private location: Location,\n private elementRef: ElementRef,\n private platformLocation: PlatformLocation\n ) {\n this.baseHref = this.platformLocation.getBaseHrefFromDOM();\n }\n\n private iOSVersionRequiresES5(): boolean {\n const match = navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n if (match !== undefined && match !== null) {\n return parseInt(match[1], 10) < 14;\n }\n\n return false;\n }\n\n private needsES5() {\n const isIE = !!(<any>window).MSInputMethodContext && !!(<any>document).documentMode;\n const isEdge = /Edge\\/\\d./i.test(navigator.userAgent);\n const isIOs13OrBelow = this.iOSVersionRequiresES5();\n let needsES5 = typeof ReadableStream === 'undefined' || typeof Promise['allSettled'] === 'undefined';\n needsES5 = needsES5 || isIE || isEdge || isIOs13OrBelow || !this.ngxBrowserSupportsNullSafeChaining();\n return needsES5;\n }\n\n private ngxBrowserSupportsNullSafeChaining(): boolean {\n return !!Promise['allSettled'];\n }\n\n private loadViewer(): void {\n this.ngZone.runOutsideAngular(() => {\n if (!window['pdfjs-dist/build/pdf']) {\n setTimeout(() => this.loadViewer(), 25);\n } else {\n let needsES5 = this.needsES5();\n const suffix = this.minifiedJSLibraries ? '.min.js' : '.js';\n const script2 = document.createElement('script');\n const assets = pdfDefaultOptions.assetsFolder;\n const versionSuffix = getVersionSuffix(assets);\n\n if (needsES5) {\n console.log('Using the ES5 version of the PDF viewer.');\n }\n\n script2.src = this.location.normalize(needsES5 ? assets + '/viewer-' + versionSuffix + '-es5' + suffix : assets + '/viewer-' + versionSuffix + suffix);\n script2.type = 'text/javascript';\n script2.async = true;\n document.getElementsByTagName('head')[0].appendChild(script2);\n }\n })\n\n }\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n const link = document.createElement('link');\n link.href = this.localeFolderPath + '/locale.properties';\n link.setAttribute('origin', 'ngx-extended-pdf-viewer');\n link.rel = 'resource';\n link.type = 'application/l10n';\n const widget: HTMLElement = this.elementRef.nativeElement;\n widget.appendChild(link);\n (window as any).getFormValue = (key: string) => this.getFormValue(key);\n (window as any).setFormValue = (key: string, value: string) => this.setFormValue(key, value);\n (window as any).registerAcroformAnnotations = (sortedAnnotations) => this.registerAcroformAnnotations(sortedAnnotations);\n (window as any).assignFormIdAndFieldName = (key: string, fieldName: string, radioButtonField?: string) =>\n this.assignFormIdAndFieldName(key, fieldName, radioButtonField);\n\n this.loadPdfJs();\n }\n }\n\n private loadPdfJs() {\n if (!window['pdfjs-dist/build/pdf']) {\n const needsES5 = this.needsES5();\n const suffix = this.minifiedJSLibraries ? '.min.js' : '.js';\n if (this.minifiedJSLibraries) {\n if (!pdfDefaultOptions.workerSrc().endsWith('.min.js')) {\n const src = pdfDefaultOptions.workerSrc();\n pdfDefaultOptions.workerSrc = () => src.replace('.js', '.min.js');\n }\n }\n\n const assets = pdfDefaultOptions.assetsFolder;\n const versionSuffix = getVersionSuffix(assets);\n const script = document.createElement('script');\n script.src = this.location.normalize(needsES5 ? assets + '/pdf-' + versionSuffix + '-es5' + suffix : assets + '/pdf-' + versionSuffix + suffix);\n script.type = 'text/javascript';\n script.async = true;\n document.getElementsByTagName('head')[0].appendChild(script);\n }\n if (!(window as any).webViewerLoad) {\n this.loadViewer();\n }\n }\n\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n if (!this.shuttingDown) {\n // hurried users sometimes reload the PDF before it has finished initializing\n if ((window as any).webViewerLoad) {\n this.doInitPDFViewer();\n } else {\n setTimeout(() => this.ngAfterViewInit(), 50);\n }\n }\n }\n }\n\n private assignTabindexes() {\n if (this.startTabindex) {\n const r = this.root.nativeElement.cloneNode(true) as HTMLElement;\n r.classList.add('offscreen');\n this.showElementsRecursively(r);\n document.body.appendChild(r);\n const elements = this.collectElementPositions(r, this.root.nativeElement, []);\n document.body.removeChild(r);\n const sorted = elements.sort((a, b) => {\n if (a.y - b.y > 15) {\n return 1;\n }\n if (b.y - a.y > 15) {\n return -1;\n }\n return a.x - b.x;\n });\n for (let i = 0; i < sorted.length; i++) {\n sorted[i].element.tabIndex = this.startTabindex + i;\n }\n }\n }\n\n private showElementsRecursively(root: Element): void {\n root.classList.remove('hidden');\n root.classList.remove('invisible');\n root.classList.remove('hiddenXXLView');\n root.classList.remove('hiddenXLView');\n root.classList.remove('hiddenLargeView');\n root.classList.remove('hiddenMediumView');\n root.classList.remove('hiddenSmallView');\n root.classList.remove('hiddenTinyView');\n root.classList.remove('visibleXXLView');\n root.classList.remove('visibleXLView');\n root.classList.remove('visibleLargeView');\n root.classList.remove('visibleMediumView');\n root.classList.remove('visibleSmallView');\n root.classList.remove('visibleTinyView');\n\n if (root instanceof HTMLButtonElement || root instanceof HTMLAnchorElement || root instanceof HTMLInputElement || root instanceof HTMLSelectElement) {\n return;\n } else if (root.childElementCount > 0) {\n for (let i = 0; i < root.childElementCount; i++) {\n const c = root.children.item(i);\n if (c) {\n this.showElementsRecursively(c);\n }\n }\n }\n }\n\n private collectElementPositions(copy: Element, original: Element, elements: Array<ElementAndPosition>): Array<ElementAndPosition> {\n if (copy instanceof HTMLButtonElement || copy instanceof HTMLAnchorElement || copy instanceof HTMLInputElement || copy instanceof HTMLSelectElement) {\n const rect = copy.getBoundingClientRect();\n const elementAndPos = {\n element: original,\n x: Math.round(rect.left),\n y: Math.round(rect.top),\n } as ElementAndPosition;\n elements.push(elementAndPos);\n } else if (copy.childElementCount > 0) {\n for (let i = 0; i < copy.childElementCount; i++) {\n const c = copy.children.item(i);\n const o = original.children.item(i);\n if (c && o) {\n elements = this.collectElementPositions(c, o, elements);\n }\n }\n }\n return elements;\n }\n\n private doInitPDFViewer() {\n if (typeof window === 'undefined') {\n return;\n }\n const langLinks = document.querySelectorAll('link[type=\"application/l10n\"]');\n const langCount = langLinks.length;\n\n if (langCount === 0) {\n const dict = document.querySelector('script[type=\"application/l10n\"]');\n if (!dict) {\n if (!this.useBrowserLocale) {\n console.error(\n // tslint:disable-next-line:quotemark\n \"If you set the attribute 'useBrowserLocale' to false, you must provide the translations yourself in a script or link tag.\"\n );\n console.error('The easiest way to do this is to add them to the index.html.');\n }\n } else if (this.useBrowserLocale) {\n console.error(\n // tslint:disable-next-line:quotemark\n \"Please set the attribute 'useBrowserLocale' to false if you provide the translations yourself in a script or link tag.\"\n );\n }\n } else if (this.useBrowserLocale) {\n const o = langLinks[0].attributes['origin'];\n if (o && o.value !== 'ngx-extended-pdf-viewer') {\n console.error(\n // tslint:disable-next-line:quotemark\n \"Please set the attribute 'useBrowserLocale' to false if you provide the translations yourself in a script or link tag.\"\n );\n }\n }\n const callback = (e) => {\n document.removeEventListener('localized', callback);\n this.initTimeout = setTimeout(() => {\n if (!this.shuttingDown) {\n // hurried users sometimes reload the PDF before it has finished initializing\n this.calcViewerPositionTop();\n this.afterLibraryInit();\n this.openPDF();\n this.assignTabindexes();\n }\n }, this.delayFirstView);\n };\n\n window.addEventListener('afterprint', (event) => {\n this.afterPrint.emit();\n });\n\n window.addEventListener('beforeprint', (event) => {\n this.beforePrint.emit();\n });\n\n document.addEventListener('localized', callback);\n\n if (NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n // tslint:disable-next-line:quotemark\n console.error(\"You're trying to open two instances of the PDF viewer. Most likely, this will result in errors.\");\n }\n const onLoaded = () => {\n this.overrideDefaultSettings();\n document.removeEventListener('webviewerloaded', onLoaded);\n if (this.enablePinchOnMobile) {\n this.pinchOnMobileSupport = new PinchOnMobileSupport(this.ngZone);\n }\n };\n document.addEventListener('webviewerloaded', onLoaded);\n\n this.activateTextlayerIfNecessary(null);\n\n setTimeout(() => {\n if (!this.shuttingDown) {\n // hurried users sometimes reload the PDF before it has finished initializing\n // This initializes the webviewer, the file may be passed in to it to initialize the viewer with a pdf directly\n this.onResize();\n this.primaryMenuVisible = this.showToolbar;\n const hideSecondaryMenu = this.hideKebabMenuForSecondaryToolbar && !this.showSecondaryToolbarButton;\n\n if (hideSecondaryMenu) {\n if (!this.isPrimaryMenuVisible()) {\n this.primaryMenuVisible = false;\n }\n }\n this.dummyComponents.addMissingStandardWidgets();\n (<any>window).webViewerLoad();\n\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.appConfig.defaultUrl = ''; // IE bugfix\n if (this.filenameForDownload) {\n PDFViewerApplication.appConfig.filenameForDownload = this.filenameForDownload;\n }\n const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = (window as any).PDFViewerApplicationOptions;\n\n PDFViewerApplicationOptions.set('enableDragAndDrop', this.enableDragAndDrop);\n let language = this.language === '' ? undefined : this.language;\n if (!language) {\n language = navigator.language;\n }\n PDFViewerApplicationOptions.set('locale', language);\n PDFViewerApplicationOptions.set('imageResourcesPath', this.imageResourcesPath);\n PDFViewerApplicationOptions.set('minZoom', this.minZoom);\n PDFViewerApplicationOptions.set('maxZoom', this.maxZoom);\n PDFViewerApplicationOptions.set('pageViewMode', this.pageViewMode);\n PDFViewerApplicationOptions.set('verbosity', this.logLevel);\n PDFViewerApplicationOptions.set('initialZoom', this.zoom);\n PDFViewerApplicationOptions.set('pdfBackgroundColor', this.pdfBackgroundColor);\n\n PDFViewerApplication.isViewerEmbedded = true;\n if (PDFViewerApplication.printKeyDownListener) {\n window.addEventListener('keydown', PDFViewerApplication.printKeyDownListener, true);\n }\n\n const pc = document.getElementById('printContainer');\n if (pc) {\n document.getElementsByTagName('body')[0].appendChild(pc);\n }\n }\n }, 0);\n }\n\n /** Notifies every widget that implements onLibraryInit() that the PDF viewer objects are available */\n private afterLibraryInit() {\n this.notificationService.onPDFJSInit.next();\n }\n\n public checkHeight(): void {\n if (typeof document !== 'undefined') {\n const container = document.getElementsByClassName('zoom')[0] as HTMLElement;\n if (container) {\n if (container.clientHeight === 0) {\n if (!this.autoHeight) {\n console.warn(\n \"The height of the PDF viewer widget is zero pixels. Please check the height attribute. Is there a syntax error? Or are you using a percentage with a CSS framework that doesn't support this? The height is adjusted automatedly.\"\n );\n this.autoHeight = true;\n }\n }\n if (this.autoHeight) {\n const available = window.innerHeight;\n const rect = container.getBoundingClientRect();\n const top = rect.top;\n let maximumHeight = available - top;\n // take the margins and paddings of the parent containers into account\n let padding = this.calculateBorderMarging(container);\n maximumHeight -= padding;\n const factor = Number(this._height.replace('%', ''));\n maximumHeight = (maximumHeight * factor) / 100;\n if (maximumHeight > 100) {\n this.minHeight = maximumHeight + 'px';\n } else {\n this.minHeight = '100px';\n }\n }\n }\n }\n }\n\n private calculateBorderMarging(container: HTMLElement | null): number {\n if (container) {\n const computedStyle = window.getComputedStyle(container);\n\n const padding = UnitToPx.toPx(computedStyle.paddingBottom);\n const margin = UnitToPx.toPx(computedStyle.marginBottom);\n if (container.style.zIndex) {\n return padding + margin;\n }\n return padding + margin + this.calculateBorderMarging(container.parentElement);\n }\n return 0;\n }\n\n public onSpreadChange(newSpread: 'off' | 'even' | 'odd'): void {\n this.spreadChange.emit(newSpread);\n }\n\n private activateTextlayerIfNecessary(options: any): void {\n if (this.textLayer === undefined) {\n if (!this.handTool) {\n if (options) {\n options.set('textLayerMode', pdfDefaultOptions.textLayerMode);\n }\n this.textLayer = true;\n if (this.showFindButton === undefined) {\n this.showFindButton = true;\n setTimeout(() => {\n // todo remove this hack:\n const viewFind = document.getElementById('viewFind') as HTMLElement;\n if (viewFind) {\n viewFind.classList.remove('invisible');\n }\n const findbar = document.getElementById('findbar') as HTMLElement;\n if (findbar) {\n findbar.classList.remove('invisible');\n }\n });\n }\n } else {\n if (options) {\n options.set('textLayerMode', this.showHandToolButton ? pdfDefaultOptions.textLayerMode : 0);\n }\n if (!this.showHandToolButton) {\n if (this.showFindButton || this.showFindButton === undefined) {\n this.ngZone.run(() => {\n this.showFindButton = false;\n });\n if (this.logLevel >= VerbosityLevel.WARNINGS) {\n console.warn(\n // tslint:disable-next-line:max-line-length\n 'Hiding the \"find\" button because the text layer of the PDF file is not rendered. Use [textLayer]=\"true\" to enable the find button.'\n );\n }\n }\n if (this.showHandToolButton) {\n if (this.logLevel >= VerbosityLevel.WARNINGS) {\n console.warn(\n // tslint:disable-next-line:max-line-length\n 'Hiding the \"hand tool / selection mode\" menu because the text layer of the PDF file is not rendered. Use [textLayer]=\"true\" to enable the the menu items.'\n );\n this.showHandToolButton = false;\n }\n }\n }\n }\n } else {\n if (this.textLayer) {\n // todo: is this a redundant check?\n if (options) {\n options.set('textLayerMode', pdfDefaultOptions.textLayerMode);\n }\n this.textLayer = true;\n if (this.showFindButton === undefined) {\n this.showFindButton = true;\n setTimeout(() => {\n // todo remove this hack:\n const viewFind = document.getElementById('viewFind') as HTMLElement;\n if (viewFind) {\n viewFind.classList.remove('invisible');\n }\n const findbar = document.getElementById('findbar') as HTMLElement;\n if (findbar) {\n findbar.classList.remove('invisible');\n }\n });\n }\n } else {\n // todo: is the else branch dead code?\n if (options) {\n options.set('textLayerMode', 0);\n }\n this.textLayer = false;\n if (this.showFindButton) {\n if (this.logLevel >= VerbosityLevel.WARNINGS) {\n // tslint:disable-next-line:max-line-length\n console.warn('Hiding the \"find\" button because the text layer of the PDF file is not rendered. Use [textLayer]=\"true\" to enable the find button.');\n this.ngZone.run(() => {\n this.showFindButton = false;\n });\n }\n }\n if (this.showHandToolButton) {\n if (this.logLevel >= VerbosityLevel.WARNINGS) {\n console.warn(\n // tslint:disable-next-line:max-line-length\n 'Hiding the \"hand tool / selection mode\" menu because the text layer of the PDF file is not rendered. Use [textLayer]=\"true\" to enable the the menu items.'\n );\n this.showHandToolButton = false;\n }\n }\n }\n }\n }\n\n private async overrideDefaultSettings() {\n const options = (window as any).PDFViewerApplicationOptions as IPDFViewerApplicationOptions;\n // tslint:disable-next-line:forin\n for (const key in pdfDefaultOptions) {\n options.set(key, pdfDefaultOptions[key]);\n }\n options.set('disablePreferences', true);\n await this.setZoom();\n\n options.set('ignoreKeyboard', this.ignoreKeyboard);\n options.set('ignoreKeys', this.ignoreKeys);\n options.set('acceptKeys', this.acceptKeys);\n this.activateTextlayerIfNecessary(options);\n\n if (this.scrollMode || this.scrollMode === ScrollModeType.vertical) {\n options.set('scrollModeOnLoad', this.scrollMode);\n }\n\n const sidebarVisible = this.sidebarVisible;\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n if (sidebarVisible !== undefined) {\n PDFViewerApplication.sidebarViewOnLoad = sidebarVisible ? 1 : 0;\n if (PDFViewerApplication.appConfig) {\n PDFViewerApplication.appConfig.sidebarViewOnLoad = sidebarVisible ? 1 : 0;\n }\n options.set('sidebarViewOnLoad', this.sidebarVisible ? 1 : 0);\n }\n if (this.spread === 'even') {\n options.set('spreadModeOnLoad', 2);\n if (PDFViewerApplication.pdfViewer) {\n PDFViewerApplication.pdfViewer.spreadMode = 2;\n }\n this.onSpreadChange('even');\n } else if (this.spread === 'odd') {\n options.set('spreadModeOnLoad', 1);\n if (PDFViewerApplication.pdfViewer) {\n PDFViewerApplication.pdfViewer.spreadMode = 1;\n }\n this.onSpreadChange('odd');\n } else {\n options.set('spreadModeOnLoad', 0);\n if (PDFViewerApplication.pdfViewer) {\n PDFViewerApplication.pdfViewer.spreadMode = 0;\n }\n this.onSpreadChange('off');\n }\n if (this.printResolution) {\n options.set('printResolution', this.printResolution);\n }\n if (this.showBorders === false) {\n options.set('removePageBorders', !this.showBorders);\n }\n }\n\n private openPDF() {\n ServiceWorkerOptions.showUnverifiedSignatures = this.showUnverifiedSignatures;\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.enablePrint = this.enablePrint;\n NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized = true;\n if (this._src) {\n this.ngxExtendedPdfViewerIncompletelyInitialized = false;\n if (!this.listenToURL) {\n PDFViewerApplication.pdfLinkService.setHash = function () {};\n }\n this.initTimeout = null;\n this.selectCursorTool();\n\n PDFViewerApplication.eventBus.on('textlayerrendered', (x: TextLayerRenderedEvent) => {\n this.textLayerRendered.emit(x);\n });\n\n PDFViewerApplication.eventBus.on('scrollmodechanged', (x: ScrollModeChangedEvent) => {\n this.scrollModeChange.emit(x.mode);\n });\n PDFViewerApplication.eventBus.on('progress', (x: ProgressBarEvent) => {\n this.progress.emit(x);\n });\n\n PDFViewerApplication.eventBus.on('pagesloaded', async (x: PagesLoadedEvent) => {\n this.pagesLoaded.emit(x);\n this.removeScrollbarInInititeScrollMode();\n if (this.rotation !== undefined && this.rotation !== null) {\n const r = Number(this.rotation);\n if (r === 0 || r === 90 || r === 180 || r === 270) {\n PDFViewerApplication.pdfViewer.pagesRotation = r;\n }\n }\n setTimeout(() => {\n if (!this.shuttingDown) {\n // hurried users sometimes reload the PDF before it has finished initializing\n if (this.nameddest) {\n PDFViewerApplication.pdfLinkService.navigateTo(this.nameddest);\n } else if (this.page) {\n PDFViewerApplication.page = Number(this.page);\n } else if (this.pageLabel) {\n PDFViewerApplication.pdfViewer.currentPageLabel = this.pageLabel;\n }\n }\n });\n await this.setZoom();\n });\n PDFViewerApplication.eventBus.on('pagerendered', (x: PageRenderedEvent) => {\n this.ngZone.run(() => {\n this.pageRendered.emit(x);\n this.removeScrollbarInInititeScrollMode();\n });\n });\n PDFViewerApplication.eventBus.on('pagerender', (x: PageRenderEvent) => {\n this.ngZone.run(() => {\n this.pageRender.emit(x);\n });\n });\n\n PDFViewerApplication.eventBus.on('download', (x: PdfDownloadedEvent) => {\n this.ngZone.run(() => {\n this.pdfDownloaded.emit(x);\n });\n });\n PDFViewerApplication.eventBus.on('scalechanging', (x: ScaleChangingEvent) => {\n {\n const scale = (this.root.nativeElement as HTMLElement).querySelector('#scaleSelect') as HTMLSelectElement | undefined;\n let userZoomFactor = '';\n if (scale) {\n userZoomFactor = scale.value;\n }\n }\n\n this.currentZoomFactor.emit(x.scale);\n\n const scale = (this.root.nativeElement as HTMLElement).querySelector('#scaleSelect') as HTMLSelectElement | undefined;\n let userZoomFactor = this.zoom;\n if (scale) {\n userZoomFactor = scale.value;\n }\n if (userZoomFactor !== 'auto' && userZoomFactor !== 'page-fit' && userZoomFactor !== 'page-actual' && userZoomFactor !== 'page-width') {\n this.zoom = x.scale * 100;\n this.zoomChange.emit(x.scale * 100);\n // setTimeout(() => this.zoomChange.emit(x.scale * 100));\n } else if (this.zoom !== userZoomFactor) {\n // called when the user selects one of the text values of the zoom select dropdown\n this.zoomChange.emit(userZoomFactor);\n }\n });\n\n PDFViewerApplication.eventBus.on('rotationchanging', (x: PagesRotationEvent) => {\n this.ngZone.run(() => {\n this.rotationChange.emit(x.pagesRotation);\n });\n });\n PDFViewerApplication.eventBus.on('fileinputchange', (x: FileInputChanged) => {\n this.ngZone.run(() => {\n const path = x.fileInput.value.replace('C:\\\\fakepath\\\\', '');\n this.srcChange.emit(path);\n });\n });\n PDFViewerApplication.eventBus.on('cursortoolchanged', (x: HandtoolChanged) => {\n this.ngZone.run(() => {\n this.handToolChange.emit(x.tool === PdfCursorTools.HAND);\n });\n });\n\n PDFViewerApplication.eventBus.on('sidebarviewchanged', (x: SidebarviewChange) => {\n this.ngZone.run(() => {\n this.sidebarVisibleChange.emit(x.view > 0);\n if (this.sidebarComponent) {\n this.sidebarComponent.showToolbarWhenNecessary();\n }\n });\n });\n\n PDFViewerApplication.eventBus.on('documentloaded', (pdfLoadedEvent: PdfDocumentLoadedEvent) => {\n this.ngZone.run(() => {\n this.loadComplete(pdfLoadedEvent.source.pdfDocument);\n });\n });\n\n const hideSidebarToolbar = () => {\n this.ngZone.run(() => {\n if (this.sidebarComponent) {\n this.sidebarComponent.showToolbarWhenNecessary();\n }\n });\n };\n\n PDFViewerApplication.eventBus.on('outlineloaded', hideSidebarToolbar);\n\n PDFViewerApplication.eventBus.on('attachmentsloaded', hideSidebarToolbar);\n\n PDFViewerApplication.eventBus.on('layersloaded', hideSidebarToolbar);\n\n PDFViewerApplication.eventBus.on('updatefindcontrolstate', (x: FindResult) => {\n if (x.state === FindState.NOT_FOUND) {\n this.updateFindMatchesCount.emit({ current: 0, total: 0 });\n } else if (x.matchesCount.total) {\n x.matchesCount.matches = PDFViewerApplication.findController._pageMatches;\n x.matchesCount.matchesLength = PDFViewerApplication.findController._pageMatchesLength;\n x.matchesCount.matchesColor = PDFViewerApplication.findController._pageMatchesColor;\n this.updateFindMatchesCount.emit(x.matchesCount);\n }\n\n if (this.updateFindState) {\n this.updateFindState.emit(x.state);\n }\n });\n PDFViewerApplication.eventBus.on('updatefindmatchescount', (x: FindResult) => {\n x.matchesCount.matches = PDFViewerApplication.findController._pageMatches;\n x.matchesCount.matchesLength = PDFViewerApplication.findController._pageMatchesLength;\n x.matchesCount.matchesColor = PDFViewerApplication.findController._pageMatchesColor;\n this.updateFindMatchesCount.emit(x.matchesCount);\n });\n\n PDFViewerApplication.eventBus.on('pagechanging', (x: PageNumberChange) => {\n if (!this.shuttingDown) {\n // hurried users sometimes reload the PDF before it has finished initializing\n this.ngZone.run(() => {\n const currentPage = PDFViewerApplication.pdfViewer.currentPageNumber;\n const currentPageLabel = PDFViewerApplication.pdfViewer.currentPageLabel;\n\n if (currentPage !== this.page) {\n this.pageChange.emit(currentPage);\n }\n if (currentPageLabel !== this.pageLabel) {\n this.pageLabelChange.emit(currentPageLabel);\n }\n });\n }\n });\n\n setTimeout(() => this.checkHeight(), 100);\n // open a file in the viewer\n if (!!this._src) {\n const options: any = {\n password: this.password,\n verbosity: this.logLevel,\n };\n if (this._src['range']) {\n options.range = this._src['range'];\n }\n if (this.httpHeaders) {\n options.httpHeaders = this.httpHeaders;\n }\n if (this.authorization) {\n options.withCredentials = true;\n if (options.httpHeaders) {\n if (!options.httpHeaders.Authorization) {\n options.httpHeaders.Authorization = this.authorization;\n }\n } else {\n options.httpHeaders = {\n Authorization: this.authorization,\n };\n }\n }\n options.baseHref = this.baseHref;\n PDFViewerApplication.onError = (error: Error) => this.pdfLoadingFailed.emit(error);\n this.ngZone.runOutsideAngular(() => {\n PDFViewerApplication.open(this._src, options).then(() => {\n this.pdfLoaded.emit({ pagesCount: PDFViewerApplication.pagesCount });\n setTimeout(async () => await this.setZoom());\n });\n });\n }\n setTimeout(() => {\n if (!this.shuttingDown) {\n // hurried users sometimes reload the PDF before it has finished initializing\n if (this.page) {\n PDFViewerApplication.page = Number(this.page);\n }\n }\n }, 100);\n }\n }\n\n private removeScrollbarInInititeScrollMode(): void {\n if (this.pageViewMode === 'infinite-scroll') {\n setTimeout(() => {\n if (this.pageViewMode === 'infinite-scroll') {\n const viewer = document.getElementById('viewer');\n if (viewer) {\n const height = viewer.clientHeight + 17;\n const zoom = document.getElementsByClassName('zoom')[0];\n if (this.primaryMenuVisible) {\n this.height = height + 35 + 'px';\n } else {\n if (height > 17) {\n this.height = height + 'px';\n }\n }\n if (zoom) {\n (<HTMLElement>zoom).style.height = this.height;\n }\n }\n }\n });\n }\n }\n\n public async openPDF2(): Promise<void> {\n this.overrideDefaultSettings();\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n await PDFViewerApplication.close();\n\n // #802 clear the form data; otherwise the \"download\" dialogs opens\n PDFViewerApplication.pdfDocument?.annotationStorage?.resetModified();\n this.formData = {};\n this.formIdToFieldName = {};\n this.formRadioButtonValueToId = {};\n\n const options: any = {\n password: this.password,\n verbosity: this.logLevel,\n };\n if (this._src && this._src['range']) {\n options.range = this._src['range'];\n }\n if (this.httpHeaders) {\n options.httpHeaders = this.httpHeaders;\n }\n if (this.authorization) {\n options.withCredentials = true;\n if (options.httpHeaders) {\n if (!options.httpHeaders.Authorization) {\n options.httpHeaders.Authorization = this.authorization;\n }\n } else {\n options.httpHeaders = {\n Authorization: this.authorization,\n };\n }\n }\n options.baseHref = this.baseHref;\n PDFViewerApplication.open(this._src, options).then(\n () => {\n this.pdfLoaded.emit({ pagesCount: PDFViewerApplication.pagesCount });\n },\n (error: Error) => this.pdfLoadingFailed.emit(error)\n );\n }\n\n private selectCursorTool() {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.dispatch('switchcursortool', { tool: this.handTool ? 1 : 0 });\n }\n\n public async ngOnDestroy(): Promise<void> {\n if (typeof window === 'undefined') {\n return; // fast escape for server side rendering\n }\n (window as any).getFormValue = undefined;\n (window as any).setFormValue = undefined;\n (window as any).registerAcroformAnnotations = undefined;\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n this.shuttingDown = true;\n\n NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized = false;\n if (this.initTimeout) {\n clearTimeout(this.initTimeout);\n this.initTimeout = undefined;\n }\n if (PDFViewerApplication) {\n if (this.pinchOnMobileSupport) {\n this.pinchOnMobileSupport.destroyPinchZoom();\n this.pinchOnMobileSupport = undefined;\n }\n\n // #802 clear the form data; otherwise the \"download\" dialogs opens\n PDFViewerApplication.pdfDocument?.annotationStorage?.resetModified();\n this.formData = {};\n this.formIdToFieldName = {};\n this.formRadioButtonValueToId = {};\n\n if (PDFViewerApplication.cleanup) {\n PDFViewerApplication.cleanup();\n } else if (PDFViewerApplication._cleanup) {\n PDFViewerApplication._cleanup();\n }\n\n await PDFViewerApplication.close();\n if (PDFViewerApplication.printKeyDownListener) {\n removeEventListener('keydown', PDFViewerApplication.printKeyDownListener, true);\n }\n setTimeout(() => {\n if (PDFViewerApplication._boundEvents) {\n PDFViewerApplication.unbindWindowEvents();\n }\n const bus = PDFViewerApplication.eventBus;\n if (bus) {\n PDFViewerApplication.unbindEvents();\n for (const key in bus._listeners) {\n if (bus._listeners[key]) {\n const list = bus._listeners[key];\n // not sure if the for loop is necessary - but\n // it might improve garbage collection if the \"listeners\"\n // array is stored somewhere else\n for (let i = 0; i < list.length; i++) {\n list[i] = undefined;\n }\n bus._listeners[key] = undefined;\n }\n }\n }\n (PDFViewerApplication.eventBus as any) = null;\n });\n }\n\n const body = document.getElementsByTagName('body');\n if (body[0]) {\n const topLevelElements = body[0].children;\n for (let i = topLevelElements.length - 1; i >= 0; i--) {\n const e = topLevelElements.item(i);\n if (e && e.id === 'printContainer') {\n body[0].removeChild(e);\n } else if (e && e.id === 'fileInput') {\n body[0].removeChild(e);\n }\n }\n }\n }\n\n private isPrimaryMenuVisible(): boolean {\n if (this.showToolbar) {\n const visible =\n this.showBookmarkButton ||\n this.showDownloadButton ||\n this.showFindButton ||\n this.showOpenFileButton ||\n this.showPagingButtons ||\n this.showPresentationModeButton ||\n this.showPrintButton ||\n this.showPropertiesButton ||\n this.showRotateButton ||\n this.showHandToolButton ||\n this.showScrollingButton ||\n this.showSpreadButton ||\n this.showSidebarButton ||\n this.showZoomButtons;\n\n if (visible) {\n return true;\n }\n }\n return false;\n }\n\n public async ngOnChanges(changes: SimpleChanges) {\n if (typeof window === 'undefined') {\n return; // server side rendering\n }\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = (window as any).PDFViewerApplicationOptions;\n\n if (NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n if ('src' in changes || 'base64Src' in changes) {\n if (!!this._src) {\n if (this.ngxExtendedPdfViewerIncompletelyInitialized) {\n this.openPDF();\n } else {\n await this.openPDF2();\n }\n } else {\n // #802 clear the form data; otherwise the \"download\" dialogs opens\n PDFViewerApplication.pdfDocument?.annotationStorage?.resetModified();\n this.formData = {};\n this.formIdToFieldName = {};\n this.formRadioButtonValueToId = {};\n\n await PDFViewerApplication.close();\n }\n }\n if ('enableDragAndDrop' in changes) {\n PDFViewerApplicationOptions.set('enableDragAndDrop', this.enableDragAndDrop);\n }\n\n if ('zoom' in changes) {\n (async () => await this.setZoom())();\n }\n\n if ('maxZoom' in changes) {\n PDFViewerApplicationOptions.set('maxZoom', this.maxZoom);\n }\n\n if ('minZoom' in changes) {\n PDFViewerApplicationOptions.set('minZoom', this.minZoom);\n }\n\n if ('handTool' in changes) {\n this.selectCursorTool();\n }\n if ('page' in changes) {\n if (this.page) {\n // tslint:disable-next-line: triple-equals\n if (this.page != PDFViewerApplication.page) {\n PDFViewerApplication.page = this.page;\n }\n }\n }\n if ('pageLabel' in changes) {\n if (this.pageLabel) {\n if (this.pageLabel !== PDFViewerApplication.pdfViewer.currentPageLabel) {\n PDFViewerApplication.pdfViewer.currentPageLabel = this.pageLabel;\n }\n }\n }\n\n if ('rotation' in changes) {\n if (this.rotation) {\n const r = Number(this.rotation);\n if (r === 0 || r === 90 || r === 180 || r === 270) {\n PDFViewerApplication.pdfViewer.pagesRotation = r;\n }\n } else {\n PDFViewerApplication.pdfViewer.pagesRotation = 0;\n }\n }\n if ('scrollMode' in changes) {\n if (this.scrollMode || this.scrollMode === ScrollModeType.vertical) {\n PDFViewerApplication.pdfViewer.scrollMode = Number(this.scrollMode);\n }\n }\n if ('sidebarVisible' in changes) {\n if (this.sidebarVisible) {\n PDFViewerApplication.pdfSidebar.open();\n } else {\n PDFViewerApplication.pdfSidebar.close();\n }\n }\n if ('filenameForDownload' in changes) {\n PDFViewerApplication.appConfig.filenameForDownload = this.filenameForDownload;\n }\n if ('nameddest' in changes) {\n if (this.nameddest) {\n PDFViewerApplication.pdfLinkService.navigateTo(this.nameddest);\n }\n }\n\n if ('spread' in changes) {\n if (this.spread === 'even') {\n PDFViewerApplication.spreadModeOnLoad = 2;\n PDFViewerApplication.pdfViewer.spreadMode = 2;\n this.onSpreadChange('even');\n } else if (this.spread === 'odd') {\n PDFViewerApplication.spreadModeOnLoad = 1;\n PDFViewerApplication.pdfViewer.spreadMode = 1;\n this.onSpreadChange('odd');\n } else {\n PDFViewerApplication.spreadModeOnLoad = 0;\n PDFViewerApplication.pdfViewer.spreadMode = 0;\n this.onSpreadChange('off');\n }\n }\n\n if ('enablePinchOnMobile' in changes) {\n if (!changes['enablePinchOnMobile'].isFirstChange()) {\n if (changes['enablePinchOnMobile'].currentValue !== changes['enablePinchOnMobile'].previousValue) {\n if (this.enablePinchOnMobile) {\n this.pinchOnMobileSupport = new PinchOnMobileSupport(this.ngZone);\n } else {\n if (this.pinchOnMobileSupport) {\n this.pinchOnMobileSupport.destroyPinchZoom();\n this.pinchOnMobileSupport = undefined;\n }\n }\n }\n }\n }\n\n this.primaryMenuVisible = this.showToolbar;\n if (!this.showSecondaryToolbarButton || this.hideKebabMenuForSecondaryToolbar) {\n if (!this.isPrimaryMenuVisible()) {\n this.primaryMenuVisible = false;\n }\n }\n setTimeout(() => this.calcViewerPositionTop());\n } // end of if (NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized)\n\n if ('printResolution' in changes) {\n const options = PDFViewerApplicationOptions;\n if (options) {\n options.set('printResolution', this.printResolution);\n }\n }\n if ('ignoreKeyboard' in changes) {\n const options = PDFViewerApplicationOptions;\n if (options) {\n this.overrideDefaultSettings();\n }\n }\n if ('ignoreKeys' in changes) {\n const options = PDFViewerApplicationOptions;\n if (options) {\n this.overrideDefaultSettings();\n }\n }\n if ('acceptKeys' in changes) {\n const options = PDFViewerApplicationOptions;\n if (options) {\n this.overrideDefaultSettings();\n }\n }\n if ('showBorders' in changes) {\n if (!changes['showBorders'].isFirstChange()) {\n const options = PDFViewerApplicationOptions;\n if (options) {\n this.overrideDefaultSettings();\n const viewer = document.getElementById('viewer') as HTMLElement;\n if (this.showBorders) {\n viewer.classList.remove('removePageBorders');\n } else {\n viewer.classList.add('removePageBorders');\n }\n\n if (PDFViewerApplication.pdfViewer) {\n PDFViewerApplication.pdfViewer.removePageBorders = !this.showBorders;\n }\n const zoomEvent = {\n source: viewer,\n // tslint:disable-next-line:no-bitwise\n scale: (Number(this.zoom) | 100) / 100,\n presetValue: this.zoom,\n } as ScaleChangingEvent;\n PDFViewerApplication.eventBus.dispatch('scalechanging', zoomEvent);\n }\n }\n }\n\n if ('showUnverifiedSignatures' in changes) {\n if (PDFViewerApplication && PDFViewerApplication.pdfDocument) {\n PDFViewerApplication.pdfDocument._transport.messageHandler.send('showUnverifiedSignatures', this.showUnverifiedSignatures);\n }\n }\n\n if ('formData' in changes) {\n if (!changes['formData'].isFirstChange()) {\n this.updateFormFields(this.formData, changes['formData'].previousValue);\n }\n }\n\n if ('enablePrint' in changes) {\n if (!changes['enablePrint'].isFirstChange()) {\n PDFViewerApplication.enablePrint = this.enablePrint;\n }\n }\n if (\n ('customFindbar' in changes && !changes['customFindbar'].isFirstChange()) ||\n ('customFindbarButtons' in changes && !changes['customFindbarButtons'].isFirstChange()) ||\n ('customFindbarInputArea' in changes && !changes['customFindbarInputArea'].isFirstChange()) ||\n ('customToolbar' in changes && !changes['customToolbar'].isFirstChange())\n ) {\n if (this.dummyComponents) {\n this.dummyComponents.addMissingStandardWidgets();\n }\n }\n\n if ('pdfBackgroundColor' in changes) {\n PDFViewerApplicationOptions.set('pdfBackgroundColor', this.pdfBackgroundColor);\n }\n }\n\n private async setZoom() {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n let zoomAsNumber = this.zoom;\n if (String(zoomAsNumber).endsWith('%')) {\n zoomAsNumber = Number(String(zoomAsNumber).replace('%', '')) / 100;\n } else if (!isNaN(Number(zoomAsNumber))) {\n zoomAsNumber = Number(zoomAsNumber) / 100;\n }\n if (!zoomAsNumber) {\n if (!PDFViewerApplication.store) {\n // It's difficult to prevent calling this method to early, so we need this check.\n // setZoom() is called later again, when the PDF document has been loaded and its\n // fingerprint has been calculated.\n } else {\n const userSetting = await PDFViewerApplication.store.get('zoom');\n if (userSetting) {\n if (!isNaN(Number(userSetting))) {\n zoomAsNumber = Number(userSetting) / 100;\n } else {\n zoomAsNumber = userSetting;\n }\n } else {\n zoomAsNumber = 'auto';\n }\n }\n }\n\n if (PDFViewerApplication) {\n const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = (window as any).PDFViewerApplicationOptions;\n PDFViewerApplicationOptions.set('defaultZoomValue', zoomAsNumber);\n }\n\n const scaleDropdownField = (this.root.nativeElement as HTMLElement).querySelector('#scaleSelect') as HTMLSelectElement | undefined;\n if (scaleDropdownField) {\n if (this.zoom === 'auto' || this.zoom === 'page-fit' || this.zoom === 'page-actual' || this.zoom === 'page-width') {\n scaleDropdownField.value = this.zoom;\n } else {\n scaleDropdownField.value = 'custom';\n for (const option of scaleDropdownField.options as any) {\n if (option.value === 'custom') {\n option.textContent = Math.round(Number(zoomAsNumber) * 100_000) / 1000 + '%';\n continue;\n }\n }\n }\n }\n\n if (PDFViewerApplication.pdfViewer) {\n PDFViewerApplication.pdfViewer.currentScaleValue = zoomAsNumber || 'auto';\n }\n }\n\n public onResize(): void {\n const pdfViewer = document.getElementsByClassName('html');\n if (pdfViewer && pdfViewer.length > 0) {\n const container = document.getElementById('outerContainer');\n if (container) {\n const width = container.clientWidth;\n this.toolbarWidthInPixels = width;\n if (this.secondaryToolbarComponent) {\n this.secondaryToolbarComponent.checkVisibility();\n }\n }\n this.checkHeight();\n }\n try {\n const observer = new ResizeObserver(() => this.removeScrollbarInInititeScrollMode());\n const viewer = document.getElementById('viewer');\n if (viewer) {\n observer.observe(viewer);\n }\n } catch (exception) {\n console.log('ResizeObserver is not supported by your browser');\n }\n }\n\n @HostListener('contextmenu')\n public onContextMenu(): boolean {\n return this.contextMenuAllowed;\n }\n\n public onSecondaryMenuIsEmpty(hideKebabButton: boolean) {\n this.hideKebabMenuForSecondaryToolbar = hideKebabButton;\n if (hideKebabButton) {\n if (!this.isPrimaryMenuVisible()) {\n this.primaryMenuVisible = false;\n }\n }\n }\n\n public registerAcroformAnnotations(sortedAnnotations: Array<Annotation>): void {\n let ids: { [key: string]: Annotation } = {};\n let duplicates: { [key: string]: Annotation } = {};\n for (let a of sortedAnnotations) {\n if (a.fieldName) {\n if (ids[a.fieldName]) {\n duplicates[a.fieldName] = a;\n }\n ids[a.fieldName] = a;\n }\n }\n for (let a of sortedAnnotations) {\n if (a.fieldName && duplicates[a.fieldName]) {\n this.formIdToFieldName[a.id] = a.fieldName;\n }\n }\n }\n\n public getFormValue(key: string): Object {\n if (this.formData[key] === undefined) {\n if (key.includes(\"/\")) {\n key = key.split(\"/\")[0];\n }\n }\n return { value: this.formData[key] };\n }\n\n public setFormValue(key: string, value: string): void {\n if (!this.formData) {\n this.formData = {};\n }\n\n if (this.formIdToFieldName[key]) {\n // radiobuttons\n this.formData[this.formIdToFieldName[key]] = value;\n } else {\n this.formData[key] = value;\n }\n this.ngZone.run(() => this.formDataChange.emit(this.formData));\n }\n\n public assignFormIdAndFieldName(key: string, fieldName: string | boolean, radioButtonField?: string): void {\n this.formIdToFieldName[key] = fieldName;\n if (radioButtonField) {\n this.formRadioButtonValueToId[radioButtonField] = key;\n }\n }\n\n public updateFormFields(formData: Object, previousFormData: Object) {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n if (!PDFViewerApplication || !PDFViewerApplication.pdfDocument || !PDFViewerApplication.pdfDocument.annotationStorage) {\n // ngOnChanges calls this method too early - so just ignore it\n return;\n }\n const storage = PDFViewerApplication.pdfDocument.annotationStorage;\n\n for (const key in formData) {\n if (formData.hasOwnProperty(key)) {\n if (formData[key] !== previousFormData[key]) {\n const field = document.querySelector(\"input[name='\" + key + \"']\") as HTMLElement;\n if (field instanceof HTMLInputElement) {\n if (field.type === 'radio') {\n storage.setValue(field.id, key, { value: formData[key] === field.value, emitMessage: false });\n const fields = document.querySelectorAll(\"input[name='\" + key + \"']\");\n const fieldIdToActivate = this.formRadioButtonValueToId[formData[key]];\n fields.forEach((field: HTMLInputElement) => {\n field.checked = field.id === fieldIdToActivate;\n });\n } else if (field.type === 'checkbox') {\n storage.setValue(field.id, key, { value: formData[key], emitMessage: false });\n field.checked = formData[key];\n } else {\n storage.setValue(field.id, key, { value: formData[key], emitMessage: false });\n field.value = formData[key];\n }\n } else if (!field) {\n const textarea = document.querySelector(\"textarea[name='\" + key + \"']\") as HTMLTextAreaElement;\n if (textarea) {\n storage.setValue(textarea.id, key, { value: formData[key], emitMessage: false });\n textarea.value = formData[key];\n } else {\n const dropdown = document.querySelector(\"select[name='\" + key + \"']\") as HTMLSelectElement | null;\n if (dropdown) {\n storage.setValue(dropdown.id, key, { value: formData[key], emitMessage: false });\n if (dropdown.multiple) {\n const options = this.formData[key] as string[];\n for (let i = 0; i < dropdown.options.length; i++) {\n dropdown.options[i].selected = options.indexOf(dropdown.options[i].value) >= 0;\n }\n } else {\n dropdown.value = formData[key];\n }\n }\n }\n } else {\n const fieldName = this.formIdToFieldName[key];\n debugger;\n }\n }\n }\n }\n\n for (const key in previousFormData) {\n if (previousFormData.hasOwnProperty(key)) {\n if (!formData.hasOwnProperty(key)) {\n const field = document.querySelector(\"input[name='\" + key + \"']\") as HTMLElement;\n if (field instanceof HTMLInputElement) {\n // this entry has been deleted\n if (field.type === 'checkbox') {\n storage.setValue(field.id, key, { value: false, emitMessage: false });\n field.checked = false;\n } else {\n storage.setValue(field.id, key, { value: undefined, emitMessage: false });\n field.value = '';\n }\n } else if (!field) {\n const textarea = document.querySelector(\"textarea[name='\" + key + \"']\") as HTMLTextAreaElement;\n if (textarea) {\n storage.setValue(textarea.id, key, { value: undefined, emitMessage: false });\n textarea.value = '';\n }\n }\n }\n }\n }\n }\n\n public loadComplete(pdf: any /* PDFDocumentProxy */): void {\n /** This method has been inspired by https://medium.com/factory-mind/angular-pdf-forms-fa72b15c3fbd. Thanks, Jonny Fox! */\n this.hasSignature = false;\n\n this.buttonValues = {};\n\n for (let i = 1; i <= pdf.numPages; i++) {\n // track the current page\n let currentPage: any = null;\n pdf\n .getPage(i)\n .then((p) => {\n currentPage = p;\n\n // get the annotations of the current page\n return p.getAnnotations();\n })\n .then((annotations) => {\n // ugly cast due to missing typescript definitions\n // please contribute to complete @types/pdfjs-dist\n\n annotations\n .filter((a) => a.subtype === 'Widget') // get the form field annotation only\n .forEach((a) => {\n // Additional PDF Form Field Types #567: Store the exportValue for the check boxes and buttonValue for radio buttons for quick reference\n if (a.checkBox) this.buttonValues[a.id] = a.exportValue;\n else if (a.radioButton) this.buttonValues[a.id] = a.buttonValue;\n\n if (a.fieldType === 'Sig') {\n this.ngZone.run(() => {\n this.hasSignature = true;\n setTimeout(() => {\n const viewerContainer = document.querySelector('#viewerContainer') as HTMLElement;\n viewerContainer.scrollBy(0, -32);\n });\n });\n }\n /*\n // get the rectangle that represent the single field\n // and resize it according to the current DPI\n const fieldRect = currentPage.getViewport(dpiRatio).convertToViewportRectangle(a.rect);\n\n // add the corresponding input\n this.addInput(a, fieldRect);\n */\n });\n });\n }\n }\n\n public async zoomToPageWidth(event: MouseEvent): Promise<void> {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const desiredCenterY = event.clientY;\n const previousScale = (PDFViewerApplication.pdfViewer as any).currentScale;\n if (this.zoom !== pdfDefaultOptions.doubleTapZoomFactor && this.zoom + '%' !== pdfDefaultOptions.doubleTapZoomFactor) {\n this.previousZoom = this.zoom;\n this.zoom = pdfDefaultOptions.doubleTapZoomFactor; // by default: 'page-width';\n await this.setZoom();\n } else {\n if (this.previousZoom) {\n this.zoom = this.previousZoom;\n } else {\n this.zoom = 'page-width';\n }\n await this.setZoom();\n }\n\n const currentScale = (PDFViewerApplication.pdfViewer as any).currentScale;\n const scaleCorrectionFactor = currentScale / previousScale - 1;\n const rect = (PDFViewerApplication.pdfViewer as any).container.getBoundingClientRect();\n const dy = desiredCenterY - rect.top;\n (PDFViewerApplication.pdfViewer as any).container.scrollTop += dy * scaleCorrectionFactor;\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n HostListener,\n TemplateRef,\n ViewChild,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { PagesLoadedEvent } from './events/pages-loaded-event';\nimport { PageRenderedEvent } from './events/page-rendered-event';\nimport { PdfDownloadedEvent } from './events/pdf-downloaded-event';\nimport { PdfLoadedEvent } from './events/pdf-loaded-event';\nimport { pdfDefaultOptions } from './options/pdf-default-options';\nimport { VerbosityLevel } from './options/verbosity-level';\nimport { FindState, FindResultMatchesCount } from './events/find-result';\nimport { PdfDummyComponentsComponent } from './pdf-dummy-components/pdf-dummy-components.component';\nimport { AfterViewInit, ElementRef } from '@angular/core';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { TextLayerRenderedEvent } from './events/textlayer-rendered';\nimport { PdfThumbnailDrawnEvent } from './events/pdf-thumbnail-drawn-event';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { ScrollModeType } from './options/pdf-viewer';\nimport { ProgressBarEvent } from './events/progress-bar-event';\nimport { FormDataType } from './ngx-extended-pdf-viewer.component';\n\n@Component({\n selector: 'ngx-extended-pdf-viewer',\n templateUrl: './ngx-extended-pdf-viewer-server.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxExtendedPdfViewerServerComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n public static ngxExtendedPdfViewerInitialized = false;\n\n /**\n * The dummy components are inserted automatically when the user customizes the toolbar\n * without adding every original toolbar item. Without the dummy components, the\n * initialization code of pdf.js crashes because it assume that every standard widget is there.\n */\n @ViewChild(PdfDummyComponentsComponent)\n public dummyComponents: PdfDummyComponentsComponent;\n\n @ViewChild('root')\n public root: ElementRef;\n\n /* UI templates */\n @Input()\n public customFindbarInputArea: TemplateRef<any>;\n\n @Input()\n public customToolbar: TemplateRef<any>;\n\n @Input()\n public customFindbar: TemplateRef<any>;\n\n @Input()\n public customFindbarButtons: TemplateRef<any> | undefined = undefined;\n\n @Input()\n public customSecondaryToolbar: TemplateRef<any>;\n\n @Input()\n public customSidebar: TemplateRef<any>;\n\n @Input()\n public customThumbnail: TemplateRef<any>;\n\n @Input()\n public customFreeFloatingBar: TemplateRef<any>;\n\n @Input()\n public formData: FormDataType = {};\n\n @Output()\n public formDataChange = new EventEmitter<FormDataType>();\n\n @Input()\n public pageViewMode: 'single' | 'book' | 'multiple' | 'infinite-scroll' = 'multiple';\n\n @Output()\n public progress = new EventEmitter<ProgressBarEvent>();\n\n @ViewChild('pdfSecondaryToolbarComponent')\n private secondaryToolbarComponent: PdfSecondaryToolbarComponent;\n\n @ViewChild('pdfsidebar')\n private sidebarComponent: PdfSidebarComponent;\n\n @Output()\n public srcChange = new EventEmitter<string>();\n\n @Input()\n public scrollMode: ScrollModeType | undefined = undefined;\n\n @Output()\n public scrollModeChange = new EventEmitter<ScrollModeType>();\n\n @Input()\n public authorization: Object | undefined = undefined;\n\n @Input()\n public httpHeaders: Object | undefined = undefined;\n\n @Input()\n public contextMenuAllowed = true;\n\n @Output()\n public afterPrint = new EventEmitter<void>();\n\n @Output()\n public beforePrint = new EventEmitter<void>();\n\n @Output()\n public currentZoomFactor = new EventEmitter<number>();\n\n @Input()\n public enablePrint = true;\n\n /**\n * Number of milliseconds to wait between initializing the PDF viewer and loading the PDF file.\n * Most users can let this parameter safely at it's default value of zero.\n * Set this to 1000 or higher if you run into timing problems (typically caused by loading the locale files\n * after the PDF files, so they are not available when the PDF viewer is initialized).\n */\n @Input()\n public delayFirstView = 0;\n\n /** store the timeout id so it can be canceled if user leaves the page before the PDF is shown */\n private initTimeout: any;\n\n /** How many log messages should be printed?\n * Legal values: VerbosityLevel.INFOS (= 5), VerbosityLevel.WARNINGS (= 1), VerbosityLevel.ERRORS (= 0) */\n @Input()\n public logLevel = VerbosityLevel.WARNINGS;\n\n @Input()\n public enablePinchOnMobile = false;\n\n /** Use the minified (minifiedJSLibraries=\"true\", which is the default) or the user-readable pdf.js library (minifiedJSLibraries=\"false\") */\n @Input()\n public minifiedJSLibraries = true;\n\n public primaryMenuVisible = true;\n\n /** option to increase (or reduce) print resolution. Default is 150 (dpi). Sensible values\n * are 300, 600, and 1200. Note the increase memory consumption, which may even result in a browser crash. */\n @Input()\n public printResolution = null;\n\n @Input()\n public rotation: 0 | 90 | 180 | 270;\n\n @Output()\n public rotationChange = new EventEmitter<0 | 90 | 180 | 270>();\n\n public hasSignature: boolean;\n\n @Input()\n public set src(url: string | ArrayBuffer | Blob | Uint8Array | { range: any }) {}\n\n @Input()\n public set base64Src(base64: string) {}\n\n @Input()\n public set height(h: string) {}\n\n /**\n * If this flag is true, this components adds a link to the locale assets. The pdf viewer\n * sees this link and uses it to load the locale files automatically.\n * @param useBrowserLocale boolean\n */\n @Input()\n public useBrowserLocale = false;\n\n @Input()\n public backgroundColor = '#e8e8eb';\n\n @Input()\n public pdfBackgroundColor = '#FFF';\n\n /** Allows the user to define the name of the file after clicking \"download\" */\n @Input()\n public filenameForDownload = 'document.pdf';\n\n /** Allows the user to disable the keyboard bindings completely */\n @Input()\n public ignoreKeyboard = false;\n\n /** Allows the user to disable a list of key bindings. */\n @Input()\n public ignoreKeys: Array<string> = [];\n\n /** Allows the user to enable a list of key bindings explicitly. If this property is set, every other key binding is ignored. */\n @Input()\n public acceptKeys: Array<string> = [];\n\n /** Allows the user to put the viewer's svg images into an arbitrary folder */\n @Input()\n public imageResourcesPath = './' + pdfDefaultOptions.assetsFolder + '/images/';\n\n /** Allows the user to put their locale folder into an arbitrary folder */\n @Input()\n public localeFolderPath = './' + pdfDefaultOptions.assetsFolder + '/locale';\n\n /** Override the default locale. This must be the complete locale name, such as \"es-ES\". The string is allowed to be all lowercase.\n */\n @Input()\n public language: string | undefined = undefined;\n\n /** By default, listening to the URL is deactivated because often the anchor tag is used for the Angular router */\n @Input()\n public listenToURL = false;\n\n /** Navigate to a certain \"named destination\" */\n @Input()\n public nameddest: string | undefined = undefined;\n\n /** allows you to pass a password to read password-protected files */\n @Input()\n public password: string | undefined = undefined;\n\n /** pdf.js can show signatures, but fails to verify them. So they are switched off by default.\n * Set \"[showUnverifiedSignatures]\"=\"true\" to display e-signatures nonetheless.\n */\n @Input()\n public showUnverifiedSignatures = false;\n\n @Input()\n public startTabindex: number | undefined;\n\n public get showSidebarButton() {\n return true;\n }\n @Input()\n public set showSidebarButton(show: boolean) {}\n\n @Input()\n public sidebarVisible: boolean | undefined = undefined;\n\n @Output()\n public sidebarVisibleChange = new EventEmitter<boolean>();\n\n @Input()\n public showFindButton: boolean | undefined = undefined;\n @Input()\n public showPagingButtons = true;\n @Input()\n public showZoomButtons = true;\n @Input()\n public showPresentationModeButton = false;\n @Input()\n public showOpenFileButton = true;\n @Input()\n public showPrintButton = true;\n @Input()\n public showDownloadButton = true;\n @Input()\n public showBookmarkButton = true;\n\n @Input()\n public theme: 'dark' | 'light' | 'custom' = 'light';\n\n @Input()\n public showToolbar = true;\n\n @Input()\n public showSecondaryToolbarButton = true;\n\n /** Set by the event (secondaryMenuIsEmpty) */\n public hideKebabMenuForSecondaryToolbar = false;\n\n @Input()\n public showRotateButton = true;\n @Input()\n public handTool = true;\n @Output()\n public handToolChange = new EventEmitter<boolean>();\n @Input()\n public showHandToolButton = false;\n @Input()\n public showScrollingButton = true;\n @Input()\n public showSpreadButton = true;\n @Input()\n public showPropertiesButton = true;\n @Input()\n public showBorders = true;\n\n @Input()\n public spread: 'off' | 'even' | 'odd';\n\n @Output()\n public spreadChange = new EventEmitter<'off' | 'even' | 'odd'>();\n\n @Output()\n public thumbnailDrawn = new EventEmitter<PdfThumbnailDrawnEvent>();\n\n private _page: number | undefined = undefined;\n\n public get page(): number | undefined {\n return this._page;\n }\n\n @Input()\n public set page(p: number | undefined) {}\n\n @Output()\n public pageChange = new EventEmitter<number | undefined>();\n\n @Input()\n public pageLabel: string | undefined = undefined;\n\n @Output()\n public pageLabelChange = new EventEmitter<string | undefined>();\n\n @Output()\n public pagesLoaded = new EventEmitter<PagesLoadedEvent>();\n\n @Output()\n public pageRendered = new EventEmitter<PageRenderedEvent>();\n\n @Output()\n public pdfDownloaded = new EventEmitter<PdfDownloadedEvent>();\n\n @Output()\n public pdfLoaded = new EventEmitter<PdfLoadedEvent>();\n\n @Output()\n public pdfLoadingFailed = new EventEmitter<Error>();\n\n @Input()\n public textLayer: boolean | undefined = undefined;\n\n @Output()\n public textLayerRendered = new EventEmitter<TextLayerRenderedEvent>();\n\n @Output()\n public updateFindMatchesCount = new EventEmitter<FindResultMatchesCount>();\n\n @Output()\n public updateFindState = new EventEmitter<FindState>();\n\n /** Legal values: undefined, 'auto', 'page-actual', 'page-fit', 'page-width', or '50' (or any other percentage) */\n @Input()\n public zoom: string | number | undefined = undefined;\n\n @Output()\n public zoomChange = new EventEmitter<string | number | undefined>();\n\n @Input()\n public zoomLevels = ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 1, 1.25, 1.5, 2, 3, 4];\n\n @Input()\n public maxZoom = 10;\n\n @Input()\n public minZoom = 0.1;\n\n /** This attributes allows you to increase the size of the UI elements so you can use them on small mobile devices.\n * This attribute is a string with a percent character at the end (e.g. \"150%\").\n */\n @Input() _mobileFriendlyZoom = '100%';\n\n public mobileFriendlyZoomScale = 1;\n\n public toolbarMarginTop = '0px';\n\n public toolbarWidth = '100%';\n\n public toolbarWidthInPixels = 100;\n\n public secondaryToolbarTop: string | undefined = undefined;\n\n // dirty IE11 hack - temporary solution\n public findbarTop: string | undefined = undefined;\n\n // dirty IE11 hack - temporary solution\n public findbarLeft: string | undefined = undefined;\n\n // Additional PDF Form Field Types #567: Used to store the exported values of radio and checkbox buttons\n public buttonValues: any = {};\n\n public get mobileFriendlyZoom() {\n return this._mobileFriendlyZoom;\n }\n /**\n * This attributes allows you to increase the size of the UI elements so you can use them on small mobile devices.\n * This attribute is a string with a percent character at the end (e.g. \"150%\").\n */\n @Input()\n public set mobileFriendlyZoom(zoom: string) {}\n\n private shuttingDown = false;\n\n public get sidebarPositionTop(): string {\n return '32px';\n }\n\n constructor() {}\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnInit() {}\n\n ngAfterViewInit() {}\n\n public ngOnDestroy(): void {}\n\n @HostListener('contextmenu')\n public onContextMenu(): boolean {\n return this.contextMenuAllowed;\n }\n}\n","import { NgxExtendedPdfViewerComponent } from './ngx-extended-pdf-viewer.component';\nimport { PDFPrintRange } from './options/pdf-print-range';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\n\nexport interface FindOptions {\n highlightAll?: boolean;\n matchCase?: boolean;\n wholeWords?: boolean;\n ignoreAccents?: boolean;\n findMultipleSearchTexts?: boolean;\n fuzzySearch?: boolean;\n}\n\ninterface DrawContext {\n ctx: CanvasRenderingContext2D;\n canvas: HTMLCanvasElement;\n}\n\nexport interface PDFExportScaleFactor {\n width?: number;\n height?: number;\n scale?: number;\n}\n\nexport class NgxExtendedPdfViewerService {\n constructor() {}\n\n public findMultiple(text: Array<string>, options: FindOptions = {}): boolean {\n options = {\n ...options,\n findMultipleSearchTexts: true,\n };\n const searchString = text.join('\\n') + '\\n';\n return this.find(searchString, options);\n }\n\n public find(text: string, options: FindOptions = {}): boolean {\n if (!NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n // tslint:disable-next-line:quotemark\n console.error(\"The PDF viewer hasn't finished initializing. Please call find() later.\");\n return false;\n } else {\n const highlightAllCheckbox = document.getElementById('findHighlightAll') as HTMLInputElement;\n if (highlightAllCheckbox) {\n highlightAllCheckbox.checked = options.highlightAll || false;\n }\n const matchCaseCheckbox = document.getElementById('findMatchCase') as HTMLInputElement;\n if (matchCaseCheckbox) {\n matchCaseCheckbox.checked = options.matchCase || false;\n }\n const entireWordCheckbox = document.getElementById('findEntireWord') as HTMLInputElement;\n if (entireWordCheckbox) {\n entireWordCheckbox.checked = options.wholeWords || false;\n }\n const findIgnoreAccentsCheckbox = document.getElementById('findIgnoreAccents') as HTMLInputElement;\n if (findIgnoreAccentsCheckbox) {\n findIgnoreAccentsCheckbox.checked = options.ignoreAccents || false;\n }\n const multipleSearchTerms = options.findMultipleSearchTexts || text.includes('\\n') || false;\n const findMultipleSearchTextsCheckbox = document.getElementById('findMultipleSearchTexts') as HTMLInputElement;\n if (findMultipleSearchTextsCheckbox) {\n findMultipleSearchTextsCheckbox.checked = multipleSearchTerms;\n }\n const individualWordsModeCheckbox = document.getElementById('individualWordsMode') as HTMLInputElement;\n if (individualWordsModeCheckbox) {\n individualWordsModeCheckbox.checked = false;\n }\n const fuzzySearchCheckbox = document.getElementById('findFuzzy') as HTMLInputElement;\n if (fuzzySearchCheckbox) {\n fuzzySearchCheckbox.checked = options.fuzzySearch || false;\n }\n const inputField = multipleSearchTerms ? document.getElementById('findInputMultiline') : document.getElementById('findInput');\n if (inputField) {\n if (inputField instanceof HTMLTextAreaElement) {\n inputField.value = text;\n\n // todo dirty hack!\n inputField.classList.remove('hidden');\n (document.getElementById('findInput') as HTMLInputElement).classList.add('hidden');\n (document.getElementById('individualWordsModeLabel') as HTMLInputElement).classList.remove('hidden');\n (document.getElementById('individualWordsMode') as HTMLInputElement).classList.remove('hidden');\n // end of the dirty hack\n } else if (inputField instanceof HTMLInputElement) {\n inputField.value = text;\n // todo dirty hack!\n inputField.classList.remove('hidden');\n (document.getElementById('findInputMultiline') as HTMLInputElement).classList.add('hidden');\n (document.getElementById('individualWordsModeLabel') as HTMLInputElement).classList.add('hidden');\n (document.getElementById('individualWordsMode') as HTMLInputElement).classList.add('hidden');\n // end of the dirty hack\n }\n inputField.dispatchEvent(new Event('input'));\n return true;\n } else {\n // tslint:disable-next-line:quotemark\n console.error(\"Unexpected error: the input field used to search isn't part of the DOM.\");\n return false;\n }\n }\n }\n\n public findNext(): boolean {\n if (!NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n // tslint:disable-next-line:quotemark\n console.error(\"The PDF viewer hasn't finished initializing. Please call findNext() later.\");\n return false;\n } else {\n const button = document.getElementById('findNext');\n if (button) {\n button.click();\n return true;\n }\n return false;\n }\n }\n\n public findPrevious(): boolean {\n if (!NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n // tslint:disable-next-line:quotemark\n console.error(\"The PDF viewer hasn't finished initializing. Please call findPrevious() later.\");\n return false;\n } else {\n const button = document.getElementById('findPrevious');\n if (button) {\n button.click();\n return true;\n }\n return false;\n }\n }\n\n public print(printRange?: PDFPrintRange) {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const alreadyThere = !!window['isInPDFPrintRange'] && !printRange;\n if (!alreadyThere) {\n if (!printRange) {\n printRange = {} as PDFPrintRange;\n }\n this.setPrintRange(printRange);\n }\n (window as any).printPDF();\n if (!alreadyThere) {\n PDFViewerApplication.eventBus.on('afterprint', () => {\n this.removePrintRange();\n });\n }\n }\n\n public removePrintRange() {\n window['isInPDFPrintRange'] = undefined;\n window['filteredPageCount'] = undefined;\n }\n\n public setPrintRange(printRange: PDFPrintRange) {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n window['isInPDFPrintRange'] = (page: number) => this.isInPDFPrintRange(page, printRange as PDFPrintRange);\n window['filteredPageCount'] = this.filteredPageCount(PDFViewerApplication.pagesCount, printRange);\n }\n\n public filteredPageCount(pageCount: number, range: PDFPrintRange): number {\n let result = 0;\n for (let page = 1; page <= pageCount; page++) {\n if (this.isInPDFPrintRange(page, range)) {\n result++;\n }\n }\n return result;\n }\n\n public isInPDFPrintRange(pageIndex: number, printRange: PDFPrintRange) {\n const page = pageIndex + 1;\n if (printRange.from) {\n if (page < printRange.from) {\n return false;\n }\n }\n if (printRange.to) {\n if (page > printRange.to) {\n return false;\n }\n }\n if (printRange.excluded) {\n let e = printRange.excluded as Array<number>;\n if (e.some((p) => p === page)) {\n return false;\n }\n }\n if (printRange.included) {\n if (!printRange.included.some((p) => p === page)) {\n return false;\n }\n }\n return true;\n }\n\n public getPageAsText(pageNumber: number): Promise<string> {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const pdfDocument = PDFViewerApplication.pdfDocument;\n\n const pagePromise: Promise<any> = pdfDocument.getPage(pageNumber);\n\n const extractTextSnippets = (pdfPage) =>\n new Promise<any>((resolve, reject) => {\n const textSnippets = pdfPage.getTextContent();\n resolve(textSnippets);\n });\n const combineTextSnippets = (textSnippets) =>\n new Promise<string>((resolve, reject) => {\n const text = this.convertTextInfoToText(textSnippets);\n resolve(text);\n });\n return pagePromise.then(extractTextSnippets).then(combineTextSnippets);\n }\n\n private convertTextInfoToText(textInfo: any): string {\n if (!textInfo) {\n return '';\n }\n return textInfo.items.map((info) => info.str).join('');\n }\n\n public getPageAsImage(pageNumber: number, scale: PDFExportScaleFactor): Promise<any> {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const pdfDocument = PDFViewerApplication.pdfDocument;\n const pagePromise: Promise<any> = pdfDocument.getPage(pageNumber);\n const imagePromise = (pdfPage) =>\n new Promise<any>((resolve, reject) => {\n resolve(this.draw(pdfPage, scale));\n });\n\n return pagePromise.then(imagePromise);\n }\n\n private draw(pdfPage: any, scale: PDFExportScaleFactor): Promise<HTMLCanvasElement> {\n let zoomFactor = 1;\n if (scale.scale) {\n zoomFactor = scale.scale;\n } else if (scale.width) {\n zoomFactor = scale.width / pdfPage.getViewport({ scale: 1 }).width;\n } else if (scale.height) {\n zoomFactor = scale.height / pdfPage.getViewport({ scale: 1 }).height;\n }\n const viewport = pdfPage.getViewport({\n scale: zoomFactor,\n });\n const { ctx, canvas } = this.getPageDrawContext(viewport.width, viewport.height);\n const drawViewport = viewport.clone();\n\n const renderContext = {\n canvasContext: ctx,\n viewport: drawViewport,\n background: 'rgba(255, 0, 255, 0.3)'\n };\n const renderTask = pdfPage.render(renderContext);\n\n const dataUrlPromise = () =>\n new Promise<string>((resolve, reject) => {\n resolve(canvas.toDataURL());\n });\n\n return renderTask.promise.then(dataUrlPromise);\n }\n\n private getPageDrawContext(width: number, height: number): DrawContext {\n const canvas = document.createElement('canvas') as HTMLCanvasElement;\n const ctx = canvas.getContext('2d', { alpha: false });\n if (!ctx) {\n // tslint:disable-next-line: quotemark\n throw new Error(\"Couldn't create the 2d context\");\n }\n\n canvas.width = width;\n canvas.height = height;\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n\n return { ctx, canvas };\n }\n\n public async getCurrentDocumentAsBlob(): Promise<Blob> {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const data = await PDFViewerApplication.pdfDocument.saveDocument(PDFViewerApplication.pdfDocument.annotationStorage);\n return new Blob([data], { type: 'application/pdf' });\n }\n\n public async getFormData(): Promise<Array<Object>> {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const pdf /*: PDFDocumentProxy */ = PDFViewerApplication.pdfDocument;\n // screen DPI / PDF DPI\n const dpiRatio = 96 / 72;\n const result: Array<Object> = [];\n for (let i = 1; i <= pdf.numPages; i++) {\n // track the current page\n const currentPage /* : PDFPageProxy */ = await pdf.getPage(i);\n const annotations = await currentPage.getAnnotations();\n\n annotations\n .filter((a) => a.subtype === 'Widget') // get the form field annotations only\n .forEach((a) => {\n // get the rectangle that represent the single field\n // and resize it according to the current DPI\n const fieldRect: Array<number> = currentPage.getViewport({ scale: dpiRatio }).convertToViewportRectangle(a.rect);\n\n // add the corresponding input\n result.push({ fieldAnnotation: a, fieldRect, pageNumber: i });\n });\n }\n return result;\n }\n\n /**\n * Adds a page to the rendering queue\n * @param {number} pageIndex Index of the page to render\n * @returns {boolean} false, if the page has already been rendered\n * or if it's out of range\n */\n public addPageToRenderQueue(pageIndex: number): boolean {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n return PDFViewerApplication.pdfViewer.addPageToRenderQueue(pageIndex);\n }\n\n public isRenderQueueEmpty(): boolean {\n const scrolledDown = true;\n const renderExtra = false;\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const nextPage = PDFViewerApplication.pdfViewer.renderingQueue.getHighestPriority(PDFViewerApplication.pdfViewer._getVisiblePages(), PDFViewerApplication.pdfViewer._pages, scrolledDown, renderExtra);\n return !nextPage;\n }\n\n public hasPageBeenRendered(pageIndex: number): boolean {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const pages = PDFViewerApplication.pdfViewer._pages;\n if (pages.length > pageIndex && pageIndex >= 0) {\n const pageView = pages[pageIndex];\n const isLoading = pageView.div.querySelector(\".loadingIcon\");\n return isLoading;\n }\n return false;\n }\n\n public numberOfPages(): number {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const pages = PDFViewerApplication.pdfViewer._pages;\n return pages.length;\n }\n}\n","import { PdfCursorTools } from './../../options/pdf-cursor-tools';\nimport { Component, Input } from '@angular/core';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { HandtoolChanged } from '../../events/handtool-changed';\n\n@Component({\n selector: 'pdf-hand-tool',\n templateUrl: './pdf-hand-tool.component.html',\n styleUrls: ['./pdf-hand-tool.component.css']\n})\nexport class PdfHandToolComponent {\n @Input()\n public showHandToolButton = true;\n\n public isSelected = false;\n\n constructor(private notificationService: PDFNotificationService) {\n const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n this.onPdfJsInit();\n subscription.unsubscribe();\n });\n }\n\n private onPdfJsInit() {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.on('cursortoolchanged',\n ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.HAND));\n }\n\n public onClick(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.dispatch('switchcursortool', { tool: PdfCursorTools.HAND });\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdf-bookmark',\n templateUrl: './pdf-bookmark.component.html',\n styleUrls: ['./pdf-bookmark.component.css']\n})\nexport class PdfBookmarkComponent {\n\n @Input()\n public showBookmarkButton = true;\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-context-menu',\n templateUrl: './pdf-context-menu.component.html',\n styleUrls: ['./pdf-context-menu.component.css']\n})\nexport class PdfContextMenuComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-document-properties-overlay',\n templateUrl: './pdf-document-properties-overlay.component.html',\n styleUrls: ['./pdf-document-properties-overlay.component.css']\n})\nexport class PdfDocumentPropertiesOverlayComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdf-download',\n templateUrl: './pdf-download.component.html',\n styleUrls: ['./pdf-download.component.css']\n})\nexport class PdfDownloadComponent {\n @Input()\n public showDownloadButton = true;\n}\n","import { Component, Input, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'pdf-findbar',\n templateUrl: './pdf-findbar.component.html',\n styleUrls: ['./pdf-findbar.component.css']\n})\nexport class PdfFindbarComponent {\n @Input()\n public showFindButton = true;\n\n @Input()\n public mobileFriendlyZoomScale: number;\n\n @Input()\n public findbarLeft: string | undefined;\n\n @Input()\n public findbarTop: string | undefined;\n\n /* UI templates */\n @Input()\n public customFindbarInputArea: TemplateRef<any>;\n\n @Input()\n public customFindbar: TemplateRef<any>;\n\n @Input()\n public customFindbarButtons: TemplateRef<any>;\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-findbar-message-container',\n templateUrl: './pdf-findbar-message-container.component.html',\n styleUrls: ['./pdf-findbar-message-container.component.css']\n})\nexport class PdfFindbarMessageContainerComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-findbar-options-one-container',\n templateUrl: './pdf-findbar-options-one-container.component.html',\n styleUrls: ['./pdf-findbar-options-one-container.component.css']\n})\nexport class PdfFindbarOptionsOneContainerComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-findbar-options-three-container',\n templateUrl: './pdf-findbar-options-three-container.component.html',\n styleUrls: ['./pdf-findbar-options-three-container.component.css']\n})\nexport class PdfFindbarOptionsThreeContainerComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-findbar-options-two-container',\n templateUrl: './pdf-findbar-options-two-container.component.html',\n styleUrls: ['./pdf-findbar-options-two-container.component.css']\n})\nexport class PdfFindbarOptionsTwoContainerComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'pdf-find-button',\n templateUrl: './pdf-find-button.component.html',\n styleUrls: ['./pdf-find-button.component.css']\n})\nexport class PdfFindButtonComponent implements OnInit {\n @Input()\n public showFindButton: boolean | undefined = undefined;\n\n @Input()\n public textLayer: boolean | undefined = undefined;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-find-entire-word',\n templateUrl: './pdf-find-entire-word.component.html',\n styleUrls: ['./pdf-find-entire-word.component.css']\n})\nexport class PdfFindEntireWordComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-find-fuzzily',\n templateUrl: './pdf-find-fuzzily.component.html',\n styleUrls: ['./pdf-find-fuzzily.component.css']\n})\nexport class PdfFindFuzzilyComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-find-highlight-all',\n templateUrl: './pdf-find-highlight-all.component.html',\n styleUrls: ['./pdf-find-highlight-all.component.css']\n})\nexport class PdfFindHighlightAllComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-find-ignore-accents',\n templateUrl: './pdf-find-ignore-accents.component.html',\n styleUrls: ['./pdf-find-ignore-accents.component.css']\n})\nexport class PdfFindIgnoreAccentsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'pdf-find-input-area',\n templateUrl: './pdf-find-input-area.component.html',\n styleUrls: ['./pdf-find-input-area.component.css']\n})\nexport class PdfFindInputAreaComponent {\n @Input()\n public customFindbarInputArea: TemplateRef<any>;\n\n constructor() {}\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-find-match-case',\n templateUrl: './pdf-find-match-case.component.html',\n styleUrls: ['./pdf-find-match-case.component.css']\n})\nexport class PdfFindMatchCaseComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PdfFindbarService {\n public individualWordsMode = true;\n\n public multipleSearchTexts = false;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PdfFindbarService } from '../../pdf-findbar-service';\n\n@Component({\n selector: 'pdf-find-entire-phrase',\n templateUrl: './pdf-find-entire-phrase.component.html',\n styleUrls: ['./pdf-find-entire-phrase.component.css']\n})\nexport class PdfFindMultipleSearchTextsComponent implements OnInit {\n\n constructor(public pdfFindbarService: PdfFindbarService) {}\n\n ngOnInit() {}\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-find-next',\n templateUrl: './pdf-find-next.component.html',\n styleUrls: ['./pdf-find-next.component.css']\n})\nexport class PdfFindNextComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-find-previous',\n templateUrl: './pdf-find-previous.component.html',\n styleUrls: ['./pdf-find-previous.component.css']\n})\nexport class PdfFindPreviousComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-find-results-count',\n templateUrl: './pdf-find-results-count.component.html',\n styleUrls: ['./pdf-find-results-count.component.css']\n})\nexport class PdfFindResultsCountComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { PDFNotificationService } from './../../../pdf-notification-service';\nimport { Component, ViewChild, ElementRef} from '@angular/core';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { UpdateUIStateEvent } from '../../../events/update-ui-state-event';\n\n@Component({\n selector: 'pdf-first-page',\n templateUrl: './pdf-first-page.component.html',\n styleUrls: ['./pdf-first-page.component.css']\n})\nexport class PdfFirstPageComponent {\n public disableFirstPage = true;\n\n @ViewChild('button')\n private button: ElementRef<HTMLButtonElement>;\n\n constructor(private notificationService: PDFNotificationService) {\n const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n this.onPdfJsInit();\n subscription.unsubscribe();\n });\n }\n\n public firstPage(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.dispatch('firstpage');\n }\n\n public onPdfJsInit(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.on('updateuistate', (event) => this.updateUIState(event));\n }\n\n public updateUIState(event: UpdateUIStateEvent): void {\n this.disableFirstPage = event.pageNumber <= 1;\n this.button.nativeElement.disabled = this.disableFirstPage;\n }\n}\n","import { PDFNotificationService } from './../../../pdf-notification-service';\nimport { Component, ViewChild, ElementRef } from '@angular/core';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { UpdateUIStateEvent } from '../../../events/update-ui-state-event';\n\n@Component({\n selector: 'pdf-last-page',\n templateUrl: './pdf-last-page.component.html',\n styleUrls: ['./pdf-last-page.component.css']\n})\nexport class PdfLastPageComponent {\n public disableLastPage = true;\n\n @ViewChild('button')\n private button: ElementRef<HTMLButtonElement>;\n\n constructor(private notificationService: PDFNotificationService) {\n const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n this.onPdfJsInit();\n subscription.unsubscribe();\n });\n }\n\n public firstPage(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.dispatch('firstpage');\n }\n\n public onPdfJsInit(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.on('updateuistate', event => this.updateUIState(event));\n }\n\n public updateUIState(event: UpdateUIStateEvent): void {\n this.disableLastPage = event.pageNumber === event.pagesCount;\n this.button.nativeElement.disabled = this.disableLastPage;\n }\n\n public lastPage(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.dispatch('lastpage');\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-next-page',\n templateUrl: './pdf-next-page.component.html',\n styleUrls: ['./pdf-next-page.component.css']\n})\nexport class PdfNextPageComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdf-open-file',\n templateUrl: './pdf-open-file.component.html',\n styleUrls: ['./pdf-open-file.component.css']\n})\nexport class PdfOpenFileComponent {\n @Input()\n public showOpenFileButton = true;\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'pdf-page-number',\n templateUrl: './pdf-page-number.component.html',\n styleUrls: ['./pdf-page-number.component.css']\n})\nexport class PdfPageNumberComponent implements OnInit {\n @Input()\n public showPagingButtons = true;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdf-paging-area',\n templateUrl: './pdf-paging-area.component.html',\n styleUrls: ['./pdf-paging-area.component.css']\n})\nexport class PdfPagingAreaComponent {\n\n @Input()\n public showPagingButtons = true;\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdf-presentation-mode',\n templateUrl: './pdf-presentation-mode.component.html',\n styleUrls: ['./pdf-presentation-mode.component.css']\n})\nexport class PdfPresentationModeComponent {\n @Input()\n public showPresentationModeButton = true;\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-previous-page',\n templateUrl: './pdf-previous-page.component.html',\n styleUrls: ['./pdf-previous-page.component.css']\n})\nexport class PdfPreviousPageComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdf-print',\n templateUrl: './pdf-print.component.html',\n styleUrls: ['./pdf-print.component.css']\n})\nexport class PdfPrintComponent {\n @Input()\n public showPrintButton = true;\n}\n","import { PDFNotificationService } from './../../pdf-notification-service';\nimport { Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { UpdateUIStateEvent } from '../../events/update-ui-state-event';\n\n@Component({\n selector: 'pdf-rotate-page',\n templateUrl: './pdf-rotate-page.component.html',\n styleUrls: ['./pdf-rotate-page.component.css']\n})\nexport class PdfRotatePageComponent {\n @Input()\n public showRotateButton = true;\n\n public disableRotate = true;\n\n @Input()\n public clockwise = true;\n\n @Input()\n public counterClockwise = true;\n\n @ViewChild('button1')\n private button1: ElementRef<HTMLButtonElement>;\n\n @ViewChild('button2')\n private button2: ElementRef<HTMLButtonElement>;\n\n constructor(private notificationService: PDFNotificationService) {\n const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n this.onPdfJsInit();\n subscription.unsubscribe();\n });\n }\n\n public rotateCW(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.dispatch('rotatecw');\n }\n\n public rotateCCW(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.dispatch('rotateccw');\n }\n\n\n public onPdfJsInit(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.on('updateuistate', (event) => this.updateUIState(event));\n }\n\n public updateUIState(event: UpdateUIStateEvent): void {\n this.disableRotate = event.pagesCount === 0;\n if (this.button1) {\n this.button1.nativeElement.disabled = this.disableRotate;\n }\n if (this.button2) {\n this.button2.nativeElement.disabled = this.disableRotate;\n }\n }\n}\n","import { PdfFindbarService } from './../pdf-findbar-service';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-search-input-field',\n templateUrl: './pdf-search-input-field.component.html',\n styleUrls: ['./pdf-search-input-field.component.css'],\n})\nexport class PdfSearchInputFieldComponent {\n constructor(public pdfFindbarService: PdfFindbarService) {}\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ElementRef,\n HostListener,\n AfterViewInit,\n} from '@angular/core';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from './../../pdf-notification-service';\n\n@Component({\n selector: 'pdf-secondary-toolbar',\n templateUrl: './pdf-secondary-toolbar.component.html',\n styleUrls: ['./pdf-secondary-toolbar.component.css'],\n})\nexport class PdfSecondaryToolbarComponent implements OnInit, OnChanges, AfterViewInit {\n @Input()\n public customSecondaryToolbar: TemplateRef<any>;\n\n @Input()\n public secondaryToolbarTop;\n\n @Input()\n public mobileFriendlyZoomScale: number;\n\n @Input()\n public showPresentationModeButton = true;\n\n @Input()\n public showOpenFileButton = true;\n\n @Input()\n public showPrintButton = true;\n\n @Input()\n public showDownloadButton = true;\n\n @Input()\n public showBookmarkButton = true;\n\n @Input()\n public showPagingButtons = true;\n\n @Input()\n public showRotateButton = true;\n\n @Input()\n public showHandToolButton = true;\n\n @Input()\n public showScrollingButton = true;\n\n @Input()\n public showSpreadButton = true;\n\n @Input()\n public showPropertiesButton = true;\n\n @Output()\n public spreadChange = new EventEmitter<string>();\n\n @Output()\n public secondaryMenuIsEmpty = new EventEmitter<boolean>();\n\n public disablePreviousPage = true;\n\n public disableNextPage = true;\n\n constructor(private element: ElementRef, private notificationService: PDFNotificationService) {\n const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n this.onPdfJsInit();\n subscription.unsubscribe();\n });\n }\n\n public onPdfJsInit(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.on('pagechanging', () => {\n this.updateUIState();\n });\n PDFViewerApplication.eventBus.on('pagerendered', () => {\n this.updateUIState();\n });\n }\n\n public updateUIState(): void {\n setTimeout(() => {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n const currentPage = PDFViewerApplication.pdfViewer.currentPageNumber;\n const previousButton = document.getElementById('previousPage') as HTMLButtonElement;\n if (previousButton) {\n this.disablePreviousPage = Number(currentPage) <= 1;\n previousButton.disabled = this.disablePreviousPage;\n }\n const nextButton = document.getElementById('nextPage') as HTMLButtonElement;\n if (nextButton) {\n this.disableNextPage = currentPage === PDFViewerApplication.pagesCount;\n nextButton.disabled = this.disableNextPage;\n }\n });\n }\n\n public onSpreadChange(newSpread: string): void {\n this.spreadChange.emit(newSpread);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n setTimeout(() => this.checkVisibility());\n }\n\n @HostListener('window:resize')\n public onResize() {\n setTimeout(() => this.checkVisibility());\n }\n\n public ngAfterViewInit() {\n setTimeout(() => this.checkVisibility());\n }\n\n public ngOnInit() {\n setTimeout(() => this.checkVisibility());\n }\n\n public checkVisibility(): void {\n let visibleButtons = 0;\n const e = this.element.nativeElement as HTMLElement;\n const f = e.children.item(0);\n if (f) {\n const g = f.children.item(0);\n if (g && g instanceof HTMLElement) {\n visibleButtons = this.checkVisibilityRecursively(g);\n }\n }\n this.secondaryMenuIsEmpty.emit(visibleButtons === 0);\n }\n\n private checkVisibilityRecursively(e: HTMLElement): number {\n if (typeof window === 'undefined') {\n return 0;\n }\n if (e.style.display === 'none') {\n return 0;\n }\n if (e.classList.contains('hidden')) {\n return 0;\n }\n if (e.classList.contains('invisible')) {\n return 0;\n }\n\n const style = window.getComputedStyle(e);\n if (style.display === 'none') {\n return 0;\n }\n\n if (e instanceof HTMLButtonElement || e instanceof HTMLAnchorElement) {\n return 1;\n }\n let count = 0;\n const children = e.children;\n if (children && children.length) {\n for (let i = 0; i < children.length && count === 0; i++) {\n const child = children.item(i);\n if (child && child instanceof HTMLElement) {\n count += this.checkVisibilityRecursively(child);\n }\n }\n }\n return count;\n }\n\n public previousPage(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.dispatch('previouspage');\n }\n\n public nextPage(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.dispatch('nextpage');\n }\n}\n","import { Component, Input, TemplateRef, AfterContentInit, AfterViewInit, ViewChild, ElementRef, Output, EventEmitter, ViewEncapsulation, NgZone, ChangeDetectorRef } from '@angular/core';\nimport { PdfThumbnailDrawnEvent } from '../../events/pdf-thumbnail-drawn-event';\n\n@Component({\n selector: 'pdf-sidebar',\n templateUrl: './pdf-sidebar.component.html',\n styleUrls: ['./pdf-sidebar.component.css'],\n})\nexport class PdfSidebarComponent {\n @Input()\n public sidebarPositionTop: number;\n\n @Input()\n public sidebarVisible = true;\n\n @Input()\n public showSidebarButton = true;\n\n @Input()\n public customSidebar: TemplateRef<any>;\n\n @Input()\n public customThumbnail: TemplateRef<any>;\n\n @Output()\n public thumbnailDrawn = new EventEmitter<PdfThumbnailDrawnEvent>();\n\n public hideSidebarToolbar = true;\n\n constructor(private elementRef: ElementRef, private ref: ChangeDetectorRef) {}\n\n public showToolbarWhenNecessary(): void {\n const element = this.elementRef.nativeElement as HTMLElement;\n const buttons = element.querySelectorAll('button');\n let visible = 0;\n for (let index = 0; index < buttons.length; index++) {\n const b = buttons.item(index);\n if (!b.hidden) {\n visible++;\n }\n }\n this.hideSidebarToolbar = visible <= 1;\n this.ref.markForCheck();\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'pdf-toggle-secondary-toolbar',\n templateUrl: './pdf-toggle-secondary-toolbar.component.html',\n styleUrls: ['./pdf-toggle-secondary-toolbar.component.css']\n})\nexport class PdfToggleSecondaryToolbarComponent implements OnInit {\n @Input()\n public showSecondaryToolbarButton = true;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'pdf-toggle-sidebar',\n templateUrl: './pdf-toggle-sidebar.component.html',\n styleUrls: ['./pdf-toggle-sidebar.component.css']\n})\nexport class PdfToggleSidebarComponent implements OnInit {\n @Input()\n public showSidebarButton = true;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, OnInit, Input, TemplateRef, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'pdf-toolbar',\n templateUrl: './pdf-toolbar.component.html',\n styleUrls: ['./pdf-toolbar.component.css']\n})\nexport class PdfToolbarComponent {\n @Input()\n public customToolbar: TemplateRef<any>;\n\n @Input()\n public mobileFriendlyZoomScale = 1;\n\n @Input()\n public primaryMenuVisible = true;\n\n @Input()\n public showBookmarkButton = true;\n\n @Input()\n public showDownloadButton = true;\n\n @Input()\n public showFindButton: boolean | undefined = undefined;\n\n @Input()\n public showHandToolButton = true;\n\n @Input()\n public showOpenFileButton = true;\n\n @Input()\n public showPrintButton = true;\n\n @Input()\n public showPagingButtons = true;\n\n @Input()\n public showPresentationModeButton = false;\n\n @Input()\n public showRotateButton = true;\n\n @Input()\n public showSecondaryToolbarButton = true;\n\n @Input()\n public showSidebarButton = true;\n\n @Input()\n public showZoomButtons = true;\n\n @Input()\n public textLayer: boolean | undefined = undefined;\n\n @Input()\n public toolbarMarginTop = '0px';\n\n @Input()\n public toolbarWidth = '100%';\n\n @Input()\n public zoomLevels = ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4];\n\n constructor() {}\n}\n","import { Component, OnInit, ViewChild, Output, EventEmitter, Input, AfterViewInit, ElementRef } from '@angular/core';\n\ninterface ZoomLevel {\n id: string;\n dataL10nId: string;\n dataL10nArgs: string | undefined;\n value: string;\n displayValue: string;\n}\n@Component({\n selector: 'pdf-zoom-dropdown',\n templateUrl: './pdf-zoom-dropdown.component.html',\n styleUrls: ['./pdf-zoom-dropdown.component.css'],\n})\nexport class PdfZoomDropdownComponent implements OnInit {\n\n public _zoomLevels: Array<ZoomLevel> = [];\n // ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4];\n\n @Input()\n public set zoomLevels(levels: Array<string | number>) {\n this._zoomLevels = levels.map((l) => this.valueToZoomLevel(l));\n }\n\n\n @ViewChild('sizeSelector') sizeSelector: any;\n\n constructor(private element: ElementRef) {}\n\n ngOnInit() {\n if (typeof document !== 'undefined') {\n const callback = (e) => {\n document.removeEventListener('localized', callback);\n };\n\n document.addEventListener('localized', callback);\n }\n }\n\n private valueToZoomLevel(value: string | number): ZoomLevel {\n if (value.toString().endsWith('%')) {\n value = value.toString().replace('%', '');\n value = Number(value) / 100;\n }\n const numericalValue = Number(value);\n if (!numericalValue) {\n const v = String(value);\n return {\n id: this.snakeToCamel(value + 'Option'),\n value: v,\n dataL10nId: 'page_scale_' + v.replace('page-', ''),\n dataL10nArgs: undefined,\n displayValue: v,\n };\n }\n const percentage = Math.round(numericalValue * 100);\n return {\n id: `scale_${percentage}`,\n value: String(numericalValue),\n dataL10nId: 'page_scale_percent',\n dataL10nArgs: `{ \"scale\": ${percentage} }`,\n displayValue: String(percentage) + '%',\n };\n }\n\n private snakeToCamel(str: string) {\n // idea found here: https://hisk.io/javascript-snake-to-camel/\n return str.replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace('-', '').replace('_', ''));\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-zoom-in',\n templateUrl: './pdf-zoom-in.component.html',\n styleUrls: ['./pdf-zoom-in.component.css']\n})\nexport class PdfZoomInComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-zoom-out',\n templateUrl: './pdf-zoom-out.component.html',\n styleUrls: ['./pdf-zoom-out.component.css']\n})\nexport class PdfZoomOutComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'pdf-zoom-toolbar',\n templateUrl: './pdf-zoom-toolbar.component.html',\n styleUrls: ['./pdf-zoom-toolbar.component.css']\n})\nexport class PdfZoomToolbarComponent {\n\n @Input()\n public showZoomButtons = true;\n\n @Input()\n public zoomLevels = ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4];\n}\n","import { PdfCursorTools } from './../../options/pdf-cursor-tools';\nimport { Component, Input } from '@angular/core';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { HandtoolChanged } from '../../events/handtool-changed';\n\n@Component({\n selector: 'pdf-select-tool',\n templateUrl: './pdf-select-tool.component.html',\n styleUrls: ['./pdf-select-tool.component.css']\n})\nexport class PdfSelectToolComponent {\n @Input()\n public showSelectToolButton = true;\n\n public isSelected = true;\n\n constructor(private notificationService: PDFNotificationService) {\n const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n this.onPdfJsInit();\n subscription.unsubscribe();\n });\n }\n\n private onPdfJsInit() {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.on('cursortoolchanged',\n ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.SELECT));\n }\n\n public onClick(): void {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n PDFViewerApplication.eventBus.dispatch('switchcursortool', { tool: PdfCursorTools.SELECT });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, Inject, Input, OnChanges, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\n@Component({\n selector: 'pdf-dynamic-css',\n templateUrl: './dynamic-css.component.html',\n styleUrls: ['./dynamic-css.component.css']\n})\nexport class DynamicCssComponent implements OnInit, OnChanges, OnDestroy {\n @Input()\n public zoom = 1.0;\n\n @Input()\n public width = 100;\n\n public xs = 490;\n\n public sm = 560;\n\n public md = 610;\n\n public lg = 660;\n\n public xl = 740;\n\n public xxl = 830;\n\n public get style(): string {\n return `\n@media all and (max-width: ${this.xl}px) {\n #toolbarViewerMiddle {\n display: table;\n margin: auto;\n left: auto;\n position: inherit;\n transform: none;\n }\n}\n\n@media all and (max-width: 840px) {\n #sidebarContent {\n background-color: rgba(0, 0, 0, 0.7);\n }\n\n html[dir='ltr'] #outerContainer.sidebarOpen #viewerContainer {\n left: 0px !important;\n }\n html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer {\n right: 0px !important;\n }\n\n #outerContainer .hiddenLargeView,\n #outerContainer .hiddenMediumView {\n display: inherit;\n }\n #outerContainer .visibleLargeView,\n #outerContainer .visibleMediumView {\n display: none;\n }\n}\n\n@media all and (max-width: ${this.lg}px) {\n .toolbarButtonSpacer {\n width: 15px;\n }\n\n #outerContainer .hiddenLargeView {\n display: none;\n }\n #outerContainer .visibleLargeView {\n display: inherit;\n }\n}\n\n@media all and (max-width: ${this.md}px) {\n .toolbarButtonSpacer {\n display: none;\n }\n #outerContainer .hiddenMediumView {\n display: none;\n }\n #outerContainer .visibleMediumView {\n display: inherit;\n }\n}\n\n@media all and (max-width: ${this.sm}px) {\n #outerContainer .hiddenSmallView,\n #outerContainer .hiddenSmallView * {\n display: none;\n }\n #outerContainer .visibleSmallView {\n display: inherit;\n }\n .toolbarButtonSpacer {\n width: 0;\n }\n html[dir='ltr'] .findbar {\n left: 38px;\n }\n html[dir='rtl'] .findbar {\n right: 38px;\n }\n}\n\n@media all and (max-width: ${this.xs}px) {\n #scaleSelectContainer {\n display: none;\n }\n}\n\n#outerContainer .visibleXLView,\n#outerContainer .visibleXXLView,\n#outerContainer .visibleTinyView {\n display: none;\n}\n\n#outerContainer .hiddenXLView,\n#outerContainer .hiddenXXLView {\n display: unset;\n}\n\n@media all and (max-width: ${this.xl}px) {\n #outerContainer .hiddenXLView {\n display: none;\n }\n #outerContainer .visibleXLView {\n display: inherit;\n }\n\n #toolbarViewerMiddle {\n -webkit-transform: translateX(-36%);\n transform: translateX(-36%);\n display: unset;\n margin: unset;\n left: 50%;\n position: absolute;\n }\n}\n\n@media all and (max-width: ${this.xxl}px) {\n #outerContainer .hiddenXXLView {\n display: none;\n }\n #outerContainer .visibleXXLView {\n display: inherit;\n }\n}\n\n@media all and (max-width: ${this.md}px) {\n #toolbarViewerMiddle {\n -webkit-transform: translateX(-26%);\n transform: translateX(-26%);\n }\n}\n\n@media all and (max-width: ${this.xs}px) {\n #outerContainer .hiddenTinyView,\n #outerContainer .hiddenTinyView * {\n display: none;\n }\n #outerContainer .visibleTinyView {\n display: inherit;\n }\n}\n `;\n}\n\n constructor(private renderer: Renderer2, @Inject(DOCUMENT) private document: any) {}\n\n ngOnInit() {\n this.injectStyle();\n }\n\n ngOnChanges() {\n const fullWith = this.document.body.clientWidth;\n const partialViewScale = fullWith / this.width;\n const scaleFactor = partialViewScale * (this.zoom ? this.zoom : 1);\n\n this.xs = scaleFactor * 490;\n this.sm = scaleFactor * 560;\n this.md = scaleFactor * 610;\n this.lg = scaleFactor * 660;\n this.xl = scaleFactor * 740;\n this.xxl = scaleFactor * 830;\n\n const styles = this.document.getElementById('pdf-dynamic-css');\n if (styles) {\n styles.innerHTML = this.style;\n }\n }\n\n private injectStyle() {\n const styles = this.document.createElement('STYLE') as HTMLStyleElement;\n styles.id = 'pdf-dynamic-css';\n styles.innerHTML = this.style;\n this.renderer.appendChild(this.document.head, styles);\n }\n\n public ngOnDestroy() {\n const styles = this.document.getElementById('pdf-dynamic-css') as HTMLElement;\n if (styles && styles.parentElement) {\n (styles.parentElement as any).removeChild(styles);\n }\n }\n}\n","import { Component, Input, TemplateRef, ViewChild, ElementRef, OnDestroy, EventEmitter, Output } from '@angular/core';\nimport { PdfThumbnailDrawnEvent } from '../../../events/pdf-thumbnail-drawn-event';\n\ndeclare class PDFThumbnailView {\n anchor: HTMLAnchorElement;\n div: HTMLElement;\n ring: HTMLElement;\n canvasWidth: number;\n canvasHeight: number;\n}\n\ndeclare class PDFLinkService {\n public page: number;\n public pagesCount: number;\n public getAnchorUrl(targetUrl: string): string;\n}\n\nconst THUMBNAIL_CANVAS_BORDER_WIDTH = 1; // px\n\n@Component({\n selector: 'pdf-sidebar-content',\n templateUrl: './pdf-sidebar-content.component.html',\n styleUrls: ['./pdf-sidebar-content.component.css'],\n})\nexport class PdfSidebarContentComponent implements OnDestroy {\n @Input()\n public customThumbnail: TemplateRef<any>;\n\n @ViewChild('thumbnailViewTemplate')\n public thumbnailViewTemplate: ElementRef;\n\n private linkService: PDFLinkService | undefined;\n\n @Output()\n public thumbnailDrawn = new EventEmitter<PdfThumbnailDrawnEvent>();\n\n public top = '32px';\n\n public _hideSidebarToolbar = false;\n\n constructor() {\n if (typeof window !== 'undefined') {\n (window as any).pdfThumbnailGeneratorReady = () => this.pdfThumbnailGeneratorReady();\n (window as any).pdfThumbnailGenerator = (\n pdfThumbnailView: PDFThumbnailView,\n linkService: any,\n id: number,\n container: HTMLDivElement,\n thumbPageTitlePromise: Promise<string>\n ) => this.createThumbnail(pdfThumbnailView, linkService, id, container, thumbPageTitlePromise);\n }\n }\n\n public ngOnDestroy(): void {\n this.linkService = undefined;\n }\n\n public pdfThumbnailGeneratorReady(): boolean {\n if (!this.thumbnailViewTemplate) {\n return false;\n }\n const t = this.thumbnailViewTemplate.nativeElement as HTMLElement;\n return !!t && !!t.innerHTML && t.innerHTML.length > 0;\n }\n\n private createThumbnail(\n pdfThumbnailView: PDFThumbnailView,\n linkService: PDFLinkService,\n id: number,\n container: HTMLDivElement,\n thumbPageTitlePromise: Promise<string>\n ) {\n this.linkService = linkService;\n const template = this.thumbnailViewTemplate;\n // get the inner HTML without the attributes and classes added by Angular\n const inner = template.nativeElement.innerHTML\n .split(/_ng\\w+-\\w+-\\w+=\"\"/g)\n .join('')\n .split(/ng-\\w+-\\w+/g)\n .join('')\n .split(/<!--[\\s\\S]*?-->/g)\n .join('');\n\n const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH;\n\n const widthOfRing = pdfThumbnailView.canvasWidth + borderAdjustment + 'px';\n const heightOfRing = pdfThumbnailView.canvasHeight + borderAdjustment + 'px';\n\n const newHtml = inner.split('WIDTH_OF_RING').join(widthOfRing).split('HEIGHT_OF_RING').join(heightOfRing).split('PAGE_NUMBER').join(id);\n const newElement = this.createElementFromHTML(newHtml);\n newElement.classList.remove('pdf-viewer-template');\n\n const anchor = newElement as HTMLAnchorElement;\n anchor.href = linkService.getAnchorUrl('#page=' + id);\n thumbPageTitlePromise.then((msg) => {\n anchor.title = msg;\n });\n anchor.onclick = function () {\n linkService.page = id;\n return false;\n };\n pdfThumbnailView.anchor = anchor;\n\n const ring = newElement.getElementsByClassName('image-container')[0] as HTMLElement;\n pdfThumbnailView.ring = ring;\n pdfThumbnailView.div = newElement.getElementsByClassName('thumbnail')[0] as HTMLElement;\n\n container.appendChild(newElement);\n\n const thumbnailDrawnEvent: PdfThumbnailDrawnEvent = {\n thumbnail: newElement,\n container: container,\n pageId: id,\n };\n this.thumbnailDrawn.emit(thumbnailDrawnEvent);\n }\n\n private createElementFromHTML(htmlString): HTMLElement {\n const div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n\n // Change this to div.childNodes to support multiple top-level nodes\n return div.firstChild as HTMLElement;\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.code === 'ArrowDown') {\n if (this.linkService) {\n if (event.ctrlKey || event.metaKey) {\n this.linkService.page = this.linkService.pagesCount;\n } else if (this.linkService.page < this.linkService.pagesCount) {\n this.linkService.page = this.linkService.page + 1;\n }\n event.preventDefault();\n }\n } else if (event.code === 'ArrowUp') {\n if (this.linkService) {\n if (event.ctrlKey || event.metaKey) {\n this.linkService.page = 1;\n } else if (this.linkService.page > 1) {\n this.linkService.page = this.linkService.page - 1;\n }\n event.preventDefault();\n }\n }\n }\n\n @Input()\n public set hideSidebarToolbar(h: boolean) {\n this._hideSidebarToolbar = h;\n if (this._hideSidebarToolbar) {\n this.top = '0';\n } else {\n this.top = '32px';\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pdf-sidebar-toolbar',\n templateUrl: './pdf-sidebar-toolbar.component.html',\n styleUrls: ['./pdf-sidebar-toolbar.component.css']\n})\nexport class PdfSidebarToolbarComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pdf-light-theme',\n templateUrl: './pdf-light-theme.component.html',\n styleUrls: ['./colors.scss', '../common/print.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PdfLightThemeComponent {}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pdf-original-theme',\n templateUrl: './pdf-original.component.html',\n styleUrls: ['./viewer-with-images.css', './ngx-extended-pdf-viewer.component.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PdfOriginalComponent {}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pdf-dark-theme',\n templateUrl: './pdf-dark-theme.component.html',\n styleUrls: ['./colors.scss', '../common/print.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PdfDarkThemeComponent {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\n\n@Pipe({\n name: 'translate'\n})\nexport class TranslatePipe implements PipeTransform {\n\n transform(key: string, fallback: string): Promise<string> {\n return this.translate(key, fallback);\n }\n\n public async translate(key: string, englishText: string): Promise<string> {\n const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n return PDFViewerApplication.l10n.get(key, null, englishText);\n }\n}\n","import { PdfHandToolComponent } from './toolbar/pdf-hand-tool/pdf-hand-tool.component';\n// tslint:disable:max-line-length\n\nimport { CommonModule, Location } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { PdfBookmarkComponent } from './toolbar/pdf-bookmark/pdf-bookmark.component';\nimport { PdfContextMenuComponent } from './toolbar/pdf-context-menu/pdf-context-menu.component';\nimport { PdfDocumentPropertiesOverlayComponent } from './document-properties/pdf-document-properties-overlay/pdf-document-properties-overlay.component';\nimport { PdfDownloadComponent } from './toolbar/pdf-download/pdf-download.component';\nimport { PdfDummyComponentsComponent } from './pdf-dummy-components/pdf-dummy-components.component';\nimport { PdfFindbarComponent } from './toolbar/pdf-findbar/pdf-findbar.component';\nimport { PdfFindbarMessageContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nimport { PdfFindbarOptionsOneContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component';\nimport { PdfFindbarOptionsThreeContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component';\nimport { PdfFindbarOptionsTwoContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component';\nimport { PdfFindButtonComponent } from './toolbar/pdf-find-button/pdf-find-button.component';\nimport { PdfFindEntireWordComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nimport { PdfFindFuzzilyComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-fuzzily/pdf-find-fuzzily.component';\nimport { PdfFindHighlightAllComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nimport { PdfFindIgnoreAccentsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component';\nimport { PdfFindInputAreaComponent } from './toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nimport { PdfFindMatchCaseComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nimport { PdfFindMultipleSearchTextsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component';\nimport { PdfFindNextComponent } from './toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nimport { PdfFindPreviousComponent } from './toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nimport { PdfFindResultsCountComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nimport { PdfFirstPageComponent } from './toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nimport { PdfLastPageComponent } from './toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nimport { PdfNextPageComponent } from './toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nimport { PdfOpenFileComponent } from './toolbar/pdf-open-file/pdf-open-file.component';\nimport { PdfPageNumberComponent } from './toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nimport { PdfPagingAreaComponent } from './toolbar/pdf-paging-area/pdf-paging-area.component';\nimport { PdfPresentationModeComponent } from './toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nimport { PdfPreviousPageComponent } from './toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nimport { PdfPrintComponent } from './toolbar/pdf-print/pdf-print.component';\nimport { PdfRotatePageComponent } from './toolbar/pdf-rotate-page/pdf-rotate-page.component';\nimport { PdfSearchInputFieldComponent } from './toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { PdfToggleSecondaryToolbarComponent } from './toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nimport { PdfToggleSidebarComponent } from './toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nimport { PdfToolbarComponent } from './toolbar/pdf-toolbar/pdf-toolbar.component';\nimport { PdfZoomDropdownComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nimport { PdfZoomInComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nimport { PdfZoomOutComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nimport { PdfZoomToolbarComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\nimport { PdfSelectToolComponent } from './toolbar/pdf-select-tool/pdf-select-tool.component';\nimport { DynamicCssComponent } from './dynamic-css/dynamic-css.component';\nimport { PDFNotificationService } from './pdf-notification-service';\nimport { PdfSidebarContentComponent } from './sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nimport { PdfSidebarToolbarComponent } from './sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nimport { PdfLightThemeComponent } from './theme/pdf-light-theme/pdf-light-theme.component';\nimport { PdfOriginalComponent } from './theme/pdf-original-theme/pdf-original.component';\nimport { PdfDarkThemeComponent } from './theme/pdf-dark-theme/pdf-dark-theme.component';\nimport { TranslatePipe } from './translate.pipe';\nimport { NgxConsole } from './options/ngx-console';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [\n DynamicCssComponent,\n PdfZoomDropdownComponent,\n PdfContextMenuComponent,\n PdfPresentationModeComponent,\n PdfOpenFileComponent,\n PdfPrintComponent,\n PdfDownloadComponent,\n PdfBookmarkComponent,\n PdfZoomToolbarComponent,\n PdfPagingAreaComponent,\n PdfFindbarComponent,\n PdfSidebarComponent,\n PdfHandToolComponent,\n PdfSelectToolComponent,\n PdfSecondaryToolbarComponent,\n PdfDocumentPropertiesOverlayComponent,\n PdfSearchInputFieldComponent,\n PdfFindPreviousComponent,\n PdfFindNextComponent,\n PdfFindInputAreaComponent,\n PdfFindbarOptionsTwoContainerComponent,\n PdfFindbarOptionsOneContainerComponent,\n PdfFindMatchCaseComponent,\n PdfFindHighlightAllComponent,\n PdfFindEntireWordComponent,\n PdfFindFuzzilyComponent,\n PdfFindMultipleSearchTextsComponent,\n PdfFindIgnoreAccentsComponent,\n PdfFindbarOptionsThreeContainerComponent,\n PdfFindResultsCountComponent,\n PdfFindbarMessageContainerComponent,\n PdfToolbarComponent,\n PdfFindButtonComponent,\n PdfToggleSidebarComponent,\n PdfToggleSecondaryToolbarComponent,\n PdfLastPageComponent,\n PdfFirstPageComponent,\n PdfNextPageComponent,\n PdfPreviousPageComponent,\n PdfPageNumberComponent,\n PdfRotatePageComponent,\n PdfZoomInComponent,\n PdfZoomOutComponent,\n PdfDummyComponentsComponent,\n PdfSidebarContentComponent,\n PdfSidebarToolbarComponent,\n PdfOriginalComponent,\n PdfDarkThemeComponent,\n PdfLightThemeComponent,\n TranslatePipe,\n ],\n providers: [PDFNotificationService, Location],\n exports: [\n PdfZoomDropdownComponent,\n PdfContextMenuComponent,\n PdfPresentationModeComponent,\n PdfOpenFileComponent,\n PdfPrintComponent,\n PdfDownloadComponent,\n PdfBookmarkComponent,\n PdfZoomToolbarComponent,\n PdfPagingAreaComponent,\n PdfFindbarComponent,\n PdfSidebarComponent,\n PdfSidebarContentComponent,\n PdfSidebarToolbarComponent,\n PdfSecondaryToolbarComponent,\n PdfDocumentPropertiesOverlayComponent,\n PdfSearchInputFieldComponent,\n PdfFindPreviousComponent,\n PdfFindNextComponent,\n PdfFindInputAreaComponent,\n PdfFindbarOptionsTwoContainerComponent,\n PdfFindbarOptionsOneContainerComponent,\n PdfFindMatchCaseComponent,\n PdfFindHighlightAllComponent,\n PdfFindEntireWordComponent,\n PdfFindMultipleSearchTextsComponent,\n PdfFindIgnoreAccentsComponent,\n PdfFindbarOptionsThreeContainerComponent,\n PdfFindResultsCountComponent,\n PdfFindbarMessageContainerComponent,\n PdfHandToolComponent,\n PdfRotatePageComponent,\n PdfSelectToolComponent,\n PdfToolbarComponent,\n PdfFindButtonComponent,\n PdfToggleSidebarComponent,\n PdfToggleSecondaryToolbarComponent,\n PdfLastPageComponent,\n PdfFirstPageComponent,\n PdfNextPageComponent,\n PdfPreviousPageComponent,\n PdfPageNumberComponent,\n PdfZoomInComponent,\n PdfZoomOutComponent,\n PdfOriginalComponent,\n PdfDarkThemeComponent,\n PdfLightThemeComponent,\n TranslatePipe,\n DynamicCssComponent,\n PdfDummyComponentsComponent\n ],\n})\nexport class NgxExtendedPdfViewerCommonModule {\n constructor() {}\n}\n","import { NgxExtendedPdfViewerCommonModule } from './ngx-extended-pdf-viewer-common.module';\nimport { PdfHandToolComponent } from './toolbar/pdf-hand-tool/pdf-hand-tool.component';\n// tslint:disable:max-line-length\n\nimport { CommonModule} from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { IPDFViewerApplicationOptions } from './options/pdf-viewer-application-options';\nimport { NgModule } from '@angular/core';\nimport { NgxExtendedPdfViewerComponent } from './ngx-extended-pdf-viewer.component';\nimport { PdfBookmarkComponent } from './toolbar/pdf-bookmark/pdf-bookmark.component';\nimport { PdfContextMenuComponent } from './toolbar/pdf-context-menu/pdf-context-menu.component';\nimport { PdfDocumentPropertiesOverlayComponent } from './document-properties/pdf-document-properties-overlay/pdf-document-properties-overlay.component';\nimport { PdfDownloadComponent } from './toolbar/pdf-download/pdf-download.component';\nimport { PdfFindbarComponent } from './toolbar/pdf-findbar/pdf-findbar.component';\nimport { PdfFindbarMessageContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nimport { PdfFindbarOptionsOneContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component';\nimport { PdfFindbarOptionsThreeContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component';\nimport { PdfFindbarOptionsTwoContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component';\nimport { PdfFindButtonComponent } from './toolbar/pdf-find-button/pdf-find-button.component';\nimport { PdfFindEntireWordComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nimport { PdfFindHighlightAllComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nimport { PdfFindIgnoreAccentsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component';\nimport { PdfFindInputAreaComponent } from './toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nimport { PdfFindMatchCaseComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nimport { PdfFindMultipleSearchTextsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component';\nimport { PdfFindNextComponent } from './toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nimport { PdfFindPreviousComponent } from './toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nimport { PdfFindResultsCountComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nimport { PdfFirstPageComponent } from './toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nimport { PdfLastPageComponent } from './toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nimport { PdfNextPageComponent } from './toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nimport { PdfOpenFileComponent } from './toolbar/pdf-open-file/pdf-open-file.component';\nimport { PdfPageNumberComponent } from './toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nimport { PdfPagingAreaComponent } from './toolbar/pdf-paging-area/pdf-paging-area.component';\nimport { PdfPresentationModeComponent } from './toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nimport { PdfPreviousPageComponent } from './toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nimport { PdfPrintComponent } from './toolbar/pdf-print/pdf-print.component';\nimport { PdfRotatePageComponent } from './toolbar/pdf-rotate-page/pdf-rotate-page.component';\nimport { PdfSearchInputFieldComponent } from './toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { PdfToggleSecondaryToolbarComponent } from './toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nimport { PdfToggleSidebarComponent } from './toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nimport { PdfToolbarComponent } from './toolbar/pdf-toolbar/pdf-toolbar.component';\nimport { PdfZoomDropdownComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nimport { PdfZoomInComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nimport { PdfZoomOutComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nimport { PdfZoomToolbarComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\nimport { PdfSelectToolComponent } from './toolbar/pdf-select-tool/pdf-select-tool.component';\nimport { PdfSidebarContentComponent } from './sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nimport { PdfSidebarToolbarComponent } from './sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nimport { NgxExtendedPdfViewerService } from './ngx-extended-pdf-viewer.service';\nif (!Promise['allSettled']) {\n if (!!window['Zone'] && !window['__zone_symbol__Promise.allSettled']) {\n console.error(\n \"Please update zone.js to version 0.10.3 or higher. Otherwise, you'll run the slow ECMAScript 5 version even on modern browser that can run the fast ESMAScript 2015 version.\"\n );\n }\n}\n\nfunction isKeyIgnored(cmd: number, keycode: number | 'WHEEL'): boolean {\n const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = (window as any).PDFViewerApplicationOptions;\n\n const ignoreKeys: Array<string> = PDFViewerApplicationOptions.get('ignoreKeys');\n const acceptKeys: Array<string> = PDFViewerApplicationOptions.get('acceptKeys');\n if (keycode === 'WHEEL') {\n if (isKeyInList(ignoreKeys, cmd, 'WHEEL')) {\n return true;\n }\n if (!!acceptKeys && acceptKeys.length > 0) {\n return !isKeyInList(acceptKeys, cmd, 'WHEEL');\n }\n\n return false;\n }\n\n if (keycode === 16 || keycode === 17 || keycode === 18 || keycode === 224) {\n // ignore solitary SHIFT, ALT, CMD, and CTRL because they only make sense as two-key-combinations\n return true;\n }\n // cmd is a bit-array:\n // 1 == CTRL\n // 2 == ALT\n // 4 == SHIFT\n // 8 == META\n const ignoreKeyboard = PDFViewerApplicationOptions.get('ignoreKeyboard');\n if (!!ignoreKeyboard) {\n return true;\n }\n\n if (!!ignoreKeys && ignoreKeys.length > 0) {\n if (isKeyInList(ignoreKeys, cmd, keycode)) {\n return true;\n }\n }\n\n if (!!acceptKeys && acceptKeys.length > 0) {\n return !isKeyInList(acceptKeys, cmd, keycode);\n }\n return false;\n}\n\nfunction isKeyInList(settings: Array<string>, cmd: number, keycode: number | 'WHEEL'): boolean {\n if (!settings) {\n return true;\n }\n return settings.some((keyDef) => isKey(keyDef, cmd, keycode));\n}\n\nfunction isKey(keyDef: string, cmd: number, keycode: number | 'WHEEL'): boolean {\n let cmdDef = 0;\n let key = 0;\n keyDef = keyDef.toLowerCase();\n // tslint:disable: no-bitwise\n if (keyDef.includes('ctrl+')) {\n cmdDef |= 1;\n keyDef = keyDef.replace('ctrl+', '');\n }\n if (keyDef.includes('cmd+')) {\n cmdDef |= 8;\n keyDef = keyDef.replace('cmd+', '');\n }\n if (keyDef.includes('alt+')) {\n cmdDef |= 2;\n keyDef = keyDef.replace('alt+', '');\n }\n if (keyDef.includes('shift+')) {\n cmdDef |= 4;\n keyDef = keyDef.replace('shift+', '');\n }\n if (keyDef.includes('meta+')) {\n cmdDef |= 8;\n keyDef = keyDef.replace('meta+', '');\n }\n\n if (keyDef === 'up') {\n key = 38;\n } else if (keyDef === 'down') {\n key = 40;\n } else if (keyDef === '+' || keyDef === '\"+\"') {\n key = 171;\n } else if (keyDef === '-' || keyDef === '\"-\"') {\n key = 173;\n } else if (keyDef === 'esc') {\n key = 27;\n } else if (keyDef === 'enter') {\n key = 13;\n } else if (keyDef === 'space') {\n key = 32;\n } else if (keyDef === 'f4') {\n key = 115;\n } else if (keyDef === 'backspace') {\n key = 8;\n } else if (keyDef === 'home') {\n key = 36;\n } else if (keyDef === 'end') {\n key = 35;\n } else if (keyDef === 'left') {\n key = 37;\n } else if (keyDef === 'right') {\n key = 39;\n } else if (keyDef === 'pagedown') {\n key = 34;\n } else if (keyDef === 'pageup') {\n key = 33;\n } else {\n key = keyDef.toUpperCase().charCodeAt(0);\n }\n if (keycode === 'WHEEL') {\n return keyDef === 'wheel' && cmd === cmdDef;\n }\n return key === keycode && cmd === cmdDef;\n}\n\nif (typeof window !== 'undefined') {\n (window as any).isKeyIgnored = isKeyIgnored;\n}\n\n\n\n@NgModule({\n imports: [NgxExtendedPdfViewerCommonModule, CommonModule, FormsModule],\n declarations: [\n NgxExtendedPdfViewerComponent,\n ],\n providers: [NgxExtendedPdfViewerService],\n exports: [\n PdfZoomDropdownComponent,\n PdfContextMenuComponent,\n PdfPresentationModeComponent,\n PdfOpenFileComponent,\n PdfPrintComponent,\n PdfDownloadComponent,\n PdfBookmarkComponent,\n PdfZoomToolbarComponent,\n PdfPagingAreaComponent,\n PdfFindbarComponent,\n PdfSidebarComponent,\n PdfSidebarContentComponent,\n PdfSidebarToolbarComponent,\n PdfSecondaryToolbarComponent,\n PdfDocumentPropertiesOverlayComponent,\n PdfSearchInputFieldComponent,\n PdfFindPreviousComponent,\n PdfFindNextComponent,\n PdfFindInputAreaComponent,\n PdfFindbarOptionsTwoContainerComponent,\n PdfFindbarOptionsOneContainerComponent,\n PdfFindMatchCaseComponent,\n PdfFindHighlightAllComponent,\n PdfFindEntireWordComponent,\n PdfFindMultipleSearchTextsComponent,\n PdfFindIgnoreAccentsComponent,\n PdfFindbarOptionsThreeContainerComponent,\n PdfFindResultsCountComponent,\n PdfFindbarMessageContainerComponent,\n PdfHandToolComponent,\n PdfRotatePageComponent,\n PdfSelectToolComponent,\n PdfToolbarComponent,\n PdfFindButtonComponent,\n PdfToggleSidebarComponent,\n PdfToggleSecondaryToolbarComponent,\n PdfLastPageComponent,\n PdfFirstPageComponent,\n PdfNextPageComponent,\n PdfPreviousPageComponent,\n PdfPageNumberComponent,\n PdfZoomInComponent,\n PdfZoomOutComponent,\n NgxExtendedPdfViewerComponent,\n ],\n})\nexport class NgxExtendedPdfViewerModule {\n constructor() {}\n}\n","\nexport interface FindOptions {\n highlightAll?: boolean;\n matchCase?: boolean;\n wholeWords?: boolean;\n ignoreAccents?: boolean;\n findMultipleSearchTexts?: boolean;\n fuzzySearch?: boolean;\n}\n\nexport interface PDFExportScaleFactor {\n width?: number;\n height?: number;\n scale?: number;\n}\n\nexport class NgxExtendedPdfViewerService {\n constructor() {}\n\n public findMultiple(text: Array<string>, options: FindOptions = {}): boolean {\n return false;\n }\n\n public find(text: string, options: FindOptions = {}): boolean {\n return false;\n }\n\n public findNext(): boolean {\n return false;\n }\n\n public findPrevious(): boolean {\n return false;\n }\n\n public print(printRange?: any) {\n return false;\n }\n\n public removePrintRange() {\n\n }\n\n public setPrintRange(printRange: any) {\n }\n\n public filteredPageCount(pageCount: number, range: any): number {\n return 0;\n }\n\n public isInPDFPrintRange(pageIndex: number, printRange: any) {\n }\n\n public async getPageAsText(pageNumber: number): Promise<string> {\n return '';\n }\n\n public async getCurrentDocumentAsBlob(): Promise<Blob> {\n return new Blob([], { type: 'application/pdf' });\n }\n\n public async getFormData(): Promise<Array<Object>> {\n return [];\n }\n}\n","import { NgxExtendedPdfViewerCommonModule } from './ngx-extended-pdf-viewer-common.module';\nimport { NgxExtendedPdfViewerServerComponent } from './ngx-extended-pdf-viewer-server.component';\nimport { PdfHandToolComponent } from './toolbar/pdf-hand-tool/pdf-hand-tool.component';\n// tslint:disable:max-line-length\n\nimport { NgModule } from '@angular/core';\nimport { PdfBookmarkComponent } from './toolbar/pdf-bookmark/pdf-bookmark.component';\nimport { PdfContextMenuComponent } from './toolbar/pdf-context-menu/pdf-context-menu.component';\nimport { PdfDocumentPropertiesOverlayComponent } from './document-properties/pdf-document-properties-overlay/pdf-document-properties-overlay.component';\nimport { PdfDownloadComponent } from './toolbar/pdf-download/pdf-download.component';\nimport { PdfFindbarComponent } from './toolbar/pdf-findbar/pdf-findbar.component';\nimport { PdfFindbarMessageContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nimport { PdfFindbarOptionsOneContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component';\nimport { PdfFindbarOptionsThreeContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component';\nimport { PdfFindbarOptionsTwoContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component';\nimport { PdfFindButtonComponent } from './toolbar/pdf-find-button/pdf-find-button.component';\nimport { PdfFindEntireWordComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nimport { PdfFindHighlightAllComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nimport { PdfFindIgnoreAccentsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component';\nimport { PdfFindInputAreaComponent } from './toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nimport { PdfFindMatchCaseComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nimport { PdfFindMultipleSearchTextsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component';\nimport { PdfFindNextComponent } from './toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nimport { PdfFindPreviousComponent } from './toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nimport { PdfFindResultsCountComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nimport { PdfFirstPageComponent } from './toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nimport { PdfLastPageComponent } from './toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nimport { PdfNextPageComponent } from './toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nimport { PdfOpenFileComponent } from './toolbar/pdf-open-file/pdf-open-file.component';\nimport { PdfPageNumberComponent } from './toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nimport { PdfPagingAreaComponent } from './toolbar/pdf-paging-area/pdf-paging-area.component';\nimport { PdfPresentationModeComponent } from './toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nimport { PdfPreviousPageComponent } from './toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nimport { PdfPrintComponent } from './toolbar/pdf-print/pdf-print.component';\nimport { PdfRotatePageComponent } from './toolbar/pdf-rotate-page/pdf-rotate-page.component';\nimport { PdfSearchInputFieldComponent } from './toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { PdfToggleSecondaryToolbarComponent } from './toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nimport { PdfToggleSidebarComponent } from './toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nimport { PdfToolbarComponent } from './toolbar/pdf-toolbar/pdf-toolbar.component';\nimport { PdfZoomDropdownComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nimport { PdfZoomInComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nimport { PdfZoomOutComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nimport { PdfZoomToolbarComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\nimport { PdfSelectToolComponent } from './toolbar/pdf-select-tool/pdf-select-tool.component';\nimport { PdfSidebarContentComponent } from './sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nimport { PdfSidebarToolbarComponent } from './sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgxExtendedPdfViewerService } from './ngx-extended-pdf-viewer-server.service';\n\n@NgModule({\n imports: [NgxExtendedPdfViewerCommonModule, CommonModule, FormsModule],\n declarations: [\n NgxExtendedPdfViewerServerComponent,\n ],\n providers: [NgxExtendedPdfViewerService],\n exports: [\n PdfZoomDropdownComponent,\n PdfContextMenuComponent,\n PdfPresentationModeComponent,\n PdfOpenFileComponent,\n PdfPrintComponent,\n PdfDownloadComponent,\n PdfBookmarkComponent,\n PdfZoomToolbarComponent,\n PdfPagingAreaComponent,\n PdfFindbarComponent,\n PdfSidebarComponent,\n PdfSidebarContentComponent,\n PdfSidebarToolbarComponent,\n PdfSecondaryToolbarComponent,\n PdfDocumentPropertiesOverlayComponent,\n PdfSearchInputFieldComponent,\n PdfFindPreviousComponent,\n PdfFindNextComponent,\n PdfFindInputAreaComponent,\n PdfFindbarOptionsTwoContainerComponent,\n PdfFindbarOptionsOneContainerComponent,\n PdfFindMatchCaseComponent,\n PdfFindHighlightAllComponent,\n PdfFindEntireWordComponent,\n PdfFindMultipleSearchTextsComponent,\n PdfFindIgnoreAccentsComponent,\n PdfFindbarOptionsThreeContainerComponent,\n PdfFindResultsCountComponent,\n PdfFindbarMessageContainerComponent,\n PdfHandToolComponent,\n PdfRotatePageComponent,\n PdfSelectToolComponent,\n PdfToolbarComponent,\n PdfFindButtonComponent,\n PdfToggleSidebarComponent,\n PdfToggleSecondaryToolbarComponent,\n PdfLastPageComponent,\n PdfFirstPageComponent,\n PdfNextPageComponent,\n PdfPreviousPageComponent,\n PdfPageNumberComponent,\n PdfZoomInComponent,\n PdfZoomOutComponent,\n NgxExtendedPdfViewerServerComponent,\n ],\n})\nexport class NgxExtendedPdfViewerServerModule {\n constructor() {}\n}\n","import { IPDFViewerApplication } from './options/pdf-viewer-application';\n\nexport interface PdfDocumentInfo {\n author?: string;\n creationDate?: Date;\n creator?: string;\n\n keywords?: string;\n linearized?: boolean;\n maybeFileSize?: string;\n modificationDate?: Date;\n pdfFormatVersion?: string;\n producer?: string;\n subject?: string;\n title?: string;\n}\n\nexport class PdfDocumentPropertiesExtractor {\n private pdfDateStringRegex = new RegExp(\n '^D:' + // Prefix (required)\n '(\\\\d{4})' + // Year (required)\n '(\\\\d{2})?' + // Month (optional)\n '(\\\\d{2})?' + // Day (optional)\n '(\\\\d{2})?' + // Hour (optional)\n '(\\\\d{2})?' + // Minute (optional)\n '(\\\\d{2})?' + // Second (optional)\n '([Z|+|-])?' + // Universal time relation (optional)\n '(\\\\d{2})?' + // Offset hour (optional)\n // tslint:disable-next-line: quotemark\n \"'?\" + // Splitting apostrophe (optional)\n '(\\\\d{2})?' + // Offset minute (optional)\n // tslint:disable-next-line: quotemark\n \"'?\" // Trailing apostrophe (optional)\n );\n\n public async getDocumentProperties(): Promise<any> {\n const PDFViewerApplication: IPDFViewerApplication = (window as any)\n .PDFViewerApplication;\n const pdfDocument = PDFViewerApplication.pdfDocument;\n\n const result: any = {};\n return pdfDocument\n .getMetadata()\n .then(({ info, metadata, contentDispositionFilename }) => {\n result.author = info.Author;\n result.creationDate = this.toDateObject(\n info.CreationDate\n );\n result.creator = info.Creator;\n result.keywords = info.Keywords;\n result.linearized = info.IsLinearized;\n result.modificationDate = this.toDateObject(\n info.ModDate\n );\n result.pdfFormatVersion = info.PDFFormatVersion;\n result.producer = info.Producer;\n result.subject = info.Subject;\n result.title = info.Title;\n if (contentDispositionFilename) {\n result.fileName = contentDispositionFilename;\n }\n return pdfDocument.getDownloadInfo();\n })\n .then(({ length }) => {\n result.maybeFileSize = length;\n return result;\n });\n }\n\n /** shamelessly copied from pdf.js */\n private toDateObject(input: string | any): Date | null {\n // if (!input || typeof input !== \"string\")) {\n // return null;\n // }\n\n // Optional fields that don't satisfy the requirements from the regular\n // expression (such as incorrect digit counts or numbers that are out of\n // range) will fall back the defaults from the specification.\n const matches = this.pdfDateStringRegex.exec(input);\n if (!matches) {\n return null;\n }\n\n // JavaScript's `Date` object expects the month to be between 0 and 11\n // instead of 1 and 12, so we have to correct for that.\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || 'Z';\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n // Universal time relation 'Z' means that the local time is equal to the\n // universal time, whereas the relations '+'/'-' indicate that the local\n // time is later respectively earlier than the universal time. Every date\n // is normalized to universal time.\n if (universalTimeRelation === '-') {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === '+') {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\n","export const LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\n","/*\n * Public API Surface of ngx-extended-pdf-viewer\n */\n\nexport * from './lib/ngx-extended-pdf-viewer.component';\nexport * from './lib/ngx-extended-pdf-viewer-server.component';\nexport * from './lib/ngx-extended-pdf-viewer.service';\nexport * from './lib/pdf-notification-service';\nexport * from './lib/options/pdf-print-range';\nexport * from './lib/ngx-extended-pdf-viewer.module';\nexport * from './lib/ngx-extended-pdf-viewer-server.module';\nexport * from './lib/pdf-document-properties-extractor';\nexport * from './lib/options/pdf-default-options';\nexport * from './lib/events/find-result';\nexport * from './lib/options/link-target';\nexport * from './lib/events/file-input-changed';\nexport * from './lib/events/pages-loaded-event';\nexport * from './lib/events/page-number-change';\nexport * from './lib/events/page-rendered-event';\nexport * from './lib/events/pages-loaded-event';\nexport * from './lib/events/pages-rotation-event';\nexport * from './lib/events/pdf-downloaded-event';\nexport * from './lib/events/pdf-loaded-event';\nexport * from './lib/events/pdf-thumbnail-drawn-event';\nexport * from './lib/events/invalid-pdf-exception';\nexport * from './lib/events/scale-changing-event';\nexport * from './lib/events/progress-bar-event';\nexport * from './lib/events/sidebarview-changed';\nexport * from './lib/events/textlayer-rendered';\nexport * from './lib/options/verbosity-level';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nexport * from './lib/toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nexport * from './lib/toolbar/pdf-context-menu/pdf-context-menu.component';\nexport * from './lib/toolbar/pdf-bookmark/pdf-bookmark.component';\nexport * from './lib/toolbar/pdf-download/pdf-download.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar.component';\nexport * from './lib/toolbar/pdf-hand-tool/pdf-hand-tool.component';\nexport * from './lib/toolbar/pdf-open-file/pdf-open-file.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nexport * from './lib/toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nexport * from './lib/toolbar/pdf-print/pdf-print.component';\nexport * from './lib/toolbar/pdf-select-tool/pdf-select-tool.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-paging-area.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nexport * from './lib/secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nexport * from './lib/document-properties/pdf-document-properties-overlay/pdf-document-properties-overlay.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-fuzzily/pdf-find-fuzzily.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component';\nexport * from './lib/toolbar/pdf-toolbar/pdf-toolbar.component';\nexport * from './lib/toolbar/pdf-find-button/pdf-find-button.component';\nexport * from './lib/toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nexport * from './lib/toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nexport * from './lib/options/pdf-viewer-application';\nexport * from './lib/options/pdf-viewer-app-config';\nexport * from './lib/options/pdf-viewer';\nexport * from './lib/toolbar/pdf-rotate-page/pdf-rotate-page.component';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {DynamicCssComponent as ɵc} from './lib/dynamic-css/dynamic-css.component';\nexport {NgxExtendedPdfViewerCommonModule as ɵb} from './lib/ngx-extended-pdf-viewer-common.module';\nexport {NgxExtendedPdfViewerService as ɵi} from './lib/ngx-extended-pdf-viewer-server.service';\nexport {PdfDummyComponentsComponent as ɵa} from './lib/pdf-dummy-components/pdf-dummy-components.component';\nexport {PdfDarkThemeComponent as ɵf} from './lib/theme/pdf-dark-theme/pdf-dark-theme.component';\nexport {PdfLightThemeComponent as ɵg} from './lib/theme/pdf-light-theme/pdf-light-theme.component';\nexport {PdfOriginalComponent as ɵe} from './lib/theme/pdf-original-theme/pdf-original.component';\nexport {PdfFindbarService as ɵd} from './lib/toolbar/pdf-findbar/pdf-findbar-service';\nexport {TranslatePipe as ɵh} from './lib/translate.pipe';"],"names":["pdfDefaultOptions","VerbosityLevel","FindState","Component","Subject","ReplaySubject","Injectable","ScrollModeType","SpreadModeType","EventEmitter","isPlatformBrowser","ChangeDetectionStrategy","NgZone","Inject","PLATFORM_ID","Location","ElementRef","PlatformLocation","ViewChild","Input","Output","HostListener","ChangeDetectorRef","Renderer2","DOCUMENT","ViewEncapsulation","Pipe","NgModule","CommonModule","FormsModule","NgxExtendedPdfViewerService"],"mappings":"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"}
\No newline at end of file